Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes ID, что это? Узнай из статьи!
Vladimir Deryagin
342
Vladimir Deryagin 2015.07.04 10:18 

Можно или нет установить несколько советников в один торговый терминал (на один счет), но на разные валютные пары? соответственно чтобы они корректно работали.  При моем опыте получалась что, торговый поток (IsTradeAllowed()) занят одним из советников другие просто не могут открыть позицию.

Server Muradasilov
9370
Server Muradasilov 2015.07.04 10:58  
voviko:

Можно или нет установить несколько советников в один торговый терминал (на один счет), но на разные валютные пары?

Да
Vladimir Deryagin
342
Vladimir Deryagin 2015.07.04 11:07  
Server Muradasilov:
Да
При моем опыте получалась что, торговый поток занят (IsTradeAllowed) одним из советников другие просто не могут открыть позицию.
Aleksey
2438
Aleksey 2015.07.04 11:18  
voviko:
При моем опыте получалась что, торговый поток занят (IsTradeAllowed) одним из советников другие просто не могут открыть позицию.
Что делают когда есть очередь? Занимают её. Если поток занят, подождите пока освободится. Или переходите на МТ5, там проблем с очередью не должно быть.
Vladimir Deryagin
342
Vladimir Deryagin 2015.07.04 11:28  
Aleksey:
Что делают когда есть очередь? Занимают её. Если поток занят, подождите пока освободится. Или переходите на МТ5, там проблем с очередью не должно быть.

С помощью какой функции? (Если поток занят, подождите пока освободится)

Пробовал так:

int start()
  {
   if(!IsTradeAllowed())
      Print("торговый поток занят,жду");
// бесконечный цикл
   while(true)
      if(IsTradeAllowed())
        {
         break;
        }
Aleksey
2438
Aleksey 2015.07.04 12:21  
voviko:

С помощью какой функции? (Если поток занят, подождите пока освободится)

Пробовал так:

Это слишком жёстко. А в таком варианте возможно требуется что-то типа RefreshRates внутри цикла +sleep. Сто лет уже как с МТ4 слез, не помню точно, в общем обновлять окружение.

Самым правильным будет уход на следующий тик, т.е. return вместо Print и проверка условий на следующем тике. К тому же, это освободит поток.

Да вроде на четвёрке тоже добавляли количество одновременных запросов в потоке.

Комбинатор
15772
Комбинатор 2015.07.04 12:33  
IsTradeAllowed к потоку не имеет никакого отношения. IsTradeContextBusy
MetaQuotes
Админ
24887
Renat Fatkhullin 2015.07.04 12:38  

В МТ4 можно одновременно до 16 сделок проводить (12 одновременно из разных экспертов), так что trade context busy получить очень сложно.

В МТ5 гораздо больше сделок, особенно с учетом асинхронного режима.

Aleksey
2438
Aleksey 2015.07.04 12:57  
Фьючерсные объемы для МТ:
IsTradeAllowed к потоку не имеет никакого отношения. IsTradeContextBusy

Блин, попутал. Вопрос сбил с толку ))

Я так понимаю автор имел ввиду IsTradeContextBusy

Vladimir Deryagin
342
Vladimir Deryagin 2015.07.04 13:02  
Aleksey:

Блин, попутал. Вопрос сбил с толку ))

Я так понимаю автор имел ввиду IsTradeContextBusy


Справочник MQL4


IsTradeAllowed

Возвращает информацию о возможности торговли при помощи экспертов.

bool  IsTradeAllowed();

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

bool  IsTradeAllowed(
  const string symbol       // символ
  datetime     tested_time  // время
   );

Параметры

symbol

[in]  Символ.

tested_time

[in]  Время.

Возвращаемое значение

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.


IsTradeContextBusy

Возвращает информацию о состоянии потока выполнения торговых операций.

bool  IsTradeContextBusy();

Возвращаемое значение

Возвращает true, если поток для выполнения торговых операций занят, иначе возвращает false.

Пример:

 

 if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");
Aleksey
2438
Aleksey 2015.07.04 13:08  
voviko:

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.

в обоих случаях надо выходить, точней, отложить торговую операции на следующий тик
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий