
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.
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.
Lösung:
Erhöhte Filterbedingungen, um falsche kurzfristige Durchbrüche zu vermeiden
Anpassung der Zyklusparameter an die Marktschwankungen mit Hilfe der Adaptive-Zyklus-Einstellung
Setzen Sie den mobilen Stopp, um den Verlust rechtzeitig zu beenden und zu vermeiden, dass Sie nach oben oder unten suchen.
Optimierung der Parameter der Mittellinien-Periode, um die optimale Balance zu finden
Mehr Kennzeichen für strategische Stabilität
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Die Einführung anderer Indikatoren in Kombination mit MACD, Bollinger Bands und anderen Signalen kann die Signalqualität verbessern.
Hinzufügen von Trendfiltern, z. B. die Einführung von SMA-Gehaltslinien und Trendbeurteilungen von Indikatoren wie dem ADX, um Gegenwärtiges zu vermeiden
Anpassung der Zyklusparameter an die Marktschwankungen mit Hilfe der Adaptive-Zyklus-Einstellung
Hinzufügen einer mobilen Stop-Loss-Strategie, Einstellung des Stop-Loss-Punktes gemäß der Strategie-Parameter, zeitnahe Stop-Loss
Optimierung der parallelen Periodenparameter für schnelle und langsame Linien, um die optimale Kombination zu finden
Hinzufügen von Lageröffnungs-Filterbedingungen, um falsche Signale durch kurzfristigen Lärm zu vermeiden
Versuchen Sie eine Breakout-Eintrittsstrategie, um nach dem Durchbruch der Durchschnittslinie zu handeln.
Verschiedene Ausstiegsstrategien, wie z. B. Chandelier Exit, zu testen und Stop Loss zu optimieren
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.
/*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)