Strategie zur Nachverfolgung der Umkehrung durch mehrere Faktoren

Schriftsteller:ChaoZhang, Datum: 15.9.2023
Tags:

Strategieübersicht

Die Multi-Faktor-Reversal-Tracking-Strategie erzeugt Handelssignale, indem sie Preisumkehrmuster und Überkauf-Überverkauft-Indikatoren integriert. Sie synthetisiert mehrere Faktoren, um Markthochs und -Tiefs zu identifizieren, und erzeugt Handelssignale an Umkehrpunkten, um mittel- und kurzfristige Preisumkehrungen zu erfassen.

Strategie Logik

Die Strategie besteht aus zwei Modulen:

  1. 123 Umkehrmustermodul
  • Gehen Sie kurz, wenn Sie ein neues 2-tägiges Hoch sehen, aber am 3. Tag ziehen Sie zurück, was auf ein mögliches kurzfristiges Hoch hinweist.

  • Gehen Sie lang, wenn Sie ein 2-tägiges neues Tief sehen, aber springen Sie am 3. Tag auf, was auf ein mögliches kurzfristiges Tief hinweist.

  1. Umgekehrter RSI-Modul
  • Identifizieren Sie Umkehrpunkte durch dynamische Anpassung des RSI an überkauften und überverkauften Linien.

  • Gehen Sie kurz, wenn der RSI über der angepassten Überkauflinie liegt, lang, wenn der RSI unter der angepassten Überverkauflinie liegt.

Handelssignale werden nur erzeugt, wenn sich beide Module ausrichten.

Der größte Vorteil besteht darin, mehrere Faktoren einzubeziehen, um strukturelle Höhen und Tiefen zu bestimmen, einige falsche Signale aus einzelnen Faktoren zu filtern und die tatsächliche Handelsgewinnrate zu verbessern.

Vorteile der Strategie

  • Multifaktor-Synthese für eine umfassende hohe/niedrige Identifizierung

  • Kombiniert Umkehrmuster und Indikatoren für Überkauf/Überverkauf

  • Filtert falsche Umkehrungen, verbessert die Genauigkeit

  • Optimierbare Backtestparameter, die an verschiedene Märkte angepasst werden können

  • Einfache Implementierung für eine schnelle Replikation

Gefahrenwarnungen

  • Umkehrsignale können verzögert sein, Parameter müssen aktualisiert werden

  • Verhindern Sie Überhandelungen, um mehr Provisionen zu vermeiden

  • Die Grundlagen der einzelnen Bestände müssen noch berücksichtigt werden

  • Umkehrstrategien, die für Indizes und Hot Stocks besser geeignet sind

Schlussfolgerung

Die Multi-Faktor-Reversal-Tracking-Strategie kombiniert perfekt die Stärken von Quant-Tools und manueller Analyseerfahrung, indem sie mehrere Perspektiven für Handelssignale berücksichtigt. Im Vergleich zu Einzelindikator-Strategien verbessert sie die tatsächliche Handelsstabilität und die Gewinnrate erheblich. Die Strategie lohnt sich zuerst in Backtests zu überprüfen und zu optimieren, dann schrittweise im Live-Handel umzusetzen, mit einem sehr ausgeprägten praktischen Wert.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/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 related article is copyrighted material from
// Stocks & Commodities.
//
// 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


RE_RSI(Value,WildPer) =>
    pos = 0.0
    AUC = 0.0
    ADC = 0.0
    ExpPer = 2 * WildPer - 1
    K = 2 / (ExpPer + 1)
    AUC := iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
    ADC := iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
    nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
    nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
    pos:= iff(nRes > close, -1,
    	   iff(nRes < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Reverse Engineering RSI, by Giorgos Siligardos", 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, "---- Reverse Engineering RSI ----")
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRE_RSI = RE_RSI(Value,WildPer)
pos = iff(posReversal123 == 1 and posRE_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posRE_RSI == -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