返回执行策略。 - 页 2 12345678 新评论 Ivan_Invanov 2020.07.18 16:01 #11 Vladimir Karputov:CTrade交易类的例子。首先是检查"SYMBOL_FILLING_FOK",然后是"SYMBOL_FILLING_IOC"。该检查是通过使用"AND位操作"来进行的。位和操作二进制表示x和y的比特和操作。表达式的值在x和y都包含非零的所有位中包含1(TRUE);在所有其他位中包含0(FALSE)。 例子。更多关于位操作 的信息。 所以根据这段代码,执行策略要么是ioc,要么是fok,要么都不是,所以事实证明,不可能同时有两个?还是我又误解了? Ivan_Invanov 2020.07.18 16:17 #12 毕竟不能有两个同时存在吗? 函数要返回什么才能有两个同时存在? Ivan_Invanov 2020.07.18 16:47 #13 我一定是误解了你的回答。你指的是一般情况下,而不是与一个交易账户有关。谢谢你的帮助。 Alexey Viktorov 2020.07.18 17:46 #14 Ivan_Invanov: 毕竟不能有两个同时存在吗? 要有两个同时存在,函数应该返回什么? 它可以是2,那么函数将返回3。BUT¡¡¡¡¡,这是一个非典型的情况。鉴于只有3个选项,它可能是1、2或1+2的总和。它是总和,而不是第三个选项。因此,用位操作 进行检查只能回答一个问题:能否应用这个或那个填充策略。 Vladimir Karputov 2020.07.19 04:46 #15 Ivan_Invanov: 毕竟不能有两个同时存在吗? 要有两个同时存在,函数应该返回什么? 对MetaQuotes-Demo服务器上的两个字符进行检查的例子。 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) MetaQuotes-Demo 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) Fill or Kill, SYMBOL_FILLING_FOK: false 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) Immediate or Cancel, SYMBOL_FILLING_IOC: true 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) Return: true 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) Flags of allowed order filling modes: SYMBOL_TRADE_EXECUTION_INSTANT 2020.07.19 07:35:07.922 Info_FILLING (USDRUB,H1) 2020.07.19 07:35:45.291 Info_FILLING (EURUSD,H1) MetaQuotes-Demo 2020.07.19 07:35:45.291 Info_FILLING (EURUSD,H1) Fill or Kill, SYMBOL_FILLING_FOK: true 2020.07.19 07:35:45.291 Info_FILLING (EURUSD,H1) Immediate or Cancel, SYMBOL_FILLING_IOC: false 2020.07.19 07:35:45.291 Info_FILLING (EURUSD,H1) Return: true 2020.07.19 07:35:45.291 Info_FILLING (EURUSD,H1) Flags of allowed order filling modes: SYMBOL_TRADE_EXECUTION_INSTANT 参见这些符号的规格(填入)。 这里有一个更常见的变体:当一个符号的所有填充物都可用时 2020.07.19 07:40:22.818 Info_FILLING (NZDUSD,H1) MetaQuotes-Demo 2020.07.19 07:40:22.818 Info_FILLING (NZDUSD,H1) Fill or Kill, SYMBOL_FILLING_FOK: true 2020.07.19 07:40:22.818 Info_FILLING (NZDUSD,H1) Immediate or Cancel, SYMBOL_FILLING_IOC: true 2020.07.19 07:40:22.818 Info_FILLING (NZDUSD,H1) Return: true 2020.07.19 07:40:22.818 Info_FILLING (NZDUSD,H1) Flags of allowed order filling modes: SYMBOL_TRADE_EXECUTION_INSTANT 和规格 Ivan_Invanov 2020.07.19 06:23 #16 谢谢你。 Ivan_Invanov 2020.07.19 10:38 #17 Alexey Viktorov: 它可能是2,那么该函数将返回3。BUT¡¡¡¡¡,这是一个非典型的情况。鉴于只有3个选项,它可能是1、2或1+2的总和。它是总和,而不是第三个选项。因此,用位操作 进行检查只能回答一个问题:能否应用这个或那个填充策略。 仍然不明白一个变量如何能返回两个项。而如果它返回一个3的值作为一个成员,那么位操作就不会工作。我决定只选择EXECUTION_INSTANT 模式,我将永远有一个FOK策略 。 Alexey Viktorov 2020.07.19 10:50 #18 Ivan_Invanov: 我还是不明白一个变量如何能返回两个成员。而如果它返回的一个项是3,那么按位法运算就不能工作。我决定只选择EXECUTION_INSTANT 模式,我将永远有一个FOK策略 。 要理解这一点,你需要了解什么是旗帜。 一个标志的每一个下一个值是前一个的值乘以2。即:1,2,4,8,16,32......... 所以如果数值是33,意味着这个数值只包含1和32。同样,如果数值是18,它只能由16和2组成。而数值3只能由1和2组成。 所以位操作 只是检查被检查的值是否存在于标志符之和中。如果你检查一个任意的数字是否包含在18中,你会得到假的,除了检查值2和16。 Ivan_Invanov 2020.07.19 11:15 #19 Alexey Viktorov:要理解这一点,你需要了解什么是旗帜。一个标志的每一个下一个值是前一个的值乘以2。即:1,2,4,8,16,32......... 所以如果数值是33,意味着这个数值只包含1和32。同样,如果数值是18,它只能由16和2组成。而数值3只能由1和2组成。 所以位操作 只是检查被检查的值是否存在于标志符之和中。如果你检查一个任意的数字是否包含在18中,除了检查值2和16之外,你会得到假的。 是的,我明白如何与二进制数字打交道。 uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE); if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK) { m_type_filling=ORDER_FILLING_FOK; 例如,从这段代码来看,该函数返回3。 (11&1)==1 ; 11==01 不,那是假的,它没有工作。 我刚刚写到这里,觉得可能是我误解了这些操作。 & 这意味着我将十进制值转换为二进制,并进行比特连接。 ==当第一项等于第二项时为真。这是否正确? Ivan_Invanov 2020.07.19 11:47 #20 啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,终于到了。如果一个数字中有一个值,它就是一个真标志,三联体把这个值放在两个数字中。只是,为什么这段代码能发挥作用呢? 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
CTrade交易类的例子。首先是检查"SYMBOL_FILLING_FOK",然后是"SYMBOL_FILLING_IOC"。
该检查是通过使用"AND位操作"来进行的。
位和操作
二进制表示x和y的比特和操作。表达式的值在x和y都包含非零的所有位中包含1(TRUE);在所有其他位中包含0(FALSE)。
例子。
更多关于位操作 的信息。
毕竟不能有两个同时存在吗? 要有两个同时存在,函数应该返回什么?
毕竟不能有两个同时存在吗? 要有两个同时存在,函数应该返回什么?
对MetaQuotes-Demo服务器上的两个字符进行检查的例子。
参见这些符号的规格(填入)。
这里有一个更常见的变体:当一个符号的所有填充物都可用时
和规格
它可能是2,那么该函数将返回3。BUT¡¡¡¡¡,这是一个非典型的情况。鉴于只有3个选项,它可能是1、2或1+2的总和。它是总和,而不是第三个选项。因此,用位操作 进行检查只能回答一个问题:能否应用这个或那个填充策略。
我还是不明白一个变量如何能返回两个成员。而如果它返回的一个项是3,那么按位法运算就不能工作。我决定只选择EXECUTION_INSTANT 模式,我将永远有一个FOK策略 。
要理解这一点,你需要了解什么是旗帜。
一个标志的每一个下一个值是前一个的值乘以2。即:1,2,4,8,16,32......... 所以如果数值是33,意味着这个数值只包含1和32。同样,如果数值是18,它只能由16和2组成。而数值3只能由1和2组成。
所以位操作 只是检查被检查的值是否存在于标志符之和中。如果你检查一个任意的数字是否包含在18中,你会得到假的,除了检查值2和16。
要理解这一点,你需要了解什么是旗帜。
一个标志的每一个下一个值是前一个的值乘以2。即:1,2,4,8,16,32......... 所以如果数值是33,意味着这个数值只包含1和32。同样,如果数值是18,它只能由16和2组成。而数值3只能由1和2组成。
所以位操作 只是检查被检查的值是否存在于标志符之和中。如果你检查一个任意的数字是否包含在18中,除了检查值2和16之外,你会得到假的。
是的,我明白如何与二进制数字打交道。
例如,从这段代码来看,该函数返回3。
(11&1)==1 ; 11==01 不,那是假的,它没有工作。
我刚刚写到这里,觉得可能是我误解了这些操作。
& 这意味着我将十进制值转换为二进制,并进行比特连接。
==当第一项等于第二项时为真。这是否正确?