Đây là một chiến lược giao dịch dựa trên Bộ dao động khối lượng Klinger. Nó nắm bắt sự thay đổi trong lực lượng mua và bán trong thời gian biến động giá để xác định các bước ngoặt trong xu hướng thị trường. Ưu điểm là độ nhạy và chính xác cho cả phân tích ngắn hạn và dài hạn. Tuy nhiên, một số rủi ro cần phải được chú ý.
Chiến lược được xây dựng dựa trên các giả định sau:
Dựa trên các lý thuyết, chiến lược tính toán Bộ dao động khối lượng Klinger bằng cách so sánh mối quan hệ giữa tổng giá đóng cửa ngày hôm nay và ngày hôm qua, kết hợp với sự thay đổi khối lượng.
Cụ thể, có ba chỉ số chính liên quan:
Sự khác biệt xKVO sau đó được tính toán như chỉ số giao dịch. Đi dài khi vượt qua EMA xTrigger 13 ngày, và ngắn khi vượt qua dưới.
Ưu điểm lớn nhất là phù hợp với cả phân tích ngắn hạn và dài hạn đồng thời. Các thiết lập EMA nhanh và chậm làm cho nó nhạy cảm với sự biến động ngắn hạn, đồng thời lọc tiếng ồn thị trường và nắm bắt xu hướng dài hạn, mà hầu hết các chỉ số dựa trên giá đều gặp khó khăn.
Ngoài ra, nó hoàn toàn dựa trên dữ liệu giá và khối lượng mà không có toán học phức tạp. Điều này làm cho nó rất hiệu quả cho các ứng dụng giao dịch thực tế.
Rủi ro chính là khả năng phân biệt các sự phá vỡ sai yếu hơn. Sự điều chỉnh giá ngắn hạn có thể tạo ra các tín hiệu dài sai. Các yếu tố khác nên được xem xét để xác định xu hướng.
Ngoài ra, chiến lược nhạy cảm với điều chỉnh tham số. Tối ưu hóa được yêu cầu trên EMA và đường kích hoạt để tìm hiệu suất tốt nhất.
Một số khía cạnh có thể tối ưu hóa thêm chiến lược theo rủi ro:
Thêm các cơ chế dừng mất mát.
Thêm lọc xu hướng với các chỉ số như MACD để tránh sai hướng trong các thị trường dao động.
Tối ưu hóa các bộ tham số thông qua các thử nghiệm ngược để cải thiện độ bền.
Tối ưu hóa quản lý vốn như kích thước vị trí năng động dựa trên mức dừng lỗ / lấy lợi nhuận.
Nhìn chung, chiến lược nắm bắt sự thay đổi trong lực lượng thị trường bằng cách so sánh số lượng giá và khối lượng cho cả độ nhạy và ổn định. Nó có thể hoạt động tốt với các thông số tối ưu và xác nhận xu hướng, nhưng những hạn chế vốn có của các chỉ số khối lượng vẫn có thể gây ra rủi ro cho các nhà giao dịch.
[/trans]
/*backtest start: 2022-11-28 00:00:00 end: 2023-12-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 30/08/2017 // The Klinger Oscillator (KO) was developed by Stephen J. Klinger. Learning // from prior research on volume by such well-known technicians as Joseph Granville, // Larry Williams, and Marc Chaikin, Mr. Klinger set out to develop a volume-based // indicator to help in both short- and long-term analysis. // The KO was developed with two seemingly opposite goals in mind: to be sensitive // enough to signal short-term tops and bottoms, yet accurate enough to reflect the // long-term flow of money into and out of a security. // The KO is based on the following tenets: // Price range (i.e. High - Low) is a measure of movement and volume is the force behind // the movement. The sum of High + Low + Close defines a trend. Accumulation occurs when // today's sum is greater than the previous day's. Conversely, distribution occurs when // today's sum is less than the previous day's. When the sums are equal, the existing trend // is maintained. // Volume produces continuous intra-day changes in price reflecting buying and selling pressure. // The KO quantifies the difference between the number of shares being accumulated and distributed // each day as "volume force". A strong, rising volume force should accompany an uptrend and then // gradually contract over time during the latter stages of the uptrend and the early stages of // the following downtrend. This should be followed by a rising volume force reflecting some // accumulation before a bottom develops. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. //////////////////////////////////////////////////////////// strategy(title="Klinger Volume Oscillator (KVO)", shorttitle="KVO") TrigLen = input(13, minval=1) FastX = input(34, minval=1) SlowX = input(55, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=gray, linestyle=line) xTrend = iff(hlc3 > hlc3[1], volume * 100, -volume * 100) xFast = ema(xTrend, FastX) xSlow = ema(xTrend, SlowX) xKVO = xFast - xSlow xTrigger = ema(xKVO, TrigLen) pos = iff(xKVO > xTrigger, 1, iff(xKVO < xTrigger, -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(xKVO, color=blue, title="KVO") plot(xTrigger, color=red, title="Trigger")