Handelsstrategie für die Dynamik des Doppelsystems

Schriftsteller:ChaoZhang, Datum: 2023-11-22 15:26:28
Tags:

Übersicht

Diese Strategie kombiniert die MACD- und Stoch-RSI-Indikatoren, um ein Dual-Rail-Handelssystem für die Trendverfolgung und Überverkauf/Überkauf zu erstellen.

Strategieprinzip

Die Strategie kombiniert die MACD- und Stoch-RSI-Indikatoren, die verschiedene Arten von technischen Indikatoren sind, zur Konfiguration.

Die Strategie baut zunächst die MACD- und den Stoch RSI-Indikatoren auf den Tages- bzw. 4-Stunden-Zeitrahmen für Trend- und Überkauf-/Überverkaufsschätzungen auf.

Insbesondere ist der MACD-Indikator mit den DIF- und DEA-Linien konstruiert, die golden/dead crosses für das Urteil bilden; der Stoch RSI-Indikator ist mit den K- und D-Linien konstruiert, die golden/dead crosses für das Urteil bilden.

Durch die umfassende Anwendung des Dual-Indicator-Systems und der Urteile über mehrere Zeitrahmen beurteilt die Strategie daher die Preisgeschwindigkeit und die relative Stärke gründlich, was dazu beiträgt, die Entscheidungsgenauigkeit zu verbessern und bessere Renditen zu erzielen.

Analyse der Vorteile

Diese Strategie hat folgende Vorteile:

  1. Kombination eines Doppelindikatorsystems für ein umfassendes Urteilsvermögen und eine höhere Entscheidungsgenauigkeit
  2. Anwendung von mehreren Zeitrahmen zur Verringerung der Wahrscheinlichkeit von Fehleinschätzungen
  3. Annahme von Trendverfolgung und Überkauf/Überverkauf für die Berücksichtigung sowohl der Preisgeschwindigkeit als auch der relativen Stärke
  4. Flexible Indikatorparameter, die für verschiedene Produkte und Marktumgebungen angepasst werden können
  5. Saubere Code-Struktur leicht zu verstehen und zu erweitern

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Es bestehen systemische Marktrisiken, die nicht vollständig vermieden werden können
  2. Unangemessene Einstellungen der Indikatorparameter können zu Überhandelungen oder fehlenden Gelegenheiten führen
  3. Doppelte Indikatoren können immer noch gleichzeitige falsche Signale geben, aber weniger wahrscheinlich als einzelne
  4. Unfähig, mit drastischen Marktveränderungen wie dem Schwarzen Schwan zu umgehen.

Gegenmaßnahmen:

  1. Optimierung der Parameter und Anpassung der Handelsbedingungen zur Verringerung von Fehleinschätzungen
  2. Mehr Indikatoren für kombinierte Urteile
  3. Hinzufügen von Stop-Loss-Mechanismen zur Kontrolle des Einzelverlustrisikos

Optimierungsrichtlinien

Diese Strategie kann auch in folgenden Bereichen verbessert werden:

  1. Mehr Indikatoren für Multi-Indikator-Strategien einbeziehen
  2. Hinzufügen von Machine-Learning-Algorithmen für dynamische Parameteroptimierung
  3. Kombination von Stimmungsindikatoren, Nachrichten usw. für umfassendere Beurteilungen der Marktlage
  4. Hinzufügen Stop-Loss, nehmen Sie Gewinn-Strategien, um das Geldmanagement zu optimieren
  5. Erweitern Sie sich auf weitere Handelsprodukte, um bessere Möglichkeiten zu entdecken

Schlussfolgerung

Durch die kombinierte Anwendung des Dual-Indikator-Systems und der Multi-Timeframe-Urteile beurteilt diese Strategie die Preisgeschwindigkeit und die relative Stärke gründlich, was die Markttrends effektiv erfassen und die Mängel einzelner Indikatoren verbessern kann. Sie hat auch Vorteile wie flexible Parameter-Tuning, einfaches Verstehen und Erweitern. Weitere Erweiterungen durch Multi-Indikator-Kombination, dynamische Parameteroptimierung, Einbeziehung von Sentiment-Indikatoren usw. können zur Steigerung der Strategieleistung beitragen. - Ich bin nicht derjenige.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 10:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[RS]Khizon (UWTI) 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('USOIL', '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('USOIL', '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