Стандартные константы, перечисления и структуры
© 2000-2011, MetaQuotes Software Corp.
253
//+------------------------------------------------------------------+
bool IsExpirationTypeAllowed(string symbol,int exp_type)
{
//--- получим значение свойства, описывающего допустимые режимы истечения срока действия
int expiration=(int)SymbolInfoInteger(symbol,SYMBOL_EXPIRATION_MODE);
//--- вернем true, если режим exp_type разрешен
return((expiration&exp_type)==exp_type);
}
При отправке ордера можно указать политику заполнения заявленного в торговом приказе
объема. Допустимые варианты исполнения ордера по объему для каждого символа указаны
таблице. Для каждого инструмента может быть установлен не один режим, а несколько через
комбинацию флагов. Комбинация флагов выражается операцией логического ИЛИ (|), например,
SYMBOL_FILLING_ALL_OR_NONE|SYMBOL_CANCEL_REMAIND. Чтобы проверить разрешенность
конкретного режима для инструмента, необходимо результат логического И (&) сравнить с
флагом режима.
SYMBOL_FILLING_ALL_OR_NON
E
Указано "Все или ничего",
если необходимый объем в
ордере по указанной цене не
набирается, то ордер
отменяется и сделка не
проводится
Если по указанной в ордере
цене сделку можно заполнить
только частично, то
совершается сделка на
доступный объем. Остаток по
ордеру снимается, новый
ордер не выставляется
Совершается сделка по
указанной в заявке цене в
пределах доступного объема.
На остаток от заполнения
выставляется новый ордер по
той же цене
Пример:
//+------------------------------------------------------------------+
//| проверяет разрешенность указанного режима заполнения |
//+------------------------------------------------------------------+
bool IsFiilingTypeAllowed(string symbol,int fill_type)
{
//--- получим значение свойства, описывающего режим заполнения
int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);