Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кстати, по поводу функции Bars(). Возможно - это причина клинча.
Котиры могут идти по всем символам, кроме интересуемого.
Ладно, посмотрел новый исходник. Увидел, что правки, которые обсуждали, не сделаны. Выхожу.
Использовать SYMBOL_TIME имеет смысл лишь в том случае, когда запрашиваемого символа нет в окне "Обзор рынка". Тогда TimeCurrent не будет справляться со своей задачей. Но мне представляется маловероятным такой вариант использования Bars. Зато цена получения текущего времени через SYMBOL_TIME намного выше, потому как SymbolInfoInteger(symbol_name,SYMBOL_TIME) работает почти на порядок дольше. Можно, конечно, выяснять, есть ли такой символ в обзоре рынка и в зависимости от результата использовать TimeCurrent или SYMBOL_TIME, но это тоже не бесплатно, тем более все время нужно мониторить, не добавился или удалился ли новый символ из обзора рынка. Поэтому проще сделать оговорку, что для корректной работы iBars целесообразно чтобы запрашиваемый символ был в обзоре рынка.
Про SERIES_LASTBAR_DATE я думаю, что Вы не правы. SymbolInfoInteger(symbol_name,SYMBOL_TIME) - это меньшее зло.
Никакой подкачки истории функция SeriesInfoInteger не вызывает. Если что ее и вызывает, то это запрос Bars, что логично. И источник тормозов видно из этого короткого скрипта, если его запустить
Вообще очень странный баг. Я проверил влияние на него истории закачки, когда обнаружил, что вдруг сегодня на символе EURUSD он практически не появлялся.
Принудительно загрузил всю историю. И баг снова появился.
Пожалуй, история закачки не оказывает влияния на этот баг.
Не понимаю, почему этот баг плавающий.
Использовал для проверки этот скрипт:
Не понимаю, почему этот баг плавающий.
А СД в курсе всей этой темы?
А СД в курсе всей этой темы?
Да, уже написал туда 30.03.2018 - пока тишина.
Вообще, считаю, что загрузка/подгрузка данных - слабое место терминала.
Согласен, но это еще и одна из самых сложных задач.
функция iBars хоть и получилась весьма громоздкой, но всё равно я рекомендую её использовать вместо штатного Bars, пока MQ не исправят в нем баг с зависанием.
Зависает iBar, когда по логике он должен возвращать 0. Возвращает он его как правило более 10 секунд. В MQL4 этого бага нет.
В большинстве задач iBars будет работать быстрее чем штатный Bars, потому как она не только обходит баг, но и старается не использовать по возможности функции Bars и SeriesInfoInteger благодаря алгоритму сохранения предыдущих значений.
Тестировал эту функцию и вдоль и поперек. Вроде бы полностью повторяет Bars.
Возможно можно сделать более изящно. У кого есть желание - милости просим. Найдете ошибки - будем исправлять.
Итак...
Тогда полный аналог функции iBarsShift будет иметь вид:
А вариант без последнего параметра exact, что используется в подавляющем большинстве случаев будет иметь такой вид:
Использую Ваш код iBarsShift+iBars (и другие iBarsShift) и получаю 0 от iBarsShift , а при TF чарта H1 и расчете на H1 ошибку
что соответствует этой строке кода
Вот код индикатора целиком
Почему Print(Day_Shift) всегда возвращает ноль, в то время как время и дата опредеяется верно?
Такое ощущение, что это эффект выходного дня, так как намедни все работало корректно (правда с другой функцией, но и она не работает сегодня).
Использую Ваш код iBarsShift+iBars (и другие iBarsShift) и получаю 0 от iBarsShift , а при TF чарта H1 и расчете на H1 ошибку
что соответствует этой строке кода
Вот код индикатора целиком
Почему Print(Day_Shift) всегда возвращает ноль, в то время как время и дата опредеяется верно?
Такое ощущение, что это эффект выходного дня, так как намедни все работало корректно (правда с другой функцией, но и она не работает сегодня).
Я прошу прощения, что оставил код в неправильном виде.
Я заметил еще тогда неточную работу и почти исправил ее, но осталась маленькая легкоустранимая проблема.
Просто я забросил код по причине того, что сейчас учусь и у меня началась пора экзаменов и просто нет времени. Последний экзамен 24 апреля.
После него все исправлю и опубликую в CB.
Я уже начал публикацию, но приостановил её.
Я прошу прощения, что оставил код в неправильном виде.
Я заметил еще тогда неточную работу и почти исправил ее, но осталась маленькая легкоустранимая проблема.
Просто я забросил код по причине того, что сейчас учусь и у меня началась пора экзаменов и просто нет времени. Последний экзамен 24 апреля.
После него все исправлю и опубликую в CB.
Я уже начал публикацию, но приостановил её.
Буду ждать исправлений в окончательной форме, спасибо, что ответили.
Удачи с экзаменами!
Буду ждать исправлений в окончательной форме, спасибо, что ответили.
Удачи с экзаменами!