Esta estratégia gera sinais de negociação baseados na cruz de ouro e cruz morta de médias móveis com diferentes ciclos.
A estratégia primeiro calcula as médias móveis de médio e curto prazo, ma1 e ma2, do preço, onde ma1 tem um ciclo mais curto e ma2 tem um ciclo mais longo. Em seguida, calcula a diferença entre ma1 e ma2 como ma3, e ainda calcula a média móvel suavizada ma4 de ma3. Quando ma3 cruza ma4 para cima, um sinal de compra é gerado. Quando cruza para baixo, um sinal de venda é gerado.
Assim, o ma3 reflete a tendência de médio prazo do preço, e o ma4 filtra algum ruído do ma3 para formar um sinal de negociação mais confiável.
As vantagens desta estratégia incluem:
Há também alguns riscos para esta estratégia:
A estratégia pode ser otimizada a partir dos seguintes aspectos:
A estratégia gera sinais de negociação com base na cruz de ouro e cruz morta das médias móveis. Usando o ALMA e a média de preços de vários ciclos, os sinais se tornam mais precisos e confiáveis. Os parâmetros ajustáveis tornam-no amplamente aplicável. Além disso, a lógica é simples e clara e funciona bem em mercados de tendência. Portanto, tem alto valor prático.
/*backtest start: 2024-01-08 00:00:00 end: 2024-01-15 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Oracle Move Strategy", overlay=true) maLen = input(30, "ma period") mode = input(defval="wma", options=["alma", "ema", "wma"]) price = close ma(src, len) => mode=="alma" ? alma(src, len, 0.85, 6) : mode=="ema"? ema(src, len) : wma(src, len) ma1 = ma(price, floor(maLen / 2)) ma2 = ma(price, maLen) ma3 = 2.0 * ma1 - ma2 ma4 = ma(ma3, floor(sqrt(maLen))) //plot(ma1, color = red) //plot(ma2, color = green) plot(ma3, color = blue) plot(ma4, color = orange) mafast = ma3 maslow = ma4 if (crossover(mafast, maslow)) strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE") if (crossunder(mafast, maslow)) strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)