Put/Call Ratio De-TrendedExperimenting with de-trending the various Put/Call Ratios.
Use with tickers PCCE, PCC, PCE, PCOEX, etc. Type "PUT" in the ticker field to see the many options. Use daily charts. Then you can hide the put call ratio and overlay SPX to see the signals. The default MAs are a common way to detrend. Basically takes the 10 day moving average and 127 day moving average(half year in trading days), to "de-trend" the ratio to weed out the noise that is seen in the ratio.
If you can find anything useful or interesting with this, let me know. I think it is useful as is, but if you find an interesting way to use it let me know.
Pesquisar nos scripts por "文华财经tick价格"
BFXLS - BitFinex Long/Shorts
Small improvement upon the above script - all credit should really go to pigloo
Auto-detects ticker and automatically loads the long/shorts for it - so works on more than just BTC
Note - only works on BitFinex and only works for tickers which have long and short data available!
Green area = Longs
Red area = Shorts
Lighter area = Longs - Shorts
EVWMA Acc/Dist. Pressure & FRACTAL BANDS by @XeL_ArjonaEVWMA ACCUMULATION/DISTRIBUTION PRESSURE & FRACTAL BANDS
Version: 3.0 @ 4.11.2015
By Ricardo M Arjona @XeL_Arjona
DISCLAIMER:
The following indicator IS NOT INTENDED TO BE A FORMAL INVESTMENT ADVICE OR TRADING RECOMMENDATION BY THE AUTHOR, nor should be construed as such. Users will be fully responsible by their use regarding any kind of trading vehicles or assets.
The following script and ideas within this work are FREELY AND PUBLICLY availables on the Web for NON LUCRATIVE ACTIVITIES and must remain as is.
-== IMPORTANT: THIS IS AN EXPERIMENTAL INDICATOR ==-
What is this?
This work is a derivation of my previous Accumulation/Distribution scripts publicly available in TradingView in an effort to clean, speedup and make the indicator cleaner as possible.
The current indicator is based on already tested and Mathematically proof concepts as described below:
The MAIN Rolling back median line or "Vortex" is constructed by a simple and equal weighting of distributed volume along the candle range (This approach is just an "estimator" of Buyers Vs. Sellers given the lack of tick resolution in TradingView, a real "DELTA" can only be 100% reliable with Market Depth (Ask/Bid ticks)), Given this, with each "volume weights", the price is post-processed against a true statistical Average calculation formerly: ELASTIC VOLUME WEIGHTED MOVING AVERAGE.
The FRACTAL BANDS are just Standard Deviation's with GOLDEN RATIO as multiplier (1.618) derived one from each other within it's origin on the former "Vortex Median".
The Standard Error Bands comply as the original indicator described by Jon Andersen but given the true statistical nature of EVWMA, the original LinReg line has been substituted by the former.
ALL NEW IDEAS OR MODIFICATIONS to this indicator are welcome in favor to deploy a better technical tool. Any important addition to this work MUST REMAIN PUBLIC by means of CreativeCommons CC & TradingView user rules. (C) 2015 @XeL_Arjona
GMMA ABC Signal Goal (one-liner)
Detect trend-aligned entries using an 18-EMA GMMA stack, then filter out chop with momentum (ATR), trend strength (ADX/RSI), and a tight-range (“box”) mute. Auto-draw SL/TP and fire alerts.
1) Core inputs & idea
Three entry archetypes
Type A (Structure break in a tight bundle): GMMA is narrow → price breaks prior swing with correct bull/bear sequence.
Type B (Trend continuation): Price crosses many EMAs with body and short>mid (bull) or short midAvg, close > longAvg, candle pass.
Short: red body, crossBodyDown ≥ bodyThresh, shortAvg < midAvg, close < longAvg, candle pass.
Anti-chop add-ons:
Require GMMA spread ≥ minSpreadB (trend sufficiently expanded).
ADX/RSI gate (configurable AND/OR and individual enable flags):
ADX ≥ adxMin_B
RSI ≥ rsiMinLong_B (long) or RSI ≤ rsiMaxShort_B (short)
Type C — momentum pop
Needs many crosses (crossUp / crossDown ≥ crossThresh) and a strong candle.
Has its own ATR body threshold: body ≥ ATR * atrMultC (separate from global).
6) Global “Box” (tight-range) mute
Look back boxLookback bars; if (highest−lowest)/close ≤ boxMaxPct, then mute all signals.
Prevents trading inside cramped ranges.
7) Signal priority + confirmation + cooldown
Compute raw A/B/C booleans.
Pick first valid in order A → B → C per side (long/short).
Apply:
Bar confirmation (confirmClose)
Cooldown (no new signal within cooldownBars after last)
Global box mute
Record bar index to enforce cooldown.
8) SL/TP logic (simple R-based scaffolding)
SL: previous swing extreme within structLookback (long uses prevLow, short uses prevHigh).
Risk R: distance from entry close to SL (min-tick protected).
TPs: TP1/TP2/TP3 = close ± R × (tp1R, tp2R, tp3R) depending on side.
On a new signal, draw lines for SL/TP1/TP2/TP3; keep them for keepBars then auto-delete.
9) Visuals & alerts
Plot labels for raw Type A/B/C (so you can see which bucket fired).
Entry label on the chosen signal with SL/TP prices.
Alerts: "ABC LONG/SHORT Entry" with ticker & timeframe placeholders.
10) Info panel (top-right)
Shows spread%, box%, ADX, RSI on the last/confirmed bar for quick situational awareness.
11) How to tune (quick heuristics)
Too many signals? Increase minSpreadB, adxMin_B, bodyThresh, or enable confirmClose and a small cooldownBars.
Missing breakouts? Lower atrMultC (Type C) or crossThresh; relax minSpreadB.
Choppy pairs/timeframes? Raise boxMaxPct sensitivity (smaller value mutes more), or raise atrMult (global) to demand fatter candles.
Cleaner trends only? Turn on strictSeq for Type A; raise minSpreadB and adxMin_B.
12) Mental model (TL;DR)
A = “Tight coil + fresh structure break”
B = “Established trend, strong continuation” (spread + ADX/RSI keep you out of chop)
C = “Momentum burst through many EMAs” (independent ATR gate)
Then add box mute, close confirmation, cooldown, and auto SL/TP scaffolding.
COT INDEX
// Users & Producers: Commercial Positions
// Large Specs (Hedge Fonds): Non-commercial Positions
// Retail: Non-reportable Positions
//@version=5
int weeks = input.int(26, "Number of weeks", minval=1)
int upperExtreme = input.int(80, "Upper Threshold in %", minval=50)
int lowerExtreme = input.int(20, "Lower Threshold in %", minval=1)
bool hideCurrentWeek = input(true, "Hide the current week until market close")
bool markExtremes = input(false, "Mark long and short extremes")
bool showSmallSpecs = input(true, "Show small speculators index")
bool showProducers = input(true, "Show producers index")
bool showLargeSpecs = input(true, "Show large speculators index")
indicator("COT INDEX", shorttitle="COT INDEX", format=format.percent, precision=0)
import TradingView/LibraryCOT/2 as cot
// Function to fix some symbols.
var string Root_Symbol = syminfo.root
var string CFTC_Code_fixed = cot.convertRootToCOTCode("Auto")
if Root_Symbol == "HG"
CFTC_Code_fixed := "085692"
else if Root_Symbol == "LBR"
CFTC_Code_fixed := "058644"
// Function to request COT data for Futures only.
dataRequest(metricName, isLong) =>
tickerId = cot.COTTickerid('Legacy', CFTC_Code_fixed, false, metricName, isLong ? "Long" : "Short", "All")
value = request.security(tickerId, "1D", close, ignore_invalid_symbol = true)
if barstate.islastconfirmedhistory and na(value)
runtime.error("Could not find relevant COT data based on the current symbol.")
value
// Function to calculate net long positions.
netLongCommercialPositions() =>
commercialLong = dataRequest("Commercial Positions", true)
commercialShort = dataRequest("Commercial Positions", false)
commercialLong - commercialShort
netLongLargePositions() =>
largeSpecsLong = dataRequest("Noncommercial Positions", true)
largeSpecsShort = dataRequest("Noncommercial Positions", false)
largeSpecsLong - largeSpecsShort
netLongSmallPositions() =>
smallSpecsLong = dataRequest("Nonreportable Positions", true)
smallSpecsShort = dataRequest("Nonreportable Positions", false)
smallSpecsLong - smallSpecsShort
calcIndex(netPos) =>
minNetPos = ta.lowest(netPos, weeks)
maxNetPos = ta.highest(netPos, weeks)
if maxNetPos != minNetPos
100 * (netPos - minNetPos) / (maxNetPos - minNetPos)
else
na
// Calculate the Commercials Position Index.
commercialsIndex = calcIndex(netLongCommercialPositions())
largeSpecsIndex = calcIndex(netLongLargePositions())
smallSpecsIndex = calcIndex(netLongSmallPositions())
// Conditional logic based on user input
plotValueCommercials = hideCurrentWeek ? (timenow >= time_close ? commercialsIndex : na) : (showProducers ? commercialsIndex : na)
plotValueLarge = hideCurrentWeek ? (timenow >= time_close ? largeSpecsIndex : na) : (showLargeSpecs ? largeSpecsIndex : na)
plotValueSmall = hideCurrentWeek ? (timenow >= time_close ? smallSpecsIndex : na) : (showSmallSpecs ? smallSpecsIndex : na)
// Plot the index and horizontal lines
plot(plotValueCommercials, "Commercials", color=color.blue, style=plot.style_line, linewidth=2)
plot(plotValueLarge, "Large Speculators", color=color.red, style=plot.style_line, linewidth=1)
plot(plotValueSmall, "Small Speculators", color=color.green, style=plot.style_line, linewidth=1)
hline(upperExtreme, "Upper Threshold", color=color.green, linestyle=hline.style_solid, linewidth=1)
hline(lowerExtreme, "Lower Threshold", color=color.red, linestyle=hline.style_solid, linewidth=1)
/// Marking extremes with background color
bgcolor(markExtremes and (commercialsIndex >= upperExtreme or largeSpecsIndex >= upperExtreme or smallSpecsIndex >= upperExtreme) ? color.new(color.gray, 90) : na, title="Upper Threshold")
bgcolor(markExtremes and (commercialsIndex <= lowerExtreme or largeSpecsIndex <= lowerExtreme or smallSpecsIndex <= lowerExtreme) ? color.new(color.gray, 90) : na, title="Lower Threshold")
Auto-Pivot Levels with Alerts and 4 methods [ChartWhizzperer]🚀 Auto-Pivot Levels – Dynamic Edition
Now with
Live Mode,
4 Pivot Methods
PineConnector-Ready Alerts!
Free, Open Source, Pine Script v6-compliant.
🟢 NEW: Live Mode (Ultra-Dynamic, Repainting) – Switchable in UI!
Instantly switch between Classic (session-based, repaint-free) and Live (rolling window, real-time, repainting) using the simple checkbox in the settings!
Live Mode recalculates all pivots on every tick/bar, using the current high/low/close for the chosen session (daily, weekly, monthly).
Perfect for:
Scalping and high-frequency trading
Real-time bot/automation setups (PineConnector-ready)
Fast-moving or breakout markets
Classic Mode: For traditional, stable levels based on confirmed session data – ideal for backtesting and trading history.
📊 Four Calculation Methods (Choose What Fits YOU):
1️⃣ Classic
Standard pivot calculation.
Based on previous session’s High, Low, Close.
Simple, proven, and suitable for any asset.
2️⃣ Fibonacci
Projects levels using Fibonacci ratios of the prior session’s range.
Great for traders who want to align pivots with fib retracements and extensions.
3️⃣ Camarilla
Uses unique multipliers for support/resistance, focusing on mean reversion and volatility.
Popular among futures and forex day traders.
4️⃣ Woodie
Puts extra weight on previous Close for more responsive pivots.
Often used in trending or choppy conditions.
Switch methods anytime in the UI – the script recalculates instantly and keeps your chart clean!
🔔 Level-Specific Alerts – PineConnector Ready!
Dedicated alert for EVERY level and direction (Up/Down):
Pivot (P), R1, R2, R3, S1, S2, S3
No configuration hassle:
All alerts are pre-defined in the TradingView Alert Panel.
Machine-readable message format:
PIVOT=R1 DIR=UP SYMBOL={{ticker}} PRICE={{close}}
Direct plug-and-play with PineConnector, webhooks, Discord, Telegram, bots, and other automation tools.
Never miss a breakout, reversal, or key support/resistance touch.
🛠 Powerful Customization & Performance
Session selection: Daily, Weekly, Monthly (choose what suits your trading style).
Show/hide any level (Pivot, R1–R3, S1–S3) for minimal chart clutter.
Color selection for each level to match your theme or highlight key pivots.
Auto-cleanup: Old lines and labels are cleared on every recalculation or session change for maximum performance and visual clarity.
Zero runtime errors: Strict Pine Script v6 practices for stability.
💡 How To Use – Quick Start
Add the indicator to your TradingView chart.
Pick your calculation method (Classic, Fibonacci, Camarilla, Woodie).
Set session type (Daily, Weekly, Monthly).
Switch between Classic and Live Mode with a single click in settings.
Customize your levels (on/off, colors).
Open the Alert Panel, select any pre-configured alert (e.g. "R2 Cross Down"), and go live!
Connect with PineConnector or any webhook system instantly using the pre-formatted alert messages.
🤖 Who Is It For?
Active scalpers & bot traders: Live Mode + PineConnector-ready alerts = instant, automated reactions.
Swing and position traders: Use Classic Mode for stable, repaint-free levels.
Strategy developers: Seamless integration into automated and manual trading workflows.
🏷 License & Community
Open Source, Non-Commercial:
Free for personal & educational use under CC BY-NC-SA 4.0.
Feedback, bug reports & ideas:
Drop a comment, or contact me for feature requests.
Trade smart. Trade dynamic. Unlock the true power of pivots – with ChartWhizzperer !
[Top] LHAMA Consolidation DetectorIntroducing the Low-High Adaptive Moving Average (LHAMA 🦙), a powerful tool designed to help traders visually distinguish between trending and consolidating market phases. Unlike traditional moving averages that can produce false signals in choppy markets, the LHAMA is engineered to flatten out during periods of consolidation and become more responsive when a clear trend emerges.
This indicator's primary function is to act as a "Consolidation Detector." When the LHAMA line goes flat and adopts its "Flat Color," it serves as a clear visual cue that the market is range-bound. Conversely, when the line begins to slope and changes to its Bullish or Bearish color, it signals a potential breakout or the start of a new trend.
How It Works
The LHAMA is a type of adaptive moving average. Its adaptiveness is derived from a unique calculation that measures market "trendiness." It does this by tracking whether new highs or new lows are being made within a specified lookback period.
In a Trending Market: When the price consistently makes new highs or lows, the indicator's responsiveness increases, causing the LHAMA to track the price much more closely and responsively.
In a Consolidating Market: When the price is range-bound and fails to make new highs or lows, the responsiveness decreases significantly. This causes the LHAMA to flatten out and become less sensitive to minor price fluctuations, effectively filtering out market noise.
Key Features
Adaptive Calculation: The core engine of the indicator, which automatically adjusts its smoothing based on trend strength.
Slope-Based Coloring: The line's color dynamically changes based on its slope, providing an at-a-glance view of market conditions: bullish, bearish, or flat.
Multi-Line & Multi-Timeframe (MTF): You can enable up to six fully customizable LHAMA lines. Each line can be configured with its own length, colors, and can even be set to a different timeframe, allowing for comprehensive multi-timeframe analysis on a single chart.
Volatility Clouds: Each LHAMA can display an optional cloud around it. The cloud's width is based on your choice of either the Average True Range (ATR) or Standard Deviation (StdDev), offering a visual representation of volatility.
Volume Weighting: An option to incorporate volume into the adaptive calculation, making the LHAMA even more responsive during high-volume price movements.
How to Use
Identify Consolidation: The primary use case. A flat and consistently colored LHAMA line is a strong indication of a sideways or consolidating market. This can help traders avoid taking trend-following trades in choppy conditions.
Confirm Trends: When the LHAMA begins to slope upwards or downwards and changes to its trend color, it can be used to confirm the direction and strength of a new trend. The steeper the slope, the stronger the momentum, and more solid the directional color.
Dynamic Support & Resistance: Like other moving averages, the LHAMA can act as a dynamic level of support in an uptrend or resistance in a downtrend. The optional cloud can further define these zones.
Multi-MA Ribbon Strategy: By enabling multiple LHAMAs with different lengths (e.g., Fibonacci sequence like 14, 21, 34, 55), you can create a ribbon. The expansion of the ribbon indicates a strong trend, while its contraction signals a weakening trend or consolidation.
Settings Explained
Enable 🦙 Line: A simple checkbox to turn each of the six LHAMA lines on or off.
Length: The lookback period for the LHAMA calculation. Shorter lengths are more responsive, while longer lengths are smoother.
Timeframe: Set a specific timeframe for each LHAMA. Leave blank to use the chart's current timeframe.
Volume Weight: If checked, adds volume weighting to make the LHAMA more responsive to high-volume moves.
Colors (Bullish, Bearish, Flat): Customize the colors for each market state. To only see the line during consolidation, set the Bullish and Bearish colors to 100% transparency. To hide the line during consolidation, set the Flat color to 100% transparency.
Color Sensitivity: This is a crucial setting. Because price scales (tick sizes) vary widely between symbols, this setting allows you to adjust the sensitivity of the slope detection. A lower value requires a steeper slope to trigger a trend color, while a higher value is more sensitive.
Recommended settings are provided in the input tooltip as a starting point:
$5 Tick: 0.25 Sensitivity
$1 Tick: 0.75 Sensitivity
$0.25 Tick: 3 Sensitivity
$0.01 Tick: 50 Sensitivity
$0.005 Tick: 100 Sensitivity
Cloud Settings:
Show Cloud: Toggles the visibility of the volatility cloud around the LHAMA.
Width Based On: Choose between "ATR" or "StdDev" to calculate the cloud's width.
Cloud Length & Width: Set the lookback period and multiplier for the ATR/StdDev calculation to control the size of the cloud.
Micro Futures Contract Calculator Micro Futures Contract Calculator
Synopsis: The Micro Futures Contract Calculator is a sleek, minimalist indicator that calculates the number of Micro E-mini Nasdaq-100 (MNQ) or S&P 500 (MES) contracts you can trade based on a fixed dollar risk and stop-loss (in ticks). Displayed in a compact, professional table in the top-right corner, it shows your risk, stop-loss, contract type, and calculated contracts, helping traders maintain consistent risk management.
How to Use:
Add the indicator to your chart (search “Micro Futures Contract Calculator”).
In settings, input:
Maximum Risk ($): Your total risk per trade (e.g., $100).
Stop-Loss (Ticks): Stop-loss size in ticks (e.g., 20 ticks = 5 points).
Contract Type: Select MNQ or MES.
Check the top-right table for:
Risk, stop-loss, contract type, and number of contracts (e.g., “10” for MNQ, “4” for MES).
Use the contract number to size trades, ensuring risk stays fixed.
Why Standardized Risk is Important:
Consistency: Fixed risk per trade (e.g., $100) prevents oversized losses, stabilizing long-term performance.
Discipline: Removes emotional guesswork, enforcing a systematic approach across MNQ/MES trades.
Capital Protection: Limits exposure, preserving your account during losing streaks and volatile markets.
Scalability: Aligns position sizing with your risk tolerance, enabling confident scaling as your account grows.
This indicator simplifies risk management, making it essential for disciplined futures trading.
A+ Trade CheckList with Comprehensive Relative StrengthThe indicator designed for traders who need real-time market assessment across multiple timeframes and benchmarks. This comprehensive tool combines traditional technical analysis with sophisticated relative strength measurements to provide a complete market picture in one convenient table display.
The indicator tracks essential trading levels including:
QQQ and SPY trend analysis using exponential moving averages
Previous day and week high/low levels for key support and resistance
Market open levels from the first 5 and 15 minutes of trading (9:30 AM ET)
VWAP positioning for institutional price reference
Short-term EMA positioning for momentum assessment
Advanced Relative Strength Analysis
The standout feature of this indicator is its comprehensive 8-metric relative strength scoring system that compares your current ticker against both QQQ (Nasdaq-100) and SPY (S&P 500) benchmarks.
The 4-Metric Relative Strength System Explained
Metric 1: Relative Strength Ratio (RSR)
Purpose: Measures whether your ticker is outperforming or underperforming relative to its historical relationship with the benchmarks.
How it works:
Calculates the ratio of your ticker's price to QQQ/SPY prices
Compares current ratio to a 20-period moving average of the ratio
Scores +1 if ratio is above average (relative strength), -1 if below (relative weakness)
Trading significance: Identifies when a stock is breaking out of its normal correlation pattern with major indices.
Metric 2: Percentage-Based Relative Performance
Purpose: Compares short-term percentage changes to identify immediate relative momentum.
How it works:
Calculates 5-day percentage change for your ticker and benchmarks
Subtracts benchmark performance from ticker performance
Scores +1 if outperforming by >1%, -1 if underperforming by >1%, 0 for neutral
Trading significance: Captures recent momentum shifts and identifies stocks moving independently of market direction.
Metric 3: Beta-Adjusted Relative Strength (Alpha)
Purpose: Measures risk-adjusted performance by accounting for the ticker's natural volatility relationship with benchmarks.
How it works:
Calculates rolling beta (correlation and variance relationship)
Determines expected returns based on benchmark moves and beta
Measures alpha (excess returns above/below expectations)
Scores based on whether alpha is consistently positive or negative
Trading significance: Identifies stocks generating returns beyond what their risk profile would suggest, indicating fundamental strength or weakness.
Metric 4: Volume-Weighted Relative Strength
Purpose: Incorporates volume analysis to validate price-based relative strength signals.
How it works:
Compares VWAP-based percentage changes between ticker and benchmarks
Applies volume weighting factor based on relative volume strength
Enhances score when high relative volume confirms price movements
Trading significance: Distinguishes between genuine institutional-driven moves and low-volume price action that may not sustain.
Combined Scoring System
The indicator generates 8 individual scores (4 metrics × 2 benchmarks) that combine into a single strength assessment:
Score Interpretation
Strong (4-8 points): Ticker significantly outperforming both benchmarks across multiple methodologies
Moderate Strong (1-3 points): Ticker showing good relative strength with some mixed signals
Neutral (0 points): Balanced performance relative to benchmarks
Moderate Weak (-1 to -3 points): Ticker showing relative weakness with some mixed signals
Weak (-4 to -8 points): Ticker significantly underperforming both benchmarks
Display Format
The indicator shows results as: "Strong (6/8)" indicating the ticker scored 6 out of 8 possible points.
EMA Pullback Speed Strategy 📌 **Overview**
The **EMA Pullback Speed Strategy** is a trend-following approach that combines **price momentum** and **Exponential Moving Averages (EMA)**.
It aims to identify high-probability entry points during brief pullbacks within ongoing uptrends or downtrends.
The strategy evaluates **speed of price movement**, **relative position to dynamic EMA**, and **candlestick patterns** to determine ideal timing for entries.
One of the key concepts is checking whether the price has **“not pulled back too much”**, helping focus only on situations where the trend is likely to continue.
⚠️ This strategy is designed for educational and research purposes only. It does not guarantee future profits.
🧭 **Purpose**
This strategy addresses the common issue of **"jumping in too late during trends and taking unnecessary losses."**
By waiting for a healthy pullback and confirming signs of **trend resumption**, traders can enter with greater confidence and reduce false entries.
🎯 **Strategy Objectives**
* Enter in the direction of the prevailing trend to increase win rate
* Filter out false signals using pullback depth, speed, and candlestick confirmations
* Predefine Take-Profit (TP) and Stop-Loss (SL) levels for safer, rule-based trading
✨ **Key Features**
* **Dynamic EMA**: Reacts faster when price moves quickly, slower when market is calm – adapting to current momentum
* **Pullback Filter**: Avoids trades when price pulls back too far (e.g., more than 5%), indicating a trend may be weakening
* **Speed Check**: Measures how strongly the price returns to the trend using candlestick body speed (open-to-close range in ticks)
📊 **Trading Rules**
**■ Long Entry Conditions:**
* Current price is above the dynamic EMA (indicating uptrend)
* Price has pulled back toward the EMA (a "buy the dip" situation)
* Pullback depth is within the threshold (not excessive)
* Candlesticks show consecutive bullish closes and break the previous high
* Price speed is strong (positive movement with momentum)
**■ Short Entry Conditions:**
* Current price is below the dynamic EMA (indicating downtrend)
* Price has pulled back up toward the EMA (a "sell the rally" setup)
* Pullback is within range (not too deep)
* Candlesticks show consecutive bearish closes and break the previous low
* Price speed is negative (downward momentum confirmed)
**■ Exit Conditions (TP/SL):**
* **Take-Profit (TP):** Fixed 1.5% target above/below entry price
* **Stop-Loss (SL):** Based on recent price volatility, calculated using ATR × 4
💰 **Risk Management Parameters**
* Symbol & Timeframe: BTCUSD on 1-hour chart (H1)
* Test Capital: \$3000 (simulated account)
* Commission: 0.02%
* Slippage: 2 ticks (minimal execution lag)
* Max risk per trade: 5% of account balance
* Backtest Period: Aug 30, 2023 – May 9, 2025
* Profit Factor (PF): 1.965 (Net profit ÷ Net loss, including spreads & fees)
⚙️ **Trading Parameters & Indicator Settings**
* Maximum EMA Length: 50
* Accelerator Multiplier: 3.0
* Pullback Threshold: 5.0%
* ATR Period: 14
* ATR Multiplier (SL distance): 4.0
* Fixed TP: 1.5%
* Short-term EMA: 21
* Long-term EMA: 50
* Long Speed Threshold: ≥ 1000.0 (ticks)
* Short Speed Threshold: ≤ -1000.0 (ticks)
⚠️Adjustments are based on BTCUSD.
⚠️Forex and other currency pairs require separate adjustments.
🔧 **Strategy Improvements & Uniqueness**
Unlike basic moving average crossovers or RSI triggers, this strategy emphasizes **"momentum-supported pullbacks"**.
By combining dynamic EMA, speed checks, and candlestick signals, it captures trades **as if surfing the wave of a trend.**
Its built-in filters help **avoid overextended pullbacks**, which often signal the trend is ending – making it more robust than traditional trend-following systems.
✅ **Summary**
The **EMA Pullback Speed Strategy** is easy to understand, rule-based, and highly reproducible – ideal for both beginners and intermediate traders.
Because it shows **clear visual entry/exit points** on the chart, it’s also a great tool for practicing discretionary trading decisions.
⚠️ Past performance is not a guarantee of future results.
Always respect your Stop-Loss levels and manage your position size according to your risk tolerance.
Liquid Pulse Liquid Pulse by Dskyz (DAFE) Trading Systems
Liquid Pulse is a trading algo built by Dskyz (DAFE) Trading Systems for futures markets like NQ1!, designed to snag high-probability trades with tight risk control. it fuses a confluence system—VWAP, MACD, ADX, volume, and liquidity sweeps—with a trade scoring setup, daily limits, and VIX pauses to dodge wild volatility. visuals include simple signals, VWAP bands, and a dashboard with stats.
Core Components for Liquid Pulse
Volume Sensitivity (volumeSensitivity) controls how much volume spikes matter for entries. options: 'Low', 'Medium', 'High' default: 'High' (catches small spikes, good for active markets) tweak it: 'Low' for calm markets, 'High' for chaos.
MACD Speed (macdSpeed) sets the MACD’s pace for momentum. options: 'Fast', 'Medium', 'Slow' default: 'Medium' (solid balance) tweak it: 'Fast' for scalping, 'Slow' for swings.
Daily Trade Limit (dailyTradeLimit) caps trades per day to keep risk in check. range: 1 to 30 default: 20 tweak it: 5-10 for safety, 20-30 for action.
Number of Contracts (numContracts) sets position size. range: 1 to 20 default: 4 tweak it: up for big accounts, down for small.
VIX Pause Level (vixPauseLevel) stops trading if VIX gets too hot. range: 10 to 80 default: 39.0 tweak it: 30 to avoid volatility, 50 to ride it.
Min Confluence Conditions (minConditions) sets how many signals must align. range: 1 to 5 default: 2 tweak it: 3-4 for strict, 1-2 for more trades.
Min Trade Score (Longs/Shorts) (minTradeScoreLongs/minTradeScoreShorts) filters trade quality. longs range: 0 to 100 default: 73 shorts range: 0 to 100 default: 75 tweak it: 80-90 for quality, 60-70 for volume.
Liquidity Sweep Strength (sweepStrength) gauges breakouts. range: 0.1 to 1.0 default: 0.5 tweak it: 0.7-1.0 for strong moves, 0.3-0.5 for small.
ADX Trend Threshold (adxTrendThreshold) confirms trends. range: 10 to 100 default: 41 tweak it: 40-50 for trends, 30-35 for weak ones.
ADX Chop Threshold (adxChopThreshold) avoids chop. range: 5 to 50 default: 20 tweak it: 15-20 to dodge chop, 25-30 to loosen.
VWAP Timeframe (vwapTimeframe) sets VWAP period. options: '15', '30', '60', '240', 'D' default: '60' (1-hour) tweak it: 60 for day, 240 for swing, D for long.
Take Profit Ticks (Longs/Shorts) (takeProfitTicksLongs/takeProfitTicksShorts) sets profit targets. longs range: 5 to 100 default: 25.0 shorts range: 5 to 100 default: 20.0 tweak it: 30-50 for trends, 10-20 for chop.
Max Profit Ticks (maxProfitTicks) caps max gain. range: 10 to 200 default: 60.0 tweak it: 80-100 for big moves, 40-60 for tight.
Min Profit Ticks to Trail (minProfitTicksTrail) triggers trailing. range: 1 to 50 default: 7.0 tweak it: 10-15 for big gains, 5-7 for quick locks.
Trailing Stop Ticks (trailTicks) sets trail distance. range: 1 to 50 default: 5.0 tweak it: 8-10 for room, 3-5 for fast locks.
Trailing Offset Ticks (trailOffsetTicks) sets trail offset. range: 1 to 20 default: 2.0 tweak it: 1-2 for tight, 5-10 for loose.
ATR Period (atrPeriod) measures volatility. range: 5 to 50 default: 9 tweak it: 14-20 for smooth, 5-9 for reactive.
Hardcoded Settings volLookback: 30 ('Low'), 20 ('Medium'), 11 ('High') volThreshold: 1.5 ('Low'), 1.8 ('Medium'), 2 ('High') swingLen: 5
Execution Logic Overview trades trigger when confluence conditions align, entering long or short with set position sizes. exits use dynamic take-profits, trailing stops after a profit threshold, hard stops via ATR, and a time stop after 100 bars.
Features Multi-Signal Confluence: needs VWAP, MACD, volume, sweeps, and ADX to line up.
Risk Control: ATR-based stops (capped 15 ticks), take-profits (scaled by volatility), and trails.
Market Filters: VIX pause, ADX trend/chop checks, volatility gates. Dashboard: shows scores, VIX, ADX, P/L, win %, streak.
Visuals Simple signals (green up triangles for longs, red down for shorts) and VWAP bands with glow. info table (bottom right) with MACD momentum. dashboard (top right) with stats.
Chart and Backtest:
NQ1! futures, 5-minute chart. works best in trending, volatile conditions. tweak inputs for other markets—test thoroughly.
Backtesting: NQ1! Frame: Jan 19, 2025, 09:00 — May 02, 2025, 16:00 Slippage: 3 Commission: $4.60
Fee Typical Range (per side, per contract)
CME Exchange $1.14 – $1.20
Clearing $0.10 – $0.30
NFA Regulatory $0.02
Firm/Broker Commis. $0.25 – $0.80 (retail prop)
TOTAL $1.60 – $2.30 per side
Round Turn: (enter+exit) = $3.20 – $4.60 per contract
Disclaimer this is for education only. past results don’t predict future wins. trading’s risky—only use money you can lose. backtest and validate before going live. (expect moderators to nitpick some random chart symbol rule—i’ll fix and repost if they pull it.)
About the Author Dskyz (DAFE) Trading Systems crafts killer trading algos. Liquid Pulse is pure research and grit, built for smart, bold trading. Use it with discipline. Use it with clarity. Trade smarter. I’ll keep dropping badass strategies ‘til i build a brand or someone signs me up.
2025 Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
Price Flip StrategyPrice Flip Strategy with User-Defined Ticker Max/Max
This strategy leverages an inverted price calculation based on user-defined maximum and minimum price levels over customizable lookback periods. It generates buy and sell signals by comparing the previous bar's original price to the inverted price, within a specified date range. The script plots key metrics, including ticker max/min, original and inverted prices, moving averages, and HLCC4 averages, with customizable visibility toggles and labels for easy analysis.
Key Features:
Customizable Inputs: Set lookback periods for ticker max/min, moving average length, and date range for signal generation.
Inverted Price Logic: Calculates an inverted price using ticker max/min to identify trading opportunities.
Flexible Visualization: Toggle visibility for plots (e.g., ticker max/min, prices, moving averages, HLCC4 averages) and last-bar labels with user-defined colors and sizes.
Trading Signals: Generates buy signals when the previous original price exceeds the inverted price, and sell signals when it falls below, with alerts for real-time notifications.
Labeling: Displays values on the last bar for all plotted metrics, aiding in quick reference.
How to Use:
Add to Chart: Apply the script to a TradingView chart via the Pine Editor.
Configure Settings:
Date Range: Set the start and end dates to define the active trading period.
Ticker Levels: Adjust the lookback periods for calculating ticker max and min (e.g., 100 bars for max, 100 for min).
Moving Averages: Set the length for exponential moving averages (default: 20 bars).
Plots and Labels: Enable/disable specific plots (e.g., Inverted Price, Original HLCC4) and customize label colors/sizes for clarity.
Interpret Signals:
Buy Signal: Triggered when the previous close price is above the inverted price; marked with an upward label.
Sell Signal: Triggered when the previous close price is below the inverted price; marked with a downward label.
Set Alerts: Use the built-in alert conditions to receive notifications for buy/sell signals.
Analyze Plots: Review plotted lines (e.g., ticker max/min, HLCC4 averages) and last-bar labels to assess price behavior.
Tips:
Use in trending markets by enabling ticker max for uptrends or ticker min for downtrends, as indicated in tooltips.
Adjust the label offset to prevent overlapping text on the last bar.
Test the strategy on a demo account to optimize lookback periods and moving average settings for your asset.
Disclaimer: This script is for educational purposes and should be tested thoroughly before use in live trading. Past performance is not indicative of future results.
Asset Rotation System [InvestorUnknown]Overview
This system creates a comprehensive trend "matrix" by analyzing the performance of six assets against both the US Dollar and each other. The objective is to identify and hold the asset that is currently outperforming all others, thereby focusing on maintaining an investment in the most "optimal" asset at any given time.
- - - Key Features - - -
1. Trend Classification:
The system evaluates the trend for each of the six assets, both individually against USD and in pairs (assetX/assetY), to determine which asset is currently outperforming others.
Utilizes five distinct trend indicators: RSI (50 crossover), CCI, SuperTrend, DMI, and Parabolic SAR.
Users can customize the trend analysis by selecting all indicators or choosing a single one via the "Trend Classification Method" input setting.
2. Backtesting:
Calculates an equity curve for each asset and for the system itself, which assumes holding only the asset deemed optimal at any time.
Customizable start date for backtesting; by default, it begins either 5000 bars ago (the maximum in TradingView) or at the inception of the youngest asset included, whichever is shorter. If the youngest asset's history exceeds 5000 bars, the system uses 5000 bars to prevent errors.
The equity curve is dynamically colored based on the asset held at each point, with this coloring also reflected on the chart via barcolor().
Performance metrics like returns, standard deviation of returns, Sharpe, Sortino, and Omega ratios, along with maximum drawdown, are computed for each asset and the system's equity curve.
3 Alerts:
Supports alerts for when a new, confirmed optimal asset is identified. However, due to TradingView limitations, the specific asset cannot be included in the alert message.
- - - Usage - - -
1. Select Assets/Tickers:
Choose which assets or tickers you want to include in the rotation system. Ensure that all selected tickers are denominated in USD to maintain consistency in analysis.
2. Configure Trend Classification:
Decide on the trend classification method from the available options (RSI, CCI, SuperTrend, DMI, or Parabolic SAR, All) and adjust the settings to your preferences. This customization allows you to tailor the system to different market conditions or your specific trading strategy.
3. Utilize Backtesting for Calibration:
Use the backtesting results, including equity curves and performance metrics, to fine-tune your chosen trend indicators.
Be cautious not to overemphasize performance maximization, as this can lead to overfitting. The goal is to achieve a robust system that performs well across various market conditions, rather than just optimizing for past data.
- - - Parameters - - -
Tickers:
Asset 1: Select the symbol for the first asset.
Asset 2: Select the symbol for the second asset.
Asset 3: Select the symbol for the third asset.
Asset 4: Select the symbol for the fourth asset.
Asset 5: Select the symbol for the fifth asset.
Asset 6: Select the symbol for the sixth asset.
General Settings:
Trend Classification Method: Choose from RSI, CCI, SuperTrend, DMI, PSAR, or "All" to determine how trends are analyzed.
Use Custom Starting Date for Backtest: Toggle to use a custom date for beginning the backtest.
Custom Starting Date: Set the custom start date for backtesting.
Plot Perf. Metrics Table: Option to display performance metrics in a table on the chart.
RSI (Relative Strength Index):
RSI Source: Choose the price data source for RSI calculation.
RSI Length: Set the period for the RSI calculation.
CCI (Commodity Channel Index):
CCI Source: Select the price data source for CCI calculation.
CCI Length: Determine the period for the CCI.
SuperTrend:
SuperTrend Factor: Adjust the sensitivity of the SuperTrend indicator.
SuperTrend Length: Set the period for the SuperTrend calculation.
DMI (Directional Movement Index):
DMI Length: Define the period for DMI calculations.
Parabolic SAR:
PSAR Start: Initial acceleration factor for the Parabolic SAR.
PSAR Increment: Increment value for the acceleration factor.
PSAR Max Value: Maximum value the acceleration factor can reach.
Notes/Recommendations:
While this system is operational, it's important to recognize that it relies on "basic" indicators, which may not be ideal for generating trading signals on their own. I strongly suggest that users delve into the code to grasp the underlying logic of the system. Consider customizing it by integrating more sophisticated and higher-quality trend-following indicators to enhance its performance and reliability.
Disclaimer:
This system's backtest results are historical and do not predict future performance. Use for educational purposes only; not investment advice.
Request█ OVERVIEW
This library is a tool for Pine Script™ programmers that consolidates access to a wide range of lesser-known data feeds available on TradingView, including metrics from the FRED database, FINRA short sale volume, open interest, and COT data. The functions in this library simplify requests for these data feeds, making them easier to retrieve and use in custom scripts.
█ CONCEPTS
Federal Reserve Economic Data (FRED)
FRED (Federal Reserve Economic Data) is a comprehensive online database curated by the Federal Reserve Bank of St. Louis. It provides free access to extensive economic and financial data from U.S. and international sources. FRED includes numerous economic indicators such as GDP, inflation, employment, and interest rates. Additionally, it provides financial market data, regional statistics, and international metrics such as exchange rates and trade balances.
Sourced from reputable organizations, including U.S. government agencies, international institutions, and other public and private entities, FRED enables users to analyze over 825,000 time series, download their data in various formats, and integrate their information into analytical tools and programming workflows.
On TradingView, FRED data is available from ticker identifiers with the "FRED:" prefix. Users can search for FRED symbols in the "Symbol Search" window, and Pine scripts can retrieve data for these symbols via `request.*()` function calls.
FINRA Short Sale Volume
FINRA (the Financial Industry Regulatory Authority) is a non-governmental organization that supervises and regulates U.S. broker-dealers and securities professionals. Its primary aim is to protect investors and ensure integrity and transparency in financial markets.
FINRA's Short Sale Volume data provides detailed information about daily short-selling activity across U.S. equity markets. This data tracks the volume of short sales reported to FINRA's trade reporting facilities (TRFs), including shares sold on FINRA-regulated Alternative Trading Systems (ATSs) and over-the-counter (OTC) markets, offering transparent access to short-selling information not typically available from exchanges. This data helps market participants, researchers, and regulators monitor trends in short-selling and gain insights into bearish sentiment, hedging strategies, and potential market manipulation. Investors often use this data alongside other metrics to assess stock performance, liquidity, and overall trading activity.
It is important to note that FINRA's Short Sale Volume data does not consolidate short sale information from public exchanges and excludes trading activity that is not publicly disseminated.
TradingView provides ticker identifiers for requesting Short Sale Volume data with the format "FINRA:_SHORT_VOLUME", where "" is a supported U.S. equities symbol (e.g., "AAPL").
Open Interest (OI)
Open interest is a cornerstone indicator of market activity and sentiment in derivatives markets such as options or futures. In contrast to volume, which measures the number of contracts opened or closed within a period, OI measures the number of outstanding contracts that are not yet settled. This distinction makes OI a more robust indicator of how money flows through derivatives, offering meaningful insights into liquidity, market interest, and trends. Many traders and investors analyze OI alongside volume and price action to gain an enhanced perspective on market dynamics and reinforce trading decisions.
TradingView offers many ticker identifiers for requesting OI data with the format "_OI", where "" represents a derivative instrument's ticker ID (e.g., "COMEX:GC1!").
Commitment of Traders (COT)
Commitment of Traders data provides an informative weekly breakdown of the aggregate positions held by various market participants, including commercial hedgers, non-commercial speculators, and small traders, in the U.S. derivative markets. Tallied and managed by the Commodity Futures Trading Commission (CFTC) , these reports provide traders and analysts with detailed insight into an asset's open interest and help them assess the actions of various market players. COT data is valuable for gaining a deeper understanding of market dynamics, sentiment, trends, and liquidity, which helps traders develop informed trading strategies.
TradingView has numerous ticker identifiers that provide access to time series containing data for various COT metrics. To learn about COT ticker IDs and how they work, see our LibraryCOT publication.
█ USING THE LIBRARY
Common function characteristics
• This library's functions construct ticker IDs with valid formats based on their specified parameters, then use them as the `symbol` argument in request.security() to retrieve data from the specified context.
• Most of these functions automatically select the timeframe of a data request because the data feeds are not available for all timeframes.
• All the functions have two overloads. The first overload of each function uses values with the "simple" qualifier to define the requested context, meaning the context does not change after the first script execution. The second accepts "series" values, meaning it can request data from different contexts across executions.
• The `gaps` parameter in most of these functions specifies whether the returned data is `na` when a new value is unavailable for request. By default, its value is `false`, meaning the call returns the last retrieved data when no new data is available.
• The `repaint` parameter in applicable functions determines whether the request can fetch the latest unconfirmed values from a higher timeframe on realtime bars, which might repaint after the script restarts. If `false`, the function only returns confirmed higher-timeframe values to avoid repainting. The default value is `true`.
`fred()`
The `fred()` function retrieves the most recent value of a specified series from the Federal Reserve Economic Data (FRED) database. With this function, programmers can easily fetch macroeconomic indicators, such as GDP and unemployment rates, and use them directly in their scripts.
How it works
The function's `fredCode` parameter accepts a "string" representing the unique identifier of a specific FRED series. Examples include "GDP" for the "Gross Domestic Product" series and "UNRATE" for the "Unemployment Rate" series. Over 825,000 codes are available. To access codes for available series, search the FRED website .
The function adds the "FRED:" prefix to the specified `fredCode` to construct a valid FRED ticker ID (e.g., "FRED:GDP"), which it uses in request.security() to retrieve the series data.
Example Usage
This line of code requests the latest value from the Gross Domestic Product series and assigns the returned value to a `gdpValue` variable:
float gdpValue = fred("GDP")
`finraShortSaleVolume()`
The `finraShortSaleVolume()` function retrieves EOD data from a FINRA Short Sale Volume series. Programmers can call this function to retrieve short-selling information for equities listed on supported exchanges, namely NASDAQ, NYSE, and NYSE ARCA.
How it works
The `symbol` parameter determines which symbol's short sale volume information is retrieved by the function. If the value is na , the function requests short sale volume data for the chart's symbol. The argument can be the name of the symbol from a supported exchange (e.g., "AAPL") or a ticker ID with an exchange prefix ("NASDAQ:AAPL"). If the `symbol` contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", or "BATS".
The function constructs a ticker ID in the format "FINRA:ticker_SHORT_VOLUME", where "ticker" is the symbol name without the exchange prefix (e.g., "AAPL"). It then uses the ticker ID in request.security() to retrieve the available data.
Example Usage
This line of code retrieves short sale volume for the chart's symbol and assigns the result to a `shortVolume` variable:
float shortVolume = finraShortSaleVolume(syminfo.tickerid)
This example requests short sale volume for the "NASDAQ:AAPL" symbol, irrespective of the current chart:
float shortVolume = finraShortSaleVolume("NASDAQ:AAPL")
`openInterestFutures()` and `openInterestCrypto()`
The `openInterestFutures()` function retrieves EOD open interest (OI) data for futures contracts. The `openInterestCrypto()` function provides more granular OI data for cryptocurrency contracts.
How they work
The `openInterestFutures()` function retrieves EOD closing OI information. Its design is focused primarily on retrieving OI data for futures, as only EOD OI data is available for these instruments. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe.
The `openInterestCrypto()` function retrieves opening, high, low, and closing OI data for a cryptocurrency contract on a specified timeframe. Unlike `openInterest()`, this function can also retrieve granular data from intraday timeframes.
Both functions contain a `symbol` parameter that determines the symbol for which the calls request OI data. The functions construct a valid OI ticker ID from the chosen symbol by appending "_OI" to the end (e.g., "CME:ES1!_OI").
The `openInterestFutures()` function requests and returns a two-element tuple containing the futures instrument's EOD closing OI and a "bool" condition indicating whether OI is rising.
The `openInterestCrypto()` function requests and returns a five-element tuple containing the cryptocurrency contract's opening, high, low, and closing OI, and a "bool" condition indicating whether OI is rising.
Example usage
This code line calls `openInterest()` to retrieve EOD OI and the OI rising condition for a futures symbol on the chart, assigning the values to two variables in a tuple:
= openInterestFutures(syminfo.tickerid)
This line retrieves the EOD OI data for "CME:ES1!", irrespective of the current chart's symbol:
= openInterestFutures("CME:ES1!")
This example uses `openInterestCrypto()` to retrieve OHLC OI data and the OI rising condition for a cryptocurrency contract on the chart, sampled at the chart's timeframe. It assigns the returned values to five variables in a tuple:
= openInterestCrypto(syminfo.tickerid, timeframe.period)
This call retrieves OI OHLC and rising information for "BINANCE:BTCUSDT.P" on the "1D" timeframe:
= openInterestCrypto("BINANCE:BTCUSDT.P", "1D")
`commitmentOfTraders()`
The `commitmentOfTraders()` function retrieves data from the Commitment of Traders (COT) reports published by the Commodity Futures Trading Commission (CFTC). This function significantly simplifies the COT request process, making it easier for programmers to access and utilize the available data.
How It Works
This function's parameters determine different parts of a valid ticker ID for retrieving COT data, offering a streamlined alternative to constructing complex COT ticker IDs manually. The `metricName`, `metricDirection`, and `includeOptions` parameters are required. They specify the name of the reported metric, the direction, and whether it includes information from options contracts.
The function also includes several optional parameters. The `CFTCCode` parameter allows programmers to request data for a specific report code. If unspecified, the function requests data based on the chart symbol's root prefix, base currency, or quoted currency, depending on the `mode` argument. The call can specify the report type ("Legacy", "Disaggregated", or "Financial") and metric type ("All", "Old", or "Other") with the `typeCOT` and `metricType` parameters.
Explore the CFTC website to find valid report codes for specific assets. To find detailed information about the metrics included in the reports and their meanings, see the CFTC's Explanatory Notes .
View the function's documentation below for detailed explanations of its parameters. For in-depth information about COT ticker IDs and more advanced functionality, refer to our previously published COT library .
Available metrics
Different COT report types provide different metrics . The tables below list all available metrics for each type and their applicable directions:
+------------------------------+------------------------+
| Legacy (COT) Metric Names | Directions |
+------------------------------+------------------------+
| Open Interest | No direction |
| Noncommercial Positions | Long, Short, Spreading |
| Commercial Positions | Long, Short |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No direction |
| Traders Noncommercial | Long, Short, Spreading |
| Traders Commercial | Long, Short |
| Traders Total Reportable | Long, Short |
| Concentration Gross LT 4 TDR | Long, Short |
| Concentration Gross LT 8 TDR | Long, Short |
| Concentration Net LT 4 TDR | Long, Short |
| Concentration Net LT 8 TDR | Long, Short |
+------------------------------+------------------------+
+-----------------------------------+------------------------+
| Disaggregated (COT2) Metric Names | Directions |
+-----------------------------------+------------------------+
| Open Interest | No Direction |
| Producer Merchant Positions | Long, Short |
| Swap Positions | Long, Short, Spreading |
| Managed Money Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Producer Merchant | Long, Short |
| Traders Swap | Long, Short, Spreading |
| Traders Managed Money | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-----------------------------------+------------------------+
+-------------------------------+------------------------+
| Financial (COT3) Metric Names | Directions |
+-------------------------------+------------------------+
| Open Interest | No Direction |
| Dealer Positions | Long, Short, Spreading |
| Asset Manager Positions | Long, Short, Spreading |
| Leveraged Funds Positions | Long, Short, Spreading |
| Other Reportable Positions | Long, Short, Spreading |
| Total Reportable Positions | Long, Short |
| Nonreportable Positions | Long, Short |
| Traders Total | No Direction |
| Traders Dealer | Long, Short, Spreading |
| Traders Asset Manager | Long, Short, Spreading |
| Traders Leveraged Funds | Long, Short, Spreading |
| Traders Other Reportable | Long, Short, Spreading |
| Traders Total Reportable | Long, Short |
| Concentration Gross LE 4 TDR | Long, Short |
| Concentration Gross LE 8 TDR | Long, Short |
| Concentration Net LE 4 TDR | Long, Short |
| Concentration Net LE 8 TDR | Long, Short |
+-------------------------------+------------------------+
Example usage
This code line retrieves "Noncommercial Positions (Long)" data, without options information, from the "Legacy" report for the chart symbol's root, base currency, or quote currency:
float nonCommercialLong = commitmentOfTraders("Noncommercial Positions", "Long", false)
This example retrieves "Managed Money Positions (Short)" data, with options included, from the "Disaggregated" report:
float disaggregatedData = commitmentOfTraders("Managed Money Positions", "Short", true, "", "Disaggregated")
█ NOTES
• This library uses dynamic requests , allowing dynamic ("series") arguments for the parameters defining the context (ticker ID, timeframe, etc.) of a `request.*()` function call. With this feature, a single `request.*()` call instance can flexibly retrieve data from different feeds across historical executions. Additionally, scripts can use such calls in the local scopes of loops, conditional structures, and even exported library functions, as demonstrated in this script. All scripts coded in Pine Script™ v6 have dynamic requests enabled by default. To learn more about the behaviors and limitations of this feature, see the Dynamic requests section of the Pine Script™ User Manual.
• The library's example code offers a simple demonstration of the exported functions. The script retrieves available data using the function specified by the "Series type" input. The code requests a FRED series or COT (Legacy), FINRA Short Sale Volume, or Open Interest series for the chart's symbol with specific parameters, then plots the retrieved data as a step-line with diamond markers.
Look first. Then leap.
█ EXPORTED FUNCTIONS
This library exports the following functions:
fred(fredCode, gaps)
Requests a value from a specified Federal Reserve Economic Data (FRED) series. FRED is a comprehensive source that hosts numerous U.S. economic datasets. To explore available FRED datasets and codes, search for specific categories or keywords at fred.stlouisfed.org Calls to this function count toward a script's `request.*()` call limit.
Parameters:
fredCode (series string) : The unique identifier of the FRED series. The function uses the value to create a valid ticker ID for retrieving FRED data in the format `"FRED:fredCode"`. For example, `"GDP"` refers to the "Gross Domestic Product" series ("FRED:GDP"), and `"GFDEBTN"` refers to the "Federal Debt: Total Public Debt" series ("FRED:GFDEBTN").
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
Returns: (float) The value from the requested FRED series.
finraShortSaleVolume(symbol, gaps, repaint)
Requests FINRA daily short sale volume data for a specified symbol from one of the following exchanges: NASDAQ, NYSE, NYSE ARCA. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request short sale volume data. If the specified value contains an exchange prefix, it must be one of the following: "NASDAQ", "NYSE", "AMEX", "BATS".
gaps (simple bool) : Optional. If `true`, the function returns a non-na value only when a new value is available from the requested context. If `false`, the function returns the latest retrieved value when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: (float) The short sale volume for the specified symbol or the chart's symbol.
openInterestFutures(symbol, gaps, repaint)
Requests EOD open interest (OI) and OI rising information for a valid futures symbol. If the chart uses an intraday timeframe, the function requests data from the "1D" timeframe. Otherwise, it uses the chart's timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the chart's timeframe is intraday, the value requested on realtime bars may change its time offset after the script restarts its executions. If `false`, the function returns the last confirmed period's values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The closing OI value for the symbol.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
openInterestCrypto(symbol, timeframe, gaps, repaint)
Requests opening, high, low, and closing open interest (OI) data and OI rising information for a valid cryptocurrency contract on a specified timeframe. Calls to this function count toward a script's `request.*()` call limit.
Parameters:
symbol (series string) : The symbol for which to request open interest data.
timeframe (series string) : The timeframe of the data request. If the timeframe is lower than the chart's timeframe, it causes a runtime error.
gaps (simple bool) : Optional. If `true`, the function returns non-na values only when new values are available from the requested context. If `false`, the function returns the latest retrieved values when new data is unavailable. The default is `false`.
repaint (simple bool) : Optional. If `true` and the `timeframe` represents a higher timeframe, the function returns unconfirmed values from the timeframe on realtime bars, which repaint when the script restarts its executions. If `false`, it returns only confirmed higher-timeframe values to avoid repainting. The default is `true`.
Returns: ( ) A tuple containing the following values:
- The opening, high, low, and closing OI values for the symbol, respectively.
- `true` if the closing OI is above the previous period's value, `false` otherwise.
commitmentOfTraders(metricName, metricDirection, includeOptions, CFTCCode, typeCOT, mode, metricType)
Requests Commitment of Traders (COT) data with specified parameters. This function provides a simplified way to access CFTC COT data available on TradingView. Calls to this function count toward a script's `request.*()` call limit. For more advanced tools and detailed information about COT data, see TradingView's LibraryCOT library.
Parameters:
metricName (series string) : One of the valid metric names listed in the library's documentation and source code.
metricDirection (series string) : Metric direction. Possible values are: "Long", "Short", "Spreading", and "No direction". Consult the library's documentation or code to see which direction values apply to the specified metric.
includeOptions (series bool) : If `true`, the COT symbol includes options information. Otherwise, it does not.
CFTCCode (series string) : Optional. The CFTC code for the asset. For example, wheat futures (root "ZW") have the code "001602". If one is not specified, the function will attempt to get a valid code for the chart symbol's root, base currency, or main currency.
typeCOT (series string) : Optional. The type of report to request. Possible values are: "Legacy", "Disaggregated", "Financial". The default is "Legacy".
mode (series string) : Optional. Specifies the information the function extracts from a symbol. Possible modes are:
- "Root": The function extracts the futures symbol's root prefix information (e.g., "ES" for "ESH2020").
- "Base currency": The function extracts the first currency from a currency pair (e.g., "EUR" for "EURUSD").
- "Currency": The function extracts the currency of the symbol's quoted values (e.g., "JPY" for "TSE:9984" or "USDJPY").
- "Auto": The function tries the first three modes (Root -> Base currency -> Currency) until it finds a match.
The default is "Auto". If the specified mode is not available for the symbol, it causes a runtime error.
metricType (series string) : Optional. The metric type. Possible values are: "All", "Old", "Other". The default is "All".
Returns: (float) The specified Commitment of Traders data series. If no data is available, it causes a runtime error.
MktCumTickThis script is a market sentiment indicator that calculates the cumulative TICK (Trade Imbalance Sentiment) for four major markets: NYSE (New York Stock Exchange), NASDAQ (National Association of Securities Dealers Automated Quotations), Dow Jones, and AMEX (American Stock Exchange).
Here's a breakdown of the script:
1. Market data requests: The script requests data for the four markets, including:
- TICK (Trade Imbalance Sentiment) data
- HLC3 (High, Low, Close) data
- ADVN (Advancing issues), DECL (Declining issues), and UNCH (Unchanged issues) data
2. Cumulative TICK calculation: The script calculates the cumulative TICK for each market by dividing the TICK data by the maximum TICK value for each market.
3. Plotting: The script plots the cumulative TICK values for each market as separate lines on the chart.
4. Background color: The script changes the background color of the chart based on the cumulative TICK values. If all four markets have decreasing cumulative TICK values, the background color turns red. If all four markets have increasing cumulative TICK values, the background color turns green.
The purpose of this indicator is to provide a visual representation of market sentiment across multiple markets. By analyzing the cumulative TICK values, traders can gain insights into market trends and make more informed trading decisions.
Some possible uses of this indicator include:
- Identifying market trends and sentiment
- Confirming trade entries and exits
- Monitoring market conditions and adjusting trading strategies accordingly
High/Low Location Frequency [LuxAlgo]The High/Low Location Frequency tool provides users with probabilities of tops and bottoms at user-defined periods, along with advanced filters that offer deep and objective market information about the likelihood of a top or bottom in the market.
🔶 USAGE
There are four different time periods that traders can select for analysis of probabilities:
HOUR OF DAY: Probability of occurrence of top and bottom prices for each hour of the day
DAY OF WEEK: Probability of occurrence of top and bottom prices for each day of the week
DAY OF MONTH: Probability of occurrence of top and bottom prices for each day of the month
MONTH OF YEAR: Probability of occurrence of top and bottom prices for each month
The data is displayed as a dashboard, which users can position according to their preferences. The dashboard includes useful information in the header, such as the number of periods and the date from which the data is gathered. Additionally, users can enable active filters to customize their view. The probabilities are displayed in one, two, or three columns, depending on the number of elements.
🔹 Advanced Filters
Advanced Filters allow traders to exclude specific data from the results. They can choose to use none or all filters simultaneously, inputting a list of numbers separated by spaces or commas. However, it is not possible to use both separators on the same filter.
The tool is equipped with five advanced filters:
HOURS OF DAY: The permitted range is from 0 to 23.
DAYS OF WEEK: The permitted range is from 1 to 7.
DAYS OF MONTH: The permitted range is from 1 to 31.
MONTHS: The permitted range is from 1 to 12.
YEARS: The permitted range is from 1000 to 2999.
It should be noted that the DAYS OF WEEK advanced filter has been designed for use with tickers that trade every day, such as those trading in the crypto market. In such cases, the numbers displayed will range from 1 (Sunday) to 7 (Saturday). Conversely, for tickers that do not trade over the weekend, the numbers will range from 1 (Monday) to 5 (Friday).
To illustrate the application of this filter, we will exclude results for Mondays and Tuesdays, the first five days of each month, January and February, and the years 2020, 2021, and 2022. Let us review the results:
DAYS OF WEEK: `2,3` or `2 3` (for crypto) or `1,2` or `1 2` (for the rest)
DAYS OF MONTH: `1,2,3,4,5` or `1 2 3 4 5`
MONTHS: `1,2` or `1 2`
YEARS: `2020,2021,2022` or `2020 2021 2022`
🔹 High Probability Lines
The tool enables traders to identify the next period with the highest probability of a top (red) and/or bottom (green) on the chart, marked with two horizontal lines indicating the location of these periods.
🔹 Top/Bottom Labels and Periods Highlight
The tool is capable of indicating on the chart the upper and lower limits of each selected period, as well as the commencement of each new period, thus providing traders with a convenient reference point.
🔶 SETTINGS
Period: Select how many bars (hours, days, or months) will be used to gather data from, max value as default.
Execution Window: Select how many bars (hours, days, or months) will be used to gather data from
🔹 Advanced Filters
Hours of day: Filter which hours of the day are excluded from the data, it accepts a list of hours from 0 to 23 separated by commas or spaces, users can not mix commas or spaces as a separator, must choose one
Days of week: Filter which days of the week are excluded from the data, it accepts a list of days from 1 to 5 for tickers not trading weekends, or from 1 to 7 for tickers trading all week, users can choose between commas or spaces as a separator, but can not mix them on the same filter.
Days of month: Filter which days of the month are excluded from the data, it accepts a list of days from 1 to 31, users can choose between commas or spaces as separator, but can not mix them on the same filter.
Months: Filter months to exclude from data. Accepts months from 1 to 12. Choose one separator: comma or space.
Years: Filter years to exclude from data. Accepts years from 1000 to 2999. Choose one separator: comma or space.
🔹 Dashboard
Dashboard Location: Select both the vertical and horizontal parameters for the desired location of the dashboard.
Dashboard Size: Select size for dashboard.
🔹 Style
High Probability Top Line: Enable/disable `High Probability Top` vertical line and choose color
High Probability Bottom Line: Enable/disable `High Probability Bottom` vertical line and choose color
Top Label: Enable/disable period top labels, choose color and size.
Bottom Label: Enable/disable period bottom labels, choose color and size.
Highlight Period Changes: Enable/disable vertical highlight at start of period
ICT Master Suite [Trading IQ]Hello Traders!
We’re excited to introduce the ICT Master Suite by TradingIQ, a new tool designed to bring together several ICT concepts and strategies in one place.
The Purpose Behind the ICT Master Suite
There are a few challenges traders often face when using ICT-related indicators:
Many available indicators focus on one or two ICT methods, which can limit traders who apply a broader range of ICT related techniques on their charts.
There aren't many indicators for ICT strategy models, and we couldn't find ICT indicators that allow for testing the strategy models and setting alerts.
Many ICT related concepts exist in the public domain as indicators, not strategies! This makes it difficult to verify that the ICT concept has some utility in the market you're trading and if it's worth trading - it's difficult to know if it's working!
Some users might not have enough chart space to apply numerous ICT related indicators, which can be restrictive for those wanting to use multiple ICT techniques simultaneously.
The ICT Master Suite is designed to offer a comprehensive option for traders who want to apply a variety of ICT methods. By combining several ICT techniques and strategy models into one indicator, it helps users maximize their chart space while accessing multiple tools in a single slot.
Additionally, the ICT Master Suite was developed as a strategy . This means users can backtest various ICT strategy models - including deep backtesting. A primary goal of this indicator is to let traders decide for themselves what markets to trade ICT concepts in and give them the capability to figure out if the strategy models are worth trading!
What Makes the ICT Master Suite Different
There are many ICT-related indicators available on TradingView, each offering valuable insights. What the ICT Master Suite aims to do is bring together a wider selection of these techniques into one tool. This includes both key ICT methods and strategy models, allowing traders to test and activate strategies all within one indicator.
Features
The ICT Master Suite offers:
Multiple ICT strategy models, including the 2022 Strategy Model and Unicorn Model, which can be built, tested, and used for live trading.
Calculation and display of key price areas like Breaker Blocks, Rejection Blocks, Order Blocks, Fair Value Gaps, Equal Levels, and more.
The ability to set alerts based on these ICT strategies and key price areas.
A comprehensive, yet practical, all-inclusive ICT indicator for traders.
Customizable Timeframe - Calculate ICT concepts on off-chart timeframes
Unicorn Strategy Model
2022 Strategy Model
Liquidity Raid Strategy Model
OTE (Optimal Trade Entry) Strategy Model
Silver Bullet Strategy Model
Order blocks
Breaker blocks
Rejection blocks
FVG
Strong highs and lows
Displacements
Liquidity sweeps
Power of 3
ICT Macros
HTF previous bar high and low
Break of Structure indications
Market Structure Shift indications
Equal highs and lows
Swings highs and swing lows
Fibonacci TPs and SLs
Swing level TPs and SLs
Previous day high and low TPs and SLs
And much more! An ongoing project!
How To Use
Many traders will already be familiar with the ICT related concepts listed above, and will find using the ICT Master Suite quite intuitive!
Despite this, let's go over the features of the tool in-depth and how to use the tool!
The image above shows the ICT Master Suite with almost all techniques activated.
ICT 2022 Strategy Model
The ICT Master suite provides the ability to test, set alerts for, and live trade the ICT 2022 Strategy Model.
The image above shows an example of a long position being entered following a complete setup for the 2022 ICT model.
A liquidity sweep occurs prior to an upside breakout. During the upside breakout the model looks for the FVG that is nearest 50% of the setup range. A limit order is placed at this FVG for entry.
The target entry percentage for the range is customizable in the settings. For instance, you can select to enter at an FVG nearest 33% of the range, 20%, 66%, etc.
The profit target for the model generally uses the highest high of the range (100%) for longs and the lowest low of the range (100%) for shorts. Stop losses are generally set at 0% of the range.
The image above shows the short model in action!
Whether you decide to follow the 2022 model diligently or not, you can still set alerts when the entry condition is met.
ICT Unicorn Model
The image above shows an example of a long position being entered following a complete setup for the ICT Unicorn model.
A lower swing low followed by a higher swing high precedes the overlap of an FVG and breaker block formed during the sequence.
During the upside breakout the model looks for an FVG and breaker block that formed during the sequence and overlap each other. A limit order is placed at the nearest overlap point to current price.
The profit target for this example trade is set at the swing high and the stop loss at the swing low. However, both the profit target and stop loss for this model are configurable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
For Longs, the selectable stop losses are:
Swing Low
Bottom of FVG or breaker block
The image above shows the short version of the Unicorn Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
For Shorts, the selectable stop losses are:
Swing High
Top of FVG or breaker block
The image above shows the profit target and stop loss options in the settings for the Unicorn Model.
Optimal Trade Entry (OTE) Model
The image above shows an example of a long position being entered following a complete setup for the OTE model.
Price retraces either 0.62, 0.705, or 0.79 of an upside move and a trade is entered.
The profit target for this example trade is set at the -0.5 fib level. This is also adjustable in the settings.
For Longs, the selectable profit targets are:
Swing High
Fib -0.5
Fib -1
Fib -2
The image above shows the short version of the OTE Model in action!
For Shorts, the selectable profit targets are:
Swing Low
Fib -0.5
Fib -1
Fib -2
Liquidity Raid Model
The image above shows an example of a long position being entered following a complete setup for the Liquidity Raid Modell.
The user must define the session in the settings (for this example it is 13:30-16:00 NY time).
During the session, the indicator will calculate the session high and session low. Following a “raid” of either the session high or session low (after the session has completed) the script will look for an entry at a recently formed breaker block.
If the session high is raided the script will look for short entries at a bearish breaker block. If the session low is raided the script will look for long entries at a bullish breaker block.
For Longs, the profit target options are:
Swing high
User inputted Lib level
For Longs, the stop loss options are:
Swing low
User inputted Lib level
Breaker block bottom
The image above shows the short version of the Liquidity Raid Model in action!
For Shorts, the profit target options are:
Swing Low
User inputted Lib level
For Shorts, the stop loss options are:
Swing High
User inputted Lib level
Breaker block top
Silver Bullet Model
The image above shows an example of a long position being entered following a complete setup for the Silver Bullet Modell.
During the session, the indicator will determine the higher timeframe bias. If the higher timeframe bias is bullish the strategy will look to enter long at an FVG that forms during the session. If the higher timeframe bias is bearish the indicator will look to enter short at an FVG that forms during the session.
For Longs, the profit target options are:
Nearest Swing High Above Entry
Previous Day High
For Longs, the stop loss options are:
Nearest Swing Low
Previous Day Low
The image above shows the short version of the Silver Bullet Model in action!
For Shorts, the profit target options are:
Nearest Swing Low Below Entry
Previous Day Low
For Shorts, the stop loss options are:
Nearest Swing High
Previous Day High
Order blocks
The image above shows indicator identifying and labeling order blocks.
The color of the order blocks, and how many should be shown, are configurable in the settings!
Breaker Blocks
The image above shows indicator identifying and labeling order blocks.
The color of the breaker blocks, and how many should be shown, are configurable in the settings!
Rejection Blocks
The image above shows indicator identifying and labeling rejection blocks.
The color of the rejection blocks, and how many should be shown, are configurable in the settings!
Fair Value Gaps
The image above shows indicator identifying and labeling fair value gaps.
The color of the fair value gaps, and how many should be shown, are configurable in the settings!
Additionally, you can select to only show fair values gaps that form after a liquidity sweep. Doing so reduces "noisy" FVGs and focuses on identifying FVGs that form after a significant trading event.
The image above shows the feature enabled. A fair value gap that occurred after a liquidity sweep is shown.
Market Structure
The image above shows the ICT Master Suite calculating market structure shots and break of structures!
The color of MSS and BoS, and whether they should be displayed, are configurable in the settings.
Displacements
The images above show indicator identifying and labeling displacements.
The color of the displacements, and how many should be shown, are configurable in the settings!
Equal Price Points
The image above shows the indicator identifying and labeling equal highs and equal lows.
The color of the equal levels, and how many should be shown, are configurable in the settings!
Previous Custom TF High/Low
The image above shows the ICT Master Suite calculating the high and low price for a user-defined timeframe. In this case the previous day’s high and low are calculated.
To illustrate the customizable timeframe function, the image above shows the indicator calculating the previous 4 hour high and low.
Liquidity Sweeps
The image above shows the indicator identifying a liquidity sweep prior to an upside breakout.
The image above shows the indicator identifying a liquidity sweep prior to a downside breakout.
The color and aggressiveness of liquidity sweep identification are adjustable in the settings!
Power Of Three
The image above shows the indicator calculating Po3 for two user-defined higher timeframes!
Macros
The image above shows the ICT Master Suite identifying the ICT macros!
ICT Macros are only displayable on the 5 minute timeframe or less.
Strategy Performance Table
In addition to a full-fledged TradingView backtest for any of the ICT strategy models the indicator offers, a quick-and-easy strategy table exists for the indicator!
The image above shows the strategy performance table in action.
Keep in mind that, because the ICT Master Suite is a strategy script, you can perform fully automatic backtests, deep backtests, easily add commission and portfolio balance and look at pertinent metrics for the ICT strategies you are testing!
Lite Mode
Traders who want the cleanest chart possible can toggle on “Lite Mode”!
In Lite Mode, any neon or “glow” like effects are removed and key levels are marked as strict border boxes. You can also select to remove box borders if that’s what you prefer!
Settings Used For Backtest
For the displayed backtest, a starting balance of $1000 USD was used. A commission of 0.02%, slippage of 2 ticks, a verify price for limit orders of 2 ticks, and 5% of capital investment per order.
A commission of 0.02% was used due to the backtested asset being a perpetual future contract for a crypto currency. The highest commission (lowest-tier VIP) for maker orders on many exchanges is 0.02%. All entered positions take place as maker orders and so do profit target exits. Stop orders exist as stop-market orders.
A slippage of 2 ticks was used to simulate more realistic stop-market orders. A verify limit order settings of 2 ticks was also used. Even though BTCUSDT.P on Binance is liquid, we just want the backtest to be on the safe side. Additionally, the backtest traded 100+ trades over the period. The higher the sample size the better; however, this example test can serve as a starting point for traders interested in ICT concepts.
Community Assistance And Feedback
Given the complexity and idiosyncratic applications of ICT concepts amongst its proponents, the ICT Master Suite’s built-in strategies and level identification methods might not align with everyone's interpretation.
That said, the best we can do is precisely define ICT strategy rules and concepts to a repeatable process, test, and apply them! Whether or not an ICT strategy is trading precisely how you would trade it, seeing the model in action, taking trades, and with performance statistics is immensely helpful in assessing predictive utility.
If you think we missed something, you notice a bug, have an idea for strategy model improvement, please let us know! The ICT Master Suite is an ongoing project that will, ideally, be shaped by the community.
A big thank you to the @PineCoders for their Time Library!
Thank you!
Risk Contract Table by Soothing TradesDescription:
Risk Contract Table by Soothing Trades
This script provides an intuitive table that displays the calculated risk in dollars for various contract sizes based on the size of the last closed candle.
It is designed to help traders quickly assess their risk exposure based on the most recent price movement.
Key Features:
Automatic and Manual Tick Value Calculation: Automatically fetches the tick value for your instrument.
You can also override it with a manual input using a convenient checkbox.
Customizable Contract Sizes: Easily input your preferred contract sizes.
The script dynamically adjusts the table headers and risk calculations based on your inputs.
Real-Time Updates:
The table updates with each new candle close, ensuring that your risk calculations are always based on the latest candle size.
User-Friendly Display: The table is displayed directly on your chart with customizable colors for both text and background, making it easy to match your chart’s theme.
How to Use:
Tick Value: By default, the script uses the automatic tick value.
To manually set the tick value, check the "Use Manual Tick Value" box and enter your desired value.
Contract Sizes: You can input the number of contracts for each category (5ct, 10ct, 15ct, 17ct). The script calculates and displays the risk for each contract size based on the tick movement of the last closed candle only.
Real-Time Calculations: Risk calculations are updated only after the candle is closed, so there are no misleading values during live market activity.
Customization Options:
Manual Tick Value Override: Use a custom tick value by enabling the "Use Manual Tick Value" option.
Custom Contract Sizes: Input your desired contract sizes, and the table headers and risk calculations will update accordingly.
Color Customization: Customize the text and background colors to fit your chart’s aesthetic.
How It Works:
The script calculates the tick movement from the last closed candle and multiplies it by the specified tick value and the number of contracts.
You can choose to use the default automatic tick value or manually input your own.
A table appears on the chart showing the risk for different contract sizes based solely on the size of the last candle, providing a quick snapshot of potential exposure from the most recent price movement.
This script is ideal for traders who want to keep a quick and accurate overview of their potential risk exposure based on the size of the most recent price action.
Whether you are scalping, day trading, or holding positions overnight, this tool by Soothing Trades will help you stay informed and make better trading decisions.
Happy Trading!
- use at own risk, for education and test purpose only.
Developed by Soothing Trades
Rolling Correlation with Bitcoin V1.1 [ADRIDEM]Overview
The Rolling Correlation with Bitcoin script is designed to offer a comprehensive view of the correlation between the selected ticker and Bitcoin. This script helps investors understand the relationship between the performance of the current ticker and Bitcoin over a rolling period, providing insights into their interconnected behavior. Below is a detailed presentation of the script and its unique features.
Unique Features of the New Script
Bitcoin Comparison : Allows users to compare the correlation of the current ticker with Bitcoin, providing an analysis of their relationship.
Customizable Rolling Window : Enables users to set the length for the rolling window, adapting to different market conditions and timeframes. The default value is 252 bars, which approximates one year of trading days, but it can be adjusted as needed.
Smoothing Option : Includes an option to apply a smoothing simple moving average (SMA) to the correlation coefficient, helping to reduce noise and highlight trends. The smoothing length is customizable, with a default value of 4 bars.
Visual Indicators : Plots the smoothed correlation coefficient between the current ticker and Bitcoin, with distinct colors for easy interpretation. Additionally, horizontal lines help identify key levels of correlation.
Dynamic Background Color : Adds dynamic background colors to highlight areas of strong positive and negative correlations, enhancing visual clarity.
Originality and Usefulness
This script uniquely combines the analysis of rolling correlation for a current ticker with Bitcoin, providing a comparative view of their relationship. The inclusion of a customizable rolling window and smoothing option enhances its adaptability and usefulness in various market conditions.
Signal Description
The script includes several features that highlight potential insights into the correlation between the assets:
Rolling Correlation with Bitcoin : Plotted as a red line, this represents the smoothed rolling correlation coefficient between the current ticker and Bitcoin.
Horizontal Lines and Background Color : Lines at -0.5, 0, and 0.5 help to quickly identify regions of strong negative, weak, and strong positive correlations.
These features assist in identifying the strength and direction of the relationship between the current ticker and Bitcoin.
Detailed Description
Input Variables
Length for Rolling Window (`length`) : Defines the range for calculating the rolling correlation coefficient. Default is 252.
Smoothing Length (`smoothing_length`) : The number of periods for the smoothing SMA. Default is 4.
Bitcoin Ticker (`bitcoin_ticker`) : The ticker symbol for Bitcoin. Default is "BINANCE:BTCUSDT".
Functionality
Correlation Calculation : The script calculates the daily returns for both Bitcoin and the current ticker and computes their rolling correlation coefficient.
```pine
bitcoin_close = request.security(bitcoin_ticker, timeframe.period, close)
bitcoin_dailyReturn = ta.change(bitcoin_close) / bitcoin_close
current_dailyReturn = ta.change(close) / close
rolling_correlation = ta.correlation(current_dailyReturn, bitcoin_dailyReturn, length)
```
Smoothing : A simple moving average is applied to the rolling correlation coefficient to smooth the data.
```pine
smoothed_correlation = ta.sma(rolling_correlation, smoothing_length)
```
Plotting : The script plots the smoothed rolling correlation coefficient and includes horizontal lines for key levels.
```pine
plot(smoothed_correlation, title="Rolling Correlation with Bitcoin", color=color.rgb(255, 82, 82, 50), linewidth=2)
h_neg1 = hline(-1, "-1 Line", color=color.gray)
h_neg05 = hline(-0.5, "-0.5 Line", color=color.red)
h0 = hline(0, "Zero Line", color=color.gray)
h_pos05 = hline(0.5, "0.5 Line", color=color.green)
h1 = hline(1, "1 Line", color=color.gray)
fill(h_neg1, h_neg05, color=color.rgb(255, 0, 0, 90), title="Strong Negative Correlation Background")
fill(h_neg05, h0, color=color.rgb(255, 165, 0, 90), title="Weak Negative Correlation Background")
fill(h0, h_pos05, color=color.rgb(255, 255, 0, 90), title="Weak Positive Correlation Background")
fill(h_pos05, h1, color=color.rgb(0, 255, 0, 90), title="Strong Positive Correlation Background")
```
How to Use
Configuring Inputs : Adjust the rolling window length and smoothing length as needed. Ensure the Bitcoin ticker is set to the desired asset for comparison.
Interpreting the Indicator : Use the plotted correlation coefficient and horizontal lines to assess the strength and direction of the relationship between the current ticker and Bitcoin.
Signal Confirmation : Look for periods of strong positive or negative correlation to identify potential co-movements or divergences. The background colors help to highlight these key levels.
This script provides a detailed comparative view of the correlation between the current ticker and Bitcoin, aiding in more informed decision-making by highlighting the strength and direction of their relationship.
Smart Money Concept [TradingFinder] Major OB + FVG + Liquidity🔵 Introduction
"Smart Money" refers to funds under the control of institutional investors, central banks, funds, market makers, and other financial entities. Ordinary people recognize investments made by those who have a deep understanding of market performance and possess information typically inaccessible to regular investors as "Smart Money".
Consequently, when market movements often diverge from expectations, traders identify the footprints of smart money. For example, when a classic pattern forms in the market, traders take short positions. However, the market might move upward instead. They attribute this contradiction to smart money and seek to capitalize on such inconsistencies in their trades.
The "Smart Money Concept" (SMC) is one of the primary styles of technical analysis that falls under the subset of "Price Action". Price action encompasses various subcategories, with one of the most significant being "Supply and Demand", in which SMC is categorized.
The SMC method aims to identify trading opportunities by emphasizing the impact of large traders (Smart Money) on the market, offering specific patterns, techniques, and trading strategies.
🟣 Key Terms of Smart Money Concept (SMC)
• Market Structure (Trend)
• Change of Character (ChoCh)
• Break of Structure (BoS)
• Order Blocks (Supply and Demand)
• Imbalance (IMB)
• Inefficiency (IFC)
• Fair Value Gap (FVG)
• Liquidity
• Premium and Discount
🔵 How Does the "Smart Money Concept Indicator" Work?
🟣 Market Structure
a. Accumulation
b. Market-Up
c. Distribution
d. Market-Down
a) Accumulation Phase : During the accumulation period, typically following a downtrend, smart money enters the market without significantly affecting the pricing trend.
b) Market-Up Phase : In this phase, the price of an asset moves upward from the accumulation range and begins to rise. Usually, the buying by retail investors is the main driver of this trend, and due to positive market sentiment, it continues.
c) Distribution Phase : The distribution phase, unlike the accumulation stage, occurs after an uptrend. In this phase, smart money attempts to exit the market without causing significant price fluctuations.
d) Market-Down Phase : In this stage, the price of an asset moves downward from the distribution phase, initiating a prolonged downtrend. Smart money liquidates all its positions by creating selling pressure, trapping latecomer investors.
The result of these four phases in the market becomes the market trend.
Types of Trends in Financial Markets :
a. Up-Trend
b. Down Trend
c. Range (No Trend)
a) Up-Trend : The market breaks consecutive highs.
b) Down Trend : The market breaks consecutive lows.
c) No Trend or Range : The market oscillates within a range without breaking either highs or lows.
🟣 Change of Character (ChoCh)
The "ChoCh" or "Change of Character" pattern indicates an initial change in order flow in financial markets. This structural change occurs when a major pivot in the opposite direction of the market trend fails. It signals a potential change in the market trend and can serve as a signal for short-term or long-term trend changes in a trading symbol.
🟣 Break of Structure (BoS)
The "BoS" or "Break of Structure" pattern indicates the continuation of the trend in financial markets. This structure forms when, in an uptrend, the price breaks its ceiling or, in a downtrend, the price breaks its floor.
🟣 Order Blocks (Supply and Demand)
Order blocks consist of supply and demand areas where the likelihood of price reversal is higher. There are six order blocks in this indicator, categorized based on their origin and formation reasons.
a. Demand Main Zone, "ChoCh" Origin.
b. Demand Sub Zone, "ChoCh" Origin.
c. Demand All Zone, "BoS" Origin.
d. Supply Main Zone, "ChoCh" Origin.
e. Supply Sub Zone, "ChoCh" Origin.
f. Supply All Zone, "BoS" Origin.
🟣 FVG | Inefficiency | Imbalance
These three terms are almost synonymous. They describe the presence of gaps between consecutive candle shadows. This inefficiency occurs when the market moves rapidly. Primarily, imbalances and these rapid movements stem from the entry of smart money and the imbalance between buyer and seller power. Therefore, identifying these movements is crucial for traders.
These areas are significant because prices often return to fill these gaps or even before they occur to fill price gaps.
🟣 Liquidity
Liquidity zones are areas where there is a likelihood of congestion of stop-loss orders. Liquidity is considered the driving force of the entire market, and market makers may manipulate the market using these zones. However, in many cases, this does not happen because there is insufficient liquidity in some areas.
Types of Liquidity in Financial Markets :
a. Trend Lines
b. Double Tops | Double Bottoms
c. Triple Tops | Triple Bottoms
d. Support Lines | Resistance Lines
All four types of liquidity in this indicator are automatically identified.
🟣 Premium and Discount
Premium and discount zones can assist traders in making better decisions. For instance, they may sell positions in expensive ranges and buy in cheaper ranges. The closer the price is to the major resistance, the more expensive it is, and the closer it is to the major support, the cheaper it is.
🔵 How to Use
🟣 Change of Character (ChoCh) and Break of Structure (BoS)
This indicator detects "ChoCh" and "BoS" in both Minor and Major states. You can turn on the display of these lines by referring to the last part of the settings.
🟣 Order Blocks (Supply and Demand)
Order blocks are Zones where the probability of price reversal is higher. In demand Zones you can buy opportunities and in supply Zones you can check sell opportunities.
The "Refinement" feature allows you to adjust the width of the order block according to your strategy. There are two modes, "Aggressive" and "Defensive," in the "Order Block Refine". The difference between "Aggressive" and "Defensive" lies in the width of the order block.
For risk-averse traders, the "Defensive" mode is suitable as it provides a lower loss limit and a greater reward-to-risk ratio. For risk-taking traders, the "Aggressive" mode is more appropriate. These traders prefer to enter trades at higher prices, and this mode, which has a wider order block width, is more suitable for this group of individuals.
🟣 Fair Value Gap (FVG) | Imbalance (IMB) | Inefficiency (IFC)
In order to identify the "fair value gap" on the chart, it must be analyzed candle by candle. In this process, it is important to pay attention to candles with a large size, and a candle and a candle should be examined before that.
Candles before and after this central candle should have long shadows and their bodies should not overlap with the central candle body. The distance between the shadows of the first and third candles is known as the FVG range.
These areas work in two ways :
• Supply and demand area : In this case, the price reacts to these areas and the trend is reversed.
• Liquidity zone : In this scenario, the price "fills" the zone and then reaches the order block.
Important note : In most cases, the FVG zone of very small width acts as a supply and demand zone, while the zone of significant width acts as a liquidity zone and absorbs price.
When the FVG filter is activated, the FVG regions are filtered based on the specified algorithm.
FVG filter types include the following :
1. Very Aggressive Mode : In addition to the initial condition, an additional condition is considered. For bullish FVG, the maximum price of the last candle must be greater than the maximum price of the middle candle.
Similarly, for a bearish FVG, the minimum price of the last candle must be lower than the minimum price of the middle candle. This mode removes the minimum number of FVGs.
2. Aggressive : In addition to the very aggressive condition, the size of the middle candle is also considered. The size of the center candle should not be small and therefore more FVGs are removed in this case.
3. Defensive : In addition to the conditions of the very aggressive mode, this mode also considers the size of the middle pile, which should be relatively large and make up the majority of the body.
Also, to identify bullish FVGs, the second and third candles must be positive, while for bearish FVGs, the second and third candles must be negative. This mode filters out a significant number of FVGs and keeps only those of good quality.
4. Very Defensive : In addition to the conditions of the defensive mode, in this mode the first and third candles should not be very small-bodied doji candles. This mode filters out most FVGs and only the best quality ones remain.
🟣 Liquidity
These levels are where traders intend to exit their trades. "Market makers" or smart money usually accumulate or distribute their trading positions near these levels, where many retail traders have placed their "stop loss" orders. When liquidity is collected from these losses, the price often reverses.
A "Stop hunt" is a move designed to offset liquidity generated by established stop losses. Banks often use major news events to trigger stop hunts and capture liquidity released into the market. For example, if they intend to execute heavy buy orders, they encourage others to sell through stop-hots.
Consequently, if there is liquidity in the market before reaching the order block area, the validity of that order block is higher. Conversely, if the liquidity is close to the order block, that is, the price reaches the order block before reaching the liquidity limit, the validity of that order block is lower.
🟣 Alert
With the new alert functionality in this indicator, you won't miss any important trading signals. Alerts are activated when the price hits the last order block.
1. It is possible to set alerts for each "symbol" and "time frame". The system will automatically detect both and include them in the warning message.
2. Each alert provides the exact date and time it was triggered. This helps you measure the timeliness of the signal and evaluate its relevance.
3. Alerts include target order block price ranges. The "Proximal" level represents the initial price level strike, while the "Distal" level represents the maximum price gap in the block. These details are included in the warning message.
4. You can customize the alert name through the "Alert Name" entry.
5. Create custom messages for "long" and "short" alerts to be sent with notifications.
🔵 Setting
a. Pivot Period of Order Blocks Detector :
Using this parameter, you can set the zigzag period that is formed based on the pivots.
b. Order Blocks Validity Period (Bar) :
You can set the validity period of each Order Block based on the number of candles that have passed since the origin of the Order Block.
c. Demand Main Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Demand Main Zone, "ChoCh" Origin.
d. Demand Sub Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Demand Sub Zone, "ChoCh" Origin.
e. Demand All Zone, "BoS" Origin :
You can control the display or not display as well as the color of Demand All Zone, "BoS" Origin.
f. Supply Main Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Supply Main Zone, "ChoCh" Origin.
g. Supply Sub Zone, "ChoCh" Origin :
You can control the display or not display as well as the color of Supply Sub Zone, "ChoCh" Origin.
h. Supply All Zone, "BoS" Origin :
You can control the display or not display as well as the color of Supply All Zone, "BoS" Origin.
i. Refine Demand Main : You can choose to be refined or not and also the type of refining.
j. Refine Demand Sub : You can choose to be refined or not and also the type of refining.
k. Refine Demand BoS : You can choose to be refined or not and also the type of refining.
l. Refine Supply Main : You can choose to be refined or not and also the type of refining.
m. Refine Supply Sub : You can choose to be refined or not and also the type of refining.
n. Refine Supply BoS : You can choose to be refined or not and also the type of refining.
o. Show Demand FVG : You can choose to show or not show Demand FVG.
p. Show Supply FVG : You can choose to show or not show Supply FVG
q. FVG Filter : You can choose whether FVG is filtered or not. Also specify the type of filter you want to use.
r. Show Statics High Liquidity Line : Show or not show Statics High Liquidity Line.
s. Show Statics Low Liquidity Line : Show or not show Statics Low Liquidity Line.
t. Show Dynamics High Liquidity Line : Show or not show Dynamics High Liquidity Line.
u. Show Dynamics Low Liquidity Line : Show or not show Dynamics Low Liquidity Line.
v. Statics Period Pivot :
Using this parameter, you can set the Swing period that is formed based on Static Liquidity Lines.
w. Dynamics Period Pivot :
Using this parameter, you can set the Swing period that is formed based Dynamics Liquidity Lines.
x. Statics Liquidity Line Sensitivity :
is a number between 0 and 0.4. Increasing this number decreases the sensitivity of the "Statics Liquidity Line Detection" function and increases the number of lines identified. The default value is 0.3.
y. Dynamics Liquidity Line Sensitivity :
is a number between 0.4 and 1.95. Increasing this number increases the sensitivity of the "Dynamics Liquidity Line Detection" function and decreases the number of lines identified. The default value is 1.
z. Alerts Name : You can customize the alert name using this input and set it to your desired name.
aa. Alert Demand Main Mitigation :
If you want to receive the alert about Demand Main 's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
bb. Alert Demand Sub Mitigation :
If you want to receive the alert about Demand Sub's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
cc. Alert Demand BoS Mitigation :
If you want to receive the alert about Demand BoS's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
dd. Alert Supply Main Mitigation :
If you want to receive the alert about Supply Main's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
ee. Alert Supply Sub Mitigation :
If you want to receive the alert about Supply Sub's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
ff. Alert Supply BoS Mitigation :
If you want to receive the alert about Supply BoS's mitigation after setting the alerts, leave this tick on. Otherwise, turn it off.
gg. Message Frequency :
This parameter, represented as a string, determines the frequency of announcements. Options include: 'All' (triggers the alert every time the function is called), 'Once Per Bar' (triggers the alert only on the first call within the bar), and 'Once Per Bar Close' (activates the alert only during the final script execution of the real-time bar upon closure). The default setting is 'Once per Bar'.
hh. Show Alert time by Time Zone :
The date, hour, and minute displayed in alert messages can be configured to reflect any chosen time zone. For instance, if you prefer London time, you should input 'UTC+1'. By default, this input is configured to the 'UTC' time zone.
ii. Display More Info : The 'Display More Info' option provides details regarding the price range of the order blocks (Zone Price), along with the date, hour, and minute. If you prefer not to include this information in the alert message, you should set it to 'Off'.
You also have access to display or not to display, choose the Style and Color of all the lines below :
a. Major Bullish "BoS" Lines
b. Major Bearish "BoS" Lines
c. Minor Bullish "BoS" Lines
d. Minor Bearish "BoS" Lines
e. Major Bullish "ChoCh" Lines
f. Major Bearish "ChoCh" Lines
g. Minor Bullish "ChoCh" Lines
h. Minor Bearish "ChoCh" Lines
i. Last Major Support Line
j. Last Major Resistance Line
k. Last Minor Support Line
l. Last Minor Resistance Line
HT: Functions LibLibrary "Functions"
is_date_equal(date1, date2, time_zone)
Parameters:
date1 (int)
date2 (int)
time_zone (string)
is_date_equal(date1, date2_str, time_zone)
Parameters:
date1 (int)
date2_str (string)
time_zone (string)
is_date_between(date_, start_year, start_month, end_year, end_month, time_zone_)
Parameters:
date_ (int)
start_year (int)
start_month (int)
end_year (int)
end_month (int)
time_zone_ (string)
is_time_equal(time1, time2_str, time_zone)
Parameters:
time1 (int)
time2_str (string)
time_zone (string)
is_time_equal(time1, time2, time_zone)
Parameters:
time1 (int)
time2 (int)
time_zone (string)
is_time_between(time_, start_hour, start_minute, end_hour, end_minute, time_zone_)
Parameters:
time_ (int)
start_hour (int)
start_minute (int)
end_hour (int)
end_minute (int)
time_zone_ (string)
is_time_between(time_, start_time, end_time, time_zone_)
Parameters:
time_ (int)
start_time (string)
end_time (string)
time_zone_ (string)
is_close(value, level, ticks)
Parameters:
value (float)
level (float)
ticks (int)
is_inrange(value, lb, hb)
Parameters:
value (float)
lb (float)
hb (float)
is_above(value, level, ticks)
Parameters:
value (float)
level (float)
ticks (int)
is_below(value, level, ticks)
Parameters:
value (float)
level (float)
ticks (int)
Volume-Price DiffScript is designed to analize volatility in real-time.
Once added to chart, script starting to collect 2 things:
Ticks count (tc)
Price changing ticks count (pctc)
The pctc/tc ratio may be interpret as a volatility measure.
Label above real-time bar shows:
Ticks count
Price changing ticks count
Ratio between (2) and (1) in percents
Using this indicator trader may detect volatility spikes.
More the "Diff" - less the volatility and vice versa.
[TTI] NDR 63-Day QQQ-QQEW ROC% SpreadWelcome to the NDR 63-Day QQQ-QQEW ROC% Spread script! This script is a powerful tool that calculates and visualizes the 63-day Rate of Change (ROC%) spread between the QQQ and QQEW tickers. This script is based on the research conducted by Ned Davis Research (NDR), a renowned name in the field of investment strategy.
⚙️ Key Features:
👉Rate of Change Calculation: The script calculates the 63-day Rate of Change (ROC%) for both QQQ and QQEW tickers. The ROC% is a momentum oscillator that measures the percentage price change over a given time period.
👉Spread Calculation: The script calculates the spread between the ROC% of QQQ and QQEW. This spread can be used to identify potential trading opportunities.
👉Visual Representation: The script plots the spread on the chart, providing a visual representation of the ROC% spread. This can help traders to easily identify trends and patterns.
👉Warning Lines: The script includes warning lines at +600 and -600 levels. These lines can be used as potential thresholds for trading decisions.
Usage:
To use this script, simply add it to your TradingView chart. The script will automatically calculate the ROC% for QQQ and QQEW and plot the spread on the chart. You can use this information to inform your trading decisions.
🚨 Disclaimer:
This script is provided for educational purposes only and is not intended as investment advice. Trading involves risk and is not suitable for all investors. Please consult with a financial advisor before making any investment decisions.
🎖️ Credits:
This script is based on the research conducted by Ned Davis Research (NDR). All credit for the underlying methodology and concept goes to NDR.