#import "user32.dll" int RegisterWindowMessageW(string MessageName); int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]); #import #define INDICATOR_NAME "Indicator_name" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=false) { uchar name2[]; StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName)); int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message"); int r=PostMessageW(hWnd,MessageNumber,15,name2); Sleep(10); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- // In my code where I launch the indicator int hWnd=WindowHandle(Symbol(),0); StartCustomIndicator(hWnd,INDICATOR_NAME); return(INIT_SUCCEEDED); }
Alain Verleyen:
Спасибо, теперь заработало, но работает только со второй попытки. Если я запускаю ea, вызов индикатора возвращает ошибку fail to open / .ex4[123]. Если ea уже прикреплена к графику и я пытаюсь прикрепить ее заново, то она работает. Как это можно решить?
Georgiy Liashchenko:
Вы уверены?
...В mql4 нет команды, которая бы добавляла индикатор на график, как в mql5 ChartIndicatorAdd(). Это действительно печально....
Vasyl Nosal:
Вы уверены?
Ну, если вы знаете несколько, пожалуйста, поделитесь... :)
Вы уверены?
Georgiy Liashchenko:
Если вы знаете что-то подобное, пожалуйста, поделитесь... :)
Если вы знаете что-то подобное, пожалуйста, поделитесь... :)
:))))))))))))))))))))))))))))))))))))))))))))))))))
О, простите. Несколько минут.
Хм... Я думал, что это в mql4.
Возможно, это поможет вам
ChartApplyTemplate()
Vasyl Nosal:
Да, но это не тот случай, когда, например, я продаю ea и клиент хочет использовать ее, но у него нет такого шаблона. Даже если я дам ему файл, он может предпочесть другой вид. Поэтому я хочу инициализировать индикатор из ea.
:))))))))))))))))))))))))))))))))))))))))))))))))))
О, простите. Несколько минут.
Хм... Я думал, что это в mql4.
Возможно, это поможет вам
ChartApplyTemplate()
Georgiy Liashchenko:
Да, но это не тот случай, когда, например, я продаю советника, а клиент хочет его использовать, но у него нет такого шаблона. Даже если я дам ему файл, он может предпочесть другой вид. Поэтому я хочу инициализировать индикатор из ea.
Да, но это не тот случай, когда, например, я продаю советника, а клиент хочет его использовать, но у него нет такого шаблона. Даже если я дам ему файл, он может предпочесть другой вид. Поэтому я хочу инициализировать индикатор из ea.
Хм. Может быть, чем добавлять индикатор в советник, используя "ресурс".
#resource "\\Indicators\\SampleIndicator.ex4" int OnInit() { double value=iCustom(_Symbol,_Period,"::Indicators\\SampleIndicator.ex4",0,0);
Vasyl Nosal:
не работает, советник получает ручку, но без индикатора
Хм. Может быть, чем добавлять индикатор в советник, используя "resourse".
Georgiy Liashchenko:
не работает, ea получает ручку, но нет индикатора
не работает, ea получает ручку, но нет индикатора
Это не добавление индикатора на график. Он компилирует ind в файле ea ex.4.
Может быть, написать в службу поддержки и попросить их добавить ChartIndicatorAdd(), как в mql5?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте люди,
Я пытаюсь решить текущую проблему. В mql4 нет команды, которая бы добавляла индикатор на график, как в mql5 ChartIndicatorAdd(). Это очень печально.
Я хочу, чтобы моя ea инициировала индикатор. Пролистав форумы, я наткнулся на такое решение, но оно не работает должным образом. Пожалуйста, помогите!
Этот код пытается запустить индикатор, но он неправильно считывает имя файла. Он пытается открыть только (первая буква имени индикатора).ex4 или I.ex4.
Очевидным решением был chararray, но компилятор выдает ошибку "parametr conversion not allowed". Как мы можем решить эту проблему?