Quantitative Handelsstrategie basierend auf dem Liquiditätstrend


Erstellungsdatum: 2023-12-21 10:19:52 zuletzt geändert: 2023-12-21 10:19:52
Kopie: 0 Klicks: 701
1
konzentrieren Sie sich auf
1623
Anhänger

Quantitative Handelsstrategie basierend auf dem Liquiditätstrend

Überblick

Diese Strategie, die als “Liquidity Driven Trend Strategy” bezeichnet wird, soll die Richtung der Preisentwicklung in verschiedenen Zeiträumen identifizieren und entsprechend Kauf- oder Verkaufsentscheidungen treffen. Die Strategie nutzt ein Bilanzsystem, um Trends zu beurteilen und zeitnah auf Trendänderungen zu reagieren, indem sie den Relative Strength Index (RSI) für Preisunterschiede in mehreren Zeiträumen nutzt.

Strategieprinzip

Die Kernlogik der Strategie basiert auf dem CHOP-Indikator, in dem ein Moving-Average-System die Richtung eines großen Trends bestimmt. Insbesondere berechnet die Strategie die RSI-Werte für die Schnelle (Length = 20) und die Langlebige (Length = 50) in einem hochperiodischen Zeitrahmen und berechnet die Differenz zwischen beiden. Wenn der Schnelle den langsamen RSI über dem RSI durchbricht, wird er als bullish beurteilt und bildet ein Mehrwertsignal.

Die Strategie führt auch mehrere Zeitrahmen ein: Berechnung des RSI-Differenzwerts in höheren Zeitrahmen (z. B. der Sonnenlinie), um die Richtung des Gesamttrends zu bestimmen. Aufgrund der Urteile in höheren Zeitrahmen werden spezifische Kauf- und Verkaufseingriffe in niedrigeren Zeitrahmen (z. B. der 5-Minuten-Linie) durchgeführt. Diese Kombination von mehreren Zeitrahmen berücksichtigt sowohl die Urteile für hohe Zeitrahmen als auch die Flexibilität für niedrige Zeitrahmen.

Strategische Vorteile

  • Die RSI-Differenz wird verwendet, um eine potenzielle Trendwende zu ermitteln, um frühzeitig zu reagieren, um sensibel zu sein
  • Anwendung von mehreren Zeitrahmen, Tendenz zu hochzyklischen Beurteilungen, Ausführung von niedrigzyklischen Operationen
  • Der RSI zeigt Veränderungen bei Preisen und Transaktionen, die die Marktliquidität und die Teilnahmebereitschaft widerspiegeln.
  • Einfache Parameter, leicht zu verstehen, zu interpretieren und anzupassen

Strategische Risiken und Lösungen

  • Bei einer doppelten Gleichungsbeurteilung kann es zu falschen Durchbrüchen kommen.
  • Ein missglückter Durchbruch kann zu unnötigen Verlusten führen.

Die Lösung:

  1. Anpassung der Mittellinienparameter zur Verringerung der Wahrscheinlichkeit eines falschen Durchbruchs
  2. Mehr Filterbedingungen, um unnötige Eintritte zu vermeiden

Richtung der Strategieoptimierung

  • Optimierung der RSI-Parameter mithilfe des Kalman-Filters
  • Hinzufügen von Indikatoren wie MACD
  • Dynamische Ausstiegspositionen in Verbindung mit Handelsvolumenänderungen

Zusammenfassen

Diese Strategie verwendet RSI-Differenzwerte, um potenzielle Trendänderungen zu beurteilen und Sensitivität zu erzielen. Die Verwendung von mehreren Zeitrahmen gewährleistet die Beurteilung von großen Trends und macht die spezifischen Kauf- und Verkaufsaktionen flexibler. Im Vergleich zu anderen Trend-Tracking-Strategien ist die Strategie einfacher und direkter, die Parameter-Settings sind intuitiv und leicht zu optimieren. Insgesamt bildet die Strategie ein hocheffizientes, praktisches Trendhandelssystem, das es wert ist, die Anwendung weiter zu erforschen.

Strategiequellcode
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Flow Trend Indicator Strategy", "FlowTI", overlay=true, calc_on_every_tick=true)

isTimeFrame(timeFrame) =>
    timeFrame == timeframe.period ? true : false

Htf() =>
    isTimeFrame("12") ? "60" : isTimeFrame("60") ? "300" : isTimeFrame("300") ? "D" : isTimeFrame("D") ? "W" : isTimeFrame("W") ? "M" : isTimeFrame("M") ? "5M" : "D"

TrendIndication() =>
    trendFastLength = 20
    trendSlowLength = 50
    upFastHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
    downFastHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
    rsiFastHtf = downFastHtf == 0 ? 100 : upFastHtf == 0 ? 0 : 100 - (100 / (1 + upFastHtf / downFastHtf))
    upSlowHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
    downSlowHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
    rsiSlowHtf = downSlowHtf == 0 ? 100 : upSlowHtf == 0 ? 0 : 100 - (100 / (1 + upSlowHtf / downSlowHtf))
    rsiDiff = rsiFastHtf - rsiSlowHtf
    crossover(rsiDiff, 0) ? true : crossunder(rsiDiff, 0) ? false : na

if (TrendIndication() == true)
    strategy.entry("Long", strategy.long)

if (TrendIndication() == false)
    strategy.entry("Short", strategy.short)