Dies ist eine automatische Handelsstrategie, die lang oder kurz geht, basierend auf dem Crossover von zwei exponentiellen gleitenden Durchschnitten (EMAs) mit verschiedenen Zeiträumen.
Die Strategie verwendet zwei EMAs, eine ist die EMA auf einem größeren Zeitrahmen und die andere ist die EMA auf dem aktuellen Zeitrahmen. Wenn die aktuelle EMA über die größere EMA geht, geht sie lang. Wenn die aktuelle EMA unter die größere EMA geht, geht sie kurz.
Insbesondere definiert die Strategie zunächst zwei EMA-Parameter:
Anschließend werden zwei EMA berechnet:
Abschließend geht sie auf folgende Basis in Geschäfte ein:
Durch das Beurteilen der Trendrichtung durch Crossovers zwischen zwei EMAs unterschiedlicher Perioden automatisiert es den Handel.
Die Strategie weist folgende Vorteile auf:
Die Strategie birgt auch einige Risiken:
Die Risiken können reduziert werden, indem Stop-Loss eingestellt, Parameter optimiert, andere Indikatoren hinzugefügt werden usw.
Die Strategie kann in folgenden Aspekten optimiert werden:
Die EMA-Crossover-Strategie erfasst Trends mit einfachen Indikatoren, die für Anfänger geeignet sind, sie zu erlernen und zu üben.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") tf = input("D", title = "Big Timeframe") len = input(3, minval = 1, title = "MA length") src = input(close, title = "MA Source") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MAs ma1 = request.security(syminfo.tickerid, tf, sma(src, len)) ma2 = sma(src, len) plot(ma1, linewidth = 2, color = blue, title = "Big TF MA") plot(ma2, linewidth = 2, color = red, title = "MA") //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if ma2 > ma1 strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if ma2 < ma1 strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()