Stratégie d'arrêt des pertes de suivi des moyennes mobiles doubles

Auteur:ChaoZhang est là., Date: 2024-02-05 13:45:51 Je vous en prie.
Les étiquettes:

img

Résumé

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.

Principaux

  1. Moyenne mobile rapide (EMA): Moyenne mobile exponentielle de 12 jours qui réagit rapidement aux variations de prix.
  2. Les signaux d'achat sont générés lorsque le MA rapide traverse le MA lent.
  3. L'intervalle moyen réel de 15 jours (ATR) est calculé comme référence pour le stop loss.
  4. La valeur de l'opération est calculée sur la base de la valeur de l'opération.
  5. Les signaux de vente sont générés lorsque le prix tombe en dessous du prix de stop loss.

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.

Analyse des avantages

  1. Les combinaisons MA permettent d'identifier efficacement les tendances et d'accroître la fiabilité du signal.
  2. L'épargne-perte dynamique à la suite d'un arrêt de perte permet d'éviter les dommages causés aux fonds.
  3. Le prix d'arrêt basé sur l'ATR rend le prix d'arrêt raisonnable et empêche une sursensibilité.
  4. La logique de la stratégie est simple et les paramètres sont flexibles.

Analyse des risques

  1. Les MA ont des retards qui peuvent manquer des opportunités à court terme.
  2. Un stop loss trop faible nuit à la rentabilité.
  3. Un stop-loss trop serré augmente la fréquence des transactions et les frais de commission.
  4. La volatilité changeante peut avoir une incidence sur la stabilité des paramètres ATR.

Les paramètres peuvent être optimisés pour équilibrer l'amplitude de la perte d'arrêt.

Directions d'optimisation

  1. Testez plus de combinaisons de paramètres pour trouver les MAs optimales.
  2. Ajustez le multiplicateur ATR en fonction des caractéristiques spécifiques des stocks.
  3. Ajoutez des conditions de filtrage telles que des indicateurs de volume pour éviter les transactions inutiles.
  4. Accumuler plus de données historiques pour tester la stabilité des paramètres.

Conclusion

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)


Plus de