Положительный индекс объема (PVI- Positive Volume Index), индикатор импульса, который измеряет степень изменения цен в дни, когда объем превышает объем предыдущей сессии. PVI принимает во внимание только дни, когда объем увеличивается; в дни, когда объем уменьшается, PVI остается неизменным. Его антипод, отрицательный индекс объема (NVI), дополняет PVI, он учитывает только те дни, когда объем торговли снижается.
Оба индикатора основываются на предположении, что массовый, необразованный трейдер активен в дни большого объема, в то время как профессиональные или институциональные трейдеры активны в более медленные дни.

Как рассчитывать PVI и NVI
Вообще существуют различные способы расчёта данных индексов, но хотя они и основаны на принципиально разных методиках, всё же их объединяет тот факт, что любой из них (способов) предполагает аккумуляцию ценовых показателей, учитывая только те периоды в которых показатель текущего объёма выше предыдущего его значения (для PVI) или только периоды с текущим объёмом торгов ниже предыдущего значения (для NVI).

Ниже приведены формулы для расчёта данных показателей, предложенные Норманом Фосбэком в его труде «Stock Market Logic» (Логика фондового рынка).
Положительный индекс объёма рассчитывается по формуле:

Расчет по вышеприведённой формуле осуществляется в том случае, если значение текущего объёма торгов больше предыдущего.
В том же случае, когда объём торгов текущего периода меньше, либо равен объёму торгов предыдущего периода, значению PVI присваивается его предыдущее значение:

Отрицательный индекс объёма рассчитывается по формуле:

По этой формуле считаем только в том случае, когда текущий объём торгов ниже предыдущего (в предыдущем периоде).
Ну а если текущее значение объёма торгов оказывается выше предыдущего, либо равным ему, то значению NVI присваивается предыдущее его значение:

