Снятие установка ордеров. Трабл. - страница 4

 
PapaYozh писал(а) >>


Так, может, встречные запрещены?
PS. Вы не показываете сообщения из журнала, а гадать уже надоедает.


А как Узнать запрещены встречные или нет?
FreeLance писал(а) >>
Нормализовать цены не пробовали?
Рекомендую - делать!


Зачем? я же использую переменные Bid и Ask
 
Alex2112 >>:


А как Узнать запрещены встречные или нет?


Зачем? я же использую переменные Bid и Ask

было бы поучительно посмотреть лог эксперта.

 
FreeLance писал(а) >>

было бы поучительно посмотреть лог эксперта.


Я пприкреплю к сообщению, если Вы скажете где он лежит. в папке торгового терминала?
 

Alert ("ТРЕНД НА ПАДЕНИЕ");
//---покупаем_SELL
indexOrderSell= OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); //без стопов
Alert("Покупаем Ордер SELL = ", Bid);
//---продаём_купленыый_BAY-работает
if (indexOrderBay != 0)
{
OrderClose(indexOrderBay, 0.1, Bid, 3 );
Alert("Продаём Ордер BAY = ", Bid);
}
Alert (GetLastError());

Похоже нашёл.

Выскакивает ошибка при операции OP_SELL - 4051 (Недопустимое значение параметра функции).

В чём причина?
 
Нормализация нужна. Вам уже указали на это.
double PR;// цена установки ордера
PR=NormalizeDouble(Bid,Digits);
int TicketSell=OrderSend(Symbol(),OP_SELL,0.1,PR,10,0,0,NULL,15687,0,CLR_NONE);
  if(TicketSell==(-1)){
  /*тут пишем сообщение об ошибке*/
}
В случае ошибки лучше сразу принтовать параметры функции. У Вас только 1 может вызвать тут сомнение - это цена установки ордера.
Если у Вас на том же евробаксе стоит 4 цифры после запятой, то не нужно думать, что употребив в функции OrderSend() текущую цену Bid, вы послали на сервер цену, у которой 4 цифры после запятой. Это далеко не всегда так. Обжигались уже на этом. И не спрашивайте, почему таких нюансов не описано в учебнике. В языке MQL4 довольно много "подводных камней", которые ни где не задокументированы. Просто нужно ходить по форумам, задавать вопросы и принимать это как данность.
 
drknn писал(а) >>
Нормализация нужна. Вам уже указали на это.
В случае ошибки лучше сразу принтовать параметры функции. У Вас только 1 может вызвать тут сомнение - это цена установки ордера.
Если у Вас на том же евробаксе стоит 4 цифры после запятой, то не нужно думать, что употребив в функции OrderSend() текущую цену Bid, вы послали на сервер цену, у которой 4 цифры после запятой. Это далеко не всегда так. Обжигались уже на этом. И не спрашивайте, почему таких нюансов не описано в учебнике. В языке MQL4 довольно много "подводных камней", которые ни где не задокументированы. Просто нужно ходить по форумам, задавать вопросы и принимать это как данность.


Спасибо буду пробовать разбираться.

Вопрос: При событии тик можно делать какое кол-во сделок ?
 
Alex2112 >>:


Вопрос: При событии тик можно делать какое кол-во сделок ?

Видимо любое. но только с соблюдениeм ограничений на открытие ордеров. Ну, там. лот крупный, уровень близок от цены и т.п. Но Вы об этом из возвращаемой ошибки узнаете - ф-ция GetLastError()

Причина обращения: