The dual confirmation reversal trend tracking strategy integrates the 123 reversal pattern strategy and the support/resistance breakout strategy to realize double confirmation of price reversal signals and filter out some noisy trading signals, thus improving the win rate of the strategy.
It is mainly used for medium-to-long term trading. When the price forms a reversal signal, it will detect whether the key support or resistance level is broken out at the same time. Trading signals are generated only after double confirmation.
The dual confirmation reversal trend tracking strategy consists of two parts:
123 reversal pattern strategy
By comparing the closing prices of the previous two candlesticks, determine whether the price has formed a reversal pattern. Combined with the stochastic indicator to determine the oscillation to filter out false opportunities.
Support/Resistance Breakout Strategy
Use the highest price, lowest price and closing price of the previous day to calculate the support and resistance levels. Monitor whether the price breaks through these key levels.
When the price meets the trading signals of both strategies at the same time, the reversal signal is considered to be double confirmed and the final trading order is generated.
Parameters can be optimized to adjust the strictness of dual confirmation and balance the win rate and number of profitable trades.
The dual confirmation reversal trend tracking strategy successfully combines the advantages of reversal patterns and key level breakouts. While improving signal quality, it also ensures the number of trades. It is a suitable strategy for medium-to-long term trend trading. The addition of parameter tuning and stop loss strategies can further enhance the stability and practicability of the strategy.
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 15/09/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The name ‘Floor-Trader Pivot,’ came from the fact that Pivot points can // be calculated quickly, on the fly using price data from the previous day // as an input. Although time-frames of less than a day can be used, Pivots are // commonly plotted on the Daily Chart; using price data from the previous day’s // trading activity. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos FPP() => pos = 0 xHigh = security(syminfo.tickerid,"D", high[1]) xLow = security(syminfo.tickerid,"D", low[1]) xClose = security(syminfo.tickerid,"D", close[1]) vPP = (xHigh+xLow+xClose) / 3 vR1 = (vPP * 2) - xLow vS1 = (vPP * 2) - xHigh pos := iff(close > vR1, 1, iff(close < vS1, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Floor Pivot Points", shorttitle="Combo", overlay = true) Length = input(15, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFPP = FPP() pos = iff(posReversal123 == 1 and posFPP == 1 , 1, iff(posReversal123 == -1 and posFPP == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6