Die Strategie kombiniert die Dynamik-Indikator Random-Indikator K-Werte und die Volatilität-Indikator ATR, die Stop-Line und die Einstiegslinie der K-Werte dynamisch an die Werte der ATR angepasst werden, um die Idee zu verwirklichen, die Stop-Line und die Einstiegslinie automatisch an die Marktfluktuation anzupassen.
K-Werte mit der Länge len (sma ((stoch ((close, high, low, len), smoothK) berechneten), repräsentieren die K-Werte des Zufallsindikators.
Der ATR-Wert für die Berechnung der Länge von len istatr ((len) ⋅
Auf der Grundlage der ATR-Werte werden die Stop-Line-Plot ((rsi ((atr, len) +lowLine, …, title = “low line”) und die Start-Line-Plot ((rsi ((atr, len) gezeichnet)*-1+100-lowLine, …, title = “up line”)。
Beurteilen Sie, wann die K-Werte die Einstiegslinie (crossover) und die Stop-Line (crossunder) durchbrechen, um ein Kauf- und Verkaufssignal zu erzeugen.
Hintergrundfarbe für Kauf und Verkauf.
Wenn das oben genannte Signal erfüllt ist, wird ein Kauf- und Verkaufsaktion durchgeführt und ein Stop-Loss gesetzt.
Die Strategie passt die Stop-Line und die Einstiegslinie dynamisch an die ATR anhand der Marktfluktuation an und kann automatisch an das Stop-Loss-Risiko an die Marktfluktuation angepasst werden.
Wenn die Marktschwankungen groß sind, kann die Abweichung zwischen der Stop- und der Entry-Linie erweitert werden, um zu verhindern, dass die Stop-Lines erschüttert werden.
Wenn die Marktschwankungen ruhig sind, kann der Abstand zwischen der Stop- und der Einstiegslinie verkleinert werden, um den Verlust rechtzeitig zu stoppen.
Der K-Wert des Dynamikindikators wird verwendet, um Ein- und Ausgänge zu bestimmen. Der K-Wert reagiert auf die Geschwindigkeit der Preisänderung und kann die Wendepunkte erfassen.
Die Kombination von Dynamik- und Schwankungsraten-Indikatoren ermöglicht es, Trends zu erfassen und das Risiko automatisch an Schwankungen anzupassen.
K-Werte sind anfällig für falsche Durchbrüche, die unnötige Handelssignale auslösen können. Der K-Wert-Parameter smoothK kann entsprechend angepasst werden, um die K-Linie zu glätten.
Die ATR-Parameter len sind zu groß eingestellt, die Abstände zwischen der Stop- und der Startlinie sind zu groß und das Risiko kann zu hoch sein. Die Stabilität verschiedener Len-Parameter kann getestet werden.
Die bloße Verfolgung von Stop-Loss kann nicht feststellen, ob die Stop-Loss-Position angemessen ist, und das Risiko eines einzelnen Stopps kann nicht kontrolliert werden. Es kann in Kombination mit einem Algorithmus des erwarteten Stopps in Betracht gezogen werden, das Risiko eines einzelnen Stopps zu kontrollieren.
Strategie-Signale sind häufig und die Transaktionskosten sind hoch. Der Einstiegslinie-Parameter lowLine kann entsprechend angepasst werden, um die Transaktionsfrequenz zu kontrollieren.
Testen der Anpassung der K-Wert-Parameter zum SmoothK, um die optimale Kombination von Parametern für einen SmoothK zu finden.
Testen Sie die unterschiedlichen Werte der ATR-Parameter len, um die geeigneten ATR-Parameter zu ermitteln.
Optimierung der Eintrittslinie-Parameter lowLine, um die optimale Parameter zu finden, um die Handelsfrequenz zu kontrollieren.
Berücksichtigen Sie die Möglichkeit, Eintrittssignale in Kombination mit anderen Indikatoren zu filtern, um falsche Durchbrüche zu vermeiden, z. B. in Kombination mit dem Handelsvolumenindikator, dem KDJ-Indikator usw.
Erwägen Sie die Optimierung von Stop-Loss-Methoden und verbessern Sie die Erwartung von Stop-Loss, um das Stop-Loss-Risiko aktiv zu kontrollieren.
Die Strategie basiert auf der Dynamik-K-Wert und die Volatilität-Indikator ATR realisiert die Idee der dynamischen Anpassung der Stop-Line und Einstiegslinie, sowohl die Trends zu erfassen, sondern auch nach der Schwankung automatisch das Risiko anpassen kann, ist eine sehr innovative und praktische Strategie Idee. Durch Parameter-Optimierung, Verbesserung der Stop-Methode und weitere Optimierung, kann die Strategie zu einem stabileren zuverlässig, mit sehr guten Entwicklungsperspektiven.
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Stoch + ATR", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input(34, minval=1, title="Length for Main Stochastic & ATR")
smoothK = input(2, minval=1, title="SmoothK for Main Stochastic")
lowLine = input(10, minval=-50, maxval=50, title="Multiplier for up/low lines")
//Stoch formula
k = sma(stoch(close, high, low, len), smoothK)
plot(k, color=aqua, title = "Stoch")
//len=input
atr=atr(len)
plot(rsi(atr, len)+lowLine , color=red,linewidth=2, title = "low line")
plot(rsi(atr, len)*-1+100-lowLine, color=lime,linewidth=2, title = "up line")
aboveLine = crossunder(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine = crossover(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0
aboveLine2 = crossover(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine2 = crossunder(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0
skip=(aboveLine2==1 or belowLine2==1) and (aboveLine==1 or belowLine==1)? 1 : 0
//BackGroound Color Plots
plotchar(belowLine==1 and skip==0, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine==1 and skip==0, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)
plotchar(belowLine2==1 and skip==0, title="Close Signal", char='C', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine2==1 and skip==0, title="Close Signal", char='C', location=location.top, color=white, transp=0, offset=0)
bgcolor(aboveLine==1 ? red : na, transp=30, title = "sell signal")
bgcolor(belowLine==1 ? lime : na, transp=30, title = "buy signal")
bgcolor(aboveLine2==1 ? lime : na, transp=80, title = "close short")
bgcolor(belowLine2==1 ? red : na, transp=80, title = "close long")
bgcolor(skip==1 ? black : na, transp=0, title = "skip signal")
//strategy
longCondition = belowLine==1
shortCondition = aboveLine==1
strategy.entry("BUY", strategy.long, when = longCondition)
strategy.entry("SELL", strategy.short, when = shortCondition)
strategy.cancel_all(when = skip==1)