Risikokontrollstrategie basierend auf Supertrend und MACD


Erstellungsdatum: 2024-03-11 11:24:20 zuletzt geändert: 2024-03-11 11:24:20
Kopie: 0 Klicks: 699
1
konzentrieren Sie sich auf
1617
Anhänger

Risikokontrollstrategie basierend auf Supertrend und MACD

Überblick

Die Strategie kombiniert Supertrend-Indikatoren und MACD-Indikatoren, um Profite zu erzielen, indem kleine Trends erfasst werden. Die Strategie verwendet Supertrend-Indikatoren, um die aktuellen Markttrends zu beurteilen, während die MACD-Indikatoren als Hilfsbedingungen für Ein- und Ausstieg verwendet werden.

Strategieprinzip

  1. Mit der Funktion ta.supertrend wird der Supertrend-Indikator berechnet, wobei die Parameter ATR-Perioden und die Multiplikationsfaktoren sind.
  2. Der Trend wird als aufwärts betrachtet, wenn die Richtung von größer als 0 bis kleiner als 0 ist; umgekehrt wird er als abwärts betrachtet.
  3. Die MACD-Indikatorwerte werden mit der Funktion request.security für 30-Minuten-Perioden erfasst, einschließlich MACD-Linien, Signallinien und Pylonengraphen.
  4. In einem Aufwärtstrend wird eine Überposition eröffnet, wenn die MACD-Spalte größer als 0 ist, und gleichzeitig die vorherige leere Position ausgeglichen.
  5. In einem Abwärtstrend wird ein leerer Platz eröffnet, wenn die MACD-Spalte kleiner als 0 ist, und die vorherigen Mehrpositionen werden ausgeglichen.

Analyse der Stärken

  1. In Kombination mit Trend-Tracking und Dynamik-Indikatoren ist es möglich, sich besser an unterschiedliche Marktbedingungen anzupassen.
  2. Die Verwendung von MACD-Indikatoren mit längeren Perioden als Hilfsbedingungen kann dazu beitragen, einige falsche Signale effektiv zu filtern.
  3. Die Strategie ist einfach, leicht zu verstehen und zu implementieren und für Anfänger geeignet.
  4. Die Strategieparameter sind anpassbar und können für verschiedene Märkte und Sorten optimiert werden.

Risikoanalyse

  1. Strategie: In einem bewegten Markt kann es zu mehr Handelssignalen kommen, was zu häufigen Transaktionen und hohen Kursverlusten führt.
  2. Der Supertrend-Indikator ist parametersensibel und kann mit unterschiedlichen Parameter-Einstellungen unterschiedliche Ergebnisse erzielen.
  3. Die MACD-Indikatoren können von den Preisen abweichen, was zu falschen Handelssignalen führt.
  4. Die Strategie fehlt an Stop-Loss-Maßnahmen, die bei anhaltender Schwäche oder bei plötzlichen Ereignissen ein höheres Risiko darstellen können.

Optimierungsrichtung

  1. Weitere Filterbedingungen, wie z. B. ein Durchbruch von wichtigen Unterstützungs- oder Widerstandswerten oder Veränderungen des Handelsvolumens, können in Betracht gezogen werden, um die Zuverlässigkeit des Signals zu verbessern.
  2. Für einen bewegten Markt kann man erwägen, einen MACD-Indikator mit kürzeren Perioden oder andere Indikatoren zu verwenden, die für bewegte Märkte geeignet sind, um Trends zu beurteilen.
  3. Stopps wie Fixed-Point-Stopps und Moving-Stopps können hinzugefügt werden, um das maximale Risiko eines einzelnen Handels zu kontrollieren.
  4. Die Parameter können für verschiedene Märkte und Sorten optimiert werden, um die am besten geeignete Parameterkombination zu finden.

Zusammenfassen

Die Strategie ist durch die Kombination von Supertrend-Indikatoren und MACD-Indikatoren, die die Beständigkeit der Trends berücksichtigen, während sie auch kleine Trends erfassen, eine umfassendere und ausgewogene Strategie. Die Strategie hat den Vorteil, dass sie logisch klar und leicht zu verstehen und umzusetzen ist, und dass sie einige falsche Signale effektiv filtern kann, indem sie die MACD-Indikatoren mit längeren Zyklen als Hilfsbedingungen verwendet. Die Strategie birgt jedoch auch einige Risiken, wie z. B. häufige Transaktionen in einem bewegten Markt, eine höhere Sensibilität für die Parameter-Einstellung und das Fehlen von Stop-Loss-Maßnahmen.

Strategiequellcode
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Samsuga supertrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


atrPeriod = input.int(7,    "ATR Length", minval = 1)
factor =    input.float(1.0, "Factor",     minval = 0.01, step = 0.01)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

supertrend := barstate.isfirst ? na : supertrend
upTrend =    plot(direction <= 0 ? supertrend : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend =  plot(direction <= 0 ? na : supertrend, "Down Trend", color = color.red,   style = plot.style_linebr)
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
longcondition = direction[1] > direction 
shortCondition = direction[1] < direction 

macdp1 = 3
macdp2=10
macdp3=6

[macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = "30",expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on)
// plot(macdLine,   title = "MACD",   color = #2962FF)
// plot(signalLine, title = "Signal", color = #FF6D00)
// 8, 21, 5
// 8,13,9
// 12,26,9
//  1--> 3, 17, 5
// 3, 10, 16
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
//  /////////----------------METHOD 1-----------------////////////////
// if(longcondition)
//     if(strategy.opentrades>0)
//         strategy.close("Long","Prev Exit", immediately = true)
//     if( histLine[0] > 0.1)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long")

    
// else if(shortCondition and strategy.openprofit<=0.1) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 2-----------------////////////////
// if(longcondition)
//     if(histLine[0] > 0)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long" )
//         strategy.exit("Long", loss = close*0.2)


    
// else if(shortCondition ) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 3-----------------////////////////
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
if(longcondition)
    if(histLine[0] > 0)    
        strategy.close("Short",comment = "E-S", alert_message = "E-S",disable_alert = true)
        strategy.entry(id= "Long", direction=strategy.long,  comment = "L",alert_message = "L")
else if(shortCondition) 
    if(histLine[0] < 0)    
        strategy.close("Long",comment = "E-L",alert_message = "E-L",disable_alert = true)
        strategy.entry(id= "Short", direction=strategy.short,  comment = "S",alert_message = "S")