Как выполнить ограничение на колчиство ордеров?
- билд 208, проблемка осталась.
- Как гарантированно выставить один отложенный ордер в МТ5 ?
- [АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3.
В правилах чемпионата есть торговое условие - Максимальное количество одновременно выставленных ордеров (включая отложенные) - 3. как обеспечить в советнике выполнение этого условия? или это ограничение будет контролировать сервер, и советник не сможет открыть более трех ордеров ? вопрос возник потому, что сегодня на демо счете у меня советник открыл четыре отложенных ордера с одним и тем же временем код примерно такой: int start() { // здесь проверка разных условий на открытие отложек if (OrdersTotal()==0) { OrderSend(OP_SELLSTOP); OrderSend(OP_BUYSTOP); } } в терминале в один момент появилось четыре отложенных ордера (2 - SELLSTOP и 2-BUYSTOP) с одним и тем же временем секунда в секунду очевидно что в промежуток времени 1 секунды поступило больше одной котировки и функция start успела отработать более двух раз а вот функция OrdersTotal() не распознала что два ордера уже были открыты сервер принял на исполнение открытие дух ордеров и открыл их два раза каким-то образом поставив у себя на очередь, но информация о том что первые два уже были открыты терминал понять не смог! Самое удивительное произошло, когда цена достигла цены открытия указанной в ордере BUYSTOP как вы думаете, что было после этого?
if ( OrdersTotal() <= 2 )
{
// МОЖНО ОТКРЫТЬ
}
else
{
// увы - уже открыто 3 ордера
}
когда цена достигла уровня, по которому должны были исполниться два отложенных ордера, почему-то открылся только один ордер BUY с количеством лотов равным одному отложенному ордеру
Если вторым ордером был SELL, то нужно учитывать, что BUY открывается по Ask. Поэтому если оба ордера были выставлены по одной цене, то он открылся раньше, а до второго ордера, который открывается по Bid, цена могла не дойти.
когда цена достигла уровня, по которому должны были исполниться два отложенных ордера, почему-то открылся только один ордер BUY с количеством лотов равным одному отложенному ордеру
Если вторым ордером был SELL, то нужно учитывать, что BUY открывается по Ask. Поэтому если оба ордера были выставлены по одной цене, то он открылся раньше, а до второго ордера, который открывается по Bid, цена могла не дойти.
Да нет не так.
Планировалось открыть только два разнонаправленных отложенных
ордера
if (OrdersTotal()==0) { OrderSend(OP_SELLSTOP); OrderSend(OP_BUYSTOP);
но каким то волшебным образом открылось 4 ордера 2 sellstop и 2 buystop
и вот когда цена поднялась до уровня buystop 2 отложенных ордера
- близнеца (отличались только тикетами) сработали но появился
только ОДИН ордер buy с одинарным лотом.
Поэтому и возник вопрос как недопустить открытие больше 3 ордеров
В правилах чемпионата есть торговое условие - Максимальное количество одновременно выставленных ордеров (включая отложенные) - 3. как обеспечить в советнике выполнение этого условия? ..
Да нет не так.