Umkehrungs- und Cashflow-Kombi-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-17 22:37:54
Tags:

Diese Strategie kombiniert 123 Umkehrmuster und einen Cashflow-Indikator, um Trendumkehrungen zu erkennen.

Strategie Logik

Erstens werden 123 Umkehrmuster verwendet, um potenzielle Umkehrpunkte zu erkennen. Insbesondere wird ein Kaufsignal erzeugt, wenn die Preise in den ersten zwei Tagen schließen und dann am dritten Tag schließen, mit einem stochastischen Oszillator unterhalb der Schwelle. Ein Verkaufssignal wird erzeugt, wenn die Preise in den ersten zwei Tagen schließen und dann am dritten Tag schließen, mit einem stochastischen Oszillator über der Schwelle.

Zweitens werden schnelle und langsame Linien des Geldflussindikators berechnet. Die schnelle Linie besteht aus einem kurzfristigen exponentiellen gleitenden Durchschnitt des Geldflusses, während die langsame Linie ein längerfristiger EMA ist. Wenn die schnelle Linie über der langsamen Linie liegt, zeigt sie den Geldzufluss an und erzeugt ein Kaufsignal. Das Gegenteil deutet den Geldausfluss an und erzeugt ein Verkaufssignal.

Schließlich wird ein Handelssignal erzeugt, wenn sowohl die Umkehrungs- als auch die Geldflusssignale übereinstimmen.

Analyse der Vorteile

  • Die Kombination mehrerer Signale verbessert die Zuverlässigkeit.
  • 123 Umkehrungen erkennen Wendepunkte und Geldfluss zeigt Geldströme an.
  • Die Parameter können für verschiedene Produkte und Zeitrahmen angepasst werden.
  • Einzelne Signale können auch unabhängig voneinander verwendet werden.

Risikoanalyse

  • 123 Umkehrungen können falsche Signale erzeugen.
  • Der Geldfluss hat einen Verzögerungseffekt und kann keine Wendepunkte rechtzeitig erfassen.
  • Komplexe Logik mit mehreren kombinierten Signalen.
  • Ich muss die Parameter einstellen, um zu verhindern, dass es übertrieben wird.

Risiken können durch Verbesserung der Umkehrsicherheit, Anpassung der Geldflussempfindlichkeit, Einführung von Stop-Loss usw. verwaltet werden.

Optimierungsrichtlinien

  • Versuche verschiedene Parametermengen, um optimale Werte zu finden.
  • Anpassung der Kauf-/Verkaufsschwellen, um falsche Transaktionen zu reduzieren.
  • Hinzufügen anderer technischer Indikatoren zur Verbesserung der Signalqualität.
  • Implementieren Sie Stop Loss, um Einzelhandelsverluste zu kontrollieren.
  • Optimierung der Geldmanagementstrategien zur Steuerung des Gesamtrisikos.

Schlussfolgerung

Die Strategie integriert die Vorteile des Umkehrhandels und des Trendfolgens. Sie kann Marktwendepunkte effektiv identifizieren. Allerdings sind Parameter-Tuning und Risikokontrolle erforderlich, um übermäßige falsche Signale bei der Verfolgung von Trends zu vermeiden. Wenn sie richtig verwendet wird, kann sie zu einer effizienten Handelsstrategie werden.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/02/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
//    Indicator plots Money Flow Indicator (Chaikin). This indicator looks 
//    to improve on Larry William's Accumulation Distribution formula that 
//    compared the closing price with the opening price. In the early 1970's, 
//    opening prices for stocks stopped being transmitted by the exchanges. 
//    This made it difficult to calculate Williams' formula. The Chaikin 
//    Oscillator uses the average price of the bar calculated as follows 
//    (High + Low) /2 instead of the Open.
//    The indicator subtracts a 10 period exponential moving average of the 
//    AccumDist function from a 3 period exponential moving average of the 
//    AccumDist function.  
//
// 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


MFI(Fast,Slow) =>
    pos = 0.0
    lenMax = max(Fast, Slow)
    lenMin = min(Fast, Slow)
    xDiv = (high - low) * volume
    SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
    SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
    emaMax = ema(SumMax, lenMax)
    emaMin = ema(SumMin, lenMin)
    nRes = emaMax - emaMin
    pos:= iff(nRes > 0, 1,
           iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", 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, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
	   iff(posReversal123 == -1 and posMFI == -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