Multifaktorielle Trendfolgestrategie


Erstellungsdatum: 2024-01-17 14:02:22 zuletzt geändert: 2024-01-17 14:02:22
Kopie: 0 Klicks: 568
1
konzentrieren Sie sich auf
1617
Anhänger

Multifaktorielle Trendfolgestrategie

Überblick

Die Strategie beurteilt die Richtung des Markttrends durch die Kombination von zwei Faktoren: dem Moving Average Clustered Index (MACD) und dem Random Relative Strength Index (Stoch RSI). Sie ist eine Trend-Tracking-Strategie, bei der der Trend nach oben geht und beim Trend nach unten geht.

Strategieprinzip

Die Strategie verwendet die MACD und den Stoch RSI, um die Richtung der Markttrends zu bestimmen.

Der MACD-Indikator besteht aus einer schnellen und einer langsamen Linie und ihrer Differenz, die die Aggregation und Trennung von kurz- und langfristigen Durchschnitten widerspiegelt. Es ist ein Kaufsignal, wenn die schnelle Linie die langsame Linie durchquert, und ein Verkaufsignal, wenn die schnelle Linie die langsame Linie durchquert.

Der Stoch RSI kombiniert die Vorzüge des RSI und des Stoch-Indikators, um ein Überkaufen und Überverkaufen des Marktes zu zeigen. Der Stoch RSI ist ein Kaufsignal, wenn er größer als die Stoch RSI-Signallinie ist, und ein Verkaufssignal, wenn er kleiner als die Signallinie ist.

Diese Strategie verwendet MACD und Stoch RSI, um die Richtung der Markttrends auf der Tages- und der 4-Stunden-Linie zu bestimmen. Wenn zwei Indikatoren auf der Tages- und der 4-Stunden-Linie gleichzeitig ein Kaufsignal senden, machen Sie einen Übergang. Wenn zwei Indikatoren gleichzeitig ein Verkaufsignal senden, machen Sie einen Ausfall.

Strategische Vorteile

  1. Die Kombination von zwei Faktoren zur Beurteilung der Marktentwicklung kann falsche Signale effektiv filtern und die Signalgenauigkeit verbessern.

  2. Überprüfen Sie die Signale auf der oberen und unteren Zeitachse (Sonnen- und 4-Stunden-Zeitlinie), um eine arbitrale Verwertung zu vermeiden

  3. Trends zu verfolgen und sich vor Schwankungen zu schützen

  4. Strategie ist klar, einfach und leicht zu verstehen

Risiken und Lösungen

  1. Es ist unmöglich, einen Trendwendepunkt zu beurteilen, und es könnte sein, dass sich die Stop-Loss-Situation umkehren wird.
  • Optimierung der Parameter oder Hinzufügung anderer Indikatoren
  1. Ein einziger Vertrag kann das Systemrisiko nicht verteilen
  • Zusätzliche Verträge oder Aktien für eine dezentrale Investition
  1. Unmöglichkeit, die Auswirkungen eines großen Ereignisses zu beurteilen
  • Das Risiko-Bewusstsein in Kombination mit Fundamentalanalysen

Optimierungsrichtung

  1. Anpassung der MACD- und Stoch-RSI-Parameter zur Optimierung der Kauf- und Verkaufspunkte

  2. Erhöhung der mobilen Stop-Loss-Strategien zur Gewinnschließung

  3. Erweiterung des Moduls zur Vermögensverwaltung und Kontrolle der Einzelleistungen

  4. Mehr Faktoren für eine bessere Signalgenauigkeit

  5. Dynamische Optimierungsparameter mit einer maschinellen Lernmethode

Zusammenfassen

Diese Strategie ist eine eher stabile und zuverlässige Trendverfolgungsstrategie, die die Richtung des Markttrends durch ein Zwei-Faktor-Modell beurteilt und mit einem Signal für die Überprüfung der Höhen- und Tiefzeitschwelle kombiniert wird. Sie verfügt über eine gewisse Risikovorsorge und Fehlerfreiräume. In der späteren Phase wird eine bessere Strategieleistung durch die Aufnahme von Modulen wie Parameteroptimierung, Stop-Loss-Strategie und Kapitalmanagement erwartet.

Strategiequellcode
/*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)