Получение истории торговых инструментов.

 

Столкнулся с проблемой получения исторических данных по торговым инструментам, при обращении к некоторым символам программа (советник) наглухо зависает и на долго. Просто не выполняет последующий код.

При этом счетчик трафика стоит на месте.

Я перепробовал весь функционал, который доступен что бы исключить "битые" символы из списка, но прежде чем исключить его нужно проверить. А проверить это повиснуть.

На форуме мои посты просто проигнорировали https://www.mql5.com/ru/forum/285631/page35#comment_9431199   и   https://www.mql5.com/ru/forum/1111/page2324#comment_9430516

Я так и не понял, это мол вопрос который уже миллион раз обсуждали и есть простой ответ, или это из разряда лучше не поднимать вопросы проблемы которых до сих пор не решены ?

К посту прикрепил скрипт слегка модернизированный для закачки и синхронизации истории , скрипт взят из справки.

При запуске, при попытке скачать историю на некоторых символах ( у меня на USD RUR и  других) по части инструментов загрузка проходит но на некоторых скрипт виснет намертво...

Есть идеи ? Как пробежаться по всем символам брокера и не зависнуть ????

Файлы:
TestCopy.mq5  14 kb
 

Вот пример работы скрипта 

2018.11.25 17:03:56.712 TestCopy (EURUSD,H1)    Load symbols 58
2018.11.25 17:03:56.717 TestCopy (EURUSD,H1)    0 Symbol name AUDCAD
2018.11.25 17:03:56.820 TestCopy (EURUSD,H1)    Loaded OK AUDCAD
2018.11.25 17:03:56.820 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334863 bars
2018.11.25 17:03:56.820 TestCopy (EURUSD,H1)    1 Symbol name AUDCHF
2018.11.25 17:03:56.898 TestCopy (EURUSD,H1)    Loaded OK AUDCHF
2018.11.25 17:03:56.898 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334758 bars
2018.11.25 17:03:56.898 TestCopy (EURUSD,H1)    2 Symbol name AUDJPY
2018.11.25 17:03:56.968 TestCopy (EURUSD,H1)    Loaded OK AUDJPY
2018.11.25 17:03:56.968 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 335114 bars
2018.11.25 17:03:56.968 TestCopy (EURUSD,H1)    3 Symbol name AUDNZD
2018.11.25 17:03:57.052 TestCopy (EURUSD,H1)    Loaded OK AUDNZD
2018.11.25 17:03:57.052 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334786 bars
2018.11.25 17:03:57.052 TestCopy (EURUSD,H1)    4 Symbol name AUDUSD
2018.11.25 17:03:57.121 TestCopy (EURUSD,H1)    Loaded OK AUDUSD
2018.11.25 17:03:57.121 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334096 bars
2018.11.25 17:03:57.121 TestCopy (EURUSD,H1)    5 Symbol name CADCHF
2018.11.25 17:03:57.199 TestCopy (EURUSD,H1)    Loaded OK CADCHF
2018.11.25 17:03:57.199 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334429 bars
2018.11.25 17:03:57.199 TestCopy (EURUSD,H1)    6 Symbol name CADJPY
2018.11.25 17:03:57.268 TestCopy (EURUSD,H1)    Loaded OK CADJPY
2018.11.25 17:03:57.268 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 335163 bars
2018.11.25 17:03:57.268 TestCopy (EURUSD,H1)    7 Symbol name CHFJPY
2018.11.25 17:03:57.322 TestCopy (EURUSD,H1)    Loaded OK CHFJPY
2018.11.25 17:03:57.322 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334972 bars
2018.11.25 17:03:57.322 TestCopy (EURUSD,H1)    8 Symbol name EURAUD
2018.11.25 17:03:57.400 TestCopy (EURUSD,H1)    Loaded OK EURAUD
2018.11.25 17:03:57.400 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334971 bars
2018.11.25 17:03:57.400 TestCopy (EURUSD,H1)    9 Symbol name EURCAD
2018.11.25 17:03:57.469 TestCopy (EURUSD,H1)    Loaded OK EURCAD
2018.11.25 17:03:57.469 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 335138 bars
2018.11.25 17:03:57.469 TestCopy (EURUSD,H1)    10 Symbol name EURCHF
2018.11.25 17:03:57.554 TestCopy (EURUSD,H1)    Loaded OK EURCHF
2018.11.25 17:03:57.554 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334133 bars
2018.11.25 17:03:57.554 TestCopy (EURUSD,H1)    11 Symbol name EURGBP
2018.11.25 17:03:57.622 TestCopy (EURUSD,H1)    Loaded OK EURGBP
2018.11.25 17:03:57.623 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334901 bars
2018.11.25 17:03:57.623 TestCopy (EURUSD,H1)    12 Symbol name EURJPY
2018.11.25 17:03:57.701 TestCopy (EURUSD,H1)    Loaded OK EURJPY
2018.11.25 17:03:57.701 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 335358 bars
2018.11.25 17:03:57.701 TestCopy (EURUSD,H1)    13 Symbol name EURNZD
2018.11.25 17:03:57.770 TestCopy (EURUSD,H1)    Loaded OK EURNZD
2018.11.25 17:03:57.770 TestCopy (EURUSD,H1)    First date 2018.01.02 10:00:00 - 334886 bars
2018.11.25 17:03:57.770 TestCopy (EURUSD,H1)    14 Symbol name EURUSD

а на EUR USD повисли.....

 

Для начала запретите получать историю с символа на котором повесили скрипт.

Шаг  два: запретить получать история с символа, который в своих расчётах использует символ на котором повесили скрипт.

 
Vladimir Karputov:

Для начала запретите получать историю с символа на котором повесили скрипт.

Шаг  два: запретить получать история с символа, который в своих расчётах использует символ на котором повесили скрипт.

А почему я не могу получить историю для символа на котором висит скрипт ?

 
Vladimir Pastushak:

А почему я не могу получить историю для символа на котором висит скрипт ?

У меня нет ответа верного на все 100% :)

Это скорее здравый смысл + куски справки (Организация доступа к данным) из головы.

 
Vladimir Karputov:

У меня нет ответа верного на все 100% :)

Это скорее здравый смысл + куски справки (Организация доступа к данным) из головы.

В документации ничего не сказано про символ на котором запущен скрипт.

Проблема в том что при обращении любой функции Copy программа зависает на 16 или более секунд.

 

Получается что перебирая 650 инструментов программа может несколько раз остановиться на 16 секунд или вообще зависнуть...

Я пробовал несколько методов, запрашивал текущие цены аск бид и если они есть тогда запрашивал историю, но это не помогло....

 
Vladimir Pastushak:

В документации ничего не сказано про символ на котором запущен скрипт.

Проблема в том что при обращении любой функции Copy программа зависает на 16 или более секунд.

Давайте пример. По шагам.

Предлагаю взять отдеьный терминал и оставить один график - например EURUSD. Остальную историю и тики удалить.


Путь: [data folder]\bases\MetaQuotes-Demo\history оставить только папку EURUSD.

 

У меня вообще терминал завис, пришлось выгружать через Таск Менегер. И завис на первом символе EURUSD

2018.11.25 19:23:44.266 TestCopy (SBRF-12.18,M5) Load symbols 650

2018.11.25 19:23:44.269 TestCopy (SBRF-12.18,M5) 0 Symbol name EURUSD


 
Alexey Volchanskiy:

У меня вообще терминал завис, пришлось выгружать через Таск Менегер. И завис на первом символе EURUSD

2018.11.25 19:23:44.266 TestCopy (SBRF-12.18,M5) Load symbols 650

2018.11.25 19:23:44.269 TestCopy (SBRF-12.18,M5) 0 Symbol name EURUSD


Вот и у меня такая же беда. В скрипте код из справки.

 
кстати один из пользователей сообщил об ошибке которая вылезла именно сегодня, ошибка касается как раз обращению к истории... Но я думаю что это просто совпадение...