Doppel bewegliche Durchschnittsstrategie 360°

Schriftsteller:ChaoZhang, Datum: 2024-02-02 14:29:59
Tags:

img

Übersicht

Die Dual Moving Average Strategy 360° ist eine quantitative Handelsstrategie, die zwei gleitende Durchschnitte und die Bestimmung der Trendstärke beinhaltet.

Strategie Logik

Die Kernlogik der Dual Moving Average Strategy 360° ist:

  1. Berechnen der 1-Minuten- und Kalman-filterten gleitenden Durchschnittswerte;
  2. Berechnen Sie den Tangenzwinkel anhand der Preisdifferenz zwischen den beiden gleitenden Durchschnitten;
  3. Akkumulation von Tangenzwinkeln zur Bestimmung von Trendstärke-Signalen;
  4. Ausgabe von Handelssignalen, die darauf basieren, ob die kumulierten Tangenzwinkel vorgegebene Schwellenwerte überschreiten.

Der Kalman-Filter eliminiert etwas Lärm aus dem gleitenden Durchschnitt, um ihn glatter zu machen. Der Tangenzwinkel zwischen den beiden gleitenden Durchschnitten spiegelt Preistrendänderungen wider. Zum Beispiel, wenn der Tangenzwinkel positiv ist, zeigt er einen Aufwärtstrend an; umgekehrt stellt ein negativer Winkel einen Abwärtstrend dar.

Die Strategie wählt 30 Minuten als Berechnungszeitraum, um alle positiven und negativen Tangenzwinkel innerhalb dieses Zeitraums zu summieren. Wenn die Summe 360 Grad übersteigt, signalisiert sie einen extrem starken Trend und gibt ein langes Signal ab; umgekehrt, wenn die Summe unter -360 Grad liegt, gibt sie eine Trendumkehr an und gibt ein kurzes Signal ab.

Analyse der Vorteile

Die Hauptvorteile der Doppel-Drehungsdurchschnitt-Strategie 360° sind:

  1. Gleitende Durchschnitte filtern kurzfristige Marktgeräusche aus, um zuverlässigere Handelsentscheidungen zu treffen;
  2. Tangentenwinkel quantifizieren die Trendstärke und vermeiden die Subjektivität, allein durch gleitende Durchschnittsmuster zu beurteilen.
  3. Die Summierung mehrerer Tangenzwinkel hat bessere Lärmmminderungseffekte, was zu zuverlässigeren Handelssignalen führt.
  4. Im Vergleich zu einzelnen gleitenden Durchschnittsstrategien machen die doppelten gleitenden Durchschnittswerte in Kombination mit den Trendstärkungsbestimmungen die Strategie umfassender und robuster.

Risikoanalyse

Die Strategie des Doppel gleitenden Durchschnitts 360° birgt ebenfalls einige Risiken:

  1. Die gleitenden Durchschnittswerte verfallen bei Preisänderungen und können kurzfristige Trendwendepunkte verpassen;
  2. Die ausschließliche Abhängigkeit von dem kumulierten Trendstärke-Signal kann durch Marktvolatilität beeinträchtigt werden;
  3. Bei falschen Parameter-Einstellungen (z. B. Berechnungszeitraumshöhe) kann es zu fehlenden Trades oder zu falschen Signalen kommen.

Um die oben genannten Risiken abzubauen, können Maßnahmen wie die Verkürzung der gleitenden Durchschnittsperiode, die Optimierung von Parameterkombinationen und die Einführung von Stop-Loss-Mechanismen ergriffen werden.

Optimierungsrichtlinien

Die Strategie 360° für den doppelten gleitenden Durchschnitt kann weiter optimiert werden, indem

  1. Einbeziehung adaptiver gleitender Durchschnitte, die Parameter anhand der Marktvolatilität anpassen;
  2. Referenzierung mehrerer gleitender Durchschnittsperioden zur Bildung optimierter Parameterkombinationen;
  3. Hinzufügen dynamischer Trendbestimmungsmodule auf der Grundlage von Volatilität, Handelsvolumen usw.;
  4. Unterstützung bei Parameter-Tuning oder Handelsentscheidungen mit Hilfe von Modellen für maschinelles Lernen.

Zusammenfassung

Die Dual Moving Average Strategy 360° nutzt die Filterung von gleitenden Durchschnitten und quantitative Tangentwinkel-Trendurteile, um eine relativ robuste quantitative Handelsstrategie zu erreichen. Im Vergleich zu einzelnen technischen Indikatoren bildet diese Strategie eine umfassendere Betrachtung und hat eine stärkere Praktikabilität.


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

//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)

// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")

// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) => 
    kf = 0.0 
    dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
    smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
    velo = 0.0 
    velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
    kf := smooth + velo 
    kf 

// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01) 
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")

// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数

// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数

// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数

// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加

// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360

// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)

// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角


Mehr