Diese Strategie verwendet einen bidirektionalen Tracking-Mechanismus, kombiniert mit Preisumkehrsignalen und Volumenindikatoren, um automatisierten quantitativen Handel zu realisieren. Sein größter Vorteil liegt in der zuverlässigen Risikokontrolle durch das Verfolgen von Stop-Loss, um Gewinne zu erzielen und Verluste zu vermeiden. In der Zwischenzeit verbessern die Umkehrhandelssignale die Gewinnrate der Strategie. Dieser Artikel wird die Prinzipien, Stärken, Risiken und Optimierungsrichtungen dieser Strategie detailliert analysieren.
Diese Strategie besteht aus zwei Teilstrategien. Die erste Teilstrategie verwendet stochastische Indikatoren, um Preisumkehrsignale zu bestimmen.
Wenn der Schlusskurs zwei aufeinanderfolgende Tage steigt und die 9-tägige Slow K-Linie unter 50 liegt, gehen Sie lang; Wenn der Schlusskurs zwei aufeinanderfolgende Tage sinkt und die 9-tägige Fast K-Linie über 50 liegt, gehen Sie kurz.
Die zweite Unterstrategie kombiniert Handelsvolumenindikatoren, um die Stärke der Dynamik zu beurteilen. Insbesondere wird das aktuelle Handelsvolumen mit dem durchschnittlichen 40-Tage-Handelsvolumen verglichen. Wenn das aktuelle Handelsvolumen größer als der Durchschnitt ist, wird es als aggressives Handelsvolumen betrachtet, das zum Umkehrsignal für das Shorten gehört. Wenn das aktuelle Handelsvolumen kleiner als der Durchschnitt ist, wird es als Volumen nach unten betrachtet, das zum Umkehrsignal für das Longen gehört.
Das endgültige Handelssignal ist die Schnittstelle der Signale der beiden Unterstrategien. Das heißt, eine Position wird nur geöffnet, wenn beide Unterstrategien gleichzeitig Signale geben.
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Zusammenfassend basiert diese Strategie hauptsächlich auf bidirektionalem Tracking und Preisumkehrung sowie auf der Volumenmomentum-Analyse, um die Signalqualität durch doppelte Bestätigung zu verbessern. In der tatsächlichen Anwendung sind noch weitere Tests und Optimierungen erforderlich, insbesondere um vor den Risiken von Stop Loss und Kapitalmanagement zu schützen, um übermäßige Drawdowns zu verhindern, die zu Auslöschungen führen.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/11/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Volume and SMA // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos VSAVol(Length) => pos = 0.0 xSMA_vol = sma(volume, Length) pos := iff(volume > xSMA_vol, -1, iff(volume < xSMA_vol, 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Length_MAVol = input(40, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posVSAVol = VSAVol(Length_MAVol) pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1, iff(posReversal123 == -1 and posVSAVol == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )