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