错误、漏洞、问题 - 页 99

 
Renat:

没有。

如果你创建了一个变量int i;,你为什么不初始化它?事实上,你自己说 "我不关心这个变量里有什么",结果里面是垃圾。

正确的方法是int i=0。

是的,这是正确的--你可以在一个块内创建这样的变量。
这是一种习惯。早些时候(在MQL4中)int i;int i=0; 的工作方式相同。Eh....
 
Renat:
请在servisdesk中发布一段发生这种情况的代码。

我把它完整地贴了出来(代码),(当这一行有这个字符"&"时完全宣告错误,而如果你把这个字符从字符串中完全删除,一切都能正常工作...或者至少有一半的字符串用于注释,那么它将与这个字符一起工作,但是!!!159个字符的字符串的长度。然后????)并尝试在Windows 7 64位上声明(这很重要),因为错误正是在它上面发生的,虽然在这个Bild 306之前我有15个build,一切都很好,在305上--我在这个版本的Windows上用这个代码工作了一周,一切都很好。



我已经给服务台写了两天的信,但我什么都做不了......。

P/S. 他们已经通知我他们正在努力......(通过ServiceDesk)。


Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
 

周四00:00-24:00的报价。周五00:00 - ~22:45 .

我怎样才能收到这些信息?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

void OnTick()
  {
//---
//Print(TimeCurrent());      
datetime a,b;
SymbolInfoSessionTrade(Symbol(),FRIDAY,0,a,b);
Print(a,"-",b);
  }

返回 "2010.08.17 15:44:31 时间(GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

什么是session_index,//会话编号,我怎么知道这个编号?

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );
 
gumgum:

周四00:00-24:00的报价。周五00:00 - ~22:45 .

我怎样才能收到这些信息?

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

返回 "2010.08.17 15:44:31 时间(GBPJPY,H1) 1970.01.01 00:00:00-1970.01.02 00:00:00"

什么是session_index,//会话编号,我怎么知道这个编号?

见文章《EA中的限制和检查
 
Rosh:
见文章《EA中的限制和检查


2010.08.17 17:35:37 时间 (EURUSD,H1) 星期一: session index=0 start=00:00 finish=23:59:59

2010.08.17 17:34:58 时间 (EURUSD,H1) 周五:会话索引=0 开始=00:00 结束=23:59:59

session_index始终为零

我还是不明白为什么会有索引!?

for(int i=0;i<=1000;i++)
{
datetime a,b;
if(!SymbolInfoSessionTrade(Symbol(),FRIDAY,i,a,b)){}else{Print(a," - ",b);}
}

除了0以外,它总是假的。

 

献给开发者...

如果你们给了一个机会,至少会发出警告,而之前原则上是不可能的。

我浪费了二十四个小时试图抓住这个错误。

double            nd(double v)
{if(DIGITS=EMPTY_VALUE)DigitMinLots();// ставлю  if(DIGITS==EMPTY_VALUE) даёт расчёт с ошибкой
return(NormalizeDouble(v,DIGITS));
};

不要告诉我这没关系,我当然知道,但我已经浪费了24个小时,只是因为我已经习惯于用这个

if(DIGITS=EMPTY_VALUE)

我已经习惯于让编译器给我一个错误。

 
Urain:

献给开发者...

如果你们给了一个机会,至少会发出警告,而之前原则上是不可能的。

我浪费了二十四个小时试图抓住这个错误。

不要告诉我没关系,我当然知道,但我花了24小时,只是因为我已经习惯了与这个事实

我已经习惯于让编译器给我一个错误。

没有错误。下一次更新将给出警告,表示该表达式不符合逻辑。
 
mql5:
没有错误。在下一次更新中,将有一个警告,即该表达式不符合逻辑。
现在你说了,我自己没有错误。
 

是否存在强制终止OnTester()函数 的情况

或者为什么自定义函数之前的交易历史存在,而之后却返回零。

double OnTester()
  {
   int HTD=-1;
   Custom_func();
   if(HistorySelect(0,TimeCurrent()))HTD=HistoryDealsTotal();   
   return(HTD);
  }

什么功能在测试器中不工作?

测试员(在优化过程中)如何向外界发出信号,说明有什么问题(打印警报,没有工作)?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

我不明白,我这辈子都不明白。

为什么呢:星期五的24点还没有结束。

还是什么?

Rosh:
见文章《EA中的限制和检查

以及为什么session_index++;如果session_index=1已经是假的。

//+------------------------------------------------------------------+
//|  Вывести информацию о котировочных сессиях                       |
//+------------------------------------------------------------------+
void PrintInfoForQuoteSessions(string symbol,ENUM_DAY_OF_WEEK day)
  {
//--- начало и конец сессии
   datetime start,finish;
   uint session_index=0;
   bool session_exist=true;

//--- пройдемся по всем сессиям за этот день
   while(session_exist)
     {
      //--- проверим наличие котировочной сессии с номером session_index
      session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);

      //--- если такая сессия есть
      if(session_exist)
        {
         //--- выведем день недели, номер сессии и время начала и окончания
         Print(DayToString(day),": session index=",session_index,"  start=",
               TimeToString(start,TIME_MINUTES),"    finish=",TimeToString(finish-1,TIME_MINUTES|TIME_SECONDS));
        }
      //--- увеличим счетчик сессий
      session_index++;
     }
  }