Die Strategie trägt den Namen
Die Strategie besteht aus zwei Teilen. Der erste Teil verwendet den 9-Tage-Stock, um kurzfristige Umkehrsignale zu generieren. Insbesondere geht es lang, wenn der Schluss höher ist als der vorherige Schluss und die 9-Tage-Stock-Schnelllinie unter 50 liegt, während die langsame Linie über 50 liegt; es geht kurz, wenn der Schluss niedriger ist als der vorherige Schluss und die 9-Tage-Stock-Schnelllinie über 50 liegt, während die langsame Linie unter 50 liegt. Auf diese Weise bilden das goldene Kreuz und das Todeskreuz des Stochs kurzfristige Umkehrsignale.
Der zweite Teil verwendet den Negativen Volumenindex (NVI), um langfristige Trendsignale zu bilden. Die NVI-Berechnungsformel lautet, dass, wenn das Volumen des Tages kleiner ist als der vorherige Tag, die Veränderungsrate des Schlusskurses des Tages angesammelt wird; wenn das Volumen des Tages größer oder gleich dem vorherigen Tag ist, bleibt der Wert des vorherigen Tages unverändert.
Schließlich kombiniert die Strategie die beiden Arten von Signalen. Nur wenn das kurzfristige Umkehrsignal und das langfristige Trendsignal in die gleiche Richtung sind, wird ein Einstiegssignal gebildet. Dies hilft, falsche Signale auszufiltern und die Stabilität zu verbessern.
Der größte Vorteil dieser Strategie ist die Stabilität der Signale. Das kurzfristige Umkehrsignal erfasst kurzfristige Marktanpassungen, während das langfristige Trendsignal sicherstellt, dass der große Trend unverändert bleibt. Die Kombination der beiden verbessert die Stabilität der Signale erheblich und kann falsche Signale, die eine höhere Rate von den kurzfristigen haben, effektiv filtern.
Außerdem hat die Strategie nur wenige Parameter und ist leicht zu optimieren.
Das größte Risiko dieser Strategie besteht darin, dass zwischen den beiden Arten von Signalen eine Zeitverschiebung auftreten kann. Es kann eine gewisse Verzögerung zwischen dem kurzfristigen Umkehrsignal und dem langfristigen Trendsignal geben, was zu inkonsistenten Signalen für eine gewisse Zeit führen wird, die nicht in der Lage sind, ein stabiles Eingangssignal zu bilden.
Darüber hinaus ist der NVI-Indikator auch empfindlich gegenüber abnormalen Anstiegen des Handelsvolumens, was zu falschen Beurteilungen langfristiger Trends führen kann.
Um diese Risiken abzuschwächen, können die Parameter des NVI-Indikators entsprechend angepasst oder Stop-Loss hinzugefügt werden, um den Verlust pro Handel zu kontrollieren.
Zu den wichtigsten Aspekten für die Optimierung dieser Strategie gehören:
Optimierung der Parameter des Stoch-Indikators zur Verbesserung der Fähigkeit zur Erfassung von Umkehrungen.
Optimierung der Zykluslänge des NVI-Indikators zur Verbesserung der Fähigkeit zur langfristigen Trendeidentifizierung.
Hinzufügen von Handelsvolumenfiltern, um falsche Signale aus abnormalen Handelsvolumina zu eliminieren.
Hinzufügen von Stop-Loss-Strategien zur Steuerung von Handelsverlusten.
Die Strategie ist mit einem stabilen Eintrittsmechanismus konzipiert, der auf der Idee einer kurzfristigen Umkehrung und eines langfristigen Trends basiert, um die falsche positive Rate effektiv zu kontrollieren und die Signalstabilität zu verbessern.
/*backtest start: 2023-12-18 00:00:00 end: 2023-12-21 05:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 29/03/2021 // 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 // The theory behind the indexes is as follows: On days of increasing // volume, you can expect prices to increase, and on days of decreasing // volume, you can expect prices to decrease. This goes with the idea of // the market being in-gear and out-of-gear. Both PVI and NVI work in similar // fashions: Both are a running cumulative of values, which means you either // keep adding or subtracting price rate of change each day to the previous day`s // sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add // anything; if today`s volume is greater, then add today`s price rate of change. // For NVI, add today`s price rate of change only if today`s volume is less than // yesterday`s. // // 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 NVI(EMA_Len) => pos = 0.0 nRes = 0.0 xROC = roc(close, EMA_Len) nRes := iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0)) nResEMA = ema(nRes, EMA_Len) pos := iff(nRes > nResEMA, 1, iff(nRes < nResEMA, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Negative Volume Index", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Negative Volume Index ----") EMA_Len = input(50, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posNVI = NVI(EMA_Len) pos = iff(posReversal123 == 1 and posNVI == 1 , 1, iff(posReversal123 == -1 and posNVI == -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 )