Zweifelhafte Umkehrhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-27 17:22:31
Tags:

img

Übersicht

Diese Strategie nutzt zunächst Preisumkehrsignale für den Handel, kombiniert dann Trendfilterindikatoren für das Screening und implementiert ein doppelt faktorgetriebenes System.

Strategie Logik

Der Preisumkehrteil verwendet das Umkehrsystem 123. Dieses System stammt aus dem Buch How I Tripped My Money In The Futures Market von Ulf Jensen, Seite 183.

  1. Vorheriger Abschluss ist niedriger als der vor 2 Tagen
  2. Der aktuelle Abschluss ist höher als der vorherige
  3. 9-Tage-Langsam-Stochastisch ist unter 50

Wenn die vorstehenden Bedingungen erfüllt sind, wird ein Kaufsignal erzeugt.

  1. Vorheriger Abschluss ist höher als der vor 2 Tagen
  2. Der aktuelle Abschluss ist niedriger als der vorherige
  3. 9-Tage-Schnellstokastik ist höher als 50

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.

Analyse der Vorteile

Die Doppelfaktor-Umkehrhandelsstrategie integriert die Vorteile jeder Teilstrategie durch Kombination:

  1. 123 Umkehrungssystem kann kurzfristige Umkehrungsmöglichkeiten erfassen
  2. Das ETT-System kann Szenarien ohne klaren Trend wirksam filtern und das Umkehrhandelsrisiko vermeiden.
  3. Dual-Faktor-getrieben verbessert die Signalqualität

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.

Risikoanalyse

Die Doppelfaktor-Umkehrhandelsstrategie birgt folgende Hauptrisiken:

  1. Das Risiko, dass der Preis nach einer Umkehr den ursprünglichen Trend fortsetzt.
  2. Das Risiko eines Beurteilungsfehlers durch das ETT-System. Das ETT-System selbst hat ebenfalls Beurteilungsfehler, was zu Verlusten beim Umkehrhandel führt.
  3. Das inhärente Risiko eines durch zwei Faktoren getriebenen Mechanismus. Obwohl weniger wahrscheinlich, besteht immer noch die Wahrscheinlichkeit, dass beide Handelssignale gleichzeitig ein falsches Urteil fällen, was die Verluste verstärkt.

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.

Optimierung

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimierung der Umkehrsystemparameter für eine bessere Parameterkombination
  2. Optimierung der ETT-Systemparameter für eine höhere Beurteilungsgenauigkeit
  3. Versuchen Sie, andere Preisumkehrstrategien mit ETT zu kombinieren
  4. Hinzufügen von Positionsgrößenregelungsmechanismus
  5. Fahren mit mehr Faktoren

Da die Strategielogik und die wichtigsten Handelssignale unverändert bleiben, können durch Parameter- und Kombinationsoptimierung bessere Rückprüfungsergebnisse erwartet werden.

Schlussfolgerung

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 )

Mehr