Esta estratégia é projetada com base na cruz de ouro e cruz de morte de médias móveis duplas. Ela vai longo quando o curto período média móvel cruza acima da média móvel de longo período, e fecha a posição quando o curto período média móvel cruza abaixo da média móvel de longo período. A estratégia é simples e fácil de entender, adequado para iniciantes a aprender.
A estratégia baseia-se principalmente nos indicadores sma (close, 14) e sma (close, 28).
Primeiro, defina as médias móveis curtas e longas:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Então determine a entrada e saída com base na cruz de ouro e cruz da morte:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
O valor da posição em risco é o valor da posição em risco.
strategy.entry("Buy", strategy.long, when = longCondition)
Posição de fechamento quando o MA curto cruza abaixo do MA longo:
strategy.close_all(when = shortCondition)
A lógica é simples e clara, utilizando os cruzamentos de MAs duplas para determinar entradas e saídas.
A estratégia pode ser otimizada nos seguintes aspectos:
Testar diferentes períodos de MA curtos e longos, tais como (5, 10), (10, 20), (20, 60) etc., para encontrar a combinação ideal.
Adicionar filtros como o volume de negociação, a diferença de preços, etc. perto de cruzamento de MA para evitar negociações excessivas em mercados variados.
Defina o preço de stop loss ou use MA como linha de stop loss para controlar a perda de uma única transação.
Adicionar indicadores auxiliares como MACD, KDJ etc. para melhorar o desempenho da estratégia.
Encontrar pontos de entrada melhores perto de MA em vez de entrar diretamente no cruzamento.
A estratégia de MA dupla é simples de usar para iniciantes. Mas é sensível às flutuações do mercado e tem riscos de perdas. Podemos melhorá-la otimizando parâmetros, adicionando filtros, incorporando stop loss, combinando outros indicadores, etc. Ela pode funcionar bem em tendências fortes, mas deve ser usada com cautela ou stop loss adequado em mercados variados.
[/trans]
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25) minGainPercent = input(0.6) gainMultiplier = minGainPercent * 0.01 + 1 longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) avg_protection = input(1) gain_protection = input(1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))