Candlestick-Crossover-Strategie mit Standardabweichung für mehrere Zeiträume


Erstellungsdatum: 2023-10-24 14:44:00 zuletzt geändert: 2023-10-24 14:44:00
Kopie: 0 Klicks: 658
1
konzentrieren Sie sich auf
1617
Anhänger

Candlestick-Crossover-Strategie mit Standardabweichung für mehrere Zeiträume

Überblick

Die Strategie nutzt die Vorhersagefähigkeit der unterschiedlichen periodischen Standarddeviation und kann durch die Kombination von mehreren Perioden des Standarddeviation-Durchschnitts effektiv den Marktrauschen filtern und die wichtigsten Trends im Markt festlegen.

Strategieprinzip

Die Kernlogik der Strategie besteht darin, die Standarddeviation für mehrere Zeiträume zu berechnen, um dann ein Handelssignal zu erstellen.

Zunächst wird die Strategiestoch()Die Funktion berechnet die Standardabweichung K-Werte unter verschiedenen Parametern. Hier werden insgesamt 5 Gruppen von K-Werten berechnet, die den Zeiträumen der Sonnen-, Kreis- und Mondlinie 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 berechnen wir die D-Linien mit verschiedenen Parametern:

smoothD = input(34)
d = sma(k, smoothD)

...

smoothD4 = input(233)  
d4 = sma(k4, smoothD4)

Die Mittelwerte der K- und D-Linien werden dann berechnet, um die Schnelllinie Kavg und die Schnelllinie Davg zu erstellen:

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4) 

Und schließlich, wenn man auf der schnellen Linie mehr macht, wenn man auf der langsamen Linie mehr macht, und wenn man auf der unteren Linie weniger macht:

long = crossover(Kavg, Davg)
short = crossunder(Kavg, Davg)

Durch die Kombination von mehreren Zeitperioden kann die Standarddeviation-Durchschnittslinie den Marktrauschen in den größeren Zeitperioden ausblenden und die Haupttrendrichtung festlegen.

Strategische Vorteile

  • Mit der Fähigkeit zur Vorhersage von Standarddeviationen über mehrere Zeiträume kann Geräusch effektiv gefiltert und Trends verriegelt werden.
  • Durch die Anpassung der Periodenparameter ist die Haltedauer der Strategie frei zu ändern
  • Die Standarddeviation selbst hat eine starke Trendspeicherfähigkeit.
  • Durch die Verwendung einer linearen Kreuzung kann vermieden werden, dass man von einem einzigen Fake-Breakout irregeführt wird.
  • Optimierung des Gleichlaufzyklus der schnellen und langen Linie zur Steigerung der Stabilität

Strategische Risiken und Lösungen

  • Durchschnittliche Kreuzungen mit mehreren Zeitperioden erzeugen leicht mehr Falschsignale, die durchschnittlich optimiert werden können, wenn sie entsprechend angepasst werden.
  • Standarddeviation ist anfällig für extreme Ereignisse, die falsche Signale erzeugen, und es können zusätzliche Filterbedingungen in Betracht gezogen werden.
  • Die Parameter des festen Zyklus können nicht an Marktveränderungen angepasst werden. Eine Anpassungs-Zyklus-Einstellung ist möglich.
  • Langfristige Positionen sind leicht zu verfolgen und können mit einem beweglichen Stop-Loss eingestellt werden, um Gewinne zu sichern.
  • Die KDJ-Kennzahlen allein sind anfällig für Einschränkungen, andere Kennzahlen können zur Kombinationsoptimierung eingeführt werden

Lösung:

  1. Erhöhte Filterbedingungen, um falsche kurzfristige Durchbrüche zu vermeiden

  2. Anpassung der Zyklusparameter an die Marktschwankungen mit Hilfe der Adaptive-Zyklus-Einstellung

  3. Setzen Sie den mobilen Stopp, um den Verlust rechtzeitig zu beenden und zu vermeiden, dass Sie nach oben oder unten suchen.

  4. Optimierung der Parameter der Mittellinien-Periode, um die optimale Balance zu finden

  5. Mehr Kennzeichen für strategische Stabilität

Richtung der Strategieoptimierung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Die Einführung anderer Indikatoren in Kombination mit MACD, Bollinger Bands und anderen Signalen kann die Signalqualität verbessern.

  2. Hinzufügen von Trendfiltern, z. B. die Einführung von SMA-Gehaltslinien und Trendbeurteilungen von Indikatoren wie dem ADX, um Gegenwärtiges zu vermeiden

  3. Anpassung der Zyklusparameter an die Marktschwankungen mit Hilfe der Adaptive-Zyklus-Einstellung

  4. Hinzufügen einer mobilen Stop-Loss-Strategie, Einstellung des Stop-Loss-Punktes gemäß der Strategie-Parameter, zeitnahe Stop-Loss

  5. Optimierung der parallelen Periodenparameter für schnelle und langsame Linien, um die optimale Kombination zu finden

  6. Hinzufügen von Lageröffnungs-Filterbedingungen, um falsche Signale durch kurzfristigen Lärm zu vermeiden

  7. Versuchen Sie eine Breakout-Eintrittsstrategie, um nach dem Durchbruch der Durchschnittslinie zu handeln.

  8. Verschiedene Ausstiegsstrategien, wie z. B. Chandelier Exit, zu testen und Stop Loss zu optimieren

Zusammenfassen

Die K-Linien-Cross-Strategie für mehrzeitige Standarddeviation kombiniert die Trendverfolgungsfähigkeit der Standarddeviation mit der Stabilität der Gleichgewichtsstrategie. Durch die Berechnung der Mittelwerte der K- und D-Linien der mehrzeitigen Standarddeviation können Handelssignale erstellt werden, die die Prognosekraft der Standarddeviation auf verschiedenen Zeitskalen nutzen, Marktlärm filtern und die Richtung der wichtigsten Trends erfassen. Die Strategie verfügt über einen Raum für Parameter-Tuning und kann durch Anpassung der Periodiparameter sowie die weitere Einführung von Filterbedingungen, Stop-Loss-Strategien usw. optimiert werden.

Strategiequellcode
/*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)