Esta estratégia utiliza primeiro sinais de reversão de preço para negociação, em seguida, combina indicadores de filtragem de tendência para triagem, implementando um sistema orientado por dois fatores.
A parte de reversão de preço usa o sistema de reversão 123. Este sistema é do livro
Quando as condições acima são satisfeitas, é gerado um sinal de compra.
É gerado um sinal de venda.
O objetivo deste sistema de reversão é capturar reversões de curto prazo quando os preços formam uma reversão temporária.
A parte de filtragem da tendência usa o sistema Extracting The Trend (ETT). O sistema ETT julga a direção da tendência através de uma combinação de filtro e média móvel. Nesta estratégia, sua principal função é verificar os sinais de reversão de preço, evitando a operação de reversão quando não há uma tendência clara.
Esta estratégia combina os sinais de negociação de ambas as sub-estratégias, eventualmente realizando um sistema de negociação de reversão orientado por dois fatores.
A estratégia de negociação de reversão de dois fatores integra as vantagens de cada subestratégia através de uma combinação:
Portanto, esta estratégia pode efetivamente filtrar sinais de reversão inválidos. Com o julgamento correto da tendência, realiza uma operação de reversão, melhorando assim o desempenho geral do sistema de negociação.
A estratégia de negociação de reversão de dois fatores apresenta os seguintes riscos principais:
Para reduzir os riscos acima, considerações incluem ajustar os parâmetros do compilador, otimizar as estratégias de reversão e ETT para um melhor julgamento, bem como expandir adequadamente o intervalo de stop loss para negociação de reversão.
Esta estratégia pode ser otimizada nos seguintes aspectos:
Com a lógica da estratégia e os principais sinais de negociação inalterados, podem ser esperados melhores resultados de backtest através da otimização de parâmetros e combinações.
A estratégia de negociação de reversão de dois fatores combina organicamente sinais de reversão de preço e filtragem de tendência para o sistema de julgamento de múltiplos fatores. Em comparação com as estratégias de sinal de reversão único, esta estratégia pode capturar melhor as reversões de preços de curto prazo, evitando sinais falsos quando não há uma tendência clara, melhorando assim a qualidade do sinal.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/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 // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -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 )