Когда кончатся эти мучения с подкачкой данных? - страница 5

 
Mak, я так и не понял, какое именно место в этом скрипте определяет - сколько мы хотим получить элементов?

Этого и я не понял :))
Я предположил, что МТ будет догонять до размера истории основного символа на чарте.
Раз уж разработчики говорят что подкачивает ..
Но больше никаких размеров на чарте нет, и параметров нет.
Так что и вариантов как бы нет ...
Но ArrayCopySeries всегда возвращает одно и то же число.
 
вот пример скрипта
int start()
  {
   int tm[];
   int cnt=ArrayCopySeries(tm,MODE_TIME,"AUDUSD",PERIOD_H1);
   Print("copied ",cnt," bars.  last error=",GetLastError());
   if(cnt>0) Print(TimeToStr(tm[0]));
   Sleep(15000);
   cnt=ArrayCopySeries(tm,MODE_TIME,"AUDUSD",PERIOD_H1);
   Print("2 copied ",cnt," bars.  last error=",GetLastError());
   Print(TimeToStr(tm[0]));
   return(0);
  }


я его запускал несколько раз в разных условиях (менял только значение периода в запросе для работы в разных условиях). при этом в маркет-вотче австралийца нет и соответственно нет ни одного открытого графика по нему.
первый запуск - истории нет совсем

16:43:43 testarray EURUSD,M5: loaded successfully
16:43:43 testarray EURUSD,M5: copied 0 bars.  last error=0
16:44:00 testarray EURUSD,M5: 2 copied 512 bars.  last error=0
16:44:00 testarray EURUSD,M5: removed



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

16:46:55 testarray EURUSD,M5: loaded successfully
16:46:55 testarray EURUSD,M5: copied 512 bars.  last error=0
16:46:55 testarray EURUSD,M5: 2005.01.11 18:00
16:47:11 testarray EURUSD,M5: 2 copied 1486 bars.  last error=0
16:47:11 testarray EURUSD,M5: 2005.03.09 14:00
16:47:11 testarray EURUSD,M5: removed



третий запуск - история есть до конца. но терминал перезапускаем, чтобы сбросить кеш.

16:51:35 testarray EURUSD,M5: loaded successfully
16:51:35 testarray EURUSD,M5: copied 1486 bars.  last error=0
16:51:35 testarray EURUSD,M5: 2005.03.09 14:00
16:51:51 testarray EURUSD,M5: 2 copied 1486 bars.  last error=0
16:51:51 testarray EURUSD,M5: 2005.03.09 14:00
16:51:51 testarray EURUSD,M5: removed
 
Запустил этот скрипт у себя.
Вот результат:
2005.03.09 17:37:44	testarray USDCHF,M5: removed
2005.03.09 17:37:44	testarray USDCHF,M5: 2005.03.09 15:00
2005.03.09 17:37:44	testarray USDCHF,M5: 2 copied 941 bars.  last error=0
2005.03.09 17:37:29	testarray USDCHF,M5: 2005.03.09 15:00
2005.03.09 17:37:29	testarray USDCHF,M5: copied 941 bars.  last error=0
2005.03.09 17:37:28	testarray USDCHF,M5: loaded successfully


Все правильно?
На USDCHF,M5 имеется 5434 баров.

Непонятно сколько баров должно быть загружено?
Что значит - "история есть до конца" - где этот конец?

 
точно 5434? в таком случае они все и должны были скопироваться. непонятно почему всего лишь 941. и судя по времени 15.00 в обоих случаях, никакой подкачки не произошло

Непонятно сколько баров должно быть загружено?

должно быть загружено столько баров, сколько есть в Вашей базе (правда, в пределах ограничения, выставленного в настройках). в Вашем случае - 5434 (если конечно не стоит ограничения Max bars in chart. у нас по умолчанию стоит 5000, в таком случае должно загрузиться 5000 баров)

Что значит - "история есть до конца" - где этот конец?

"до конца" значит до текущего момента (я ведь за несколько минут до этого подкачивал)


СТОП! а при чём тут "На USDCHF,M5 имеется 5434 баров.", если Вы спрашивали австралийца???
 
"до конца" значит до текущего момента (я ведь за несколько минут до этого подкачивал)

Т.е. под подкачкой (истории) подразумевается загрузка последних данных начиная с последней закаченной ранее?
Т.е. если у меня есть 100 баров посе которых появилось еще 200 (которых у меня в базе нет), то подкачаются эти 200?

Тогда получается что мы говорим о разных вещах.
И тут ваш пример становится совсем непонятным.

Судя по примеру у вас по австралийцу первоначально небыло никаких данных.
После запуска скрипта было закачено сначала 512, потом еще до 1486.
Если докачиваются только свежие данные, тогда вообще докачки быть недолжно?

СТОП! а при чём тут "На USDCHF,M5 имеется 5434 баров.", если Вы спрашивали австралийца???

Ни при чем, я просто написал сколько баров были на чарте USDCHF,M5
а закачивались AUDUSD,Н1

В общем я ничего не понимаю ...
 
немножко не так. австралиец в первом случае пятиминутка (по ним у меня данных не было), во втором и третьем - часовка (первоначально было 512 баров, заканчивавшиеся 11 января).
резюмирую.
если данных нет совсем, подкачивается 512 баров.
если данные есть, то докачиваются последние данные (и их может быть гораздо больше 512 баров)
то есть, проблемы подкачки данных не существует. если хотя бы раз в неделю запускать скрипт с обращением к мониторенным парам-таймфреймам.
 
Вот теперь понятно. Не существует способа программно гарантированно получить данных минимум на N баров назад от текущего момента (если N > 512).
 
да, не существует. мы про это с самого начала и говорим.
 
да, не существует. мы про это с самого начала и говорим.

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

Т.е. потратив всего один день (думаю хватит) он может открыть по очереди все нужные символы и все таймфреймы и на каждом из них постучать пальцем по клавише PageUp.
Поскольку закачать таким образом строго заданное число баров неудастся,
пользователь будет закачивать с запасом ...

Ну и чем это лучше (экономичнее, надежнее, ...) чем просто указать в скрипте,
что этому индикатору нужно Х баров (пусть Х <= 4096)?

Ничего же ведь не меняется.
Вопрос ведь только в том кто это будет делать, юзер полдня или МТ несколько минут,
и в том, есть ли уверенность, что индикатор имеет нужную длину истории ...
В случае с синхронизацией уверенность всегда есть, при ручной закачке всегда нет.

Ручная закачка, и та синхронизация которую я предлагаю, по последствиям
на загрузку сервера абсолютно ничем не отличаются.
Ручная закачка даже нагрузит сервер в 1.5 - 2 больше
(из-за невозможности закачать строго необходимое число баров ..)

Ребята, я вас совсем не понимаю.
Ваша упертость граничит с нежеланием думать.
Прошу прощения, тема для меня закрыта.
 
Вопрос ведь только в том кто это будет делать, юзер полдня или МТ несколько минут,

Дело в том, что юзер это будет делать только по необходимости и вручную.
А если это будет штатной возможностью, то резко появится "супер-закачиватель-синхронизатор-истории-для-метатредера", который будут раздавать на всех углах и который для верности будет интегрирован во все скрипты.

Вы смотрите со своей стороны, недеясь что Вы будете правильно, экономно и корректно пользоваться, а мы смотрим с другой стороны - этим будут злоупотреблять. Гарантированно _злоупотреблять_.

Я давно предлагал закрыть тему.
Причина обращения: