Cet article explique en détail une stratégie de suivi de tendance utilisant le croisement EMA pour générer des signaux de trading.
I. Logique stratégique
Les règles de base sont les suivantes:
Mettre en place une EMA rapide et une EMA lente, avec une EMA rapide pour la sensibilité aux variations de prix et une EMA lente pour la tendance.
Pour les échanges de titres, le prix de l'échange doit être le même que pour les échanges de titres.
Le rapport EMA est réglé lorsque la période lente est ≥ 3 fois la période rapide, afin de réduire les faux signaux.
Option pour le mode long uniquement afin d'éviter les transactions contre-tendance.
Période de rétroessai personnalisable pour l'optimisation des paramètres.
En ajustant les paramètres de l'EMA, la sensibilité et la stabilité peuvent être équilibrées pour tirer parti des tendances.
II. Avantages de la stratégie
Le plus grand avantage est la simplicité pour la facilité d'utilisation, adaptée aux commerçants à court de temps.
Un autre avantage est la possibilité de réduire les fouets par l'optimisation des paramètres.
Enfin, le mode long-only évite les transactions contraires à la tendance et s'adapte à certains marchés comme les actions.
III. Les faiblesses potentielles
Cependant, il existe quelques problèmes:
Premièrement, les EMA ont par nature des émissions en retard, ce qui entraîne des entrées optimales manquées.
Deuxièmement, les paramètres incorrects peuvent surfiltrer causant des transactions manquées.
Enfin, les mécanismes de stop-loss et de prise de profit doivent être améliorés.
IV. Résumé
En résumé, cet article a expliqué une stratégie de suivi de tendance basée sur les croisements EMA. Elle vise à améliorer la robustesse en ajustant les paramètres EMA. Avec des règles simples et claires, elle est facile à mettre en œuvre, mais des risques tels que le décalage EMA doivent être prévenus.
/*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())