Записи в Вашем протоколе означают, что продажа 0.3 лота фунта, выполненная по цене 1,9842 была закрыта по цене 1,9912 с проскальзыванием 1 пункт, с убытком 70 пунктов.
По представленному логу видно, что позиция с тикетом 1000291825 не была закрыта, цена 1.9912 отклонена и была выдана реквота. При этом размер проскальзывания не имеет никакого значения, если предпринимается попытка провести операцию по цене, которой не было в потоке.
т.е. если эксперт запустился на тике равном 1,9911 и перед выполнением операции OrderClose произошёл тик 1,9912, то независимо от размера слиппажа ордер не закроется.
Я правильно понял?
З.Ы. Банально перед OrderClose не хватает RefreshRates() ?
З.Ы. Банально перед OrderClose не хватает RefreshRates() ?
По представленному логу видно, что позиция с тикетом 1000291825 не была закрыта, цена 1.9912 отклонена и была выдана реквота. При этом размер проскальзывания не имеет никакого значения, если предпринимается попытка провести операцию по цене, которой не было в потоке.
А вот это никак не могу понять. Принимаю как есть, но... Мне кажется, если текущая цена, попадает в диапазон (цена по которой происходит попытка закрыться +/- слиппаж) закрытие должно происходить, по цене которую ДЦ сочтет реальной из этого диапазона, иначе смысл этого параметра просто теряется. А на практике выходит, что измение цены во время запроса даже на пипс приводит к реквоту и параметр просто не работает.
Из учебника
price - цена закрытия. Устанавливается в соответствии с требованиями и ограничениями, принятыми для проведения торговых операций (см. Характеристики ордеров и Приложение 3). Если заявленной цены для закрытия рыночного ордера не было в ценовом потоке или она сильно устарела, то такой торговый приказ отклоняется; если же цена устарела, но присутствует в ценовом потоке и при этом отклонение от текущей цены находится в пределах значения slippage, то такой торговый приказ будет принят клиентским терминалом и отправлен на торговый сервер.
В моей ситуации в цикле закрываются ордера по цене аск/бид со слипажем спред*2.
Теоретически при данном варианте даже если брать всегда цену только бид или аск, то ордера должны всегда закрываться, за исключением гепов или тиков по 10 пипов.
А он не закрылся при двиге в один пип.
В чём здесь ошибка? Или я не правильно понимаю прочитанное?
P.S. Обидно, что в тестере за сегодня всё сработало нормально. :(
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magic))
{
if ((OrderType()==OP_BUY)) OrderClose(OrderTicket(),OrderLots(),Bid,spread*2*Point,CLR_NONE);
else
if ((OrderType()==OP_SELL)) OrderClose(OrderTicket(),OrderLots(),Ask,spread*2*Point,CLR_NONE);
else OrderDelete(OrderTicket());
}
}
Из учебника
price - цена закрытия. Устанавливается в соответствии с требованиями и ограничениями, принятыми для проведения торговых операций (см. Характеристики ордеров и Приложение 3). Если заявленной цены для закрытия рыночного ордера не было в ценовом потоке или она сильно устарела, то такой торговый приказ отклоняется; если же цена устарела, но присутствует в ценовом потоке и при этом отклонение от текущей цены находится в пределах значения slippage, то такой торговый приказ будет принят клиентским терминалом и отправлен на торговый сервер.
Открыл минутный график.
OHLC - 1.9894/1.9908/1.9892/1.9907 / спред 4 пипа.
V=25
Получается, что была такая цена.
Открыл минутный график.
OHLC - 1.9894/1.9908/1.9892/1.9907 / спред 4 пипа.
V=25
Получается, что была такая цена.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
На счёте работает эксперт, который при определённой ситуации закрывает все открытые позиции.
Одну позицию он закрыл нормально, а вторая закрылась сама по ТП, хотя должны были закрыться вместе.
Есть лог терминала
Больше информации о данном ордере в логе терминала нету.
Означает ли он, что ордер был закрыт? Слиппаже равен 8 пипам.