A estratégia de negociação Momentum Reversal combina as vantagens das estratégias de reversão e momentum, utilizando sinais de ambos os tipos de indicadores para realizar negociações contra-direcionais em pontos de virada para lucro.
A estratégia consiste em duas partes:
A primeira parte é a estratégia de reversão 123.
Ir longo quando o preço de fechamento for superior ao fechamento anterior durante 2 dias consecutivos e o oscilador estocástico lento de 9 dias estiver abaixo de 50.
Ir curto quando o preço de fechamento for inferior ao fechamento anterior durante 2 dias consecutivos e o Oscilador Estocástico rápido de 9 dias estiver acima de 50.
A segunda parte é o indicador de momento filtrado.
Calcular a mudança de preço xMom = fechamento - fechamento [1]
Calcule a mudança de preço absoluto xMomAbs = abs ((fechar - fechar[1])
Filtrar xMom se inferior ao limite Filtrar para 0
Filtrar xMomAbs se inferior ao limite Filtrar para 0
Calcular a soma de xMom filtrado em n dias nSum
Calcular a soma dos xMomAbs filtrados ao longo de n dias nAbsSum
Calcular o valor do momento: nRes = 100 * nSum / nAbsSum
Gerar sinal baseado em nRes e bandas TopBand, LowBand
Este indicador filtra pequenas flutuações e extrai informações de impulso das principais tendências.
Por fim, os sinais de negociação são gerados quando os sinais de ambos os indicadores se alinham para longo ou curto.
A estratégia combina as vantagens de dois tipos diferentes de indicadores para melhorar a qualidade do sinal:
A estratégia de reversão 123 detecta tendências de reversão em pontos de virada, evitando ficar preso.
O indicador de momento filtrado foca apenas em grandes movimentos, filtrando o ruído e captando as principais tendências.
Combiná-los verifica os sinais e reduz os negócios incorretos, melhorando a taxa de ganhos.
Os principais riscos desta estratégia incluem:
A análise de um único quadro de tempo pode perder uma tendência maior.
As definições dos parâmetros estáticos não se adaptam às alterações do mercado.
A dupla verificação pode perder algumas oportunidades, reduzindo o potencial de lucro.
Os sinais de baixa qualidade podem também ser verificados, levando a perdas.
A estratégia pode ser otimizada em vários aspectos:
Adicione a verificação multi-temporal para evitar ser preso.
Usar parâmetros adaptativos para ajustar os indicadores com base nas condições do mercado.
Otimizar o limiar do filtro para reduzir os falsos sinais.
Adicionar stop loss para controlar o montante da perda de uma única transação.
Ajustar o dimensionamento das posições para otimizar a eficiência da utilização do capital.
Em conclusão, a estratégia de reversão de momento combina os pontos fortes das estratégias de reversão e de momento filtrado para melhorar a qualidade e a lucratividade do sinal até certo ponto.
/*backtest start: 2023-09-08 00:00:00 end: 2023-10-08 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/09/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 CMO which ignores price changes which are less // than a threshold value. CMO was developed by Tushar Chande. A scientist, // an inventor, and a respected trading system developer, Mr. Chande developed // the CMO to capture what he calls "pure momentum". For more definitive // information on the CMO and other indicators we recommend the book The New // Technical Trader by Tushar Chande and Stanley Kroll. // The CMO is closely related to, yet unique from, other momentum oriented // indicators such as Relative Strength Index, Stochastic, Rate-of-Change, etc. // It is most closely related to Welles Wilder`s RSI, yet it differs in several ways: // - It uses data for both up days and down days in the numerator, thereby directly // measuring momentum; // - The calculations are applied on unsmoothed data. Therefore, short-term extreme // movements in price are not hidden. Once calculated, smoothing can be applied to the // CMO, if desired; // - The scale is bounded between +100 and -100, thereby allowing you to clearly see // changes in net momentum using the 0 level. The bounded scale also allows you to // conveniently compare values across different securities. // // 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 fFilter(xSeriesSum, xSeriesV, Filter) => iff(xSeriesV > Filter, xSeriesSum, 0) CMOfilt(Length,Filter, TopBand, LowBand) => pos = 0 xMom = close - close[1] xMomAbs = abs(close - close[1]) xMomFilter = fFilter(xMom, xMomAbs, Filter) xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter) nSum = sum(xMomFilter, Length) nAbsSum = sum(xMomAbsFilter, Length) nRes = 100 * nSum / nAbsSum pos := iff(nRes > TopBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & CMOfilt", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthCMO = input(9, minval=1) Filter = input(3, minval=1) TopBand = input(70, minval=1) LowBand = input(-70, maxval=-1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMOfilt = CMOfilt(LengthCMO,Filter, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMOfilt == 1 , 1, iff(posReversal123 == -1 and posCMOfilt == -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 )