Estratégia de cruzamento da média móvel

Autora:ChaoZhang, Data: 2023-10-17 16:46:57
Tags:

img

Resumo

Esta estratégia é uma estratégia de seguimento de tendências baseada em médias móveis.

Estratégia lógica

A estratégia emprega uma média móvel rápida do período 9 e uma média móvel lenta do período 21. Quando o MA rápido cruza acima do MA lento, ele sinaliza uma tendência de alta no mercado e uma posição longa é tomada. Quando o MA rápido cruza abaixo do MA lento, ele sinaliza uma tendência de queda e qualquer posição longa é fechada.

Especificamente, a estratégia calcula os valores dos MA rápidos e lentos e compara sua relação para determinar a direção da tendência. Em uma tendência de alta, se o MA rápido cruza acima do MA lento, um sinal de entrada longo é acionado. Em uma tendência de baixa, se o MA rápido cruza abaixo do MA lento, um sinal de saída é acionado para fechar a posição longa existente.

Desta forma, o cruzamento e o cruzamento dos MAs rápidos e lentos captam as transições de tendência para a tendência de baixo risco após a negociação.

Vantagens

  • Usando médias móveis para determinar a tendência filtra o ruído do mercado e identifica a direção da tendência
  • O MA rápido capta as mudanças de tendência mais rapidamente, enquanto o MA lento filtra sinais falsos
  • Usando crossover para comprar e crossunder para vender evita perseguir os tops e vender os fundos
  • Lógica de negociação simples e clara, fácil de compreender e implementar

Riscos

  • As médias móveis apresentam um atraso e podem perder os melhores pontos de entrada/saída para transições de tendência
  • Os comprimentos fixos de MA não podem adaptar-se aos diferentes ciclos de mercado
  • As estratégias de dupla MA tendem a gerar sinais comerciais excessivos e a produzir um excesso de ajustamento
  • Usar apenas MAs para determinar as transacções é propenso a eventos e perdas repentinos

Os riscos podem ser gerenciados ajustando parâmetros, adicionando filtros, stop loss/take profit.

Orientações para melhorias

  • Ensaiar diferentes parâmetros, como comprimentos MA, limiares de cruzamento/cruzamento, etc.
  • Adicionar indicadores de impulso como filtros para evitar falhas
  • Adicionar indicadores de tendência para distinguir mercados de tendência e de variação
  • Incorporar métricas de volatilidade para otimizar paradas e obter lucros
  • Empregar machine learning para otimizar dinamicamente parâmetros

Resumo

Como uma estratégia simples de seguir tendências, a ideia central é usar MA rápidos e lentos para determinar a direção da tendência. Os prós são simplicidade, regras claras e rastreamento de tendências efetivo. Os contras são atraso, falsos sinais e negociações excessivas. Podemos otimizá-lo ajustando parâmetros e adicionando outros indicadores para melhor se adaptar às condições do mercado.


/*backtest
start: 2023-09-01 00:00:00
end: 2023-09-20 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profitable Crypto Strategy", shorttitle="Profit Strategy", overlay=true)

// Define strategy parameters
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
stopLossPercent = input.float(1.0, title="Stop Loss %", step=0.1)
takeProfitPercent = input.float(1.0, title="Take Profit %", step=0.1)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Entry condition: Buy when fast MA crosses above slow MA
longCondition = ta.crossover(fastMA, slowMA)
// Exit condition: Sell when fast MA crosses below slow MA
shortCondition = ta.crossunder(fastMA, slowMA)

// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.orange, title="Slow MA")

// Strategy entry and exit logic
var stopLossPrice = 0.0
var takeProfitPrice = 0.0

if (longCondition)
    stopLossPrice := close * (1.0 - stopLossPercent / 100)
    takeProfitPrice := close * (1.0 + takeProfitPercent / 100)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.close("Long")

// Set stop loss and take profit for open positions
strategy.exit("Stop Loss/Profit", stop=stopLossPrice, limit=takeProfitPrice)


Mais.