关于落实议员的讨论。 - 页 2 12345678 新评论 Georgiy Merts 2020.06.08 13:19 #11 Georgiy Merts:而且,这位网友在被问到这个问题时说,他已经不记得了,只是说这个代码已经被测试过很多次,可以信任。 好吧,如果我有机会用真正的if语句取代这些愚蠢的 "问题",我会想出办法的......就目前而言... 顺便说一下,今天看了一下这个恐怖的东西。 这就是它的含义。 ENUM_ORDER_TYPE_FILLING otfMyRes = WRONG_VALUE; if(iFillingMode == 0 || (otfFilingType >= ORDER_FILLING_RETURN) || ((iFillingMode & (otfFilingType + 1)) != otfFilingType + 1)) { if(steExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE || steExeMode == SYMBOL_TRADE_EXECUTION_INSTANT) otfMyRes = ORDER_FILLING_RETURN; else if(iFillingMode == SYMBOL_FILLING_IOC) otfMyRes = ORDER_FILLING_IOC; else otfMyRes = ORDER_FILLING_FOK; } else otfMyRes = otfFilingType; return(otfMyRes); 在我看来,没有这些 "问题",通过 "如果 "和缩进,会更清晰。虽然代码效率绝对是一样的。 顺便说一下,你可以马上看到,作者坚持使用iFillingMode和otfFilingType的数值,在我看来,这不是好的做法。 Vladimir Simakov 2020.06.08 20:16 #12 Georgiy Merts:顺便说一下,今天看了一下这个恐怖的东西。 这就是它的含义。在我看来,没有这些 "问题",通过 "如果 "和缩进,会更清晰。虽然代码效率绝对是一样的。顺便说一下,你可以马上看到,作者坚持使用iFillingMode和otfFilingType的数值,在我看来,这不是一个好的做法。 在我的字典里,它是这样的。 #ifdef __MQL5__ ENUM_ORDER_TYPE_FILLING COrder::GetFilling(ENUM_FILLING_MODE mFilling){ if (!_fillingMode) return ORDER_FILLING_RETURN; else if (mFilling==FILLING_AUTO||mFilling==FILLING_FOK) return !(_fillingMode&SYMBOL_FILLING_FOK)?ORDER_FILLING_IOC:ORDER_FILLING_FOK; else return !(_fillingMode&SYMBOL_FILLING_IOC)?ORDER_FILLING_FOK:ORDER_FILLING_IOC;} #endif _fillingMode是一个宏,可以扩展到该字段的解读。 fillingMode=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE); Vladimir Simakov 2020.06.08 21:00 #13 Georgiy Merts:这是另一件事。 仔细想想,我有时看着自己的代码,也不明白为什么会写在这个特殊的地方。 这就是为什么我试图对这种地方进行详细的评论,试图提到所有的细节。但我仍然经常看到,我没有考虑到一些事情。此外,我使用下面的代码(确定执行的类型),这是由一个非常权威的论坛用户写的。我不明白它是如何工作的。此外,这位网友在被问及时自己说,他已经不记得了,只是这个代码已经被测试过很多次,可以信任 。 好吧,如果我设法用真正的if语句取代这些愚蠢的 "问题",我会想出办法的......就目前而言... 黄色--非常奇怪,一个人不能立即理解他自己写的微不足道的代码。 红色--我没有太懒,又检查了一遍,在市场上执行时,不能ORDER_FILLING_RETURN,只对库存(码头有错误),这就是尊敬的论坛主人的回报))。 Georgiy Merts 2020.06.09 11:52 #14 Vladimir Simakov:黄--一个人不能理解他自己写的微不足道的代码,这非常奇怪。红色--我没有感到懒惰,又检查了一遍,在市场上执行时,不能ORDER_FILLING_RETURN,它只适用于交换(在码头有一个错误),这就是尊敬的论坛成员的回报))。 我不知道,我不知道。在这样的条目中,这个代码是多么 "微不足道"。我至少花了15分钟才搞清楚它的逻辑,只有通过写出如果,我才觉得有意义。 关于 "文档中存在一个错误"--你能详细说明吗? Vladimir Simakov 2020.06.09 12:42 #15 Georgiy Merts:我不知道,我不知道这段代码在这样的帖子中是多么 "微不足道"。我至少花了15分钟才明白它的工作逻辑,只有通过写出如果的情况,我才明白了它。 关于 "在码头上的错误"--你能告诉我更多关于它的情况吗? 在交易所执行时 SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE) 它返回0,但在市场上(我在Alpari检查)。 SYMBOL_FILLING_IOC | SYMBOL_FILLING_FOK 我用Alpari进行了检查,结果是0x3。如果你以这种方式进行尝试 MqlTradeRequest::filling_mode=ORDER_FILLING_RETURN 如果你试一下,它就打不开了。 fxsaber 2020.06.09 14:06 #16 Vladimir Simakov:那么它就打不开了。 检查了原来的功能。 #include <MT4Orders.mqh> #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) void OnTick() { if (!OrdersTotal()) { OrderSend(_Symbol, OP_BUY, 0.1, Ask, ORDER_FILLING_FOK, 0, 0); OrderSend(_Symbol, OP_BUY, 0.1, Ask, ORDER_FILLING_IOC, 0, 0); OrderSend(_Symbol, OP_BUY, 0.1, Ask, ORDER_FILLING_RETURN, 0, 0); } } 它是有效的。 Vladimir Simakov 2020.06.09 15:31 #17 fxsaber:检查了原来的功能。它是有效的。 在市场执行 而不是交易所执行时尝试) UPD: 更正,关于立即执行,那个 符号_交易_执行_instant fxsaber 2020.06.09 15:47 #18 Vladimir Simakov:尝试市场执行 而不是交易所执行)UPD: 更正,关于立即执行,那个 符号_交易_执行_instant 测试上面的EA。试试吧。 Aleksey Mavrin 2020.06.09 16:05 #19 Vladimir Simakov:尝试市场执行 而不是交易所执行)UPD: 更正,关于立即执行,那个 符号_交易_执行_instant 例如,这些是A-ri的标准类型账户,对吗? 而有交易的经纪人总是有这样的执行力,对吗? 只是要澄清一下。 Petros Shatakhtsyan 2020.06.09 20:44 #20 何必呢? 使用标准类,不需要填充任何结构(MqlTradeRequest),不需要知道任何填充物和实例。 #include<Trade\SymbolInfo.mqh> #include<Trade\AccountInfo.mqh> #include<Trade\Trade.mqh> CTrade CAccountInfo CPositionInfo 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
而且,这位网友在被问到这个问题时说,他已经不记得了,只是说这个代码已经被测试过很多次,可以信任。
好吧,如果我有机会用真正的if语句取代这些愚蠢的 "问题",我会想出办法的......就目前而言...
顺便说一下,今天看了一下这个恐怖的东西。
这就是它的含义。
在我看来,没有这些 "问题",通过 "如果 "和缩进,会更清晰。虽然代码效率绝对是一样的。
顺便说一下,你可以马上看到,作者坚持使用iFillingMode和otfFilingType的数值,在我看来,这不是好的做法。
顺便说一下,今天看了一下这个恐怖的东西。
这就是它的含义。
在我看来,没有这些 "问题",通过 "如果 "和缩进,会更清晰。虽然代码效率绝对是一样的。
顺便说一下,你可以马上看到,作者坚持使用iFillingMode和otfFilingType的数值,在我看来,这不是一个好的做法。
在我的字典里,它是这样的。
_fillingMode是一个宏,可以扩展到该字段的解读。
这是另一件事。
仔细想想,我有时看着自己的代码,也不明白为什么会写在这个特殊的地方。 这就是为什么我试图对这种地方进行详细的评论,试图提到所有的细节。但我仍然经常看到,我没有考虑到一些事情。
此外,我使用下面的代码(确定执行的类型),这是由一个非常权威的论坛用户写的。
我不明白它是如何工作的。此外,这位网友在被问及时自己说,他已经不记得了,只是这个代码已经被测试过很多次,可以信任 。
好吧,如果我设法用真正的if语句取代这些愚蠢的 "问题",我会想出办法的......就目前而言...
黄色--非常奇怪,一个人不能立即理解他自己写的微不足道的代码。
红色--我没有太懒,又检查了一遍,在市场上执行时,不能ORDER_FILLING_RETURN,只对库存(码头有错误),这就是尊敬的论坛主人的回报))。
黄--一个人不能理解他自己写的微不足道的代码,这非常奇怪。
红色--我没有感到懒惰,又检查了一遍,在市场上执行时,不能ORDER_FILLING_RETURN,它只适用于交换(在码头有一个错误),这就是尊敬的论坛成员的回报))。
我不知道,我不知道。在这样的条目中,这个代码是多么 "微不足道"。我至少花了15分钟才搞清楚它的逻辑,只有通过写出如果,我才觉得有意义。
关于 "文档中存在一个错误"--你能详细说明吗?
我不知道,我不知道这段代码在这样的帖子中是多么 "微不足道"。我至少花了15分钟才明白它的工作逻辑,只有通过写出如果的情况,我才明白了它。
关于 "在码头上的错误"--你能告诉我更多关于它的情况吗?
在交易所执行时
它返回0,但在市场上(我在Alpari检查)。
我用Alpari进行了检查,结果是0x3。如果你以这种方式进行尝试
MqlTradeRequest::filling_mode=ORDER_FILLING_RETURN
如果你试一下,它就打不开了。
那么它就打不开了。
检查了原来的功能。
它是有效的。
检查了原来的功能。
它是有效的。
在市场执行 而不是交易所执行时尝试)
UPD: 更正,关于立即执行,那个
符号_交易_执行_instant
尝试市场执行 而不是交易所执行)
UPD: 更正,关于立即执行,那个
符号_交易_执行_instant
测试上面的EA。试试吧。
尝试市场执行 而不是交易所执行)
UPD: 更正,关于立即执行,那个
符号_交易_执行_instant
例如,这些是A-ri的标准类型账户,对吗?
而有交易的经纪人总是有这样的执行力,对吗?
只是要澄清一下。
何必呢?
使用标准类,不需要填充任何结构(MqlTradeRequest),不需要知道任何填充物和实例。