Обсуждение статьи "Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5" - страница 10

 
Здравствуйте, кто-нибудь знает, как модифицировать код 'ClassExpert' для построения недельного или месячного профиля рынка? Я прошу помощи
 
Здравствуйте, я не могу найти прикрепленные файлы! Только прайс-гистограмма.
 
Thiago Duarte:

Удалите команду "Delete()", и все заработает.

На самом деле функция delete была объявлена без типа; задав ей значение "void", она снова будет работать корректно.
 

Привет, ребята, мне очень понравился этот индикатор, я изучал рыночный профиль некоторое время, и это лучшее, что я нашел.


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


Вы согласны?


Изменение, которое я сделал, показало различия между двумя методами

 
Здравствуйте, кто-нибудь знает, можно ли сделать так, чтобы робот предавал только эти строки POC? если да, то как это сделать? потому что я тестирую все переменные в файле ClassPriceHistogram, а значения все нулевые, может кто-нибудь мне помочь?
 
Привет, Луис@Луис Винисиус Перейра Роча - так вот, я новичок в программировании, и я работал над советником, который отслеживал только POC, высокие и низкие оценки, и в итоге я нашел этот индикатор. Однако я не смог найти место, где он хранит точки Poc, когда я использую функцию печати на некоторых переменных автора, таких как: Poc_value, появляются нулевые значения. Вы можете мне помочь?
 

Здравствуйте Дмитрий,

прежде всего: Спасибо за Вашу замечательную статью и работу!

Несмотря на то, что вы давно ее опубликовали, она отлично работает.

У меня для вас и сообщества есть обновление, чтобы гистограмма использовала тиковый объем, потому что использование только прайс экшн во временных областях, где объем почти нулевой, не очень помогает.

Замените соответствующий код в файле ClassPriceHistogram.mqh


bool CPriceHistogram::calculationPOCs()
  {
   int rates_total,rates_high,rates_time,rates_tv,index;
   double iHigh[],iLow[];
   long iTV[];
   datetime iTime[];
// Ïîëó÷àåì äàííûå çà ïåðèîä ñ âðåìåíè_start äî âðåìåíè_end / Мы получаем данные от времени_start до времени_end
   int err=0;
   do
     {
      rates_time=CopyTime(NULL,PERIOD_M1,time_start,time_end,iTime);
      rates_high=CopyHigh(NULL,PERIOD_M1,time_start,time_end,iHigh);
      rates_total=CopyLow(NULL,PERIOD_M1,time_start,time_end,iLow);
      
      rates_tv=CopyTickVolume(NULL,PERIOD_M1,time_start,time_end,iTV);
      
      err++;
     }
   while((rates_time<=0 || (rates_total!=rates_high || rates_total!=rates_time || rates_tv!=rates_time)) && err<AMOUNT_OF_ATTEMPTS);
   if(err>=AMOUNT_OF_ATTEMPTS)
     {
      return(false);
     }
   poc_start_time=iTime[0];
   high_day=iHigh[ArrayMaximum(iHigh,0,rates_total)];
   low_day=iLow[ArrayMinimum(iLow,0,rates_total)];
   int count=int((high_day-low_day)/_Point)+1;
// Ïîäñ÷åò äëèòåëüíîñòè íàõîäæäåíèÿ öåíû íà êàæäîì óðîâíå / Подсчет продолжительности нахождения цены на каждом уровне
   int ThicknessOfLevel[];    // ñîçäàåì ìàññèâ äëÿ ïîäñ÷åòà òèêîâ / создаем массив для подсчета тиков
   ArrayResize(ThicknessOfLevel,count);
   ArrayInitialize(ThicknessOfLevel,0);
   for(int i=0;i<rates_total;i++)
     {
      double C=iLow[i];
      long CTV=iTV[i];
      // Распределите тиковый объем минутного бара по всем возможным точкам бара
      // Таким образом, приращение на точку будет таким ...
      int CInc=int(((iHigh[i]-iLow[i])/_Point));  
      while(C<iHigh[i])
        {
         int Index=int((C-low_day)/_Point);
         ThicknessOfLevel[Index]+=CInc;
         C+=_Point;
        }
     }


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

Вот пример с индексом SP500:


Левая сторона оригинальный код. Правая сторона с tickvolume

 

Уважаемый Дмитрий

Надеюсь, у вас все хорошо.

Не могли бы вы реализовать буферы для линий?

Для каждого POC, возможно, Vwap и Median?


Заранее большое спасибо

 
Просто предупреждаю... Я скачал все файлы в соответствующие директории, скомпилировал, и получил ошибки относительно ClassPriceHistogram.mqh. В строке 375 я просто заменил
CPriceHistogram::Delete()

на

void CPriceHistogram::Delete()

Теперь все работает в AMP Futures в MT5 версии 5.00 Build 3661.

@Oleksandr, этот "индикатор" технически является Экспертом. Буферы индикатора недоступны в экспертах. Буферы могут быть эффективно воссозданы с помощью массивов в Экспертах, но только настоящие буферы индикаторов могут быть вызваны iCustom, поэтому для этого придется кодить новый пользовательский индикатор с нуля. К сожалению, оба варианта находятся за пределами моего уровня способностей к кодированию. Удачи вам в поисках лучшей помощи.

 
Есть ли способ построить график текущей видимости?


СПАСИБО.