Cette stratégie combine plusieurs EMA avec des paramètres différents et l'indicateur de volume EOM pour déterminer les tendances sur plusieurs délais et construire une stratégie de trading avec des jugements à long terme et à court terme.
La stratégie utilise 4 groupes de EMA avec des paramètres de période différents - 13, 21, 50 et 180. Ces 4 EMA établissent plusieurs dimensions temporelles pour déterminer les tendances des prix et découvrir des tendances à plus long terme.
La stratégie utilise l'indicateur de volume EOM pour confirmer les tendances. L'EOM combine le volume des transactions et la fourchette de volatilité des prix pour mesurer efficacement la pression d'achat et de vente.
La stratégie comporte deux options. L'option 1 va long lorsque l'EMA plus courte traverse au-dessus de l'EMA plus longue et ferme longue lorsque l'EMA plus courte traverse au-dessous de l'EMA plus longue. L'option 2 va long lorsque l'EMA plus courte traverse au-dessus de l'EMA intermédiaire et ferme longue lorsque l'EMA plus courte traverse au-dessous de l'EMA intermédiaire. Les deux options permettent une confirmation de tendance plus complète.
Cette stratégie intègre la détermination de la tendance EMA sur plusieurs délais et le filtrage des indicateurs de volume pour atteindre le suivi de la tendance et l'élimination du bruit. Il y a encore beaucoup de place pour l'optimisation en testant différentes combinaisons de paramètres et en ajoutant plus d'indicateurs pour améliorer encore la robustesse.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 ) //ema x 4 ema1l=input(13) ema2l=input(21) ema3l=input(50) ema4l=input(180) ema1=ema(close,ema1l) ema2=ema(close,ema2l) ema3=ema(close,ema3l) ema4=ema(close,ema4l) long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4 long2 = crossover(ema1,ema2) and crossover(ema1,ema3) short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4 short2= crossunder(ema1,ema2) and crossunder(ema1,ema3) //eom length = input(14, minval=1) div = input(10000, title="Divisor", minval=1) eom = sma(div * change(hl2) * (high - low) / volume, length) option1=input(true) option2=input(false) if(option1) strategy.entry("long",1,when=long1 and eom>0) strategy.close("long",when=short1 and eom<0) if(option2) strategy.entry("long",1,when=long2 and eom>0) strategy.close("long",when=short2 and eom<0)