我是 MQL5 的新手。
我有一个 EA,它首先购买一只股票(比如 PETR4),然后再购买另一只股票(比如 ABEV3)。
唯一的问题是我只能在第一个执行时订购第二个(不仅是放置)。
我使用MqlTradeResult.retcode
来获取退货编号,但这仅显示订单是否已下达,我需要知道订单是否已完成才能继续进行第二次操作。
谁能帮我?谢谢
我是 MQL5 的新手。
我有一个 EA,它首先购买一只股票(比如 PETR4),然后再购买另一只股票(比如 ABEV3)。
唯一的问题是我只能在第一个执行时订购第二个(不仅是放置)。
我使用MqlTradeResult.retcode
来获取退货编号,但这仅显示订单是否已下达,我需要知道订单是否已完成才能继续进行第二次操作。
谁能帮我?谢谢
PositionSelect()
调用中编码:第一次通话
if ( PositionSelect( "PETR4" ) ) { ... /* further work will go here */}
这选择了一个空缺职位以进一步使用它。
True
如果函数成功完成则返回。在失败的情况下返回False
。
如果给定交易品种报告了任何活动位置,则进一步的工作将在{...}
-code-block内进行
隐藏的魔法实际上是,任何符号要么只有一个位置,要么根本没有。这使得其余的逻辑一清二楚。
交易操作的执行会导致开仓,改变其数量和/或方向,或消失。交易操作基于订单进行,由
OrderSend()
功能以交易请求的形式发送。对于每个金融证券(代码),只有一个未平仓头寸是可能的。一个位置具有一组可供PositionGet...()
函数读取的属性。
...分配给每个新开仓头寸 的唯一编号。它通常与用于开仓的订单的票据相匹配,除非由于服务器上的服务操作导致票据发生变化,例如,在重新开仓时收取掉期费用。要查找用于开仓的订单,请应用该属性。
POSITION_TICKET
POSITION_IDENTIFIER
POSITION_TICKET
值对应MqlTradeRequest::position
。