Zwei-Strecken-Trend-Erfassung Fusionsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-06 11:49:41
Tags:

img

Übersicht

Diese Strategie verbindet die 123 Reversal und SMA Ergodic Oscillator Unterstrategien, um eine Trendverfolgungsstrategie mit Dual-Track-Signalfilterung zu bilden. Die 123 Reversal Strategie beurteilt potenzielle Wendepunkte durch Kerzenmuster; der SMA Ergodic Oscillator bestimmt die Trendrichtung mithilfe gleitender Durchschnitte. Sie überprüfen sich gegenseitig, um einen Dual-Bestätigungsmechanismus zu bilden, der falsche Signale effektiv filtern und relativ starke Trendrichtungen für den Trendverfolgungshandel erfassen kann.

Strategie Logik

  1. 123 Umkehrstrategie

Diese Strategie stammt aus dem System auf Seite 183 von Ulf Jensen Buch Wie ich mein Geld auf dem Futures-Markt verdreifacht habe. Sie gehört zum Umkehrtyp. Wenn der Schlusskurs für 2 aufeinanderfolgende Tage höher als der vorherige Schlusskurs ist und die langsame Linie des 9-Tage-Stochastischen unter 50 liegt, gehen Sie lang; wenn der Schlusskurs für 2 aufeinanderfolgende Tage niedriger als der vorherige Schlusskurs ist und die schnelle Linie des 9-Tage-Stochastischen über 50 liegt, gehen Sie kurz.

  1. Ergodischer SMA-Oszillator

Dieser Indikator ist dem von William Blau entwickelten TSI ähnlich, mit der Ausnahme, dass der SMA-Oszillator eine Signallinie enthält. Der SMA Ergodic Indicator verwendet doppelte gleitende Durchschnitte des Preises minus vorheriger Preis und zeichnet eine EMA von SMI als Signallinie, um Handelssignale auszulösen. Die Parameter sind für die Optimierung einstellbar.

Doppelbestätigung: nur dann Positionen öffnen, wenn 123 Reversal und SMA Ergodic Signale in die gleiche Richtung geben.

Vorteile

  1. Die Integration mehrerer Indikatoren bildet einen Doppelbestätigungsmechanismus, der falsche Signale effektiv filtern kann.

  2. 123 Die Umkehrstrategie beurteilt potenzielle Umkehrpunkte durch Kerzenmuster. Der SMA Ergodic Oscillator gibt Signale aus, die auf dem Trendbeurteil basieren. Sie ergänzen sich gegenseitig, um die Einschränkungen einzelner Indikatoren zu überwinden.

  3. Die Parameter des SMA Ergodic Oscillators sind anpassbar für die Optimierung auf verschiedenen Produkten und Zeitrahmen.

  4. Als gesamte Trendverfolgungsstrategie kann sie dem Trend kontinuierlich folgen, um eine starke Dynamik zu erlangen.

Risiken

  1. Die Integration und das Gleichgewicht zwischen Umkehr- und Trendstrategien müssen kontinuierlich optimiert werden, da sie sonst Wendepunkte verpassen oder große Verluste verursachen können.

  2. Umkehrstrategien haben inhärente falsche Handelsrisiken. Parameter müssen angepasst werden, um die Ausfallrate zu reduzieren.

  3. Die Strategie des reinen Trendverfolgens kann keine Umkehrungen beurteilen. Es gibt mögliche Verlustrisiken. Die Positionsgröße sollte rechtzeitig reduziert werden, um Risiken zu vermeiden.

  4. Parameter müssen iterativ optimiert und für verschiedene Produkte und Zeitrahmen getestet werden.

Verbesserungen

  1. Anpassung der Parameter von 123 Reversal zur Verringerung der Häufigkeit falscher Transaktionen.

  2. Anpassung der Parameter des SMA Ergodic Oscillators zur Optimierung der Indikatorempfindlichkeit.

  3. Hinzufügen einer Stop-Loss-Strategie zum Limit pro Handelsverlust.

  4. Einbeziehung anderer Indikatoren, um mögliche Umkehrungen zu beurteilen und die Positionsgröße zeitlich zu reduzieren.

  5. Prüfparameter für verschiedene Produkte zur Verbesserung der Robustheit.

Zusammenfassung

Diese Strategie integriert die Vorteile von Umkehr- und Trendstrategien durch den Dual-Confirmation-Mechanismus und bildet einen starken Trend-Tracking-Effekt. Sie kann effektiv Geräusche filtern, dem Trend folgen und kontinuierlich hochwertige Trendchancen erfassen. In der Zwischenzeit bestehen bestimmte Rückzugsrisiken. Die Parameter müssen kontinuierlich optimiert und mit Stop-Loss kontrolliert werden. Der Schlüssel besteht darin, Umkehr und Trend sowie Stop-Loss auszugleichen. Sie kann besser für die langfristige Verfolgung funktionieren. Insgesamt hat diese Strategie einen praktischen Wert und kann als Teil des Strategieportfolios oder unabhängig verwendet werden.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/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 SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// 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


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", 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, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -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