Chiến lược giao cắt đường trung bình động và MACD


Ngày tạo: 2024-02-06 14:29:23 sửa đổi lần cuối: 2024-02-06 14:29:23
sao chép: 0 Số nhấp chuột: 747
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt đường trung bình động và MACD

Tổng quan

Chiến lược này quyết định vào và ra thị trường bằng cách tính toán sự giao thoa của đường nhanh EMA (3), đường chậm EMA (11) và đường chậm EMA (18) kết hợp với giao thoa trục 0 của MACD. Đây là một chiến lược động sử dụng chỉ số EMA và MACD để quyết định giao dịch.

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

Chiến lược này chủ yếu dựa trên hai chỉ số phân tích kỹ thuật:

  1. EMA đường trung bình chéo. Xác định xu hướng chéo của đường nhanh EMA (3), đường chậm EMA (11) và đường chậm EMA (18) và làm tín hiệu khởi đầu ra ngoài.

  2. Chỉ số MACD và đường chéo 0 của nó. MACD được tạo thành từ giá trị chênh lệch ((DIFF) và DEA. DIFF là đường nhanh EMA ((3) trừ đường chậm EMA ((11) tạo thành. DEA là EMA của MACD ((27)).

Theo sự kết hợp của EMA Cross và MACD Zero Axis Cross, đặt ba cơ hội vào và hai cơ hội ra:

  1. MACD ở trên 0 và giao thoa lên lần đầu tiên
  2. Giao thông nhanh EMA ((3) trên đường dây chậm EMA ((11) cho lần thứ hai làm nhiều cơ hội
  3. Đường nhanh EMA ((3) vượt qua đường chậm EMA ((18) tạo nhiều cơ hội cho lần thứ ba
  4. Dòng nhanh EMA ((3)) dưới đường chậm EMA ((11) để giải phóng cơ hội đầu tiên
  5. MACD nằm dưới 0 và chéo xuống để có cơ hội tháo lỗ lần thứ hai

Nhìn chung, chiến lược này kết hợp hệ thống giao chéo EMA kép và MACD để tăng lợi nhuận của chiến lược bằng cách điều chỉnh động các tham số đường trung bình và tham số MACD.

Lợi thế chiến lược

  1. Tận dụng tối đa các lợi thế của EMA và MACD, kết hợp hai chỉ số để tăng độ chính xác.

  2. Thiết lập ba cơ hội làm nhiều lần, hai cơ hội thanh toán, làm cho chiến lược giao dịch tăng tần suất, mở rộng không gian lợi nhuận.

  3. Không gian tối ưu hóa các tham số động là lớn. Dòng nhanh EMA, Dòng chậm EMA, EMA trục 0 và độ dài MACD đều có thể được điều chỉnh tối ưu.

  4. Các chiến lược logic rõ ràng và dễ hiểu, dễ dàng để khởi động và tối ưu hóa.

Rủi ro chiến lược

  1. Các chỉ số EMA và MACD đều tạo ra tỷ lệ báo cáo sai lệch nhất định, có thể dẫn đến tổn thất không cần thiết.

  2. Tỷ lệ giao dịch cao, mỗi lần dừng lỗ nhỏ, rủi ro thua lỗ tích lũy.

  3. Các tham số này rất khó tối ưu hóa, và nếu không được tối ưu hóa thì có thể quá phù hợp với dữ liệu lịch sử.

  4. Cần cân nhắc đầy đủ về tác động của chi phí giao dịch.

Đối với rủi ro:

  1. Thiết lập mức dừng lỗ hợp lý, giảm thiểu tổn thất đơn lẻ.

  2. Điều chỉnh các tham số một cách thích hợp để tránh quá phù hợp.

  3. Xem xét các tác động về chi phí, chẳng hạn như giảm tần suất giao dịch.

Hướng tối ưu hóa chiến lược

  1. Thay thế các thử nghiệm chỉ số khác: như băng Brin, KDJ, v.v.

  2. Tối ưu hóa các tham số của đường trung bình EMA: thay đổi các tham số chiều dài của đường nhanh EMA và đường chậm EMA.

  3. Tối ưu hóa tham số MACD: thay đổi độ dài DIFF và DEA của MACD để tính toán EMA.

  4. Tăng chiến lược dừng lỗ: như dừng số lần giao dịch, thời gian dừng, dừng di chuyển, v.v.

  5. Xem xét tác động của chi phí giao dịch, điều chỉnh số lần tham gia.

Tóm tắt

Chiến lược này xây dựng một chiến lược tham số động có khả năng kiếm lợi nhuận cao thông qua sự kết hợp của hệ thống chéo EMA kép và chỉ số MACD. Đồng thời, logic của chiến lược đơn giản, rõ ràng, dễ hiểu và điều chỉnh tối ưu. Tuy nhiên, cũng có một số rủi ro báo cáo sai và khó tối ưu hóa tham số, cần phải được giải quyết bằng các phương pháp như dừng lỗ hợp lý, phòng chống phù hợp quá mức.

Mã nguồn chiến lược
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)