Попробовал получить значение через iCustom - было возвращено правильное значение. Но самого индикатора на графике не появилось. Не помог и ChartRedraw().
Исследуем дальше...
Нет в МТ4 такого как в МТ5 для этого. Руками все, руками.
Хотя... может шаблон генерировать программно.
Нет в МТ4 такого как в МТ5 для этого. Руками все, руками.
Измена.
Абыдно, понимаешь - функция удаления вроде есть, а функции запуска - нет. Причем, для своих нужд - индикатор запускается, но на график не вешается.
Есть такой вариант: вызывать через iCustom() из эксперта. На пару секунд запустить тестирование эксперта, открыть график, на графике будут индикаторы.
Так задача ж в том, чтобы пользователям можно было быстро запускать и удалять пакет индикаторов. А запускать тестирования - для них будет еще труднее. Да и дров могут наломать еще тех...
Благодарю за идеи... Мож, еще кто-то что-то предложит... Пока кроме шаблона придумать нечего.
Как запустить индикатор или советник из скрипта при помощи winapi?
Тема поднималась на форуме многократно, но найти работающее решение не получилось, поэтому прошу помощи у сообщества.
К примеру нужно из скрипта запустить стандартный индикатор Moving Average:
#import "user32.dll" int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]); int RegisterWindowMessageA(uchar &lParam[]); #import string IndiName="Moving Average"; void OnStart() { char buf[]; StringToCharArray("MetaTrader4_Internal_Message", buf); int MT4InternalMsg=RegisterWindowMessageA(buf); StringToCharArray(IndiName, buf); int handle=WindowHandle(_Symbol,_Period); bool res=SendMessageA(handle, MT4InternalMsg, 13, buf); Print("Функция SendMessageA завершила работу с результатом: ",res); }
Данный код работает почти так как нужно: индикатор запускается, открывается окно свойств, но последняя строка (Print) не исполняется, а значит скрипт ждет от функции SendMessageA возврата, которого почему то нет, а значит весь дальнейший код выполняться не будет, а ведь надо еще и на ОК нажать. А еще непонятно что там с типом последней переменной в функциях PostMessage/SendMessage - она где то используется int, где то string, а где то массив типа char.
Вобщем, может кто-нибудь предложить рабочее решение?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всех приветствую.
Перевожу скрипты с МТ5 на МТ4. Стоит задача:
Есть десяток самописных индикаторов, нужен скрипт, который бы просматривал существующие на графике индикаторы, и запускал бы недостающие.
И второй скрипт - который бы наоборот, удалял все запущенные из списка индикаторы.
Как это сделать ? В МТ5 сперва использовал функцию ChartIndicatorGet(), которая возвращала хэндл индикатора, если он запущен, и потом - IndicatorCreate(), если нужно создать индикатор, и ChartIndicatorDelete(), если надо удалить индикатор с графика.
Какие аналоги в МТ4 ?