Здравствуйте. Помогите решить проблему с OrderComment(). Вместо нужной мне информации на первом скриншоте в поле Комментарий, Выдаёт 1 как на втором скриншоте. Вот кусок кода:
По коду так:
- Устанавливается ордер sell limit. По всей видимости expiration равно 1. Значит и комментарий ордера будет 1.
- Выбирается ордер, который был только что установлен.
- Распечатывается содержимое комментария. Там ведь 1.
Вам наверное не видно. Во вложении вордовский файл, там можно увеличить скриншоты. На первом скриншшоте MT4 в поле комментарий показывает другую инфу: A 01.31.08:14:14 85/20...... Как ее можно получить программно?
Вы запросили содержимое комментария сразу же после открытия ордера. И оно будет таким, который Вы сами установили. Какое значение expiration? Думаю, что 1.
После того, как прошло некоторое время после установки ордера, Вы не запрашивали значение комментария. Во всяком случае такой код Вы не показали. А ведь комментарий мог уже быть изменен со стороны сервера.
Чтобы запросить комментарий существующего ордера, проделайте то же самое, что и в приведенном коде, но отдельно, без операции открытия: выберите ордер (по тикету или по индексу в списке) и распечатайте его комментарий.
Например, по списку ордеров:
for (int i = OrdersTotal() - 1; i >= 0; --i) { if (!OrderSelect(i, SELECT_BY_POS)) continue; Print("#", OrderTicket(), ", comment: ", OrderComment()); }
- www.mql5.com
OrderSend(mvp[k],OP_SELLLIMIT,stavka,iHigh(mvp[k],0,1),slippage,0,0,IntegerToString(expiration),magic,0,Red);
в момент создания приказа Вы не сможете записать в комментарий номер тикета
т.к. ордер еще не открылся и тикет пока не известен, а Вы пишете туда уж точно не номер тикета
поэтому тут чуток шаманим:
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
//Print(OrderTicket());
//OrderPrint();
if(OrderDelete(ticket,Red)) Print("Отложенный ордер на продажу закрыт, № "+IntegerToString(OrderTicket()));
else Print("Ошибка закрытия Отложенного ордера на продажу, № "+IntegerToString(OrderTicket()));
}
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. Помогите решить проблему с OrderComment(). Вместо нужной мне информации на первом скриншоте в поле Комментарий, Выдаёт 1 как на втором скриншоте. Вот кусок кода:
ticket=OrderSend(mvp[k],OP_SELLLIMIT,stavka,iHigh(mvp[k],0,1),slippage,0,0,IntegerToString(expiration),magic,0,Red);
if(ticket<=0) Print("Ошибка продажи"); else
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
Print(OrderComment());
OrderPrint();
if(OrderDelete(ticket,Red)) Print("Отложенный Ордер на продажу закрыт");
else Print("Ошибка закрытия Отложенного ордера на продажу");
}
}