
Die Strategie ist eine Kombination aus einer Trend-Tracking-Umkehr-Strategie und einer Ells-Lead-Index-Strategie, um zuverlässigere Handelssignale zu erhalten. Die Trend-Tracking-Umkehr-Strategie beurteilt Trend-Umkehrpunkte, die Ells-Lead-Index-Strategie beurteilt periodische Wendepunkte.
Die Strategie stammt aus Ulf Jensens Buch “Wie man Geld verdreifacht auf dem Futures-Markt”, Seite 183. Es ist eine Strategie des Umkehrtyps. Wenn der Schlusskurs 2 Tage in Folge höher ist als der Schlusskurs des Vortages und die Stochastic-Lowline am 9. Tag unter 50 liegt, machen Sie einen Plus; wenn der Schlusskurs 2 Tage in Folge unter dem Schlusskurs des Vortages liegt und die Stochastic-Fastline am 9. Tag über 50 liegt, machen Sie einen Minus.
Die Strategie nutzt Tagesdaten, um einen eintägigen Trending Synthetic Price (DSP) und einen Tages-Ehlers Leading Indicator (ELI) zu erstellen. Der DSP erfasst die Preisdominanz-Zyklus und berechnet die 2-Batt-Worth-Wellen abzüglich der 3-Batt-Wellen.
Der größte Vorteil dieser Kombinationsstrategie ist die Kombination von Trendwechsel- und Zyklisch-Umkehr-Urteilen. Die Handelssignale sind zuverlässiger. Die Trendwechsel-Strategie kann die Trendwechselpunkte erkennen, die den Auf- und Abstieg durchbrechen.
Ein weiterer Vorteil ist die Flexibilität bei der Anpassung der Parameter. Die Parameter für Aktienindizes in Trendwende-Strategien können nach dem Markt angepasst werden. Die Periodengröße in der Ehrers-Leadership-Indikator kann auch für verschiedene Perioden angepasst werden.
Das größte Risiko dieser Strategie besteht darin, den Trend persisting zu verpassen. Da die Strategie darauf wartet, dass ein Umkehrsignal auftritt, kann sie die frühe Phase des starken Trends verpassen. Darüber hinaus kann ein Umkehrsignal ein falscher Durchbruch sein und kann auch eingestellt werden.
Die Lösung besteht darin, die Parameter anzupassen, die Umkehrungsentscheidungsphase zu verkürzen und die Trendwende rechtzeitig zu erfassen. Außerdem kann ein Stop-Loss eingeführt werden, um Verluste zu kontrollieren.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Ein Stop-Loss-Strategien zur Kontrolle von Einzelschäden eingeführt.
Optimierung der Parameter, Anpassung der Rückschlagsignal-Periode, Anpassung an unterschiedliche Marktumgebungen.
Filter für andere Indikatoren, Verbesserung der Signalqualität und Verringerung der Falschsignale.
Die Erweiterung des Moduls zur Vermögensverwaltung und zur Kontrolle der gesamten Positionen und Risiken.
Testen Sie die Wirkung der Parameter verschiedener Sorten und optimieren Sie, welche Sorten geeignet sind.
Hinzugefügt wurde ein Modul für maschinelles Lernen, um die Parameter anpassungsfähig zu machen.
Die Strategie kombiniert Trend-Umkehr-Urteil und periodische Umkehr-Urteil, um zuverlässiger zu erfassen, die Zeit des Markteintritts. Der größte Vorteil ist, dass die Signalqualität ist gut, kann stark angepasst werden. Das größte Risiko ist zu verpassen, frühe Trends, kann durch Anpassung der Parameter, Stop-Loss zu steuern.
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 26/11/2019
// 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
// This Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70.
//
// 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
D_ELI(Length) =>
pos = 0.0
xHL2 = security(syminfo.tickerid, 'D', hl2)
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
xResultEMA = ema(xEMA1_EMA2, Length)
nRes = xEMA1_EMA2 - xResultEMA
pos:= iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & D_ELI (Ehlers Leading Indicator)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthELI = input(7, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_ELI = D_ELI(LengthELI)
pos = iff(posReversal123 == 1 and posD_ELI == 1 , 1,
iff(posReversal123 == -1 and posD_ELI == -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 )