Ошибки, баги, вопросы - страница 15

 
Interesting:

Сравнил онлайн версию с файлом имеющимся у меня. Или я совсем слепой или они полностью одинаковы...


Вы же не скачали, иначе увидели бы


 

Interesting:

Кстати о птичках, есть заявка №17391, как раз на эту тему...

Я конечно ожидал большего. Придется максимально плотно заняться отловом ошибок и разруливаньем на "низком" уровне...
 
Rosh:

Вы же не скачали, иначе увидели бы


Я то подумал, что справка в лучших традициях обновляется автоматом. Заглянул в "родную" справку, все по старому, попробовал от Альпари (хотя по идеи справка то одна), результат тот же...

Оказывается нужно было куками загрузить, старею видимо...

Не считайте за "наезд", но - А онлайн версию слабо поправить?


PS

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

 
Interesting:

PS

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

Все понял, жду нового релиза...
 
simpleton:
Общепринятая практика (в среде профессионалов) - это, когда терминал выдаёт сообщение об ошибке, а не вылетает.

Ошибку с вылетом конечно же исправим, это подразумевалось по умолчанию.

Просто совет был о конфигурационных файлах как методе управления сложным набором входных параметров.

 
Запросил свойство SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE), возвращает ноль, это ошибка или данная функция еще не доступна. А также в тестере при прогонах запрос свойства PositionGetInteger(POSITION_IDENTIFIER) тоже все время возвращает ноль
 
sergey1294:
Запросил свойство SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE), возвращает ноль, это ошибка или данная функция еще не доступна. А также в тестере при прогонах запрос свойства PositionGetInteger(POSITION_IDENTIFIER) тоже все время возвращает ноль

Мы уже разбираемся с подобной заявкой.

Спасибо за сообщение.

 

а вот такая заявка есть ?

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime ctm[1], var;
   if(CopyTime("EURUSD",_Period,  0,1,ctm)==1) Print("EURUSD time[0]=", ctm[0]);
   var=ctm[0];
   if(CopyTime("AUDUSD",_Period,  0,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);
   // запросим на время var=2010.06.25 23:00:00
   // должна быть ошибка, т.к. этого бара не существует
   // но все срабатывает
   if(CopyTime("AUDUSD",_Period,var,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);
  }
//+------------------------------------------------------------------+

лог

2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD time[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD time[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) EURUSD time[0]=2010.06.25 23:00:00

бара AUDUSD 23:00 нет, он не существует.
вот картинка

 

так и должно быть ? Что будет выдавать эта функция если попадает на дыру в истории ?

 
Sorento:

Странное бездействие внутри цикла... :(

Описание проблемы

в простом скрипте (да и в индикаторах тоже)внутри цикла не работает Print (да и не только он)

Последовательность действий

//+------------------------------------------------------------------+
//|                                                        Xoxma.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   int i,j=0,k=0;
   i=12;
   Print("#6 ",i," ",j," !");
   for(j=i;j<=0;j--)
     {k=k+j;
      Print(j);Print("+ ",k);
     }
   Print("#7 ",i," ",j," K= ",k," !");

  }
//+------------------------------------------------------------------+


Может так будет правильней?

  for(j=i;j>=0;j--)
  {
  k=k+j;
  Print(j);
  Print("+ ",k);
  }
 
Prival:

а вот такая заявка есть ?

лог

2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD time[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) AUDUSD time[0]=2010.06.25 22:59:00
2010.06.27 01:25:43 11 (EURUSD,M1) EURUSD time[0]=2010.06.25 23:00:00

бара AUDUSD 23:00 нет, он не существует.
вот картинка

 

так и должно быть ? Что будет выдавать эта функция если попадает на дыру в истории ?

Смотрим код

   if(CopyTime("AUDUSD",_Period,var,1,ctm)==1) Print("AUDUSD time[0]=", ctm[0]);

Идет запрос одного бара, чье время открытия находится слева от var=2010.06.25 23:00:00

var=2010.06.25 23:00:00

в глубине истории. Мы недавно дополнили справку по функциям Copy...(), например, для CopyTime():

Примечание

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

При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, функция сразу же вернет -1, но при этом сам процесс загрузки/построения будет инициирован.

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

При запросе данных в заданном диапазоне дат возвращаются только данные, попадающие в запрашиваемый интервал, при этом интервал задается и учитывается с точностью до секунды. То есть время открытия любого бара, для которого возвращается значение (объем, спред, значение в индикаторном буфере, цена Open, High, Low, Close или время открытия Time) всегда находится в запрошенном интервале.

Таким образом, если текущий день недели Суббота, то при попытке скопировать данные на недельном таймфрейме с указанием start_time=Последний_Вторник и stop_time=Последняя_Пятница функция вернет 0, так как время открытия на недельном таймфрейме всегда приходится на воскресенье, но ни один недельный бар не попадает в указанный диапазон.

Если необходимо получить значение, соответствующее текущему незавершенному бару, то можно использовать первую форму вызова с указанием start_pos=0 и count=1.

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