Chiến lược chỉ số động lực tổng hợp sử dụng chỉ số động lực tổng hợp để đánh giá dòng tiền trên thị trường để nắm bắt sự thay đổi xu hướng của thị trường. Chiến lược này kết hợp trung bình di chuyển nhanh và trung bình di chuyển chậm, tạo thành đường cong chỉ số, mua theo xu hướng trên đường cong và bán theo xu hướng dưới đường cong để theo dõi xu hướng thị trường.
Chiến lược này dựa trên chỉ số động lực tổng hợp, một chỉ số cải tiến chỉ số William, thay thế giá mở bằng giá trung bình của giá cao nhất và giá thấp nhất trong ngày để giải quyết vấn đề thiếu giá mở. Công thức của chỉ số là:
Đường khối lượng chuyển động tích tụ = Đường trung bình chuyển động của chỉ số khối lượng chuyển động tích tụ nhanh - Đường trung bình chuyển động của chỉ số khối lượng chuyển động tích tụ chậm
Trong đó, công thức tính chỉ số động lượng tổng hợp là:
Chỉ số động lực tích tụ = (giá đóng cửa - giá mở cửa) / (giá cao nhất - giá thấp nhất) * khối lượng giao dịch
Vì không có giá khởi đầu, chúng tôi sử dụng:
Chỉ số động lực tích tụ = (giá đóng cửa - (giá cao nhất + giá thấp nhất) / 2) / (giá cao nhất - giá thấp nhất) * khối lượng giao dịch
Chỉ số lấy chênh lệch giữa đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm làm đường tích lũy. Khi đường nhanh đi qua đường chậm, nó là tín hiệu mua, và khi đi qua đường chậm, nó là tín hiệu bán.
Các hoạt động cụ thể:
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Có thể kiểm soát rủi ro bằng các phương pháp như tối ưu hóa tham số và kết hợp với các chỉ số khác.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược chỉ số động lượng tổng hợp nói chung là ổn định và đáng tin cậy, có thể cân bằng lợi nhuận và rủi ro thông qua điều chỉnh tham số. Việc thêm các điều kiện lọc và dừng lỗ có thể làm tăng thêm sự ổn định của chiến lược. Chiến lược này phù hợp để theo dõi thị trường theo xu hướng, có thể được tối ưu hóa tùy chỉnh để đạt được hiệu quả chiến lược thỏa đáng.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-10-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/09/2017
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Money Flow Indicator (Chaikin Oscillator)", shorttitle="MFI")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos = iff(nRes > 0, 1,
iff(nRes < 0, -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="RMI")