Multi-Faktor-Umkehrhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-19 21:13:04
Tags:

Übersicht

Diese Strategie kombiniert mehrere technische Indikatoren, um Preisumkehrungen zu identifizieren, was sie zu einer multifaktorgetriebenen Umkehrhandelsstrategie macht.

Strategie Logik

Die Strategie besteht aus zwei Hauptbestandteilen:

  1. 123 Musteridentifizierung: Ein Kaufsignal wird erzeugt, wenn der Schlusskurs für 2 aufeinanderfolgende Tage steigt und dann am 3. Tag sinkt, wobei die stochastische schnelle Linie unter der langsamen Linie liegt. Ein Verkaufssignal wird erzeugt, wenn das Gegenteil auftritt.

  2. PFE-Indikatorschwelle: PFE über der Obergrenze zeigt Verkaufssignale an, PFE unter der unteren Grenze Kaufsignale.

Der Wert des Handels wird nur eingetragen, wenn sowohl das Muster 123 als auch der PFE-Indikator übereinstimmen.

Das 123 Muster identifiziert potenzielle Umkehrungen. PFE misst die Effizienz des Trends, um falsche Ausbrüche zu vermeiden. Zusammen verbessern sie die Genauigkeit durch Multi-Faktor-Bestätigung.

Vorteile

  • 123 Muster und PFE validieren sich gegenseitig und verringern falsche Signale
  • PFE verfügt über eine fundierte theoretische Grundlage für die Bewertung der Preiseffizienz
  • Mehrfaktorgetrieben verbessert die Genauigkeit
  • Die Kombination von Umkehrmuster und Trendindikator bietet Flexibilität
  • Anpassungsfähige Parameter an sich ändernde Märkte anpassen

Risiken und Minderung

  • Einzelne Faktoren können falsche Signale geben
  • Die Faktorenanpassung muss kontinuierlich optimiert werden
  • Risiken mit kurzer Haltedauer häufiger Stop-Loss

Abmilderung:

  1. Zusätzliche Faktoren zur Verbesserung der Genauigkeit
  2. Optimierung der Parameter für eine höhere Robustheit
  3. Automatische Optimierungsmethoden zur Suche nach optimalen Parametern
  4. Vermögenswerte, die für die Berechnung von Vermögenswerten verwendet werden

Möglichkeiten zur Verbesserung

Die Strategie kann durch folgende Maßnahmen verbessert werden:

  1. Volatilitätsbasierte Stopps
  2. Automatische Optimierung aller Parameter durch maschinelles Lernen
  3. Verringerung der Umkehrfrequenz bei starken Trends
  4. Anpassungsindikatoren zur Berücksichtigung der Marktvolatilität
  5. Portfoliokombinationen zur Diversifizierung der Risiken und Verbesserung der Rendite

Schlussfolgerung

Diese Strategie kombiniert mehrere Faktoren, um Umkehrpunkte zu identifizieren und bietet theoretische Solidität und Einfachheit der Implementierung.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/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 Polarized Fractal Efficiency (PFE) indicator measures the efficiency 
// of price movements by drawing on concepts from fractal geometry and chaos 
// theory. The more linear and efficient the price movement, the shorter the 
// distance the prices must travel between two points and thus the more efficient 
// the price movement.
//
// 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


PFE(Length,LengthEMA,BuyBand,SellBand) =>
    pos = 0.0
    PFE = sqrt(pow(close - close[Length], 2) + 100)
    C2C = sum(sqrt(pow((close - close[1]), 2) + 1), Length)
    xFracEff = iff(close - close[Length] > 0,  round((PFE / C2C) * 100) , round(-(PFE / C2C) * 100))
    xEMA = ema(xFracEff, LengthEMA)
    pos := iff(xEMA < SellBand, -1,
    	      iff(xEMA > BuyBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & PFE (Polarized Fractal Efficiency)", 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, "---- PFE ----")
LengthPFE = input(9, minval=1)
LengthEMA = input(5, minval=1)
BuyBand = input(50, step = 0.1)
SellBand = input(-50, step = 0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPFE = PFE(LengthPFE,LengthEMA,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posPFE == 1 , 1,
	   iff(posReversal123 == -1 and posPFE == -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