新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 297

 
Dmitriy Voevodkin:

通过以下方式处理交易的历史

订单历史总数()

OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)


谢谢你的答复。我明白,如果一个订单已经关闭,它应该从历史中选择(作为历史中的最后一个订单),但我不知道如何设置这个条件(在我们找到它之后),如果它在获利时关闭,那么...,如果它在止损时关闭,那么...?

 

日安,我有一个这样的问题....我想,出于某种原因,EA中的Init()函数不仅在连接或编译EA的时候启动,而且在连接中断时,或者更准确地说,在重新连接后也启动。你能告诉我如何在恢复连接后启动init()函数吗?????

 
请告知什么是正确的方式,在哪里放括号。bool的指定是否正确?它与外部bool的区别是什么?(或类似这样的内容)

"
Bool Volumes

如果(体积[1]>体积[2])f=true;否则f=false。
如果(f)交易;否则不交易
"
附加的文件:
 
Tigerfreerun:
请告诉我们正确的方法,以及在哪里放括号。bool的指定是否正确?它与外部bool的区别是什么?(或类似这样的内容)

"
Bool Volumes

如果(体积[1]>体积[2])f=true;否则f=false。
如果(f)交易;否则不交易
"

将光标放在音量上并按下F1。

体积是一个运算符。

变量bool f。

基本上,你可以把光标放在任何一个操作者上,然后按F1键--那里有一切的详细描述。
 
Dmitriy Voevodkin:

将光标放在音量上,然后按F1。

体积是一个运算符。

bool变量为f。

原则上,你可以把光标放在任何一个操作者上,然后按F1键--那里对一切都有详细的描述。
问题是关于括号的,在哪里放"{,}"我不明白这种括号排列的算法。我完全按照你说的写了所有的东西,但在 "全局范围 "这个词上有4个错误。
 
Mihail Marchukajtes:

日安,我有一个这样的问题....我想,出于某种原因,EA中的Init()函数不仅在连接或编译EA的时候启动,而且在连接中断时,或者更准确地说,在重新连接后也启动。你能告诉我如何在恢复连接后启动init()函数吗?????


你不能启动Init,它是在你启动指标/专家时自动启动一次,就像DeInit一样。

作为一种选择,你可以制作一个静态布尔变量并与IsConnected() 一起使用。而当连接在一个新的tick到来时被恢复,首先必须启动它自己的初始化函数。但是IsConnected()不应该在OnCalculate()中应用,而是在OnTimer()中应用

 
Dmitriy Voevodkin:

将光标放在音量上,然后按F1。

体积是一个运算符。

bool变量为f。

基本上,你可以把光标放在任何一个操作者上,然后按F1键--那里有一切的详细描述。
错误截图
附加的文件:
 
Tigerfreerun:
错误截图

我第一次看到这样的截图=)

你没有可能用Windows的内部手段进行屏幕截图吗?

 

通过代码。

如果量少,做一个简单的返回,即中断进一步代码的执行。

if(Volume[0] < 1000) return;
 
Tigerfreerun:
错误截图

MQL的语法被破坏了。在这种情况下,bool Volume后面多了一个分号,编译器也希望有括号(),但我已经给你写了,在这种情况下这是逻辑,不是专家顾问的代码。