Phân tích kiểm tra ngược của Chiến lược chênh lệch giá động lượng


Ngày tạo: 2023-10-25 11:10:59 sửa đổi lần cuối: 2023-10-25 11:10:59
sao chép: 0 Số nhấp chuột: 728
1
tập trung vào
1617
Người theo dõi

Phân tích kiểm tra ngược của Chiến lược chênh lệch giá động lượng

Tên chiến lược

Theo các đặc điểm chính của chiến lược này, tôi sẽ đặt tên cho nó là chiến lược mạo hiểm động lực.

Chiến lược tổng quan

Chiến lược này tạo ra tín hiệu đa trống, tạo cơ hội đánh giá, và tạo ra lợi nhuận bằng cách tính toán chỉ số biến động động lực Chande và đặt ngưỡng thấp lên thấp.

Ba, nguyên tắc chiến lược

Mã đầu tiên đặt các tham số Length, TopBand, LowBand, Length đại diện cho chu kỳ số ngày tính toán động lực, TopBand và LowBand đại diện cho các ngưỡng trên và dưới của thiết lập.

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

Sau đó tính tổng động lượng trong ngày của Length xMomLength.

Sau đó tính toán chỉ số động lực dao động nRes, bằng xMomLength chia cho xSMA_mom nhân với Length, phóng to 100 lần.

Phân tích nRes theo chiều đa không dựa trên mối quan hệ giữa kích thước của nRes với ngưỡng trên và dưới.

Cuối cùng, tùy thuộc vào việc có kích hoạt sửa đổi giao dịch ngược hay không, tạo tín hiệu giao dịch possig, tạo ra nhiều mục trống.

Bốn, lợi thế chiến lược

  1. Sử dụng các chỉ số động lực để xác định các điểm biến động tiềm năng trong xu hướng, giúp nắm bắt xu hướng
  2. Kết hợp lọc ngưỡng để tạo ra tín hiệu đa không rõ ràng, tránh giao dịch sai
  3. Sử dụng tư duy giao dịch đảo ngược để có cơ hội đảo ngược
  4. Các tham số có thể được điều chỉnh theo không gian, có thể được tối ưu hóa cho các giống và chu kỳ khác nhau
  5. Hình ảnh tham số trực quan, dễ dàng nắm bắt logic giao dịch

5: Rủi ro chiến lược

  1. Chỉ tính đến động lực, có thể bỏ lỡ cơ hội giao dịch được hình thành bởi các chỉ số kỹ thuật khác
  2. Bước đột phá không nhất thiết phải là sự thay đổi xu hướng, có nguy cơ sai lầm
  3. Thương mại ngược có thể mang lại lợi nhuận nhưng cũng có thể làm tăng tổn thất
  4. Các tham số không được tối ưu hóa có thể dẫn đến giao dịch quá thường xuyên hoặc bỏ lỡ các điểm tối ưu
  5. Sự biến đổi động lực ngắn hạn do sự kiện đột ngột cần được lọc thích hợp

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

Sáng kiến tối ưu hóa

  1. Thêm bộ lọc các chỉ số kỹ thuật khác để tăng độ chính xác của tín hiệu giao dịch

Có thể xác định giá tròn trên hệ thống đường trung bình hoặc tỷ lệ dao động trong phạm vi bình thường trước khi tín hiệu động lượng được kích hoạt để tránh bị sai lệch.

  1. Các tham số tối ưu hóa dựa trên đặc tính giống

Đối với các giống có tỷ lệ biến động cao, có thể kéo dài phạm vi ngưỡng bình thường của biến động động lượng một cách thích hợp, giảm tần suất giao dịch.

  1. Tối ưu hóa nhiều khung thời gian theo chu kỳ thời gian khác nhau

Trong ngày có thể sử dụng chu kỳ nhỏ hơn Length, làm giao dịch siêu ngắn; điều chỉnh tham số theo đường tuần hoặc đường trăng, tập trung vào xu hướng đường dài trung bình.

  1. Thiết lập điều kiện rời rạc

Khi một tín hiệu bullish được kích hoạt, cần phải thêm vào điều kiện giá cao hơn các thung lũng trước đó để tránh tín hiệu sai lệch của xu hướng đảo ngược.

VII. Kết luận

Chiến lược này chủ yếu thông qua các chỉ số động lực để xác định cơ hội đảo ngược xu hướng ngắn hạn, kết hợp với các tham số lọc để tạo tín hiệu giao dịch, đồng thời theo dõi xu hướng và quay ngược, rủi ro có thể được kiểm soát. Bằng cách tối ưu hóa nhiều khung thời gian và kết hợp các chỉ số kỹ thuật khác, có thể nâng cao hiệu quả giao dịch chiến lược, đáng để nghiên cứu và áp dụng thêm.

Mã nguồn chiến lượ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")