Chiến lược mũi tên chéo trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2023-11-21 17:00:49
Tags:

img

Tổng quan

Chiến lược này xác định tín hiệu mua và bán bằng cách tính toán sự chéo chéo giữa hai đường trung bình động của chỉ số MACD. Nó vẽ các mũi tên trên biểu đồ để chỉ ra tín hiệu giao dịch.

Nguyên tắc

Chiến lược đầu tiên tính toán đường nhanh (12-period EMA), đường chậm (26-period EMA) và chênh lệch MACD. Sau đó, nó xác định tín hiệu dài và ngắn dựa trên sự chéo chéo của đường nhanh và chậm, cũng như giá trị dương / âm của chênh lệch MACD:

  1. Khi đường nhanh vượt qua đường chậm (cross vàng) và chênh lệch MACD vượt trên 0, đó là tín hiệu mua
  2. Khi đường nhanh vượt qua dưới đường chậm (chữ thập chết) và sự khác biệt MACD vượt qua dưới 0, đó là một tín hiệu bán

Để lọc các tín hiệu sai, mã cũng kiểm tra tín hiệu của ngọn nến trước đó.

Ngoài ra, hình mũi tên được vẽ trên biểu đồ để chỉ ra tín hiệu mua và bán.

Ưu điểm

Những lợi thế của chiến lược này bao gồm:

  1. Sử dụng đường chéo trung bình động kép giúp xác định xu hướng và lọc tiếng ồn thị trường
  2. Kết hợp sự khác biệt MACD tránh các giao dịch bị thiếu và tín hiệu sai
  3. Mũi tên cho thấy rõ lối vào và lối ra
  4. Các quy tắc đơn giản và dễ hiểu tạo điều kiện cho việc sao chép

Rủi ro và giải pháp

Một số rủi ro của chiến lược này:

  1. Crossover có thể tạo ra tín hiệu sai và gây ra giao dịch quá mức. Các thông số có thể được điều chỉnh hoặc thêm các bộ lọc để giảm tín hiệu sai.
  2. Không thể phân biệt phạm vi trong một xu hướng, có khả năng dẫn đến tổn thất.
  3. Các quy tắc cố định không thể thích nghi với thị trường thay đổi.

Cơ hội gia tăng

Một số cách để cải thiện chiến lược:

  1. Kiểm tra các kết hợp tham số khác nhau để tìm các cài đặt tối ưu cho đường nhanh, đường chậm và MACD
  2. Thêm các điều kiện nhập thêm như đột phá âm lượng vào các tín hiệu lọc
  3. Bao gồm dừng lỗ để kiểm soát lỗ giao dịch duy nhất
  4. Sử dụng các chỉ số biến động như VIX để đánh giá sự khao khát rủi ro
  5. Hãy thử các mô hình học máy thay vì các quy tắc cố định để tạo tối ưu hóa thích nghi

Tóm lại

Chiến lược mũi tên chéo trung bình di chuyển kép khá đơn giản và thực tế. Bằng cách sử dụng chéo của hai đường trung bình di chuyển và lọc khác biệt MACD, nó xác định các bước vào và ra trong xu hướng trung hạn và dài hạn, tránh mất đảo ngược giá. Các tín hiệu mũi tên cũng cung cấp hướng dẫn hoạt động rõ ràng. Sự cải thiện hơn nữa về sự ổn định và lợi nhuận có thể đạt được thông qua điều chỉnh tham số, bộ lọc bổ sung và tối ưu hóa thích nghi.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Daniels stolen code
strategy(shorttitle="Daniels Stolen Code", title="Daniels Stolen Code", overlay=true, calc_on_order_fills=true, pyramiding=0)

//Define MACD Variables
fast = 12, slow = 26
fastMACD = ema(hlc3, fast)
slowMACD = ema(hlc3, slow)
macd = fastMACD - slowMACD
signal = sma(macd, 9)
hist = macd - signal
currMacd = hist[0]
prevMacd = hist[1]
currPrice = hl2[0]
prevPrice = hl2[1]

buy = currPrice > prevPrice and currMacd > prevMacd
sell = currPrice < prevPrice and currMacd < prevMacd
neutral = (currPrice < prevPrice and currMacd > prevMacd) or (currPrice > prevPrice and currMacd < prevMacd)
//Plot Arrows

timetobuy = buy==1 and (sell[1]==1 or (neutral[1]==1 and sell[2]==1) or (neutral[1]==1 and neutral[2]==1 and sell[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and sell[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and sell[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and sell[6]==1))
timetosell = sell==1 and (buy[1]==1 or (neutral[1]==1 and buy[2]==1) or (neutral[1]==1 and neutral[2]==1 and buy[3]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and buy[4]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and buy[5]==1) or (neutral[1]==1 and neutral[2]==1 and neutral[3]==1 and neutral[4]==1 and neutral[5]==1 and buy[6]==1))

plotshape(timetobuy, color=blue, location=location.belowbar, style=shape.arrowup)
plotshape(timetosell, color=red, location=location.abovebar, style=shape.arrowdown)
//plotshape(neutral, color=black, location=location.belowbar, style=shape.circle)


//Test Strategy
// strategy.entry("long", true, 1, when = timetobuy and time > timestamp(2017, 01, 01, 01, 01)) // buy by market if current open great then previous high
// strategy.close("long", when = timetosell and time > timestamp(2017, 01, 01, 01, 01))

strategy.order("buy", true, 1, when=timetobuy==1 and time > timestamp(2019, 01, 01, 01, 01))
strategy.order("sell", false, 1, when=timetosell==1 and time > timestamp(2019, 01, 01, 01, 01))



// strategy.entry(id = "Short", long = false, when = enterShort())
// strategy.close(id = "Short", when = exitShort())

//strategy.entry("long", true, 1, when = open > high[1]) // enter long by market if current open great then previous high
// strategy.exit("exit", "long", profit = 10, loss = 5) // ge

Thêm nữa