Chiến lược chỉ số khối lượng tích cực so sánh khối lượng ngày hôm qua và ngày hôm nay. Nó tính toán sự thay đổi giá vào những ngày khối lượng mở rộng để tạo ra chỉ số khối lượng tích cực, và so sánh nó với trung bình động của nó để tạo ra tín hiệu giao dịch. Chiến lược theo nguyên tắc thị trường đồng thời mở rộng khối lượng và giá.
Chiến lược này đầu tiên tính toán thay đổi giá hàng ngày xROC. Sau đó nó so sánh khối lượng ngày hôm nay với khối lượng ngày hôm qua.[1] Nếu khối lượng ngày hôm nay lớn hơn, chỉ số khối lượng tích cực nRes ngày hôm nay là chỉ số nRes ngày hôm qua[1] cộng với xROC. Nếu khối lượng ngày hôm nay nhỏ hơn hoặc bằng với ngày hôm qua, chỉ số ngày hôm nay vẫn giống như nRes ngày hôm qua[1].
Sau khi tính toán chỉ số nRes tích cực, nó được so sánh với nResEMA động trung bình N ngày của nó. Nếu nRes lớn hơn nResEMA, đó là tín hiệu dài. Nếu nRes nhỏ hơn nResEMA, đó là tín hiệu ngắn.
Chiến lược theo dõi mối quan hệ giữa chỉ số khối lượng tích cực và trung bình động của nó để tạo ra tín hiệu giao dịch. Khi chỉ số vượt trên trung bình động, đó là tín hiệu mua. Khi chỉ số vượt dưới, đó là tín hiệu bán.
Những lợi thế của chiến lược này bao gồm:
Nó nắm bắt đà thị trường bằng cách quan sát thay đổi khối lượng.
Nó có một số xu hướng sau khả năng.
Lý thuyết rất đơn giản để thực hiện và kiểm tra lại.
Tần suất giao dịch có thể được kiểm soát bằng cách điều chỉnh tham số trung bình động.
Những rủi ro chính của chiến lược này là:
Sự mở rộng khối lượng không nhất thiết có nghĩa là sự mở rộng giá.
Đặt mức dừng lỗ hợp lý để kiểm soát lỗ.
Các tín hiệu từ chỉ số và biến đổi giá chậm trung bình động.
Khối lượng bất thường hoặc tối ưu hóa quá mức có thể dẫn đến tín hiệu sai.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Kiểm tra thêm các chỉ số kỹ thuật khác như MACD, KDJ để lọc tín hiệu.
Tối ưu hóa tham số trung bình động để cân bằng tốt nhất.
Thêm các cơ chế dừng lỗ như dừng lại để kiểm soát rủi ro.
Xem xét việc thoát khỏi vị trí một phần để giảm dần rủi ro.
Tối ưu hóa các thông số cho các sản phẩm cụ thể để cải thiện độ bền.
Chiến lược chỉ số khối lượng tích cực thiết kế các giao dịch dựa trên thay đổi khối lượng, với một số khả năng theo sau thị trường. Nhưng nên lưu ý sự khác biệt giữa khối lượng và giá. Bằng cách tối ưu hóa các tham số, đặt dừng lỗ, thêm các chỉ số vv, chiến lược có thể được cải thiện để kiểm soát rủi ro và tăng hiệu suất. Nó phù hợp để khám phá mối quan hệ giá - khối lượng và hỗ trợ thời gian thị trường.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 11/10/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 // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Positive Volume Index", shorttitle="Positive Volume Index") 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="PVI") plot(nResEMA, color=blue, title="EMA")