La stratégie de trading de croisement de moyenne mobile génère des signaux d'achat et de vente en calculant le croisement des lignes EMA rapide (fastLength) et EMA lente (slowLength). Lorsque la ligne rapide traverse au-dessus de la ligne lente, un signal d'achat est généré. Lorsque la ligne rapide traverse au-dessous de la ligne lente, un signal de vente est généré. Cette stratégie est simple et pratique, adaptée au trading à moyen et court terme.
La stratégie utilise deux lignes moyennes mobiles, une ligne rapide et une ligne lente. Le paramètre de la ligne rapide EMAfastLength est défini par défaut comme une ligne de 9 jours, et le paramètre de la ligne lente EMAslowLength est défini par défaut comme une ligne de 26 jours. Calculez le croisement des deux lignes EMA pour déterminer les signaux d'achat et de vente du marché:
Les signaux de négociation spécifiques et les règles de stratégie sont les suivants:
Cette stratégie est basée sur la croix dorée et la croix morte des deux moyennes mobiles.
Pour faire face aux risques, les paramètres qui peuvent être optimisés comprennent le cycle moyen mobile, la variété des transactions, le taux de prise de profit et de stop-loss, etc. Des tests approfondis sont nécessaires pour réduire les risques.
L'idée du croisement des moyennes mobiles de cette stratégie est simple et pratique.
Grâce à ces essais d'optimisation, l'effet pratique et la stabilité de la stratégie peuvent être considérablement améliorés.
L'idée de la stratégie de croisement de moyenne mobile est simple, mais son application pratique nécessite une optimisation continue. Cette stratégie donne la logique de génération de signaux de trading et de règles de trading de base. Sur cette base, elle peut être grandement optimisée pour devenir une stratégie quantitative utilisable. L'application de la moyenne mobile nous fournit également des idées de stratégies, sur la base desquelles nous pouvons innover et améliorer.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA Cross by MarketAlpha", overlay=true) EMAfastLength = input(defval = 9, minval = 2) EMAslowLength = input(defval = 26, minval = 2) Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05) StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05) profitpoints = close*Targetpercentage stoplosspoints = close*StopLosspercentage price = close FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) 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" emafast = ema(price, EMAfastLength) emaslow = sma(price, EMAslowLength) plot(emafast,color=green) plot(emaslow,color=red) enterLong() => crossover(emafast, emaslow) strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong()) strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints) enterShort() => crossunder(emafast, emaslow) strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort()) strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)