Stratégie de rupture de la moyenne mobile double

Auteur:ChaoZhang est là., Date: 2023-09-11 12h31 et 51 min
Les étiquettes:

Cette stratégie utilise à la fois les moyennes mobiles SMA et EMA pour déterminer la direction longue et courte en fonction des écarts de prix. Elle va longue lorsque la fermeture est au-dessus de la SMA et de la EMA, va courte lorsque la fermeture est en dessous de la SMA et de la EMA, et s'aplatit lorsque la fermeture se situe entre la SMA et la EMA. Les périodes SMA et EMA peuvent être personnalisées par l'utilisateur.

L'avantage de cette stratégie de rupture de moyenne mobile double est que la combinaison de deux systèmes de moyenne mobile peut améliorer la précision. Cependant, des problèmes tels que de faux signaux pendant les marchés à plage et des signaux de retard existent.

En résumé, cette stratégie fonctionne mieux lorsque des tendances fortes sont présentes, mais elle doit être négociée avec prudence.

Dans l'ensemble, la stratégie de rupture de la moyenne mobile double a une logique de négociation simple, mais nécessite un contrôle du risque et un réglage des paramètres appropriés pour être appliquée avec succès dans le trading en direct.


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Multima v1.0", shorttitle = "Multima 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")

usema1 = input(true, "Use MA1 (SMA, blue)")
usema2 = input(true, "Use MA2 (EMA, red)")
lenma1 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA1 length")
lenma2 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA2 length")
//anti = input(true, defval = true, title = "Antipila")
usecf = input(true, defval = true, title = "Use color-filter")

//Strategy
ma1 = sma(close, lenma1)
ma2 = ema(close, lenma2)
signal1 = usema1 == false ? 0 : close > ma1 ? 1 : -1
signal2 = usema2 == false ? 0 : close > ma2 ? 1 : -1
lots = signal1 + signal2

//Lines
plot(ma1, color = blue, linewidth = 3, transp = 0)
plot(ma2, color = red, linewidth = 3, transp = 0)

//Trading
if lots > 0 and (close < open or usecf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if lots < 0 and (close > open or usecf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if lots == 0
    strategy.close_all()
    
    
    

Plus de