Chiến lược trung bình di chuyển kép 360 °

Tác giả:ChaoZhang, Ngày: 2024-02-02 14:29:59
Tags:

img

Tổng quan

Chiến lược trung bình di chuyển kép 360 ° là một chiến lược giao dịch định lượng kết hợp hai trung bình di chuyển và xác định sức mạnh xu hướng. Bằng cách tính toán trung bình di chuyển trong các giai đoạn khác nhau, nó xác định xu hướng giá; trong khi đó, bằng cách tích lũy các góc chạm, nó đánh giá sức mạnh của xu hướng và đạt được các bước vào và ra chính xác hơn.

Chiến lược logic

Logic cốt lõi của Chiến lược trung bình chuyển động kép 360 ° là:

  1. Tính toán các đường trung bình động 1 phút và lọc Kalman;
  2. Tính toán góc chạm dựa trên sự khác biệt giá giữa hai đường trung bình động;
  3. tích lũy các góc chạm để xác định tín hiệu sức mạnh xu hướng;
  4. Phát hành tín hiệu giao dịch dựa trên việc các góc chạm tích lũy vượt quá ngưỡng đã được đặt trước.

Đặc biệt, chiến lược xác định trung bình động 1 phút thô và trung bình động được lọc Kalman. Bộ lọc Kalman loại bỏ một số tiếng ồn từ trung bình động để làm cho nó mịn hơn. góc chạm giữa hai đường trung bình động phản ánh sự thay đổi xu hướng giá. Ví dụ, khi góc chạm dương, nó chỉ ra xu hướng tăng; ngược lại, góc âm đại diện cho xu hướng giảm.

Chiến lược chọn 30 phút làm khoảng thời gian tính toán để tổng hợp tất cả các góc chạm dương và âm trong khoảng thời gian đó. Khi tổng vượt quá 360 độ, nó báo hiệu một xu hướng cực kỳ mạnh và phát ra tín hiệu dài; ngược lại, khi tổng dưới -360 độ, nó chỉ ra sự đảo ngược xu hướng và phát ra tín hiệu ngắn.

Phân tích lợi thế

Những lợi thế chính của chiến lược trung bình di chuyển kép 360 ° là:

  1. Mức trung bình động lọc tiếng ồn thị trường ngắn hạn để đưa ra các quyết định giao dịch đáng tin cậy hơn;
  2. Các góc tiếp xúc định lượng sức mạnh xu hướng, tránh chủ quan của việc đánh giá chỉ bằng các mô hình trung bình động;
  3. Tổng hợp nhiều góc chạm có tác dụng giảm tiếng ồn tốt hơn, dẫn đến tín hiệu giao dịch đáng tin cậy hơn;
  4. So với các chiến lược trung bình động duy nhất, các trung bình động kép kết hợp với các xác định sức mạnh xu hướng làm cho chiến lược toàn diện và mạnh mẽ hơn.

Phân tích rủi ro

Chiến lược trung bình di chuyển kép 360 ° cũng mang một số rủi ro:

  1. Các đường trung bình động chậm thay đổi giá và có thể bỏ lỡ các điểm chuyển hướng ngắn hạn;
  2. Chỉ dựa vào tín hiệu sức mạnh xu hướng tích lũy có thể bị gián đoạn bởi sự biến động của thị trường;
  3. Các thiết lập tham số không chính xác (chẳng hạn như thời gian tính toán) có thể dẫn đến việc bỏ lỡ giao dịch hoặc tạo ra các tín hiệu không chính xác.

Để giảm thiểu các rủi ro trên, các biện pháp như rút ngắn thời gian trung bình động, tối ưu hóa sự kết hợp các tham số, thêm cơ chế dừng lỗ có thể được áp dụng.

Hướng dẫn tối ưu hóa

Chiến lược trung bình di chuyển kép 360 ° có thể được tối ưu hóa thêm bằng cách:

  1. Bao gồm các đường trung bình động thích nghi điều chỉnh các thông số dựa trên sự biến động của thị trường;
  2. Đề cập đến nhiều giai đoạn trung bình động để tạo ra các kết hợp tham số tối ưu;
  3. Thêm các mô-đun xác định xu hướng năng động dựa trên biến động, khối lượng giao dịch, v.v.;
  4. Giúp điều chỉnh tham số hoặc quyết định giao dịch với các mô hình học máy.

Tóm lại

Chiến lược trung bình di chuyển kép 360 ° sử dụng lọc trung bình di chuyển và đánh giá xu hướng góc chạm định lượng để đạt được một chiến lược giao dịch định lượng tương đối mạnh mẽ. So với các chỉ số kỹ thuật duy nhất, chiến lược này tạo thành một cân nhắc toàn diện hơn và có tính thực tế mạnh mẽ 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="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角


Thêm nữa