A estratégia de rastreamento de média móvel dupla é uma estratégia quantitativa de negociação baseada em indicadores de média móvel. Esta estratégia utiliza principalmente a cruz de ouro e a cruz de morte das médias móveis para gerar sinais de compra e venda. Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo de baixo, um sinal de cruz de ouro é gerado. Quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo de cima, um sinal de cruz de morte é gerado. Esta estratégia também incorpora o indicador RSI e o indicador ADX para determinar a direção e força da tendência e entrar quando a tendência é forte.
Esta estratégia baseia-se principalmente em três indicadores técnicos:
Quando o indicador Supertrend muda de direção, ele é julgado como um ponto de inflexão na tendência de preços e um sinal de negociação é emitido.
Indicador RSI (Relative Strength Index): Um indicador oscilante usado para julgar as condições de sobrecompra e sobrevenda.
Indicador ADX (indicador direcional médio): Usado para julgar a força da tendência.
Quando o indicador de Supertrend muda de direção, significa que a tendência de preços se invertiu. Ao mesmo tempo, o indicador RSI mostra um fenômeno de sobrecompra/supervenda, indicando uma reviravolta nas relações de oferta e demanda de curto prazo, e os preços podem reverter. Além disso, o indicador ADX mostra que a força da tendência é grande. Isso fornece uma oportunidade para essa estratégia entrar. Especificamente, quando a direção da Supertrend muda, o RSI mostra sobrevenda e o ADX>20 é emitido um sinal longo.
A utilização de um sistema de média móvel dupla pode efetivamente acompanhar as mudanças nas tendências de preços e lucrar com a tendência.
Incorporar o indicador RSI para julgar as condições de sobrecompra e sobrevenda evita perseguir máximos e vender mínimos em pontos de inversão de preços.
O indicador ADX avalia a força da tendência, de modo que esta estratégia atua principalmente quando a tendência é forte, beneficiando da tendência principal.
Os parâmetros da estratégia foram otimizados e testados para demonstrar um bom desempenho.
A estratégia de média móvel dupla em si é bastante sensível às mudanças de preço, o que pode gerar mais sinais de negociação.
A solução é otimizar os parâmetros e ajustar o ciclo de cálculo do indicador.
Esta estratégia requer uma estratégia de stop loss adequada.
Tente otimizar os parâmetros do sistema de média móvel para ajustar a frequência de negociação.
Podem ser introduzidos indicadores auxiliares adicionais, por exemplo, a introdução de indicadores de volume de negociação e a entrada de grandes encomendas.
Algoritmos de aprendizado de máquina podem ser combinados para otimização de parâmetros.
Introduzir um mecanismo de stop loss.
Esta é uma estratégia de rastreamento de média móvel dupla. A ideia central é rastrear indicadores de média móvel para julgar as tendências de preços e escolher o momento de entrada combinado com indicadores RSI e ADX. Sua vantagem é que ele pode seguir as tendências, entrar agudamente em fenômenos de sobrecompra / sobrevenda e lucrar com as principais tendências. Os principais riscos desta estratégia vêm de alta sensibilidade às mudanças de preço, o que pode gerar negociação excessivamente frequente. Através da otimização de parâmetros e medidas de stop loss, esta estratégia pode ser efetivamente ajustada para um melhor desempenho na negociação ao vivo.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=120, initial_capital=1000, margin_long=0.1) atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step=0.01) [_, direction] = ta.supertrend(factor, atrPeriod) adxlen = input(7, title="ADX Smoothing") dilen = input(7, title="DI Length") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20 strategy.entry("My Long Entry Id", strategy.long) if ta.change(direction) > 0 strategy.close("My Long Entry Id") // Close long position //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)