Esta estratégia combina médias móveis, padrões de preços e volume para identificar pontos de reversão de tendência em potencial no mercado. Ela fica longa quando a média móvel rápida cruza acima da média móvel lenta, um padrão de engulfamento alcista aparece, o nível de resistência quebra e o volume de negociação aumenta. Ela fica curta quando ocorrem as condições opostas.
A ideia central desta estratégia é usar uma combinação de médias móveis, padrões de ação de preços e volume como sinais para reversões futuras. Especificamente, cruzes de ouro e cruzes de morte de médias móveis podem indicar mudanças na tendência. Padrões de engulfamento de alta / baixa geralmente implicam reversões de curto prazo.
Em termos lógicos, a estratégia primeiro calcula médias móveis rápidas e lentas. Em seguida, define condições para identificar padrões de engolimento de alta/baixa. Os níveis de suporte e resistência são incorporados junto com a expansão de volume como condições adicionais. Os sinais de compra são acionados quando o MA rápido cruza acima do MA lento, um padrão de alta aparece, a resistência quebra e o volume aumenta. As condições opostas acionam sinais de venda.
A maior vantagem desta estratégia é usar uma combinação de vários sinais para confirmar reversões, o que ajuda a evitar falsos sinais. Confiar apenas em um único indicador, como médias móveis ou padrões de velas, tende a produzir negociações errôneas.
Além disso, essa estratégia utiliza conceitos de tendência e reversão. As reversões são buscadas apenas após uma tendência existente. Em outras palavras, a estratégia só procura retracements de contra-tendência dentro dos mercados de tendência. Isso ajuda a reduzir a aleatoriedade e aumenta a lucratividade.
O maior risco desta estratégia são reversões fracassadas, onde o preço continua se movendo contra a direção do comércio após os sinais de entrada.
As soluções incluem o ajuste de períodos de média móvel para definir melhores tendências, o uso de stop losses mais amplos e a incorporação de mais fatores de confirmação antes de negociação de sinais de reversão.
Os possíveis caminhos de otimização para esta estratégia incluem:
Ajuste dos períodos de média móvel para identificar as tendências ótimas a longo/curto prazo.
Testar diferentes métodos de cálculo de suporte/resistência, como Pivot Points.
Tentei outros indicadores de volume como Chaikin Fluxo de Dinheiro, oscilador de volume.
Incorporar mais fatores de confirmação de reversão como padrões de gráficos de longo prazo, enormes picos de volume, etc.
Usando futuros de índices de ações para verificar sinais entre mercados.
Através de testes rigorosos de combinações de parâmetros, podem ser alcançadas melhorias no desempenho.
Esta estratégia combina perfeitamente as médias móveis, a ação dos preços e o volume de reversões de negociação apenas em mercados de tendência.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Profit Table Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(20, title="Slow MA Length") takeProfitPercent = input(1, title="Take Profit (%)") / 100 stopLossPercent = input(1, title="Stop Loss (%)") / 100 trailingStopPercent = input(1, title="Trailing Stop (%)") / 100 // Price action conditions bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1] bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1] // Support and resistance levels supportLevel = input(100, title="Support Level") resistanceLevel = input(200, title="Resistance Level") // Volume conditions volumeCondition = volume > ta.sma(volume, 20) // Calculate moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Buy condition buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition // Sell condition sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition // Strategy logic strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) // Calculate take profit, stop loss, and trailing stop levels takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent) stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent) trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent) // Plotting levels on the chart plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level") plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level") plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level") plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level") // Plotting buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)