
La stratégie de trading de la fourchette de la moyenne mobile génère des signaux d’achat et de vente en calculant le croisement des lignes rapides EMA ((fastLength) et des lignes lentes EMA ((slowLength)). Elle génère des signaux d’achat lorsque la ligne rapide traverse la ligne lente; elle génère des signaux de vente lorsque la ligne rapide traverse la ligne lente.
La stratégie utilise deux moyennes mobiles, les lignes rapides et les lignes lentes. Le paramètre de la ligne rapide EMAfastLength prend la ligne de 9 jours par défaut, et le paramètre de la ligne lente EMAAslowLength prend la ligne de 26 jours par défaut. Le croisement des deux lignes EMA est calculé pour déterminer les signaux de vente et d’achat du marché:
Les signaux de trading et les règles de stratégie sont les suivantes:
La stratégie consiste donc à effectuer des opérations de négociation lorsque les deux moyennes mobiles se forgent et se déforment.
Les paramètres qui peuvent être optimisés en fonction du risque, tels que la période des moyennes mobiles, le type de transaction, le taux de stop-loss, etc., nécessitent un grand nombre de tests pour réduire le risque.
L’idée de la croisée des moyennes mobiles de cette stratégie est simple et pratique et peut être optimisée de la manière suivante:
Ces tests d’optimisation permettent d’améliorer considérablement l’efficacité et la stabilité de la stratégie.
L’idée de la stratégie de croisement des moyennes mobiles est simple, mais l’application réelle nécessite une optimisation continue. Cette stratégie donne la logique de génération de signaux de négociation et les règles de base de la négociation, sur la base desquelles elle peut être optimisée de manière intensive, ce qui en fait une stratégie quantitative viable. L’application des moyennes mobiles nous fournit également une idée de stratégie sur laquelle 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)