
A estratégia é uma combinação de estratégia de reversão de tendência com a estratégia de Ellers Guidance Indicator para obter um sinal de negociação mais confiável. A estratégia de reversão de tendência determina a reversão de tendência e a estratégia de Ellers Guidance Indicator determina o ponto de reversão periódica. O sinal combinado determina com mais precisão o momento de entrada no mercado.
Esta estratégia tem origem no livro de Ulf Jensen, How to Triple Your Money in the Futures Market, p. 183. Pertence ao tipo de estratégia de reversão. Faça mais quando o preço de fechamento for 2 dias consecutivos acima do preço de fechamento do dia anterior e a linha lenta estocástica do dia 9 for abaixo de 50. Faça um vazio quando o preço de fechamento for 2 dias consecutivos abaixo do preço de fechamento do dia anterior e a linha rápida estocástica do dia 9 for acima de 50.
A estratégia usa dados intradiários para traçar o preço sintético de tendência de um dia para o outro (Detrended Synthetic Price, DSP) e o indicador de liderança de Ehlers (Ehlers Leading Indicator, ELI) para o dia. O DSP pode capturar o ciclo de dominação de preços, calculado com o método de ondas de 2o Battsworth subtraindo ondas de 3o.
A maior vantagem da estratégia combinada é a combinação de um julgamento de reversão de tendência e um julgamento de reversão periódica, o sinal de negociação é mais confiável. A estratégia de reversão de tendência pode determinar o ponto de reversão de tendência para quebrar o caminho ascendente e descendente. O indicador de liderança de Ehlers, por sua vez, pode indicar com antecedência os baixos e altos periódicos.
Outra vantagem é a flexibilidade de ajuste de parâmetros. Os parâmetros dos índices de ações em uma estratégia de reversão de tendência podem ser ajustados ao mercado; O comprimento do período no indicador de liderança de Ehlers também pode ser ajustado para adaptar-se a diferentes períodos.
O maior risco da estratégia é perder a tendência persisting. Como a estratégia espera que um sinal de reversão apareça para entrar em jogo, pode perder a fase inicial de uma forte tendência. Além disso, o sinal de reversão pode ser uma falsa ruptura e pode ser encaixado.
A solução é ajustar os parâmetros, reduzir o ciclo de julgamento de reversão e capturar a reversão da tendência a tempo. Além disso, pode-se introduzir um stop loss para controlar os prejuízos.
A estratégia pode ser melhorada em vários aspectos:
Introduzir estratégias de stop loss para controlar perdas individuais.
Parâmetros de otimização, ajustando o ciclo de sinal de inversão para adaptar-se a diferentes ambientes de mercado.
Adicionar filtros para outros indicadores, melhorar a qualidade do sinal e reduzir os falsos sinais.
Adição de módulos de gestão de fundos para controlar posições e riscos globais.
Teste o efeito dos parâmetros de diferentes variedades e otimize quais variedades são adequadas.
A adição de módulos de aprendizagem de máquina permite que os parâmetros sejam ajustados automaticamente.
A estratégia combina o julgamento de reversão de tendência e o julgamento de reversão periódica, para capturar de forma mais confiável o momento de entrada no mercado. A maior vantagem é a boa qualidade do sinal, a capacidade de ajuste. O maior risco é perder a tendência inicial, que pode ser controlada por meio do ajuste de parâmetros e parada.
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 26/11/2019
// 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
// This Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70.
//
// 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
D_ELI(Length) =>
pos = 0.0
xHL2 = security(syminfo.tickerid, 'D', hl2)
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
xResultEMA = ema(xEMA1_EMA2, Length)
nRes = xEMA1_EMA2 - xResultEMA
pos:= iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & D_ELI (Ehlers Leading Indicator)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthELI = input(7, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_ELI = D_ELI(LengthELI)
pos = iff(posReversal123 == 1 and posD_ELI == 1 , 1,
iff(posReversal123 == -1 and posD_ELI == -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 )