Итак, хочу получить массив котировок по нескольким парам с помощью CopyRates, причем прошу максимально возможное число (1 млн настроено в терминале).
Во-во. А потом разработчики объясняют, что-де "не хватает памяти". Конечно, если по всем парам запрашивать по миллиону котировок - может не хватить 32-разрядного адресного пространства...
Народ, объясните мне, зачем вам так много котировок ?
Я уж не говорю, что далеко не во всех ДЦ вобще хранится столько данных... Не нужны они никому, только граалеписателям, которые думают, что имея ВСЕ котировки надут "серебрянную пулю", и напишут советника, который будет всегда на любых парах приносить много прибыли.
Народ, объясните мне, зачем вам так много котировок ?
Я уж не говорю, что далеко не во всех ДЦ вобще хранится столько данных... Не нужны они никому, только граалеписателям, которые думают, что имея ВСЕ котировки надут "серебрянную пулю", и напишут советника, который будет всегда на любых парах приносить много прибыли.
Господа, давайте порассуждаем еще про глобальное изменение климата и про снижение рождаемости.
Я задал вполне конкретный вопрос. В документации на CopyRates сказано, что если данные не готовы - вернет только часть, а по недостающему будет инициирована загрузка, и очень скоро они будут доступны. Я запрашиваю дозволенное количество, а в ответ иногда получаю в 10 раз меньше. Причем больше данных по этим "отказным" инструментам не удается заполучить даже путем пролистывания минутного графика в терминале.
Господа, давайте порассуждаем еще про глобальное изменение климата и про снижение рождаемости.
Я задал вполне конкретный вопрос. В документации на CopyRates сказано, что если данные не готовы - вернет только часть, а по недостающему будет инициирована загрузка, и очень скоро они будут доступны. Я запрашиваю дозволенное количество, а в ответ иногда получаю в 10 раз меньше. Причем больше данных по этим "отказным" инструментам не удается заполучить даже путем пролистывания минутного графика в терминале.
Вроде George Merts четко назвал две возможные причины. Насчет разрядности операционки вы так и не ответили. Не устраивают ответы - напишите в сервисдеск, там больше знают. Я вижу, у вас две закачки с одинаковым количеством баров. Есть повод спросить в сервисдеке - почему так происходит. Как вариант, поставьте Tickstory Lite и скачайте с Дукаса минутки.
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
Вроде четко назвал две возможные причины. Насчет разрядности операционки вы так и не ответили. Не устраивают ответы - напишите в сервисдеск, там больше знают. Я вижу, у вас две закачки с одинаковым количеством баров. Есть повод спросить в сервисдеке - почему так происходит. Как вариант, поставьте Tickstory Lite и скачайте с Дукаса минутки.
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
1. Никаких предположений о причинах в Вашем предыдущем сообщении я не вижу. Вижу только отвлеченные рассуждения о волшебных советниках, показывающих фантастические результаты на истории по причине переоптимизации.
2. Памяти предостаточно. Если бы упиралось в потолок памяти - были бы проблемы не только в терминале, а Windows тоже работать бы не смог нормально.
3. Закачек с одинаковым количеством баров на самом деле не две, а оно всегда так. Пробовал на несколько часов оставить - ничего не изменилось, по "отказным" пАрам всегда одинаковое количество баров.
1. Никаких предположений о причинах в Вашем предыдущем сообщении я не вижу. Вижу только отвлеченные рассуждения о волшебных советниках, показывающих фантастические результаты на истории по причине переоптимизации.
2. Памяти предостаточно. Если бы упиралось в потолок памяти - были бы проблемы не только в терминале, а Windows тоже работать бы не смог нормально.
3. Закачек с одинаковым количеством баров на самом деле не две, а оно всегда так. Пробовал на несколько часов оставить - ничего не изменилось, по "отказным" пАрам всегда одинаковое количество баров.
1. Это я забыл имя вставить, потом поправил. "Вроде George Merts четко назвал две возможные причины."
2. Так вам шашечки или ехать? Если нужны котировки, скачайте в другом месте. Сейчас проверил, TickStory качает с 2012.09.05 по 2015.09.05 пару USDSEK со скоростью день за 2 сек. Потом конвертируете данные в минутки и импортируете из терминала.
Я-то может и закачаю. Но я не для себя стараюсь, а заставлять клиента такие пляски вытворять - это не правильно.
Это верно. Щас у себя проверю. Кстати, эта строчка, скорее всего, даст неправильный результат. Размер динамического массива выделяется блоками и будет больше, чем количество закачанных баров. Хотя, не знаю, как там MQ сделали. Я бы сохранял значение, возвращаемое CopyRates
Print("For ", a_Components[i].sSymbol, " loaded ", ArraySize(a_Components[i].Data), " bars");
Во-первых не обязательно блоками - запрашивающий изменение размера может сразу знать, сколько он хочет.
Во-вторых, ArraySize должен показать размер независимо от блоков.
В-третьих, если бы это было так, то не получались бы вот такие строчки в журнале:
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For GBPUSD loaded 1000000 bars
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For USDJPY loaded 1000000 bars
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For EURUSD loaded 1000000 bars
По трем парам попросил миллион - получил миллион. А по еще трем попросил миллион - получил в 10 раз меньше:
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For USDCHF loaded 91087 bars
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.06 12:52:52.145 DollarIndex Expert EURUSD,M1: For USDCAD loaded 93234 bars
Кстати, похоже, я понял, почему не работает: на сервере моего ДЦ нету такого количества данных по минуткам по этим парам.
lBarsCount = SeriesInfoInteger("USDCHF", PERIOD_M1, SERIES_BARS_COUNT); dtFirstDate = (datetime)SeriesInfoInteger("USDCHF", PERIOD_M1, SERIES_FIRSTDATE); dtServerFirstDate = (datetime)SeriesInfoInteger("USDCHF", PERIOD_M1, SERIES_SERVER_FIRSTDATE); dtTerminalFirstDate = (datetime)SeriesInfoInteger("USDCHF", PERIOD_M1, SERIES_TERMINAL_FIRSTDATE); lSynchronized = (datetime)SeriesInfoInteger("USDCHF", PERIOD_M1, SERIES_SYNCHRONIZED); Print("SERIES_BARS_COUNT: ", lBarsCount); Print("SERIES_FIRSTDATE: ", dtFirstDate); Print("SERIES_SERVER_FIRSTDATE: ", dtServerFirstDate); Print("SERIES_TERMINAL_FIRSTDATE: ", dtTerminalFirstDate); Print("SERIES_SYNCHRONIZED: ", lSynchronized);
В итоге получаем:
2015.09.06 16:25:58.698 SpeedTest EURUSD,M1: SERIES_SYNCHRONIZED: 0
2015.09.06 16:25:58.249 SpeedTest EURUSD,M1: SERIES_TERMINAL_FIRSTDATE: 1970.01.01 00:00:00
2015.09.06 16:25:58.082 SpeedTest EURUSD,M1: SERIES_SERVER_FIRSTDATE: 2015.06.19 04:21:00
2015.09.06 16:25:57.911 SpeedTest EURUSD,M1: SERIES_FIRSTDATE: 2015.05.21 03:22:00
2015.09.06 16:25:57.748 SpeedTest EURUSD,M1: SERIES_BARS_COUNT: 91087
Выходит, у меня в терминале по этой паре более глубокая история, чем на сервере.
Кстати, похоже, я понял, почему не работает: на сервере моего ДЦ нету такого количества данных по минуткам по этим парам.
Выходит, у меня в терминале по этой паре более глубокая история, чем на сервере.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Итак, хочу получить массив котировок по нескольким парам с помощью CopyRates, причем прошу максимально возможное число (1 млн настроено в терминале).
По одним валютам - пожалуйста, по другим - нет, упорно возвращает небольшое количество данных.
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDCHF loaded 91087 bars
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDCAD loaded 93234 bars
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For GBPUSD loaded 1000000 bars
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For USDJPY loaded 1000000 bars
2015.09.05 23:53:29.454 DollarIndex Expert EURUSD,M1: For EURUSD loaded 1000000 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For USDCHF loaded 91087 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For USDCAD loaded 93234 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For GBPUSD loaded 1000000 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For USDJPY loaded 1000000 bars
2015.09.05 23:53:24.446 DollarIndex Expert EURUSD,M1: For EURUSD loaded 1000000 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDCHF loaded 91087 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDSEK loaded 101426 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDCAD loaded 93234 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For GBPUSD loaded 1000000 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For USDJPY loaded 1000000 bars
2015.09.05 23:53:19.443 DollarIndex Expert EURUSD,M1: For EURUSD loaded 1000000 bars
Что не так делаю? На первый взгляд, поведение CopyRates не соответствует документации - ничего не пытается подгрузить, все время возвращает одно и то же количество данных...