给MQL专家的一个问题 - 页 15

 

谢谢Zhunko和TheXpert !

你的变体消除了这种类型的错误!

 

你好!

你能告诉我在更新的mt4中编译指标时,警告可能意味着什么吗?

不是所有的控制路径都会返回一个值S_E_v.mq4 181
0个错误(s), 1个警告(s) 1 2

 
Rita:

你能告诉我在更新的mt4中编译指标时的警告可能是什么意思吗?

这意味着在函数中存在一个返回值的情况,没有任何东西被返回,这是很糟糕的。
 

程序员们,请帮助我:我需要确定每小时TF上给定时间的条形偏移。标准程序(来自教程)给出的结果是0,给我指出错误的方向......

 datetime some_time=D'2004.03.21 12:00';
  int      shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
  Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);
 
Nesradamus:

程序员们,请帮助我:我需要确定每小时TF上给定时间的条形偏移。标准程序(来自教程)给出的结果是0,给我指出错误的方向......

"EUROUSD"

有这样一个符号吗?

 

下午。

在最后一次mt4更新和EA编译后,在101-106-109三行有警告,见图。

请指示,-如何修复,这里是这个函数的代码。

(以及是否应该改正?)

int init()
{
 ExpertBars = Bars;
//-----------------------------------------------------------
gbNoInit=False; if (!IsTradeAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить советнику торговать");
    gbNoInit=True; return;
  }
  if (!IsLibrariesAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить импорт из внешних экспертов");
    gbNoInit=True; return;
  }
//------------------
}
 
Rita:

下午。在最后一次mt4更新和EA编译后,在101-106-109三行有警告,见图。

请建议,-如何修复,这里是这个函数的代码。

(以及是否应该改正?)

你的init()是int类型的,这意味着它需要返回一个值。在最后一个结尾的括号前写上

return(INIT_SUCCEEDED);

在一个函数中,有一个地方,该函数可能什么都不返回。你没有显示函数--在那些可以在最后一个闭合括号上离开的函数中自己搜索。

 
以下是代码
artmedia70:

.在最后一个闭合小括号之前,写上.....

你没有显示函数--在那些可以在最后一个闭合括号上离开的函数中自己搜索。


谢谢你。纠正后返回(INIT_SUCCEEDED); 。

下面是这个未显示的函数的代码,用于其他两个剩余的警告。

//+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);}

.

 
Rita:
以下是代码

谢谢你。纠正了。

下面是这个函数在其他两个警告上的代码。

1.最有可能的是,你的deinit()也是int,而return(0)没有写在里面。

2.这个函数是无效的,结尾的小括号在其中起到了返回的作用`。里面的一切都很好。

 

deinit() - 我根本就没有。

在剩下的两个警告上把return改为return(0 ),代码的编译没有任何问题。

谢谢你。