Возможно ли создание графических объектов в МТ4 с помощью dll? - страница 3

 
Seric29:

Это уже интересно. Будет что изучить.

В помощь в изучении
https://www.mql5.com/ru/forum/227736
Canvas - это круто!
Canvas - это круто!
  • 2018.02.16
  • www.mql5.com
Поставил себе задачу: коротким кодом эффектно продемонстрировать возможности пользовательской графики через класс CCanvas...
 

Я так немножко посмотрел эту тему с Канвасом, потому что сразу всё не переваришь а с графикой работать конечно марудно. Получается создаёшь нужное количество точек в с++, а заполнение пикселей между этими точками происходит автоматически. Там даже какое-то своё окно создаётся(я смотрю есть связь с WinApi 32(язык для создания оконных приложений), класс на нём и основан) . Мне вот не понятно а как библиотека получит доступ к окну МТ4, я смотрел там какой-то путь можно указать. Буду потихоньку разбираться с этим всем, тема конечно сложная. А по ссылке выше клас Canvas который реализован в mql.

 
Seric29:

Я так немножко посмотрел эту тему с Канвасом, потому что сразу всё не переваришь а с графикой работать конечно марудно. Получается создаёшь нужное количество точек в с++, а заполнение пикселей между этими точками происходит автоматически. Там даже какое-то своё окно создаётся(я смотрю есть связь с WinApi 32(язык для создания оконных приложений), класс на нём и основан) . Мне вот не понятно а как библиотека получит доступ к окну МТ4, я смотрел там какой-то путь можно указать. Буду потихоньку разбираться с этим всем, тема конечно сложная. А по ссылке выше клас Canvas который реализован в mql.

Ничего там сложного:

  1. Создать массив пикселей (никто ничего не дорисовывает, заполнить нужно все).
  2. Передать массив советнику/индикатору/скрипту.
  3. Советник отображает массив как есть.
 
Ihor Herasko:

Ничего там сложного:

  1. Создать массив пикселей (никто ничего не дорисовывает, заполнить нужно все).
  2. Передать массив советнику/индикатору/скрипту.
  3. Советник отображает массив как есть.

Понятно. Про массив пикселей уже упоминалось.

Так может и ордер можно открыть из DLL, неужели там что-то такое приславутое что не возможно сделать.

 
Seric29:

Понятно. Про массив пикселей уже упоминалось.

Так может и ордер можно открыть из DLL, неужели там что-то такое приславутое что не возможно сделать.

Зачем напрямую из DLL? Если бы это и было возможно, то получилось бы громоздко. А тут достаточно отправить сообщение окну советника (принять через OnChartEvent) и уже из советника послать торговый приказ. Это довольно-таки простой способ. Не нужно заморачиваться с сетевыми протоколами и прочими прелестями клиент-серверных технологий.

 
Ihor Herasko:

Зачем напрямую из DLL? Если бы это и было возможно, то получилось бы громоздко. А тут достаточно отправить сообщение окну советника (принять через OnChartEvent) и уже из советника послать торговый приказ. Это довольно-таки простой способ. Не нужно заморачиваться с сетевыми протоколами и прочими прелестями клиент-серверных технологий.

Ну оно то так но как ни крути в цепи получается посредник.

 
Geist:
Вам нужно использовать класс CCanvas.
ДЛЛ на C++ можно использовать для повышения производительности расчета заполнения BitMap в MQL4 более чем на порядок. Для этого необходимо передавать в dll-функции по ссылке массив пикселей m_pixels[], заполнять его в dll, а в MQL4 только выполнять функцию Update() класса CCanvas для вывода на экран уже сформированного массива m_pixels

интересная мысль, никогда не задумывался о такой схеме взаимодействия с dll

практической цели пока не вижу, но в принципе, можно таким способом и видеофайлы проигрывать в терминале на канвасе, а в dll декодировать )))

 
Seric29:

Ну оно то так но как ни крути в цепи получается посредник.

Если хочется без посредников, то тогда нужно вообще от МТ отказываться. Есть ДЦ со своим API. Там можно и свой терминал забабахать (их есть у меня).

 
Ihor Herasko:

Если хочется без посредников, то тогда нужно вообще от МТ отказываться. Есть ДЦ со своим API. Там можно и свой терминал забабахать (их есть у меня).

Ну так вот я и думаю об этом. Но я не знаю как наладить обмен данными между серверами. Нужно писать письмо в MetaQoutes но я не знаю позволят ли они позволятся к моей конторе к брокеру используя своё ПО, наверное не позволят.

 
Seric29:

Ну так вот я и думаю об этом. Но я не знаю как наладить обмен данными между серверами. Нужно писать письмо в MetaQoutes но я не знаю позволят ли они позволятся к моей конторе к брокеру используя своё ПО, наверное не позволят.

чего мелочиться-то ? берите протоколы Fix/Fast или Plaza и вперёд, сразу на MOEX, да и куда захотите.

К чему вам посредники ?  :-)