返回执行策略。 - 页 3

 
Ivan_Invanov:

是的,我明白如何与二进制数字打交道。

从这段代码中可以看出,例如,该函数返回3。

(11&1)==1 ; 11==01 不,这是假的,它没有工作。

我刚刚写到这里,觉得可能是我误解了这些操作。

& 这意味着我将十进制值转换为二进制,并进行比特连接。

==当第一项等于第二项时为真。这是否正确?

这是我不明白的东西,我是自学成才。我只知道如何检查和我能得到什么。你的例子(11&1)==1的结果是真实的,因为11只能由标志1+2+8组成,因此1被包含在集合中。

检查将被退回的东西

return(1|2|8);
 
Alexey Viktorov:
这是我不明白的东西,我是自学成才。我只知道如何检查和我能得到什么。你的例子(11&1)==1的结果是真实的,因为11只能由标志1+2+8组成,因此1被包含在集合中。 。

检查将被退回的东西

这是我用二进制写的,我忘了说明。我把这些值替换到我写的代码中,如果函数返回3,就把它与FOK比较。二进制就是这样写的。(0b11 & 0b1)==0b1 ; 大括号里的结果0b11有表达式0b11==0b1 ; 但在我看来,它的结果是假的。它必须是真实的,一切才会有效。好吧,既然这个样本在帮助中,它就是真的。我一定是误解了什么。我现在已经看了C的帮助,以及之前的mql的帮助。似乎是这样的。如果我问的是非常愚蠢的问题,我表示歉意,并感谢大家的回答。
 
mql帮助中说true这个值 是任何非零值,所以这一定是答案。然后是平等,在C中也是平等。事实证明,这不是相等的,但如果比较的项大于零,那么这个值就是真的。我想是的。它写得很不清楚。这是关于==运算符。
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool
  • www.mql5.com
Внутреннее представление – целое число размером 1 байт. Необходимо отметить, что в логических выражениях допустимо использовать вместо типа bool другие целые или...
 

一个位操作,这是一个P O B I T O R T操作。它与比特一起工作。例如,1是00000001。2是0000000010。一个旗子只能是1、2、4、8等。简而言之,有一个位子是忙的。

而一组标志可以有任何位被占用,例如00000101。这个集合包括标志000001和00000100。 而要找出某个标志是否包含在标志集合中,你必须对标志和集合做一个位法 "和",如果留下一个标志,就意味着它在集合中。

(000001&00000100) ==00000100- 真。这意味着,在集合00000101中有一个标志00000101。

 
Dmitry Fedoseev:

一个位操作,这是一个P O B I T O R T操作。它与比特一起工作。例如,1是00000001。2是0000000010。一个旗子只能是1、2、4、8等。简而言之,有一个位子是忙的。

而一组标志可以有任何位被占用,例如00000101。这个集合包括标志000001和00000100。 要想知道某个标志是否包含在标志集合中,你必须对标志和集合做一个比特 "和",如果在这之后还有一个标志,就意味着它在这个集合中。

(000001&00000100) ==00000100- 真。这意味着,在集合00000101中有一个标志00000101。

是否真的(正项1==正项2)但正项1不等于正项2?事实证明是这样的,因为帮助说true是任何非零值,然后代码就工作了。
 
Ivan_Invanov:
是否真的(正项1==正项2)但正项1不等于正项2?事实证明是这样的,因为帮助说真理是任何非零值,然后代码就工作了。
让我困惑的是,接下来写的是平等这个词。
 
参考资料在哪里?具体是在什么地方,什么内容?
 
Dmitry Fedoseev:
在哪个地方提到?究竟是在哪里,是什么?

在我看来,这似乎是一个矛盾。它不是在a等于b的情况下才是真的,而是在a和b都不同于零的情况下才是真的。好吧,这不是矛盾,它没有明确的写法。我想我已经知道了,谢谢你。

附加的文件:
1111.jpg  29 kb
 
ENUM_SYMBOL_TRADE_EXECUTION 它没有说它是什么类型,帮助中的标题也是混在一起的(它似乎是为字符串写的,然后没有提到就开始说整数)。我尝试了所有三个选项,但每次都是编译器错误。有什么问题吗?
long execution = (long) SymbolInfoInteger(_Symbol, ENUM_SYMBOL_TRADE_EXECUTION);
string execution = (string) SymbolInfoString(_Symbol, ENUM_SYMBOL_TRADE_EXECUTION);
double execution = (double) SymbolInfoDouble(_Symbol, ENUM_SYMBOL_TRADE_EXECUTION);
 
Ivan_Invanov:
ENUM_SYMBOL_TRADE_EXECUTION 它没有说它有什么类型,帮助中的标题也是混在一起的(它似乎是为字符串写的,然后没有提到就开始说整数)。我尝试了所有三个选项,但每次都是编译器错误。有什么问题吗?

你必须这样做。

//--- Check trade execution mode
  ENUM_SYMBOL_TRADE_EXECUTION market_info = ENUM_SYMBOL_TRADE_EXECUTION(SymbolInfoInteger(Symbol(), SYMBOL_TRADE_EXEMODE));
    
  if((market_info & SYMBOL_TRADE_EXECUTION_EXCHANGE) != SYMBOL_TRADE_EXECUTION_EXCHANGE)
  {
    MessageBox("Символ " + Symbol() + " не поддерживает TRADE EXECUTION EXCHANGE режим!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }