Diese Strategie berechnet den Momentum-Indikator des Preises, um festzustellen, ob sich der Preistrend umgekehrt hat, um Preisumkehrmöglichkeiten zu erfassen. Wenn der Aufwärtstrend oder Abwärtstrend des Preises verlangsamt, zeigt sie an, dass sich der Preismomentum umgekehrt hat. Zu diesem Zeitpunkt wird die Strategie Long- oder Short-Positionen eröffnen.
Die Strategie basiert hauptsächlich auf der Berechnung von Dynamikindikatoren. Der Dynamikindikator spiegelt die Geschwindigkeit und Stärke der Preisänderungen wider. Zwei Dynamikindikatoren MOM und MOM1 werden in der Strategie berechnet.
Berechnungsformel für die MOM:
MOM = heutiger Schlusskurs - Schlusskurs vor N Tagen
Berechnungsformel für MOM1:
MOM1 = MOM heute - MOM gestern
Beurteilen Sie, ob sich die Preise nach den Werten von MOM und MOM1 umgekehrt haben. Wenn MOM > 0 und MOM1 < 0, bedeutet dies, dass sich der Aufwärtstrend des Preises verlangsamt hat und ein Umkehrsignal lang zu gehen scheint. Wenn MOM < 0 und MOM1 > 0, bedeutet dies, dass sich der Abwärtstrend des Preises verlangsamt hat und ein Umkehrsignal kurz zu gehen scheint.
Hauptmethoden zur Risikominderung:
Diese Strategie berechnet den Preismomentum-Indikator, um festzustellen, ob sich der Preistrend umgekehrt hat, automatisch lang oder kurz geht. Backtests zeigen, dass diese Strategie insgesamt reibungslos funktioniert und Preisumkehrpunkte effektiv erfasst. Durch die Optimierung der Parameter-Einstellungen, das Hinzufügen von Signalfiltern usw. können die Stabilität und Rentabilität der Strategie weiter verbessert werden.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Momentum - Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.2 ) 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(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 if (mom0 > 0 and momX > 0) strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE") else strategy.cancel("MomLE") if (mom0 < 0 and momX < 0) strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE") else strategy.cancel("MomSE") plot(mom0, color = #0000FF, title = "MOM") plot(mom1, color = #00FF00, title = "MOM1", display = display.none) plot(mom2, color = #00FF00, title = "MOM2")