Diese Strategie verwendet den Super Trend-Indikator, um bei der Auftragsvergabe zu helfen, und filtert nach Cloud-Schichten und Kerzenfarben, um Limit-Orders zur Steigerung der Rentabilität zu platzieren.
Berechnen Sie den Durchschnitt der höchsten und niedrigsten Preise innerhalb des ATR-Zeitraums als Basiswert.
Berechnen Sie die oberen und unteren Bands anhand des Faktormultiplikators.
Wenn die Schließung oberhalb des oberen Bandes liegt, markieren Sie als 1; unterhalb des unteren Bandes markieren Sie als -1. Ansonsten erhalten Sie den vorherigen Zustand.
Dynamische Anpassung der Stop-Loss-Linie basierend auf der Position des Schlusskurses im Verhältnis zu den oberen/unteren Bands.
Berechnen Sie den Bereich der Wolkenschicht anhand eines bestimmten Prozentsatzes des oberen/unteren Bandintervalls.
Für lange, müssen schließen < offen, wenn Super Trend ist 1. Für kurz, müssen schließen > offen, wenn Super Trend ist -1.
Plazieren Sie Limitaufträge zum Kauf zum vorherigen Schlusskurs.
Filtern Sie nach Zeitrahmen, schließen Sie alle verfügbaren Positionen.
Diese Strategie kombiniert Super Trend und Cloud-Konzept, was eine schnelle Trendfassung nach Trendanfang ermöglicht. Super Trend Stop Loss reagiert schneller als normaler Moving Stop Loss. Cloud-Schichten vermeiden Verluste durch falsche Ausbrüche. Limit-Orders reduzieren Schlupf und erhöhen die Rentabilität.
Super Trend ist sensibel und verfolgt Trends sehr genau.
Der Filter mit Wolkenlagen reduziert Verluste durch falsche Ausbrüche.
Die Farbe der Kerzen hilft, Umkehrungen zu vermeiden.
Limit-Orders verringern die Ausfallwirkung und erhöhen die Gewinnrate.
Anpassungsfähiger Zeitrahmen und Positionsmanagement entsprechen unterschiedlichen Handelsanforderungen.
Es gibt auch einige Risiken zu beachten:
Unzulässige Super Trend-Parameter können zu viel Empfindlichkeit und Whipsaws verursachen.
Übermäßige Wolkenbereiche können gültige Ausbruchssignale ausfiltern und sich auf die Rentabilität auswirken.
Limitaufträge können bei hoher Volatilität, fehlenden Gelegenheiten, nicht ausgefüllt werden.
Kein Stop-Loss kann das Systemrisiko und die enormen Verluste vollständig vermeiden.
Größere Positionsgrößen verstärken auch Verluste.
Diese Strategie kann in den folgenden Bereichen verbessert werden:
Verschiedene Märkte und Instrumente für optimale Super Trend-Parameter testen.
Dynamische Anpassung des Stop-Loss-Niveaus anhand der Marktvolatilität.
Optimieren Sie die Reichweite der Wolken, um die Geräuschfilterung und Signalbindung auszugleichen.
Hinzufügen eines Positionsgrößenmoduls zu dynamischen Positionsgrößen basierend auf den Marktbedingungen.
Verwenden Sie unterschiedliche Parameter für verschiedene Handelssessions, um sich an den Marktrhythmus anzupassen.
Testeffizienz bei Kombination mit anderen Indikatoren.
Diese Strategie hat eine klare Logik und einen offensichtlichen Vorteil bei der Trendfindung. Aber keine Strategie kann systemische Risiken vollständig vermeiden. Es ist notwendig, die Positionsgröße zu kontrollieren, die Risiken im Live-Handel zu minimieren und den Vorteil zu maximieren. Diese Strategie hat ein großes Potenzial für weitere Tests und Verbesserungen, um sich an die sich entwickelnde Marktdynamik anzupassen.
/*backtest start: 2023-10-03 00:00:00 end: 2023-11-02 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's SuperTrend Strategy v2.0 Limit", shorttitle = "STL str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR") Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100) ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100) centr = input(true, defval = true, title = "need center of ATR?") border = input(false, defval = false, title = "need border?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Super Trend ATR 1 src = close Up=hl2-(Factor*atr(ATR)) Dn=hl2+(Factor*atr(ATR)) TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1) Tsl1 = Trend==1? TUp: TDown Tsl2 = Trend==1? TDown: TUp limit = (Tsl1 - Tsl2) / 100 * cloud upcloud = Tsl1 - limit dncloud = Tsl2 + limit //Cloud linecolor = Trend == 1 ? green : red centercolor = centr == true ? blue : na cloudcolor = Trend == 1 ? green : red cline = (Tsl1 + Tsl2) / 2 P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1") P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2") P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center") P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1") P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1") fill(P1, P4, color = linecolor == red ? red : lime, transp = 50) fill(P2, P5, color = linecolor == red ? red : lime, transp = 50) //Signals up = 0.0 dn = 0.0 up := Trend != 1 ? 0 : Trend == 1 and close < open ? close : up[1] dn := Trend != -1 ? close * 1000 : Trend == -1 and close > open ? close : dn[1] //Trading size = strategy.position_size lot = 0.0 lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1] if true strategy.entry("Long", strategy.long, needlong ? lot : 0, limit = up, when = (Trend == 1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("Short", strategy.short, needshort ? lot : 0, limit = dn, when = (Trend == -1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()