
Diese Strategie ist eine Doppel-Dynamik-Durchbruchstrategie. Sie verwendet zwei Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik-Dynamik.
Der Code setzt zunächst die Strategie-Eigenschaften ein, wie z. B. die Auftragsmethode, die Provisionen-Methode usw.; dann berechnet er zwei dynamische Indikatoren:
// Momentum settings
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
// Momentum code
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
mom0 ist der Grunddynamik-Indikator, die Länge ist i_len, die Datenquelle ist i_src, ob der Prozentsatz berechnet wird, wird von i_percent bestimmt.
mom1 ist ein dynamischer Indikator mit einer Länge von 1 und einer Datenquelle von mom0.
mom2 ist ein dynamischer Indikator mit einer Länge von 1 und basiert auf der ursprünglichen Datenquelle i_src.
Der EndwertmomX ist die Defaultmom1 und kann auch als Mom2 gewählt werden.
Wenn mom0 und momX gleichzeitig über der 0er-Achse liegen, macht man Plus; wenn mom0 und momX gleichzeitig unter der 0er-Achse liegen, macht man Null.
Die Verwendung von Doppel-Dynamik-Indikatoren in Kombination mit verschiedenen Parameter-Einstellungen kann die Zuverlässigkeit von Handelssignalen verbessern, und die Doppel-Bestätigung reduziert die Falschsignale.
Nur mehrfache Einträge, die lediglich für die Platzierung verwendet werden, reduzieren die Handelsfrequenz und reduzieren die Handelskosten.
Die Parameter des Dynamikindikators können an unterschiedliche Marktbedingungen angepasst werden.
Der Code ist klar strukturiert, leicht zu verstehen und zu ändern.
Die Einrichtung von Handelsnachrichten wurde hinzugefügt, die in Verbindung mit dem automatischen Handelssystem verwendet werden können.
Der Doppel-Dynamik-Indikator reduziert zwar Falschsignale, kann aber auch schwache Trendsignale übersehen.
Wenn Sie nur mehrere Geschäfte tätigen, können Sie die Gelegenheit zum leeren Handel verpassen.
Die falsche Einstellung der Parameter des Dynamometer kann zu zu häufigen oder zu langsamen Transaktionen führen.
Unzureichende Rückdaten können zu einer Überangleichung der Parameter führen.
Doppelte Bestätigung reduziert zwar Falschmeldungen, kann aber nicht vollständig vermieden werden.
Die optimale Parameter kann aus einer Kombination von Parametern verschiedener Längen und der Berechnung von Prozentsätzen ermittelt werden.
Es kann in Erwägung gezogen werden, nach der Trendbestätigung ein Hohlkopf-Handelssignal hinzuzufügen, um weitere Handelsmöglichkeiten zu erfassen.
Verschiedene Methoden zur Berechnung von Dynamikindikatoren wie ROC, RSI usw. können getestet werden, um bessere Ergebnisse zu erzielen.
Es ist möglich, Trends zu filtern, um zu verhindern, dass man in unsicheren Zeiten handelt.
Es ist möglich, die Stop-Loss-Strategie zu optimieren und das Risiko zu kontrollieren, während die Gewinne maximiert werden.
Diese Strategie ist eine typische Doppeldynamik-Durchbruchstrategie. Sie verwendet Doppelbestätigung, um Falschsignale zu reduzieren und nur mehrere Eintritte zu machen, um die Handelsfrequenz zu reduzieren. Die Strategie ist einfach, leicht umzusetzen und bietet viel Raum für Verbesserungen bei der Optimierung der Parameter und der Risikokontrolle.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum Long Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true)
// There will be no short entries, only exits from long.
strategy.risk.allow_entry_in(strategy.direction.long)
// Calculate start/end date and time condition
startDate = input(timestamp("2021-01-02T00:00:00"), title = "Start Date", type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), title = "End Date",type = input.time)
time_cond =true
// Momentum settings
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
// Messages for buy and sell
message_buy = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")
// Momentum code
momentum(seria, length, percent) =>
_mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
_mom
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
// Strategy Alerts
if (mom0 > 0 and momX > 0 and time_cond)
strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE", alert_message = message_buy)
else
strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
strategy.entry("MomExit", strategy.short, stop = low - syminfo.mintick, comment = "MomSE", alert_message = message_sell)
else
strategy.cancel("MomExit")
// Plotting
plot(0, color = #5d606b, title = "ZERO")
plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")