
Die Strategie verwendet die schnellen und langsamen Moving Averages, um ein Doppelsystem zu erstellen, das in Kombination mit dem Trendindex ADX Trends beurteilt und die Richtung des Trendindex DMI beurteilt, um den Trend nach dem Auftreten eines Trends zu verfolgen und bei einer Trendumkehr rechtzeitig auszusteigen, um einen Rückschlag zu vermeiden. In Kombination mit einer Zeitspanne kann die Wirksamkeit der Strategie über verschiedene Zeiträume hinweg gemessen werden.
Ein schneller Moving Average und ein langsamer Moving Average bilden ein Doppelsystem. Wenn ein schneller Moving Average den langsamen Moving Average überschreitet, wird ein Goldfork-Signal gespielt, um mehr Einstieg zu machen. Wenn ein schneller Moving Average den langsamen Moving Average unterschreitet, wird ein Dead Fork-Signal gespielt, um die Position zu verlassen.
Der ADX wird verwendet, um die Existenz und Stärke eines Trends zu bestimmen. Wenn der ADX größer ist als der eingestellte Schlüsselwert, wird der Trend als vorhanden und stark angesehen. Nur wenn der Trend stark ist, wird ein Handelssignal erzeugt.
DI+ in DMI wird verwendet, um die Richtung des Trends zu bestimmen. Wenn DI+ positiv ist, bedeutet dies, dass der Trend steigt. Wenn DI+ negativ ist, bedeutet dies, dass der Trend abnimmt.
In Kombination mit Zeiträume-Tests kann die Wirksamkeit der Strategie in verschiedenen Zeiträumen überprüft werden, um die Strategie zu überprüfen.
Mit einem Doppelschienen-System kann der Durchbruch gefiltert werden, um zu verhindern, dass falsche Durchbrüche zu Verlusten führen.
Benutzen Sie die ADX, um die Existenz und Stärke von Trends zu beurteilen, und vermeiden Sie häufige Transaktionen in schwankenden Zeiten.
Die DMI wird verwendet, um die Richtung des Trends zu bestimmen, um sicherzustellen, dass die Trend-Operationen durchgeführt werden, und um einen Gegenhandel zu vermeiden.
Zeiträumetests können überprüfen, ob die Strategieparameter für verschiedene Situationen wirksam sind, und die Parameter-Einstellungen optimieren.
Bei einem Doppelschienen-System kann es sich um eine Hohlkopf- oder Mehrkopffalle handeln.
Der ADX hält die Verzögerung für eine verpasste Chance zu Beginn des Trends und senkt den Schwerpunkt.
Die DMI-Beschlussrichtung ist auch im Rückstand und kann die Anfangsphase des Trends verpassen, wodurch die Periodiparameter verkürzt werden können.
Die Parameter-Einstellungen für verschiedene Zeitspannen können angepasst werden und müssen entsprechend optimiert werden.
Es können Parameterkombinationen mit unterschiedlichen Längen-Perioden getestet werden, um die besten Parameter zu finden.
In Kombination mit anderen Indikatoren wie Blind-Linien kann eine Doppelfilterung durchgeführt werden, um die Signalqualität zu verbessern.
Es kann eine Stop-Loss-Strategie hinzugefügt werden, um zu verhindern, dass Verluste größer werden.
Die Parameter können automatisch optimiert werden.
Es gibt mehrere Faktoren, die die Effektivität der Strategie verbessern können, wie z. B. Stimmungsindikatoren und Nachrichtenseite.
Die Strategie integriert die Vorteile von Moving Averages, Trend Indices und Dynamic Indices, um Trends zu beurteilen und zu verfolgen. Während die Effektivität ihrer Parameter überprüft wird, müssen sie kontinuierlich optimiert werden, um mehr Marktbedingungen anzupassen. Die Parameteranpassung, die Stop-Loss-Strategie und die Multifaktor-Synthese müssen weiter vertieft werden, um die Strategie zu verbessern.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// author: codachang0726
strategy(title = "(S)MA+ADX+DI+time", shorttitle = "(S)MA+ADX+DI+time", overlay = true)
// === INPUT MA LENGTHS ===
fastMA = input(defval = 7, title = "FastMA", minval = 1, step = 1)
slowMA = input(defval = 14, title = "SlowMA", minval = 1, step = 1)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input(defval = 2022, title = "Thru Year", minval = 1970)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === MA LOGIC ===
crossOv = sma(close, fastMA) > sma(close, slowMA) // true when fastMA over slowMA
crossUn = sma(close, fastMA) < sma(close, slowMA) // true when fastMA under slowMA
// DI+ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Period")
keyLevel = input(20, title="Keylevel for ADX")
[diplus, diminus, adx] = dmi(dilen, adxlen)
di = (diplus - diminus)
buy = di > 0 and crossOv and adx > keyLevel
sell = di < 0 and crossUn and adx > keyLevel
buy_time = buy and not buy[1]
sell_time = sell and not sell[1]
// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy_time) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell_time) // exit long when "within window of time" AND crossunder
// === PLOTTING ===
bgcolor(color = showDate and window() ? color.gray : na, transp = 90) // plot "within window of time"
plot(sma(close, fastMA), title = 'FastMA', color = color.yellow, linewidth = 2, style = plot.style_line) // plot FastMA
plot(sma(close, slowMA), title = 'SlowMA', color = color.aqua, linewidth = 2, style = plot.style_line) // plot SlowMA