Индикатор при определённых условиях рисует стрелки через буфера:
На следующей свечке сигнал повторяется, но с небольшими изменениями, которые важны. Таким образом, более "свежий" сигнал является более точным, и, поэтому, предыдущий надо удалить. Не принципиально, но не хочется загромождать чарт.
Вопрос:
Можно ли как-то решить этот вопрос иначе, нежели через ObjectDelete() ? Без присвоения каждой стрелке object_name, просто....ну, не знаю... через BufferDn[i+2] или что-то в этом роде?
Насколько я понял, в коде нет графических объектов. Поэтому ObjectDelete не поможет (нет объектов). Стрелка отображается как результат занесения значения в буфер индикатора. Значит, нужно найти бар (или заранее запомнить дату/время этого бара), на котором отображается предыдущая стрелка, и присвоить элементу буфера этого бара значение EMPTY_VALUE или 0 (в зависимости от того, что выбрано в качестве пустого значения).
Насколько я понял, в коде нет графических объектов. Поэтому ObjectDelete не поможет (нет объектов). Стрелка отображается как результат занесения значения в буфер индикатора. Значит, нужно найти бар (или заранее запомнить дату/время этого бара), на котором отображается предыдущая стрелка, и присвоить элементу буфера этого бара значение EMPTY_VALUE или 0 (в зависимости от того, что выбрано в качестве пустого значения).
То есть, вот просто BufferDn[i+2] = 0; и всё?
(в зависимости от того, что выбрано в качестве пустого значения). = вот это не понял................То есть, вот просто BufferDn[i+2] = 0; и всё?
Если стрелка была на баре i + 2, то все. А если нет, то нужно найти, где она была до этого.
По умолчанию считается, что величина EMPTY_VALUE, записанная в буфер, означает отсутствие показаний индикатора. То есть на таком баре индикатор ничего не отображает. Но можно изменить это значение на любое другое при помощи
SetIndexEmptyValue(<буфер>, <значение>);
Всё заработало, Игорь, Большое Спасибо!
Ну вот и отлично.
Ну вот и отлично.
А со сторонним индикатором такое возможно реализовать? Пример: Индикатор отображает стрелки, необходимо некоторые убрать, могу ли я через обращение к буферу присвоить индикатору, без исходника, значение EMPTY_VALUE ?
А со сторонним индикатором такое возможно реализовать? Пример: Индикатор отображает стрелки, необходимо некоторые убрать, могу ли я через обращение к буферу присвоить индикатору, без исходника, значение EMPTY_VALUE ?
Если без исходника, то можно только написав свой индикатор на основе этого подключенного посредством #resource
Если без исходника, то можно только написав свой индикатор на основе этого подключенного посредством #resource
Спасибо. Если не сложно, уточните пожалуйста. Я подключаю свой индикатор
#resource "\\Indicators\\SampleIndicator.ex4"
Фактически он ничего не выведет, но будет формировать значения, и я просто буду получать его данные через
double value=iCustom(_Symbol,_Period,"::Indicators\\SampleIndicator.ex4",0,0);
Я правильно понимаю?
Спасибо. Если не сложно, уточните пожалуйста. Я подключаю свой индикатор
Фактически он ничего не выведет, но будет формировать значения, и я просто буду получать его данные через
Я правильно понимаю?
Теоретически правильно.
И синтаксис на первый взгляд правильно. Но для точного ответа надо смотреть документацию, я никогда не старался запомнить правильность написания
Теоретически правильно.
И синтаксис на первый взгляд правильно. Но для точного ответа надо смотреть документацию, я никогда не старался запомнить правильность написания
Решение я взял с документации, проверить пока что нет возможности. Спасибо вам за уточнение.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый День!
Индикатор при определённых условиях рисует стрелки через буфера:
На следующей свечке сигнал повторяется, но с небольшими изменениями, которые важны. Таким образом, более "свежий" сигнал является более точным, и, поэтому, предыдущий надо удалить. Не принципиально, но не хочется загромождать чарт.
Вопрос:
Можно ли как-то решить эту задачу иначе, нежели через ObjectDelete() ? Без присвоения каждой стрелке object_name, просто....ну, не знаю... через BufferDn[i+2] = 0; или что-то в этом роде?