Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
У тебя Mac OS? Узнай, как установить на нее MetaTrader!
reterwerson
46
reterwerson 2014.04.01 15:10 

Есть код:

void BuyOrder4()

{

double SL = Ask - BuyStoploss4*PipValue*Point;

if (BuyStoploss4 == 0) SL = 0;

double TP = Ask + BuyTakeprofit4*PipValue*Point;

if (BuyTakeprofit4 == 0) TP = 0;

int ticket = -1;

if (true)

ticket = OrderSend(Symbol(), OP_BUY, BuyLots4, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);

else

ticket = OrderSend(Symbol(), OP_BUY, BuyLots4, Ask, 4, SL, TP, "My Expert", 1, 0, Blue);

if (ticket > -1)

{

if (true)

{

OrderSelect(ticket, SELECT_BY_TICKET); // вот здесь выдаёт предупреждение: return value of 'OrderSelect' should be checked

// Возвращаемое значение 'OrderSelect "должны быть проверены

bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);

if (ret == false)

Print("OrderModify() error - ", ErrorDescription(GetLastError()));

}

}

else

{

Print("OrderSend() error - ", ErrorDescription(GetLastError()));

}

}

Компилятор выдаёт предупреждение: return value of 'OrderSelect' should be checked

Возвращаемое значение 'OrderSelect "должны быть проверены

Как это сделать?

Alexey Viktorov
5195
Alexey Viktorov 2014.04.01 15:15  
Иди туда https://forum.mql4.com/ru/62037
Vasyl Nosal
18222
Vasyl Nosal 2014.04.01 15:40  
OrderSelect(ticket, SELECT_BY_TICKET); // вот здесь выдаёт предупреждение: return value of 'OrderSelect' should be checked

Так

if(OrderSelect(ticket, SELECT_BY_TICKET))

{  

...

} 
reterwerson
46
reterwerson 2014.04.01 19:15  
OrderSelect(ticket, SELECT_BY_TICKET); // вот здесь выдаёт предупреждение: return value of 'OrderSelect' should be checked

Так

if(OrderSelect(ticket, SELECT_BY_TICKET))

{  

...

}
Прошу прощения, но ваш вариант не прошел. И сё дело оказалось в том, что OrderSelect(ticket, SELECT_BY_TICKET); вообще нужно убрать из-за излишества кода. В новой версии редактора теперь усилена проверка на корректность написания кода. И эта строчка оказалась лишней. Предупреждения исчезли советник работает как часы. Спасибо за уделённое внимание.
Alexander
2441
Alexander 2014.04.01 23:33  

Было такое, поменял все орущие ошибки на

bool or=OrderSelect(...);

Alexey Viktorov
5195
Alexey Viktorov 2014.04.02 05:00  
reterwer:

Прошу прощения, но ваш вариант не прошел. И сё дело оказалось в том, что OrderSelect(ticket, SELECT_BY_TICKET); вообще нужно убрать из-за излишества кода. В новой версии редактора теперь усилена проверка на корректность написания кода. И эта строчка оказалась лишней. Предупреждения исчезли советник работает как часы. Спасибо за уделённое внимание.

Если такой вариант не прошёл, значит было сделано не так как предложено...
Тебе повезло, что твой код работает только с одним ордером. Но в дальнкейшем ты столкнёшься с более серьёзными ошибками которые компилятор не определяет.
Andrey Glukhov
28
Andrey Glukhov 2014.04.11 08:35  
AlexeyVik:
Если такой вариант не прошёл, значит было сделано не так как предложено...
Тебе повезло, что твой код работает только с одним ордером. Но в дальнкейшем ты столкнёшься с более серьёзными ошибками которые компилятор не определяет.


Спасибо, все проходит. Предупреждения после вставки проверки пропали.

Было так в старом коде мкл4: OrderSelect(ticket, SELECT_BY_TICKET);

В новом действительно проходит только так, можно конечно и с предупреждением было оставить, но как то некрасиво)

if(OrderSelect(ticket, SELECT_BY_TICKET))

{  

...
 

}

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий