Chiến lược giao cắt đường trung bình động Multi-SMA


Ngày tạo: 2023-11-28 15:08:37 sửa đổi lần cuối: 2023-11-28 15:08:37
sao chép: 2 Số nhấp chuột: 717
1
tập trung vào
1621
Người theo dõi

Chiến lược giao cắt đường trung bình động Multi-SMA

Tổng quan

Chiến lược này được xây dựng bằng cách tính toán đường SMA trung bình trong nhiều khoảng thời gian và lấy giá trị trung bình để xây dựng chỉ số đường trung bình. Khi giá tăng, nó tạo ra tín hiệu mua khi nó phá vỡ đường trung bình và khi giá giảm, nó tạo ra tín hiệu bán khi nó phá vỡ đường trung bình.

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

  1. Tính trung bình SMA cho 5 chu kỳ khác nhau (8, 21, 50, 100, 200 ngày)
  2. Đặt trung bình 5 đường trung bình để có được chỉ số trung bình cuối cùng
  3. Một tín hiệu mua được tạo ra khi giá đóng cửa tăng vượt qua đường trung bình
  4. Một tín hiệu bán ra được tạo ra khi giá đóng cửa giảm vượt qua đường trung bình

Chiến lược này có khả năng làm mịn đường cong hiệu quả, loại bỏ các đột phá giả, thông qua các đường SMA trung bình trong nhiều khoảng thời gian.

Phân tích lợi thế

  1. Sử dụng đường trung bình trong nhiều khoảng thời gian có thể lọc hiệu quả tiếng ồn thị trường, nhận ra xu hướng
  2. Đơn giản hóa đường cong, tránh phát ra nhiều tín hiệu giả
  3. Chiến lược logic đơn giản, rõ ràng, dễ hiểu và thích hợp cho người mới học
  4. Có thể tùy chỉnh kết hợp chu kỳ đồng tuyến, tối ưu hóa hiệu quả chỉ số

Phân tích rủi ro

  1. Hệ thống đường trung bình bị tụt hậu, không thể theo dõi sự thay đổi giá trong thời gian.
  2. Khi phá vỡ không hiệu quả, điểm dừng xa hơn, rủi ro thua lỗ lớn
  3. Trong xu hướng chấn động, đường dừng bị kích hoạt thường xuyên

Những rủi ro này có thể được giảm bớt bằng cách rút ngắn một phần của chu kỳ trung bình một cách thích hợp, và thêm các chỉ số khác để xác nhận.

Hướng tối ưu hóa

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

Tóm tắt

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

Mã nguồn chiến lược
/*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)