Esta estratégia utiliza o cruzamento da EMA e da MA para determinar inversões de tendência, pertencentes a estratégias típicas de tendência.
Calcular a EMA e a MA com períodos especificados, respectivamente.
O cruzamento da EMA acima da MA gera sinais de compra.
O cruzamento da EMA abaixo da MA gera sinais de venda.
Pode definir a negociação apenas em períodos de meses e datas específicos.
Mantenha apenas uma direcção de cada vez, sem aberturas de retorno.
Regras simples e claras, fáceis de implementar.
Os cruzamentos entre EMA e MA podem captar oportunidades de inversão de tendência.
O filtro de datas evita trocas errôneas em torno de eventos importantes.
Manter uma direcção reduz os negócios reversos desnecessários.
Maior eficiência de utilização do capital.
Adequado para negociação de tendências de curto prazo.
Os cruzamentos podem ter sinais falsos causando perdas desnecessárias.
Não há controlo eficaz sobre o tamanho das perdas por transacção.
Riscos de perdas maiores sem um stop loss.
As definições de datas rígidas podem perder oportunidades comerciais.
Parâmetros inadequados afetam negativamente o desempenho.
Teste diferentes períodos de MA para encontrar valores ótimos.
Avalie filtros adicionais em cruzamentos.
Incorporar o stop loss para controlar a perda por transação.
Otimizar as regras do filtro de datas para manter a flexibilidade.
A pesquisa apropriada leva o posicionamento de lucro.
Considere o dimensionamento de posição dinâmica.
Esta estratégia negocia reversões cruzadas de EMA e MA de forma simples e eficiente, mas tem algum espaço para melhoria.
//@version=2 strategy(title = "MA + EMA Crossover Strategy ",shorttitle="eMA", overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=100000) emaLength =input(34) maLength = input(89) ema=ema(close,emaLength) ma=sma(close,maLength) plot(ema,linewidth=3,color=green) plot(ma,linewidth=3,color=red) longCond= crossover(ema,ma) shortCond=crossover(ma,ema) monthfrom =input(8) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG") else strategy.cancel(id="LONG") if ( shortCond and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT") else strategy.cancel(id="SHORT")