Как скриптом прикрепить один и тот же индюк к 10 разным графикоам сразу??

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
fantomas56
120
fantomas56  
fxsaber
16748
fxsaber  

  1. IndicatorCreate + ChartIndicatorAdd.
  2. ChartApplyTemplate.

fantomas56
120
fantomas56  
fxsaber:

  1. IndicatorCreate + ChartIndicatorAdd.
  2. ChartApplyTemplate.


А как робота скриптом на 10 графиков закинуть??

Это уже не индикатор, есть ли для советников такая функция? Спасибо)

fantomas56
120
fantomas56  

У меня в роботе есть рисовалка на канвасе, так вот, если в скрипт засунуть ChartApplyTemplate, то он открывает 10 графиков, применяет к ним шаблон с роботом, робот пашет нормалИно, а рисовалка блин на всех графиках одинаковая о_ООО

Как будто из одного потока её срисовали и при этом она еще и не меняется. PanelUpdate стоит в коде, на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает, а через скрипт такая ерунда получается...

fxsaber
16748
fxsaber  
fantomas56:

А как робота скриптом на 10 графиков закинуть??

Это уже не индикатор, есть ли для советников такая функция? Спасибо)

https://www.mql5.com/ru/code/19003

fantomas56:

У меня в роботе есть рисовалка на канвасе, так вот, если в скрипт засунуть ChartApplyTemplate, то он открывает 10 графиков, применяет к ним шаблон с роботом, робот пашет нормалИно, а рисовалка блин на всех графиках одинаковая о_ООО

Как будто из одного потока её срисовали и при этом она еще и не меняется. PanelUpdate стоит в коде, на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает, а через скрипт такая ерунда получается...

Это неправильно написанная панелька - в ней имена ресурсам (ResourceCreate) задаются точно прописанные, а не сгенерированные. Поэтому все BMP-объкты обращаются к одним и тем же ресурсам. Отсюда такой эффект.

на одиночном графике (да хоть на 10, при условии что все руками ставить) - работает

Надо больше инфы.
Expert
Expert
  • голосов: 23
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
fantomas56
120
fantomas56  
fxsaber:

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();  // Обновим панельку
 }
Так вот если ставить робота с этим добром хоть на 10 графиков-все в поряде-все данные обновляются, всё работает корректно, если запускать 10 графиков скриптом с шаблоном на котором этот робот-то страннейшая весчь-робот работает штатно а панель зависла с одними и теми же данными на всех графиках. Ну как так то??
Vladimir Karputov
Модератор
181792
Vladimir Karputov  
fantomas56:

панелька простая - рисует прямоугольник с определенными данными

в параметрах:

Так вот если ставить робота с этим добром хоть на 10 графиков-все в поряде-все данные обновляются, всё работает корректно, если запускать 10 графиков скриптом с шаблоном на котором этот робот-то страннейшая весчь-робот работает штатно а панель зависла с одними и теми же данными на всех графиках. Ну как так то??

Убедительная просьба, самостоятельно правильно вставлять код в сообщения: Правильно вставляем код на форуме

fxsaber
16748
fxsaber  
fantomas56:

панелька простая - рисует прямоугольник с определенными данными

в параметрах:

Так вот если ставить робота с этим добром хоть на 10 графиков-все в поряде-все данные обновляются, всё работает корректно, если запускать 10 графиков скриптом с шаблоном на котором этот робот-то страннейшая весчь-робот работает штатно а панель зависла с одними и теми же данными на всех графиках. Ну как так то??

Строка в Canvas.mqh, вроде, исключает одинаковых имен ресурсам

      m_rcname="::"+name+(string)(GetTickCount()+MathRand());

Надо смотреть tpl-файл.

fxsaber
16748
fxsaber  
fxsaber:

Надо смотреть tpl-файл.

Вот эта строка в tpl-файле ответственна за проблему

bmpfile_on=

Можете стереть ее. Тогда все должно работать. А так, похоже, Canvas.mqh не закладывался на такую ситуацию, поэтому обработать корректно не может.

fantomas56
120
fantomas56  
fxsaber:

Вот эта строка в 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 веке будет выглядеть...

fxsaber
16748
fxsaber  
fantomas56:

Неужели придется под каждую валюту создавать свой шаблон со своей ОТДЕЛЬНОЙ копией робота и потом всё это хозяйство запихивать в скрипт?

Нет, создать tpl один раз. Затем удалить все, что между <object> и </object>.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий