Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Единицами.
Вероятно так и есть, но это все таки базовая функция и если сам терминал ее использует, как минимум для экспорта данных, то это подрывает доверие и к терминалу
Обещанные примеры ошибок во вложенном файле. Что удивительно, Err_SymbolInfoTick2() некоторое время работала правильно, но потом стала также возвращать нулевую дату. В коде есть поясняющие комменты.
Журнал:
Веселое на закуску: если смотреть тики средствами терминала, то можно получить тиков больше, чем было записано. (см.картинку ). А если дату "до" уменьшить до 2021.09.18 то их станет меньше записанного.
Обещанные примеры ошибок
К сожалению, нет доступа к этим символам, чтобы воспроизвести.
К сожалению, нет доступа к этим символам, чтобы воспроизвести.
это ММВБ. Ок, попробую на форексе найти
это ММВБ. Ок, попробую на форексе найти
1. Нет таого символа "@BR" на ММВБ
Видимо Вы используете кастомный символ.
И при его создании может быть ошибка.
Я много использую функции CopyTicks и CopyTicksRange на оригинальных символах ММВБ - ошибок не замечал.
2. В терминале хранится не вся история по тикам и первый вызов функции может вернуть тики не за весь запрашиваемый период.
Добавлено
Вот пример индикатора, где я загружаю тики с помощью функции CopyTicksRange
И все прекрасно загружается, но не всегда с первого раза.1. Нет таого символа "@BR" на ММВБ
Вот пример индикатора, где я загружаю тики с помощью функции CopyTicksRange
И все прекрасно загружается, но не всегда с первого раза.Это склейка фьючерса на нефть. Брокер БКС. У разных брокеров она может называться по разному. Но точно такие же проблемы будут и на других символах.
В вашем примере работает, потому, что условия вызова другие - стартовое время всегда равно началу существующего бара (т.е. тики заведомо есть) и вы читаете всю историю тиков последнего бара разом.
Кстати один из моих костылей работает примерно как у вас. Я тоже получаю сначала время существующих баров , а потом разбиваю их на максимальные непрерывные участки и получаю тики. Но возникает другая проблема - если не хватило принимающего массива для данных, то докачка остального - это пляски с бубнами (о которых и была речь выше).
А работа с динамическими массивами гораздо медленнее и приходится учитывать возможную фрагментацию памяти.
2. В терминале хранится не вся история по тикам и первый вызов функции может вернуть тики не за весь запрашиваемый период.
Проблем в том, что вернется не весь период нет никаких, проблема когда вернется другой период, вместо запрашиваемого. Или, что еще хуже, если вернется и запрашиваемый и еще пришлепка других тиков, не входящих в диапазон
Я заменил в своем примере символ на "SILV-12.21" , получил туже ошибку, причем что любопытно, SymbolInfoTick вернул в последнем тесте правильный ответ :) вот как угадать, когда она врет, а когда нет?
2021.09.19 15:27:55.089 ErrorCopyTicks (CustomBR,H1) ---------Err_CopyTicksRange()------------ 2021.09.19 15:27:55.090 ErrorCopyTicks (CustomBR,H1) CopyTicksRange('SILV-12.21',Ticks,COPY_TICKS_ALL, 2021.01.29 23:57:00:000, 2021.01.31 23:59:00:000 ); received 1758 ticks 2021.09.19 15:27:55.090 ErrorCopyTicks (CustomBR,H1) 2021.01.29 00:02:14:782 - first tick, 2021.01.29 23:49:01:540 - last tick 2021.09.19 15:27:55.090 ErrorCopyTicks (CustomBR,H1) --------------------- 2021.09.19 15:27:55.090 ErrorCopyTicks (CustomBR,H1) ---------Err_CopyTicks()------------ 2021.09.19 15:27:55.091 ErrorCopyTicks (CustomBR,H1) CopyTicks('SILV-12.21',Ticks,COPY_TICKS_ALL, 2021.01.29 23:57:00:000, 100 ); received 100 ticks 2021.09.19 15:27:55.091 ErrorCopyTicks (CustomBR,H1) 2021.01.29 00:02:14:782 - first tick, 2021.01.29 11:02:44:891 - last tick 2021.09.19 15:27:55.091 ErrorCopyTicks (CustomBR,H1) --------------------- 2021.09.19 15:27:55.091 ErrorCopyTicks (CustomBR,H1) ---------Err_CopyTicks()------------ 2021.09.19 15:27:55.170 ErrorCopyTicks (CustomBR,H1) CopyTicks('SILV-12.21',Ticks,COPY_TICKS_ALL, 2021.01.29 23:57:00:000, 1000000 ); received 763140 ticks 2021.09.19 15:27:55.170 ErrorCopyTicks (CustomBR,H1) 2021.01.29 00:02:14:782 - first tick, 2021.09.17 23:58:41:031 - last tick 2021.09.19 15:27:55.170 ErrorCopyTicks (CustomBR,H1) --------------------- 2021.09.19 15:27:55.170 ErrorCopyTicks (CustomBR,H1) ---------Err_SymbolInfoTick1('CustomBR')------------ 2021.09.19 15:27:55.178 ErrorCopyTicks (CustomBR,H1) CopyTicksRange('SILV-12.21',Ticks,COPY_TICKS_ALL, 2021.09.17 00:00:00:000, 2021.09.17 20:00:00:000 ); received 42793 ticks 2021.09.19 15:27:55.178 ErrorCopyTicks (CustomBR,H1) 2021.09.17 00:03:04:576 - first tick, 2021.09.17 19:59:32:398 - last tick 2021.09.19 15:27:55.190 ErrorCopyTicks (CustomBR,H1) CustomTicksReplace('CustomBR',2021.09.17 00:00:00:000, 2021.09.17 20:00:00:000, Ticks, 42793 ); replaced 42793 ticks 2021.09.19 15:27:55.190 ErrorCopyTicks (CustomBR,H1) ret=1, mt.time_msc=1970.01.01 00:00:00:000 2021.09.19 15:27:55.190 ErrorCopyTicks (CustomBR,H1) --------------------- 2021.09.19 15:27:55.190 ErrorCopyTicks (CustomBR,H1) ---------Err_SymbolInfoTick2('CustomBR')------------ 2021.09.19 15:27:55.196 ErrorCopyTicks (CustomBR,H1) CopyTicksRange('SILV-12.21',Ticks,COPY_TICKS_ALL, 2021.09.17 00:00:00:000, 2021.09.17 20:00:00:000 ); received 42793 ticks 2021.09.19 15:27:55.196 ErrorCopyTicks (CustomBR,H1) 2021.09.17 00:03:04:576 - first tick, 2021.09.17 19:59:32:398 - last tick 2021.09.19 15:27:55.210 ErrorCopyTicks (CustomBR,H1) CustomTicksAdd('CustomBR',Ticks, 42793 ); added 42793 ticks 2021.09.19 15:27:55.210 ErrorCopyTicks (CustomBR,H1) ret=1, mt.time_msc=2021.09.17 19:59:32:398 2021.09.19 15:27:55.210 ErrorCopyTicks (CustomBR,H1) ---------------------К сожалению, нет доступа к этим символам, чтобы воспроизвести.
На форексе те же ошибки. Брокер Альпари, тестовый счет. Символ EURUSD
Кастомный символ сделан на базе EURUSD, просто название оставил тоже