Исключение незавершенных свеч

Страницы: 1
RSS
Исключение незавершенных свеч
 
Добрый день.
Подскажите как в индикаторе проверить что свеча незавершенная.
Иначе получается, что значения сохраняемые через замыкания, постоянно обновляются во время изменения последней свечи, как результат весь индикатор считается правильно только при перерисовке с нуля, динамически он уже нормально не работает.
 
Цитата
eSKon2 написал:
проверить что свеча незавершенная
Это сделать принципиально невозможно, так как мы не можем знать, следующий тик будет относиться к последней свече или уже к новой. Для решения этой проблемы можно использовать два подхода:
1. Рассчитывать индикатор только до предыдущей свечи, ибо тут мы точно знаем, что она завершена. В помощь функция SetValue(), позволяющая задать значение любой свечи, в том числе n-1. Подходит, если необязательно знать значение индикатора для последней свечи.

2. Если надо, чтобы индикатор работал "динамически", т.е. обновлялся на последней свече вместе с ней самой, используется специальная техника, которая заключается в сохранении каждый раз "внутреннего состояния" индикатора - набора переменных. Это позволяет последнюю изменяющуюся свечу каждый раз рассчитывать как будто новую.
 
Цитата
SDL написал:
Цитата
eSKon2 написал:
проверить что свеча незавершенная
Это сделать принципиально невозможно, так как мы не можем знать, следующий тик будет относиться к последней свече или уже к новой. Для решения этой проблемы можно использовать два подхода:
1. Рассчитывать индикатор только до предыдущей свечи, ибо тут мы точно знаем, что она завершена. В помощь функция SetValue(), позволяющая задать значение любой свечи, в том числе n-1. Подходит, если необязательно знать значение индикатора для последней свечи.

2. Если надо, чтобы индикатор работал "динамически", т.е. обновлялся на последней свече вместе с ней самой, используется специальная техника, которая заключается в сохранении каждый раз "внутреннего состояния" индикатора - набора переменных. Это позволяет последнюю изменяющуюся свечу каждый раз рассчитывать как будто новую.
Ну, собственно, пока ответа ждал, задачу решил вторым методом. При запуске, если номер свечи остался прежним, восстанавливаю сохраненное состояние. Кривовато и нечитабельно, но работает.
 
Цитата
SDL написал:
Это сделать принципиально невозможно, так как мы не можем знать, следующий тик будет относиться к последней свече или уже к новой.
Зачем вообще присылаются незавершенные свечи, если делается подписка на определенный таймфрейм?

Ведь в этом случае пользователь фактически говорит о том, что его интересуют только завершенные свечи. А критерий завершения свечи известен - это критерий времени, например, если это минутный таймфрейм - то момент окончания свечи это начало новой минуты.
 
Цитата
eSKon2 написал:
Добрый день.
Подскажите как в индикаторе проверить что свеча незавершенная.
Иначе получается, что значения сохраняемые через замыкания, постоянно обновляются во время изменения последней свечи, как результат весь индикатор считается правильно только при перерисовке с нуля, динамически он уже нормально не работает.
очень просто, если время свечи текущего отсчета равно времени предыдущего, то свеча не завершена.
еще есть флаг закрытой свечи (см док на QLUA)
 
Если я ничего не путаю, то строго говоря значения могут приезжать не только в последнюю свечу.
Но точно это нюанс подзабыл
 
Да это ерунда на самом деле. На неликвиде в свечу может приходить только одна сделка
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
Страницы: 1
Читают тему
Наверх