Имеется индикатор, он должен реагировать на действия пользователя на других графиках, на которых он не установлен.
К примеру индикатор создает какой то графический объект на всех графиках, что открыты. После этого, когда пользователь тыкнет на этот объект на любом из графиков - главный график с индикатором должен выполнить задуманное действие, допустим выдать в принт номер этого графика.
Функция OnChartEvent обрабатывает события только с текущего графика и никак не реагирует на чужие.
Устанавливать этот вручную индикатор на десятки графиков не мой вариант.
Я знаю, что это можно сделать без всяких DLL, видел подобный индикатор на маркете, но не приложу ума как.
Подскажите, кто знает. Спасибо.
в связке с EventChartCustom
- www.mql5.com
Ну уж без всяких dll... Что-то не верится.
Можно попробовать через WinAPI поискать решение.
в связке с EventChartCustom
хотя да, вроде можно получить событие с другого графика.
Ну уж без всяких dll... Что-то не верится.
Можно попробовать через WinAPI поискать решение.
Всё работает без .dll , события передаются между графиками средствами mql
У меня есть в арсенале торговая панель в виде индикатора, так вот все действия с индикатора передаются в советник, который установлен на одном графике, а индикатор на 24 графиках, и прекрасно взаимодействует без всяких dll
Ну уж без всяких dll... Что-то не верится.
Можно попробовать через WinAPI поискать решение.
хотя да, вроде можно получить событие с другого графика.
Небольшая проблема с количеством передаваемых параметров, но это можно решить передачей строки через разделитель, к примеру "|", а на той стороне распарсить через StringSplit
Может есть ещё варианты, может и массивом можно передавать - не пробовал, вполне устроил вариант с разбитием строки.
Ну и конечно в помощь:
// Откроем Buy void BroadcastEventPB(long lparam,double dparam,string sparam) { ushort eventID=9784-CHARTEVENT_CUSTOM; long currChart=ChartFirst(); int i=0; while(i<CHARTS_MAX) // у нас наверняка не больше CHARTS_MAX открытых графиков { EventChartCustom(currChart,eventID,lparam,dparam,sparam); currChart=ChartNext(currChart); // на основании предыдущего получим новый график if(currChart==-1) break; // достигли конца списка графиков i++; // не забудем увеличить счетчик } } // Откроем Sell void BroadcastEventPS(long lparam,double dparam,string sparam) { ushort eventID=9348-CHARTEVENT_CUSTOM; long currChart=ChartFirst(); int i=0; while(i<CHARTS_MAX) // у нас наверняка не больше CHARTS_MAX открытых графиков { EventChartCustom(currChart,eventID,lparam,dparam,sparam); currChart=ChartNext(currChart); // на основании предыдущего получим новый график if(currChart==-1) break; // достигли конца списка графиков i++; // не забудем увеличить счетчик } } // Установим тейки и стопы на Buy
Ну и конечно в помощь:
.
Еще есть именованные каналы, а также глобальные переменные терминала в крайнем случае.
Способов чуть больше, чем 1 ))
Еще есть именованные каналы, а также глобальные переменные терминала в крайнем случае.
Способов чуть больше, чем 1 ))
Именованные каналы это что имеется ввиду?
Именованные каналы это что имеется ввиду?
- www.mql5.com
Спасибо
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Имеется индикатор, он должен реагировать на действия пользователя на других графиках, на которых он не установлен.
К примеру индикатор создает какой то графический объект на всех графиках, что открыты. После этого, когда пользователь тыкнет на этот объект на любом из графиков - главный график с индикатором должен выполнить задуманное действие, допустим выдать в принт номер этого графика.
Функция OnChartEvent обрабатывает события только с текущего графика и никак не реагирует на чужие.
Устанавливать этот вручную индикатор на десятки графиков не мой вариант.
Я знаю, что это можно сделать без всяких DLL, видел подобный индикатор на маркете, но не приложу ума как.
Подскажите, кто знает. Спасибо.