Стратегия положительного индекса объема сравнивает объем вчерашнего и сегодняшнего дня. Она рассчитывает изменение цены в дни, когда объем расширяется, чтобы сформировать положительный индекс объема, и сравнивает его с скользящей средней, чтобы генерировать торговые сигналы. Стратегия следует рыночному принципу одновременного объема и расширения цен.
Стратегия сначала рассчитывает ежедневное изменение цены xROC. Затем она сравнивает объем сегодняшнего дня с объемом вчерашнего дня[1]. Если объем сегодняшнего дня больше, то положительный индекс объема nRes сегодня является индексом nRes вчерашнего дня[1] плюс xROC. Если объем сегодняшнего дня меньше или равен вчерашнему дню, то индекс сегодняшнего дня остается таким же, как вчерашний nRes[1].
После расчета положительного индекса объема nRes, он сравнивается с его N-дневным скользящим средним nResEMA. Если nRes больше nResEMA, это длинный сигнал. Если nRes меньше nResEMA, это короткий сигнал.
Стратегия следует взаимосвязи между положительным индексом объема и его скользящей средней, чтобы генерировать торговые сигналы. Когда индекс пересекается выше скользящей средней, это сигнал покупки. Когда индекс пересекается ниже, это сигнал продажи.
Преимущества этой стратегии включают:
Он фиксирует динамику рынка, наблюдая изменения объема.
Повышение индекса говорит о потенциальном бычьем рынке.
Логика проста для реализации и обратного тестирования.
Частота торгов может контролироваться путем корректировки параметра скользящей средней.
Основными рисками этой стратегии являются:
Расширение объема не обязательно означает расширение цены.
Для контроля потерь следует установить разумный стоп-лосс.
Сигналы от изменений цен индекса и скользящей средней задержки.
Аномальный объем или чрезмерная оптимизация могут привести к ложным сигналам.
Стратегия может быть оптимизирована в следующих аспектах:
Испытание с добавлением других технических показателей, таких как MACD, KDJ для фильтрации сигнала.
Оптимизируйте параметр скользящей средней для наилучшего баланса.
Добавьте механизмы остановки потерь, такие как остановка отслеживания, чтобы контролировать риски.
Подумайте о частичном выходе из позиции для постепенного снижения рисков.
Оптимизировать параметры для конкретных продуктов для повышения надежности.
Положительная стратегия индекса объема проектирует сделки на основе изменения объема, с некоторой возможностью следования рынку. Но следует отметить расхождение между объемом и ценой. Оптимизируя параметры, устанавливая стоп-лосс, добавляя индикаторы и т. Д., Стратегия может быть улучшена для контроля рисков и повышения производительности.
/*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")