bool res=false; res=OrderSend(Request,Results); if(res) { Print(_Symbol+" Test True order "+(string)Results.deal); if(Results.deal>0) return(true); elsereturn(false); } Print(_Symbol+" Test False order "+(string)Results.deal); return(false);
bool res=false; res=OrderSend(Request,Results); if(res) { Print(_Symbol+" Test True order "+(string)Results.deal); if(Results.deal>0) return(true); elsereturn(false); } Print(_Symbol+" Test False order "+(string)Results.deal); return(false);
是的,好建议...
重复进行
我们必须检查结果。秩序。
如果下了订单,这并不意味着交易已经完成。
此外,我们还应该检查订单的状态,以及它是否已经出现在历史上。
交易所不使用头寸,只使用订单。
我最近提出了一个关于重开订单的话题。我以为我已经解决了这个问题,因为一个星期以来一切工作都非常顺利。但今天我遇到了一个类似的问题,只是在打开时。
在Finam上有很多订单,在Otkritie上有9个订单......尽管在所有情况下都应该只有一个订单开盘。
下面是EA的一个代码片断
即我们可以从代码中看到,如果操作成功,变量OpenOrders 增加,最初等于0
如果它高于0,就不应该再开立订单,而是用注释Order1开立整堆的订单。
我 在打开订单 的函数中检查 是否有积极的回应,以及是否已经收到了订单票据,但由于某些原因,这个函数返回错误,尽管订单实际上已经设定。
解释一下问题出在哪里,如何解决这个问题?
告诉我,你是为哪个市场编写这段代码的?
对于股票经纪人来说。
重复进行
除此以外,你还应该检查订单的状态,以及它是否已经出现在历史上。
该交易所不处理头寸,只处理订单。
好吧,谢尔盖,见....,这是来自查询结果的文件。
交易
一张票的交易,如果它已经被执行。这是在交易过程中报告的TRADE_ACTION_DEAL
秩序
票务订单,如果已经下了票。在交易操作中被通知TRADE_ACTION_PENDING
我没有挂单,我使用TRADE_ACTION_DEAL
你一定是在用限价器工作,那么一切都很正确....,这里是以当前价格从市场进入。好吧,谢尔盖,见....,这是来自查询结果的文件。
交易
门票交易,如果有的话。将在交易中报告TRADE_ACTION_DEAL
秩序
票务订单,如果已经下了票。在交易操作中被通知TRADE_ACTION_PENDING
我没有挂单,我使用TRADE_ACTION_DEAL
你一定是在用限价器工作,那么一切就都是正确的....,这里你是以当前的价格从市场进入。设置类型填充
设置类型填充
通过填充设置订单类型
你设定你认为合适的东西。
顺便说一下,刚刚检查了发送订单和印刷品的结果
所以在所有的情况下,票面上都是0
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
顺便说一下,刚刚检查了 发送订单和印刷品的结果
票据在所有情况下都显示为0
已经取得了进展......。))
顺便说一下,我刚刚向印刷厂核实了发送订单的结果
所以在所有的情况下,票面上都是0
res=OrderSend(Request,Results);
if(res)
{
Print(_Symbol+" Test True order "+(string)Results.deal);
if(Results.deal>0) return(true);
else return(false);
}
Print(_Symbol+" Test False order "+(string)Results.deal);
return(false);
退货代码在哪里?我如何知道是否有错误?
我给了你一个例子:双重保护和票据的输出和返回代码。
我没能找到一个例子。让我这样说吧。
当你通过市场发送订单时,订单应该执行或被拒绝(因为你有一个FOK填充)。
因此,你不需要等票,你需要得到一张票。
一旦你收到一个票据,你就带着票据 "去 "OnTradeTransaction()。
你听TRADE_TRANSACTION_HISTORY_ADD,因为市场订单总是能进入历史记录。
并查看票据,看看订单发生了什么。