EMA & MACD Chiến lược định lượng với chạy song đường và dẫn đầu chỉ số thị trường

Tác giả:ChaoZhang, Ngày: 2023-12-12 12:13:25
Tags:

img

Tổng quan

Chiến lược này chủ yếu sử dụng đường EMA và chỉ số MACD để xác định những thay đổi trong mô hình thị trường và thực hiện các chiến lược giao dịch động lực. Ý tưởng cốt lõi là đi dài khi đường EMA ngắn hạn vượt qua đường EMA dài hạn và MACD đồng thời vượt qua trên 0, và đi ngắn khi đường EMA ngắn hạn vượt qua dưới đường EMA dài hạn và đường MACD đồng thời vượt qua dưới 0.

Nguyên tắc

Chiến lược này tích hợp chỉ số đường trung bình động và chỉ số MACD.

Đầu tiên, nó sử dụng hai chỉ số EMA với độ dài chu kỳ khác nhau, một là đường EMA 25 chu kỳ và đường EMA 50 chu kỳ. Đường EMA 25 chu kỳ có thể phản ánh xu hướng ngắn hạn trong khi đường EMA 50 chu kỳ phản ánh xu hướng trung và dài hạn. Khi đường EMA ngắn hạn vượt qua trên đường EMA dài hạn từ dưới, nó cho thấy thị trường đang quay từ giảm lên, đó là một tín hiệu chéo vàng để đi dài. Khi đường EMA ngắn hạn vượt qua dưới đường EMA dài hạn từ trên, nó cho thấy thị trường đang quay từ tăng xuống, đó là một tín hiệu chéo chết cho việc đi ngắn.

Đồng thời, chiến lược này cũng kết hợp các tín hiệu chỉ số MACD. Chỉ số MACD bao gồm một đường DIF và đường DEA, đại diện cho sự khác biệt giữa đường trung bình chuyển động cấp số ngắn hạn và dài hạn, được tính bằng EMA kép. Chiến lược này đặt DIF là sự khác biệt giữa đường EMA 12 ngày và đường EMA 26 ngày. DEA là đường trung bình chuyển động cấp số 9 ngày của DIF. DIF đại diện cho động lực trong khi đường DEA đại diện cho đường trung bình MACD. Khi DIF vượt qua đường DEA từ dưới, nó tạo ra tín hiệu mua. Khi DIF vượt qua dưới DEA từ trên, nó tạo ra tín hiệu bán.

Kết hợp hai chỉ số này, tín hiệu đầu vào dài được tạo ra khi EMA 25 ngày có đường chéo vàng của đường EMA 50 ngày, trong khi đường DIF của MACD vượt qua trên đường DEA.

Phân tích lợi thế

Đây là một chiến lược hai theo dõi rất điển hình được tích hợp với chỉ số MACD để tạo ra các tín hiệu giao dịch đáng tin cậy hơn với những lợi thế sau:

  1. Sử dụng đường EMA kép có thể tránh các whipsaws và breakout sai để tạo ra các tín hiệu giao dịch đáng tin cậy hơn.

  2. Việc tích hợp chỉ số MACD có thể xác minh thêm các tín hiệu giao dịch và tránh nguy cơ tín hiệu EMA hai đường dẫn sai, cải thiện hiệu quả thực tế của chiến lược.

  3. Sử dụng đường 25 ngày và đường 50 ngày như đường nhanh và đường chậm, việc lựa chọn tham số chính xác hơn có thể nắm bắt những thay đổi xu hướng đáng kể trong chu kỳ trung hạn và ngắn hạn.

  4. Bằng cách theo đuổi động lực và suy nghĩ đảo ngược trung bình, chiến lược này có thể vượt qua chỉ số tiêu chuẩn và đạt được lợi nhuận đáng kể trong các xu hướng tăng và giảm mạnh trên thị trường rộng lớn hơn.

  5. Logic chiến lược đơn giản và thẳng thắn, dễ hiểu và thực hiện, phù hợp với những người mới bắt đầu định lượng.

  6. Các thông số có thể được tối ưu hóa cẩn thận để thích nghi tốt hơn chiến lược trên các sản phẩm và môi trường thị trường khác nhau.

Phân tích rủi ro

Vẫn có một số rủi ro đáng chú ý cho chiến lược này:

  1. Khả năng tín hiệu EMA sai vẫn còn, whipsaw vẫn có thể xảy ra trong các biến động thị trường dữ dội.

  2. Các thông số MACD cần tối ưu hóa và điều chỉnh liên tục, nếu không có thể xảy ra tín hiệu không chính xác hoặc chậm tín hiệu.

  3. Cần phải thận trọng về việc cài đặt điểm dừng lỗ là hợp lý để tránh đột phá không hiệu quả gây ra tổn thất lớn hơn.

  4. Cần chú ý đến những thay đổi trong môi trường thị trường và chính sách để tránh rủi ro hệ thống gây ra tổn thất lớn hơn.

  5. Cần phải kiểm soát kích thước vị trí và mức độ đòn bẩy để ngăn ngừa rủi ro thanh toán cưỡng bức từ xu hướng một chiều.

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

Chiến lược này cũng có thể được tối ưu hóa trong các khía cạnh sau:

  1. Kiểm tra các kết hợp tham số chính xác hơn với hiệu quả thực tế cao hơn, chẳng hạn như sử dụng các đường EMA 20 ngày và 60 ngày như các đường giao dịch, với DIF là sự khác biệt giữa EMA 10 ngày và EMA 20 ngày.

  2. Tăng xác nhận từ các chỉ số khối lượng giao dịch để tránh các vụ phá vỡ sai với khối lượng thấp.

  3. Bao gồm các chỉ số biến động như ATR để xác định các phương pháp dừng lỗ khoa học hơn.

  4. Sử dụng thuật toán học máy để tự động tối ưu hóa các tham số để thích nghi năng động với môi trường thị trường thay đổi.

  5. Thêm mô-đun điều khiển kích thước vị trí để điều chỉnh kích thước năng động dựa trên hiệu suất chiến lược và số liệu.

  6. Có thể vẽ các tín hiệu chiến lược trên các biểu đồ khung thời gian cao hơn để hỗ trợ các quyết định về các giao dịch định hướng dài hạn.

Tóm lại

Chiến lược này tích hợp các điểm mạnh của các chỉ số đường trung bình động và chỉ số MACD bằng cách đánh giá các mô hình nến chất lượng cao hơn thông qua các đường EMA kép kết hợp với sự khớp DIF và DEA theo hướng động lực MACD, tạo thành một chiến lược giao dịch động lực ổn định và hiệu quả.


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

//@version=4
strategy(title="EMA+MACD", shorttitle="EMA+MACD", overlay=true)
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)


signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
len1 = input(title="Len Ema 1 ",type=input.integer,defval=25)
len2 = input(title="Len Ema 2 ",type=input.integer,defval=50)
ema1 = ema(src,len1)
ema2 = ema(src,len2)

bull = crossover(ema1,ema2) and macd > 0
bear = crossover(ema2,ema1) and macd < 0
l1 = bull ? label.new(x=bar_index,y=low,yloc=yloc.belowbar,text="BUY",color=color.green,textcolor=color.white,style=label.style_triangleup) : na
l2 = bear ? label.new(x=bar_index,y=high,yloc=yloc.abovebar,text="SELL",color=color.red,textcolor=color.white,style=label.style_triangledown) : na


strategy.entry("LONG",strategy.long,when=bull)
strategy.entry("SHORT",strategy.short,when=bear)




Thêm nữa