Скачать MetaTrader 5

Индикаторы: TicksVolume

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Automated-Trading
Админ
106053
Automated-Trading  

TicksVolume:

Индикатор тиковых объемов. Показывает изменение цены с увеличением и понижением.

TicksVolume

Автор: Alexey Viktorov

Pavel Veselov
8180
Pavel Veselov  
Automated-Trading:

TicksVolume:

Автор: Alexey Viktorov

Хороший индюк. Тоже давно бьюсь над таким же только с использованием значений объемов, а не цены. И что бы история рисовалась. С историей пока не получается.

Такой вопрос: а нужно ли использовать Ask для расчетов? По моему бида достаточно, ведь график цены он рисует. Аналогично попробовал заменить его в коде на Close, работает на ура без лишних вычислений.
Думаю будет разумно снизить нагрузку на процессор. 

Alexey Viktorov
13966
Alexey Viktorov  

Весь вопрос в совпадении суммы этих объёмов с Volume терминала.

Что касается нагрузки, поставь uint  GetTickCount(); и покажи результат. Я не пробовал замерять, не вижу необходимости.

Pavel Veselov
8180
Pavel Veselov  
Alexey Viktorov:

Весь вопрос в совпадении суммы этих объёмов с Volume терминала.

Что касается нагрузки, поставь uint  GetTickCount(); и покажи результат. Я не пробовал замерять, не вижу необходимости.

Да не, замерять тоже не буду)) Просто предложил оптимизировать. Море состоит из маленьких капель)

На счет совпадения сумм - явно не совпадают, но тут разница в поставленных задачах.
Я делал на основе iVolume и в принципе меня результат устраивает. Вот что я делал с историей. Может быть пригодится.

   while(i>=0){                      // Цикл по непосчитанным барам

      //-- Получение значений Hight, Open, Close, Low из MA.
      double hs=iMA(NULL,0,smooth,0,s_metod,PRICE_HIGH,i);
      double os=iMA(NULL,0,smooth,0,s_metod,PRICE_OPEN,i);
      double cs=iMA(NULL,0,smooth,0,s_metod,PRICE_CLOSE,i);
      double ls=iMA(NULL,0,smooth,0,s_metod,PRICE_LOW,i);
      double bl=100000*(hs-os+cs-ls); // бычье движение
      double br=100000*(os-ls+hs-cs); // медвежье движение
      double all=bl+br; // суммарное движение
      
      if (all!=0){double pbl=bl/all;double pbr=br/all;} // коэффициент быков/медведей от общего
      
      vlm=iVolume(NULL,0,i);//получение значения объема
      
      //-- значение в частях объемов
               Buf_0[i]=vlm*pbl; Buf_0[i]=ema(Buf_0,smuth_wave_5,i);// сглаженный объем быков
               Buf_1[i]=vlm*pbr; Buf_1[i]=ema(Buf_1,smuth_wave_5,i);// сглаженный объем медведей
                
      Buf_3[i]=vlm;Buf_3[i]=ema(Buf_3,smuth_wave_5,i);

   i--;                          // Расчёт индекса следующего бара
   }
Alexey Viktorov
13966
Alexey Viktorov  
Ciberpol:

Да не, замерять тоже не буду)) Просто предложил оптимизировать. Море состоит из маленьких капель)

На счет совпадения сумм - явно не совпадают, но тут разница в поставленных задачах.
Я делал на основе iVolume и в принципе меня результат устраивает. Вот что я делал с историей. Может быть пригодится.

Затраты на уменьшение капли не всегда бывают оправданы полученным результатом. Если есть конкретные предложения по оптимизации кода, я с удовольствием выслушаю.

Дальше по твоему коду, здесь что-то совсем другое и не совсем понятна цель этого колдовства. Но завершение вообще выводит из умственного равновесия.

      //-- значение в частях объемов
               Buf_0[i]=vlm*pbl; Buf_0[i]=ema(Buf_0,smuth_wave_5,i);// сглаженный объем быков
               Buf_1[i]=vlm*pbr; Buf_1[i]=ema(Buf_1,smuth_wave_5,i);// сглаженный объем медведей
                
      Buf_3[i]=vlm;Buf_3[i]=ema(Buf_3,smuth_wave_5,i);

Зачем заполнять буфер каким-то значением и тут-же перезаполнять его другим?

На этом давай закончим обсуждение этого кода. Если есть желание создай отдельную ветку и там продолжим.

Pavel Veselov
8180
Pavel Veselov  
Alexey Viktorov:

Затраты на уменьшение капли не всегда бывают оправданы полученным результатом. Если есть конкретные предложения по оптимизации кода, я с удовольствием выслушаю.

Дальше по твоему коду, здесь что-то совсем другое и не совсем понятна цель этого колдовства. Но завершение вообще выводит из умственного равновесия.

Зачем заполнять буфер каким-то значением и тут-же перезаполнять его другим?

На этом давай закончим обсуждение этого кода. Если есть желание создай отдельную ветку и там продолжим.

Жаль что тебя не радует проявление интереса к твоему индикатору. Я не против закончить демогогию.

По поводу моего кода и заполнения буфера другим содержимым - это моя функция сглаживания, она отличается от стандартных и выдает визуально более правильный результат движения. Поэтому я ее не публикую в открытый доступ.

Буду рад поделиться опытом в своей ветке ;) Если она когда нибудь будет) 

Alexey Viktorov
13966
Alexey Viktorov  
Pavel Veselov:

Жаль что тебя не радует проявление интереса к твоему индикатору. Я не против закончить демогогию.

По поводу моего кода и заполнения буфера другим содержимым - это моя функция сглаживания, она отличается от стандартных и выдает визуально более правильный результат движения. Поэтому я ее не публикую в открытый доступ.

Буду рад поделиться опытом в своей ветке ;) Если она когда нибудь будет) 

Интерес к моему коду меня безусловно радует, а ещё больше радует тот факт что не критикуют этот код. Может быть нет причин? Да и демагогией я не называл наш диалог... А вот каким боком сглаживание приклеить к тупому подсчёту тиков не понимаю.
Vasyl Nosal
19160
Vasyl Nosal  
Троль.
sergionnik
11
sergionnik  
Павел, привет. Возможно ввести в индикатор ещё одну функцию? Это Volime : (open - close). Достаточное интересное значение.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий