任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 722

 
Zver4991:
是否有任何代码规则?

当然,而且不仅仅是代码!

https://forum.mql4.com/ru/38943

 
我搞不清楚为什么会挂掉
//+------------------------------------------------------------------+
//|                     Машка за больший период без перерисовки .mq4 |
//|                                                             Zver |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Zver"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property  indicator_color1 Aqua
extern int Otobrajat_v_istorii = 1000;
extern int ma_shift=0;
extern int ma_method =0;
extern int applied_price=0;


double buf_ma[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
     SetIndexBuffer(0,buf_ma);         // Назначение массива буферу
   SetIndexStyle(0,DRAW_LINE,EMPTY,2);// Стиль линии
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   int i,// Индекс бара
   Counted_bars;
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if(i>Otobrajat_v_istorii-1) // Если много баров то ..
      i=Otobrajat_v_istorii-1;                  // ..рассчитывать заданное колич.
     
   while(i>=1) // Цикл по непосчитанным барам
     {

    
     buf_ma[i]=iMA(Symbol(),Period(),5,ma_shift,ma_method,applied_price,i);
  
     
     }
   
   
   
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

 
代码变体
int Err;   //Номер ошибки
int FunErr(int Err) // Функция обработки ошибок
给出了一个警告。
Err "的声明隐藏了第51行的全局声明。
另一个代码变体
int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
给出了一个错误。
'Err' - 没有类型的声明
如何正确书写?
 
Zver4991:
我搞不清楚为什么会挂掉
int i// 小区索引
while(i>=1)// 循环查看未计算的小区
i>=1总是。
 
Shurkin:
int i// 酒吧索引
while(i>=1)// 在未计算的酒吧上循环
i>=1总是。

对了,我忘了......谢谢。

i--;

 
//--------------------------------------------------------------------
int Count=0;                                    
//--------------------------------------------------------------------
void OnTick()   
  {
   Count++;
   Comment("Новый тик ", Count);
   //if(Count>2) ExpertRemove();
  }
//--------------------------------------------------------------------
void OnDeinit(const int reason)
  {
   Comment("Сработала ф-ия deinit() при выгрузке");
  }
//--------------------------------------------------------------------

如果取消了if(Count>2)ExpertRemove(),并通过该函数退出,那么在EA卸载后, "卸载时触发Deinit() " 注释 仍然显示 在图表上

有谁知道为什么,如果通过上下文菜单将这样的EA从图表中删除,那么OnDeinit 的Comment() 不会留在图表上?

 

Shurkin:

代码变体
int Err;   //Номер ошибки
int FunErr(int Err) // Функция обработки ошибок
给出了一个警告。
Err "的声明隐藏了第51行的全局声明。
另一个代码变体
int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
给出了一个错误。
'Err' - 没有类型的声明
如何正确书写?

这是一般的语言设计的错误,在最高层进行辩护。两个事实。

1.MQL4++语言允许在嵌套作用域中隐藏变量名。

2.当在嵌套作用域中隐藏变量名时,必须有一个警告,不能被禁用。

要回答这个问题,至少有两种可能性。

1.使用名字隐藏,但要忍受警告的存在(不好,你可能会在许多关于隐藏名字的警告中错过一个非常重要的其他警告,这可能有助于发现和消除一个潜在的错误)。

2.不要使用名称隐藏,即使该语言有这样的功能。例如,将全局变量 命名为gErr,而不是Err。

没有禁止隐藏名字,而是引入了一个不可删除的警告。利用好它。

 

在俄语中:正确的选项是第一项,忽略警告。

 
tara:

在俄语中:正确的选项是第一项,忽略警告。

谢谢你。
 
我在哪里可以找到包容文件中的功能描述?