Ошибки, баги, вопросы - страница 1805
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Запросто. Приходит первый тик нового бара. Буфер распределён на 1000 баров и полностью заполнен.
Делаем перераспределение буфера на 1250 баров, копируем в новый буфер 1000 баров из прежнего буфера. Новый буфер выставляем вместо прежнего буфера, прежний буфер удаляем. Добавляем 1001-й бар.
Что значит "как с ним быть"?
Имейте в виду, что все индикаторы одного символа считаются последовательно друг за другом в одном потоке. Если какой-то индикатор тормозит, то тормозится и весь поток обработки символа
Про один поток - это я в курсе. А перераспределение, как я понял, влияет на OnBookEvent() сильнее, чем на OnCalculate()?
Но пока индикатор (любой индикатор на этом символе!) не закончит какой-либо расчёт (OnCalculate, OnTimer, OnChartEvent, OnBookEvent), новый тик не поступит на обработку.
Перераспределение производится при приходе нового тика. Сразу после прихода нового тика вне очереди вызывается OnCalculate. И только после этого продолжается обработка событий, поступивших индикатору
Но пока индикатор (любой индикатор на этом символе!) не закончит какой-либо расчёт (OnCalculate, OnTimer, OnChartEvent, OnBookEvent), новый тик не поступит на обработку.
Еще, насколько я понимаю, индикаторы на одном символе рассчитываются последовательно, т.е. если я кинул последовательно индикатор i1, i2, i3, то и рассчитываться они будут в том же порядке?
Сейчас для теста добавил еще стандартный МАКД, он последний в списке, посмотрю будет ли на нем подвисание с образованием нового бара.
Еще, насколько я понимаю, индикаторы на одном символе рассчитываются последовательно, т.е. если я кинул последовательно индикатор i1, i2, i3, то и рассчитываться они будут в том же порядке?
Сейчас для теста добавил еще стандартный МАКД, он последний в списке, посмотрю будет ли на нем подвисание с образованием нового бара.
Но если Вы будете удалять-добавлять разные индикаторы, то последовательность пересчёта может Вас удивить. Поэтому не закладывайтесь на последовательность
По началу - да, расчёт будет в той же последовательности.
Но если Вы будете удалять-добавлять разные индикаторы, то последовательность пересчёта может Вас удивить. Поэтому не закладывайтесь на последовательность
Вот о чем я говорил:
По GOLD-3.17 образовался новый бар, по всем моим индикаторам, рассчитываемым в OnBookEvent() по этому символу все текущие значения обнулились. По логике индикатора, в момент формирования нового бара буферы не обнуляются, а в них сразу же записывается текущее значение. МАКД не обнулился. Журнал пуст, значит рассинхронизации не было, все значения должны были быть корректны. В данном случае глюк продолжался секунд 5. Вчера ловил по несколько минут глюки.
Все остальные символы - нормально. Повторюсь, в логику индикатора не заложен сброс значений в 0! Поэтому вопрос: при перераспределении новые элементы, по идее, должны содержать мусор. А тут 0.0 и зависание...
Да, еще: если бы завис один индикатор, остальные должны были бы сохранить свои значения?! А тут все, разом обнулились. Есть ситуации, когда такое может быть?Аналогичное зависание произошло по BR-3.17:
@Slawa есть идеи в какую сторону копать? Может быть есть более оптимальный способ сбора биржевых данных и их отображения?
Что делать в случае возникновения такой ошибки при загрузке MQL-программы на график?
Сервисдеск: #1673705
Имейте в виду, что все индикаторы одного символа считаются последовательно друг за другом в одном потоке. Если какой-то индикатор тормозит, то тормозится и весь поток обработки символа
На Metaquotes-Demo лимитники могут иметь отрицательное проскальзывание - не правильно.
Выставите вручную BuyLimit выше Ask...