Diese Strategie erzeugt Handelssignale auf der Grundlage von drei exponentiellen gleitenden Durchschnittslinien (EMA) mit verschiedenen Perioden: kurzfristige EMA mit 5-tägiger Periode, mittelfristige EMA mit 8-tägiger Periode und langfristige EMA mit 13-tägiger Periode.
Diese Strategie beurteilt den Markttrend durch Berechnung von EMAs verschiedener Perioden. Die kurzfristige EMA spiegelt den durchschnittlichen Preis der letzten paar Tage wider, während die mittelfristigen und langfristigen EMAs den durchschnittlichen Preis über längere Zeitrahmen widerspiegeln. Die Überschneidung der kurzfristigen EMA über die mittelfristigen und langfristigen EMAs signalisiert einen Aufbruch des Preises, so dass eine lange Position eingenommen wird. Umgekehrt signalisiert die kurzfristige EMA, wenn sie unter den anderen beiden überschreitet, einen Abbruch des Preises, so dass eine kurze Position eingenommen wird.
Diese Strategie erzeugt lange Signale, wenn die 5-Tage-EMA über die 8-Tage- und 13-Tage-EMA überschreitet; sie erzeugt kurze Signale, wenn die 5-Tage-EMA unter den anderen beiden überschreitet. Nachdem sie lang gegangen ist, wird die Position geschlossen, sobald die 5-Tage-EMA wieder unter die 13-Tage-EMA überschreitet.
Verbesserungsvorschläge:
Dies ist ein typisches Breakout-System, das Trendumkehrungen beurteilt, indem es Crossovers zwischen kurz-, mittelfristigen und langfristigen EMAs vergleicht. Seine Einfachheit bei der Signalisierung erleichtert den Handel, leidet aber auch unter EMAs
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // @It is modified by ttsaadet. // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // strategy(title="EMA Crossover Strategy", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === short_period = input(type=input.integer,defval=5,minval=1,title="Length") mid_period = input(type=input.integer,defval=8,minval=1,title="Length") long_period = input(type=input.integer,defval=13,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(hl2,short_period) midEma = ema(hl2,mid_period) longEma = ema(hl2,long_period) plot(shortEma,linewidth=2,color=color.red,title="Fast") plot(midEma,linewidth=2,color=color.orange,title="Fast") plot(longEma,linewidth=2,color=color.blue,title="Slow") longEntry = ((shortEma > midEma) and crossover(shortEma,longEma)) or ((shortEma > longEma) and crossover(shortEma,midEma)) shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma)) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => longEntry exitLong() => crossunder(shortEma,longEma) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and shortEntry exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())