Скачать MetaTrader 5

Кнопка советника.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114283
Forex Trader  
Известно, что проект заморожен и разработчики стараются его немного "облегчить"..

Но всё же.
Есть потребность иметь функцию, позволяющую получить состояние кнопки советника.
Что-нибудь типа Refresh_Knopka().
Это позволило бы избежать запросов на исполнение торговых операций в длинных циклах, если кнопка запрещает торговлю, а также вести торговлю и продолжать ычисления в период между тиками (что, собственно, и нужно ине).

Сразу откажете или всё же задумаетесь?:)
MetaQuotes Software Corp.
Модератор
183656
MetaQuotes Software Corp.  
А IsTradeAllowed() не помогает?
Forex Trader
114283
Forex Trader  
Может, я чего пропустил..
Поиск в Новигаторе результатов не даёт.
Видимо, это из-за того, что у меня по-прежнему часть словаря отражается HTML-ем.
Пойду смотреть на сайт.
Forex Trader
114283
Forex Trader  
Справка 186 билда.
bool IsTradeAllowed( )


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

Пример

if(IsTradeAllowed()) Print("Торговля разрешена");



Если кнопка не нажата - получишь False.
MetaQuotes Software Corp.
Модератор
183656
MetaQuotes Software Corp.  
Может, я чего пропустил..
Поиск в Новигаторе результатов не даёт.
Видимо, это из-за того, что у меня по-прежнему часть словаря отражается HTML-ем.
Пойду смотреть на сайт.


А какой билд? Скачайте с сайта последний билд 188 и инсталлируйте поверх предыдущей версии даже если уже стоит 188.
Forex Trader
114283
Forex Trader  
Билд 188.

Наверное, дело не в билдах, а в дебилах..:)
Действительно, справка работает, эт я просто скопировал функцию, прихватив за ней пробел и искал текст с пробелом. Ну, да ладно с этим.

По существу:
int start() 
   {
   while(1==1)
      {
      if(IsTradeAllowed()) Alert("Торговля разрешена"); 
      if(IsTradeAllowed()==false) Alert("Стоп машина!"); 
      Sleep(100);
      }
   return;
   }


Такой эксперт должен при попеременном вкл/выкл. кнопки показать "Стоп машина" или нет?
У меня не получилось.

Теперь уж и не знаю.. Следует обилдиться поверх или и так уже одебилился сверх..:)

MetaQuotes Software Corp.
Модератор
183656
MetaQuotes Software Corp.  
Вскрытие показало, что таким способом проверить отключенность кнопки экспертов нельзя.
Forex Trader
114283
Forex Trader  
Вот я и говорю..
Функцию бы такую, у? Очень надо..
------------------
Или, если сможете, подскажите корректный вариант решения.
Разрабатывается программный комплекс, состоящий из эксперта, скрипта и индикатора.
Технология кратко.
Фукция индикатора: генератор тиков.
Ф-ия скрипта: основной код, позволяющий юзеру производить любые манипуляции и вычисления независимо от тиков. Бесконечный цикл.
Ф-ия эксперта: торговые операции в бесконечном цикле. Исполнение операций в зависимости от значений Глоб.Пер., формируемых скриптом и индикатором при разрешающем состоянии кнопки советника.

Проблема одна: скрипт, сформировавший несколько торговых приказов поочерёдно предаёт их советнику на исполнение. А тот советник не может ими правильно распорядиться, поскольку не знает что там с кнопкой. Он может, конечно, работать не зацикленно, ждать тика, чтоб зайти на исполнение очередного приказа со своего тика, но тогда вся идея рушится, поскольку после иполнения каждого приказа советник должен закончить старт и ждать тика, не исполнив оставшиеся приказы.

Или, если он работает зацикленно, то нет возможности знать между приказами состояние кнопки.

Сегодняшний вариан решения - оценивать время между обновлением ГлобПер "Тик" и "Кнопка", при этом Тик формируется по-прежнему индикатором, а для обновления ГП Кнопка придётся сделать 4-й компонент комплекса: советник, и посадить его в отдельное окно той же пары..

Невооруженным глазом видно насколько запутан и неудобен такой вариант, к тому же, как выяснилось, упомянутое время запаздывания гуляет в уж очень широких пределах..
-----------
Функцию бы такую.. Рефреш_Кнопочка. Всё можно было бы сделать по-человечески..:)
Forex Trader
114283
Forex Trader  
Разрабатывается программный комплекс, состоящий из эксперта, скрипта и индикатора.
Не уверен, что въехал в проблему, но может сделать свою кнопку, и пусть индикатор считывает её состояние? А штатную кнопку держать всегда включённой. Мне кажется индикатор Level_Alarm_GUI, (с некоторой степенью корявости :) демонстрирует теоретическую возможность такого решения.
MetaQuotes Software Corp.
Модератор
183656
MetaQuotes Software Corp.  
Завтра подумаем, что можно сделать.
Может IsTradeAllowed() модифицируем чтобы реагировала на состояние этой кнопки.
Forex Trader
114283
Forex Trader  
Candid, спасибо за участие.
На самом деле да, можно сделать кнопку. Но это не выход.
Юзер привык к кнопке, это нормально. В стрессовой ситуации он будет давить именно её.. пока не выйдет из стресса. Но потом уже может быть поздно.

И вообще. Хочется ж решить задачу штатными средствами.
12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий