- IndicatorCreate + ChartIndicatorAdd.
- ChartApplyTemplate.
А как робота скриптом на 10 графиков закинуть??
Это уже не индикатор, есть ли для советников такая функция? Спасибо)
У меня в роботе есть рисовалка на канвасе, так вот, если в скрипт засунуть ChartApplyTemplate, то он открывает 10 графиков, применяет к ним шаблон с роботом, робот пашет нормалИно, а рисовалка блин на всех графиках одинаковая о_ООО
Как будто из одного потока её срисовали и при этом она еще и не меняется. PanelUpdate стоит в коде, на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает, а через скрипт такая ерунда получается...
А как робота скриптом на 10 графиков закинуть??
Это уже не индикатор, есть ли для советников такая функция? Спасибо)
https://www.mql5.com/ru/code/19003
У меня в роботе есть рисовалка на канвасе, так вот, если в скрипт засунуть ChartApplyTemplate, то он открывает 10 графиков, применяет к ним шаблон с роботом, робот пашет нормалИно, а рисовалка блин на всех графиках одинаковая о_ООО
Как будто из одного потока её срисовали и при этом она еще и не меняется. PanelUpdate стоит в коде, на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает, а через скрипт такая ерунда получается...
Это неправильно написанная панелька - в ней имена ресурсам (ResourceCreate) задаются точно прописанные, а не сгенерированные. Поэтому все BMP-объкты обращаются к одним и тем же ресурсам. Отсюда такой эффект.
на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает
- голосов: 23
- 2017.08.28
- fxsaber
- www.mql5.com
https://www.mql5.com/ru/code/19003
Это неправильно написанная панелька - в ней имена ресурсам (ResourceCreate) задаются точно прописанные, а не сгенерированные. Поэтому все BMP-объкты обращаются к одним и тем же ресурсам. Отсюда такой эффект.
Надо больше инфы.панелька простая - рисует прямоугольник с определенными данными
в параметрах:
#include <Canvas\Canvas.mqh> string name1 = "MainPanel"; // Имя для панели CCanvas panel1; // Инициализируем объект класса CCanvas в oninit: if (ObjectFind(name1)==-1) // Отрисуем панель если её еще нет { panel1.CreateBitmapLabel(name1,20,20,200,200,COLOR_FORMAT_ARGB_NORMALIZE); // Создадим рабочую область для панели } в deinit: panel1.Destroy(); // Удалим панель в коде: // Проверим не удалил ли пользователь с дуру панельку и если че отрисуем снова if (ObjectFind(name1)!=-1) MainPanel(); после кода функция: void MainPanel() { panel1.Erase(ARGB(180,130,130,130)); panel1.FillRectangle(0,0,25,180, ColorToARGB(Color1,255)); // прямоугольник panel1.FontSet("Arial",shrift,0,0); // Установим тип и размер шрифта panel1.TextOut(k1,k2,"валютная пара:",ColorToARGB(Color2,255),TA_LEFT|TA_VCENTER); panel1.TextOut(k4,k3,"текущее время:",ColorToARGB(Color2,255),TA_LEFT|TA_VCENTER); panel1.TextOut(k5,k6,Symbol(),ColorToARGB(Color2,255),TA_RIGHT|TA_VCENTER); panel1.TextOut(k7,k8,TimeToStr(TimeLocal(),TIME_SECONDS),ColorToARGB(Color2,255),TA_RIGHT|TA_VCENTER); panel1.Update(); // Обновим панельку }
панелька простая - рисует прямоугольник с определенными данными
в параметрах:
Убедительная просьба, самостоятельно правильно вставлять код в сообщения: Правильно вставляем код на форуме
панелька простая - рисует прямоугольник с определенными данными
в параметрах:
Строка в Canvas.mqh, вроде, исключает одинаковых имен ресурсам
m_rcname="::"+name+(string)(GetTickCount()+MathRand());
Надо смотреть tpl-файл.
Надо смотреть tpl-файл.
Вот эта строка в tpl-файле ответственна за проблему
bmpfile_on=
Можете стереть ее. Тогда все должно работать. А так, похоже, Canvas.mqh не закладывался на такую ситуацию, поэтому обработать корректно не может.
Вот эта строка в tpl-файле ответственна за проблему
Можете стереть ее. Тогда все должно работать. А так, похоже, Canvas.mqh не закладывался на такую ситуацию, поэтому обработать корректно не может.
в tpl-файле присутствует следующая строка:
bmpfile_on=C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\13EF47C5AF7138AD8BE041E9AB1F782E\MQL4\Experts\робот1.ex4::MainPanel26055663
если её удалить панель вообще не рисуется-ни на нодном из графиков открываемых скриптом, т.е. нигде)
а сам кусок выглядит так:
</object> <object> type=24 object_name=MainPanel period_flags=0 create_time=1513193794 description=BitmapLabel color=8421504 font=Arial fontsize=10 angle=0 anchor_pos=0 background=0 corner=0 x_distance=20 y_distance=20 filling=0 selectable=0 hidden=1 zorder=0 size_x=0 size_y=0 offset_x=0 offset_y=0 state=0 bmpfile_on=C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\13EF47C5AF7138AD8BE041E9AB1F782E\MQL4\Experts\робот1.ex4::MainPanel26055663 </object>
Неужели придется под каждую валюту создавать свой шаблон со своей ОТДЕЛЬНОЙ копией робота и потом всё это хозяйство запихивать в скрипт?
Вариант конечно но как-то это странно в 21 веке будет выглядеть...
Неужели придется под каждую валюту создавать свой шаблон со своей ОТДЕЛЬНОЙ копией робота и потом всё это хозяйство запихивать в скрипт?
Нет, создать tpl один раз. Затем удалить все, что между <object> и </object>.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования