« Предыдущий пост | На главную страницу | Следующий пост »

Как убедиться, что советник может торговать

В прошлых выпусках я рассказал о различных торговых функциях, с помощью которых можно открывать/закрывать позиции, выставлять/модифицировать/удалять ордера: OrderSend(), OrderModify(), OrderDelete(), OrderClose() и OrderClosyBy().

В каждом случае мы исходили из того, что советнику разрешено торговать. Но в реальности это не всегда так.

В этом выпуске я расскажу о трех функциях: IsExpertEnabled(), IsTradeContextBusy() и IsTradeAllowed().

Функция IsExpertEnabled()

   bool IsExpertEnabled()

Функция IsExpertEnabled() возвращает true, если экспертам разрешено совершать сделки и управлять ордерами. Дело в том, что на уровне настроек клиентского терминала можно запретить ВСЕМ экспертам торговать. Это можно сделать, например, с помощью команды главного меню: Сервис -> Настройки. В появившемся окне выбираем вкладку "Советники", в которой ставим или убираем галочку напротив "Включить советники ...".

Более простой способ отключать/включать советников - кнопка .

Если же на уровне настроек терминала работа экспертов запрещена, то функция IsExpertEnabled() вернет false.

Функция IsTradeContextBusy()

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

   bool IsTradeContextBusy()

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

Функция IsTradeAllowed()

Функция IsTradeAllowed() объединяет все обе предыдущие функции. Она вернет true только в том случае, если торговля экспертов разрешена и торговый поток свободен для торговли, т.е. никакой другой эксперт не совершает в данный момент торговых операций.

   bool IsTradeAllowed()

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



Все статьи по теме "Пишем советников для MetaTrader 4".

« Предыдущий пост | На главную страницу | Следующий пост »

Подписаться на мою рассылку


Рассылки Subscribe.Ru
Методы анализа рынка ФОРЕКС / FOREX. Торговые стратегии

Размещение статьи "Как убедиться, что советник может торговать" на Вашем сайте

Размещение статьи "Как убедиться, что советник может торговать" на Вашем сайте возможно при условии выполнениия следующих условий:

  • Запрещается изменение оригинального текста без согласия автора - Андрея Ведихина.
  • Должен быть указан первоисточник. В случае публикации в интернете Вы должны разместить следующий код гиперссылки без изменений:
  • Запрещается коммерческое использование материалов, взятых с блога "Интернет-трейдинг на форекс / forex". Доступ к ним должен быть свободным, без взимания какой-либо платы, без обязательной регистрации и/или заполнения опросного листа (анкеты) и т.д.

В случае выполнения данных условий не требуется согласия автора блога "Интернет-трейдинг на форекс / forex" на размещение статьи "Как убедиться, что советник может торговать" на Вашем сайте.

Журнал FOREX MAGAZINE:



Архив номеров FOREX MAGAZINE
Котировки Forex:

Счетчики:

Рейтинг@Mail.ru Rambler's Top100
Рассылка 'Методы анализа рынка ФОРЕКС / FOREX. Торговые стратегии'
Авторские права © 2005-2006 Андрей Ведихин

Условия использования материалов блога "Интернет-трейдинг на форекс / forex"

Контакты с автором:


Движок сайта:
Movable Type 5.04