
Diese Strategie verwendet schnelle und langsame Moving Averages, um Handelssignale zu erstellen und Trends zu erkennen und zu verfolgen. Sie erzeugt ein Kaufsignal, wenn eine schnelle Linie eine langsame Linie durchquert. Sie erzeugt ein Verkaufsignal, wenn eine schnelle Linie eine langsame Linie unterhalb durchquert.
Die Strategie verwendet zwei Exponential Moving Averages mit unterschiedlichen Perioden als Grundlage für ihre Handelsentscheidungen. Die schnelle Moving Average-Parameter sind auf 30 Tage gesetzt, um kurzfristige Preisänderungen zu erfassen. Die langsame Moving Average-Parameter sind auf 100 Tage gesetzt, um die Richtung der langen Trendlinie in den Preisen zu bestimmen.
Wenn die schnelle Linie von unten durch die langsame Linie geht, bedeutet dies, dass der Markt einen Aufwärtstrend eingeht und ein Kaufsignal erzeugt. Wenn die schnelle Linie von oben durch die langsame Linie geht, bedeutet dies, dass der Markt einen Abwärtstrend eingeht und ein Verkaufssignal erzeugt.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Die Strategie basiert auf einer binären Gleichgewichts-Strategie, um die Markttrends anhand der Preisbeziehungen zwischen schnellen und langsamen Durchschnittskurven zu beurteilen. Die Signaler werden einfach und klar erzeugt. Die Strategie filtert einen Teil des Rauschs und ist für den Handel mit mittleren und langen Trends geeignet.
/*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)