Отрисовка массива в Тестере

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vjacheslav Lapaev
1451
Vjacheslav Lapaev  

В процессе вычисления значений динамического массива индикаторного буфера для одного из индексов, например, i=10, элементу массива присваивается значение равное 0 (ноль) или NULL, или EMPTY_VALUE.


В Терминале массив отрисовывается без ошибок, так как и задумано :).

В Тестере, для указанных "пустых" значений, прорисовываются вертикальные, вертикально-наклонные линии.

В случае, если осуществляются попытки использования clrNONE и ..., то, например, линия массива (учитывая буферы для заливки) отрисовывается в ТЕСТЕРЕ без необходимых разрывов.


В чём суть? Может кто-нибудь прояснить ситуацию? :) 

Aleksey Semenov
3609
Aleksey Semenov  
можно посмотреть как отрисовывается индикатор типа зигзаг и сравнить со своим
Alexey Volchanskiy
27264
Alexey Volchanskiy  
Vjacheslav Lapaev:

В процессе вычисления значений динамического массива индикаторного буфера для одного из индексов, например, i=10, элементу массива присваивается значение равное 0 (ноль) или NULL, или EMPTY_VALUE.


В Терминале массив отрисовывается без ошибок, так как и задумано :).

В Тестере, для указанных "пустых" значений, прорисовываются вертикальные, вертикально-наклонные линии.

В случае, если осуществляются попытки использования clrNONE и ..., то, например, линия массива (учитывая буферы для заливки) отрисовывается в ТЕСТЕРЕ без необходимых разрывов.


В чём суть? Может кто-нибудь прояснить ситуацию? :) 

Да, мы сейчас включим телепатические способности и увидим твой экран!! Скриншот трудно прислать? И строчки кода, где массив заносится в буфер.
Vladislav Boyko
1881
Vladislav Boyko  
Возможно, терминал не считает пустыми ваши пустые значения и рисует их. Попробуйте установить пустое значение в SetIndexEmptyValue().
Vjacheslav Lapaev
1451
Vjacheslav Lapaev  
Не подумал, что необходимо. Прошу прощения. :)

Что значит массив вносится в буфер? 
Может быть имелось ввиду: строки кода, которые связывают индикаторный буфер с динамическим массивом?
SetIndexBuffer(11,qUQ1,INDICATOR_DATA);
SetIndexBuffer(12,qLQ1,INDICATOR_DATA);
SetIndexBuffer(13,qUQ2,INDICATOR_DATA);
SetIndexBuffer(14,qLQ2,INDICATOR_DATA);
//---
ArrayInitialize(qUQ1,EMPTY_VALUE);
ArrayInitialize(qLQ1,EMPTY_VALUE);
   
ArrayInitialize(qUQ2,EMPTY_VALUE);
ArrayInitialize(qLQ2,EMPTY_VALUE);
//---

if(i==m-1) qUQ1[pos+i]=Eq[pos+i]-mUQ; else qUQ1[pos+i]=NULL; 
if(i==m-1) qLQ1[pos+i]=Eq[pos+i]-mLQ; else qLQ1[pos+i]=NULL;               
               
if(i==m-1) qUQ2[pos+i]=Eq[pos+i]+mUQ; else qUQ2[pos+i]=NULL;
if(i==m-1) qLQ2[pos+i]=Eq[pos+i]+mLQ; else qLQ2[pos+i]=NULL;
f.e. if qUQ1 = 0; // NULL

f.e. if qUQ1 = EMPTY_VALUE;


Вот, как - то так всё выглядит ...

Maxim Dmitrievsky
19140
Maxim Dmitrievsky  
Vjacheslav Lapaev:

А вы, случаем, не Шерх? :)

Vjacheslav Lapaev
1451
Vjacheslav Lapaev  
Разве в МТ5 сохранился SetIndexEmptyValue() ?

Я пытался отрисовывать с помощью 
PlotIndexSetDouble(11,PLOT_EMPTY_VALUE, EMPTY_VALUE) или PlotIndexSetDouble(14,PLOT_EMPTY_VALUE, 0), но в этом случае вертикальные линии отрисовываются не только в тестере, но и в терминале.
Vjacheslav Lapaev
1451
Vjacheslav Lapaev  
Maxim Dmitrievsky:

А вы, случаем, не Шерх? :)

Да, есть такой позывной :)

Maxim Dmitrievsky
19140
Maxim Dmitrievsky  
Vjacheslav Lapaev:

Да, есть такой позывной :)

Оо, какие люди тут :) давно видел вашу модель и переписывались как-то давно. То-ли на форуме фхклаб то-ли где, не помню, я тогда еще волновым анализом увлекался.

Vladislav Boyko
1881
Vladislav Boyko  
Vjacheslav Lapaev:
Разве в МТ5 сохранился SetIndexEmptyValue() ?

Я пытался отрисовывать с помощью 
PlotIndexSetDouble(11,PLOT_EMPTY_VALUE, EMPTY_VALUE) или PlotIndexSetDouble(14,PLOT_EMPTY_VALUE, 0), но в этом случае вертикальные линии отрисовываются не только в тестере, но и в терминале.

Может я что-то неправильно понял, но вы сначала инициализируете EMPTY_VALUE, а потом присваиваете NULL.

Попробуйте "запомнить" пустое значение, которое устанавливаете в PlotIndexSetDouble(plot_index,PLOT_EMPTY_VALUE, ...).

const double BUFFER_EMPTY_VALUE = EMPTY_VALUE;

void OnInit() 
  { 
   PlotIndexSetDouble(plot_index,PLOT_EMPTY_VALUE, BUFFER_EMPTY_VALUE);
  }

А потом посмотрите что вернет buffer[i] == BUFFER_EMPTY_VALUE на барах с вертикальными линиями (buffer - индикаторный буфер, i - индекс бара с той вертикальной линией).

Если true, то я не знаю :)

Alexey Volchanskiy
27264
Alexey Volchanskiy  
Vjacheslav Lapaev:
Не подумал, что необходимо. Прошу прощения. :)

Что значит массив вносится в буфер? 
Может быть имелось ввиду: строки кода, которые связывают индикаторный буфер с динамическим массивом?



Вот, как - то так всё выглядит ...

Так сначала задаются пустые, а потом они заполняются. Или я не понял, что нужно? Просто рисуются не свечи, а бары, надо  тестере бары настроить

if(i==m-1) qUQ1[pos+i]=Eq[pos+i]-mUQ; else qUQ1[pos+i]=NULL; 
if(i==m-1) qLQ1[pos+i]=Eq[pos+i]-mLQ; else qLQ1[pos+i]=NULL;               
               
if(i==m-1) qUQ2[pos+i]=Eq[pos+i]+mUQ; else qUQ2[pos+i]=NULL;
if(i==m-1) qLQ2[pos+i]=Eq[pos+i]+mLQ; else qLQ2[pos+i]=NULL;
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий