//Reading information on current parameters of the trade account
RealTradeAllowed = TradeAllowed(); //TradeAllowed
RealTradeExpert = TradeExpert(); //TradeExpert//Checking the status change of the use possibility automatic tradeif(varTradeAllowed!=RealTradeAllowed)
//Processing the event TradeAllowed
{
OnTradeAllowed(RealTradeAllowed);
//We write current status of the RealTradeAllowed in variable varTradeAllowed = RealTradeAllowed;
}
我没有理解错,ACCOUNT_TRADE_ALLOWED 返回的值是在服务器端生成的吗?
我的意思是交易员方面的任何行动(在终端)都不能改变这个值...
PS
但是,ACCOUNT_TRADE_EXPERT 不愿意改变,真的很奇怪......
那么终端菜单中的 "自动交易 "按钮和 "允许自动交易 "复选框有什么作用?
PPS
在旧版本中,所有的东西似乎都是正确的,一切都在工作,但在299中我不明白发生了什么......
谁在ACCOUNT_TRADE_ALLOWED和 ACCOUNT_TRADE_EXPERT中挖掘,为什么?
致开发者--要么是我疯了,要么是终端机里有"drubashka"...:)
而不是在最新的版本中,但至少在294年(谁让他们在那里?):(
一个小实验
让我们拿着终端发布的294号文件,在图表上放置一个专家顾问,控制AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)的返回值。
同时,在专家顾问参数和终端(自动交易按钮)中,自动交易被禁用。
因此,专家顾问的日志包含以下内容
在这里,我们可以看到专家顾问执行的行动日志(在初始化期间)和检查定时器中的ACCOUNT_TRADE_ALLOWED值。
我们对所有用颜色突出的符号感兴趣(在这之前,符号列表被加载到一个专门的类中)。
1.定时器返回的第一个结果是蓝色的(预计是假的)。
2.红色突出了下一个结果,这是计时器返回的结果,它突然变成了真的(我对BARABACA允许交易的内容非常感兴趣)。
3.我的类(事件OnEventTimer)对变化的反应是绿色的。
在这里,该班级 "理解 "自动交易是被允许的,并愉快地通报了这一情况(我不同意其乐观态度)。
此外,该信息显示了两次(虽然之前没有看到过)。该信息不能出现两次,因为OnEventTimer 事件包含一个检查,排除了这种可能性。
4. 然后计时器不断返回真,无论终端发生什么。
PS
AccountInfoInteger(ACCOUNT_TRADE_EXPERT)的情况就更令人困惑了。无论终端和专家顾问设置如何,定时器都会返回状态。
我们需要它吗?
我也对一个类似的问题感兴趣。如果我的账户中没有足够的资金来开仓,我应该怎么办?
1.停止专家顾问的交易。
2.禁止开仓。
3.从图表中删除专家顾问。
第3点可以用ExpertRemove来解决。我是这样解决第二项问题的。
1.我理解,禁止交易不是通过程序设置的,而是通过使用 "自动交易 "按钮和 "允许自动交易 "复选框,然后勾选ACCOUNT_TRADE_ALLOWED和ACCOUNT_TRADE_EXPERT。
你也可以通过向你的专家顾问添加必要的参数,然后控制这个参数来禁止交易(例如,禁止在真实账户上交易)。
初步控制是在专家顾问的初始化过程中进行的,而在工作模式下,它在OnTimer()或OnTick()中处理。
2.对开仓(平仓)可能性的控制必须考虑到当前的状态:连接、自动交易的可能性以及其他条件(例如,控制对该符号执行某种操作的可能性)。
对于控制所有的条件,最好是创建一个具有类似于bool结果的函数。
例如,像这样的人。
3.只有在极端情况下(当它的工作无法完成或不再需要时)才应从图表中删除专家顾问。
这种情况是非常极端和罕见的。例如,如果没有找到专家顾问所需的一些文件,或者出现专家顾问无法解决的错误,就应该使用它。
PS
如果几个EA在不同的货币对上交易,但它们由一个EA管理(他决定在哪个货币对上放置EA和删除哪个),那么删除和放置EA也很有用...
谁挖掘了ACCOUNT_TRADE_ALLOWED和 ACCOUNT_TRADE_EXPERT,最重要的是,为什么?
开发人员--要么是我已经疯了,要么是终端"drubashki " 出现了......:)
而不是在最新的版本中,但至少在294年(谁让他们在那里?):(
一个小实验
让我们拿着终端发布的294号文件,在图表上放置一个专家顾问,控制AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)的返回值。
同时,在专家顾问参数和终端("自动交易 "按钮)中,自动交易被禁用。
因此,专家顾问的日志包含以下内容
在这里,我们可以看到专家顾问执行的行动日志(在初始化期间)和检查定时器中的ACCOUNT_TRADE_ALLOWED值。
我们对所有用颜色突出的符号感兴趣(在这之前,符号列表被加载到一个专门的类中)。
1.定时器返回的第一个结果是蓝色的(预计是假的)。
2.红色突出了下一个结果,这是由定时器返回的,它突然变成了真的(我对BARABACA允许交易的东西非常感兴趣)。
3.我的类(事件OnEventTimer)对这些变化的反应是绿色的。
在这里,该班级 "理解 "自动交易是被允许的,并愉快地通报了这一情况(我不同意其乐观态度)。
此外,该信息显示了两次(尽管之前没有看到过)。该信息不能出现两次,因为OnEventTimer 事件包含一个检查,排除了这种可能性。
4. 然后,无论终端发生什么情况,定时器都会不断返回真。
PS
AccountInfoInteger(ACCOUNT_TRADE_EXPERT)的情况就更令人困惑了。无论终端和专家顾问设置如何,定时器都会返回状态。
我们需要它吗?
这里发生了一些奇怪的事情,ACCOUNT_TRADE_ALLOWED和ACCOUNT_TRADE_EXPERT是在经纪公司交易的权限。
按钮 "自动交易"。- TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)。
有MQL5InfoInteger(MQL5_TRADE_ALLOWED) - 允许/禁止专家/脚本的交易。
奇怪的事情发生了,ACCOUNT_TRADE_ALLOWED和ACCOUNT_TRADE_EXPERT被允许在DC交易。
按钮 "自动交易"。- TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)。
还有MQL5InfoInteger(MQL5_TRADE_ALLOWED) - 允许/禁止专家/脚本进行交易。
我知道MQL5InfoInteger(MQL5_TRADE_ALLOWED),它运行良好,通常在专家顾问中被监控;MQL5_DLLS_ALLOWED 也被正常处理。
因此,按照我的理解。
TERMINAL_DLLS_ALLOWED 和 TERMINAL_TRADE_ALLOWED 是终端级别的权限。
MQL5_DLLS_ALLOWED和MQL5_TRADE_ALLOWED - 专家级别的权限。
ACCOUNT_TRADE_ALLOWED和ACCOUNT_TRADE_EXPERT - 服务器级别的权限。
然后我们将假设服务器将false改为true(尽管不清楚为什么这个消息会显示两次)。
下午好,我遇到了这个问题,我开始滚动小时图,到了某个日期就转到了日图,还有15分钟就转到了小时图或4小时图,根据文件规定删除了 存储历史的文件,但没有任何变化。
下午好,我遇到了这个问题,我开始滚动小时图,到了某个日期就转到了日图,还有15分钟就转到了小时图或4小时图,根据文件规定删除了 存储历史的文件,但没有任何变化。
我发现,在使用测试器的优化算法时,HistoryDealsTotal() 有一个问题。
在正常的回测中,一切都很好,但在优化环节,在EA的初始化阶段,HistoryDealsTotal() 返回EA上一次运行的交易数量。后来,在交易阶段,HistoryDealsTotal() 又开始为0。
我通过以下代码片段遇到了这个问题。
绕过这个问题的方法是用0来代替初始化,但我还是希望能得到关于这个问题的官方答复,因为在我看来,一些内部变量被重置得太晚了。
提前感谢!
你好,请回答我的问题。
为什么我不能下载mt5,我下载了安装文件,启动到一半就停止了,跳转到另一个接入点,等等。
-阅读失败 [12002]
这就是故事,无论我重新安装多少次终端或Windows,但现在是第三天,它失败了。
请告诉我为什么这个结构总是返回0
我怎么知道现在是多少分钟了?