mql4语言的特点、微妙之处以及技巧 - 页 3

 

当启动一个脚本、一个指标、一个专家顾问时,变量的名称会显示在输入参数选项卡中。

extern int Период=10;


如果#property strict指令存在,将显示注释而不是变量名

#property strict
extern int Период=10;  // Период отображения информации

这个信息量更大,IMHO

 
LRA:

当启动一个脚本、一个指标、一个专家顾问时,变量的名称会显示在输入参数选项卡中。


如果#property strict指令存在,将显示注释而不是变量名

IMHO,它的信息量更大。

好吧,那么特别是对于那些不知道的人。请看屏幕截图,那里一切都很清楚。


 

在MT4中存在一个故障:当depo大于999999时,详细报告图表中缺少一个数字。

如果超过999999,则缺少两个数字。总是只显示前5位数字。


 
LRA:

在MT4中存在一个故障:当depo大于999999时,详细报告图表中缺少一个数字。

如果超过999999,则缺少两个数字。总是只显示前5位数字。


不要忘了说,你在系统设置中把字体比例设置为125%。
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

你知道你可以设置故事的长度吗?这影响了搜索的时间!

如果你今天 定下了--一切都会少一些!午夜时分,故事会不会是空的?最好是--过去3天

致开发者:如何以编程方式设置历史深度?

 
与MQL5不同,在MQL4中静态数组 可以改变大小。
 
fxsaber:
与MQL5不同,在MQL4中,静态数组 可以改变 大小。

帮助中是否有错误?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
LRA:

证书中是否有错误?

如果你考虑到MQL4中没有静态数组,就不会有错误。
 
关于静态的问题,两种语言中都有一个微妙的点

关于交易、自动交易系统和测试交易策略的论坛

mt4 build 1066

James Cater, 2017.04.28 16:53

我发现在函数中静态变量的初始化顺序有一个回归错误

这在Build 1065中是有效的。我已经向服务台报告了这个问题

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

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[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic 预期结果103 - 实际结果=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic 预期结果102 - 实际结果=1


 
fxsaber:
两种语言中都有一个微妙的时刻

多么微妙的观点...你是用SD写的吗?
原因: