在特定经纪商的真实账户中存在多个订单输入问题 - 页 4

 
FinanceEngineer:

你好

我知道这听起来很奇怪。当我在以前的代码中检查OrderSend(request,result)的返回值时,我得到了多个订单问题。 现在在我的新代码中,我没有检查OrderSend(request,result)的返回值(但我仍然将返回值分配给一些变量,以避免在新的终端构建中出现错误。


嗨,FinanceEngineer,正是我告诉你的,你只是掩盖了真正的问题,因为在我看来,你在你以前的代码(10008的返回代码)中打印了这个(##),而不是断裂的情况。

if(!OrderSend(request,result) || result.deal==0 )
      {
         Print("OrderSend Code: ",result.retcode); // You are printing this (###) -> 10008
         ...
 
figurelli:

你好,阿兰。

我不清楚你需要知道什么,因为我们只是在讨论FinanceEngineer 的新代码,以及关于测试OrderSend()的返回代码的建议,该代码已从原来的代码中改变。

请注意,无论是他的原始代码还是他的新代码都没有代码10010的测试,所以如果这与你有关,你为什么不在他的第一篇帖子中就问?

总之,你能解释一下为什么你需要代码10010测试来填补 FOK政策 吗?

因为这不是我第一次看到你和其他版主谈论,你是否知道在某些情况下确实需要对FOK(Fill Or Kill)订单进行这种代码测试,你可以与我们分享?

谢谢你。

我想我也可以在这个论坛上提出问题,而不仅仅是总是要回答。仅仅是这样。

我们在这里看到很多代码,测试返回的代码(MqlResult)与10008或10009,但谁能解释一下这些代码的真正含义是什么,"订单已下 "和 "请求已完成 "之间有什么区别?因为似乎只有这两个代码不是错误代码,对吗?

10010是有问题的,文件中说:

10008

Trade_retcode_placed

已下订单

10009

交易_retcode_done

请求完成

10010

交易_retcode_done_partial

只有部分请求被完成

但是 "只有部分请求被完成 "是什么意思。你已经注意到,在FOK填充政策下,这可能不是0.5手的开仓,如果1手的请求(例如),但这是唯一的意思吗?

以前你写过关于10010代码。

我不认为这个代码有足够的未来性和安全性,这只是关于缺乏返回代码的一个例子,所以请再次阅读。

这句话的含义是什么?"未来证明"?"足够安全 "的...?"缺少返回代码",缺少什么呢?(也不是很重要,但是,"再读 "什么?)。

 
angevoyageur:

我想我也可以在这个论坛上提出问题,而不仅仅是总是要回答。很简单,就是。

我们在这里看到很多代码,测试返回的代码(MqlResult)与10008或10009,但谁能解释一下这些代码的真正含义,"订单已下 "和 "请求已完成 "之间有什么区别?因为似乎只有这两个代码不是错误代码,对吗?

10010是有问题的,文件中说

10008

交易_retcode_placed

已下订单

10009

交易_retcode_done

请求完成

10010

交易_retcode_done_partial

只有部分请求被完成

但是 "只有部分请求被完成 "是什么意思。你已经注意到,在FOK填充政策下,这可能不是0.5手的开仓,如果1手的请求(例如),但这是唯一的意思吗?

之前你写到10010代码。

这句话的含义是什么?"未来证明"?"足够安全"...?"缺少返回代码",缺少什么?(也不是很重要,但是,"再读 "什么?)。

就像大多数人一样,我是通过看别人的代码来学习MQL5的编码的。对我来说很奇怪,到目前为止,我还没有看到任何检查10010代码的代码。然而,这可能是值得检查的。以防万一。

从我所看到的情况来看,当我单独检查10008代码时,我得到的是双录入命令。而当我同时检查10009代码时,我得到了双录入命令。当我同时检查10008和10009时,我没有得到双录入命令。

但我只是好奇,从实际的角度来看,如果你在你的EA中检查10010代码? 如果订单真的部分完成,那么什么是处理这种情况的有效方法?

我可能认为大部分的订单发送问题可以通过在我们的循环中使用PositionGetDouble(POSITION_VOLUME)检查成交量来处理。但我不确定这是否比检查10008或10009代码更有效。

如果经纪商的服务器很忙,那么得不到正确的交易量的机会和得不到10008或10009代码的机会是一样的。

问候您。

 
figurelli:

你好,阿兰。

我不清楚你需要知道什么,因为我们只是在讨论FinanceEngineer 的新代码,以及关于测试OrderSend()的返回代码的建议,该代码已从原来的代码中改变。

请注意,无论是他的原始代码还是他的新代码都没有代码10010的测试,所以如果这与你有关,你为什么不在他的第一篇帖子中就问?

总之,你能解释一下为什么你需要代码10010测试来填补 FOK政策 吗?

因为这不是我第一次看到你和其他版主谈论,你是否知道在某些情况下,确实需要这个代码测试FOK(Fill Or Kill)订单,你可以与我们分享?

先谢谢你。

嗯,当我们在MQL5.com论坛上发帖时,我们认为我们是在和那些在编码专家顾问时可能有几种需求的人交谈...所以在这种情况下,很明显你可以简化一切,要求用户编码一个 "更简单 "的专家顾问,一旦他的需求不像你想象的那样 "高级"。然而,据我所知,有几种情况下,你不能 用FOK填充策略工作。

让我给你一个非常简单的例子:假设你正在处理股票,选择的数量是10,000只股票。现在,假设同样的专家顾问与 "反转 "一起工作,所以在一些随机的信号下,你可能不得不向市场发送一个数量相当于20,000只股票的订单,以执行所谓的 "反转"。在这种情况下,即使是流动性很强的股票(例如巴西的重磅股票PETR4或VALE5),在某个特定时刻也可能没有相当于20,000股的买入或卖出量。因此,在这种情况下,你将如何在你的专家顾问中处理这个问题?你真的相信FOK政策是这种情况下的最佳方法吗?或者您会尝试在您的专家顾问中考虑这个10010代码?

如前所述,当您一直在处理小手的时候,那么FOK填充政策可能是您最好的解决方案。然而,有时人们确实 有更 "先进 "的需求...

 
angevoyageur:

我想我也可以在这个论坛上提出问题,而不仅仅是总是要回答。只是这样。

我们在这里看到了很多代码,针对10008或10009测试返回的代码(MqlResult),但谁能解释一下这些代码的真正含义是什么,"订单已下 "和 "请求已完成 "之间的区别是什么?因为似乎只有这两个代码不是错误代码,对吗?

10010是有问题的,文件中说:

10008

贸易_retcode_placed

已下订单

10009

交易_retcode_done

请求完成

10010

交易_retcode_done_partial

只有部分请求被完成

但是 "只有部分请求被完成 "是什么意思。你已经注意到,在FOK填充政策下,这可能不是0.5手的开口,如果1手的请求(例如),但这是唯一的含义吗?

以前你写过关于10010代码。

这句话的含义是什么?"未来证明"?"足够安全 "的...?"缺少返回代码",缺少什么呢?(也不是很重要,但是,"再读 "什么?)。

Alain,没问题,你不必回答,因为你可能永远找不到案例,因为这在任何好的OMS协议中是必须的。

另外,你不需要说为什么你在第一篇文章后没有问,因为这可能是离题的。

总之,请注意,FOK是一个旧的填充策略,MQ引入它可能是为了解决与OMS的通信,所以你会发现它在所有好的OMS协议中,例如FIX,(就像这个论坛的话题,从2009年开始,在MT5存在之前)。

所以,在我看来,我认为没有理由询问10010的填充或终止订单的返回代码,这就是问题所在,因为这个规则是强制性的,经纪人和OMS供应商必须尊重它。

FIX Trading Community: // Fill or Kill Order
FIX Trading Community: // Fill or Kill Order
  • General Q/A
  • www.fixtradingcommunity.org
Have doubt regarding FoK order type. In my view if order is not filled a reject message should be sent by an exchange instead of cancel. Can someone confirm this? No, rejections are to convey that the requested action was not carried out. A FoK order not being filled does not fall in this category, it is rather "works as designed". It is...
 
Malacarne:

那么,当我们在MQL5.com论坛上发帖时,我们认为我们是在和那些在编码专家顾问时可能有几种需求的人交谈...所以在这种情况下,很明显您可以简化一切,要求用户编码一个 "更简单 "的专家顾问,一旦他的需求不像您想象的那样 "高级"。然而,据我所知,有几种情况下,你不能 用FOK的填充策略工作。

让我给你一个非常简单的例子:假设你正在处理股票,选择的数量是10,000只股票。现在,假设同样的专家顾问与 "反转 "一起工作,所以在一些随机的信号下,你可能不得不向市场发送一个数量相当于20,000只股票的订单,以执行所谓的 "反转"。在这种情况下,即使是流动性很强的股票(例如巴西的重磅股票PETR4或VALE5),在某个特定时刻也可能没有相当于20,000股的买入或卖出量。因此,在这种情况下,你将如何在你的专家顾问中处理这个问题?你真的相信FOK政策是这种情况下的最佳方法吗?或者您会尝试在您的专家顾问中考虑这个10010代码?

如前所述,当您一直在处理小手的时候,那么FOK填充政策可能是您最好的解决方案。然而,有时人们确实 有更 "高级 "的需求...

解释很吸引人。我也是这么想的,因为我们大多数人每笔交易的金额可能少于100万美元。在像外汇这样的高流动性市场,部分订单的履行可能是罕见的事情。然而,永远不要说永远。我们生活在概率的世界里。没有什么是确定的。在实际考虑方面,如果一些经纪人不能随时满足1手,我宁愿找另一个经纪人来交易。

谢谢。

 
Malacarne:

那么,当我们在MQL5.com论坛上发帖时,我们认为我们是在和那些在编码专家顾问时可能有几种需求的人交谈...所以在这种情况下,很明显您可以简化一切,要求用户编码一个 "更简单 "的专家顾问,一旦他的需求不像您想象的那样 "高级"。然而,据我所知,有几种情况下,你不能 用FOK填充策略工作。

让我给你一个非常简单的例子:假设你正在处理股票,选择的数量是10,000只股票。现在,假设同样的专家顾问与 "反转 "一起工作,所以在一些随机的信号下,你可能不得不向市场发送一个数量相当于20,000只股票的订单,以执行所谓的 "反转"。在这种情况下,即使是流动性很强的股票(例如巴西的重磅股票PETR4或VALE5),在某个特定时刻也可能没有相当于20,000股的买入或卖出量。因此,在这种情况下,你将如何在你的专家顾问中处理这个问题?你真的相信FOK政策是这种情况下的最佳方法吗?或者您会尝试在您的专家顾问中考虑这个10010代码?

如前所述,当您一直在处理小手的时候,那么FOK填充政策可能是您最好的解决方案。然而,有时人们确实 有更 "高级 "的需求...

嗨,Malacarne。

对不起,但这是偏离主题的,因为作为版主,我们不能混淆现实(用户真正发布的内容)和假设条件。

换句话说,如果用户问了一些事情并发布了代码,而代码中有下面这一行(作为第一个和旧的),作为版主,我们的思维方式必须考虑他在使用FOK。

request.type_filling=ORDER_FILLING_FOK;

你不这么认为吗?如果不是,我想我必须修改我对查找代码错误和问题分析的概念。

事实上,如果你不使用FOK,作为你的BM&FBOVESPA巴西的情况下,我的心态会改变,10010返回代码必须考虑,但这是绝对的离题,也许一个更好的讨论,葡萄牙论坛。

无论如何,感谢你的分享。

 
FinanceEngineer:

这个解释很吸引人。我也是这么想的,因为我们大多数人每笔交易的金额可能不到100万美元。在像外汇这样的高流动性市场,部分订单的履行可能是罕见的事情。然而,永远不要说永远。我们生活在概率的世界里。没有什么是确定的。在实际考虑方面,如果一些经纪人不能随时满足1手,我宁愿找另一个经纪人来交易。

谢谢。

在我的例子中,我说的是200,000美元左右的交易量...因此,据我所知,我们几个人每笔交易都超过20万美元... :-)
 
FinanceEngineer:

就像大多数人一样,我通过看别人的代码来学习MQL5的编码。对我来说很奇怪,到目前为止,我没有看到任何检查10010代码的代码。然而,这可能是值得检查的。以防万一。


嗨,FinanceEngineer,你没有看到,因为可能这种情况是关于ORDER_FILLING_FOK 的填充策略,因为你也在使用,所以,在我看来,这是没有必要的,我在这里的其他帖子中解释过。
 
figurelli:

Hi Malacarne,

对不起,但这是偏离主题的,因为作为版主,我们不能混淆现实(用户真正发布的内容)和如果条件。

换句话说,如果用户问了一些问题并发布了代码,而代码中有下面这一行(作为第一个和旧的),作为版主,我们的思维方式必须认为他在使用FOK。

你不这么认为吗?如果不是,我想我必须修改我对查找代码错误和问题分析的概念。

事实上,如果你不使用FOK,因为你的BM&FBOVESPA巴西的情况下,我的心态会改变,10010返回代码必须考虑,但这是绝对的离题,也许一个更好的讨论,葡萄牙论坛。

无论如何,谢谢你的分享。

谢谢你的意见...我无意给人们的思想带来 "混乱"。

然而,我不认为这是离题,因为如果你不检查 10010代码,你的专家顾问可以绕过这种可能性,并发送多个订单 (完全与主题有关,你不觉得吗?)

这就是我们 "试图 "提醒 的内容,因为上两个关于这个相同主题的帖子...