Программная перезагрузка expertа. - страница 3

 

У меня в 220-ом билде получалось при помощи iClose() и ArrayCopySeries() затягивать данные даже если график никогда не открывался. В поздних билдах не пробовал. Если открыть график, данные подгружаются?

 

Такое ощущение, что ДЦ не дает

Открыл график. правый клик -> обновить. Вот результат.

2009.04.06 17:40:39 HistoryCenter: 300 bars imported in 'EURCAD1'
2009.04.06 17:40:16 HistoryCenter: synchronize 'EURCAD1'

Странно Альпари все время историю давала, а тут ((

 
Integer писал(а) >>

У меня в 220-ом билде получалось при помощи iClose() и ArrayCopySeries() затягивать данные даже если график никогда не открывался. В поздних билдах не пробовал. Если открыть график, данные подгружаются?

у меня всё получается подгружать, но нет возможности убедиться, что всё подгружено.

4066 генерируется только при первом вызове всяких там iClose. а потом iclose может возвращать сучайные числа и не генерироавть ошибку

 
Prival писал(а) >>

Такое ощущение, что ДЦ не дает

Бывает такое замечал.

 

Я подружаю историю таким блоком

      for(int i=0;i<SymbolTotal;i++)
      {
// Последнее известное время
         Market_Info=MarketInfo(Para[i],MODE_TIME);
         if(Market_Info!=0)
         {
            Market_Inf=Market_Info-60*Period();
// Если последний бар еще не загружен - ожидаем
            if(Market_Inf>iTime(Para[i],0,0))
            {
               Print("Ожидание загрузки истории "+Para[i]);
               Sleep(10000);
               return(0);
            }
         }
         else
            return(0); // Нет котировок
      }
 
BabyBear писал(а) >>

у меня всё получается подгружать, но нет возможности убедиться, что всё подгружено.

4066 генерируется только при первом вызове всяких там iClose. а потом iclose может возвращать сучайные числа и не генерироавть ошибку

4066 надо смотреть после ArrayCopySeries() а не iClose. Абсалютно надежного способа, похоже, не существет. Если на реале делать новый запуск эксперта, то лучше сначала вручную пооткрывать графики, убедиться, что все подгружено и тогда запускать. Я такое замечал - подгрузка началась, потом что-нибудь со связью или еще что-то было, дыра осталась, а ошибки 4066 нет. Такое впечатление, 4066 есть, если ДЦ выдает данные, а ДЦ, как видим, может не давать данные. У какого-то ДЦ замечал данные с дырами, после удаления всех данных из архива и новой загрузки дыр не было.

 
kharko писал(а) >>

Я подружаю историю таким блоком

не понятно, какое отношение Period() имеет к массиву символов. Очень похож, что весь этот код можно заменить примерно таким

for(int i=0;i<SymbolTotal;i++)
{
   iTime(Para[i],0,0));
   Sleep(10000);
}
 
kharko писал(а) >>

Я подружаю историю таким блоком

Вы замечали, что сначала подгружается последний бар, потом закрывается дыра? Уверены, что дыра закрывается слева направо, а не справа налево? Я не уверен, экспериментов не проводил.

 
Integer писал(а) >>

4066 надо смотреть после ArrayCopySeries() а не iClose. Абсалютно надежного способа, похоже, не существет. Если на реале делать новый запуск эксперта, то лучше сначала вручную пооткрывать графики, убедиться, что все подгружено и тогда запускать. Я такое замечал - подгрузка началась, потом что-нибудь со связью или еще что-то было, дыра осталась, а ошибки 4066. Такое впечатление, 4066 есть, если ДЦ выдает данные, похоже, а ДЦ, как видим, может не давать данные. У какого-то ДЦ замечал данные с дырами, после удаления всех данных из архива и новой загрузки дыр не было.

1. после iClose вполне можно смотреть 4066, я разницы не вижу.

2. 4066 - нельзя воспринимать как ошибку, так как её отсутствие не гарантирует наличие данных.

3. Вручную - не наш метод. Во всяком случае - не мой, точно :)

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

 

честно говоря, например для часовых свечей, можно хотя бы время свечей проверять.

Берем компьютерное время, и смотрим, все ли свечи есть (выходные обрабатываем) Но и тут две гадости.

1. в альпари свеча 22-00 может быть, а может отсутствовать

2, никто мне не говорил, что если iTime(...3) вернулось правильное, то и iOpen(... 3) соответствует реальности.

Но для минуток, особенно ночью, такие проверки не катят. Там свечи может вообще не существвать.

Причина обращения: