Kurzfristige Oszillationsstrategie basierend auf CCI und EMA


Erstellungsdatum: 2024-01-31 16:01:21 zuletzt geändert: 2024-01-31 16:01:21
Kopie: 0 Klicks: 1117
1
konzentrieren Sie sich auf
1617
Anhänger

Kurzfristige Oszillationsstrategie basierend auf CCI und EMA

Überblick

Diese Strategie ist eine Short Line Shock Trading Strategie, die die EMA Mean Line Indicator und den CCI Indicator kombiniert, um Short Line Trends und Überkauf-Überverkauf-Zustände im Markt zu identifizieren, um Chancen auf kurze Kursbewegungen zu erfassen.

Strategieprinzip

Die Strategie nutzt hauptsächlich die drei mittleren Linien der 10-Tage-EMA, der 21-Tage-EMA und der 50-Tage-EMA sowie den CCI-Indikator, um die Einstiegs- und Ausstiegszeiten zu bestimmen.

Die Logik lautet: Wenn der kurzfristige Mittelwert ((10-Tage-EMA) über dem mittelfristigen Mittelwert ((21-Tage-EMA) liegt und der kurzfristige Mittelwert höher ist als der langfristige Mittelwert ((50-Tage-EMA), und der CCI-Indikator größer als 0 ist, gilt dies als ein Mehrkopfsignal. Wenn der kurzfristige Mittelwert unter dem mittelfristigen Mittelwert liegt und der kurzfristige Mittelwert unter dem langfristigen Mittelwert liegt, und der CCI-Indikator kleiner als 0 ist, gilt dies als ein Hohlkopfsignal.

Die Ausgleichslogik ist die Ausgleichslogik, wenn die kurzfristige Durchschnittslinie die mittelfristige Durchschnittslinie erneut überschreitet.

Strategische Vorteile

  1. In Kombination mit dem CCI-Indikator kann die Kurzlinie die Richtung von Trendschwankungen und Überkauf-Überverkauf-Zustände erkennen.

  2. Einfach und praktisch, entries und exists zu beurteilen, indem man die Gleichschrauben- und Diebstahlforken benutzt.

  3. Die Parameter und die Perioden des CCI-Wertes sind vernünftiger, um einige falsche Signale auszuschalten.

  4. Die Verwendung von mehreren Zeitspannen ermöglicht bessere Operationschancen in den unsicheren Märkten.

Strategisches Risiko

  1. Kurzstrecken sind sehr unbeständig, und es kann zu mehr Verlusten kommen.

  2. Die falsche Einstellung der CCI-Indikatorparameter kann zu mehr Falschsignalen führen.

  3. Die Strategie kann während der Schokkorrektur mehrere kleine Verluste verursachen.

  4. Es ist nur für Trader geeignet, die häufig Short-Line-Handel betreiben, nicht für Long-Line-Holding.

Die entsprechenden Risikomanagementmaßnahmen umfassen: Optimierung der CCI-Parameter, Anpassung der Stop-Loss-Position, Erhöhung der FILTER-Bedingungen usw.

Richtung der Strategieoptimierung

  1. EMA-Mittellinienkombinationen verschiedener Längen können getestet werden. Optimierungsparameter

  2. Andere Indikatoren oder Filterbedingungen können hinzugefügt werden, um einige falsche Signale zu filtern. Zum Beispiel MACD, KDJ usw.

  3. Einfache Verluste können durch dynamische Verlustverfolgung kontrolliert werden.

  4. Trendindikatoren mit höheren Zeiträumen können kombiniert werden, um Rückwärtsoperationen zu vermeiden.

Zusammenfassen

Diese Strategie ist insgesamt eine typische Short-Line-Schock-Strategie, die eine kurzfristige Umkehrmöglichkeit des Preises durch die Nutzung der Gold-Dot-Forsche des Gleichgewichtsindikators in Kombination mit dem Überkauf-Überverkauf-Zustand des CCI-Indikators erfasst. Die Strategie eignet sich für den häufigen Short-Line-Handel, muss jedoch unter einem gewissen Stop-Loss-Druck stehen. Durch die Optimierung der Parameter und die Erhöhung der Filterbedingungen können die Strategie-Stabilität und die Profitabilität weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="Strat CCI EMA scalping", shorttitle="EMA-CCI-strat", overlay=true)
strategy("Strat CCI EMA scalping", shorttitle="EMA-CCI-strat", overlay=true)

exponential = input(true, title="Exponential MA")

// the risk management inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 200, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 200, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

src = close

ma10 = exponential ? ema(src, 10) : sma(src, 10)
ma21 = exponential ? ema(src, 21) : sma(src, 21)
ma50 = exponential ? ema(src, 50) : sma(src, 50)

xCCI = cci(close, 200)

//buy_cond = cross(ma21, ma50) and ma10 > ma21 and (xCCI > 0)
//sell_cond = cross(ma21, ma50) and ma10 < ma21  and (xCCI < 0)

buy_cond = ma10 > ma21 and ma10 > ma50 and xCCI > 0
sell_cond = ma10 < ma21 and ma10 < ma50 and xCCI < 0



// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => buy_cond
exitLong() => ma10 < ma21
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
strategy.close(id = "Long", when = exitLong()) // ...and when to get out
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => sell_cond
exitShort() => ma10 > ma21
strategy.entry(id = "Short", long = false, when = enterShort())
strategy.close(id = "Short", when = exitShort())

// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)




//longCondition = buy_cond
//if(longCondition)
//    strategy.entry("Long", strategy.long)
//    strategy.exit("Close Long", "Long", when = exitLong())
    
//shortCondition = sell_cond
//if(shortCondition)
//    strategy.entry("Short", strategy.short)
//    strategy.exit("Close Short", "Short",  when = exitShort())

//plotshape(buy_cond, style=shape.flag, color=green, size=size.normal)
//plotshape(sell_cond, style=shape.flag, color=red, size=size.normal)

c1 = buy_cond==1 ? lime : sell_cond==1 ? red : #a3a3a3 // color

plot( ma10, color=red, style=line, title="10", linewidth=1)
plot( ma21, color=orange, style=line, title="21", linewidth=1)
plot( ma50, color=c1, style=line, title="50", linewidth=3)

//alertcondition(buy_cond, title = "Buy Condition", message = "Buy Condition Alert")
//alertcondition(sell_cond, title = "Sell Condition", message = "Sell Condition Alert")