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

 
sergeev:

все совпало.

2010.08.28 20:57:09    Servis (EURUSD,H1)     L1=6653490000   L2=6653490000   L3=6653490000   M1=6653490000
2010.08.28 20:57:09    Servis (EURUSD,H1)     A=665349  B=665349  C=665349
2010.08.28 20:57:09    Servis (EURUSD,H1)    --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!


 а у меня М1 не совпало

PQ      0       Servis (EURUSD,H8)      22:06:24        --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!
LE      0       Servis (EURUSD,H8)      22:06:24         A=100652  B=100652  C=100652
CP      0       Servis (EURUSD,H8)      22:06:24         L1=1006520000   L2=1006520000   L3=1006520000   M1=4294966006
 
sergey1294:

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

да, так попроще, в конце можно даже лишние кавычки не ставить 
return(StringToTime((string)str.year+"."+(string)str.mon+".01 00:00"));
 
SHOOTER777:

Еще раз обращаюсь к пытливым умам!

Код прилагается

 если я еще понимаю что-нить в программировании, то должно быть L1 = L2 = L3 = M1  у меня не так!   А у Вас?

Сначала компилятор ругался на отсутствие "#import  "lbS7N_Servis.ex5""

После удаления этой строки выдал:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1)  L1=1016990000   L2=1016990000   L3=6617010000   M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1)  A=101699  B=101699  C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!

Когда заменил в коде номер счёта на свой, то получил:

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1)  L1=1016990000   L2=1016990000   L3=1016990000   M1=1016990000

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1)  A=101699  B=101699  C=101699

 2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!

Сервер MQ, билд 316. 

 
sergey1294:

 а у меня М1 не совпало

уникальная ситуация... :(
 
Почему SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), возвращает ноль?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergeev:
уникальная ситуация... :(

Причём, целых три уникальных ситуации. Это - обнаруженных. А сколько не обнаруженных?

И при таком состоянии дел MetaQuotes через месяц начинает Чемпионат 2010?

О, сколько нам открытий "чудных" готовит МетаТрейдер 5...

 
Kos:
Почему SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), возвращает ноль?

И к тому же, версия, возвращающая признак успешности выполнения (в справке обозначенная как 2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.) рапортует об успешности вызова:

void OnStart()
{
  double SymbolVolumeLimit1 = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT);
  double SymbolVolumeLimit2 = DBL_MAX;

  Print("Symbol() = ", Symbol(), ", bool SymbolInfoDouble() = ", SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT, SymbolVolumeLimit2));
  Print("SymbolVolumeLimit1 = ", SymbolVolumeLimit1, ", SymbolVolumeLimit2 = ", SymbolVolumeLimit2);
}

/* Вывод в лог (хронология - сверху вниз):
JN      0       1 (EURUSD,M15)  02:41:18        Symbol() = EURUSD, bool SymbolInfoDouble() = true
JJ      0       1 (EURUSD,M15)  02:41:18        SymbolVolumeLimit1 = 0, SymbolVolumeLimit2 = 0
*/

Вторая версия функции SymbolInfoDouble() вернула true, то есть, выполнилась успешно. Что также видно по значению переменной SymbolVolumeLimit2, изначально инициализированной значением DBL_MAX, но, после вызова SymbolInfoDouble(), получившей значение 0.

И как, по мнению MetaQuotes, советники на Чемпионате 2010 должны в таких условиях опираться на значения, возвращаемые подобными функциями, а не использовать жёстко заданные величины?

 

Кто использовал функцию OrderCheck.

Вот такая конструкция:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

При компиляции Получаю ошибку: 'result' - parameter conversion is not allowed.

Если убрать OrderCheck, то все компилируется нормально и в тестере открывается позиция.

 

А вот, что это...

Alert(" прибыль=",ПросчетПрибылизаПериод(D'2010.08.01 00:00:00'));


double ПросчетПрибылизаПериод(datetime датаначалапросчетаприбыли)
  {
   int i;
   double прибыльзапериод;
   ulong тикет;
   HistorySelect(датаначалапросчетаприбыли,TimeCurrent());
   //HistorySelect(D'2010.08.20 00:00:00',D'2010.08.20 23:59:00');
   for(i=1;i<=HistoryDealsTotal();i=i+1)
     {
      тикет=HistoryDealGetTicket(i);
      if(HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_IN || HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_STATE)
         continue;
      прибыльзапериод=прибыльзапериод+HistoryDealGetDouble(тикет,DEAL_PROFIT)+HistoryDealGetDouble(тикет,DEAL_COMMISSION)+HistoryDealGetDouble(тикет,DEAL_SWAP);
     }
   return(прибыльзапериод);
  }

Считаться должна прибыль по сделкам с указанной даты. Выдает совсем другой результат чем на самом деле. Например у меня вместо результата примерно 2000 получается 611. Начал проверять по дням(закомментированная строчка). Бывают(!!) дни когда результат совпадает, но обычно он совсем не такой какой должен быть...(закономерность найти не смог). Причем в отладчике цикл точно проходит по всему количеству сделок. Правда отследить я могу только как раз это количество сделок, потому как кроме переменных int ни у каких других не отображаются значения(пишет Expression could not be evaluated).

Правильный ли код, и правильно ли я пользуюсь отладчиком...? 

 
SHOOTER777:

Спасибо. Тогда буду обращаться к разработчикам.

Здравствуйте! Опишите вашу ситуацию подробно в сервисдеске, где укажите номер билда, ОС, битность и приложите код.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5