
Die Doppel-Zeit-Schwingung-Rate-Preis-Differenz-Handelsstrategie berechnet die Preisunterschiede zwischen den RSI-Indikatoren für zwei verschiedene Zeiträume, um den Überkauf-Überverkauf-Zustand des Marktes zu beurteilen und einen Trendhandel mit geringem Risiko zu realisieren.
Der Kern der Strategie ist der ShortTermXtrender und der LongTermXtrender. Der ShortTermXtrender berechnet die RSI-Differenz auf der kurzfristigen und der LongTermXtrender die RSI-Differenz auf der langfristigen Zeit.
Die kurzfristige Zeitachse verwendet die 7-Tage-EMA und die 4-Tage-LMA, um den RSI zu berechnen, und die 50-Tage-LMA bildet den ShortTermXtrender. Die langfristige Zeitachse verwendet die 4-Tage-EMA, um den RSI und die 50-Tage-LMA zu berechnen, und bildet den LongTermXtrender.
Wenn der ShortTermXtrender 0 trägt, macht er mehr; wenn der LongTermXtrender 0 trägt, macht er auch mehr. Das Stop-Loss-Prinzip nach dem Plus ist, dass der ShortTermXtrender 0 trägt, und der LongTermXtrender 0 trägt, und der LongTermXtrender 0 trägt.
Auf diese Weise können wir durch eine doppelte Zeitachse weitere falsche Durchbrüche filtern.
Der größte Vorteil dieser Strategie liegt in der Präzision bei der Trendbeurteilung. Die Verwendung von zwei Zeitlinien in Kombination kann effektiv den Lärm filtern und die Richtung der Zieltrends festlegen. Dies bietet eine Garantie für risikoarme Trend-Tracking-Trades.
Außerdem bietet die Strategie die Möglichkeit, die Parameter zu optimieren. Der Benutzer kann die Effekte der Strategie nach verschiedenen Sorten und Zeiträumen optimieren, indem er die SMA-Zyklen, die RSI-Parameter usw. anpasst.
Das Hauptrisiko dieser Strategie besteht in der Fehleinschätzung von Leerpositionen. In einem bewegten Umfeld kann es zu falschen Signalen kommen. Wenn die Position offen bleibt, besteht das Risiko eines Verlusts.
Darüber hinaus kann die falsche Einstellung der Parameter zu schlechten Ergebnissen führen. Wenn die Zeitperiodeparameter zu kurz eingestellt sind, erhöht sich die Wahrscheinlichkeit von Fehleinschätzungen. Wenn die Zeitperiodeparameter zu lang eingestellt sind, werden die Trendchancen verpasst.
Die Strategie kann vor allem in folgenden Bereichen optimiert werden:
Derzeit gibt es keine Stop-Off-Strategie, die nach Erreichen des Zielgewinns zeitnah gestoppt werden kann.
Positionsmanagement erweitert. Positionen können dynamisch angepasst werden, je nach Größe des Kapitals, Volatilität usw.
Verschiedene Sorten von Parameter-Einstellungen testen. Der Benutzer kann die optimale Kombination von Parametern testen, indem er verschiedene Zeiträume wie Sonnenlicht, 60 Minuten und so weiter zurücktests.
Hinzufügen von Machine Learning-unterstützter Beurteilung. Modelle können trainiert werden, um die Art der Situation zu beurteilen, um die Strategieparameter dynamisch anzupassen und die Gewinnrate zu erhöhen.
Die Strategie bietet einen großen Optimierungsraum. Die Benutzer können die Strategie durch Parameteranpassung, Stop-Loss-Management, Positionsmanagement usw. optimieren, um bessere Strategieeffekte zu erzielen. Die Strategie ist für Benutzer geeignet, die über eine bestimmte Handelserfahrung verfügen.
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study("MavXtrender")
strategy("MavXtrender")
ShortTermSMA = input(7)
ShortTermLMA = input(4)
ShortTermRSI = input(2)
LongTermMA = input(4)
LongTermRSI = input(2)
UseFactors = input(true)
TradeShortTerm = input(true)
TradeLongTerm = input(true)
count = TradeShortTerm == true ? 1 : 0
count := TradeLongTerm == true ? count + 1 : count
// set position size
Amount = strategy.equity / (close * count)
ShortTermLMA := UseFactors == true ? round(ShortTermSMA * ShortTermLMA) : ShortTermLMA
ShortTermRSI := UseFactors == true ? round(ShortTermSMA * ShortTermRSI) : ShortTermRSI
LongTermMA := UseFactors == true ? round(ShortTermSMA * LongTermMA) : LongTermMA
LongTermRSI := UseFactors == true ? round(ShortTermSMA * LongTermRSI) : LongTermRSI
shortTermXtrender = rsi(ema(close, ShortTermSMA) - ema(close, ShortTermLMA), ShortTermRSI ) - 50
longTermXtrender = rsi( ema(close, LongTermMA), LongTermRSI ) - 50
// === INPUT BACKTEST RANGE ===
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 2020, title = "To Year", minval = 2012)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
strategy.entry("ShortTerm", strategy.long, qty = Amount, when = window() and crossover(shortTermXtrender,0) and TradeShortTerm)
strategy.entry("LongTerm", strategy.long, qty = Amount, when = window() and crossover(longTermXtrender,0) and TradeLongTerm)
strategy.close("ShortTerm", when = crossunder(shortTermXtrender,0) or time > finish)
strategy.close("LongTerm", when = crossunder(longTermXtrender,0) or time > finish)
shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000
plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50)
longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000
plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80)
plot(longTermXtrender , color=color.white, style=plot.style_line, linewidth=1, title="B-Xtrender Trend - Line", transp = 80)