Chiến lược giao dịch chênh lệch đường trung bình động kép


Ngày tạo: 2023-10-17 13:54:05 sửa đổi lần cuối: 2023-10-17 13:54:05
sao chép: 0 Số nhấp chuột: 706
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch chênh lệch đường trung bình động kép

Tổng quan

Chiến lược này tạo ra tín hiệu giao dịch dựa trên chênh lệch trung bình di chuyển của hai đường trung bình. Nó tính hai đường trung bình có chu kỳ nhanh và chu kỳ chậm, tạo ra tín hiệu mua khi đường nhanh phá vỡ đường chậm từ phía dưới; tạo ra tín hiệu bán khi đường nhanh giảm xuống từ phía trên.

Phân tích

Lý luận cốt lõi của chiến lược này là tính hai đường trung bình di chuyển SMA (len1) và SMA (len2) và sự khác biệt của chúng. Trong đó len1 đại diện cho chu kỳ đường trung bình ngắn hạn và len2 đại diện cho chu kỳ đường trung bình dài hạn.

Khi đường trung bình ngắn hạn xuyên qua đường trung bình dài hạn từ phía dưới, cho thấy giá ngắn hạn bắt đầu tăng cao hơn xu hướng dài hạn, bạn có thể mua; khi đường trung bình dài hạn xuyên qua đường trung bình ngắn hạn từ phía trên, cho thấy giá ngắn hạn bắt đầu giảm xuống dưới xu hướng dài hạn, bạn có thể bán.

Để lọc các thao tác sai, chiến lược cũng giới thiệu out3 như là một đường tín hiệu giao dịch. Out3 là kết quả của xử lý trơn tru SMA của chênh lệch giữa đường trung bình ngắn hạn và giá trị trung bình.

Cụ thể, biến long có giá trị tích cực khi out3 đi lên qua dif, làm tín hiệu mua; biến short có giá trị âm khi out3 đi xuống qua dif, làm tín hiệu bán.

Phân tích lợi thế

Đây là một chiến lược theo dõi xu hướng rất đơn giản và trực quan. Nó sử dụng các chu kỳ đường hai chiều khác nhau để tạo ra các đường chéo khác nhau để nắm bắt các điểm chuyển hướng xu hướng, có thể đáng tin cậy hơn so với hệ thống đường đơn.

Khác với các phương pháp như dừng di chuyển, nó sử dụng khái niệm theo dõi xu hướng, có thể tối đa hóa lợi nhuận, không bị dừng khi xu hướng dài hơn. Đồng thời, nó cũng có thể kiểm soát tổn thất, thanh toán cổ phiếu kịp thời khi xu hướng đảo ngược.

Chiến lược này có ít tham số, dễ nắm bắt và điều chỉnh, phù hợp với chiến lược bắt đầu cho người mới bắt đầu học giao dịch thuật toán.

Rủi ro và cải tiến

Rủi ro lớn nhất của chiến lược này là tham số chu kỳ của đường hai trung bình không đúng và gây ra lỗi tín hiệu giao dịch. Nếu chu kỳ đường trung bình ngắn hạn len1 quá dài, sẽ bỏ lỡ cơ hội bắt đầu giai đoạn xu hướng; Nếu quá ngắn, sẽ làm tăng khả năng tín hiệu giả. Nếu đường trung bình dài len2 quá dài, sẽ trì hoãn điều chỉnh vị trí; Nếu quá ngắn, nó dễ bị nhiễu bởi các biến động thị trường.

Có thể đạt được sự kết hợp tốt nhất bằng cách điều chỉnh các tham số của len1 và len2, hoặc có thể thử giới thiệu chu kỳ điều chỉnh động để thích ứng với đường cân bằng. Ngoài ra, có thể giảm tín hiệu giả bằng cách tối ưu hóa các tham số bộ lọc.

Chiến lược theo dõi xu hướng cũng cần chú ý đến việc kiểm soát kích thước tổn thất đơn lẻ, có thể thiết lập điểm dừng lỗ hoặc giới thiệu quản lý vị trí để tối ưu hóa.

Tóm tắt

Chiến lược chênh lệch hai đường trung bình là một đại diện chiến lược theo dõi xu hướng rất điển hình. Hệ thống chéo hai đường trung bình đơn giản của nó mang lại nguồn tín hiệu ổn định, kết hợp với bộ lọc có thể tránh được sự nhiễu loạn của thị trường một cách hiệu quả. Hiệu suất chiến lược tốt hơn có thể được đạt được bằng cách tối ưu hóa tham số chu kỳ đường trung bình.

Mã nguồn chiến lược
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//by afrazium
//@version=3
strategy(title="SMA Diff strat", shorttitle="SMAD STR", overlay=false, initial_capital=1, precision=8, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills= false, calc_on_every_tick=false, pyramiding=0)
len1 = input(50, minval=1, title="Length1"), len2 = input(100, minval=1, title="Length2"), smo = input(1, minval=1, title="Smoothing")
src = input(ohlc4, title="Source")

mid = src
expr1 = sma(src, len1), expr2 = sma(src, len2)
dif = (expr1 - expr2), out1 = (mid - expr1), out2 = (mid - expr2), out3 = sma(out1, smo)

long = crossover(out3, dif) ? out3 : na, short = crossunder(out3, dif) ? out3 : na

plot(out3, color=black, linewidth=2), hline(0)
clr = out2 >= out1 ? lime : red, plot(dif, color=clr, linewidth=2)
plot(long, title = 'Crossover', color = green, style = circles, linewidth=4), plot(short, title = 'Crossunder', color = red, style = circles, linewidth=4)

strategy.entry("buy", strategy.long, when=crossover(out1, dif))
strategy.close("buy", when=crossunder(out1, dif))

//plot(out2, color=blue, linewidth=2)
//A = plot(mid/10, color=red, linewidth=1, transp=100), B = plot(mid/20, color=red, linewidth=1, transp=100)
//C = plot(-mid/10, color=green, linewidth=1, transp=100), D = plot(-mid/20, color=green, linewidth=1, transp=100)
//fill(A, B, color=red), fill(C, D, color=green)