A Estratégia Quantitativa de Cruz Dourada de Média Móvel Dupla é uma estratégia quantitativa de negociação baseada em indicadores técnicos. Determina as tendências do mercado calculando duas médias móveis de períodos diferentes e permite negociação de baixo risco. Quando a média móvel de período curto cruza acima da média móvel de período mais longo, um sinal de cruz dourada é gerado para ir longo. Quando a média móvel mais curta cruza abaixo da mais longa, um sinal de cruz de morte é gerado para ir curto. Esta estratégia também incorpora indicadores de canal de preços para evitar falhas.
A Estratégia Quantitativa da Média Móvel Dupla baseia-se na teoria da média móvel. As médias móveis podem efetivamente filtrar o ruído do mercado e indicar direções de tendência de longo prazo. Quando a média móvel de curto período cruza acima da média móvel de longo período, ela indica uma reversão ascendente do mercado e é um sinal de compra. Quando a média móvel mais curta cruza abaixo da média móvel mais longa, ela indica uma reversão descendente e é um sinal de venda. Esta estratégia define dois grupos de médias móveis - a primeira são as médias móveis de 2 dias e 3 dias, e a segunda é a média móvel de 420 dias.
A lógica fundamental do código de estratégia é:
Os princípios específicos são:
Esta estratégia pode efetivamente capturar oportunidades de reversão de tendência após ajustes de curto prazo com um fator de lucro relativamente alto.
A estratégia quantitativa da média móvel dupla Golden Cross tem as seguintes vantagens:
A estratégia quantitativa de média móvel dupla Golden Cross também apresenta os seguintes riscos:
Os seguintes métodos podem ser utilizados para reduzir os riscos:
A Estratégia Quantitativa de Média Móvel Dupla da Cruz de Ouro pode também ser otimizada nos seguintes aspectos:
Optimização de parâmetros: Ajustar a média móvel e os parâmetros do indicador do canal para selecionar a combinação ideal de parâmetros.
Seleção de tempo: Escolher os parâmetros da média móvel mais adequados com base nas diferentes características do produto.
Optimização da estratégia de stop loss: Configurar paradas dinâmicas, paradas traseiras, etc., para evitar paradas de retração.
Optimização de negociação direcional: Incorporar indicadores de tendência e adoptar operações de tendência para evitar a negociação de contra-tendência.
Combinação de aprendizado de máquina: Utilize LSTM, RNN e outros modelos de aprendizagem profunda para ajudar a avaliar a qualidade do sinal e determinar o tempo de entrada.
A Estratégia Quantitativa de Média Móvel Dupla determina as tendências de preços de curto prazo através do princípio simples de cruzamento de médias móveis. A definição de indicadores de canal efetivamente filtra sinais falsos. A estratégia tem lógica direta e é fácil de implementar. Ajustes de parâmetros flexíveis são possíveis com um desempenho relativamente bom validado na negociação ao vivo. É uma estratégia quantitativa recomendada que pode ser atualizada por meio de otimização de parâmetros, otimização de stop loss, aprendizado de máquina e muito mais para alcançar um desempenho ainda melhor. A estratégia é adequada para negociação algorítmica em produtos como criptomoedas e ações.
/*backtest start: 2023-12-24 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Indicator420 by SeaSide420 strategy("Indicator420 strategy", overlay=true) q=input(title="HullMA",defval=420) z=input(title="HullMA cross",defval=3) a=input(title="VWMA",defval=14) rvwma=vwma(close,round(a)) rvwma2=vwma(close,round(a*2)) rvwma3=vwma(close,round(a*3)) n2ma=2*wma(close,round(z/2)) nma=wma(close,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(close[1],round(z/2)) nma1=wma(close[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(close[2],round(q/2)) nma2=wma(close[2],q) diff2=n2ma2-nma2 sqn2=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) b=n1>n2?red:lime c=n1>n2?green:red d=n3>rvwma3?red:green e=rvwma2>rvwma3?green:red f=n1>n2?red:green //plot(rvwma3, color=e, linewidth=1) plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1) plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = n1<n2 if (closelong) strategy.close("Long") closeshort = n1>n2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3 if (shortCondition) strategy.entry("Short",strategy.short)