Chiến lược giao dịch định lượng dựa trên MACD bình thường

Tác giả:ChaoZhang, Ngày: 2023-09-14 20:01:07
Tags:

Bài viết này giải thích chi tiết một chiến lược giao dịch định lượng dựa trên chỉ số MACD bình thường. Nó tối ưu hóa chiến lược MACD cổ điển để cải thiện chất lượng tín hiệu.

I. Chiến lược logic

Ý tưởng cốt lõi của chiến lược này là bình thường hóa chỉ số MACD truyền thống để giảm tỷ lệ lỗi.

  1. Tính toán trung bình di chuyển Hull ngắn và dài và sử dụng chéo của họ để định hướng xu hướng.

  2. Tính toán sự khác biệt MACD.

  3. Bình thường hóa MACD trong một khoảng thời gian nhất định.

  4. Tính toán trung bình động của MACD bình thường như là kích hoạt.

  5. Đi dài khi MACD bình thường vượt trên kích hoạt, và đi ngắn khi vượt dưới.

  6. Thêm bộ lọc xu hướng để tránh bỏ lỡ các động thái lớn.

  7. Thiết lập dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro cho mỗi giao dịch.

Việc bình thường hóa làm giảm cường độ tuyệt đối của sự khác biệt MACD, làm giảm tiếng ồn cho chất lượng tín hiệu cao hơn.

II. Lợi thế của Chiến lược

So với các chiến lược MACD đơn giản, lợi thế lớn nhất là bình thường hóa, có thể làm giảm hiệu quả lỗi MACD và cải thiện độ chính xác tín hiệu.

Một lợi thế khác là việc thêm bộ lọc xu hướng để tránh đảo ngược sai. Điều này làm tăng sự ổn định của chiến lược.

Cuối cùng, cài đặt dừng lỗ và lấy lợi nhuận cũng đảm bảo rủi ro-lợi nhuận có thể kiểm soát được cho mỗi giao dịch cho quản lý tiền thận trọng.

III. Những điểm yếu tiềm tàng

Mặc dù các tối ưu hóa, các rủi ro sau đây nên được lưu ý khi giao dịch trong thực tế:

Thứ nhất, khó khăn tối ưu hóa tham số lớn có thể dẫn đến quá mức nếu được đặt không phù hợp.

Thứ hai, dừng lỗ đặt quá gần có nguy cơ bị dừng sớm.

Cuối cùng, các tín hiệu có thể bị chậm trễ trong quá trình chuyển đổi xu hướng, không phản ứng kịp thời.

IV. Tóm tắt

Tóm lại, bài viết này đã giải thích một chiến lược giao dịch định lượng bình thường hóa chỉ số MACD. Nó cải thiện chiến lược MACD cổ điển để tăng hiệu quả chất lượng tín hiệu và kết hợp các cơ chế quản lý rủi ro. Nhưng khó khăn tối ưu hóa tham số và thiết lập stop loss vẫn cần phải được xử lý một cách thận trọng. Nhìn chung, nó cung cấp một cách tiếp cận khả thi để tối ưu hóa các chiến lược MACD.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Normalized MACD but heavily modified by SeaSide420. Normalized MACD v420
strategy("Normalized MACD (v420)",shorttitle="NmacD(v420)",overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1440, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) 
p=input(ohlc4)
jah=input(title="HullMA cross",defval=21)
tsp = input(34,title='Trigger')
np = input(50,title='Normalize')
SL = input(defval=-420.00, title="Stop Loss in $", step=1)
TP = input(defval=31.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(p,round(jah/2))
nma=wma(p,jah)
diff=n2ma-nma
sqn=round(sqrt(jah))
n2ma1=2*wma(p[2],round(jah/2))
nma1=wma(p[2],jah)
diff1=n2ma1-nma1
sqn1=round(sqrt(jah))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
sh=n1
lon=n2
ratio = min(sh,lon)/max(sh,lon)
Mac = (iff(sh>lon,2-ratio,ratio)-1)
MacNorm = ((Mac-lowest(Mac, np)) /(highest(Mac, np)-lowest(Mac, np)+.000001)*2)- 1
MacNorm2 = iff(np<2,Mac,MacNorm)
Trigger = wma(MacNorm2, tsp)
Hist =(MacNorm2-Trigger)
Hist2= Hist>1?1:Hist<-1?-1:Hist
teh=MacNorm2+MacNorm2[2]-MacNorm2[1]
closelong = strategy.openprofit<SL or strategy.openprofit>TP or teh[1]<Trigger[1] and n1<n2[1]
if (closelong)
    strategy.close("Long")
closeshort = strategy.openprofit<SL or strategy.openprofit>TP or  teh[1]>Trigger[1] and n1>n2[1]
if (closeshort)
    strategy.close("Short")
longCondition = Trigger<0 and teh>Trigger and MacNorm>Trigger and strategy.opentrades<ot 
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = Trigger>0 and teh<Trigger and MacNorm<Trigger and strategy.opentrades<ot 
if (shortCondition)
    strategy.entry("Short",strategy.short)

Thêm nữa