
이것은 Klinger의 양적 지표에 기반한 거래 전략이다. 이 전략은 가격 변동에서 구매와 판매 세력의 변화를 포착하여 시장 경향의 전환점을 발견한다. 이 전략은 민감하고 정확하며 단기 및 장기 분석에 동시에 적용할 수 있다. 그러나 주의해야 할 몇 가지 위험도 있다.
이 전략은 다음과 같은 이론에 기초하고 있습니다.
이러한 이론에 따르면, 이 전략은 종식 가격의 총액과 전날의 크기와의 관계를 비교하여 거래량 변화를 합성하여 클링거 양적 지표를 계산한다. 지표가 자신의 평균선을 통과할 때 더 많이 하고, 아래로 통과할 때 공백을 한다.
특히, 전략에는 다음과 같은 세 가지 지표가 포함되어 있습니다.
그 다음에는 xKVO의 차이를 거래 지표로 계산한다. 13일 평균선 xTrigger을 밟을 때 더 많이 하고, 밟을 때 더 적게 한다.
이 전략의 가장 큰 장점은 단기 및 장기 분석에 동시에 적합하다는 것입니다. 급속한 평균의 파라미터 설정은 단기 동향의 변화를 민감하게 포착 할 수있게합니다. 동시에, 단기 시장 소음을 필터링하여 장기 동향을 포착 할 수 있습니다. 이것은 가격 자체를 추적하는 많은 지표가 수행하기가 어렵습니다.
또한, 이 전략은 가격과 거래량 계산에만 기반한다. 복잡한 수학적 지표를 계산할 필요가 없으며, 계산 효율이 높으며, 실내 애플리케이션에 적합하다.
이 전략의 가장 큰 위험은 거래량 지표가 가짜 돌파구를 식별하는 능력이 약하다는 것입니다. 가격이 평균선을 돌파하는 단기 조정이있을 때이 전략은 잘못된 다중 신호를 발산 할 수 있습니다. 이 경우 다른 요소와 함께 추세를 판단해야합니다.
또한, 이 전략은 파라미터 설정에 민감하다. 빠른 느린 평균선과 거래 평균선의 파라미터는 최적의 성능을 얻기 위해 반복적으로 테스트 및 최적화가 필요합니다.
위험 분석에 따라, 우리는 다음과 같은 측면에서 이 전략을 더 개선할 수 있습니다.
손실을 막는 메커니즘을 추가한다. 가격이 일정 비율로 떨어질 때 손실을 막고, 단기 조정의 잡음 간섭을 줄일 수 있다.
트렌드 필터 지표를 추가한다. MACD와 같은 지표와 함께 이동 평균 지표는 시장의 전반적인 움직임을 판단하고, 변동 상황에서 방향을 잃지 않도록한다.
최적화 파라미터 설정. 역사 재검토 데이터를 통해 최적의 파라미터 조합을 찾고, 전략 안정성을 향상시킨다.
앞선 자금 관리 최적화. 예를 들어, 상금 중단 상황에 따라 역동적으로 포지션을 조정한다.
이 전략은 가격의 총량과 거래량과의 관계를 비교하여 시장의 매매 힘의 변화를 포착하며, 민감성과 안정성을 동시에 고려합니다. 최적화 파라미터를 설정하고 트렌드 판단과 결합한 전제 조건에서 좋은 성과를 얻을 수 있습니다. 그러나 거래자는 지표 자체의 한계로 인한 위험을 경계해야합니다.
||
This is a trading strategy based on the Klinger Volume Oscillator. It captures the shifts in buying and selling forces during price fluctuations to identify turning points in market trends. The advantages are sensitivity and accuracy for both short-term and long-term analysis. However, some risks need to be noticed.
The strategy is built on the following assumptions:
Based on the theories, the strategy calculates the Klinger Volume Oscillator by comparing the relationship between today’s sum of closing prices and yesterday’s, combined with changes in volume. It goes long when the indicator crosses above its moving average line, and goes short on crosses below.
Specifically, there are three main indicators involved:
The difference xKVO is then calculated as the trading indicator. Go long on crossing above 13-day EMA xTrigger, and short on crossing below.
The greatest advantage is being suitable for both short-term and long-term analysis simultaneously. The fast and slow EMA settings make it sensitive to catch short-term swings, while also filtering out market noise and capturing long-term trends, which most price-based indicators struggle with.
In addition, it is purely based on price and volume data without complex math. This makes it highly efficient for actual trading applications.
The main risk is weaker ability to distinguish false breakouts. Short-term price adjustments may generate wrong long signals. Other factors should be considered to determine the trend.
Also, the strategy is sensitive towards parameter tuning. Optimization is required on the EMAs and trigger line to find best performance.
Some aspects that could further optimize the strategy according to the risks:
Add stop loss mechanisms. Exiting at some percentage retracement reduces noise interference.
Add trend filtering with indicators like MACD to avoid directional mistakes in ranging markets.
Optimize parameter sets through backtests to improve robustness.
Capital management optimization such as dynamic position sizing based on stop loss/take profit levels.
Overall, the strategy captures shifts in market forces by comparing price quantities and volumes for both sensitivity and stability. It can perform well given optimized parameters and trend validation, but inherent limitations of volume indicators can still pose risks for traders.
[/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")