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

 

下午好。

我必须确定一个新酒吧的开幕。我在我的专家顾问中插入了一个纯函数,这个例子来自MQL教程

void Fun_New_Bar() // 检测新条的函数
{
static datetime New_Time=0; // 当前条的时间
bool New_Bar=false; // 没有新条
if(New_Time!=Time[0]) // 比较时间
{
New_Time=Time[0]; // 时间是现在
New_Bar=true; // 抓住新条
}
return(New_Bar);
}

它给出了一个单一的错误'(' - 函数定义出乎意料 - 我把这理解为一个出乎意料的函数定义

我在int函数前将 "New_Time "变量定义为datetime New_Time;--没有它,编译时出现了未定义变量的错误。

该函数在主程序中的调用情况如下。

Fun_New_Bar(); // 调用f-i
if (New_Bar==false) // 如果该条不是新的...
返回。

谁能告诉我为什么这一切不起作用?

还有一个有趣的观察--当你修复某些东西时,你复制它--没有错误,然后你再复制它--再一次

'(' - 函数定义意外 - 这就是原因。我是不是写得太糊涂了,以至于编译器不能马上理解我?

 
keekkenen >> :
发生了,有时你打印歪了的地方,看到0.0000=0,它就不起作用了--假的,为了以防万一,把值归一。

我添加了一个新的条件,与有问题的条件重复,问题就解决了。

谢谢你!


PS 很好,在我的案例中,订单的错误报告了问题--在其他人中,EA的逻辑可能完全被破坏。

没有任何信息,就不可能知道它:((()

 

该函数被声明为无效,即它没有返回任何东西,但在代码中却说return(New_Bar);这就是错误的原因...

它必须根据返回的变量类型来声明 - bool Fun_New_Bar()

并相应地使用它 if ( !Fun_New_Bar( ) return(0);

 
keekkenen писал(а)>>

该函数被声明为无效,即它没有返回任何东西,但在代码中却说return(New_Bar);这就是错误的原因...

它必须根据返回的变量类型来声明 - bool Fun_New_Bar()

并相应地使用它 if ( !Fun_New_Bar( ) return(0);

在第一个版本中,我把它精确地命名为 "bool Fun_New_Bar()",但错误还是一样的,所以我把这个函数命名为手册中的名字--void。我已经执行了你的提示,但没有变化--错误还是一样。

但发生了一个变化--错误出现在第279行(这是注释行),而函数从280开始

一个相关的问题是,用一些一次性的分析块加载int()函数是否可以接受,例如,确定指标上两个最新反转的数值。

我已经这么做了。这是否会导致专家顾问的挂起?

 

函数 定义出乎意料--很可能是在Fun_New_Bar函数之前的代码中缺少或多余的括号。

仔细查看代码,你可能会发现问题所在。

 
keekkenen писал(а)>>

函数定义出乎意料--很可能是在Fun_New_Bar函数之前的代码中缺少或多余的括号。

仔细看一下代码,你就会发现问题所在了。

我现在就去找它。 我将尝试把这个函数挤到我调用它的地方。有两个有这样错误的函数在被移到调用处后已经被复制而没有错误。更重要的是,如果 "有问题 "的函数被移到调用的地方,同样的错误会跳到另一个函数,不一定是顺序上的下一个。

 
alsu >> :

1.如果你还没有安装QIPInfium,请安装。

2.为终端创建一个单独的ICQ账户

3.安装和配置MsgBox插件 -详细说明

从专家顾问(指标、脚本),应该产生信号,在OutBox文件夹中写入必要的信息的文件,如上面链接的说明中所述。要写到终端目录之外的文件,你可以,比如说,使用ZI_File_Functions_Full_Lib


就是这样,只要有一点点谷歌和一些创造力,你就可以在四个步骤中用最少的编程做任何你想做的事情:))))

谢谢,它的工作:)

 

在演示模式下运行EA时,订单确认窗口不断弹出,就像在手动交易 中一样。这个功能在选项中被取消了,但仍在某个地方被抓到。

有什么办法可以取消确认窗口吗?

 
Andrei01 >> :

在演示模式下运行EA时,订单确认窗口不断弹出,就像在手动交易中一样。选项已经取消了这一功能,但它仍然在某个地方被抓住。

有什么办法可以取消这个确认窗口吗?


设置_Mt 服务-设置-顾问


专家设置

 

谢谢。这正是不起作用的地方,因为它写在配置文件的某个地方,无法撤销。