返回执行策略。

 
long  SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);
返回值

iok为2
fok为1
gtc为0

这是否正确?不能有两种政策可供选择吗?

 
Ivan_Invanov:
返回值

iok为2
fok为1
gtc为0

这是否正确?不能有两种政策可供选择吗?

可以有一个和两个...

检查

//+------------------------------------------------------------------+
//| проверяет разрешенность указанного режима заполнения             |
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен
   return((filling&fill_type)==fill_type);
  }
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 

例如,需要进行比特检查。

ENUM_ORDER_TYPE_FILLING OrderTypeFilling(const string symbol)
{
 int FillingFlags = (int)SymbolInfoInteger(symbol, SYMBOL_FILLING_MODE);
 
 if((FillingFlags & SYMBOL_FILLING_FOK) == SYMBOL_FILLING_FOK)
                                     return ORDER_FILLING_FOK;
 else 
 if((FillingFlags & SYMBOL_FILLING_IOC) == SYMBOL_FILLING_IOC)
                                     return ORDER_FILLING_IOC;
 else
                                     return ORDER_FILLING_RETURN;
}
 
Vladimir Karputov:

可能有一或两个...

核实

谢谢你。你能否也解释一下为什么他们有时会在if语句中写上break,这是官方顾问的一个例子。
if(x>0.0)
break;
if(x<0.0)
y++;

为什么这与回归不一样呢。返回将把控制权返回给调用程序,该程序继续进行下一个运算符。打破强制过渡到下一个操作者。调用程序可以忽略下一个运算符吗?

 
Ivan_Invanov:
谢谢你。您能否解释一下为什么有时会在if语句中写上break,例子来自官方顾问。

为什么这与回归不一样呢。返回将把控制权返回给调用程序,而调用程序则继续进行下一条语句。break强制程序进入下一个运算符。调用程序可以忽略下一个运算符吗?

给我一个链接,让我看到这个文件

if(x>0.0)
break;
if(x<0.0)
y++;

例如......。

 
这是来自Moving Average v1.00 2009-2017 .它是mt5终端中的一个例子。第64行。
 
Ivan_Invanov:
这是来自Moving Average v1.00 2009-2017 .这是mt5终端中的一个例子。第64行。

1.不要试图断章取义。

2.仔细阅读 "结束语 "操作员 帮助。

3.只有在完成任务1和2后,才能继续提问。

Документация по MQL5: Основы языка / Операторы / Оператор завершения break
Документация по MQL5: Основы языка / Операторы / Оператор завершения break
  • www.mql5.com
Основы языка / Операторы / Оператор завершения break - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

1.不要试图断章取义。

2.仔细阅读 "结束语 "操作员 帮助。

3.只有在完成任务1和2后,才能继续提问。

谢谢你。为了不使论坛杂乱无章,我删除了这个主题。哦,你不能在这里删除主题。
 
Vladimir Karputov:

可能有一或两个...

测试

我不明白,你是说可以是一个或两个。该函数中只有一个变量。你能用一个例子告诉我吗?
 
Ivan_Invanov:
我不明白,你是说可能是一个或两个。该函数中只有一个变量。你能用一个例子告诉我吗?

iok为2
fok为1
gtc为0

如果ioc和fok,会返回什么?

 
Ivan_Invanov:
我不明白,你是说,可以有一个或两个。该函数中只有一个变量。你能用一个例子告诉我吗?

CTrade交易类的例子。首先是检查"SYMBOL_FILLING_FOK",然后是"SYMBOL_FILLING_IOC"。

//+------------------------------------------------------------------+
//| Set order filling type according to symbol filling mode          |
//+------------------------------------------------------------------+
bool CTrade::SetTypeFillingBySymbol(const string symbol)
  {
//--- get possible filling policy types by symbol
   uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
   if((filling&SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK)
     {
      m_type_filling=ORDER_FILLING_FOK;
      return(true);
     }
   if((filling&SYMBOL_FILLING_IOC)==SYMBOL_FILLING_IOC)
     {
      m_type_filling=ORDER_FILLING_IOC;
      return(true);
     }
//---
   return(false);
  }


该检查是通过使用"AND位操作"来进行的。

位和操作

二进制表示x和y的比特和操作。表达式的值在x和y都包含非零的所有位中包含1(TRUE);在所有其他位中包含0(FALSE)。

b = ((x & y) != 0);

例子。

   char a='a',b='b';
//--- операция И
   char c=a&b;
   Print("a = ",a,"  b = ",b);
   Print("a & b = ",c);
// Результат будет такой:
// a = 97   b = 98
// a & b = 96


更多关于位操作 的信息。

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Дополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1. Сдвиг вправо Двоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический...