Diese Strategie verwendet das goldene Kreuz und das Todeskreuz von doppelten EMA-Linien, um den Ein- und Ausstiegszeitpunkt zu bestimmen. Insbesondere, wenn die schnelle EMA-Linie über die langsame EMA-Linie von unten kreuzt, wird ein goldenes Kreuzsignal für den langen Eintritt erzeugt. Wenn die schnelle EMA-Linie unter die langsame EMA-Linie von oben kreuzt, wird ein Todeskreuzsignal für den kurzen Eintritt erzeugt. Diese Strategie ist einfach und einfach zu implementieren und ist eine sehr verbreitete Handelsstrategie.
Der Kerncode dieser Strategie lautet:
fast = input(25, title="Fast")
slow = input(75, title="Slow")
matype1=ema(source, fast)
matype2=ema(source, slow)
longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Diese Strategie setzt zunächst zwei EMA-Linien, wobei die schnelle EMA-Periode 25 und die langsame EMA-Periode 75 beträgt. Sie berechnet dann die Werte der beiden EMA-Linien. Wenn die schnelle EMA über die langsame EMA überschreitet, wird die LongCondition wahr. Wenn die schnelle EMA unter die langsame EMA überschreitet, wird die ShortCondition wahr. Wenn die entsprechenden Bedingungen wahr sind, geht sie lang oder kurz.
Diese Strategie nutzt das Glättungsmerkmal der EMA, um Marktlärm zu filtern und gleichzeitig Trendänderungen schnell zu erfassen.
Zu den Vorteilen dieser Strategie gehören:
Die Logik ist einfach und intuitiv, leicht zu verstehen und umzusetzen.
Die EMA gleicht die Marktschwankungen aus und filtert falsche Signale effektiv aus.
Goldenes Kreuz und Todeskreuz sind starke Handelssignale zur Risikokontrolle.
Flexible EMA-Perioden eignen sich für verschiedene Marktbedingungen.
Einfach mit anderen technischen Indikatoren zu kombinieren.
Die EMA-Parameter können für bessere Ergebnisse optimiert werden.
Zu den Risiken dieser Strategie gehören:
Häufige unwirksame Signale auf den Märkten mit Bandbreite, da die EMA häufig kreuzt.
Eine Verzögerung der EMA kann kurzfristige Chancen verpassen.
Allein die EMA-Crossover können keine Trendumkehr erkennen, was das Gewinnpotenzial einschränkt.
Festgelegte EMA-Perioden können sich nicht an Marktveränderungen anpassen.
Erfordert erhebliches Kapital, sonst erhöht sich das Risiko.
Benötigt strengen Stop-Loss, sonst kann ein einzelner Verlust riesig sein.
Die Strategie kann in folgenden Aspekten optimiert werden:
Optimierung von EMA-Perioden für unterschiedliche Marktbedingungen.
Fügen Sie weitere Filter wie MACD, Bollinger Bands hinzu, um die Signalqualität zu verbessern.
Hinzufügen von Trendbeurteilungsindikatoren wie ATR, ADX, um ineffektive Trades zu reduzieren.
Einbeziehung einer mehrjährigen Analyse zur Bestimmung der Trendrichtung.
Maschinelles Lernen zur dynamischen Optimierung von EMA-Perioden.
Optimieren Sie die Positionsgröße, um das Risiko zu kontrollieren.
Optimieren Sie Stop-Loss-Strategien, um Einzelverluste zu begrenzen.
Diese Strategie verwendet ein doppeltes EMA-Goldkreuz und ein Todeskreuz als Handelssignale und bildet eine klassische Trendfolgestrategie. Sie ist einfach und einfach zu implementieren und kann mit anderen Indikatoren kombiniert werden und eignet sich für Anleger mit relativ niedrigen Anforderungen an das Trendurteil. Sie hat aber auch Gewinnlimits und Risiken, die eine angemessene Optimierung für verschiedene Marktumgebungen erfordern. Insgesamt bietet sie eine ausgezeichnete Grundlage für die Strategieentwicklung und tiefgreifende Forschung.
/*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"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars //@version=4 strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true) matype = input("ema") hidema = input(false) sourcetype = input(close, title="Source Type") source=close // STEP 1: // Configure backtest start date with inputs startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=231) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100) // STEP 2: // See if this bar's time happened on/after start date afterStartDate = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) fast = input(25, title="Fast") slow = input(75, title="Slow") matype1=ema(source, fast) matype2=ema(source, slow) signalcolor = source > matype2 ? color.blue : color.red signal = cross(fast, slow) hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA") yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA") //kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme") longCondition = crossover(matype1, matype2) if (afterStartDate and longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(matype1, matype2) if (afterStartDate and shortCondition) strategy.entry("Short", strategy.short) //-------------------------------------------------------- //volume based color bars length=input(21, "length", minval=1) avrg=sma(volume,length) vold1 = volume > avrg*1.5 and close<open vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open vold3 = volume < avrg *0.5 and close<open volu1 = volume > avrg*1.5 and close>open volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open volu3 = volume< avrg*0.5 and close>open cold1=#800000 cold2=#FF0000 cold3=color.orange colu1=#006400 colu2=color.lime colu3=#7FFFD4 ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na barcolor(ac)