
Cette stratégie utilise les moyennes mobiles rapides et les moyennes mobiles lentes pour construire des signaux de négociation permettant l’identification et le suivi des tendances. Elle génère un signal d’achat lorsque la ligne rapide traverse la ligne lente et un signal de vente lorsque la ligne rapide traverse la ligne lente.
La stratégie utilise deux moyennes mobiles exponentielles de différentes périodes comme base de décision de négociation. Le paramètre des moyennes mobiles rapides est défini à 30 jours pour capturer les variations de prix à court terme. Le paramètre des moyennes mobiles lentes est défini à 100 jours pour déterminer la direction de la tendance à long terme des prix.
Lorsque la ligne rapide traverse la ligne lente par le bas, le marché entre dans une tendance à la hausse, générant un signal d’achat. Lorsque la ligne rapide traverse la ligne lente par le bas, le marché entre dans une tendance à la baisse, générant un signal de vente.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie est basée sur un système de décision de négociation basé sur deux courbes, pour juger de la tendance du marché par la relation de prix entre les courbes rapides et les courbes lentes. La génération de signaux est simple et claire. La stratégie filtre une partie du bruit et est adaptée aux transactions de courbe moyenne et longue.
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// === Inputs ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 30, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = close, title = "Slow MA Source")
maSlowLength = input(defval = 100, title = "Slow MA Period", minval = 1)
// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop = input(defval = true, title = "Use Initial Stop Loss?")
slPoints = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS = input(defval = true, title = "Use Trailing Stop?")
tslPoints = input(defval = 0, title = "Trail Points", minval = 1)
useTSO = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset = input(defval = 0, title = "Trail Offset Points", minval = 1)
// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)
plot(fastMA, color=blue)
plot(slowMA, color=purple)
goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())
// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())
if (useStop)
strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)