Chiến lược giao dịch động lực dựa trên CMO và WMA

Tác giả:ChaoZhang, Ngày: 2023-11-28 16:42:54
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Chiến lược giao dịch động lực dựa trên CMO và WMA. Nó sử dụng dao động động cơ động Chande (CMO) và Trung bình di chuyển cân nhắc (WMA) của nó để xây dựng các tín hiệu giao dịch. Ý tưởng cốt lõi là đi dài khi CMO vượt qua trên WMA và đi ngắn khi vượt qua dưới. Nó cũng xem xét tùy chọn giao dịch ngược.

Chiến lược logic

Chỉ số cốt lõi của chiến lược này là CMO. CMO có liên quan chặt chẽ đến các chỉ số đà khác như RSI, nhưng cũng có tính độc đáo của nó. CMO đo đạc trực tiếp đà thay đổi giá.

Sau đó, nó tính toán sự thay đổi giá trong các ngày dài xMomLength, cụ thể là gần - gần[Dài]. Cuối cùng, CMO được tính là xMomLength chia cho xSMA_mom sau đó nhân 100. CMO này được làm mịn bằng một WMA (đại lý LengthWMA) để dẫn ra xWMACMO. Tín hiệu giao dịch là đi dài (ngắn) khi CMO vượt trên (dưới) WMA của nó.

Ưu điểm

Lợi thế lớn nhất của chiến lược này là nắm bắt các đặc điểm động lực trong xu hướng giá. Thiết kế giới hạn của CMO phản ánh những thay đổi động lực trực tiếp hơn. So với SMA, WMA làm mịn tiếng ồn ngắn hạn tốt hơn. Vì vậy, chiến lược này có thể xác định hiệu quả các điểm nhập cảnh trong xu hướng trung hạn đến dài hạn. Ngoài ra, sự kết hợp của CMO và WMA cung cấp sự ổn định tốt hơn so với một chỉ số duy nhất.

Rủi ro

Rủi ro lớn nhất của chiến lược này là tần suất giao dịch cao dẫn đến tăng chi phí trượt. Cả CMO và WMA đều có các thông số ngắn hạn, có thể gây ra sự biến động vô nghĩa quá mức. Điều này đặc biệt nghiêm trọng khi phương tiện giao dịch có biến động lớn. Ngoài ra, các thông số cố định không thích nghi với môi trường thị trường thay đổi.

Chúng ta có thể xem xét giới thiệu tối ưu hóa thích nghi của các tham số CMO và WMA, cho phép chúng điều chỉnh năng động. Thêm điều kiện lọc để giảm giao dịch không cần thiết là một lựa chọn khác. Giảm biến động thông qua đa dạng hóa danh mục đầu tư cũng giúp ích.

Hướng dẫn cải thiện

Chiến lược có thể được tăng cường từ các khía cạnh sau:

  1. Thêm cơ chế tham số CMO thích nghi để tìm các tham số tối ưu cho các chế độ biến động khác nhau;

  2. Thêm cơ chế tham số WMA thích nghi để hiệu ứng làm mịn thay đổi phù hợp;

  3. Thêm các điều kiện bộ lọc như Chỉ số biến động để kiểm soát các whipsaws vô nghĩa;

  4. Xem xét kết hợp với các chỉ số khác để cải thiện sự ổn định;

  5. Tối ưu hóa cơ chế dừng lỗ. Thiết lập đường dừng lỗ động để chủ động kiểm soát lỗ vòng duy nhất.

Kết luận

Chiến lược này nhận ra xu hướng đơn giản và hiệu quả dựa trên CMO và WMA. Ưu điểm của nó nằm trong việc nắm bắt rõ các đặc điểm động lực giá. Nhưng nó cũng có một số điểm yếu trong khả năng giữ lợi nhuận sau khi mở các vị trí. Cả điều chỉnh tham số và combo đều có thể cải thiện đáng kể sự ổn định. Nhìn chung, chiến lược này có rất nhiều không gian và giá trị để cải thiện.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/02/2017
//    This indicator plots Chandre Momentum Oscillator and its WMA on the 
//    same chart. This indicator plots the absolute value of CMO.
//    The CMO is closely related to, yet unique from, other momentum oriented 
//    indicators such as Relative Strength Index, Stochastic, Rate-of-Change, 
//    etc. It is most closely related to Welles Wilder?s RSI, yet it differs 
//    in several ways:
//    - It uses data for both up days and down days in the numerator, thereby 
//        directly measuring momentum;
//    - The calculations are applied on unsmoothed data. Therefore, short-term 
//        extreme movements in price are not hidden. Once calculated, smoothing 
//        can be applied to the CMO, if desired;
//    - The scale is bounded between +100 and -100, thereby allowing you to clearly 
//        see changes in net momentum using the 0 level. The bounded scale also allows 
//        you to conveniently compare values across different securities.
////////////////////////////////////////////////////////////
strategy(title="CMO & WMA", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
xWMACMO = wma(nRes, LengthWMA)
pos = iff(nRes > xWMACMO, 1,
	   iff(nRes <= xWMACMO, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
         iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(nRes, color=blue, title="CMO")
plot(xWMACMO, color=red, title="WMA")

Thêm nữa