Chiến lược chéo EMA và MACD năng động

Tác giả:ChaoZhang, Ngày: 2024-02-06 14:29:23
Tags:

img

Tổng quan

Chiến lược này xác định các bước vào và ra dựa trên các tình huống chéo của đường EMA nhanh (3), đường EMA chậm (11) và đường EMA chậm hơn (18), kết hợp với các chéo đường không của MACD. Đây là một chiến lược năng động sử dụng sự kết hợp của các chỉ số EMA và MACD kép để đưa ra quyết định giao dịch.

Chiến lược logic

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

  1. EMA Crossover: Nó sử dụng sự chéo chéo của EMA nhanh (3), EMA chậm (11) và EMA chậm (18) để xác định xu hướng và là tín hiệu vào và ra.

  2. Chỉ số MACD và đường chéo không của nó. MACD bao gồm DIFF và DEA. DIFF được xây dựng bằng EMA nhanh (3) trừ EMA chậm (11). DEA là EMA (27) của MACD. MACD>0 chỉ ra tăng và MACD<0 chỉ ra giảm.

Theo sự kết hợp của đường chéo EMA và đường chéo đường không MACD, có 3 cơ hội nhập cảnh và 2 cơ hội thoát:

  1. Cơ hội dài đầu tiên xảy ra khi MACD nằm trên đường không và có đường chéo lên.
  2. Cơ hội dài thứ hai xảy ra khi EMA nhanh (3) vượt qua EMA chậm (11).
  3. Cơ hội dài thứ ba với vị trí đầy đủ xảy ra khi EMA nhanh (3) vượt qua EMA chậm hơn (18).
  4. Tín hiệu thoát đầu tiên xảy ra khi EMA nhanh (3) vượt qua dưới EMA chậm (11).
  5. Tín hiệu thoát thứ hai xảy ra khi MACD nằm dưới đường không và có đường chéo giảm.

Tóm lại, chiến lược này tận dụng đầy đủ những lợi thế của hệ thống chéo EMA kép và chỉ số MACD. Bằng cách điều chỉnh năng động các tham số của đường trung bình động và MACD, nó có thể cải thiện lợi nhuận của chiến lược.

Ưu điểm của Chiến lược

  1. Nó sử dụng điểm mạnh của cả EMA crossover và chỉ số MACD, cải thiện độ chính xác thông qua xác nhận hai chỉ số.

  2. Có 3 cơ hội nhập cảnh dài và 2 cơ hội thoát, tăng tần suất giao dịch và tiềm năng lợi nhuận.

  3. Không gian rộng cho tối ưu hóa tham số động. chiều dài của EMA nhanh, EMA chậm, đường không EMA và MACD đều có thể được tối ưu hóa.

  4. Logic rõ ràng giúp dễ dàng gỡ lỗi và tối ưu hóa.

Rủi ro của chiến lược

  1. Cả EMA crossover và chỉ số MACD đều có một số tín hiệu sai, có thể dẫn đến tổn thất không cần thiết.

  2. Tần suất giao dịch cao với kích thước dừng lỗ nhỏ trong mỗi giao dịch, vì vậy tổn thất có thể tích lũy.

  3. Khó khăn trong tối ưu hóa tham số.

  4. Tác động của chi phí giao dịch cần được xem xét đầy đủ.

Để giảm thiểu rủi ro:

  1. Thiết lập stop loss thích hợp để hạn chế lỗ trong các giao dịch đơn.

  2. Điều chỉnh các thông số phù hợp để tránh quá tải.

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

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

  1. Các phương pháp thay thế thử nghiệm như Bollinger Bands, KDJ v.v.

  2. Tối ưu hóa các thông số chéo EMA: Thay đổi chiều dài của EMA nhanh và chậm.

  3. Tối ưu hóa các thông số MACD: Thay đổi chiều dài EMA tính toán DIFF và DEA.

  4. Thêm các chiến lược dừng lỗ: số lượng giao dịch dừng, dừng thời gian, dừng kéo dài vv.

  5. Điều chỉnh tần suất nhập cảnh xem xét chi phí giao dịch.

Tóm lại

Chiến lược này kết hợp hệ thống chéo EMA kép và chỉ số MACD để xây dựng một chiến lược tham số năng động với tần suất giao dịch cao và lợi nhuận mạnh. Ngoài ra, logic rõ ràng làm cho nó dễ hiểu và tối ưu hóa. Nhưng cũng có những rủi ro của tín hiệu sai và quá phù hợp cần phải giải quyết thông qua các biện pháp dừng lỗ thích hợp, chống quá phù hợp v.v. Nhìn chung, chiến lược có lợi ích thực tế lớn.


/*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)






Thêm nữa