Trend nach der Momentum-Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-05 13:38:18
Tags:

img

Übersicht

Die Strategie trägt den Namen Trend Following Momentum Breakout Strategy. Sie verwendet den Super Trend Indikator, um die aktuelle Trendrichtung zu bestimmen und kombiniert ihn mit der Richtung von Kerzenkörpern für den Trend nach dem Handel, um Momentum-Breakouts zu erzielen.

Strategie Logik

Der Kern dieser Strategie beruht auf dem Super Trend-Indikator, um die aktuelle Trendrichtung zu beurteilen. Der Super Trend-Indikator berechnet die oberen und unteren Bands auf der Grundlage des Durchschnittlichen Wahren Bereichs (ATR). Wenn die Preise durch das obere Band durchbrechen, ist es ein bullisches Signal, und wenn die Preise durch das untere Band durchbrechen, ist es ein bärisches Signal.

Wenn der Super Trend-Indikator einen Aufwärtstrend bestimmt, gehen Sie lang, wenn die Kerze ein roter Körper ist (schließen Sie unterhalb der Öffnung). Wenn der Super Trend-Indikator einen Abwärtstrend bestimmt, gehen Sie kurz, wenn die Kerze ein grüner Körper ist (schließen Sie oberhalb der Öffnung). Dies erreicht den Trend nach dem Momentum-Breakout-Handel.

Analyse der Vorteile

Diese Strategie kombiniert Trendbeurteilung und Dynamikmerkmale, um falsche Ausbrüche effektiv auszufiltern und die Gültigkeit von Handelssignalen zu verbessern.

Die wichtigsten Vorteile sind wie folgt zusammengefaßt:

  1. Filtern Sie falsche Ausbrüche durch Kombination von Trendbeurteilung und Dynamikmerkmalen
  2. Folgen Sie der Richtung der Kerzenkörper, um gegen den Trend zu handeln
  3. Höhere Rentabilität

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Die Frage, wie die Parameter des Super Trend-Indikators eingestellt werden.
  2. Nur die Richtung des Leuchterkörpers zu befolgen, kann die Stärke des Körpers nicht bestimmen, und es kann Verlustrisiken geben.
  3. Die feste Risiko-Rendite-Ratio kann nicht dynamisch angepasst und einmalige Verluste nicht kontrolliert werden.

Die Gegenmaßnahmen sind:

  1. Optimieren Sie die Parameter des Super Trend-Indikators, um das Urteil genauer zu machen.
  2. Beurteilen Sie die Stärke des Leuchterkörpers, indem Sie Indikatoren wie Handelsvolumen und Geldfluss kombinieren.
  3. Hinzufügen von dynamischem Stop-Loss zur Kontrolle von Einzelverlusten.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Kombination mehrer technischer Indikatoren zur Signalfilterung, wie Bollinger-Bänder und KDJ, um die Strategieleistung zu verbessern.
  2. Hinzufügen von Algorithmen für maschinelles Lernen, um die Parameter dynamisch zu optimieren und den Super Trend-Indikator stabiler zu machen.
  3. Hinzufügen von Stop-Loss-Mechanismen, um den Verlust zu stoppen, bevor sich der Verlust ausweitet.
  4. Verwenden Sie Produkte mit bidirektionalem Handel, wie Futures, um sowohl lange als auch kurze Chancen voll auszunutzen.

Zusammenfassung

Im Allgemeinen eignet sich diese Strategie sehr gut für mittelfristige und kurzfristige Positionen. Durch die Kombination von Trendbeurteilung und Ausbruchmomentum kann sie effektiv Rauschen filtern und die Gewinnrate verbessern. Gleichzeitig besteht noch Raum für die Optimierung von Parametern, um eine bessere Strategieleistung zu erzielen.


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

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v1.0", shorttitle = "ST str 1.0", 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 = Trend == 1 and close < open //and low < cline 
dn = Trend == -1 and close > open //and high > cline

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0)

if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0)


Mehr