Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Видимо плохо. Как раз о том-же и я говорил. Вот весь код из СБ.
{
const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(Symb, SYMBOL_TRADE_EXEMODE);
const int FillingMode = (int)::SymbolInfoInteger(Symb, SYMBOL_FILLING_MODE);
return((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN) || ((FillingMode & (Type + 1)) != Type + 1)) ?
(((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ?
ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) :
(ENUM_ORDER_TYPE_FILLING)Type);
}
Из библы
{
const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(Symb, SYMBOL_TRADE_EXEMODE);
const int FillingMode = (int)::SymbolInfoInteger(Symb, SYMBOL_FILLING_MODE);
return((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN) || ((FillingMode & (Type + 1)) != Type + 1)) ?
(((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ?
ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) :
(ENUM_ORDER_TYPE_FILLING)Type);
}
у меня подобная функция джля автоматизации определения режима и его использования.
{
m_filling_type=(ENUM_ORDER_TYPE_FILLING)SymbolInfoInteger(n,SYMBOL_FILLING_MODE);
if(( SYMBOL_FILLING_FOK &m_filling_type)==SYMBOL_FILLING_FOK) SetTypeFilling(ORDER_FILLING_FOK);
else if(( SYMBOL_FILLING_IOC &m_filling_type)==SYMBOL_FILLING_IOC) SetTypeFilling(ORDER_FILLING_IOC);
else SetTypeFilling(ORDER_FILLING_RETURN);
return m_filling_type;
}
В своих советниках для биржевого исполнения использовал принудительное включение того или иного исполнения ордеров.
А возможно ли это автоматизировать в модуле Инит, например так
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Filling=(ENUM_ORDER_TYPE_FILLING)SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);
//---
return(INIT_SUCCEEDED);
}
Нет, невозможно.
Н-р, При режиме заключения сделок (
SYMBOL_TRADE_EXECUTION_EXCHANGE
) а именно такой режим на Московской бирже
Доступны 3 метода заливки(исполнения)
Всё/ничего FOK
Всё/частично IOC
Венуть RETURN
Политику исполнения выбираете Вы, в зависимости от Вашей стратегии.
Нет, невозможно.
Н-р, При режиме заключения сделок (
SYMBOL_TRADE_EXECUTION_EXCHANGE
) а именно такой режим на Московской бирже
Доступны 3 метода заливки(исполнения)
Всё/ничего FOK
Всё/частично IOC
Венуть RETURN
Политику исполнения выбираете Вы, в зависимости от Вашей стратегии.
жаль что нельзя автоматизировать...хотя можно выставить приоритеты по режимам...если нужный нельзя использовать то выбираем другой и т.д.
Тогда автомат получится
Понятно, значит в инит просто надо проверять нужный режим на соответствие и разрешения...
жаль что нельзя автоматизировать...хотя можно выставить приоритеты по режимам...если нужный нельзя использовать то выбираем другой и т.д.
Тогда автомат получится
Автомат получится если Вы выбрали и далее используете только 2 режима исполнения.
Как пралило RETURN имеет смысл использовать только в отложенных ордерах, которые "стоят" в стакане
(т.е Вы хотите покупать только по заданной Вами цене),
остаётся выбрать режим для рыночных и лимитных ордеров (FOK или IOC)
А дальше всё просто, если отложенный ордер, то RETURN, а если не отложенный, то FOK или IOC ,
в зависимости, что Вы решили использовать.
Помните, что режим FOK, из-за слабой ликвидности на МБ, может привести эффективность
Вашей торговли к нулю. :(
Пример
Допустим Вы увидели цену в стакане 1020 с объёмом 120 контрактов.
Используя режим FOK вы хотите купить по этой цене (лимитный ордер) 90 контрактов, но когда Ваш
ордер пришел на Биржу, то объём уже изменился и стал 89 - Вы НИЧЕГО не купите, а
если использовать IOC, то Вы купите оставшиеся 89 контрактов.
Добавлено
В биржевой торговле, как правило, очень редко используются рыночные ордера, обычно
их используют в одновременной торговле на двух и более инструментах.
Купив по отложенному (или лимитному) ордеру N-ое колличество контрактов по одному инструменту,
необходимо, как можно скорее (ГАРАНТИРОВАННО), совершить ответную сделку с этим же кол-ом контрактов по другому инструменту(ам),
чтобы уровнять позиции. В этом случае, используется рыночный ордер.
Понятно, значит в инит просто надо проверять нужный режим на соответствие и разрешения...
жаль что нельзя автоматизировать...хотя можно выставить приоритеты по режимам...если нужный нельзя использовать то выбираем другой и т.д.
Тогда автомат получится
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Возможна ли автоматизация для FILLING_MODE?
fxsaber, 2017.02.04 19:35
Из библы{
const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(Symb, SYMBOL_TRADE_EXEMODE);
const int FillingMode = (int)::SymbolInfoInteger(Symb, SYMBOL_FILLING_MODE);
return((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN) || ((FillingMode & (Type + 1)) != Type + 1)) ?
(((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ?
ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) :
(ENUM_ORDER_TYPE_FILLING)Type);
}
Автоматизируется.
Автоматизируется.