Если все правильно понял:
1. То, что Вы написали рисует 5 баров назад - то есть в историю, а не экстраполяцию - то есть в будущее.
2. Наименьший индекс - не 1, а 0 - это индекс незавершенного бара.
3. Индикаторный буфер не сможет вывести информацию правее нулевого бара, поскольку для этого у него должен быть отрицательный индекс [-1] - это индекс бара, который будет за текущим.
Судя по вопросу, Вам нужны бары от [-1] до [-5]. Можно использовать объекты.
Судя по вопросу Вам нужны бары от [-1] до [-5]. Можно использовать объекты.
Можно сместить значения в буфере ([5]<-[0] ... [0]<-[-5], а затем сдвинуть график на 5 бар вправо
|
Спасибо за ответ. Но всё рисуется вперёд. SetIndexShift(0,Step);
проблема в том, если от текущего бара нарисовалось 5 точек вперёд, я хочу чтобы когда образуется новый бар у меня мои точки стёрлись и нарисовались следующие 5 вперёд.
Ну так обновите в буфере все точки от
Step
до 0
а зачем вы точками отображаете? сделайте, например пунктир и не морочьтесь со значками, скажем, в нулевой буфер - вся история до 0-го бара линией, а в 1-й буфер Step значений пунктиром со смещением.
Я онуляю
for(i=1;i<=Step;i++){ T4MBuffer[i]=0; }
правильно?
а какой код у пунктира?
Спс
Я онуляю
for(i=1;i<=Step;i++){ T4MBuffer[i]=0; }
правильно?
Вам нужно обнулить буфер на всей истории или, по крайней мере, в пределах видимости, а потом записать новые значения
от i=0, до i=Step;
и сдвинуть график на Step баров вправо
то-есть в сдвинутом буфере прогноза будет присутствовать всего Step значений.
наберите в редактор - SetIndexStyle - наведите в редакторе курсор на это слово и нажмите <F1>
Вам нужно обнулить буфер на всей истории или, по крайней мере, в пределах видимости, а потом записать новые значения
от i=0, до i=Step;
и сдвинуть график на Step баров вправо
то-есть в сдвинутом буфере прогноза будет присутствовать всего Step значений.
SetIndexStyle - наведите курсор на код в редакторе и нажмите <F1>
Подскажите, как обнулить буфер на всей истории.
Спс
for(i=Bars;i>=0;i--) { Buff[i] = EMPTY_VALUE }
впрочем, не обязательно всю историю, достаточно обнулить последние заполненные значения, скажем Step+1 значений, только счёт начинайте не с единицы, как у вас здесь
for(i=1;i<=Step;i++){ T4MBuffer[i]=0; }а с нуля, поскольку в буфере первый бар имеет нулевой индекс
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет всем!
Сделал индикатор который отображает точками значения на несколько баров вперёд. Обновляется точки каждый новай бар на ТФ.
Но старые значения сохраняются. Как можно сделать, чтоба показывались только последние скажем 5(Step) значений.
Благодарю за помощь.