Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
То есть вы хотите, чтобы селл-лимит ордер в стакане встал среди бай-лимитов?
Нет, он хочет очередной раз доказать, что он тут один ДыАртаньян
Нет, чтобы выставить ордер в стакан (и он там будет находится) нужно использовать
request.type_filling=ORDER_FILLING_RETURN;
Добавлено
Измените ORDER_FILLING_IOC на ORDER_FILLING_RETURN (в моём примере)
и цену на SYMBOL_SESSION_PRICE_LIMIT_MAX
и Вы увидите ордер в стакане
:) А какой тип ордера использовать?
{
MqlTradeRequest request={0};
MqlTradeResult result={0};
order_ticket=0;
request.magic=Magic;
request.symbol=Symbol();
request.volume=1;
if(deffered)
{
request.type_filling=ORDER_FILLING_RETURN; //Отложенный ордер
}
else
{
request.type_filling=ORDER_FILLING_IOC; //Рыночный ордер
}
request.type_time=ORDER_TIME_DAY;
request.action=TRADE_ACTION_PENDING;
request.type=ORDER_TYPE_SELL_LIMIT;
request.comment="";
if(deffered)
{
request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX);
}
else
{
request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN);
}
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
order_ticket=result.order;
if(OrderSelect(order_ticket))
{
ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE));
switch(order_state)
{
case ORDER_STATE_STARTED:
case ORDER_STATE_REQUEST_ADD:
case ORDER_STATE_REQUEST_MODIFY:
case ORDER_STATE_REQUEST_CANCEL:
Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state));
break;
case ORDER_STATE_CANCELED:
case ORDER_STATE_PARTIAL:
case ORDER_STATE_FILLED:
case ORDER_STATE_REJECTED:
case ORDER_STATE_EXPIRED:
Print(__FUNCTION__,": Order not found.");
break;
case ORDER_STATE_PLACED:
Print(__FUNCTION__,": Sync Order place done and found in terminal.");
break;
}
}
}
}
else {Print("Order not sent.");}
}
Я ничего не хочу.
Прочтите внимательно ВЕСЬ топик.
Не поясничайте, вам пытаются помочь, постарайтесь вникнуть и разобраться. Ниже текущей цены на бирже в стакане могут стоять только бай-лимиты. Все остальное ниже цены может стоять в виде стоп-заявки на сервере у брокера. Тот селл-лимит ордер у вас исполнился по цене ближайшего спроса, читай по рынку, потому что невозможно впихнуть невпихуемое, т.е. селл-лимит ваш засунуть в стакане в очередь покупок ниже цены. Хотите продать ниже цены с условием - ставьте на сервер брокеру селл-стоп.
Тогда и Вы не поясняйте...
Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.
Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.
:)
Поправьте меня, если где-то ошибаюсь =)
Зачем приводить такой длинный текст на простой вопрос, т.е. ваш ответ: тип ордера Sell Limit.
Юрий!
Я давал файл (спецификацию Plaza II)
В спецификации нигде нет ни полстрочки о лимитный, рыночный или отложенный ордер.
Ордера на бирже принимаются по 4-м основным параметрам
1. Цена
2. Направление ордера (buy/sell)
3. Объём
4. Тип (в MQL filling)
Это ребята разработчики назвали лимитный, рыночный или отложенный ордер.
Чтобы правильно выставлять ордера, нужно понимать как эти ордера будут восприниматься Биржей
в соответствии со спецификацией.
Добавлено
Например, чтобы ордер остался в стакане
в SELL зоне
Достаточно задать одну из цен из sell зоны
и request.type_filling=ORDER_FILLING_RETURN;
Но если Вы зададите цену из Buy зоны, то Ваш ордер тут же исполнится.
Поэтому, чтобы было хоть какое-то соответствие с биржевой спецификацией, я назваю ордера:
Отложенный - ордер который "стоит" в стакане
Рыночный - исполняется по любой цене
Лимитный - исполняется по цене, указанной в ордере.