Kombinierte Umkehrhandelsstrategie mit mehreren Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-09-13 15:04:40
Tags:

Diese Strategie trägt den Namen Multi-Indicator Combined Reversal Trading Strategy. Sie integriert verschiedene technische Indikatoren, um Möglichkeiten für kurzfristige Preisumkehrungen zu erkennen und gegen den vorherigen Gewinntrend zu handeln.

Erstens verwendet die Strategie das 123 Umkehrmuster, um kurzfristige Trendumkehrungen zu bestimmen. Das 123 Muster ist, wenn die Preise über drei aufeinanderfolgende Tage signifikant voneinander abweichen und der dritte Tag in der entgegengesetzten Richtung der vorherigen zwei Tage schließt. Statistisch gesehen hat der Handel mit 123 Umkehrsignalen eine höhere Gewinnrate.

Zweitens wird der RSI-Indikator eingesetzt, um die Zuverlässigkeit von Umkehrsignalen zu bewerten. RSI unter 50 repräsentiert Überverkaufszustände, während über 50 überkauft ist. Die Verwendung von RSI vermeidet die Erzeugung übermäßiger unzuverlässiger Signale, die sich ausschließlich auf das 123 Muster stützen.

Drittens wird der mehrjährige Crossover des CMO-Indikators eingeführt. Der CMO-Crossover, der verschiedene exponentielle gleitende Durchschnitte für verschiedene Zeiträume kombiniert, beurteilt Dynamikumkehrungen. Seine Signale geben eine weitere Bestätigung des Umkehrzeitpunkts.

Die Kombination mehrerer Indikatoren erhöht die Erfolgsrate bei der Erfassung von Kursumkehrungen, indem übermäßige unsichere Signale vermieden werden.

Diese Strategie eignet sich für schwankende Märkte, um kurzfristige Kursschwankungen zu erfassen. Allerdings kann die Kombination zu vieler Indikatoren auch zu Konflikten führen. Parameteroptimierung ist erforderlich. Stop-Loss sollte auch verwendet werden, um den maximalen Verlust pro Handel zu begrenzen.

Die Multi-Indikator kombinierte Umkehrhandelsstrategie integriert verschiedene Tools, um die Richtigkeit der Beurteilung von Marktumkehrungen zu verbessern.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/02/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
// The related CMOaDisparity Index article is copyrighted material from Stocks & Commodities Dec 2009
// My strategy modification.
//
// 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

CMOD(LengthFirst, LengthSecond, LengthThird) =>
    pos = 0.0
    xEMAFirst = ema(close,LengthFirst)
    xEMASecond  = ema(close,LengthSecond)
    xEMAThird  = ema(close,LengthThird)
    xResFirst = 100 * (close - xEMAFirst) / close
    xResSecond = 100 * (close - xEMASecond) / close
    xResThird = 100 * (close - xEMAThird) / close
    pos := iff(xResThird > xResFirst, -1,
             iff(xResThird < xResSecond, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & CMOaDisparity Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthFirst = input(50, minval=1)
LengthSecond = input(25, minval=1)
LengthThird = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOD = CMOD(LengthFirst, LengthSecond, LengthThird)
pos = iff(posReversal123 == 1 and posCMOD == 1 , 1,
	   iff(posReversal123 == -1 and posCMOD == -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