Die Multi Timeframe Stochastic Crossover Strategy ist eine typische Trendfolgestrategie. Sie berechnet die Standardabweichungswerte in verschiedenen Zeitrahmen (z. B. täglich, wöchentlich, monatlich usw.), konstruiert mehrere K- und D-Linien, nimmt den Durchschnitt dieser Linien, um gleitende Durchschnitte zu erstellen, und geht lang, wenn die schnelle Linie über die langsame Linie überschreitet, und geht kurz, wenn die schnelle Linie unter die langsame Linie überschreitet. Durch die Kombination von Standardabweichungslinien in mehreren Zeitrahmen kann diese Strategie effektiv Marktlärm filtern und den vorherrschenden Trend erfassen.
Die Kernlogik dieser Strategie besteht darin, die Standardabweichung über mehrere Zeitrahmen zu berechnen und dann den Durchschnitt zu nehmen, um Handelssignale zu generieren.
Erstens berechnet die Strategie K-Werte der Standardabweichung unter verschiedenen Parametern in 5 Gruppen, die täglichen, wöchentlichen und monatlichen Zeitrahmen entsprechen:
smoothK = input(55)
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)
smoothK1 = input(89)
SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)
...
smoothK4 = input(377)
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)
Dann berechnet es D-Gelenke mit unterschiedlichen Parametern:
smoothD = input(34)
d = sma(k, smoothD)
...
smoothD4 = input(233)
d4 = sma(k4, smoothD4)
Als nächstes berechnet er den Durchschnitt der Linien K und D, um die schnelle Linie Kavg und die langsame Linie Davg zu erhalten:
Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4)
Schließlich geht es lang, wenn Kavg über Davg kreuzt, und kurz, wenn Kavg unter Davg kreuzt:
long = crossover(Kavg, Davg)
short = crossunder(Kavg, Davg)
Durch die Kombination von Standardabweichungslinien über mehrere Zeitrahmen hinweg kann diese Strategie Marktlärm in größeren Zeitrahmen filtern und die vorherrschende Trendrichtung erfassen.
Lösungen:
Fügen Sie Filter hinzu, um falsche Ausbruchssignale zu vermeiden
Anpassungsphasen auf der Grundlage der Marktvolatilität verwenden
Verwenden Sie Trailing-Stops zum rechtzeitigen Ausstieg aus den Trades
Optimierung der gleitenden Durchschnittsperioden für eine optimale Balance
Mehr Indikatoren zur Verbesserung der Robustheit
Diese Strategie kann in folgenden Bereichen weiter verbessert werden:
Einbeziehung anderer Indikatorsignale wie MACD, Bollinger Bands zur Verbesserung der Signalqualität
Hinzufügen von Trendfiltern wie SMA-Richtung, ADX, um Gegentrendgeschäfte zu vermeiden
Anpassungsphasen auf der Grundlage der Marktvolatilität nutzen
Einführung von Trailing-Stops auf Basis von Strategieparametern für den Ausstieg aus den Geschäften
Optimierung der schnellen und langsamen gleitenden Durchschnittszeiten für die besten Parameter
Hinzufügen von Eintrittsfiltern, um falsche Signale von Kurzzeitlärm zu vermeiden
Testdurchbruchseingang nach Kreuzung gleitender Durchschnitte
Beurteilen Sie verschiedene Ausstiegsstrategien wie Chandelier Exit, um Ausgänge zu optimieren
Die Multi-Timeframe Stochastic Crossover Strategy kombiniert die Trendfolgekapazität des Stochastic-Indikators und die Stabilität der gleitenden Durchschnittsstrategien. Indem sie den Durchschnitt der mehrjährigen Standardabweichungslinien K und D zur Erzeugung von Signalen annimmt, nutzt sie effektiv die Vorhersagekraft der Standardabweichung über verschiedene Zeitrahmen hinweg, filtert Marktlärm aus und erfasst den vorherrschenden Trend. Diese Strategie bietet Raum für Parameter-Tuning und weitere Verbesserungen wie Filter, Stops usw. Insgesamt integriert sie die Stärken mehrerer technischer Analysewerkzeuge und ist ein effizientes Trendfolgestrategie, das es wert ist, erforscht und optimiert zu werden.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100) price = input(close) /////////////////////////////// smoothK = input(55) SMAsmoothK = input(13) k = sma(stoch(price, high, low, smoothK), SMAsmoothK) smoothD = input(34) d = sma(k, smoothD) /////////////////////////// smoothK1 = input(89) SMAsmoothK1 = input(8) k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1) smoothD1 = input(55) d1 = sma(k1, smoothD1) ////////////////////////////////////// smoothK2 = input(144) SMAsmoothK2 = input(5) k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2) smoothD2 = input(89) d2 = sma(k2, smoothD2) ///////////////////////////////////// smoothK3 = input(233) SMAsmoothK3 = input(3) k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3) smoothD3 = input(144) d3 = sma(k3, smoothD3) //////////////////////////////////////////////// smoothK4 = input(377) SMAsmoothK4 = input(2) k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4) smoothD4 = input(233) d4 = sma(k4, smoothD4) ///////////////////////////////////////////////// Kavg = avg(k,k1,k2,k3,k4, k4) plot(Kavg, color=green) Davg = avg(d,d1,d2,d3,d4, d4) plot(Davg, color=red) /////////////////////////////////////// hline(50, color=gray) long = crossover(Kavg, Davg)// and d < 50 short = crossunder(Kavg, Davg)// and d > 50 last_long = long ? time : nz(last_long[1]) last_short = short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) strategy.entry("Long", strategy.long, when=long_signal) strategy.entry("Short", strategy.short, when=short_signal) //len1 = input(3) //closelong = d[1] < k[len1] //closeshort = d[1] > k[len1] //strategy.close("Long", when=closelong) //strategy.close("Short", when=closeshort)