[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 324

 
TheXpert >> :

警报,作为一种选择。评论 -- 很好。

用 while(!IsStopped() 替换 while(true)

迟到了))))。

是的,我忘了IsStopped。

 
Svinozavr >> :

迟到了))))。

下次我可以给你一个先机 :) 。

Svinozavr>>:

写下将进行输出的f-fi,并通过它写下你需要的东西。

选择。


 
TheXpert >> :

>> 谢谢你。是否可以改变评论的颜色?还是只有白人?

 
TheXpert >> :
下次我可以给你一个先机 :) 。

顺便说一下,是的,谢谢你,这里的答复非常快:)

 
Mathers >> :

谢谢你。是否可以改变评论的颜色?还是只有白人?

>>不,我没有。

 

当不需要处理每一个tick 时,我怎样才能使代码只在出现新条形时才被处理?

当然,一定有一个现成的功能。扔给我一个链接...


更新

谢谢,找到了(。

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(int timeFrame)
   {
   bool res=false;
   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];  
   int i=6;
 
   switch ( timeFrame) 
      {
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
      }
//----
   if (_sTime[ i]==0 || _sTime[ i]!=iTime(Symbol(), timeFrame,0))
      {
      _sTime[ i] = iTime(Symbol(), timeFrame,0);
      res=true;
      }
      
//----
   return( res);   
   }
 

我如何使用脚本在图表上设置自己的比例?

告诉你哪个栏先显示的功能是有的,但如何重置它却没有。

 

大家好,谁能解释一下?RefreshRates()函数,是否总是需要被调用,或者当专家顾问或脚本进行长时间计算时,它是否会自动工作,例如在错误处理功能中?
第二个问题:这里有一个代码的例子,我修正了一个错误,把一个参数传给了切换操作者...

int start()
  {
      int A = 1000;
      bool B=true;       // Условие успешной работы
//--------------------------------------------------------------
    if(Bars < A)         // Недостаточно баров
    {      
      Alert("Недостаточно баров в окне инструмента.");
      return;            // Выход из start()
    }
    if( B==false)         // Критическая ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;            // Выход из start   
      }
//+-------------------------------------------------------------- 
  return(0);
  }
//--------------------------------------------------------------
    int Bloc_Error(int S)    // Пользовательская ф-ия обработки ошибок
    {   
      switch( S)    
      { 
      case 3:                // Неверные параметры:
      B=false;
      return(0);                                
      }  
    }

好了,现在又出现了一个错误,似乎是未定义的变量B
,我没有声明它吗?

bool B=true;

这就是错误信息 的模样。
'B' - 未定义变量 ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

这里还有一个问题,这些数字是什么?(31, 7),它们对于不同的错误总是不同的,我看了指定目录中的相同条目,它就像文件中的错误名称一样...在MetaEditor 4中,是否有可能在某个地方看到解决方案的描述,例如,在专家顾问中,执行和执行的错误与他们的价值相对应,其中每个数字都有具体的错误原因?

 
Daiver2 писал(а)>>

大家好,谁能解释一下?RefreshRates()函数,是否总是需要被调用,或者当专家或脚本进行长时间计算时,它会自动触发,例如在错误处理函数中?
第二个问题:这里有一个代码的例子,我修正了一个错误,把一个参数传给了切换操作者...

好了,现在又出现了一个错误,比如未定义的变量B
我不是宣布了吗?

这就是错误信息的模样。
'B' - 未定义变量 ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

因此,还有一个问题,这些数字是什么?(31, 7),它们对于不同的错误总是不同的,我在指定的目录中看了相同的条目,它就像文件中的一个错误名称...在MetaEditor 4中,是否有地方可以寻找解决方案的描述,例如,像在Expert中那样,执行和运行时错误与它们的值相对应,每个数字都有具体的错误原因?

它应该被定义在start()函数之外,使之成为全局性的。那么这个变量就可以从任何函数中获得

 
Vinin >> :

它应该被定义在start()函数之外,使其成为全局性的。那么这个变量就可以从任何函数中访问

让我解释一下。Start与其他函数相同,所以Start内的所有变量定义在它之外没有影响。该变量只能在专家顾问主体中,在init之前进行全局定义。然后它将对所有的功能可见。

数字是指错误发生的行号和行中的字符数。