
Chiến lược này được gọi là Chiến lược đảo ngược chỉ số âm lượng. Chiến lược này sử dụng chỉ số âm lượng (NVI) và đường trung bình di chuyển của nó để xây dựng tín hiệu dài và ngắn, và giao dịch đảo ngược khi đáp ứng các điều kiện, thuộc loại chiến lược đảo ngược.
Chỉ số trung tâm của chiến lược đảo ngược chỉ số tiêu cực là chỉ số tiêu cực ((NVI)). Công thức tính NVI là:
Số lượng giao dịch trong ngày < số lượng giao dịch trong ngày trước: NVI = NVI trong ngày trước + tỷ lệ biến đổi giá trong ngày
NVI = NVI ngày trước khi lượng giao thông trong ngày >= lượng giao thông trong ngày trước
Nói cách khác, NVI chỉ được cập nhật vào những ngày khối lượng giao dịch thu hẹp, bằng cách tăng hoặc giảm tỷ lệ thay đổi giá để phản ánh xu hướng giá. Logic của NVI xây dựng tín hiệu dài hoặc ngắn là:
Như vậy, bạn có thể thực hiện một giao dịch ngược lại ngay khi bạn đang thu hẹp số lượng.
Những lợi thế chính của chiến lược đảo ngược chỉ số âm là:
Sử dụng tín hiệu khối lượng giao thông, có thể tìm thấy điểm đảo ngược, có một số lợi thế về thời gian.
Lập luận của chiến lược đơn giản, dễ hiểu và dễ thực hiện.
Có thể được tối ưu hóa bằng cách điều chỉnh các tham số để thích ứng với các môi trường thị trường khác nhau.
Chiến lược đảo ngược chỉ số tiêu cực cũng có một số rủi ro:
Tín hiệu giao dịch không được đảm bảo chính xác, có một xác suất giao dịch sai.
Thiết lập tham số không đúng có thể dẫn đến giao dịch quá thường xuyên hoặc tín hiệu không rõ ràng.
Cần đảm bảo nguồn dữ liệu là đáng tin cậy, tránh rủi ro của dữ liệu sai số lượng lớn.
Những rủi ro này có thể được giảm bớt bằng cách tối ưu hóa tham số, kết hợp với các chiến lược dừng lỗ.
Chiến lược đảo ngược chỉ số âm lượng có thể được tối ưu hóa từ các khía cạnh sau:
Tối ưu hóa các tham số trung bình di chuyển để tìm các tham số mô tả tốt hơn các đặc điểm của thị trường.
Thêm các bộ lọc cho các chỉ số khác để tránh các giao dịch sai lầm không cần thiết, chẳng hạn như đánh giá xu hướng cấp độ lớn hơn.
Phương pháp dừng lỗ mạnh mẽ, hạn chế tổn thất đơn lẻ.
Kiểm tra sự khác biệt trong thiết lập các tham số của các giống khác nhau, thiết lập các tham số thích ứng.
Chiến lược đảo ngược chỉ số tiêu cực bằng cách thực hiện hoạt động đảo ngược khi khối lượng giao dịch thu nhỏ, mục tiêu là nắm bắt điểm đảo ngược xu hướng tiềm năng. Chiến lược này có lợi thế đơn giản, dễ hiểu, đồng thời cũng có một số rủi ro giao dịch sai.
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter 11/08/2017
// The theory behind the indexes is as follows: On days of increasing
// volume, you can expect prices to increase, and on days of decreasing
// volume, you can expect prices to decrease. This goes with the idea of
// the market being in-gear and out-of-gear. Both PVI and NVI work in similar
// fashions: Both are a running cumulative of values, which means you either
// keep adding or subtracting price rate of change each day to the previous day`s
// sum. In the case of PVI, if today`s volume is less than yesterday`s, don`t add
// anything; if today`s volume is greater, then add today`s price rate of change.
// For NVI, add today`s price rate of change only if today`s volume is less than
// yesterday`s.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Negative Volume Index Backtest", shorttitle="NVI Str")
EMA_Len = input(255, minval=1)
reverse = input(false, title="Trade reverse")
xROC = roc(close, 1)
nRes = iff(volume < volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
nResEMA = ema(nRes, EMA_Len)
pos = iff(nRes > nResEMA, 1,
iff(nRes < nResEMA, -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=red, title="NVI")
plot(nResEMA, color=blue, title="EMA")