Chiến lược chéo trung bình động đa SMA

Tác giả:ChaoZhang, Ngày: 2023-11-28 15:08:37
Tags:

img

Tổng quan

Chiến lược này tính toán đường trung bình di chuyển SMA của nhiều khung thời gian và lấy giá trị trung bình để xây dựng chỉ số đường trung bình di chuyển. Nó tạo ra tín hiệu mua khi giá tăng trên đường trung bình di chuyển và tín hiệu bán khi giá giảm dưới đường trung bình di chuyển. Đây là một chiến lược chéo trung bình di chuyển điển hình.

Nguyên tắc chiến lược

  1. Tính toán 5 SMA trung bình động của các khoảng thời gian khác nhau (8 ngày, 21 ngày, 50 ngày, 100 ngày, 200 ngày)
  2. Lấy trung bình của 5 trung bình động để có được chỉ số trung bình động cuối cùng
  3. Tạo tín hiệu mua khi giá đóng tăng trên mức trung bình động
  4. Tạo tín hiệu bán khi giá đóng cửa giảm dưới đường trung bình động

Bằng cách tính trung bình SMA của nhiều khung thời gian, chiến lược này có thể làm mịn đường cong và lọc ra các đột phá sai.

Phân tích lợi thế

  1. Sử dụng các đường trung bình động nhiều khung thời gian có thể lọc hiệu quả tiếng ồn thị trường và xác định xu hướng
  2. Đường cong mượt mà, tránh tạo ra quá nhiều tín hiệu sai
  3. Chiến lược logic là đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học
  4. Kết hợp thời gian trung bình động có thể tùy chỉnh để tối ưu hóa hiệu ứng chỉ số

Phân tích rủi ro

  1. Hệ thống trung bình động bị tụt lại trong tổng thể và không thể theo kịp với sự thay đổi giá trong thời gian
  2. Khi thất bại đột phá xảy ra, điểm dừng mất mát là xa, với nguy cơ mất mát lớn hơn
  3. Các đường dừng lỗ thường được kích hoạt trong xu hướng dao động

Những rủi ro này có thể được giảm bằng cách rút ngắn một số khoảng thời gian trung bình động một cách thích hợp và thêm các chỉ số khác để xác nhận.

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

  1. Tối ưu hóa sự kết hợp của các khoảng thời gian trung bình động để tìm các thông số tốt nhất
  2. Thêm các chỉ số như khối lượng giao dịch để xác nhận tín hiệu đột phá
  3. Bao gồm các chỉ số xu hướng để tránh tín hiệu sai trong thị trường dao động
  4. Phát triển các chương trình tối ưu hóa tham số tự động để tìm động các tham số tối ưu

Tóm lại

Ý tưởng tổng thể của chiến lược này là rõ ràng. Bằng cách tích hợp các đường trung bình động của nhiều khung thời gian, nó có thể xác định hiệu quả xu hướng và là một chiến lược ổn định và thực tế. Tuy nhiên, chúng ta cũng cần chú ý đến sự chậm trễ và rủi ro tín hiệu sai. Thông qua việc tối ưu hóa thêm các thiết lập tham số, thêm các chỉ số xác nhận, v.v., chúng ta có thể liên tục cải thiện chiến lược này để biến nó thành một công cụ giao dịch định lượng mạnh mẽ.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)


sma1 = sma(close,input(title="SMA 1", defval=8))

sma2 = sma(close,input(title="SMA 2", defval=21))

sma3 = sma(close,input(title="SMA 3", defval=50))

sma4 = sma(close,input(title="SMA 4", defval=100))

sma5 = sma(close,input(title="SMA 5", defval=200))


mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5

//color mediaSMA

MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)

MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)

colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )

plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)


//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")


// Strategy

//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1] 
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
 
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)

//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1] 
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]

strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)



Thêm nữa