Failed 2D & Failed 2U BarsI created this indicator to plot a triangle when a candle is either 1) a failed 2 down--the candle breaks the low of the prior candle but closes green (or higher than its opening price) and doesn't break the high of the previous candle; and 2) a failed 2 up--high of the prior candle is broken but the bar is red and does not break the low of the prior candle.
It has alerts which you can set up in the alert system.
I think that this candle is one of the most telling and powerful when it comes to candle analysis.
R.I.P. Rob Smith, Creator of The Strat.
Cari dalam skrip untuk "the strat"
Dynamic Ticks Oscillator Model (DTOM)The Dynamic Ticks Oscillator Model (DTOM) is a systematic trading approach grounded in momentum and volatility analysis, designed to exploit behavioral inefficiencies in the equity markets. It focuses on the NYSE Down Ticks, a metric reflecting the cumulative number of stocks trading at a lower price than their previous trade. As a proxy for market sentiment and selling pressure, this indicator is particularly useful in identifying shifts in investor behavior during periods of heightened uncertainty or volatility (Jegadeesh & Titman, 1993).
Theoretical Basis
The DTOM builds on established principles of momentum and mean reversion in financial markets. Momentum strategies, which seek to capitalize on the persistence of price trends, have been shown to deliver significant returns in various asset classes (Carhart, 1997). However, these strategies are also susceptible to periods of drawdown due to sudden reversals. By incorporating volatility as a dynamic component, DTOM adapts to changing market conditions, addressing one of the primary challenges of traditional momentum models (Barroso & Santa-Clara, 2015).
Sentiment and Volatility as Core Drivers
The NYSE Down Ticks serve as a proxy for short-term negative sentiment. Sudden increases in Down Ticks often signal panic-driven selling, creating potential opportunities for mean reversion. Behavioral finance studies suggest that investor overreaction to negative news can lead to temporary mispricings, which systematic strategies can exploit (De Bondt & Thaler, 1985). By incorporating a rate-of-change (ROC) oscillator into the model, DTOM tracks the momentum of Down Ticks over a specified lookback period, identifying periods of extreme sentiment.
In addition, the strategy dynamically adjusts entry and exit thresholds based on recent volatility. Research indicates that incorporating volatility into momentum strategies can enhance risk-adjusted returns by improving adaptability to market conditions (Moskowitz, Ooi, & Pedersen, 2012). DTOM uses standard deviations of the ROC as a measure of volatility, allowing thresholds to contract during calm markets and expand during turbulent ones. This approach helps mitigate false signals and aligns with findings that volatility scaling can improve strategy robustness (Barroso & Santa-Clara, 2015).
Practical Implications
The DTOM framework is particularly well-suited for systematic traders seeking to exploit behavioral inefficiencies while maintaining adaptability to varying market environments. By leveraging sentiment metrics such as the NYSE Down Ticks and combining them with a volatility-adjusted momentum oscillator, the strategy addresses key limitations of traditional trend-following models, such as their lagging nature and susceptibility to reversals in volatile conditions.
References
• Barroso, P., & Santa-Clara, P. (2015). Momentum Has Its Moments. Journal of Financial Economics, 116(1), 111–120.
• Carhart, M. M. (1997). On Persistence in Mutual Fund Performance. The Journal of Finance, 52(1), 57–82.
• De Bondt, W. F., & Thaler, R. (1985). Does the Stock Market Overreact? The Journal of Finance, 40(3), 793–805.
• Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. The Journal of Finance, 48(1), 65–91.
• Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time Series Momentum. Journal of Financial Economics, 104(2), 228–250.
CHAKRA RISS ENGULFING CANDLESTICK STRATEGYChakra RISS Engulfing Candlestick Strategy
Type: Technical Indicator & Strategy
Platform: TradingView
Script Version: Pine Script v6
Overview:
The Chakra RISS Engulfing Candlestick Strategy combines a momentum-based approach using the Relative Strength Index (RSI) with Engulfing Candlestick Patterns to generate buy and sell signals. The strategy filters trades based on price movement relative to a 50-period Simple Moving Average (SMA), making it a trend-following strategy.
The indicator uses color-coded bars to visually represent market conditions, helping traders easily identify bullish and bearish trends. The strategy is designed to be dynamic, adapting to changing market conditions and filtering out noise using key technical indicators.
How It Works:
RSI-Based Color Conditions:
Green Bars: When the RSI crosses above a specified UpLevel (default: 50), indicating a bullish momentum and signaling potential buy conditions.
Red Bars: When the RSI crosses below a specified DownLevel (default: 50), indicating a bearish momentum and signaling potential sell conditions.
Buy Signal:
Triggered when the following conditions are met:
RSI crosses from below the UpLevel (default: 50) to above it, signaling increasing bullish momentum.
The close price is above the 50-period Simple Moving Average (SMA), confirming an uptrend.
The Buy Signal is plotted below the bar with a green arrow and a "BUY" label.
Sell Signal:
Triggered when the following conditions are met:
RSI crosses from above the DownLevel (default: 50) to below it, signaling increasing bearish momentum.
The close price is below the 50-period Simple Moving Average (SMA), confirming a downtrend.
The Sell Signal is plotted above the bar with a red arrow and a "SELL" label.
Stop Loss and Take Profit:
For long trades (buy signals), the stop loss is placed below the previous bar's low, and the take profit is set at 3% above the entry price.
For short trades (sell signals), the stop loss is placed above the previous bar's high, and the take profit is set at 3% below the entry price.
Dynamic Bar Coloring:
The bar colors change dynamically based on RSI levels:
Green Bars: Indicating a potential uptrend (bullish).
Red Bars: Indicating a potential downtrend (bearish).
These visual cues help traders quickly identify market trends and potential reversals.
Trend Filtering:
The 50-period Simple Moving Average (SMA) is used to filter trades based on the overall market trend:
Buy signals are only considered when the price is above the moving average, indicating an uptrend.
Sell signals are only considered when the price is below the moving average, indicating a downtrend.
Alerting System:
Alerts can be set for both buy and sell signals. These alerts notify traders in real-time when potential trades are generated, allowing them to act promptly.
Alerts can be configured to send notifications through email, SMS, or a webhook for integration with other services like IFTTT or Zapier.
Key Features:
RSI and Moving Average-Based Signals: Combines RSI with a moving average for more accurate trade signals.
Stop Loss and Take Profit: Dynamic risk management with custom stop loss and take profit levels based on previous high and low prices.
Buy and Sell Alerts: Provides real-time alerts when a buy or sell signal is triggered.
Trend Confirmation: Uses the 50-period Simple Moving Average to filter signals and confirm the direction of the trend.
Visual Bar Color Changes: Makes it easy to identify bullish or bearish trends with color-coded bars.
Usage:
This strategy is suitable for traders who prefer a trend-following approach and want to combine momentum indicators (RSI) with price action (Engulfing Candlestick patterns). It is particularly useful in volatile markets where quick identification of trend changes can lead to profitable trades.
Best Used For: Day trading, swing trading, and trend-following strategies.
Timeframes: Works well on various timeframes, from 1-minute charts for scalping to daily charts for swing trading.
Markets: Can be applied to any market with sufficient liquidity (stocks, forex, crypto, etc.).
Settings:
UpLevel: The RSI level above which the market is considered bullish (default: 50).
DownLevel: The RSI level below which the market is considered bearish (default: 50).
SMA Length: The period of the Simple Moving Average used to filter trades (default: 50).
Risk Management: Customizable stop loss and take profit settings based on price action (default: 3% above/below the entry price).
Turn of the Month Strategy on Steroids█ STRATEGY DESCRIPTION
The "Turn of the Month Strategy on Steroids" is a seasonal mean-reversion strategy designed to capitalize on price movements around the end of the month. It enters a long position when specific conditions are met and exits when the Relative Strength Index (RSI) indicates overbought conditions. This strategy is optimized for use on daily or higher timeframes.
█ WHAT IS THE TURN OF THE MONTH EFFECT?
The Turn of the Month effect refers to the observed tendency of stock prices to rise around the end of the month. This strategy leverages this phenomenon by entering long positions when the price shows signs of a reversal during this period.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The current day of the month is greater than or equal to the specified `dayOfMonth` threshold (default is 25).
The close price is lower than the previous day's close (`close < close `).
The previous day's close is also lower than the close two days ago (`close < close `).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
There is no existing open position (`strategy.position_size == 0`).
2. EXIT CONDITION
A Sell Signal is generated when the 2-period RSI exceeds 65, indicating overbought conditions. This prompts the strategy to exit the position.
█ ADDITIONAL SETTINGS
Day of Month: The day of the month threshold for triggering a Buy Signal. Default is 25.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed to exploit seasonal price patterns around the end of the month.
It performs best in markets where the Turn of the Month effect is pronounced.
Backtesting results should be analyzed to optimize the `dayOfMonth` threshold and RSI parameters for specific instruments.
EMA Crossover Strategy with Take Profit and Candle HighlightingStrategy Overview:
This strategy is based on the Exponential Moving Averages (EMA), specifically the EMA 20 and EMA 50. It takes advantage of EMA crossovers to identify potential trend reversals and uses multiple take-profit levels and a stop-loss for risk management.
Key Components:
EMA Crossover Signals:
Buy Signal (Uptrend): A buy signal is generated when the EMA 20 crosses above the EMA 50, signaling the start of a potential uptrend.
Sell Signal (Downtrend): A sell signal is generated when the EMA 20 crosses below the EMA 50, signaling the start of a potential downtrend.
Take Profit Levels:
Once a buy or sell signal is triggered, the strategy calculates multiple take-profit levels based on the range of the previous candle. The user can define multipliers for each take-profit level.
Take Profit 1 (TP1): 50% of the previous candle's range above or below the entry price.
Take Profit 2 (TP2): 100% of the previous candle's range above or below the entry price.
Take Profit 3 (TP3): 150% of the previous candle's range above or below the entry price.
Take Profit 4 (TP4): 200% of the previous candle's range above or below the entry price.
These levels are adjusted dynamically based on the previous candle's high and low, so they adapt to changing market conditions.
Stop Loss:
A stop-loss is set to manage risk. The default stop-loss is 3% from the entry price, but this can be adjusted in the settings. The stop-loss is triggered if the price moves against the position by this amount.
Trend Direction Highlighting:
The strategy highlights the bars (candles) with colors:
Green bars indicate an uptrend (when EMA 20 crosses above EMA 50).
Red bars indicate a downtrend (when EMA 20 crosses below EMA 50).
These visual cues help users easily identify the market direction.
Strategy Entries and Exits:
Entries: The strategy enters a long (buy) position when the EMA 20 crosses above the EMA 50 and a short (sell) position when the EMA 20 crosses below the EMA 50.
Exits: The strategy exits the positions at any of the defined take-profit levels or the stop-loss. Multiple exit levels provide opportunities to take profit progressively as the price moves in the favorable direction.
Entry and Exit Conditions in Detail:
Buy Entry Condition (Uptrend):
A buy position is opened when EMA 20 crosses above EMA 50, signaling the start of an uptrend.
The strategy calculates take-profit levels above the entry price based on the previous bar's range (high-low) and the multipliers for TP1, TP2, TP3, and TP4.
Sell Entry Condition (Downtrend):
A sell position is opened when EMA 20 crosses below EMA 50, signaling the start of a downtrend.
The strategy calculates take-profit levels below the entry price, similarly based on the previous bar's range.
Exit Conditions:
Take Profit: The strategy attempts to exit the position at one of the take-profit levels (TP1, TP2, TP3, or TP4). If the price reaches any of these levels, the position is closed.
Stop Loss: The strategy also has a stop-loss set at a default value (3% below the entry for long trades, and 3% above for short trades). The stop-loss helps to protect the position from significant losses.
Backtesting and Performance Metrics:
The strategy can be backtested using TradingView's Strategy Tester. The results will show how the strategy would have performed historically, including key metrics like:
Net Profit
Max Drawdown
Win Rate
Profit Factor
Average Trade Duration
These performance metrics can help users assess the strategy's effectiveness over historical periods and optimize the input parameters (e.g., multipliers, stop-loss level).
Customization:
The strategy allows for the adjustment of several key input values via the settings panel:
Take Profit Multipliers: Users can customize the multipliers for each take-profit level (TP1, TP2, TP3, TP4).
Stop Loss Percentage: The user can also adjust the stop-loss percentage to a custom value.
EMA Periods: The default periods for the EMA 50 and EMA 20 are fixed, but they can be adjusted for different market conditions.
Pros of the Strategy:
EMA Crossover Strategy: A classic and well-known strategy used by traders to identify the start of new trends.
Multiple Take Profit Levels: By taking profits progressively at different levels, the strategy locks in gains as the price moves in favor of the position.
Clear Trend Identification: The use of green and red bars makes it visually easier to follow the market's direction.
Risk Management: The stop-loss and take-profit features help to manage risk and optimize profit-taking.
Cons of the Strategy:
Lagging Indicators: The strategy relies on EMAs, which are lagging indicators. This means that the strategy might enter trades after the trend has already started, leading to missed opportunities or less-than-ideal entry prices.
No Confirmation Indicators: The strategy purely depends on the crossover of two EMAs and does not use other confirming indicators (e.g., RSI, MACD), which might lead to false signals in volatile markets.
How to Use in Real-Time Trading:
Use for Backtesting: Initially, use this strategy in backtest mode to understand how it would have performed historically with your preferred settings.
Paper Trading: Once comfortable, you can use paper trading to test the strategy in real-time market conditions without risking real money.
Live Trading: After testing and optimizing the strategy, you can consider using it for live trading with proper risk management in place (e.g., starting with a small position size and adjusting parameters as needed).
Summary:
This strategy is designed to identify trend reversals using EMA crossovers, with customizable take-profit levels and a stop-loss to manage risk. It's well-suited for traders looking for a systematic way to enter and exit trades based on clear market signals, while also providing flexibility to adjust for different risk profiles and trading styles.
BullBear with Volume-Percentile TP - Strategy [presentTrading] Happy New Year, everyone! I hope we have a fantastic year ahead.
It's been a while since I published an open script, but it's time to return.
This strategy introduces an indicator called Bull Bear Power, combined with an advanced take-profit system, which is the main innovative and educational aspect of this script. I hope all of you find some useful insights here. Welcome to engage in meaningful exchanges. This is a versatile tool suitable for both novice and experienced traders.
█ Introduction and How it is Different
Unlike traditional strategies that rely solely on price or volume indicators, this approach combines Bull Bear Power (BBP) with volume percentile analysis to identify optimal entry and exit points. It features a dynamic take-profit mechanism based on ATR (Average True Range) multipliers adjusted by volume and percentile factors, ensuring adaptability to diverse market conditions. This multifaceted strategy not only improves signal accuracy but also optimizes risk management, distinguishing it from conventional trading methods.
BTCUSD 6hr performance
Disable the visualization of Bull Bear Power (BBP) to clearly view the Z-Score.
█ Strategy, How it Works: Detailed Explanation
The BBP Strategy with Volume-Percentile TP utilizes several interconnected components to analyze market data and generate trading signals. Here's an overview with essential equations:
🔶 Core Indicators and Calculations
1. Exponential Moving Average (EMA):
- **Purpose:** Smoothens price data to identify trends.
- **Formula:**
EMA_t = (Close_t * (2 / (lengthInput + 1))) + (EMA_(t-1) * (1 - (2 / (lengthInput + 1))))
- Usage: Baseline for Bull and Bear Power.
2. Bull and Bear Power:
- Bull Power: `BullPower = High_t - EMA_t`
- Bear Power: `BearPower = Low_t - EMA_t`
- BBP:** `BBP = BullPower + BearPower`
- Interpretation: Positive BBP indicates bullish strength, negative indicates bearish.
3. Z-Score Calculation:
- Purpose: Normalizes BBP to assess deviation from the mean.
- Formula:
Z-Score = (BBP_t - bbp_mean) / bbp_std
- Components:
- `bbp_mean` = SMA of BBP over `zLength` periods.
- `bbp_std` = Standard deviation of BBP over `zLength` periods.
- Usage: Identifies overbought or oversold conditions based on thresholds.
🔶 Volume Analysis
1. Volume Moving Average (`vol_sma`):
vol_sma = (Volume_1 + Volume_2 + ... + Volume_vol_period) / vol_period
2. Volume Multiplier (`vol_mult`):
vol_mult = Current Volume / vol_sma
- Thresholds:
- High Volume: `vol_mult > 2.0`
- Medium Volume: `1.5 < vol_mult ≤ 2.0`
- Low Volume: `1.0 < vol_mult ≤ 1.5`
🔶 Percentile Analysis
1. Percentile Calculation (`calcPercentile`):
Percentile = (Number of values ≤ Current Value / perc_period) * 100
2. Thresholds:
- High Percentile: >90%
- Medium Percentile: >80%
- Low Percentile: >70%
🔶 Dynamic Take-Profit Mechanism
1. ATR-Based Targets:
TP1 Price = Entry Price ± (ATR * atrMult1 * TP_Factor)
TP2 Price = Entry Price ± (ATR * atrMult2 * TP_Factor)
TP3 Price = Entry Price ± (ATR * atrMult3 * TP_Factor)
- ATR Calculation:
ATR_t = (True Range_1 + True Range_2 + ... + True Range_baseAtrLength) / baseAtrLength
2. Adjustment Factors:
TP_Factor = (vol_score + price_score) / 2
- **vol_score** and **price_score** are based on current volume and price percentiles.
Local performance
🔶 Entry and Exit Logic
1. Long Entry: If Z-Score crosses above 1.618, then Enter Long.
2. Short Entry: If Z-Score crosses below -1.618, then Enter Short.
3. Exiting Positions:
If Long and Z-Score crosses below 0:
Exit Long
If Short and Z-Score crosses above 0:
Exit Short
4. Take-Profit Execution:
- Set multiple exit orders at dynamically calculated TP levels based on ATR and adjusted by `TP_Factor`.
█ Trade Direction
The strategy determines trade direction using the Z-Score from the BBP indicator:
- Long Positions:
- Condition: Z-Score crosses above 1.618.
- Short Positions:
- Condition: Z-Score crosses below -1.618.
- Exiting Trades:
- Long Exit: Z-Score drops below 0.
- Short Exit: Z-Score rises above 0.
This approach aligns trades with prevailing market trends, increasing the likelihood of successful outcomes.
█ Usage
Implementing the BBP Strategy with Volume-Percentile TP in TradingView involves:
1. Adding the Strategy:
- Copy the Pine Script code.
- Paste it into TradingView's Pine Editor.
- Save and apply the strategy to your chart.
2. Configuring Settings:
- Adjust parameters like EMA length, Z-Score thresholds, ATR multipliers, volume periods, and percentile settings to match your trading preferences and asset behavior.
3. Backtesting:
- Use TradingView’s backtesting tools to evaluate historical performance.
- Analyze metrics such as profit factor, drawdown, and win rate.
4. Optimization:
- Fine-tune parameters based on backtesting results.
- Test across different assets and timeframes to enhance adaptability.
5. Deployment:
- Apply the strategy in a live trading environment.
- Continuously monitor and adjust settings as market conditions change.
█ Default Settings
The BBP Strategy with Volume-Percentile TP includes default parameters designed for balanced performance across various markets. Understanding these settings and their impact is essential for optimizing strategy performance:
Bull Bear Power Settings:
- EMA Length (`lengthInput`): 21
- **Effect:** Balances sensitivity and trend identification; shorter lengths respond quicker but may generate false signals.
- Z-Score Length (`zLength`): 252
- **Effect:** Long period for stable mean and standard deviation, reducing false signals but less responsive to recent changes.
- Z-Score Threshold (`zThreshold`): 1.618
- **Effect:** Higher threshold filters out weaker signals, focusing on significant market moves.
Take Profit Settings:
- Use Take Profit (`useTP`): Enabled (`true`)
- **Effect:** Activates dynamic profit-taking, enhancing profitability and risk management.
- ATR Period (`baseAtrLength`): 20
- **Effect:** Shorter period for sensitive volatility measurement, allowing tighter profit targets.
- ATR Multipliers:
- **Effect:** Define conservative to aggressive profit targets based on volatility.
- Position Sizes:
- **Effect:** Diversifies profit-taking across multiple levels, balancing risk and reward.
Volume Analysis Settings:
- Volume MA Period (`vol_period`): 100
- **Effect:** Longer period for stable volume average, reducing the impact of short-term spikes.
- Volume Multipliers:
- **Effect:** Determines volume conditions affecting take-profit adjustments.
- Volume Factors:
- **Effect:** Adjusts ATR multipliers based on volume strength.
Percentile Analysis Settings:
- Percentile Period (`perc_period`): 100
- **Effect:** Balances historical context with responsiveness to recent data.
- Percentile Thresholds:
- **Effect:** Defines price and volume percentile levels influencing take-profit adjustments.
- Percentile Factors:
- **Effect:** Modulates ATR multipliers based on price percentile strength.
Impact on Performance:
- EMA Length: Shorter EMAs increase sensitivity but may cause more false signals; longer EMAs provide stability but react slower to market changes.
- Z-Score Parameters:*Longer Z-Score periods create more stable signals, while higher thresholds reduce trade frequency but increase signal reliability.
- ATR Multipliers and Position Sizes: Higher multipliers allow for larger profit targets with increased risk, while diversified position sizes help in securing profits at multiple levels.
- Volume and Percentile Settings: These adjustments ensure that take-profit targets adapt to current market conditions, enhancing flexibility and performance across different volatility environments.
- Commission and Slippage: Accurate settings prevent overestimation of profitability and ensure the strategy remains viable after accounting for trading costs.
Conclusion
The BBP Strategy with Volume-Percentile TP offers a robust framework by combining BBP indicators with volume and percentile analyses. Its dynamic take-profit mechanism, tailored through ATR adjustments, ensures that traders can effectively capture profits while managing risks in varying market conditions.
Up Gap Strategy with DelayThis strategy, titled “Up Gap Strategy with Delay,” is based on identifying up gaps in the price action of an asset. A gap is defined as the percentage difference between the current bar’s open price and the previous bar’s close price. The strategy triggers a long position if the gap exceeds a user-defined threshold and includes a delay period before entering the position. After entering, the position is held for a set number of periods before being closed.
Key Features:
1. Gap Threshold: The strategy defines an up gap when the gap size exceeds a specified threshold (in percentage terms). The gap threshold is an input parameter that allows customization based on the user’s preference.
2. Delay Period: After the gap occurs, the strategy waits for a delay period before initiating a long position. This delay can help mitigate any short-term volatility that might occur immediately after the gap.
3. Holding Period: Once the position is entered, it is held for a user-defined number of periods (holdingPeriods). This is to capture the potential post-gap trend continuation, as gaps often indicate strong directional momentum.
4. Gap Plotting: The strategy visually plots up gaps on the chart by placing a green label beneath the bar where the gap condition is met. Additionally, the background color turns green to highlight up-gap occurrences.
5. Exit Condition: The position is exited after the defined holding period. The strategy ensures that the position is closed after this time, regardless of whether the price is in profit or loss.
Scientific Background:
The gap theory has been widely studied in financial literature and is based on the premise that gaps in price often represent areas of significant support or resistance. According to research by Kaufman (2002), gaps in price action can be indicators of future price direction, particularly when they occur after a period of consolidation or a trend reversal. Moreover, Gaps and their Implications in Technical Analysis (Murphy, 1999) highlights that gaps can reflect imbalances between supply and demand, leading to high momentum and potential price continuation or reversal.
In trading strategies, utilizing gaps with specific conditions, such as delay and holding periods, can enhance the ability to capture significant price moves. The strategy’s delay period helps avoid potential market noise immediately after the gap, while the holding period seeks to capitalize on the price continuation that often follows gap formation.
This methodology aligns with momentum-based strategies, which rely on the persistence of trends in financial markets. Several studies, including Jegadeesh & Titman (1993), have documented the existence of momentum effects in stock prices, where past price movements can be predictive of future returns.
Conclusion:
This strategy incorporates gap detection and momentum principles, supported by empirical research in technical analysis, to attempt to capitalize on price movements following significant gaps. By waiting for a delay period and holding the position for a specified time, it aims to mitigate the risk associated with early volatility while maximizing the potential for sustained price moves.
Kernel Regression Envelope with SMI OscillatorThis script combines the predictive capabilities of the **Nadaraya-Watson estimator**, implemented by the esteemed jdehorty (credit to him for his excellent work on the `KernelFunctions` library and the original Nadaraya-Watson Envelope indicator), with the confirmation strength of the **Stochastic Momentum Index (SMI)** to create a dynamic trend reversal strategy. The core idea is to identify potential overbought and oversold conditions using the Nadaraya-Watson Envelope and then confirm these signals with the SMI before entering a trade.
**Understanding the Nadaraya-Watson Envelope:**
The Nadaraya-Watson estimator is a non-parametric regression technique that essentially calculates a weighted average of past price data to estimate the current underlying trend. Unlike simple moving averages that give equal weight to all past data within a defined period, the Nadaraya-Watson estimator uses a **kernel function** (in this case, the Rational Quadratic Kernel) to assign weights. The key parameters influencing this estimation are:
* **Lookback Window (h):** This determines how many historical bars are considered for the estimation. A larger window results in a smoother estimation, while a smaller window makes it more reactive to recent price changes.
* **Relative Weighting (alpha):** This parameter controls the influence of different time frames in the estimation. Lower values emphasize longer-term price action, while higher values make the estimator more sensitive to shorter-term movements.
* **Start Regression at Bar (x\_0):** This allows you to exclude the potentially volatile initial bars of a chart from the calculation, leading to a more stable estimation.
The script calculates the Nadaraya-Watson estimation for the closing price (`yhat_close`), as well as the highs (`yhat_high`) and lows (`yhat_low`). The `yhat_close` is then used as the central trend line.
**Dynamic Envelope Bands with ATR:**
To identify potential entry and exit points around the Nadaraya-Watson estimation, the script uses **Average True Range (ATR)** to create dynamic envelope bands. ATR measures the volatility of the price. By multiplying the ATR by different factors (`nearFactor` and `farFactor`), we create multiple bands:
* **Near Bands:** These are closer to the Nadaraya-Watson estimation and are intended to identify potential immediate overbought or oversold zones.
* **Far Bands:** These are further away and can act as potential take-profit or stop-loss levels, representing more extreme price extensions.
The script calculates both near and far upper and lower bands, as well as an average between the near and far bands. This provides a nuanced view of potential support and resistance levels around the estimated trend.
**Confirming Reversals with the Stochastic Momentum Index (SMI):**
While the Nadaraya-Watson Envelope identifies potential overextended conditions, the **Stochastic Momentum Index (SMI)** is used to confirm a potential trend reversal. The SMI, unlike a traditional stochastic oscillator, oscillates around a zero line. It measures the location of the current closing price relative to the median of the high/low range over a specified period.
The script calculates the SMI on a **higher timeframe** (defined by the "Timeframe" input) to gain a broader perspective on the market momentum. This helps to filter out potential whipsaws and false signals that might occur on the current chart's timeframe. The SMI calculation involves:
* **%K Length:** The lookback period for calculating the highest high and lowest low.
* **%D Length:** The period for smoothing the relative range.
* **EMA Length:** The period for smoothing the SMI itself.
The script uses a double EMA for smoothing within the SMI calculation for added smoothness.
**How the Indicators Work Together in the Strategy:**
The strategy enters a long position when:
1. The closing price crosses below the **near lower band** of the Nadaraya-Watson Envelope, suggesting a potential oversold condition.
2. The SMI crosses above its EMA, indicating positive momentum.
3. The SMI value is below -50, further supporting the oversold idea on the higher timeframe.
Conversely, the strategy enters a short position when:
1. The closing price crosses above the **near upper band** of the Nadaraya-Watson Envelope, suggesting a potential overbought condition.
2. The SMI crosses below its EMA, indicating negative momentum.
3. The SMI value is above 50, further supporting the overbought idea on the higher timeframe.
Trades are closed when the price crosses the **far band** in the opposite direction of the trade. A stop-loss is also implemented based on a fixed value.
**In essence:** The Nadaraya-Watson Envelope identifies areas where the price might be deviating significantly from its estimated trend. The SMI, calculated on a higher timeframe, then acts as a confirmation signal, suggesting that the momentum is shifting in the direction of a potential reversal. The ATR-based bands provide dynamic entry and exit points based on the current volatility.
**How to Use the Script:**
1. **Apply the script to your chart.**
2. **Adjust the "Kernel Settings":**
* **Lookback Window (h):** Experiment with different values to find the smoothness that best suits the asset and timeframe you are trading. Lower values make the envelope more reactive, while higher values make it smoother.
* **Relative Weighting (alpha):** Adjust to control the influence of different timeframes on the Nadaraya-Watson estimation.
* **Start Regression at Bar (x\_0):** Increase this value if you want to exclude the initial, potentially volatile, bars from the calculation.
* **Stoploss:** Set your desired stop-loss value.
3. **Adjust the "SMI" settings:**
* **%K Length, %D Length, EMA Length:** These parameters control the sensitivity and smoothness of the SMI. Experiment to find settings that work well for your trading style.
* **Timeframe:** Select the higher timeframe you want to use for SMI confirmation.
4. **Adjust the "ATR Length" and "Near/Far ATR Factor":** These settings control the width and sensitivity of the envelope bands. Smaller ATR lengths make the bands more reactive to recent volatility.
5. **Customize the "Color Settings"** to your preference.
6. **Observe the plots:**
* The **Nadaraya-Watson Estimation (yhat)** line represents the estimated underlying trend.
* The **near and far upper and lower bands** visualize potential overbought and oversold zones based on the ATR.
* The **fill areas** highlight the regions between the near and far bands.
7. **Look for entry signals:** A long entry is considered when the price touches or crosses below the lower near band and the SMI confirms upward momentum. A short entry is considered when the price touches or crosses above the upper near band and the SMI confirms downward momentum.
8. **Manage your trades:** The script provides exit signals when the price crosses the far band. The fixed stop-loss will also close trades if the price moves against your position.
**Justification for Combining Nadaraya-Watson Envelope and SMI:**
The combination of the Nadaraya-Watson Envelope and the SMI provides a more robust approach to identifying potential trend reversals compared to using either indicator in isolation. The Nadaraya-Watson Envelope excels at identifying potential areas where the price is overextended relative to its recent history. However, relying solely on the envelope can lead to false signals, especially in choppy or volatile markets. By incorporating the SMI as a confirmation tool, we add a momentum filter that helps to validate the potential reversals signaled by the envelope. The higher timeframe SMI further helps to filter out noise and focus on more significant shifts in momentum. The ATR-based bands add a dynamic element to the entry and exit points, adapting to the current market volatility. This mashup aims to leverage the strengths of each indicator to create a more reliable trading strategy.
Moving Average Crossover Strategy with Take Profit and Stop LossThe Moving Average Crossover Strategy is a popular trading technique that utilizes two moving averages (MAs) of different periods to identify potential buy and sell signals. By incorporating take profit and stop loss levels, traders can effectively manage their risk while maximizing potential returns. Here’s a detailed explanation of how this strategy works:
Overview of the Moving Average Crossover Strategy
Moving Averages:
A short-term moving average (e.g., 50-day MA) reacts more quickly to price changes, while a long-term moving average (e.g., 200-day MA) smooths out price fluctuations over a longer period.
The strategy generates trading signals based on the crossover of these two averages:
Buy Signal: When the short-term MA crosses above the long-term MA (often referred to as a "Golden Cross").
Sell Signal: When the short-term MA crosses below the long-term MA (known as a "Death Cross").
Implementing Take Profit and Stop Loss
1. Setting Take Profit Levels
Definition: A take profit order automatically closes a trade when it reaches a specified profit level.
Strategy:
Determine a realistic profit target based on historical price action, support and resistance levels, or a fixed risk-reward ratio (e.g., 2:1).
For instance, if you enter a buy position at $100, you might set a take profit at $110 if you anticipate that level will act as resistance.
2. Setting Stop Loss Levels
Definition: A stop loss order limits potential losses by closing a trade when the price reaches a specified level.
Strategy:
Place the stop loss just below the most recent swing low for buy orders or above the recent swing high for sell orders.
Alternatively, you can use a percentage-based method (e.g., 2-3% below the entry point) to define your stop loss.
For example, if you enter a buy position at $100 with a stop loss set at $95, your maximum loss would be limited to $5 per share.
Example of Using Moving Average Crossover with Take Profit and Stop Loss
Entry Signal:
You observe that the 50-day MA crosses above the 200-day MA at $100. You enter a buy position.
Setting Take Profit and Stop Loss:
You analyze historical price levels and set your take profit at $110.
You place your stop loss at $95 based on recent swing lows.
Trade Management:
If the price rises to $110, your take profit order is executed, securing your profit.
If the price falls to $95, your stop loss is triggered, limiting your losses.
Trend Trader-Remastered StrategyOfficial Strategy for Trend Trader - Remastered
Indicator: Trend Trader-Remastered (TTR)
Overview:
The Trend Trader-Remastered is a refined and highly sophisticated implementation of the Parabolic SAR designed to create strategic buy and sell entry signals, alongside precision take profit and re-entry signals based on marked Bill Williams (BW) fractals. Built with a deep emphasis on clarity and accuracy, this indicator ensures that only relevant and meaningful signals are generated, eliminating any unnecessary entries or exits.
Please check the indicator details and updates via the link above.
Important Disclosure:
My primary objective is to provide realistic strategies and a code base for the TradingView Community. Therefore, the default settings of the strategy version of the indicator have been set to reflect realistic world trading scenarios and best practices.
Key Features:
Strategy execution date&time range.
Take Profit Reduction Rate: The percentage of progressive reduction on active position size for take profit signals.
Example:
TP Reduce: 10%
Entry Position Size: 100
TP1: 100 - 10 = 90
TP2: 90 - 9 = 81
Re-Entry When Rate: The percentage of position size on initial entry of the signal to determine re-entry.
Example:
RE When: 50%
Entry Position Size: 100
Re-Entry Condition: Active Position Size < 50
Re-Entry Fill Rate: The percentage of position size on initial entry of the signal to be completed.
Example:
RE Fill: 75%
Entry Position Size: 100
Active Position Size: 50
Re-Entry Order Size: 25
Final Active Position Size:75
Important: Even RE When condition is met, the active position size required to drop below RE Fill rate to trigger re-entry order.
Key Points:
'Process Orders on Close' is enabled as Take Profit and Re-Entry signals must be executed on candle close.
'Calculate on Every Tick' is enabled as entry signals are required to be executed within candle time.
'Initial Capital' has been set to 10,000 USD.
'Default Quantity Type' has been set to 'Percent of Equity'.
'Default Quantity' has been set to 10% as the best practice of investing 10% of the assets.
'Currency' has been set to USD.
'Commission Type' has been set to 'Commission Percent'
'Commission Value' has been set to 0.05% to reflect the most realistic results with a common taker fee value.
Smart DCA Strategy (Public)INSPIRATION
While Dollar Cost Averaging (DCA) is a popular and stress-free investment approach, I noticed an opportunity for enhancement. Standard DCA involves buying consistently, regardless of market conditions, which can sometimes mean missing out on optimal investment opportunities. This led me to develop the Smart DCA Strategy – a 'set and forget' method like traditional DCA, but with an intelligent twist to boost its effectiveness.
The goal was to build something more profitable than a standard DCA strategy so it was equally important that this indicator could backtest its own results in an A/B test manner against the regular DCA strategy.
WHY IS IT SMART?
The key to this strategy is its dynamic approach: buying aggressively when the market shows signs of being oversold, and sitting on the sidelines when it's not. This approach aims to optimize entry points, enhancing the potential for better returns while maintaining the simplicity and low stress of DCA.
WHAT THIS STRATEGY IS, AND IS NOT
This is an investment style strategy. It is designed to improve upon the common standard DCA investment strategy. It is therefore NOT a day trading strategy. Feel free to experiment with various timeframes, but it was designed to be used on a daily timeframe and that's how I recommend it to be used.
You may also go months without any buy signals during bull markets, but remember that is exactly the point of the strategy - to keep your buying power on the sidelines until the markets have significantly pulled back. You need to be patient and trust in the historical backtesting you have performed.
HOW IT WORKS
The Smart DCA Strategy leverages a creative approach to using Moving Averages to identify the most opportune moments to buy. A trigger occurs when a daily candle, in its entirety including the high wick, closes below the threshold line or box plotted on the chart. The indicator is designed to facilitate both backtesting and live trading.
HOW TO USE
Settings:
The input parameters for tuning have been intentionally simplified in an effort to prevent users falling into the overfitting trap.
The main control is the Buying strictness scale setting. Setting this to a lower value will provide more buying days (less strict) while higher values mean less buying days (more strict). In my testing I've found level 9 to provide good all round results.
Validation days is a setting to prevent triggering entries until the asset has spent a given number of days (candles) in the overbought state. Increasing this makes entries stricter. I've found 0 to give the best results across most assets.
In the backtest settings you can also configure how much to buy for each day an entry triggers. Blind buy size is the amount you would buy every day in a standard DCA strategy. Smart buy size is the amount you would buy each day a Smart DCA entry is triggered.
You can also experiment with backtesting your strategy over different historical datasets by using the Start date and End date settings. The results table will not calculate for any trades outside what you've set in the date range settings.
Backtesting:
When backtesting you should use the results table on the top right to tune and optimise the results of your strategy. As with all backtests, be careful to avoid overfitting the parameters. It's better to have a setup which works well across many currencies and historical periods than a setup which is excellent on one dataset but bad on most others. This gives a much higher probability that it will be effective when you move to live trading.
The results table provides a clear visual representation as to which strategy, standard or smart, is more profitable for the given dataset. You will notice the columns are dynamically coloured red and green. Their colour changes based on which strategy is more profitable in the A/B style backtest - green wins, red loses. The key metrics to focus on are GOA (Gain on Account) and Avg Cost.
Live Trading:
After you've finished backtesting you can proceed with configuring your alerts for live trading.
But first, you need to estimate the amount you should buy on each Smart DCA entry. We can use the Total invested row in the results table to calculate this. Assuming we're looking to trade on
BTCUSD
Decide how much USD you would spend each day to buy BTC if you were using a standard DCA strategy. Lets say that is $5 per day
Enter that USD amount in the Blind buy size settings box
Check the Blind Buy column in the results table. If we set the backtest date range to the last 10 years, we would expect the amount spent on blind buys over 10 years to be $18,250 given $5 each day
Next we need to tweak the value of the Smart buy size parameter in setting to get it as close as we can to the Total Invested amount for Blind Buy
By following this approach it means we will invest roughly the same amount into our Smart DCA strategy as we would have into a standard DCA strategy over any given time period.
After you have calculated the Smart buy size, you can go ahead and set up alerts on Smart DCA buy triggers.
BOT AUTOMATION
In an effort to maintain the 'set and forget' stress-free benefits of a standard DCA strategy, I have set my personal Smart DCA Strategy up to be automated. The bot runs on AWS and I have a fully functional project for the bot on my GitHub account. Just reach out if you would like me to point you towards it. You can also hook this into any other 3rd party trade automation system of your choice using the pre-configured alerts within the indicator.
PLANNED FUTURE DEVELOPMENTS
Currently this is purely an accumulation strategy. It does not have any sell signals right now but I have ideas on how I will build upon it to incorporate an algorithm for selling. The strategy should gradually offload profits in bull markets which generates more USD which gives more buying power to rinse and repeat the same process in the next cycle only with a bigger starting capital. Watch this space!
MARKETS
Crypto:
This strategy has been specifically built to work on the crypto markets. It has been developed, backtested and tuned against crypto markets and I personally only run it on crypto markets to accumulate more of the coins I believe in for the long term. In the section below I will provide some backtest results from some of the top crypto assets.
Stocks:
I've found it is generally more profitable than a standard DCA strategy on the majority of stocks, however the results proved to be a lot more impressive on crypto. This is mainly due to the volatility and cycles found in crypto markets. The strategy makes its profits from capitalising on pullbacks in price. Good stocks on the other hand tend to move up and to the right with less significant pullbacks, therefore giving this strategy less opportunity to flourish.
Forex:
As this is an accumulation style investment strategy, I do not recommend that you use it to trade Forex.
For more info about this strategy including backtest results, please see the full description on the invite only version of this strategy named "Smart DCA Strategy"
MACD Aggressive Scalp SimpleComment on the Script
Purpose and Structure:
The script is a scalping strategy based on the MACD indicator combined with EMA (50) as a trend filter.
It uses the MACD histogram's crossover/crossunder of zero to trigger entries and exits, allowing the trader to capitalize on short-term momentum shifts.
The use of strategy.close ensures that positions are closed when specified conditions are met, although adjustments were made to align with Pine Script version 6.
Strengths:
Simplicity and Clarity: The logic is straightforward and focuses on essential scalping principles (momentum-based entries and exits).
Visual Indicators: The plotted MACD line, signal line, and histogram columns provide clear visual feedback for the strategy's operation.
Trend Confirmation: Incorporating the EMA(50) as a trend filter helps avoid trades that go against the prevailing trend, reducing the likelihood of false signals.
Dynamic Exit Conditions: The conditional logic for closing positions based on weakening momentum (via MACD histogram change) is a good way to protect profits or minimize losses.
Potential Improvements:
Parameter Inputs:
Make the MACD (12, 26, 9) and EMA(50) values adjustable by the user through input statements for better customization during backtesting.
Example:
pine
Copy code
macdFast = input(12, title="MACD Fast Length")
macdSlow = input(26, title="MACD Slow Length")
macdSignal = input(9, title="MACD Signal Line Length")
emaLength = input(50, title="EMA Length")
Stop Loss and Take Profit:
The strategy currently lacks explicit stop-loss or take-profit levels, which are critical in a scalping strategy to manage risk and lock in profits.
ATR-based or fixed-percentage exits could be added for better control.
Position Size and Risk Management:
While the script uses 50% of equity per trade, additional options (e.g., fixed position sizes or risk-adjusted sizes) would be beneficial for flexibility.
Avoid Overlapping Signals:
Add logic to prevent overlapping signals (e.g., opening a new position immediately after closing one on the same bar).
Backtesting Optimization:
Consider adding labels or markers (label.new or plotshape) to visualize entry and exit points on the chart for better debugging and analysis.
The inclusion of performance metrics like max drawdown, Sharpe ratio, or profit factor would help assess the strategy's robustness during backtesting.
Compatibility with Live Trading:
The strategy could be further enhanced with alert conditions using alertcondition to notify the trader of buy/sell signals in real-time.
DCA Strategy with Mean Reversion and Bollinger BandDCA Strategy with Mean Reversion and Bollinger Band
The Dollar-Cost Averaging (DCA) Strategy with Mean Reversion and Bollinger Bands is a sophisticated trading strategy that combines the principles of DCA, mean reversion, and technical analysis using Bollinger Bands. This strategy aims to capitalize on market corrections by systematically entering positions during periods of price pullbacks and reversion to the mean.
Key Concepts and Principles
1. Dollar-Cost Averaging (DCA)
DCA is an investment strategy that involves regularly purchasing a fixed dollar amount of an asset, regardless of its price. The idea behind DCA is that by spreading out investments over time, the impact of market volatility is reduced, and investors can avoid making large investments at inopportune times. The strategy reduces the risk of buying all at once during a market high and can smooth out the cost of purchasing assets over time.
In the context of this strategy, the Investment Amount (USD) is set by the user and represents the amount of capital to be invested in each buy order. The strategy executes buy orders whenever the price crosses below the lower Bollinger Band, which suggests a potential market correction or pullback. This is an effective way to average the entry price and avoid the emotional pitfalls of trying to time the market perfectly.
2. Mean Reversion
Mean reversion is a concept that suggests prices will tend to return to their historical average or mean over time. In this strategy, mean reversion is implemented using the Bollinger Bands, which are based on a moving average and standard deviation. The lower band is considered a potential buy signal when the price crosses below it, indicating that the asset has become oversold or underpriced relative to its historical average. This triggers the DCA buy order.
Mean reversion strategies are popular because they exploit the natural tendency of prices to revert to their mean after experiencing extreme deviations, such as during market corrections or panic selling.
3. Bollinger Bands
Bollinger Bands are a technical analysis tool that consists of three lines:
Middle Band: The moving average, usually a 200-period Exponential Moving Average (EMA) in this strategy. This serves as the "mean" or baseline.
Upper Band: The middle band plus a certain number of standard deviations (multiplier). The upper band is used to identify overbought conditions.
Lower Band: The middle band minus a certain number of standard deviations (multiplier). The lower band is used to identify oversold conditions.
In this strategy, the Bollinger Bands are used to identify potential entry points for DCA trades. When the price crosses below the lower band, this is seen as a potential opportunity for mean reversion, suggesting that the asset may be oversold and could reverse back toward the middle band (the EMA). Conversely, when the price crosses above the upper band, it indicates overbought conditions and signals potential market exhaustion.
4. Time-Based Entry and Exit
The strategy has specific entry and exit points defined by time parameters:
Open Date: The date when the strategy begins opening positions.
Close Date: The date when all positions are closed.
This time-bound approach ensures that the strategy is active only during a specified window, which can be useful for testing specific market conditions or focusing on a particular time frame.
5. Position Sizing
Position sizing is determined by the Investment Amount (USD), which is the fixed amount to be invested in each buy order. The quantity of the asset to be purchased is calculated by dividing the investment amount by the current price of the asset (investment_amount / close). This ensures that the amount invested remains constant despite fluctuations in the asset's price.
6. Closing All Positions
The strategy includes an exit rule that closes all positions once the specified close date is reached. This allows for controlled exits and limits the exposure to market fluctuations beyond the strategy's timeframe.
7. Background Color Based on Price Relative to Bollinger Bands
The script uses the background color of the chart to provide visual feedback about the price's relationship with the Bollinger Bands:
Red background indicates the price is above the upper band, signaling overbought conditions.
Green background indicates the price is below the lower band, signaling oversold conditions.
This provides an easy-to-interpret visual cue for traders to assess the current market environment.
Postscript: Configuring Initial Capital for Backtesting
To ensure the backtest results align with the actual investment scenario, users must adjust the Initial Capital in the TradingView strategy properties. This is done by calculating the Initial Capital as the product of the Total Closed Trades and the Investment Amount (USD). For instance:
If the user is investing 100 USD per trade and has 10 closed trades, the Initial Capital should be set to 1,000 USD.
Similarly, if the user is investing 200 USD per trade and has 24 closed trades, the Initial Capital should be set to 4,800 USD.
This adjustment ensures that the backtesting results reflect the actual capital deployed in the strategy and provides an accurate representation of potential gains and losses.
Conclusion
The DCA strategy with Mean Reversion and Bollinger Bands is a systematic approach to investing that leverages the power of regular investments and technical analysis to reduce market timing risks. By combining DCA with the insights offered by Bollinger Bands and mean reversion, this strategy offers a structured way to navigate volatile markets while targeting favorable entry points. The clear entry and exit rules, coupled with time-based constraints, make it a robust and disciplined approach to long-term investing.
BacktestLibraryLibrary "BacktestLibrary"
A library providing functions for equity calculation and performance metrics.
since(date, active)
: Calculates the number of candles since a specified date.
Parameters:
date (simple float) : (simple float): The starting date in timestamp format (e.g., input.time(timestamp()))
active (simple bool) : (simple bool): If true, counts the number of candles since the date; if false, returns 0.
Returns: (int): The number of candles since the specified date.
buy_and_hold(r, startDate)
: Calculates the Buy and Hold Equity from a specified date.
Parameters:
r (float) : (series float): Daily returns of the asset (e.g., 0.02 for 2% move).
startDate (simple float) : (simple float): Timestamp of the starting date for the equity calculation.
Returns: (float): Buy and Hold Equity of the asset from the specified date.
equity(sig, threshold, r, startDate, signals)
: Calculates the strategy's equity on a candle-by-candle basis.
Parameters:
sig (float) : (series float): Signal values; positive for long, negative for short.
threshold (simple float) : (simple float): Signal threshold for entering trades.
r (float) : (series float): Daily returns of the asset (e.g., 0.02 for 2% move).
startDate (simple float) : (simple float): Timestamp of the starting date for the equity calculation.
signals (simple string) : (simple string): Type of signals to backtest ("Long & Short", "Long Only", "Short Only").
Returns: (float): Strategy equity on a candle-by-candle basis.
PerformanceMetrics(base, Lookback, startDate)
: Calculates performance metrics of a strategy from a specified date.
Parameters:
base (float) : (series float): Equity values of the strategy or Buy and Hold equity.
Lookback (int) : (series int): Number of periods since the start date; recommended to use the 'since' function.
startDate (simple float) : (simple float): Timestamp of the starting date for the equity calculation.
Returns: (float ): Array of performance metrics.
PerfMetricTable(buy_and_hold, strategy)
: Plots a table comparing performance metrics of Buy and Hold and Strategy equity.
Parameters:
buy_and_hold (array) : (float ): Metrics from the PerformanceMetrics() function for Buy and Hold.
strategy (array) : (float ): Metrics from the PerformanceMetrics() function for the strategy.
Returns: : Table displaying the performance metrics comparison.
SnowdexUtilsLibrary "SnowdexUtils"
the various function that often use when create a strategy trading.
f_backtesting_date(train_start_date, train_end_date, test_date, deploy_date)
Backtesting within a specific window based on deployment and testing dates.
Parameters:
train_start_date (int) : the start date for training the strategy.
train_end_date (int) : the end date for training the strategy.
test_date (bool) : if true, backtests within the period from `train_end_date` to the current time.
deploy_date (bool) : if true, the strategy backtests up to the current time.
Returns: given time falls within the specified window for backtesting.
f_init_ma(ma_type, source, length)
Initializes a moving average based on the specified type.
Parameters:
ma_type (simple string) : the type of moving average (e.g., "RMA", "EMA", "SMA", "WMA").
source (float) : the input series for the moving average calculation.
length (simple int) : the length of the moving average window.
Returns: the calculated moving average value.
f_init_tp(side, entry_price, rr, sl_open_position)
Calculates the target profit based on entry price, risk-reward ratio, and stop loss. The formula is `tp = entry price + (rr * (entry price - stop loss))`.
Parameters:
side (bool) : the trading side (true for long, false for short).
entry_price (float) : the entry price of the position.
rr (float) : the risk-reward ratio.
sl_open_position (float) : the stop loss price for the open position.
Returns: the calculated target profit value.
f_round_up(number, decimals)
Rounds up a number to a specified number of decimals.
Parameters:
number (float)
decimals (int)
Returns: The rounded-up number.
f_get_pip_size()
Calculates the pip size for the current instrument.
Returns: Pip size adjusted for Forex instruments or 1 for others.
f_table_get_position(value)
Maps a string to a table position constant.
Parameters:
value (string) : String representing the desired position (e.g., "Top Right").
Returns: The corresponding position constant or `na` for invalid values.
Breaks and Retests - Free990Strategy Description: "Breaks and Retests - Free990"
The "Breaks and Retests - Free990" strategy is based on identifying breakout and retest opportunities for potential entries in both long and short trades. The idea is to detect price breakouts above resistance levels or below support levels, and subsequently identify retests that confirm the breakout levels. The strategy offers an automated approach to enter trades after a breakout followed by a retest, which serves as a confirmation of trend continuation.
Key Components:
Support and Resistance Detection:
The strategy calculates pivot levels based on historical price movements to define support and resistance areas. A lookback range is used to determine these key levels.
Breakouts and Retests:
The system identifies when a breakout occurs above a resistance level or below a support level.
It then waits for a retest of the previously broken level as confirmation, which is often a better entry opportunity.
Trade Direction Selection:
Users can choose between "Long Only," "Short Only," or "Both" directions for trading based on their market view.
Stop Loss and Trailing Stop:
An initial stop loss is placed at a defined percentage away from the entry.
The trailing stop loss is activated after the position gains a specified percentage in profit.
Long Entry:
A long entry is triggered if the price breaks above a resistance level and subsequently retests that level successfully.
The entry condition checks if the breakout was confirmed and if a retest was valid.
The long entry is only executed if the user-selected direction is either "Long Only" or "Both."
Short Entry:
A short entry is triggered if the price breaks below a support level and subsequently retests that level.
The short entry is only executed if the user-selected direction is either "Short Only" or "Both."
sell_condition checks whether the support has been broken and whether the retest condition is valid.
An initial stop loss is placed when the trade is opened to limit the risk if the trade moves against the position.
The stop loss is calculated based on a user-defined percentage (stop_loss_percent) of the entry price.
pinescript
Copy code
stop_loss_price := strategy.position_avg_price * (1 - stop_loss_percent / 100)
For long positions, the stop loss is placed below the entry price.
For short positions, the stop loss is placed above the entry price.
Trailing Stop:
When a position achieves a certain profit threshold (profit_threshold_percent), the trailing stop mechanism is activated.
For long positions, the trailing stop follows the highest price reached, ensuring that some profit is locked in if the price reverses.
For short positions, the trailing stop follows the lowest price reached.
Code Logic for Trailing Stop:
Exit Execution:
The strategy exits the position when the price hits the calculated stop loss level.
This includes both the initial stop loss and the trailing stop that adjusts as the trade progresses.
Code Logic for Exit:
Summary:
Breaks and Retests - Free990 uses support and resistance levels to identify breakouts, followed by retests for confirmation.
Entry Points: Triggered when a breakout is confirmed and a retest occurs, for both long and short trades.
Exit Points:
Initial Stop Loss: Limits risk for both long and short trades.
Trailing Stop Loss: Locks in profits as the price moves in favor of the position.
This strategy aims to capture the momentum after breakouts and minimize losses through effective use of stop loss and trailing stops. It gives the flexibility of selecting trade direction and ensures trades are taken with confirmation through the retest, which helps to reduce false breakouts.
Original Code by @HoanGhetti
Fibonacci Levels Strategy with High/Low Criteria-AYNETThis code represents a TradingView strategy that uses Fibonacci levels in conjunction with high/low price criteria over specified lookback periods to determine buy (long) and sell (short) conditions. Below is an explanation of each main part of the code:
Explanation of Key Sections
User Inputs for Higher Time Frame and Candle Settings
Users can select a higher time frame (timeframe) for analysis and specify whether to use the "Current" or "Last" higher time frame (HTF) candle for calculating Fibonacci levels.
The currentlast setting allows flexibility between using real-time or the most recent closed higher time frame candle.
Lookback Periods for High/Low Criteria
Two lookback periods, lowestLookback and highestLookback, allow users to set the number of bars to consider when finding the lowest and highest prices, respectively.
This determines the criteria for entering trades based on how recent highs or lows compare to current prices.
Fibonacci Levels Configuration
Fibonacci levels (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, and 100%) are configurable. These are used to calculate price levels between the high and low of the higher time frame candle.
Each level represents a retracement or extension relative to the high/low range of the HTF candle, providing important price levels for decision-making.
HTF Candle Calculation
HTF candle data is calculated based on the higher time frame selected by the user, using the newbar check to reset htfhigh, htflow, and htfopen values.
The values are updated with each new HTF bar or as prices move within the same HTF bar to track the highest high and lowest low accurately.
Set Fibonacci Levels Array
Using the calculated HTF candle's high, low, and open, the Fibonacci levels are computed by interpolating these values according to the user-defined Fibonacci levels.
A fibLevels array stores these computed values.
Plotting Fibonacci Levels
Each Fibonacci level is plotted on the chart with a different color, providing visual indicators for potential support/resistance levels.
High/Low Price Criteria Calculation
The lowest and highest prices over the specified lookback periods (lowestLookback and highestLookback) are calculated and plotted on the chart. These serve as dynamic levels to trigger long or short entries.
Trade Signal Conditions
longCondition: A long (buy) signal is generated when the price crosses above both the lowest price criteria and the 50% Fibonacci level.
shortCondition: A short (sell) signal is generated when the price crosses below both the highest price criteria and the 50% Fibonacci level.
Executing Trades
Based on the longCondition and shortCondition, trades are entered with the strategy.entry() function, using the labels "Long" and "Short" for tracking on the chart.
Strategy Use
This strategy allows traders to utilize Fibonacci retracement levels and recent highs/lows to identify trend continuation or reversal points, potentially providing entry points aligned with larger market structure. Adjusting the lowestLookback and highestLookback along with Fibonacci levels enables a customizable approach to suit different trading styles and market conditions.
Fibonacci ATR Fusion - Strategy [presentTrading]Open-script again! This time is also an ATR-related strategy. Enjoy! :)
If you have any questions, let me know, and I'll help make this as effective as possible.
█ Introduction and How It Is Different
The Fibonacci ATR Fusion Strategy is an advanced trading approach that uniquely integrates Fibonacci-based weighted averages with the Average True Range (ATR) to identify and capitalize on significant market trends.
Unlike traditional strategies that rely on single indicators or static parameters, this method combines multiple timeframes and dynamic volatility measurements to enhance precision and adaptability. Additionally, it features a 4-step Take Profit (TP) mechanism, allowing for systematic profit-taking at various levels, which optimizes both risk management and return potential in long and short market positions.
BTCUSD 6hr Performance
█ Strategy, How It Works: Detailed Explanation
The Fibonacci ATR Fusion Strategy utilizes a combination of technical indicators and weighted averages to determine optimal entry and exit points. Below is a breakdown of its key components and operational logic.
🔶 1. Enhanced True Range Calculation
The strategy begins by calculating the True Range (TR) to measure market volatility accurately.
TR = max(High - Low, abs(High - Previous Close), abs(Low - Previous Close))
High and Low: Highest and lowest prices of the current trading period.
Previous Close: Closing price of the preceding trading period.
max: Selects the largest value among the three calculations to account for gaps and limit movements.
🔶 2. Buying Pressure (BP) Calculation
Buying Pressure (BP) quantifies the extent to which buyers are driving the price upwards within a period.
BP = Close - True Low
Close: Current period's closing price.
True Low: The lower boundary determined in the True Range calculation.
🔶 3. Ratio Calculation for Different Periods
To assess the strength of buying pressure relative to volatility, the strategy calculates a ratio over various Fibonacci-based timeframes.
Ratio = 100 * (Sum of BP over n periods) / (Sum of TR over n periods)
n: Length of the period (e.g., 8, 13, 21, 34, 55).
Sum of BP: Cumulative Buying Pressure over n periods.
Sum of TR: Cumulative True Range over n periods.
This ratio normalizes buying pressure, making it comparable across different timeframes.
🔶 4. Weighted Average Calculation
The strategy employs a weighted average of ratios from multiple Fibonacci-based periods to smooth out signals and enhance trend detection.
Weighted Avg = (w1 * Ratio_p1 + w2 * Ratio_p2 + w3 * Ratio_p3 + w4 * Ratio_p4 + Ratio_p5) / (w1 + w2 + w3 + w4 + 1)
w1, w2, w3, w4: Weights assigned to each ratio period.
Ratio_p1 to Ratio_p5: Ratios calculated for periods p1 to p5 (e.g., 8, 13, 21, 34, 55).
This weighted approach emphasizes shorter periods more heavily, capturing recent market dynamics while still considering longer-term trends.
🔶 5. Simple Moving Average (SMA) of Weighted Average
To further smooth the weighted average and reduce noise, a Simple Moving Average (SMA) is applied.
Weighted Avg SMA = SMA(Weighted Avg, m)
- m: SMA period (e.g., 3).
This smoothed line serves as the primary signal generator for trade entries and exits.
🔶 6. Trading Condition Thresholds
The strategy defines specific threshold values to determine optimal entry and exit points based on crossovers and crossunders of the SMA.
Long Condition = Crossover(Weighted Avg SMA, Long Entry Threshold)
Short Condition = Crossunder(Weighted Avg SMA, Short Entry Threshold)
Long Exit = Crossunder(Weighted Avg SMA, Long Exit Threshold)
Short Exit = Crossover(Weighted Avg SMA, Short Exit Threshold)
Long Entry Threshold (T_LE): Level at which a long position is triggered.
Short Entry Threshold (T_SE): Level at which a short position is triggered.
Long Exit Threshold (T_LX): Level at which a long position is exited.
Short Exit Threshold (T_SX): Level at which a short position is exited.
These conditions ensure that trades are only executed when clear trends are identified, enhancing the strategy's reliability.
Previous local performance
🔶 7. ATR-Based Take Profit Mechanism
When enabled, the strategy employs a 4-step Take Profit system to systematically secure profits as the trade moves in the desired direction.
TP Price_1 Long = Entry Price + (TP1ATR * ATR Value)
TP Price_2 Long = Entry Price + (TP2ATR * ATR Value)
TP Price_3 Long = Entry Price + (TP3ATR * ATR Value)
TP Price_1 Short = Entry Price - (TP1ATR * ATR Value)
TP Price_2 Short = Entry Price - (TP2ATR * ATR Value)
TP Price_3 Short = Entry Price - (TP3ATR * ATR Value)
- ATR Value: Calculated using ATR over a specified period (e.g., 14).
- TPxATR: User-defined multipliers for each take profit level.
- TPx_percent: Percentage of the position to exit at each TP level.
This multi-tiered exit strategy allows for partial position closures, optimizing profit capture while maintaining exposure to potential further gains.
█ Trade Direction
The Fibonacci ATR Fusion Strategy is designed to operate in both long and short market conditions, providing flexibility to traders in varying market environments.
Long Trades: Initiated when the SMA of the weighted average crosses above the Long Entry Threshold (T_LE), indicating strong upward momentum.
Short Trades: Initiated when the SMA of the weighted average crosses below the Short Entry Threshold (T_SE), signaling robust downward momentum.
Additionally, the strategy can be configured to trade exclusively in one direction—Long, Short, or Both—based on the trader’s preference and market analysis.
█ Usage
Implementing the Fibonacci ATR Fusion Strategy involves several steps to ensure it aligns with your trading objectives and market conditions.
1. Configure Strategy Parameters:
- Trading Direction: Choose between Long, Short, or Both based on your market outlook.
- Trading Condition Thresholds: Set the Long Entry, Short Entry, Long Exit, and Short Exit thresholds to define when to enter and exit trades.
2. Set Take Profit Levels (if enabled):
- ATR Multipliers: Define how many ATRs away from the entry price each take profit level is set.
- Take Profit Percentages: Allocate what percentage of the position to close at each TP level.
3. Apply to Desired Chart:
- Add the strategy to the chart of the asset you wish to trade.
- Observe the plotted Fibonacci ATR and SMA Fibonacci ATR indicators for visual confirmation.
4. Monitor and Adjust:
- Regularly review the strategy’s performance through backtesting.
- Adjust the input parameters based on historical performance and changing market dynamics.
5. Risk Management:
- Ensure that the sum of take profit percentages does not exceed 100% to avoid over-closing positions.
- Utilize the ATR-based TP levels to adapt to varying market volatilities, maintaining a balanced risk-reward ratio.
█ Default Settings
Understanding the default settings is crucial for optimizing the Fibonacci ATR Fusion Strategy's performance. Here's a precise and simple overview of the key parameters and their effects:
🔶 Key Parameters and Their Effects
1. Trading Direction (`tradingDirection`)
- Default: Both
- Effect: Determines whether the strategy takes both long and short positions or restricts to one direction. Selecting Both allows maximum flexibility, while Long or Short can be used for directional bias.
2. Trading Condition Thresholds
Long Entry (long_entry_threshold = 58.0): Higher values reduce false positives but may miss trades.
Short Entry (short_entry_threshold = 42.0): Lower values capture early short trends but may increase false signals.
Long Exit (long_exit_threshold = 42.0): Exits long positions early, securing profits but potentially cutting trends short.
Short Exit (short_exit_threshold = 58.0): Delays short exits to capture favorable movements, avoiding premature exits.
3. Take Profit Configuration (`useTakeProfit` = false)
- Effect: When enabled, the strategy employs a 4-step TP mechanism to secure profits at multiple levels. By default, it is disabled to allow users to opt-in based on their trading style.
4. ATR-Based Take Profit Multipliers
TP1 (tp1ATR = 3.0): Sets the first TP at 3 ATRs for initial profit capture.
TP2 (tp2ATR = 8.0): Targets larger trends, though less likely to be reached.
TP3 (tp3ATR = 14.0): Optimizes for extreme price moves, seldom triggered.
5. Take Profit Percentages
TP Level 1 (tp1_percent = 12%): Secures 12% at the first TP.
TP Level 2 (tp2_percent = 12%): Exits another 12% at the second TP.
TP Level 3 (tp3_percent = 12%): Closes an additional 12% at the third TP.
6. Weighted Average Parameters
Ratio Periods: Fibonacci-based intervals (8, 13, 21, 34, 55) balance responsiveness.
Weights: Emphasizes recent data for timely responses to market trends.
SMA Period (weighted_avg_sma_period = 3): Smoothens data with minimal lag, balancing noise reduction and responsiveness.
7. ATR Period (`atrPeriod` = 14)
Effect: Sets the ATR calculation length, impacting TP sensitivity to volatility.
🔶 Impact on Performance
- Sensitivity and Responsiveness:
- Shorter Ratio Periods and Higher Weights: Make the weighted average more responsive to recent price changes, allowing quicker trade entries and exits but increasing the likelihood of false signals.
- Longer Ratio Periods and Lower Weights: Provide smoother signals with fewer false positives but may delay trade entries, potentially missing out on significant price moves.
- Profit Taking:
- ATR Multipliers: Higher multipliers set take profit levels further away, targeting larger price movements but reducing the probability of reaching these levels.
- Fixed Percentages: Allocating equal percentages at each TP level ensures consistent profit realization and risk management, preventing overexposure.
- Trade Direction Control:
- Selecting Specific Directions: Restricting trades to Long or Short can align the strategy with market trends or personal biases, potentially enhancing performance in trending markets.
- Risk Management:
- Take Profit Percentages: Dividing the position into smaller percentages at multiple TP levels helps lock in profits progressively, reducing risk and allowing the remaining position to ride further trends.
- Market Adaptability:
- Weighted Averages and ATR: By combining multiple timeframes and adjusting to volatility, the strategy adapts to different market conditions, maintaining effectiveness across various asset classes and timeframes.
---
If you want to know more about ATR, can also check "SuperATR 7-Step Profit".
Enjoy trading.
Custom Fibonacci StrategyCustom Fibonacci Strategy:
This strategy relies on analyzing Fibonacci levels to identify entry points for trades. It works by identifying peaks and troughs over a specified time period (50 bars in this code). Here are the steps of the strategy:
Identifying Peaks and Troughs:
The highest peak and lowest trough over the last 50 bars are identified.
If the price exceeds the previous peak, it is considered a break of the peak.
If the price falls below the previous trough after breaking the peak, it is considered a break of the trough.
Calculating Fibonacci Levels:
The 50% level (midway point) between the identified peak and trough is calculated.
Buy Signals:
When a trough is broken, and the price trades at or below the 50% level, the risk-to-reward ratio is evaluated.
If the risk-to-reward ratio is greater than or equal to 2, a buy signal is generated.
Displaying Levels:
Horizontal lines are displayed on the chart to illustrate the peak, trough, and Fibonacci level.
Summary
This strategy provides a systematic approach to trading based on Fibonacci retracement levels and price action, allowing traders to make informed decisions about entry points and manage risk effectively.
XAUUSD 10-Minute StrategyThis XAUUSD 10-Minute Strategy is designed for trading Gold vs. USD on a 10-minute timeframe. By combining multiple technical indicators (MACD, RSI, Bollinger Bands, and ATR), the strategy effectively captures both trend-following and reversal opportunities, with adaptive risk management for varying market volatility. This approach balances high-probability entries with robust volatility management, making it suitable for traders seeking to optimise entries during significant price movements and reversals.
Key Components and Logic:
MACD (12, 26, 9):
Generates buy signals on MACD Line crossovers above the Signal Line and sell signals on crossovers below the Signal Line, helping to capture momentum shifts.
RSI (14):
Utilizes oversold (below 35) and overbought (above 65) levels as a secondary filter to validate entries and avoid overextended price zones.
Bollinger Bands (20, 2):
Uses upper and lower Bollinger Bands to identify potential overbought and oversold conditions, aiming to enter long trades near the lower band and short trades near the upper band.
ATR-Based Stop Loss and Take Profit:
Stop Loss and Take Profit levels are dynamically set as multiples of ATR (3x for stop loss, 5x for take profit), ensuring flexibility with market volatility to optimise exit points.
Entry & Exit Conditions:
Buy Entry: T riggered when any of the following conditions are met:
MACD Line crosses above the Signal Line
RSI is oversold
Price drops below the lower Bollinger Band
Sell Entry: Triggered when any of the following conditions are met:
MACD Line crosses below the Signal Line
RSI is overbought
Price moves above the upper Bollinger Band
Exit Strategy: Trades are closed based on opposing entry signals, with adaptive spread adjustments for realistic exit points.
Backtesting Configuration & Results:
Backtesting Period: July 21, 2024, to October 30, 2024
Symbol Info: XAUUSD, 10-minute timeframe, OANDA data source
Backtesting Capital: Initial capital of $700, with each trade set to 10 contracts (equivalent to approximately 0.1 lots based on the broker’s contract size for gold).
Users should confirm their broker's contract size for gold, as this may differ. This script uses 10 contracts for backtesting purposes, aligned with 0.1 lots on brokers offering a 100-contract specification.
Key Backtesting Performance Metrics:
Net Profit: $4,733.90 USD (676.27% increase)
Total Closed Trades: 526
Win Rate: 53.99%
Profit Factor: 1.44 (1.96 for Long trades, 1.14 for Short trades)
Max Drawdown: $819.75 USD (56.33% of equity)
Sharpe Ratio: 1.726
Average Trade: $9.00 USD (0.04% of equity per trade)
This backtest reflects realistic conditions, with a spread adjustment of 38 points and no slippage or commission applied. The settings aim to simulate typical retail trading conditions. However, please adjust the initial capital, contract size, and other settings based on your account specifics for best results.
Usage:
This strategy is tuned specifically for XAUUSD on a 10-minute timeframe, ideal for both trend-following and reversal trades. The ATR-based stop loss and take profit levels adapt dynamically to market volatility, optimising entries and exits in varied conditions. To backtest this script accurately, ensure your broker’s contract specifications for gold align with the parameters used in this strategy.
Up/Down Volume with Normal DistributionThis indicator analyzes the relationship between price movements and trading volume by distinguishing between "up" and "down" volume. Up volume refers to trading volume occurring during price increases, while down volume refers to trading volume during price decreases. The indicator calculates the mean and standard deviation for both up and down volume over a specified length. This statistical approach enables traders to visualize volume deviations from the average, highlighting potential market anomalies that could signal trading opportunities.
Relationship Between Price and Volume
Volume is a critical metric in technical analysis, often considered a leading indicator of price movements. According to studies in financial economics, significant price changes accompanied by high volume tend to indicate strong market conviction (Wyart et al., 2008). Conversely, price changes on low volume may suggest a lack of interest or conviction, making those moves less reliable.
The relationship between price and volume can be summarized as follows:
Confirmation of Trends: High volume accompanying a price increase often confirms an upward trend. Similarly, high volume during price declines indicates bearish sentiment.
Reversals and Exhaustion: Decreases in volume during price increases may suggest a potential reversal or exhaustion of buying pressure, while increased volume during declines can indicate capitulation.
Breakouts: Price movements that break through significant resistance or support levels accompanied by high volume are typically more significant and suggest stronger follow-through in the new direction.
Developing a Trading Strategy
Traders can leverage the insights gained from this relationship to formulate a trading strategy based on volume analysis:
Entry Signals: Traders can enter long positions when the up volume significantly exceeds the mean by a predefined number of standard deviations. This situation indicates strong buying interest. Conversely, short positions can be initiated when down volume exceeds the mean by a specified standard deviation.
Exit Signals: Exiting positions can be based on changes in volume patterns. If the volume starts to decrease significantly after a price increase, this may signal a potential reversal or the need to lock in profits.
Risk Management: Integrating volume analysis with other technical indicators, such as moving averages or RSI, can provide a more comprehensive risk management framework, enhancing the overall effectiveness of the strategy.
In conclusion, understanding the relationship between price and volume, alongside employing statistical measures like the mean and standard deviation, enables traders to create more robust trading strategies that capitalize on market movements.
References
Wyart, M., Bouchaud, J.-P., & Dacorogna, M. (2008). "Self-organized volatility in a complicated market." European Physical Journal B, 61(2), 195-203. doi:10.1140
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!
Ultimate Oscillator Trading StrategyThe Ultimate Oscillator Trading Strategy implemented in Pine Script™ is based on the Ultimate Oscillator (UO), a momentum indicator developed by Larry Williams in 1976. The UO is designed to measure price momentum over multiple timeframes, providing a more comprehensive view of market conditions by considering short-term, medium-term, and long-term trends simultaneously. This strategy applies the UO as a mean-reversion tool, seeking to capitalize on temporary deviations from the mean price level in the asset’s movement (Williams, 1976).
Strategy Overview:
Calculation of the Ultimate Oscillator (UO):
The UO combines price action over three different periods (short-term, medium-term, and long-term) to generate a weighted momentum measure. The default settings used in this strategy are:
Short-term: 6 periods (adjustable between 2 and 10).
Medium-term: 14 periods (adjustable between 6 and 14).
Long-term: 20 periods (adjustable between 10 and 20).
The UO is calculated as a weighted average of buying pressure and true range across these periods. The weights are designed to give more emphasis to short-term momentum, reflecting the short-term mean-reversion behavior observed in financial markets (Murphy, 1999).
Entry Conditions:
A long position is opened when the UO value falls below 30, indicating that the asset is potentially oversold. The value of 30 is a common threshold that suggests the price may have deviated significantly from its mean and could be due for a reversal, consistent with mean-reversion theory (Jegadeesh & Titman, 1993).
Exit Conditions:
The long position is closed when the current close price exceeds the previous day’s high. This rule captures the reversal and price recovery, providing a defined point to take profits.
The use of previous highs as exit points aligns with breakout and momentum strategies, as it indicates sufficient strength for a price recovery (Fama, 1970).
Scientific Basis and Rationale:
Momentum and Mean-Reversion:
The strategy leverages two well-established phenomena in financial markets: momentum and mean-reversion. Momentum, identified in earlier studies like those by Jegadeesh and Titman (1993), describes the tendency of assets to continue in their direction of movement over short periods. Mean-reversion, as discussed by Poterba and Summers (1988), indicates that asset prices tend to revert to their mean over time after short-term deviations. This dual approach aims to buy assets when they are temporarily oversold and capitalize on their return to the mean.
Multi-timeframe Analysis:
The UO’s incorporation of multiple timeframes (short, medium, and long) provides a holistic view of momentum, unlike single-period oscillators such as the RSI. By combining data across different timeframes, the UO offers a more robust signal and reduces the risk of false entries often associated with single-period momentum indicators (Murphy, 1999).
Trading and Market Efficiency:
Studies in behavioral finance, such as those by Shiller (2003), show that short-term inefficiencies and behavioral biases can lead to overreactions in the market, resulting in price deviations. This strategy seeks to exploit these temporary inefficiencies, using the UO as a signal to identify potential entry points when the market sentiment may have overly pushed the price away from its average.
Strategy Performance:
Backtests of this strategy show promising results, with profit factors exceeding 2.5 when the default settings are optimized. These results are consistent with other studies on short-term trading strategies that capitalize on mean-reversion patterns (Jegadeesh & Titman, 1993). The use of a dynamic, multi-period indicator like the UO enhances the strategy’s adaptability, making it effective across different market conditions and timeframes.
Conclusion:
The Ultimate Oscillator Trading Strategy effectively combines momentum and mean-reversion principles to trade on temporary market inefficiencies. By utilizing multiple periods in its calculation, the UO provides a more reliable and comprehensive measure of momentum, reducing the likelihood of false signals and increasing the profitability of trades. This aligns with modern financial research, showing that strategies based on mean-reversion and multi-timeframe analysis can be effective in capturing short-term price movements.
References:
Fama, E. F. (1970). Efficient Capital Markets: A Review of Theory and Empirical Work. The Journal of Finance, 25(2), 383-417.
Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. The Journal of Finance, 48(1), 65-91.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets: A Comprehensive Guide to Trading Methods and Applications. New York Institute of Finance.
Poterba, J. M., & Summers, L. H. (1988). Mean Reversion in Stock Prices: Evidence and Implications. Journal of Financial Economics, 22(1), 27-59.
Shiller, R. J. (2003). From Efficient Markets Theory to Behavioral Finance. Journal of Economic Perspectives, 17(1), 83-104.
Williams, L. (1976). Ultimate Oscillator. Market research and technical trading analysis.