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

 

может, так правильно ждать? кто что думает?

скрипт

datetime daytimes[];

int start()
{
   int last_value = -1;
   int new_value;
   for( int i=0; i<10; i++)
   {
      new_value = fCheckDataUpdate( "EURCAD", PERIOD_M1);
      if( new_value == last_value)
         break;
      last_value = new_value;
      Sleep(1000);
   }
   
   if( new_value != last_value)
      Print("я плохо кончил");
   else
      Print("я кончил хорошо");
      
   return(0);
}
  
int fCheckDataUpdate(string aSymbol,int aTimeFrame)
{
   int res;
   res = ArrayCopySeries( daytimes, MODE_TIME, aSymbol, aTimeFrame);
   Print( "fCheckDataUpdate():  error =", GetLastError(), "; symbol = ", 
      aSymbol,"; period = ", aTimeFrame, "; res = ",res);
   return( res);      
}
 
BabyBear писал(а) >>

build 220 альпари демо

2009.04.06 18:50:48 test_arraycopyseries USDCAD,H1: fCheckDataUpdate(): error =0; symbol = EURCAD; period = 1; res = 66009
2009.04.06 18:50:48 test_arraycopyseries USDCAD,H1: fCheckDataUpdate(): error =0; symbol = EURCAD; period = 1; res = 66009
2009.04.06 18:50:48 test_arraycopyseries USDCAD,H1: fCheckDataUpdate(): error =0; symbol = EURCAD; period = 1; res = 66009
2009.04.06 18:50:47 test_arraycopyseries USDCAD,H1: fCheckDataUpdate(): error =4066; symbol = EURCAD; period = 1; res = 65000

скрипт

а сейчас возвращает всегда 65000. странно, куда подевались 1009 свечей? точнее, куда - понятно, а вот в какой момент :) неужели, когда я за кофе ходил на кухню?

 
Prival писал(а) >>

как (код если Вы не против) ? мне вообще казалось, что она както кусками идет

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

Примерно такой же процесс происходит при вызове текущих значений символа через Маркетинфо...

 
kharko писал(а) >>

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

Примерно такой же процесс происходит при вызове текущих значений символа через Маркетинфо...

Включил. Запустил

3 часа ночи

02:54:49 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 2097

Все гуд.

Поспал проснулся, попил чайку

12 часов дня

12:41:26 Sp_mylti_EUR EURUSD,M1: Нет данных EURGBP M1 (символа нет в обзоре рынка или первое обращение к символу)

Ок ждем, перезапускаю. Все в ручную.

12:42:08 Sp_mylti_EUR EURUSD,M1: loaded successfully

12:42:08 Sp_mylti_EUR: label for SetIndexLabel function must be a string

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35353

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 1

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 2

Очень богато истории ((.

Перезапуск. Прошла 1 мин. Добавился 1 бар

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 3

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35354

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 3

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 3

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 3

12:43:37 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 3

Все останавливаю. Перегружаю комп.

Опа

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 4

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35355

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 4

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 4

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 4

12:44:03 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 4

Добавился 1 бар.

Перехожу на 5 минутки

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURGBP период M5 данных 2175

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURAUD период M5 данных 2175

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURCHF период M5 данных 2175

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURJPY период M5 данных 2175

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURNZD период M5 данных 2175

12:44:04 Sp_mylti_EUR EURUSD,M5: Загружено по символу EURCAD период M5 данных 2175

Данные есть. Все отлично. Перехожу обратно на минутки

12:48:02 Sp_mylti_EUR EURUSD,M1: Данные EURGBP M1 в процессе обновления

…..

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 8

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35359

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 8

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 8

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 8

12:48:32 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 8

Абалдеть. И что делать ? как историю грузить

только руками. открываю график и листаю назад. Все (((

 
Prival писал(а) >>

12:42:08 Sp_mylti_EUR EURUSD,M1: loaded successfully

12:42:08 Sp_mylti_EUR: label for SetIndexLabel function must be a string

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35353

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 1

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 2

12:42:08 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 2

код скинь, я у себя запущу.

 
Prival писал(а) >>

Поспал проснулся, попил чайку

...........

Абалдеть. И что делать ? как историю грузить

только руками. открываю график и листаю назад. Все (((

Надо было кофе пить :-) - "Когда выключаете на ночь компьютер, поспали, отдохнули, попили кофеек..."

 

Посмотрите, как организованы массивы, в которые вы копируете историю котировок?...

Не думаю. что это индексные массивы... Собака зарыта здесь...

int ArrayCopySeries( double &array[], int series_index, string symbol=NULL, int timeframe=0)

Копирует массив-таймсерию в пользовательский массив и возвращает количество скопированных элементов.

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

Если копируются данные "чужого" инструмента и/или таймфрейма, то возможна ситуация отсутствия требуемых данных. В этом случае в переменную last_error будет помещена ошибка ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления) и необходимо через некоторое время повторить попытку копирования.

Если реального копирования нет, то значит нет обращения к серверу за котировками (они уже закачены)... Поэтому ориентироваться на количество записаных элементов нельзя.. Числа всегда будут разными...

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