Momentum Arbitrage Strategy Phân tích backtest

Tác giả:ChaoZhang, Ngày: 2023-10-25 11:10:59
Tags:

img

I. Tên của chiến lược

Dựa trên các đặc điểm chính của chiến lược này, tôi gọi nó là Momentum Arbitrage Strategy.

II. Tổng quan chiến lược

Chiến lược này tạo ra các tín hiệu giao dịch bằng cách tính toán Chande Momentum Oscillator và thiết lập ngưỡng trên và dưới, tạo ra cơ hội phân phối cho lợi nhuận.

III. Chiến lược logic

Mã đầu tiên đặt các tham số Length, TopBand và LowBand, trong đó Length đại diện cho số ngày để tính toán động lượng, và TopBand và LowBand đại diện cho ngưỡng trên và dưới.

Sau đó nó tính toán động lượng tuyệt đối xMom trong những ngày dài nhất, và trung bình di chuyển đơn giản của xMom trong những ngày dài nhất, xSMA_mom.

Sau đó, nó tính toán động lượng tích lũy trong ngày dài, xMomLength.

Tiếp theo, nó tính toán bộ dao động động lực nRes, tương đương với xMomLength chia cho xSMA_mom sau đó nhân với Length, khuếch đại bằng 100.

Dựa trên so sánh giữa nRes và ngưỡng, nó xác định hướng dài hoặc ngắn và lưu trữ nó trong pos.

Cuối cùng, nó điều chỉnh pos dựa trên việc liệu giao dịch ngược có được bật, tạo ra tín hiệu giao dịch possig và tạo ra các mục dài / ngắn.

IV. Điểm mạnh của chiến lược

  1. Xác định các điểm chuyển đổi xu hướng tiềm năng bằng cách sử dụng chỉ số động lực, có lợi cho việc nắm bắt xu hướng.

  2. Xây dựng các tín hiệu dài / ngắn rõ ràng kết hợp với lọc ngưỡng, tránh giao dịch sai.

  3. Áp dụng logic giao dịch ngược để có được cơ hội đảo ngược.

  4. Không gian tham số điều chỉnh lớn, có thể được tối ưu hóa cho các sản phẩm và khung thời gian khác nhau.

  5. Các thông số được hiển thị trực quan, dễ hiểu logic giao dịch.

V. Rủi ro chiến lược

  1. Chỉ xem xét động lực, có thể bỏ lỡ cơ hội được hình thành bởi các chỉ số kỹ thuật khác.

  2. Sự phá vỡ động lực không nhất thiết đại diện cho sự đảo ngược xu hướng, có nguy cơ đánh giá sai.

  3. Mặc dù giao dịch ngược có tiềm năng lợi nhuận, nhưng nó cũng có thể làm tăng lỗ.

  4. Tối ưu hóa tham số không chính xác có thể dẫn đến giao dịch quá mức hoặc bỏ lỡ các điểm đầu vào tốt nhất.

  5. Cần lọc ra những biến dạng động lượng ngắn hạn do sự kiện đột ngột.

Các rủi ro có thể được kiểm soát bằng cách kết hợp các chỉ số khác như xu hướng và biến động để xác nhận độ tin cậy của tín hiệu, điều chỉnh các tham số để giảm tần suất giao dịch, thư giãn dừng lỗ đúng cách, v.v.

VI. Định hướng tối ưu hóa chiến lược

  1. Thêm các bộ lọc chỉ số kỹ thuật khác để cải thiện độ chính xác tín hiệu.

Xác nhận giá đóng là trên hệ thống trung bình động, hoặc biến động nằm trong phạm vi bình thường, trước khi kích hoạt tín hiệu động lực.

  1. Tối ưu hóa các thông số theo đặc điểm của sản phẩm.

Đối với các sản phẩm dễ bay hơi hơn, hãy nới lỏng phạm vi ngưỡng bình thường để giảm tần suất giao dịch.

  1. Tối ưu hóa nhiều khung thời gian dựa trên các khoảng thời gian khác nhau.

Sử dụng thời gian ngắn hơn Thời gian dài cho giao dịch trong ngày cực ngắn hạn Điều chỉnh các tham số dựa trên biểu đồ hàng tuần hoặc hàng tháng cho xu hướng trung bình dài hạn.

  1. Thiết lập điều kiện chênh lệch đáy.

Đối với tín hiệu mua, yêu cầu giá phải ở trên ngưỡng thấp trước để tránh tín hiệu đảo ngược giả.

VII. Kết luận

Chiến lược này chủ yếu xác định sự đảo ngược xu hướng ngắn hạn thông qua chỉ số động lực, với việc lọc tham số để tạo ra tín hiệu giao dịch, cân bằng xu hướng theo dõi và thu thập sự đảo ngược.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/02/2017
//    This indicator plots Chande Momentum Oscillator. This indicator was 
//    developed by Tushar Chande. A scientist, an inventor, and a respected 
//    trading system developer, Mr. Chande developed the CMO to capture what 
//    he calls "pure momentum". For more definitive information on the CMO and 
//    other indicators we recommend the book The New Technical Trader by Tushar 
//    Chande and Stanley Kroll.
//    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 (Chande Momentum Oscillator)", shorttitle="CMO")
Length = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
pos = iff(nRes > TopBand, 1,
	   iff(nRes <= LowBand, -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")

Thêm nữa