
Die 360°-Strategie ist eine quantitative Trading-Strategie, bei der die Trendstärke durch die Kombination von der doppelten Durchschnittslinie und der Trendstärke ermittelt wird. Die Strategie beurteilt die Preisentwicklung durch die Berechnung der Durchschnittslinie für verschiedene Perioden und kombiniert die Schnittwinkel mit der Aggregation der Trendstärke und -schwäche, um eine genauere Auswahl der Kauf- und Verkaufsmomente zu erzielen.
Die Kernlogik der 360°-Strategie ist:
Konkret definiert die Strategie die 1-minütige ursprüngliche Durchschnittslinie und die Durchschnittslinie nach dem Kalman-Filter. Der Kalman-Filter kann einen Teil des Geräusches in der Durchschnittslinie entfernen, um sie glatter zu machen. Dann berechnet man die Schnittwinkel der beiden Durchschnittslinien, die den Trendwechsel der Preise widerspiegeln.
Die Strategie wählt 30 Minuten als Berechnungsphase, real summed alle positiven und negativen Schnittwinkel in dieser Periode. Wenn der Schnittwinkel und mehr als 360 Grad ist, ist der Trend sehr stark und gibt mehrere Signale ab. Umgekehrt, wenn der Schnittwinkel und weniger als 360 Grad ist, ist der Trend umgekehrt und gibt ein Abbruchsignal ab.
Die wichtigsten Vorteile der 360°-Strategie sind:
Die 360°-Strategie mit zwei Gleichgewichtslinien birgt einige Risiken:
Um diese Risiken zu verringern, kann der Durchschnittszyklus verkürzt, die Parameterkombination optimiert und die Stop-Loss-Mechanismen erhöht werden.
Die 360°-Strategie bietet noch weitere Optimierungsmöglichkeiten:
Die Doppel-Gleichlinien-Strategie 360 ° integrierte Anwendung der Gleichlinien-Filterung und Schnittlinie Quantifizierung Trends zu beurteilen, um eine relativ robuste quantitative Handelsstrategie zu erreichen. Im Vergleich zu einem einzigen technischen Indikator, die Strategie bildet eine umfassendere Abwägung, hat eine starke Praxis. Aber immer noch auf die Parameter Anpassung und Risikokontrolle zu achten, kann in Zukunft weiter optimiert werden, so dass die Strategie Wirkung besser.
/*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="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角