Как использовать индексы положительного и отрицательного объёма на практике
Для начала приведём таблицу основанную на данных статистики собранной Фосбэком за период с 1941 по 1975 годы (его книга вышла в 1976 году, отсюда и верхняя граница рассматриваемого диапазона):
Как видно из этой таблицы, наиболее статистически достоверными являются сигналы на покупку подаваемые индексами NVI и PVI (96 и 79% соответственно), а также сигнал на продажу, подаваемый индексом PVI (67%). Давайте рассмотрим каждый из этих сигналов в отдельности.
Снижение PVI ниже своего годового скользящего среднего значения — сигнал к продаже. В качестве сигнала к продаже, трейдеры ищут моменты, когда индикатор PVI понижается ниже его однолетнего скользящего среднего значения. И Пол Дизар, первоначальный разработчик и PVI и NVI и Норман Фосбэк, который позже скорректировал и популяризировал эти индикаторы, полагают, что это снижение является сильным индикатором нависшего медвежьего поворота.
Так как PVI учитывает изменения цен только в дни, когда объем увеличивается, уменьшение, PVI указывает, что объем продолжает повышаться, в то время как цены снижаются, сигнализируя об увеличении медвежьего импульса. Когда PVI понижается ниже его однолетнего скользящего среднего значения (MA), есть 67%-й шанс, что рынок примет медвежий оборот.
Рост PVI выше своего годового скользящего среднего значения — сигнал к покупке. Аналогично, повышение индикатора PVI говорит трейдерам о том, что рост цен подверждается соответствующим ростом объёмов. Соответственно, когда индикатор поднимается выше своего однолетнего значения MA, существует 79% вероятность восходящего тренда.
Рост NVI выше годового скользящего среднего значения — сигнал к покупке. Что касается этого сигнала, то, признаюсь честно, его логика мне не совсем понятна. Ведь индикатор NVI учитывает только те ценовые изменения, которые происходят в дни уменьшения объёма торгов. Поэтому рост NVI свидетельствует о том, что повышение цен не подкрепляется соответствующим увеличением объёмов, а это с большой степенью вероятности может говорить об ослаблении восходящего тренда. Но на практике (согласно статистике) получается так, что именно этот сигнал даёт наибольшую вероятность дальнейшего ценового роста (96%).
Если у вас появятся какие-либо соображения по этому поводу, то буду рад если вы поделитесь ими в комментариях.
Установка индикатора PVI в торговый терминал Метатрейдер 4
В стандартном наборе инструментов для МТ4, индикатора PVI нет. Но это не является проблемой, поскольку вы легко можете добавить его туда сами.
Вот так выглядит его программный код. Только не пугайтесь заранее, в коде вам разбираться не придется, а установить его в терминал сможет и ребёнок (ниже я подробно расскажу как это сделать):
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color2 Yellow
#property indicator_style2 DRAW_LINE
#property indicator_color3 White
extern int MA_Period=2; // PVI smoothing
extern int ME_Period=10; // EMA for comparison
double PVI[];
double SmoothedPVI[];
double EMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
string shortName="PVI("+MA_Period+") EMA("+ME_Period+")";
IndicatorShortName(shortName);
IndicatorDigits(Digits);
SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,PVI);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,SmoothedPVI);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,EMA);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int pos;
if (Bars<MA_Period) return(-1);
int limit=Bars-2;
double Vol0,Vol1;
//if(ExtCountedBars>2) limit=Bars-ExtCountedBars-1;
PVI[0]=1.0;
for(pos=1;pos<limit;pos++)
{
Vol0=Volume[pos-1];
Vol1=Volume[pos];
if(Vol0>Vol1)
PVI[pos]=PVI[pos-1]*(1+((Close[pos]-Close[pos-1])/Close[pos-1]));
else
PVI[pos]=PVI[pos-1];
}
//simple MA
int limit_s=limit-MA_Period;
double first_value=0.0;
for(int i=0;i<MA_Period;i++)
first_value+=PVI[limit_s+i];
SmoothedPVI[limit_s]=first_value/MA_Period;
pos=limit_s-1;
while(pos>=0)
{
SmoothedPVI[pos]=SmoothedPVI[pos+1]+(PVI[pos]-PVI[pos+MA_Period])/MA_Period;
pos--;
}
//EMA10 for comparison
int limit_e=limit-ME_Period;
double SmoothFactor=2.0/(1.0+ME_Period);
if(limit_e>=0) EMA[limit_e]=PVI[limit_e];
pos=limit_e-1;
while(pos>=0)
{
EMA[pos]=SmoothFactor*PVI[pos+1]+(1-SmoothFactor)*EMA[pos+1];
pos--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Вы можете можете установить этот индикатор просто скопировав приведенный выше программный код в специально созданный для этого, в редакторе кода МТ4, новый файл. Для этого сначала откройте редактор кода (его иконка расположена в верхней панели инструментов торгового терминала):

В открывшемся окне редактора выберите пункт “Создание нового документа” и в выпавших настройках укажите флажком на “Custom Indicator”. Затем жмите кнопку “Next>” (“Далее”):

В следующем окне задайте то имя под которым хотите увидеть его в папке индикаторов торгового терминала:

Заполните ещё одну выпавшую форму следующим образом:

И, наконец, последнюю:

После этого перед вами появится окно для написания программного кода. Нещадным образом удаляйте весь тот текст, который приведен там в качестве шаблона, а вместо него копируйте и вставляйте код приведенный в этой статье.
Теперь останется только скомпилировать введённый код. Для этого найдите в верхнем горизонтальном меню редактора соответствующую кнопку:

Ну вот и всё, снова открывайте торговый терминал, заходите в меню “Вставка — Индикаторы — Пользовательские” и находите там новый, недавно установленный вами индикатор:

Настройка индикатора
В момент установки индикатора на график, терминал предложит вам окно его настроек. Их можно как оставить по умолчанию, так и изменить в соответствии с вашей торговой стратегией или исходя из собственных предпочтений, для последующей более тонкой настройки в процессе обкатки (тестирования).
Существует два основных настраиваемых параметра:
- MA_Period — период сглаживания данных индикатора (по умолчанию стоит значение MA_Period=2);
- ME_Period — период скользящей средней относительно которой PVI даёт свои показания (по умолчанию ME_Period=10).
Их можно настроить во вкладке “Inputs”:

Наиболее важным здесь является значение скользящей средней ME_Period, поскольку именно её степень сглаженности (период) в итоге определяет тот сигнал который даёт индикатор.
Рекомендуемое значение при рабоде с дневными графиками (таймфрейм — один день) ME_Period=255 (по количеству рабочих дней в году). Вышеприведённая статистика (и, соответственно, описанные сигналы) была собрана на основании именно такого периода скользящей.
Значение MA_Period определяет степень сглаженности линии индикатора и чем оно больше, тем меньше будет ложных сигналов. Но вместе с тем вы получите и более сильное запаздывание сигнала. При работе с дневными графиками можно использовать MA_Period=25…50.
При желании можете ещё изменить стиль, цвет и толщину линий индикатора. Для этого достаточно кликнуть по вкладке “Colors” и в открывшемся окне выбрать необходимые вам параметры:

Заключение
Индексы позитивного и негативного объёмов являются важными индикаторами, используемыми аналитиками и трейдерами для того, чтобы предсказать разворот тренда и определить периоды, когда в торговле участвуют крупные игроки. Однако эффективную торговую стратегию нельзя строить на основе одних только этих индикаторов.
Они могут давать важные сигналы для дальнего обнаружения разворота, но нет никаких надежных правил говорящих о том, когда именно этот разворот произойдет. Таким образом, прежде чем открыть позицию, необходимо получить подтверждение разворота со стороны других индикаторов.
Будь то валютный рынок или торговля акциями PVI, опускающийся ниже своего скользящего среднего значения, должен быть подтвержден дополнительными сигналами разворота. Ищите валютную пару, которая сдвинулась в зону перекупленности (с помощью RSI или стохастического осциллятора), приближается к уровню сопротивления или формирует фигуру разворота.
Аналогично NVI и PVI, пересекающие скользящую среднюю снизу вверх, могут быть подтверждены осцилляторами находящимися в зоне перепроданности, сильными уровнями поддержки/сопротивления, разворотными паттернами и т.п.