
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 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.
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.
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.
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.
Đố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.
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.
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.
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.
/*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")