
Diese Strategie berechnet die Dynamik der Preise, um zu beurteilen, ob ein Preisbewegungs-Trend umgekehrt ist, um die Chance auf eine Preisumkehr zu erfassen. Wenn sich ein Preisanstieg verlangsamt oder ein Abwärtstrend verlangsamt, was darauf hindeutet, dass eine Preisbewegung umgekehrt ist, wird die Strategie zu einem Über- oder Einbruch positioniert.
Die Strategie basiert hauptsächlich auf der Berechnung von Dynamikindikatoren. Die Dynamikindikatoren spiegeln die Geschwindigkeit und Intensität der Preisänderungen wider. In der Strategie werden die beiden Dynamikindikatoren MOM und MOM1 berechnet.
MOM-Rechnung:
MOM = Schlusskurs am Tag - Schlusskurs vor N Tagen
MOM1 berechnet sich aus:
MOM1 = MOM heute - MOM gestern
Wenn MOM > 0 und MOM1 < 0 ist, bedeutet dies eine Verlangsamung des Aufwärtstrends und ein Umkehrsignal. Wenn MOM < 0 und MOM1 > 0 ist, bedeutet dies eine Verlangsamung des Abwärtstrends und ein Umkehrsignal.
Die wichtigsten Risikominderungsmaßnahmen:
Diese Strategie berechnet die Preisbewegungsindikatoren, um zu beurteilen, ob die Preisbewegung sich umkehrt. Die Rückmeldung zeigt, dass die Strategie insgesamt reibungslos funktioniert und die Preisumkehrpunkte effektiv erfasst werden. Durch die Optimierung der Parameter-Einstellungen und die Erhöhung der Signalfilterung können die Strategie-Stabilität und die Ertragsrate 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")