Kurzfristige Abwärtstrendstrategie auf Basis von EMA und adaptivem Fibonacci-Retracement

Schriftsteller:ChaoZhang, Datum: 21.09.2023
Tags:

Übersicht

Diese Strategie verwendet EMA zur Bestimmung der Trendrichtung und adaptive Fibonacci-Retracement, um automatisch Umkehrpunkte zu identifizieren, mit dem Ziel, hohe und niedrige zu verkaufen, indem Trends eingefangen werden.

Strategie Logik

  1. Verwenden Sie die 9-Tage-EMA und die 21-Tage-EMA, um die Trendrichtung zu bestimmen.

  2. Implementieren Sie adaptive Fibonacci-Retracement mit 100 Perioden, um automatisch die wichtigsten Retracement-Level auf der Grundlage der jüngsten Kursschwankungen zu bestimmen.

  3. Der Preisbruch von 0,236 Fibonacci-Retracement zeigt eine Umkehrung an und schließt die bestehende Position.

  4. Wenn der 9-Tage-EMA unter den 21-Tage-EMA fällt und der Preis niedriger als das adaptive Fibonacci-Hoch ist, gehen Sie kurz.

  5. Das Ziel für einen langen Gewinn ist ein Crossover über der 200-Tage-EMA.

Vorteile

  • EMA gibt klare Trendsignale, die leicht umzusetzen sind

  • Adaptive Fibonacci vermeidet die manuelle Einstellung von Parametern

  • Häufiger Handel erfasst kurzfristige Bewegungen bei Hochfrequenzstrategien

  • Schlüssel-Retracement-Niveaus für einen zeitnahen Stop-Loss

  • Konfigurierbare Parameter für die Optimierung über Zyklen hinweg

Risiken

  • EMA-Verzögerungen müssen von anderen Indikatoren bestätigt werden

  • Adaptive Fibonacci-Risiken bei übermäßiger Anpassung an instabile Werte

  • Hochfrequenzhandel erhöht die Kosten für Provisionen und Slippage

  • Eine unwirksame Filterung von Trendbereichen führt zu falschen Signalen

  • Notwendigkeit einer Verbesserung des Abzugsmanagements und der Risikovergütungskontrolle

Erweiterung

  • Hinzufügen von Volumenindikatoren zur Vermeidung falscher Signale aus der Preis-Volumen-Divergenz

  • Optimierung der EMA-Perioden, um sie besser an die aktuellen Marktbedingungen anzupassen

  • Implementieren dynamischer Stop-Loss für eine bessere Risikokontrolle

  • Einbeziehung von Trendstärkeindex, um Whipsaws zu vermeiden

  • Berücksichtigen Sie die Auswirkungen der Handelskosten und legen Sie ein Mindestgewinnziel fest

Schlussfolgerung

Diese Strategie identifiziert die Trendrichtung mit der EMA und bestimmt die Umkehrniveaus dynamisch mithilfe eines adaptiven Fibonacci-Retracements, das sich automatisch an unterschiedliche Marktbedingungen anpasst. Sie stützt sich jedoch stärker auf Indikatorsignale ohne Trendsegmentierung und Elliott Wave-Logik und lässt Raum für Optimierung. Insgesamt kann sie als hochfrequente kurzfristige Handelsstrategie schnelle Preisänderungen erfassen, beinhaltet aber Risiken von häufigen Stop-Loss und Overtrading, mit denen Händler umgehen müssen.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 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/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)

Mehr