A 123 Reversal Moving Average Envelope Strategy é uma estratégia quantitativa de negociação que combina 123 técnicas de negociação de reversão e indicadores de envelope de média móvel.
A estratégia consiste em duas partes:
A primeira parte é a estratégia de reversão 123. Seus sinais de negociação vêm do oscilador KDJ. Especificamente, se o preço de fechamento for menor que o fechamento anterior por dois dias consecutivos de negociação, e a linha lenta K de 9 dias estiver abaixo de 50, um sinal de compra é gerado; se o preço de fechamento for maior que o fechamento anterior por dois dias consecutivos de negociação, e a linha rápida K de 9 dias estiver acima de 50, um sinal de venda é gerado.
A segunda parte é a estratégia do envelope da média móvel. Ele usa médias móveis e linhas de envelope acima e abaixo das médias móveis para determinar tendências. Especificamente, se o preço de fechamento for maior que a faixa superior, um sinal de compra é gerado; se o preço de fechamento for menor que a faixa inferior, um sinal de venda é gerado.
A estratégia combina os dois tipos de sinais de negociação acima. Ela só abrirá posições longas quando as conversões 123 e os envelopes de média móvel derem sinais de compra; ela só abrirá posições curtas quando ambos derem sinais de venda. Isso filtra alguns sinais inválidos e reduz a frequência de negociação, melhorando a lucratividade.
Combina inversão e tendência para melhorar a rentabilidade
A estratégia de reversão 123 se destaca em capturar oportunidades de reversão perto dos principais níveis de suporte e resistência.
Filtro duplo reduz a frequência de negociação
As transacções só são realizadas quando ambos os indicadores emitem sinais, evitando assim a interferência de sinais inválidos excessivos de um único indicador, reduzindo assim a frequência e os custos das transacções.
Parâmetros personalizáveis proporcionam flexibilidade
Os parâmetros ajustáveis permitem aos utilizadores adaptar a estratégia às condições do mercado e às preferências pessoais para uma melhor adaptabilidade.
O comércio unilateral simplifica as operações
A estratégia só é longa ou curta, sem posições inversas.
As reversões lutam em tendências persistentes
A estratégia baseia-se principalmente em reversões de lucros, podendo produzir perdas contínuas durante longos períodos de tendência.
Optimização de parâmetros é difícil
Os múltiplos parâmetros ajustáveis representam desafios de otimização.
Um elevado volume de negócios aumenta os riscos comerciais
As mudanças frequentes de posição permitem obter pequenos lucros, mas também aumentam os custos e os riscos decorrentes da troca excessiva.
Nenhum limite de retirada
A ausência de um stop loss significa que não há limite para a retirada máxima, eventos de cisne negro podem causar perdas graves.
Adicionar stop loss
Implementar um stop loss em movimento ou de trailering para limitar os drawdowns.
Otimizar parâmetros
Teste de retorno e teste de retorno para encontrar parâmetros ideais para maior estabilidade.
Adicionar filtros de sinal
A adição de filtros como o MACD e as Bandas de Bollinger pode validar os sinais e melhorar ainda mais a qualidade, reduzindo as negociações indesejadas.
Reduzir a frequência das trocas
A modesta flexibilização das condições de reversão e o ajustamento das definições das médias móveis para um menor volume de negócios podem reduzir custos e riscos.
A 123 Reversal Moving Average Envelope Strategy combina os pontos fortes da negociação de reversão e da tendência para um desempenho superior ajustado ao risco constante.
/*backtest start: 2023-09-19 00:00:00 end: 2023-10-19 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 22/03/2021 // 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 // Moving Average Envelopes are percentage-based envelopes set above and // below a moving average. The moving average, which forms the base for // this indicator, can be a simple or exponential moving average. Each // envelope is then set the same percentage above or below the moving average. // This creates parallel bands that follow price action. With a moving average // as the base, Moving Average Envelopes can be used as a trend following indicator. // However, this indicator is not limited to just trend following. The envelopes // can also be used to identify overbought and oversold levels when the trend is // relatively flat. // // 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 MAE(Length,PercentShift) => pos = 0.0 xSMA = sma(close, Length) xHighBand = xSMA + (xSMA * PercentShift / 100) xLowBand = xSMA - (xSMA * PercentShift / 100) pos := iff(close > xHighBand, 1, iff(close <xLowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- MA Envelope ----") LengthMA = input(18, minval=1) PercentShift = input(0.2, minval = 0.01, step = 0.01) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMAE = MAE(LengthMA,PercentShift) pos = iff(posReversal123 == 1 and posMAE == 1 , 1, iff(posReversal123 == -1 and posMAE == -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 )