错误、漏洞、问题 - 页 399

 

papaklass,谢谢 你的回答

例子(我可能会重复自己)。

最小手数=1.0;最小手数步长=0.1。报价开始下跌,交易员试图关闭10.1手的多头头寸。如果是新闻市场,订单ORDER_FILLING_AON可能不会被执行。使用RDER_FILLING_CANCEL更合理。相反的卖出交易被部分执行(10.0手)。多头头寸的剩余部分(0.1手)继续产生损失。它不能被关闭,因为该交易的最小手数=1.0手。即,为了完全退出市场,交易员必须。

1.要招致明显的损失,至少要买入1.0手。

2.尝试用ORDER_FILLING_AON参数执行1.1手的卖出交易。

因此,就常识而言,输入ORDER_FILLING_CANCEL和ORDER_FILLING_RETURN 对最小手数和最小增量的值有严格要求,它们必须相等。

另一个例子。

有一个1.0手的多头头寸,SL/TP已经设定。交易者试图在指定的SL/TP(卖出)下做1.1手的反向交易(卖出)。

假设市场上有这样的交易量,由此产生的头寸将是--卖出0.1手的交易量,并指定SL/TP(用于卖出)。

但没有这样的量,我们有ORDER_FILLING_CANCEL?我们将得到一个关于错误的SL/TP的错误。因此,让我们适度地说,明智的做法是在交叉交易中用ORDER_FILLING_CANCEL参数发送SL/TP=0。

我知道很多MQL5程序员都是聪明人,但我相信如果能从开发人员那里得到一篇文章,解释下单正确性验证的算法,那就更好了。

我将重复我的问题。是否存在这样的文章?如果没有,你是否希望它能很快出现?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
papaklass:

一个订单被执行 时,剩余头寸的数量不能低于最小值。

你怎么能如此肯定?

上面的一个帖子给出了一个可能出现这种情况的例子(第一个)。

要么服务器有一个特殊的 特征 阻止你部分关闭一个订单,使其剩余部分低于最小手数。文档中哪里明确写到了这一点?

 
voix_kas:

你怎么能如此肯定?

上面的一个帖子给出了一个可能出现这种情况的例子(第一个)。

要么服务器上有一个特殊的规则,不允许你部分关闭订单。 该功能 或者,有一个特殊的代码,防止订单被部分关闭,以保持余额低于最小手数。文档中哪里明确写到了这一点?

这正是写在服务器上的东西(作为最后的手段)。也许终端也会及时做出反应,防止明显的错误操作。

根据所有的逻辑规则,不可能使交易量低于最低限度,而且这种交易将改变/暴露一个项目的数量,使其低于最低手数。

 
Interesting:

这正是服务器上指定的内容(作为最终的权威)。也许终端也会及时做出反应,防止明显的错误操作。

根据所有的逻辑规则,不可能执行成交量小于最小手数的交易,这样的交易将改变/暴露仓位的成交量,使其小于最小手数。

"在服务器上...... "到底写的是什么,在哪里?

在你的信息中,有一件坏事:猜测。对不起,直接反对。:-)

给我一个文件中 的具体链接,其中明确写道:禁止部分执行交易,使余额低于最小手数。

 
voix_kas:

到底是什么,哪里说了 "在服务器上......"?

你的帖子有一个不好的地方:猜测。请原谅我的直接反对。:-)

给我一个文件中 的具体链接,其中明确写道:禁止部分执行交易,使余额小于最小手数。

试着在Alpari(如果我没记错的话,他们的最小手数是0.10)用一个没有任何检查的脚本来打开一个手数,比如说0.01。

看看这个账户的响应(结构中的信息)返回什么。

你也可以尝试在2010年 账户的策略 测试器中以0.01手运行专家顾问。

之后,我们将继续进行实质性的对话,讨论什么和哪里有可能。

voix_kas:

给我一个文件中 的具体链接,其中明确写道:禁止部分执行交易,使余额低于最小手数。

氢原子可以比氢原子更小吗。可能可以,但那将不再是我们的宇宙或 "我们的 "物理规律......

那么在 "ABC "或 "数学基础 "中,应该在文件的哪一节中说明这一点?

对不起,直接反对。:-)

Automated Trading Championship 2010
  • championship.mql5.com
Automated Trading Championship 2010
 
Interesting:

