Este artigo explica em detalhes uma estratégia de tendência que usa o crossover da EMA para gerar sinais de negociação.
I. Lógica da estratégia
As regras fundamentais são:
Configure uma EMA rápida e uma EMA lenta, com uma EMA rápida para a sensibilidade à mudança de preços e uma EMA lenta para a tendência.
Cumpre-se o seguinte critério:
Para efeitos de avaliação dos riscos, a avaliação deve ser efectuada em conformidade com o artigo 4.o, n.o 3, do Regulamento (UE) n.o 528/2012.
Opção de longo para evitar negociações contra-tendência.
Período de backtest personalizável para otimização de parâmetros.
Ao ajustar os parâmetros da EMA, a sensibilidade e a estabilidade podem ser equilibradas para capitalizar as tendências.
II. Vantagens da Estratégia
A maior vantagem é a simplicidade para facilitar o uso, adequado para comerciantes com tempo limitado.
Outra vantagem é a capacidade de reduzir os whipssaws através da otimização de parâmetros.
Por último, o modo longo apenas evita negociações contrárias à tendência e se adapta a determinados mercados, como as ações.
III. Deficiências potenciais
No entanto, existem algumas questões:
Em primeiro lugar, as EMAs têm inerentemente questões atrasadas, causando entradas ótimas perdidas.
Em segundo lugar, configurações inadequadas podem filtrar demais causando trocas perdidas.
Por último, os mecanismos de stop loss e take profit necessitam de melhorias.
IV. Resumo
Em resumo, este artigo explicou uma estratégia de tendência baseada em crossovers da EMA. O objetivo é melhorar a robustez ajustando os parâmetros da EMA. Com regras simples e claras, é fácil de implementar, mas os riscos como o lag da EMA precisam de prevenção.
/*backtest start: 2023-08-15 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // I think it's due to poor choice in choosing EMA lengths: Market Wizard Ed Seykota has a guideline for moving average crossovers: the slow line should be at least 3x the fast line. // This removes a lot of the whipsaws inherent in moving average systems, which means greater profitability. // His other piece of advice: long-only strategies are best in stock markets where there's a lot more upside potential. // // Using these simple rules, we can reduce a lot of the whipsaws and low profitability trades! This strategy was made so you can see for yourself before trading. // // === HOW TO USE THIS INDICATOR === // 1) Choose your market and timeframe. // 2) Choose the length. // 3) Choose the multiplier. // 4) Choose if the strategy is long-only or bidirectional. // // Don't overthink the above! We don't know the best answers, that's why this strategy exists! We're going to test and find out. // After you find a good combination, set up an alert system with the default Exponential Moving Average indicators provided by TradingView. // // === TIPS === // Increase the multiplier to reduce whipsaws (back and forth trades). // Increase the length to take fewer trades, decrease the length to take more trades. // Try a Long-Only strategy to see if that performs better. // strategy(title="EMA Crossover Strategy", shorttitle="EMA COS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency=currency.USD,commission_type=strategy.commission.percent,commission_value=0.1) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === length = input(type=input.integer,defval=20,minval=1,title="Length") ratio = input(type=input.integer,defval=3,title="Multiplier (3x length, 4x length, etc)",options=[3,4,5,6,7,8,9,10]) longOnly = input(type=input.bool,defval=false,title="Long Only") fast = ema(hl2,length) slow = ema(hl2,length * ratio) plot(fast,linewidth=2,color=color.orange,title="Fast") plot(slow,linewidth=2,color=color.blue,title="Slow") longEntry = crossover(fast,slow) shortEntry = crossunder(fast,slow) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => crossover(fast,slow) and time > timestamp(start_year, 1, 1, 01, 01) exitLong() => longOnly and crossunder(fast,slow) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and crossunder(fast,slow) and time > timestamp(start_year, 1, 1, 01, 01) exitShort() => false strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())