В процессе вычисления значений динамического массива индикаторного буфера для одного из индексов, например, i=10, элементу массива присваивается значение равное 0 (ноль) или NULL, или EMPTY_VALUE.
В Терминале массив отрисовывается без ошибок, так как и задумано :).
В Тестере, для указанных "пустых" значений, прорисовываются вертикальные, вертикально-наклонные линии.
В случае, если осуществляются попытки использования clrNONE и ..., то, например, линия массива (учитывая буферы для заливки) отрисовывается в ТЕСТЕРЕ без необходимых разрывов.
В чём суть? Может кто-нибудь прояснить ситуацию? :)
Что значит массив вносится в буфер?
Может быть имелось ввиду: строки кода, которые связывают индикаторный буфер с динамическим массивом?
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 = 0; // NULL](https://c.mql5.com/3/206/in-tester-01.png)
Вот, как - то так всё выглядит ...
А вы, случаем, не Шерх? :)
Я пытался отрисовывать с помощью PlotIndexSetDouble(11,PLOT_EMPTY_VALUE, EMPTY_VALUE) или PlotIndexSetDouble(14,PLOT_EMPTY_VALUE, 0), но в этом случае вертикальные линии отрисовываются не только в тестере, но и в терминале.
А вы, случаем, не Шерх? :)
Да, есть такой позывной :)
Да, есть такой позывной :)
Оо, какие люди тут :) давно видел вашу модель и переписывались как-то давно. То-ли на форуме фхклаб то-ли где, не помню, я тогда еще волновым анализом увлекался.
Разве в МТ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, то я не знаю :)
Не подумал, что необходимо. Прошу прощения. :)
Что значит массив вносится в буфер?
Может быть имелось ввиду: строки кода, которые связывают индикаторный буфер с динамическим массивом?
Вот, как - то так всё выглядит ...
Так сначала задаются пустые, а потом они заполняются. Или я не понял, что нужно? Просто рисуются не свечи, а бары, надо тестере бары настроить
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;
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В процессе вычисления значений динамического массива индикаторного буфера для одного из индексов, например, i=10, элементу массива присваивается значение равное 0 (ноль) или NULL, или EMPTY_VALUE.
В Терминале массив отрисовывается без ошибок, так как и задумано :).
В Тестере, для указанных "пустых" значений, прорисовываются вертикальные, вертикально-наклонные линии.
В случае, если осуществляются попытки использования clrNONE и ..., то, например, линия массива (учитывая буферы для заливки) отрисовывается в ТЕСТЕРЕ без необходимых разрывов.
В чём суть? Может кто-нибудь прояснить ситуацию? :)