
Chiến lược 360° là một chiến lược giao dịch định lượng kết hợp hai đường trung bình và định mức xu hướng yếu. Chiến lược này đánh giá xu hướng giá bằng cách tính toán đường trung bình trong các chu kỳ khác nhau; đồng thời kết hợp với góc cắt tích lũy định mức xu hướng yếu, để thực hiện lựa chọn thời gian mua và bán chính xác hơn.
Lập luận cốt lõi của chiến lược 360° là:
Cụ thể, chiến lược xác định đường trung bình nguyên thủy 1 phút và đường trung bình sau khi đi qua chu kỳ Karmann. Chu kỳ Karmann có thể loại bỏ một phần tiếng ồn trong đường trung bình, làm cho nó mịn hơn. Sau đó tính góc cắt của hai đường trung bình, góc này phản ánh sự thay đổi xu hướng của giá. Ví dụ, khi góc cắt là chính xác, giá đang tăng; ngược lại, nó là giảm.
Chiến lược chọn 30 phút làm chu kỳ tính toán, real summed tất cả các góc cắt dương-lạc trong chu kỳ đó. Khi góc cắt và trên 360 độ, biểu thị xu hướng rất mạnh, phát ra nhiều tín hiệu; ngược lại khi góc cắt và nhỏ hơn -360 độ, biểu thị xu hướng đảo ngược, phát ra tín hiệu trống.
Những lợi thế chính của chiến lược 360° là:
Tuy nhiên, chiến lược 360° có một số rủi ro:
Để giảm nguy cơ trên, bạn có thể rút ngắn chu kỳ trung bình, tối ưu hóa các tham số, tăng cơ chế dừng lỗ, v.v.
Chiến lược 360° có thể được tối ưu hóa hơn nữa:
Chiến lược hai đường đồng nhất 360 ° sử dụng tổng hợp các xu hướng phán đoán định lượng và lọc đồng nhất và góc cắt, thực hiện chiến lược giao dịch định lượng mạnh mẽ hơn. So với chỉ số kỹ thuật đơn lẻ, chiến lược này tạo ra các cân nhắc toàn diện hơn, có tính thực tiễn mạnh mẽ hơn. Tuy nhiên, vẫn cần chú ý đến điều chỉnh tham số và kiểm soát rủi ro, có thể tiếp tục tối ưu hóa trong tương lai, làm cho chiến lược hiệu quả tốt hơn.
/*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="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角