Diese Strategie nutzt zunächst Preisumkehrsignale für den Handel, kombiniert dann Trendfilterindikatoren für das Screening und implementiert ein doppelt faktorgetriebenes System.
Der Preisumkehrteil verwendet das Umkehrsystem 123. Dieses System stammt aus dem Buch
Wenn die vorstehenden Bedingungen erfüllt sind, wird ein Kaufsignal erzeugt.
Es wird ein Verkaufssignal erzeugt.
Das Ziel dieses Umkehrsystems ist es, kurzfristige Umkehrungen zu erfassen, wenn sich die Preise vorübergehend umkehren.
Der Trendfilter verwendet das Extracting The Trend (ETT) System. Das ETT-System beurteilt die Trendrichtung durch eine Kombination aus Filter und gleitendem Durchschnitt. In dieser Strategie besteht seine Hauptfunktion darin, die Preisumkehrsignale zu überprüfen und eine Umkehroperation zu vermeiden, wenn kein klarer Trend vorliegt.
Diese Strategie kombiniert die Handelssignale beider Teilstrategien und führt schließlich zu einem durch zwei Faktoren gesteuerten Umkehrhandelssystem.
Die Doppelfaktor-Umkehrhandelsstrategie integriert die Vorteile jeder Teilstrategie durch Kombination:
Diese Strategie kann daher ungültige Umkehrsignale effektiv filtern. Mit einem korrekten Trendbeurteil führt sie eine Umkehroperation durch und verbessert so die Gesamtleistung des Handelssystems.
Die Doppelfaktor-Umkehrhandelsstrategie birgt folgende Hauptrisiken:
Um die oben genannten Risiken zu reduzieren, sind unter anderem die Anpassung der Compiler-Parameter, die Optimierung der Umkehr- und ETT-Strategien für ein besseres Urteilsvermögen sowie die angemessene Erweiterung des Stop-Loss-Bereichs für den Umkehrhandel zu berücksichtigen.
Diese Strategie kann in folgenden Aspekten optimiert werden:
Da die Strategielogik und die wichtigsten Handelssignale unverändert bleiben, können durch Parameter- und Kombinationsoptimierung bessere Rückprüfungsergebnisse erwartet werden.
Die Dual-Faktor-Reversal-Handelsstrategie kombiniert organisch Preisumkehrsignale und Trendfilterung für ein Multi-Faktor-Urteilssystem. Im Vergleich zu Single-Reversal-Signal-Strategien kann diese Strategie kurzfristige Preisumkehrungen besser erfassen und gleichzeitig falsche Signale vermeiden, wenn es keinen klaren Trend gibt, wodurch die Signalqualität verbessert wird. Eine bessere Leistung kann durch Parameteroptimierung und Hinzufügen anderer Faktoren erwartet werden.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/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 // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -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 )