Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарегистрируйся на MQL5.community, чтобы опубликовать тему на форуме
hoz
1936
hoz 2014.11.12 18:16 

Открыл я описание данной функции.

Хотя я раньше не особо задумываясь использовал эту функцию, но.. Хочется знать канкретно. Зачем она нужна? Какова может быть "невозможность торговли" ?

Я понимаю, что может быть занят торговый потом, но для этого случая имеется функция IsTradeContextBusy(). А по какой причине может вернуть false функциях IsTradeAllowed() ?

Vitalie Postolache
11080
Vitalie Postolache 2014.11.12 20:33  

1. Счёт заблокирован

2. Брокером запрещена торговля вообще

3. Брокером запрещена торговля автоматическая

4. Отжата кнопка автоторговли в терминале

5. Снята галочка "Разрешить советнику торговать" в настройках советника/скрипта

6. Может ещё какие причины...

Есть более специфичные функции, позволяющие точнее узнать причину отказа: MQLInfoInteger(MQL_TRADE_ALLOWED), TerminalInfoInteger(TERMINAL_TRADE_ALLOWED),  AccountInfoInteger(ACCOUNT_TRADE_EXPERT), AccountInfoInteger(ACCOUNT_TRADE_ALLOWED).

hoz
1936
hoz 2014.11.12 22:00  

У данной функции есть 2 вариант:

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

Я так понял, первый это проверить можно ли торговать вообще на всех инструментах, а второй на канкретном? Тогда возникает вопрос о надобности второго варианта. Если использовать первый, и получить ответ, что можно. Значит торговать можно. Какой прок с второго варианта?

Если у второго варианта нет явных приемуществ и каких-либо дополнительной пользы, то зачем это канкретика?

Boris
3883
Boris 2014.11.12 23:35  
hoz:

У данной функции есть 2 вариант:

Я так понял, первый это проверить можно ли торговать вообще на всех инструментах, а второй на канкретном? Тогда возникает вопрос о надобности второго варианта. Если использовать первый, и получить ответ, что можно. Значит торговать можно. Какой прок с второго варианта?

Если у второго варианта нет явных приемуществ и каких-либо дополнительной пользы, то зачем это канкретика?

У меня после всех представлений:

  if(IsTradeAllowed() == True)
  {

И всё остальное! Работает! Когда какое-нибудь отключение, советник не посылает ничего на сервер, он, в общем, и не пошлёт без тиков, но так, для соблюдения порядка! :)

Artyom Trishkin
68976
Artyom Trishkin 2014.11.13 01:31  
borilunad:

У меня после всех представлений:

И всё остальное! Работает! Когда какое-нибудь отключение, советник не посылает ничего на сервер, он, в общем, и не пошлёт без тиков, но так, для соблюдения порядка! :)

 

Борис, у тебя всё тело советника заключено в эти скобки? Если так, то наверное это не очень-то корректно - ты запрещаешь тем самым советнику собирать статистику.
Boris
3883
Boris 2014.11.13 09:56  
artmedia70:
Борис, у тебя всё тело советника заключено в эти скобки? Если так, то наверное это не очень-то корректно - ты запрещаешь тем самым советнику собирать статистику.
Артём, весь сбор статистики расположен до этих скобок.
hoz
1936
hoz 2014.11.13 18:30  

Всё то, конено, хорошо. Но IsTradeContextBusy() кто-нить использует? Или ограничиваться можно лишь IsTradeAllowed() ?

 Бывает так, что один из этих состояний true, а другое false?

Boris
3883
Boris 2014.11.13 18:49  
hoz:

Всё то, конено, хорошо. Но IsTradeContextBusy() кто-нить использует? Или ограничиваться можно лишь IsTradeAllowed() ?

 Бывает так, что один из этих состояний true, а другое false?

Конечно, IsTradeAllowed()= False, то не имеет значания IsTradeContextBusy().

А если IsTradeAllowed()= True, то IsTradeContextBusy() может быть False.

Но я не использую его, т.к. поток в любое время может освободится, а команда от эксперта запаздает!

Victor Nikolaev
Модератор
14061
Victor Nikolaev 2014.11.15 08:24  
hoz:

У данной функции есть 2 вариант:

Я так понял, первый это проверить можно ли торговать вообще на всех инструментах, а второй на конкретном? Тогда возникает вопрос о надобности второго варианта. Если использовать первый, и получить ответ, что можно. Значит торговать можно. Какой прок с второго варианта?

Если у второго варианта нет явных приемуществ и каких-либо дополнительной пользы, то зачем это конкретика?

Глаз режет. Конкретно
Boris
3883
Boris 2014.11.15 09:51  
Vinin:
Глаз режет. Конкретно
Похоже, изучает и санкрит, потому-то путает. :)
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий