Это торговая стратегия, основанная на Клингеровском объемном осцилляторе. Она фиксирует изменения в покупательной и продажной силе во время колебаний цен для выявления поворотных точек в рыночных тенденциях. Преимуществами являются чувствительность и точность как для краткосрочного, так и для долгосрочного анализа.
Стратегия основана на следующих предположениях:
Основываясь на теориях, стратегия рассчитывает осциллятор объема Клингера, сравнивая соотношение между суммой сегодняшних цен закрытия и вчерашних, в сочетании с изменениями объема.
В частности, имеются три основных показателя:
Разница xKVO затем рассчитывается как индикатор торговли.
Наибольшее преимущество заключается в том, что он подходит как для краткосрочного, так и для долгосрочного анализа одновременно.
Кроме того, он основан исключительно на данных о ценах и объеме без сложной математики.
Основной риск заключается в более слабой способности различать ложные прорывы. Краткосрочные корректировки цен могут генерировать неправильные длинные сигналы.
Кроме того, стратегия чувствительна к настройке параметров.
Некоторые аспекты, которые могли бы дополнительно оптимизировать стратегию в соответствии с рисками:
Добавить механизмы остановки потерь. Выход на некотором процентном отступлении уменьшает помехи шума.
Добавьте фильтрацию тренда с помощью таких индикаторов, как MACD, чтобы избежать ошибок направления на рыночных диапазонах.
Оптимизировать набор параметров через обратные тесты для улучшения надежности.
Оптимизация управления капиталом, например, динамическое размещение позиций на основе уровней стоп-лосса/прибыли.
В целом, стратегия отслеживает изменения рыночных сил путем сравнения количества цен и объемов как для чувствительности, так и для стабильности.
[/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")