Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай, как установить MetaTrader на Mac OS
Forex Trader
114255
Forex Trader 2006.01.16 18:55 
Известно, что проект заморожен и разработчики стараются его немного "облегчить"..

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

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


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

Пример

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



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


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

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

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


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

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

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

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

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

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

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

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