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

 

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

С уваженем,

Реувен

bruven@012.net.il

 

если специально не отслеживать выполнение функций по открытию, изменению и удалению ордеров, то никак..

может вы имели в виду определить свободен ли торговый поток для торговых операций, если да то

bool IsTradeContextBusy( )
Возвращается TRUE, если поток для выполнения торговых операций занят, иначе возвращает FALSE.
 
Попробовать совершить торговую операцию (поставить отложенник по заведомо далекой цене) и проверить код ошибки. Если код ошибки 133, то торговля запрещена. Это, конечно, в том случае, если работает зацикленный скрипт. Если же советник, то до прихода первого тика он так и не будет выполнен.
 
reuvenb >>:

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

С уваженем,

Реувен

bruven@012.net.il

Я обычно определяю так

bool fTradeAllow = MarketInfo(Symbol(),MODE_TRADEALLOWED);
	
if(fTradeAllow)
{
   //торги разрешены
}
else
{
   //торги запрещены
}
 
интересно, а какова практическая разница между MarketInfo(Symbol(),MODE_TRADEALLOWED) и IsTradeContextBusy( ) ?
 
keekkenen >>:
интересно, а какова практическая разница между MarketInfo(Symbol(),MODE_TRADEALLOWED) и IsTradeContextBusy( ) ?

MarketInfo(Symbol(),MODE_TRADEALLOWED) -- возвращает, разрешено ли торговать в данный момент данным инструментом.

Это свойство инструмента.


IsTradeContextBusy() -- возвращает, свободен ли в данный момент торговый поток, или занят посылкой другого ордера.

Это техническая функция, отражающая состояние терминала.


IsTradeAllowed() == (Нажата птичка разрешить советнику торговать) && IsTradeContextBusy()

Вроде так.

 
keekkenen >>:
интересно, а какова практическая разница между MarketInfo(Symbol(),MODE_TRADEALLOWED) и IsTradeContextBusy( ) ?

С помощью

MarketInfo(Symbol(),MODE_TRADEALLOWED) 

 

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


А с помощью IsTradeContextBusy() определяю возможно ли в текущий момент установить ордер (свободен ли торговый поток - он может быть занят другим экспертом).


При этом, в первом случае, нет необходимости повторять попытки торговать, т.к. торги по инструменту не ведутся вообще.

Во-втором - попытку установить ордер можно осуществить позже, т.к. по инструменту торги ведутся, но торговый поток пока занят.

 
Ilnur >>:

С помощью

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

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

 
keekkenen >>:

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

Например, торги по фьючерсным контрактам ведутся в узком диапазоне времени и отличаются друг от друга.

К примеру, #GCJ9 - с 14.20 по 19.30, #CH9 - c  16.30 по 20.00 (время Альпари).