在Alpari(如果我没记错的话,他们的最低手数是0.10)上试试,用一个没有任何检查的脚本来开一手比如0.01。

看看响应中返回了什么(结构中的信息)。

你也可以尝试在2010年 账户的策略 测试器中以0.01手运行专家顾问。

之后,我们将继续进行实质性的对话,讨论什么和哪里有可能。

对不起,直接反对。:-)

亲爱的先生,你读了我的问题。

我不是在问是否有可能在某个账户/帐户类型上以低于最小设定手数的交易量进行交易。当然不是。

我的问题是:从MQL5概念的角度来看,以低于最小允许手数的部分手数执行交易是否可以接受? 当然,我们说的是ORDER_FILLING_CANCEL和ORDER_FILLING_RETURN)。

而且我们不是在谈论经验性的结论,而是在谈论MQL5 "引擎 "中的具体要求/限制,这些要求/限制已经正式公布。

 
voix_kas:

亲爱的先生,你读了我的问题。

我不是在问,在某个账户/账户类型中,是否有可能以低于最小设定手数的交易量进行交易。当然不是。

我的问题是:从MQL5概念的角度来看,在执行交易时,余额少于可接受的最小手数,这是否可以接受? 当然,我们说的是ORDER_FILLING_CANCEL和ORDER_FILLING_RETURN)。

而且我们不是在谈论经验性的结论,而是在谈论官方公布的MQL5 "引擎 "的具体要求/限制。

我刚刚手动检查了一下,一切都关闭正常。我开盘时买入0.21手,收盘时卖出0.2手,虽然最低限度是0.1手,但买入时仍有0.01手在市场。我在四合一上检查过,那里的部分关闭也没有错误。
 
papaklass:

当一个订单被执行时,剩余头寸的数量不能低于最低 数量。它将是最小量的倍数,但不会更少。

给我举个例子,你可以用0.01手改变一个头寸,最小可能的手数是0.1。然后你会回答你自己的问题。

你的解释很清楚。但请看文件。

SYMBOL_VOLUME_MIN交易 的最低成交量

SYMBOL_VOLUME_STEP 达成交易最小成交量变化步骤

也就是说,在我们的例子中,交易量为0.1、0.11、0.12......的交易(也就是订单)是可能的。等。

而不可能的是0.09,0.08,0.07......等等。

完全是交易,没有说到仓位量。

下面是一个例子:我们买入1.0手,我们用卖出0.95手部分平仓(这对应于成交量的条件),我们有一个成交量为0.05手的头寸。而且我们现在不能关闭它。

我们应该首先将仓位增加到至少1.05(订单不能低于0.1),然后完全关闭。

荒谬的是,我们不能完全关闭一个开放的位置。

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergey1294:
我刚刚手动检查了它,它完美地关闭了。我以0.21手开立买入头寸,以0.2手关闭卖出头寸,市场上还剩下0.01手,尽管最低限度是0.1手。我也在4号机上检查了,那里的部分关闭也没有错误。

剩余的0.01手头寸是否由相同数量的相反交易平仓?

也就是说,一个成交量为0.01的卖出交易通过了(当然,完全关闭了未结头寸)?

 
voix_kas:

亲爱的先生,你读了我的问题。

我不是在问,在某个账户/账户类型中,是否有可能以低于最小设定手数的交易量进行交易。当然不是。

我的问题是:从MQL5概念的角度来看,执行部分手数少于最小可接受手数的交易是否可以接受? 当然,我们谈论的是ORDER_FILLING_CANCEL和ORDER_FILLING_RETURN)。

我们不是在谈论经验性的结论,而是在谈论MQL5中已经正式公布的具体要求/限制。

答案很简单--不可能,也不允许,在所有条件下 都是如此(否则就马上进入SD。而且不仅 "我们 "作为客户端部分的测试者会感到愤怒,而且正在测试服务器部分的经纪人也会感到愤怒)。

在回答你的问题的技术部分时,我会回答说,检查存在于客户部分(终端和测试器),而在服务器部分没有任何疑问。

客户端部分的检查是必要的,首先是为了预先发现各种违反交易条件和规则的行为,其次是为了减少服务器的负载,防止用不正确的请求进行 "攻击"(如果终端检测到违反交易规则或请求中存在明显的错误,它不会简单地将请求发送到服务器)。

反过来,服务器(作为最终权威)也必然会检查交易请求的正确性(包括执行该请求的预期后果的正确性)。