[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 415

 

惩罚他,把他放在角落里。:)

实质上,保持简单,这句话的结构是这样的,你可以打破你的大脑,不明白你想要什么。没有人知道他以前被你 "教导 "过什么。

 
Shniperson:
先生们,如何 "训练 "EA不在夜间交易?即终端时间在23和02小时之间(GMT)...Hour()>=2&Hour()<=23并没有帮助...

extern int bh = 0; // час начала
extern int bm = 0; // минута начала
extern int eh = 23;// час окончания
extern int em = 2; // минута окончания

int start()
{
   if(TradeTime() && Ваши условия входа) OrderSend(...);
}

bool TradeTime()
  { 
   int TimeNow = 60 * Hour() + Minute();   
   if (60 * bh + bm < TimeNow && TimeNow < 60 * eh + em) return (true);
   return (false);
  }
 

Здравствуйте всем. У меня МТ4 (демо) не связывается с сервером, даже не пытается. Постоянно горит надпись "нет связи". Пробовал "просканировать серверы" - не помогает.

 
Katso:


是否有一个代理在路上?
 
Vinin:

没有
 
int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for( j=499, int i=1; i<500; i++,j--)                                   //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения сторон соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------

这个算法工作正常,但如果你把第一个表达式中for语句的标题中的赋值运算符 换一下,程序就不再工作了。为什么?

int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for(int i=1, j=499; i<500; i++,j--)                                    //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------
 
VladimirR:

这个算法工作正常,但如果你把第一个表达式中for语句的标题中的赋值运算符换一下,程序就不再工作了。为什么?






for(int i=1, j=499;

第二次声明j变量

 
ilunga:

第二次声明j变量

谢谢你))))。

 
VladimirR:

这个算法工作正常,但如果你把第一个表达式中for语句的标题中的赋值运算符换一下,程序就不再工作了。为什么?







我想知道为什么计数器的值要在循环中改变两次。而且由于某些原因,没有(初步)分配S2。开始时是0,只有在第二次迭代时(更准确地说,在第三次迭代时)才有真正的数值比较(这取决于如何从零或从一开始计算)。
 

这也是不可行的

int start()
{
int S1,S2; //下一个和上一个矩形的S1和S2面积
//----
for( int i=1, j=499; i<500; i++,j--) //依次搜索面积值
{
S2=S1; S1=i*j; //计算面积下一个和上一个
if( S2>=S1) //检查最大值
{
i--; j++; //返回最大面积对应的数值
break;
}
}
//----
Alert("面积等于",S2, "mm*mm A=",i, "mm B=",j, "mm");
return(0);
}
//+------------------------------------------------------------------+