Über die Strategie der Wolken hinaus

Schriftsteller:ChaoZhang, Datum: 2023-11-03 16:10:33
Tags:

img

Übersicht

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.

Strategie Logik

  1. Berechnen Sie den Durchschnitt der höchsten und niedrigsten Preise innerhalb des ATR-Zeitraums als Basiswert.

  2. Berechnen Sie die oberen und unteren Bands anhand des Faktormultiplikators.

  3. 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.

  4. Dynamische Anpassung der Stop-Loss-Linie basierend auf der Position des Schlusskurses im Verhältnis zu den oberen/unteren Bands.

  5. Berechnen Sie den Bereich der Wolkenschicht anhand eines bestimmten Prozentsatzes des oberen/unteren Bandintervalls.

  6. 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.

  7. Plazieren Sie Limitaufträge zum Kauf zum vorherigen Schlusskurs.

  8. Filtern Sie nach Zeitrahmen, schließen Sie alle verfügbaren Positionen.

Analyse der Vorteile

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.

  1. Super Trend ist sensibel und verfolgt Trends sehr genau.

  2. Der Filter mit Wolkenlagen reduziert Verluste durch falsche Ausbrüche.

  3. Die Farbe der Kerzen hilft, Umkehrungen zu vermeiden.

  4. Limit-Orders verringern die Ausfallwirkung und erhöhen die Gewinnrate.

  5. Anpassungsfähiger Zeitrahmen und Positionsmanagement entsprechen unterschiedlichen Handelsanforderungen.

Risikoanalyse

Es gibt auch einige Risiken zu beachten:

  1. Unzulässige Super Trend-Parameter können zu viel Empfindlichkeit und Whipsaws verursachen.

  2. Übermäßige Wolkenbereiche können gültige Ausbruchssignale ausfiltern und sich auf die Rentabilität auswirken.

  3. Limitaufträge können bei hoher Volatilität, fehlenden Gelegenheiten, nicht ausgefüllt werden.

  4. Kein Stop-Loss kann das Systemrisiko und die enormen Verluste vollständig vermeiden.

  5. Größere Positionsgrößen verstärken auch Verluste.

Optimierungsrichtlinien

Diese Strategie kann in den folgenden Bereichen verbessert werden:

  1. Verschiedene Märkte und Instrumente für optimale Super Trend-Parameter testen.

  2. Dynamische Anpassung des Stop-Loss-Niveaus anhand der Marktvolatilität.

  3. Optimieren Sie die Reichweite der Wolken, um die Geräuschfilterung und Signalbindung auszugleichen.

  4. Hinzufügen eines Positionsgrößenmoduls zu dynamischen Positionsgrößen basierend auf den Marktbedingungen.

  5. Verwenden Sie unterschiedliche Parameter für verschiedene Handelssessions, um sich an den Marktrhythmus anzupassen.

  6. Testeffizienz bei Kombination mit anderen Indikatoren.

Schlussfolgerung

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()

Mehr