Как проверить, выбран ли ордер

 

Как максимально корректно организовать проверку на то, выбран ли в данный момент ордер?

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

Если сделать так:

void SomeFunс()

{

int tick=OrderTicket();

// ..... 

if(tick>0) OrderSelect(tick,SELECT_BY_TICKET); 

То на первой строчке будет генерироваться ошибка 4105, если текущий ордер не выбран, что разумеется нежелательно. Если перед этим сбрасывать last error и проверять после этого наличие ошибки, то у нас сбросится информация о последней ошибке, что также нежелательно, если последняя ошибка должна анализироваться позже в каком-то определенном месте кода.

Как решить эту задачу без генерирования ошибки 4105 если текущий ордер не выбран?

 
О конструкции if(OrderSelect(ticket,SELECT_BY_TICKET)){} не слыхали , не ?
 
FAQ:
О конструкции if(OrderSelect(ticket,SELECT_BY_TICKET)){} не слыхали , не ?

 ticket то неизвестен, вы хоть вникли в вопрос?

 

тогда что это ???

int tick=OrderTicket();

 
вот она и вернет вам фолс
 
FAQ:

тогда что это ???

 

Это то, что генерирует ошибку 4105 если ордер не выбран, задача избежать генерации этой ошибки, но при этом узнать тикет ордера, если он выбран ранее

 
ответ: сначала выберите ордер.
 
FAQ:
ответ: сначала выберите ордер.

 Как я могу выбрать ордер, если я не знаю его тикет?

 

Короче уважаемый FAQ, либо попытайтесь понять вопрос либо не пишите попусту

 
по номеру в цикле.
 
Ant_TL:

Короче уважаемый FAQ, либо попытайтесь понять вопрос либо не пишите попусту


  Уважаемый, если бы у вас в голове, было бы хоть капля разума, то вы бы поняли что :

  1) ваш вопрос по сути бессмысленен. 

  2) не стоит хамить, тем более когда вам пытаются помочь. 

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