Mehrfaktororientierte Trendhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-17 14:02:22
Tags:

img

Zusammenfassung

Diese Strategie kombiniert den Moving Average Convergence Divergence (MACD) Indikator und den Stochastic Relative Strength Index (Stoch RSI) Indikator, um die Markttrendrichtung zu bestimmen.

Strategie Logik

Diese Strategie verwendet die MACD- und Stoch-RSI-Indikatoren, um die Markttrendrichtung zu bestimmen.

Der MACD-Indikator besteht aus der schnellen EMA-Linie, der langsamen EMA-Linie und der Differenz zwischen ihnen, die die Konvergenz und Divergenz von kurz- und langfristigen gleitenden Durchschnitten widerspiegelt.

Der Stoch RSI-Indikator kombiniert die Stärken des RSI und der Stoch-Indikatoren, um Überkauf- und Überverkaufswerte auf dem Markt zu zeigen.

Diese Strategie verwendet MACD und Stoch RSI auf den Tages- und 4-Stunden-Zeitrahmen, um den Markttrend zu bestimmen. Wenn beide Indikatoren Kaufsignale auf den Tages- und 4-Stunden-Charts erzeugen, gehen Sie lang. Wenn beide Verkaufssignale erzeugen, gehen Sie kurz. Dies kann falsche Signale effektiv filtern und die Zuverlässigkeit verbessern.

Vorteile

  1. Die Kombination von zwei Faktoren zur Beurteilung von Marktbewegungen kann falsche Signale effektiv filtern und die Genauigkeit des Signals verbessern

  2. Die Validierung von Signalen in hohen und niedrigen Zeitrahmen (täglich und 4 Stunden) verhindert, dass Sie gepeitscht werden

  3. Der Trend zu folgen verhindert, dass die Märkte unruhig sind

  4. Einfache und klare Strategielogik, leicht zu verstehen und umzusetzen

Risiken und Lösungen

  1. Die Unfähigkeit, die Trendumkehrpunkte wirksam zu bestimmen, kann dazu führen, dass ein Stop-Loss ausgelöst wird.
  • Optimieren von Parametern oder hinzufügen anderer Indikatoren zu beurteilen
  1. Einheitlicher Vertrag kann die systematischen Risiken des Marktes nicht diversifizieren
  • Erhöhung anderer Verträge oder Bestände zur Diversifizierung
  1. Wir können die Auswirkungen von plötzlichen Großereignissen nicht bestimmen.
  • Kombination von Fundamentalanalysen zur Verbesserung des Risikobewusstseins

Optimierungsrichtlinien

  1. Anpassung der MACD- und Stoch-RSI-Parameter zur Optimierung der Ein- und Ausstiegspunkte

  2. Hinzufügen von Trailing Stop-Strategien, um Gewinne zu erzielen

  3. Zusätzliche Positionsgrößen für die Kontrolle pro Handelsrisiko

  4. Hinzufügen mehr Faktoren zu beurteilen, um die Genauigkeit des Signals zu verbessern

  5. Verwenden Sie maschinelle Lernmethoden zur dynamischen Optimierung von Parametern

Zusammenfassung

Diese Strategie bestimmt die Trendrichtung über ein Dual-Faktor-Modell und validiert Signale über Zeitrahmen hinweg.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='[RS]Khizon (UGAZ) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:',  defval=12)
macd_slow = input(title='MACD Slow Length:',  defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:',  defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:',  defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:',  defval=14)
srsi_smooth = input(title='SRSI Smoothing:',  defval=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, defval=true)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('NGAS', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('NGAS', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not h4_trigger
strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)


Mehr