Chỉ số lựa chọn hàng hóa (CSI) là một chiến lược giao dịch ngắn hạn theo dõi đà thị trường. Nó xác định các hàng hóa có đà mạnh bằng cách tính xu hướng và biến động của hàng hóa để giao dịch. Chiến lược này được Welles Wilder đề xuất trong cuốn sách New Concepts in Technical Trading Systems.
Chỉ số cốt lõi của chiến lược này là chỉ số CSI, tính đến xu hướng và biến động của hàng hóa.
CSI = K × ATR × ((ADX + trung bình động trong n ngày của ADX) / 2)
Trong đó K là một yếu tố mở rộng, ATR đại diện cho phạm vi trung bình thực sự, đo lường sự biến động của thị trường. ADX đại diện cho chỉ số hướng trung bình, phản ánh xu hướng của thị trường.
Bằng cách tính toán giá trị chỉ số CSI của mỗi loại hàng hóa và so sánh nó với trung bình di chuyển đơn giản n ngày của nó, một tín hiệu mua được tạo ra khi CSI cao hơn trung bình di chuyển của nó, và một tín hiệu bán được tạo ra khi CSI thấp hơn trung bình di chuyển của nó.
Chiến lược chọn các loại hàng hóa có chỉ số CSI tương đối cao để giao dịch. Bởi vì các loại hàng hóa này có xu hướng và biến động rất mạnh có thể tạo ra tiềm năng lợi nhuận lớn hơn trong ngắn hạn.
Chiến lược này có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Để kiểm soát rủi ro, các vị trí dừng lỗ nên được thiết lập hợp lý, kích thước vị trí duy nhất nên được kiểm soát và các tham số nên được điều chỉnh thích hợp để phù hợp với môi trường thị trường khác nhau.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược chỉ số động lực hàng hóa thực hiện giao dịch ngắn hạn đơn giản và nhanh chóng bằng cách nắm bắt hàng hóa có xu hướng mạnh và biến động cao trên thị trường. Cách tiếp cận chuyên ngành này của việc theo dõi động lực làm cho tín hiệu của nó rõ ràng và dễ thực hiện theo thuật toán. Tất nhiên, cũng cần phải chú ý đến kiểm soát rủi ro và tiếp tục cải thiện và nâng cấp để thích nghi với những thay đổi trong điều kiện thị trường.
/*backtest start: 2023-10-28 00:00:00 end: 2023-11-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/03/2019 // The Commodity Selection Index ("CSI") is a momentum indicator. It was // developed by Welles Wilder and is presented in his book New Concepts in // Technical Trading Systems. The name of the index reflects its primary purpose. // That is, to help select commodities suitable for short-term trading. // A high CSI rating indicates that the commodity has strong trending and volatility // characteristics. The trending characteristics are brought out by the Directional // Movement factor in the calculation--the volatility characteristic by the Average // True Range factor. // Wilder's approach is to trade commodities with high CSI values (relative to other // commodities). Because these commodities are highly volatile, they have the potential // to make the "most money in the shortest period of time." High CSI values imply // trending characteristics which make it easier to trade the security. // The Commodity Selection Index is designed for short-term traders who can handle // the risks associated with highly volatile markets. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// fADX(Len) => up = change(high) down = -change(low) trur = rma(tr, Len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur) sum = plus + minus 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len) strategy(title="Commodity Selection Index Backtest", shorttitle="CSI Backtest") PointValue = input(50) Margin = input(3000) Commission = input(10) Length = input(14) reverse = input(false, title="Trade reverse") K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission))) xATR = atr(Length) xADX = fADX(Length) nADXR = (xADX + xADX[Length]) * 0.5 xCSI = K * xATR * nADXR xMACSI = sma(xCSI, Length) pos = 0.0 pos := iff(xCSI < xMACSI, 1, iff(xCSI > xMACSI, -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(xCSI, color=green, title="CSI") plot(xMACSI, color=red, title="CSI SMA")