Как записать в переменную цену открытия первого ордера?
int ticket=OrderSend(Symbol(),OP_SELL,0.01,Bid,5,0,0,"OrderOpenOne",14774,0,CLR_NONE); OrderSelect(ticket, SELECT_BY_TICKET ); double OpenPrice=OrderOpenPrice();
Можно и так, но нужно добавить контроль.
Открылась ли позиция, выбралась ли позиция
Можно и так, но нужно добавить контроль.
Открылась ли позиция, выбралась ли позиция
int ticket=OrderSend(Symbol(),OP_SELL,0.01,Bid,5,0,0,"OrderOpenOne",14774,0,CLR_NONE); //OrderSelect(ticket, SELECT_BY_TICKET ); double OpenPrice=Bid;
Кто-то писал, что что между открытием позиции и её выбором паузу надо делать, т.к. она не сразу попадает в список.
Последняя известная цена покупки (предложение на покупку) текущего инструмента. Для обновления необходимо использовать функцию RefreshRates().
Переменная Bid обновляется с приходом тика
ЗЫ: код программы выполняется, если отправка ордера не завершена и пришел новый тик?
Может просто RefreshRates?
Кто-то писал, что что между открытием позиции и её выбором паузу надо делать, т.к. она не сразу попадает в список.
Вот нашёл, тут правда про закрытие ордеров, но суть думаю та же:
уточни про его еще невозможно выделить и получить по нему данные
что значит еще невозможно выраженное во времени ? должно быть это ограниченно тиком, потому что не замечал проблем при отслеживании пар ордеров: рыночный - отложенный, рыночный отработал по стопу, тут же (при появлении нового тика скорее всего) оперируем отложенный..
По времени - меньше 0.1 секнды.
Если сделать так:
if(OrderClose(Ticket...)){ OrderSelect(Ticket...); }
то ордер не получится выделить. Sleep(100) - помогает. Совсем недавно поднималась эта тема.
Если сработка стоплосс/тейкпрофит, кто его знает, как совпадет с тиком по времени. Точнее, понятно, что совпадет, но не наблюдал есть ли в этом случае проблемы, всегда делаю проверу выделился ли ордер.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования