Страница 1 из 2

VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 06 фев 2016, 16:12
evge
Взвешенная по объему скользящая средняя – это скользящая средняя, для которой в качестве весовой функции используется объем.

Пример:

VWMA-00.png
VWMA-00.png (24.87 КБ) 76122 просмотра


Исходный текст:

Код: Выделить всё

function Initialize()
{
  IndicatorName = "VWMA";   
  PriceStudy = true;   
  AddInput("Input", Inputs.Candle);   
  AddSeries("VWMA", DrawAs.Line, Color.Red);   
  AddParameter("Period", 20, 1);   
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// VWMA (VWMA – Volume-WEIGHTED MOVING AVERAGE) - ВЗВЕШЕННАЯ по объему СКОЛЬЗЯЩАЯ СРЕДНЯЯ 
 var cWMA = 0.0;
 var cZn = 0.0;
 for ( var i=0; i<Period; i++ )
 {     cWMA = cWMA + Input.Close[-i]*Input.Volume[-i];
     cZn = cZn + Input.Volume[-i];
 }
 VWMA = cWMA/cZn;
}

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 15 мар 2016, 15:05
anseredenko
Здравствуйте.
Подскажите, пожалуйста VWMA (Volume-Weighted Moving Average) и VWAP (VolumeWeightedAveragePrice) Это одно и то же?

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 15 мар 2016, 15:41
evge
VWAP (Volume-Weighted Average Price) — это средняя цена взвешенная по объему

VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Вердикт! Да :)

Могу конечно ошибаться, но по смыслу одно и то же

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 16 мар 2016, 10:03
anseredenko
Да, похоже что одно и то же . построил VWAP в XTick и сравнил с вашим в АД. При выставлении одинакового периода - очень похоже.
Правда в Xtick VWAP странно себя ведет- если выставить период =0, то он все равно показывает линию, причем выглядит как с периодом 810.
Ну да ладно.

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 28 май 2016, 13:05
Pavelkor
Здравствуйте!
На мой взгляд не совсем похожи.
Графики с периодом 810 похожи примерно с 19 часов до 21, а в остальное время график XTick идет ниже.
Это хорошо видно в районе 15:30 и 23:30. https://monosnap.com/file/ctFDyk3jwDqcs ... QS52vjQNS#
А график в с периодом 0 в XTick у меня получился совсем не похож на график с периодом 810
Верхний с периодом 0, нижний с периодом 810 https://monosnap.com/file/W7Z4hsq4WoG4d ... vjbYUFXGu#

А добиться похожести графика в XTick с периодом 0 (мне такой нужен) на график в Альфа-Директ ни при каких значениях периода в Альфа-Директ не удалось. :-(

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 19 авг 2016, 13:51
Nurse
VWAP в Xtick считается иначе чем в данном варианте. В Xtick VWAP со значением=0 расчет идет от первой свечки каждого дня и не сдвигается, а как бы расширяется,т.е. точка отсчета всегда стабильная внутри дня, а к ней добавляются новые значения с каждой свечкой. У скользящей средней есть интервал допустим 100 свечек, и с каждой новой свечкой последняя из расчетов выкидывается. VWAP со значением =0 допустим на минутном графике через 10 минут с начала торговли будет похожа на VWMA с периодом 10, через 60 минут на VWMA=60. Я так это себе представляю.
А как бы реализовать в VWMA такую же функцию? при значении = 0, что бы точка отсчета была свечка со временем 10:00 для каждого из дней, а дальше рисовалась в зависимости, от того сколько времени прошло такой и период =) Получится, что всегда будет средняя взвешенная цена за текущий день.

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 19 авг 2016, 14:10
evge
Nurse писал(а):В Xtick VWAP со значением=0 расчет идет от первой свечки каждого дня и не сдвигается


т.е. с начала дня резко изменяется график скользящей?

Вот так?

VWMA-01.png


пока код такой, если что-то не так напишите

Код: Выделить всё

function Initialize()
{
  IndicatorName = "VWMA";   
  PriceStudy = true;   
  AddInput("Input", Inputs.Candle);   
  AddSeries("VWMA", DrawAs.Line, Color.Red);   
  AddParameter("Period", 20);     
  AddParameter("History", 500, 1);   //минимальная загружаемая история для анализа (в барах)

  AddGlobalVariable("Fi", Types.Int, 0);
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// VWMA (VWMA – Volume-WEIGHTED MOVING AVERAGE) - ВЗВЕШЕННАЯ по объему СКОЛЬЗЯЩАЯ СРЕДНЯЯ 

//mod 19.08.2016 evge

 var cWMA = 0.0;
 var cZn = 0.0;

if (BarDate() != BarDate(1)) Fi = CurrentIndex;
var P = Period;
if (Period == 0) P = CurrentIndex - Fi;

 for ( var i=0; i<P; i++ )
 {     cWMA = cWMA + Input.Close[-i]*Input.Volume[-i];
     cZn = cZn + Input.Volume[-i];
 }
 VWMA = cWMA/cZn;
}

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 19 авг 2016, 14:29
Nurse
Именно так. Спасибо вам, большое.
Тут интересна информация именно внутридневная, при такой настройке.

Хм.... с переходом и точкой отсчета от начала дня все супер, а вот то, что к концу дня индикатор превращается в неподвижную ровную линию... надо подумать...

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 19 авг 2016, 14:34
evge
Есть один момент - подзагрузка истории.

Я добавил выше в коде ещё изменение, добавив ещё один параметр, который "не влияет" на работу алгоритма индикатора, но позволяет указать какую историю подгружать для анализа (в барах). Для малых ТФ это будет актуально, т.к. до этого этим занимался параметр Period, но при 0 значении история принудительно подгружаться не будет при нехватке данных для анализа.

Re: VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняя

Добавлено: 19 авг 2016, 14:43
Nurse
УРА!!! Это победа =)
Сравнил с Xtick все сходится тютелька в тютельку. =)
Вопрос. А пересчет индикатора идет ведь каждый раз при изменении цены? Чет жестко это, у меня альфадирект съел 40% мощности процессора с включением индикатора... Добавьте пожалуйста включаемую возможность, пересчитывать 1 раз на каждом баре после его закрытия..
Или откуда такие суровые тормоза могли вылезти?