
La stratégie de rupture de la double moyenne mobile est une stratégie de négociation quantitative basée sur les moyennes mobiles rapides et les moyennes mobiles lentes. Elle utilise deux moyennes mobiles indicielles de différentes périodes (EMA) comme signal de négociation. Un signal d’achat est généré lorsque la moyenne mobile rapide traverse la moyenne mobile lente; un signal de vente est généré lorsque la moyenne mobile rapide traverse la moyenne mobile lente.
La logique de base de la stratégie est d’utiliser les courbes de mouvements rapides et les courbes de mouvements lents pour former un signal de transaction. La stratégie définit une période de 12 jours pour les courbes rapides et de 26 jours pour les courbes lentes.
Une stratégie typique de double moyenne mobile consiste à déterminer les tendances du marché et à générer des signaux de transaction en croisant une moyenne mobile rapide et une moyenne mobile lente.
Les avantages de la stratégie de percée de la moyenne mobile sont les suivants:
La stratégie de rupture de la moyenne mobile double comporte aussi des risques:
La solution est simple:
Les stratégies de percée de la moyenne mobile double peuvent être optimisées dans les domaines suivants:
La stratégie de rupture de la double courbe mobile est une stratégie de trading quantitatif simple et pratique. Elle présente des avantages tels que la logique de la stratégie est simple et facile à mettre en œuvre, mais il existe également un certain problème d’adaptation au marché. Nous pouvons en faire un système de trading stable et rentable grâce à l’optimisation des paramètres, au filtrage du signal et à la gestion des risques.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("CDC Action Zone V.2", overlay=true)
// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)
Bullish = Fast>Slow
Bearish = Fast<Slow
Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast
Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]
alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")
//Plot
l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if LSB == "Long only" and Buy and window()
strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
strategy.entry("L",true)
if LSB == "Both" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
strategy.close("S",qty_percent=100,comment="TP Short")