Esta estratégia integra a estratégia de reversão 123 e a estratégia de linhas de demarcação futuras (FLD) para implementar uma estratégia quantitativa de negociação que entra ou sai de posições quando ambas as estratégias geram sinais simultaneamente.
A estratégia de reversão 123 tem origem no livro
A estratégia de linhas de demarcação futuras (FLD) é uma estratégia de tendência baseada na periodicidade das flutuações de preços.
Esta estratégia combina estratégias de reversão e de tendência, capturando oportunidades de reversão de curto prazo e direções de tendência de médio e longo prazo em vários prazos para negociação quantitativa. O elemento de reversão fornece chances de lucro de curto prazo, enquanto a parte de tendência garante que a negociação geral esteja alinhada com a tendência, controlando efetivamente os riscos comerciais. Além disso, a natureza adaptativa da FLD também aumenta a estabilidade da estratégia.
Os principais riscos desta estratégia vêm de falhas de sinais de reversão e erros nos julgamentos da linha FLD. Para o primeiro, os parâmetros podem ser ajustados para confirmar os sinais de reversão ou adicionar outros indicadores auxiliares para melhorar a precisão. Para o segundo, os parâmetros precisam ser otimizados para garantir que o FLD descreva os ciclos de mercado com mais precisão. Além disso, os erros do FLD quando ocorrem grandes inversões de tendência também devem ser observados.
Esta estratégia combina conceitos de reversão e de tendência para lucros estáveis em prazos de curto e médio prazo.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 28/08/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 // An FLD is a line that is plotted on the same scale as the price and is in fact the // price itself displaced to the right (into the future) by (approximately) half the // wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be // plotted for each cycle: // An FLD based on the median price. // An FLD based on the high price. // An FLD based on the low price. // // 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 FLD(Period,src) => pos = 0 pos := iff(src[Period] < close , 1, iff(src[Period] > close, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & FLD's - Future Lines of Demarcation", shorttitle="Combo", overlay = true) Length = input(15, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Period = input(title="Period", defval=40) src = input(title="Source", type=input.source, defval=close) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFLD = FLD(Period,src) pos = iff(posReversal123 == 1 and posFLD == 1 , 1, iff(posReversal123 == -1 and posFLD == -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 )