Cette stratégie génère des signaux d'achat lorsque la moyenne mobile rapide traverse la moyenne mobile lente. En même temps, elle calcule le prix de stop-loss suivant basé sur la plage moyenne vraie pour définir des signaux de vente. Cette stratégie peut suivre efficacement les tendances du marché et réduire les pertes en temps opportun lors de la prise de profit.
Cette stratégie combine les avantages du suivi des tendances et de la gestion des stop-loss. Elle peut suivre les tendances à moyen et long terme et contrôler la perte d'une seule transaction grâce au stop-loss.
Les paramètres peuvent être optimisés pour équilibrer l'amplitude de la perte d'arrêt.
Cette stratégie combine avec succès la capacité de suivi de la tendance de MA et l'ATR. Les paramètres peuvent être optimisés pour s'adapter à différents stocks. Elle forme des limites d'achat et de vente claires, ce qui rend la logique simple et claire. En conclusion, cette double stratégie de suivi de la stop loss de MA présente une stabilité, une simplicité et une facilité d'optimisation. Elle fonctionne bien comme une stratégie fondamentale pour le trading d'actions.
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //created by XPloRR 24-02-2018 strategy("XPloRR MA-Buy ATR-MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100) testStartYear = input(2005, "Start Year") testStartMonth = input(1, "Start Month") testStartDay = input(1, "Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2050, "Stop Year") testStopMonth = input(12, "Stop Month") testStopDay = input(31, "Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriodBackground = input(title="Background", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) emaPeriod = input(12, "Exponential MA") smaPeriod = input(45, "Simple MA") stopPeriod = input(12, "Stop EMA") delta = input(6, "Trailing Stop #ATR") testPeriod() => true emaval=ema(close,emaPeriod) smaval=sma(close,smaPeriod) stopval=ema(close,stopPeriod) atr=sma((high-low),15) plot(emaval, color=blue,linewidth=1) plot(smaval, color=orange,linewidth=1) plot(stopval, color=lime,linewidth=1) long=crossover(emaval,smaval) short=crossunder(emaval,smaval) //buy-sell signal stop=0 inlong=0 if testPeriod() if (long and (not inlong[1])) strategy.entry("buy",strategy.long) inlong:=1 stop:=emaval-delta*atr else stop:=iff((nz(emaval)>(nz(stop[1])+delta*atr))and(inlong[1]),emaval-delta*atr,nz(stop[1])) inlong:=nz(inlong[1]) if ((stopval<stop) and (inlong[1])) strategy.close("buy") inlong:=0 stop:=0 else inlong:=0 stop:=0 plot(stop,color=green,linewidth=1)