
Chiến lược theo dõi xu hướng đường trung bình di chuyển sử dụng sự kết hợp của đường trung bình di chuyển đơn giản và đường trung bình di chuyển nhanh để đánh giá xu hướng thị trường, sau đó tạo ra tín hiệu giao dịch. Khi giá vượt qua đường trung bình di chuyển đơn giản và đường trung bình di chuyển nhanh, hãy làm nhiều, và khi giá vượt qua đường trung bình di chuyển đơn giản và đường trung bình di chuyển nhanh, hãy làm không.
Chiến lược này sử dụng hàm sma để tính toán một trung bình di chuyển đơn giản với độ dài 50 chu kỳ sma, và tính toán trung bình di chuyển nhanh fsma. Fsma được tính trên cơ sở sma cộng với n chu kỳ chênh lệch chuẩn của giá gấp 6 lần.
Chiến lược sử dụng hai biến boolean long và short để ghi lại tình trạng mua và bán. Khi giá vượt qua sma và fsma, long được đặt là 1, mua nhiều; khi giá vượt qua, long được đặt là -1, bán bằng. Các biến short cũng sử dụng logic tương tự để xử lý tình trạng bán.
Chiến lược sử dụng biến xu hướng để ghi lại các phán đoán xu hướng. Khi giá cao hơn fsma và sma, xu hướng là 1, biểu thị xu hướng tăng; Khi giá thấp hơn fsma và sma, xu hướng là -1, biểu thị xu hướng giảm.
Xác định theo thời gian thực của xu hướng, tạo ra tín hiệu giao dịch dài và ngắn. Khi xu hướng chuyển từ giảm sang tăng, nếu giá cao hơn fsma, hãy làm nhiều; Khi xu hướng chuyển từ tăng sang giảm, nếu giá thấp hơn sma, hãy làm trống.
Chiến lược tổng hợp xem xét các phương pháp đánh giá xu hướng và phá vỡ giao dịch, có thể nắm bắt hiệu quả các cơ hội giao dịch do biến đổi xu hướng mang lại.
Sử dụng mô hình xác nhận kép, phát hiện hai đường trung bình di chuyển cùng một lúc, có thể lọc hiệu quả các đột phá giả.
Kết hợp với sự phân tích xu hướng và giao dịch đột phá, bạn có thể nắm bắt cơ hội tại các điểm chuyển hướng.
Thử nghiệm và tối ưu hóa không lùi lại, tất cả các tín hiệu giao dịch được tạo ra trong thời gian thực, không có sự phù hợp với đường cong.
Lập luận của chiến lược đơn giản, rõ ràng, dễ hiểu và sửa đổi.
Các tham số cấu hình hình ảnh, chu kỳ độ dài, số nhân, v.v. có thể được điều chỉnh theo thị trường.
Chiến lược hai dòng đồng đều dễ gây ra giao dịch thường xuyên và đảo ngược tổn thất.
Đường trung bình di chuyển có thể bị ảnh hưởng bởi sự chậm trễ của nó và không thay đổi xu hướng.
Không có cơ chế ngăn chặn tổn thất, không thể kiểm soát tổn thất đơn lẻ.
Các tham số không phù hợp có thể dẫn đến giao dịch quá thường xuyên hoặc quá chậm.
Đối với rủi ro 1 và 2, có thể kéo dài chu kỳ đường trung bình một cách thích hợp và thêm lệnh dừng rút.
Đối với rủi ro 3, bạn có thể đặt phần trăm dừng hoặc dừng đơn.
Đối với rủi ro 4, nên điều chỉnh tham số cho các thị trường khác nhau, tránh tham số cố định duy nhất.
Thêm điều kiện lọc xu hướng, sử dụng các chỉ số xác nhận xu hướng như MACD, DMI.
Sử dụng các chỉ số như KD, RSI để tham gia cùng với tình trạng quá mua quá bán.
Tăng cơ chế dừng tổng thể, chẳng hạn như theo dõi dừng, dừng phần trăm, v.v.
Thêm mô-đun quản lý vị thế, chẳng hạn như động điều chỉnh kích thước vị trí.
Tối ưu hóa các thiết lập tham số để thích ứng hiệu quả hơn với các chu kỳ khác nhau.
Thêm mô-đun học máy để sử dụng công nghệ AI để tự động tối ưu hóa tham số.
Xây dựng chiến lược tổng hợp, sử dụng các chỉ số khác để phòng chống đột phá.
Sử dụng kỹ thuật học sâu để nhận diện các mô hình xu hướng phức tạp hơn.
Chiến lược theo dõi xu hướng đường trung bình di chuyển nói chung là một chiến lược theo dõi xu hướng đơn giản hơn. Nó sử dụng sự kết hợp của đường trung bình chậm và nhanh để giúp xác định hướng xu hướng, thay đổi xu hướng tại điểm biến đổi xu hướng, có thể nắm bắt hiệu quả sự chuyển đổi của xu hướng giá. Tuy nhiên, chiến lược này cũng có một số vấn đề, chẳng hạn như giao dịch thường xuyên, rủi ro bị tụt hậu.
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SMA STRATEGY", shorttitle="SMA TREND", overlay=true, calc_on_order_fills=true)
length = input(title="Length", type=input.integer, defval=50)
src_=input(close, title="Source", type=input.source)
mult=input(6.0, title="Mult")
barc=input(true, title="Use barcolor?")
plots=input(false, title="Show plots?")
tri=input(false, title="Use triangles?")
r(src, n)=>
s = 0.0
for i = 0 to n-1
s := s + ((n-(i*2+1))/2)*src[i]
x=s/(n*(n+1))
x
l=sma(low, length)
h=sma(high, length)
lr= l+mult*r(low, length)
hr= h+mult*r(high, length)
trend=0
trend:=src_ > lr and src_ > hr ? 1 : src_ < lr and src_ < hr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and src_>h)
strategy.entry("Short", strategy.short, when=trend==-1 and src_<l)
long=0
short=0
long:= trend==1 and src_>h ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and src_<l ? 1 : trend==1 ? -1 : short[1]
barcolor(barc? (long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue) : na)
plotshape(tri? close : na, style= shape.diamond, color= long>0? color.green : short>0? color.red : trend>0? color.orange: trend<0 ? color.white : color.blue, location=location.top)
//shortenter=
a1=plot(plots? l : na, color=color.blue, linewidth=1)
//longenter=
a2=plot(plots? h : na, color=color.blue, linewidth=1)
fill(a1, a2, color=color.blue)
//stopshort=
b1=plot(plots? hr : na, color=color.navy, linewidth=1)
//stoplong=
b2=plot(plots? lr : na, color=color.navy, linewidth=1)
fill(b1, b2, color=color.navy)