for(cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // check for opened position OrderSymbol()==Symbol()) // check for symbol { for(i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()>OP_SELL && // check for opened position OrderSymbol()==Symbol() // check for symbol { OrderDelete(OrderTicket()); } }
我想知道第一部分......如何在触发第二个订单后删除它。
我的删除发生在它触发之前,但删除算法是基于检查OPEN订单
,例如,有两个挂单被设置。一个触发,即
OrderType()==OP_SELL或OrderType()==OP_SELL
相应的行被打印在日志中
而在测试结果 中
删除出现在买入或卖出之前
这导致订单编号的混乱
. 我问我是否可以不使用Curtime()在一天结束时关闭,因为更新取决于进入的点数,如果没有,EA将不会在我需要的时间关闭
现在我明白,你不能,因为EA没有点数不能工作
for(cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // check for opened position OrderSymbol()==Symbol()) // check for symbol { for(i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()>OP_SELL && // check for opened position OrderSymbol()==Symbol() // check for symbol { OrderDelete(OrderTicket()); } }而时间......?你真的要那么精确吗?设置为2分钟内,你通常不会在那个时候得到充分的低迷。
谢谢你,现在...经过一点调整,它就能正常工作了,尽管我仍然不明白为什么它对我不起作用(它都是透明的,达到了最大限度)。
关于低迷...问题是,有时不是两分钟,而是五分钟或更多(取决于十字架)。
对于Rosh
如果你有当然不要分享这个剧本?
编译器没有显示任何错误。它应该是这样的吗?
GetLastError 在执行时将产生一个错误。编译器不检查表达式的值(常数8是表达式的一个特殊情况)。
非常感谢,我现在会更仔细地观察数组的维度...)
另一个简单的问题。
在手数明显超过可用资金的情况下,当 "从手数 "开始...
- 第一个检查是在服务器上进行的吗?
- 如果不是,为什么订单开放面板会挂起几秒钟?
- 如果是的话,是否正确,也许这个检查应该先在终端上完成?
关于低迷...问题是,有时不是两分钟,而是五分钟或更多(取决于十字架)。
对于Rosh
如果有的话,你能分享一下脚本吗?
我刚刚注意到,也可能是我忘记了。什么脚本是独立于蜱虫的工作?
如果是这样,我们应该写一些东西,比如。
while (true) { startFromExpert(); Sleep(as long as necessary); }startFromExpert()函数是通过简单地重塑EA的start()函数得到的,我们将其全部复制并粘贴到我们的脚本中,不要忘记使用EA的所有参数。
这是其中一个选项。
TotalProfit - 所有未结头寸 的未实现利润总额。
我找不到如何在MQL 4中实现它,请告知如何做到这一点。
返回当前账户的利润值。
例子
Print("Profit", AccountProfit())。