Strategie für die Kombination von Dual-Stochastik und volumengewichtetem gleitendem Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2023-10-26 17:18:53
Tags:

img

Übersicht

Dies ist eine Strategie, die eine Kombination aus zwei Stochastikindikatoren und einem volumengewichteten gleitenden Durchschnitt verwendet, um Trends zu identifizieren.

Strategie Logik

Die Strategie umfasst hauptsächlich die Identifizierung von Trends in folgenden Teilen:

  1. Berechnen Sie einen kurzfristigen Stochastikindikator mit Periodenlängeinput ((30) und glatten Parameter 2

  2. Berechnen Sie einen langfristigen Stochastikindikator mit Periodenlänge-Eingabe ((90) und glatten Parameter 2

  3. Die kurz- und langfristigen Stochastiker addieren, um eine kombinierte Stochastikkurve zu erhalten.

  4. Berechnen Sie einen volumengewichteten gleitenden Durchschnitt der ts-Kurve mit Eingabe der Periodenlänge ((30)

  5. Vergleichen Sie den aktuellen Wert von tsl mit seinem Wert vor 1 Periode, wenn tsl steigt, zeigt dies einen Aufwärtstrend an, wenn tsl fällt, zeigt dies einen Abwärtstrend an

  6. Kombination mit Stochastic-Kurvenposition zur Identifizierung von Aufwärts- oder Bärensignalen

  • Wenn TSL steigt und TS in der mittleren Zone ist, ist es ein bullisches Signal
  • Wenn tsl fällt und ts in der mittleren Zone ist, ist es ein bärisches Signal.

Analyse der Vorteile

Die Strategie kombiniert Trenderkennung und Überkauf-Überverkaufsanalyse, wodurch die Trendrichtung ziemlich zuverlässig ermittelt werden kann.

  1. Die doppelte Stochastik kann sowohl kurzfristige als auch langfristige Überkauf-/Überverkaufssituationen widerspiegeln und vermeidet, dass einige Signale verpasst werden

  2. Volumengewichteter gleitender Durchschnitt kann einige falsche Ausbruchssignale herausfiltern

  3. Die Position der Stochastikkurve bestätigt die Zuverlässigkeit der Trendsignale

  4. Einstellbare Parameter für verschiedene Märkte

  5. Klare und einfache Logik, leicht zu verstehen und zu ändern

Risiken und Verbesserungen

Für diese Strategie sind auch einige Risiken zu beachten:

  1. Die Stochastik kann falsche Signale geben, muss mit längerfristigen Indikatoren gefiltert werden

  2. Festlaufzeiten sind möglicherweise nicht für alle Märkte geeignet, dynamische Optimierung könnte helfen

  3. Rein auf technischen Indikatoren basierende Fundamentaldaten können die Genauigkeit verbessern

  4. Ungenaue Volumendaten beeinflussen die Ergebnisse, Datenqualität muss überprüft werden

  5. Unzureichende Backtesting-Geschichte, mehr Daten für die Validierung erforderlich

  6. Eintrittspunkte können verbessert werden, anstatt direkt lang an Kreuzungen unter dem niedrigsten

Schlussfolgerung

Zusammenfassend lässt sich mit dieser Strategie Trends anhand der doppelten Stochastik und der VWMA identifizieren, die in der Theorie Trendumkehrungen zuverlässig erkennen können. Für bestimmte Märkte ist jedoch eine Parameter-Tuning erforderlich, und es besteht ein Risiko falscher Signale. Es wird empfohlen, andere Faktoren wie Fundamente, langfristige Trends usw. zu kombinieren, um die Strategie zu verbessern Profit-Faktor. Die Logik ist einfach und klar und bietet eine Vorlage für Quant-Trading, die bei Bedarf geändert werden kann.


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

//@version=4
strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true)

//----------Indicator------------//

periodK = input(30)
periodD = 3
smoothK = 2

periodK_two = input(90)
periodD_two = 3
smoothK_two = 2

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

k_two = sma(stoch(close, high, low, periodK_two), smoothK_two)
d_two = sma(k, periodD_two)

ts = k + k_two
tsl = vwma(ts, input(30, title = "VWMA Length"))

//--------Label parameter--------// 

up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0
down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0

//----------Color Code-----------//

//tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver

//tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple  

tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow 

ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime :  (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70)  ? color.red : color.silver

//-------------Plots-------------//

buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0
sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0

plotcandle(open,high,low,close, color=tsl_col)

strategy.entry("Long", strategy.long,when=buy==1)
strategy.close("Long", when=sell==-1)


Mehr