Esta estratégia combina o padrão de reversão 123 e a facilidade de movimento (EOM) para negociar em pontos de virada. O padrão de reversão 123 gera sinais quando o preço forma padrões específicos ao longo de 3 dias consecutivos. A estratégia EOM utiliza mudanças no preço e no volume para medir o impulso do mercado. A combinação de ambas as estratégias considera padrões técnicos, bem como o impulso, melhorando a precisão dos sinais de negociação.
A estratégia consiste em dois componentes:
A estratégia é longa quando os sinais EOM e 123 se alinham no lado longo e é curta quando os sinais se alinham no lado curto.
As vantagens desta estratégia:
Combina padrões de preços e impulso para melhor precisão do sinal
123 padrão captura pontos de virada, EOM medidores impulso de tendência, dois se complementam
Stoch evita problemas durante a consolidação
Simples e fáceis de implementar
Parâmetros personalizáveis para diferentes ambientes de mercado
Os riscos a considerar:
Dependência excessiva das configurações dos parâmetros, configurações inadequadas podem levar a transações excessivas ou perdidas
Muitos filtros podem gerar muito poucos sinais
EOM sensível à volatilidade, pode gerar falsos sinais
Desempenho em tempo real mais fraco que o backtest, necessidade de controlar o dimensionamento da posição
Apto apenas para ações de tendência, não para mercados de variação
A estratégia pode ser melhorada:
Optimização dos parâmetros para equilibrar a frequência e a qualidade dos sinais
Adição de stop loss para controlar a perda de uma única operação
Adição de um filtro de tendência para evitar transações contra-tendência
Incorporar o dimensionamento das posições com base na volatilidade
Utilizando o aprendizado de máquina para otimizar dinamicamente parâmetros
Esta estratégia integra padrões de preços e impulso para alto valor prático. Mas a frequência de negociação, o controle de perdas e os riscos de contra-tendência precisam ser gerenciados. Melhorias adicionais nos parâmetros, stop loss, filtragem de tendência podem melhorar a estabilidade e lucratividade. A lógica é clara e fácil de implementar para os comerciantes quant.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/04/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 // This indicator gauges the magnitude of price and volume movement. // The indicator returns both positive and negative values where a // positive value means the market has moved up from yesterday's value // and a negative value means the market has moved down. A large positive // or large negative value indicates a large move in price and/or lighter // volume. A small positive or small negative value indicates a small move // in price and/or heavier volume. // A positive or negative numeric value. A positive value means the market // has moved up from yesterday's value, whereas, a negative value means the // market has moved down. // // 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 EOM(BuyZone, SellZone) => pos = 0 xHigh = high xLow = low xVolume = volume xHalfRange = (xHigh - xLow) * 0.5 xMidpointMove = mom(xHalfRange, 1) xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0) nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0) pos := iff(nRes > BuyZone, 1, iff(nRes < SellZone, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Ease of Movement (EOM)", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- BuyZone = input(4000, minval=1) SellZone = input(-4000) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posEOM = EOM(BuyZone, SellZone) pos = iff(posReversal123 == 1 and posEOM == 1 , 1, iff(posReversal123 == -1 and posEOM == -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 )