Ошибки, баги, вопросы - страница 3034
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему тогда индикатор не может их получить при первом запросе?
Как сделать нормальный мульти-ТФ (а в идеале — и мульти-символьный) индикатор без применения таймера?
При первом запросе индикатор может не получить данные со своего символа но другого таймфрейма только по одной причине - нужная таймсерия ещё не построена или уже уничтожена по прошествии какого-то времени, когда не было обращений.
После неудачного запроса просто пошлите своему графику команду на обновление и тут же завершайте работу OnCalculate. Гарантированно будет вызвана OnCalculate и гарантированно нужные таймсерии к этому моменту будут подготовлены
При первом запросе индикатор может не получить данные со своего символа но другого таймфрейма только по одной причине - нужная таймсерия ещё не построена или уже уничтожена по прошествии какого-то времени, когда не было обращений.
После неудачного запроса просто пошлите своему графику команду на обновление и тут же завершайте работу OnCalculate.
Гарантированно будет вызвана OnCalculate и гарантированно нужные таймсерии к этому моменту будут подготовлены
Подскажите, на первом вызове индикатора, к примеру расчёт пробегается в цикле по всем данным.
И если в этом цикле был неудачный запрос, что возвращать в return ?
limit+1 на котором был неудачный запрос?
Или что? Что то не могу понять этот момент.
Подскажите, на первом вызове индикатора, к примеру расчёт пробегается в цикле по всем данным.
И если в этом цикле был неудачный запрос, что возвращать в return ?
limit+1 на котором был неудачный запрос?
Или что? Что то не могу понять этот момент.
Самостоятельно проверить не можете?
Сегодня на страницах работ фриланса появилась ошибка:
Браузер хром. С чем это связано?
Спасибо за сообщение. Исправили
Самостоятельно проверить не можете?
Проверить то можно, только что проверять, когда нет понимания ))
Да и моделировать момент, когда данные ещё не готовы, не представляю возможным.
Хочется понять теорию, как правильно работать с OnCalculate в данном примере.
Если данные не готовы на текущей итерации цикла, нужно счётчик limit+1 возвращать, или что?
Проверить то можно, только что проверять, когда нет понимания ))
Да и моделировать момент, когда данные ещё не готовы, не представляю возможным.
Хочется понять теорию, как правильно работать с OnCalculate в данном примере.
Если данные не готовы на текущей итерации цикла, нужно счётчик limit+1 возвращать, или что?
Ноль возвращать нужно.
4. Все таймсерии обрабатываются по порядку, от младшей к старшей. Сначала применение тика, потом расчёт всех индикаторов, созданных на данной таймсерии. Если вы из индикатора, работающего на M1, спрашиваете данные для этого же символа H1, то вы никогда не получите данных с применённым тиком. Данные всегда будут на один тик назад, какие бы ухищрения вы не применяли. Потому что один поток на символ с последовательной обработкой таймфреймов.
Утверждение получилось немного двусмысленное. На всякий случай уточняю. Да, при обработке тика все таймсерии обрабатываются по порядку, от младшей к старшей. Каждый тик добавляется к данным каждой таймсерии, затем производится расчет индикаторов на каждой таймсерии, по порядку. Т.е. для индикатора в OnCalculate() данные самих таймсерий (всех) безусловно обновленные, но данные индикаторов старших таймфреймов еще не пересчитаны.
При первом запросе индикатор может не получить данные со своего символа но другого таймфрейма только по одной причине - нужная таймсерия ещё не построена или уже уничтожена по прошествии какого-то времени, когда не было обращений.
После неудачного запроса просто пошлите своему графику команду на обновление и тут же завершайте работу OnCalculate. Гарантированно будет вызвана OnCalculate и гарантированно нужные таймсерии к этому моменту будут подготовлены
Это похоже на использование молотка, чтобы поймать муху.
Как вы знаете, эта команда обновляет все индикаторы на всех графиках рассматриваемого символа. Если у вас есть несколько индикаторов на нескольких графиках одного символа, вы можете легко получить своего рода цикл, поскольку каждый индикатор будет отправлять свою собственную команду ChartSetSymbolPeriod ().
Не могли бы вы добавить команду для обновления только индикатора ТЕКУЩИЙ?
Это похоже на использование молотка, чтобы поймать муху.
Как вы знаете, эта команда обновляет все индикаторы на всех графиках рассматриваемого символа. Если у вас есть несколько индикаторов на нескольких графиках одного символа, вы можете легко получить своего рода цикл, поскольку каждый индикатор будет отправлять свою собственную команду ChartSetSymbolPeriod ().
Не могли бы вы добавить команду для обновления только индикатора ТЕКУЩИЙ?
Можно всё что угодно получить если есть логические ошибки в коде.
Вообще-то OnTick не синхронизирован с OnCalculate по одному и тому же символу. Теоретически OnTick может запаздать и к его началу уже все индики на всех ТФ будут рассчитаны?
Пока вижу обратную ситуацию - индикаторы не рассчитаны с приходом нового тика на момент открытия бара.