Strategie zur Umkehrung der Kollision mit mehreren Indikatoren

Schriftsteller:ChaoZhang, Datum: 2024-01-04
Tags:

img

Übersicht

Diese Strategie ist als effiziente Umkehrstrategie durch Kombination von Dual-Indikator-Signalen konzipiert. Sie integriert ein Umkehrsignal basierend auf stochastischen Indikatoren und ein System, das die Anzahl der aufeinander folgenden Up-Tage verfolgt. Die Strategie wird nur dann Aufträge platzieren, wenn beide Signale gleichzeitig Kauf oder Verkauf auslösen. Dieser Multi-Indikator-Kollisionsmechanismus kann einige ungültige Signale effektiv filtern und die Gewinnrate verbessern.

Grundsätze

Die Strategie besteht aus zwei Teilen. Der erste Teil ist das 123 Umkehrsystem, das die Veränderung der Schlusskurse in den letzten zwei Tagen sowie den Wert eines 3-Perioden-Slow-Stochastischen Indikators beobachtet. Insbesondere, wenn gestern's Schließen niedriger ist als die vorherigen 2 Tage und heute's Schließen höher ist als gestern's, und die 9-Perioden-Slow-Stochastische unter 50 ist, gehen Sie lang; umgekehrt, wenn heute's Schließen unter gestern's und die schnelle Stochastische über 50 ist, gehen Sie kurz.

Der zweite Indikator verfolgt die Anzahl der aufeinanderfolgenden Aufstiegstage in den letzten n Tagen. Wenn die letzten n Tage alle steigen, liefert er 1, andernfalls 0. Dieser Indikator wird zur Identifizierung der Trendbildung verwendet.

Schließlich wird die Strategie nur dann ausgeführt, wenn das Umkehrsignal und die Anzahl der aufeinander folgenden Up-Tage gleichzeitig den Kauf- oder Verkaufsstatus anzeigen.

Analyse der Vorteile

Der größte Vorteil dieser Multi-Indikator-Combo-Strategie besteht darin, dass sie die Zuverlässigkeit der Signale verbessern kann, indem sie einige ungültige ausfiltert.

  1. Die 123 Umkehrung selbst hat eine gewisse Screening-Fähigkeit, um Lärmstörungen zu vermeiden.

  2. Die stochastischen Parameter des 9-tägigen und 3-tägigen Vergleichs von schnellen und langsamen Linien können die Parameteränderungen glätten und kurzfristige Schwankungen vermeiden und die Stabilität verbessern.

  3. Anpassungsfähige Parameter einschließlich Aktien, Anzahl der steigenden Tage Parameter ermöglichen die Anpassung an verschiedene Märkte.

  4. Handelbar in beide Richtungen und bietet mehr Shortingmöglichkeiten.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Die Kombination aus mehreren Indikatoren verbessert zwar die Signalgenauigkeit, kann aber auch einige Chancen verpassen und die Gewinne begrenzen.

  2. Umkehrsignale haben ein inhärentes Risiko, eingeschlossen zu werden, was Stop-Losses zur Risikokontrolle erfordert.

  3. Eine unsachgemäße Einstellung der Parameter kann die Leistung beeinträchtigen, was eine Anpassung zwischen den Märkten erfordert.

  4. Auch das Halten langfristiger Positionen ohne rechtzeitige Stop-Loss-Aktivitäten oder die Verfolgung von Aktienumkehrungen birgt Risiken.

Folglich können folgende Maßnahmen ergriffen werden, um Risiken zu mindern:

  1. Die Parameterbedingungen sollten angemessen gelockert werden, um mehr Handelsmöglichkeiten zu erhalten.

  2. Setzen Sie Stop-Loss-Punkte auf Limit pro Trade-Verlust.

  3. Optimierung von Parametern und Festlegung von Parameterregeln für verschiedene Märkte.

  4. Vermeiden Sie langfristig einzelne Aktien und halten Sie die Liquidität aufrecht.

Optimierungsrichtlinien

Es besteht noch ein großes Potenzial für die Optimierung dieser mehrindikatorischen Umkehrstrategie, hauptsächlich in folgenden Aspekten:

  1. Testen Sie mehr Indikatorenkombinationen, um bessere Übereinstimmungen zu finden.

  2. Verwenden Sie Machine-Learning-Algorithmen, um Parameter automatisch zu optimieren.

  3. Hinzufügen von Stop-Loss- und Take-Profit-Bedingungen für mehr Robustheit.

  4. Versuche verschiedene Zeitrahmen im Trendindikator-Teil.

  5. Bewertung der Anwendbarkeit auf Aktienindizes, Devisen, Rohstoffe und Kryptowährungen.

  6. Konzipieren Sie Kombinationsstrategien, die die Zuteilungen auf mehreren Märkten gleichzeitig dynamisch anpassen.

Zusammenfassung

Diese Strategie kombiniert geschickt mehrere Indikatoren, um eine effiziente, aber stabile Umkehrhandelsstrategie zu entwerfen. Im Vergleich zu einzelnen Indikatoren filtert der Multi-Indikator-Kollisionsmechanismus effektiv falsche Signale. In der Zwischenzeit aktualisiert diese Strategie auch traditionelle Umkehrmethoden, indem sie neue Trendindikatoren zur Signalbestätigung hinzufügt. Mit Parameteroptimierung, Stop-Losses, Anpassung an Märkte und mehr wird dies zu einem leistungsstarken quantitativen Handelswerkzeug.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/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
// Evaluates for n number of consecutive higher closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// 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


NBU(nLength) =>
    pos = 0.0
    nCounter = 0
    nCounter :=  iff(close[1] >= open[1], nz(nCounter[1],0)+1,
                  iff(close[1] < open[1], 0, nCounter))
    C1 = iff(nCounter >= nLength, 1, 0)
    posprice = 0.0
    posprice := iff(C1== 1, close, nz(posprice[1], 0)) 
    pos := iff(posprice > 0, 1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & N Bars Up", 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, "---- N Bars Up ----")
nLength = input(4, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNBU = NBU(nLength)
pos = iff(posReversal123 == 1 and posNBU == 1 , 1,
	   iff(posReversal123 == -1 and posNBU == -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