Каким вы видите Metatrader X в 2030 году? - страница 2

 
Igor Makanu:
...

 появится способ обмена данными между советниками запущенными на разных чартах

Я это уже реализовал и это работает. Любой, кто понимает что такое множественное наследование должен мочь это сделать. Иначе, грош цена его знаниям.))

 
Igor Makanu:

Любая штатная функция, которая позволит отправить в глобальные переменные терминала массив байт (хотя лучше массив int, чтобы вопросов меньше было как преобразовывать) и соответственно обратная функция которая позволит этот массив прочитать в другом эксперте

Просто глобальных переменных терминала не достаточно для обмена данными - есть большое поле имени переменной и маленькое для данных, в виде одного double , нужно наоборот ;)

ЗЫ: в сети много примеров по разбору графов решений, в основном за счет интерфейсов добиваются гибкой структуры кода, интерфейсы везде есть, в MQL нет ((

Тут я полностью согласен. Глобальные переменные терминала убоги. Только сохранять не массивы, а как в WCF, экземпляры классов. Я в свое время был просто потрясен этой возможностью. Вместо того, чтобы пасить поток байтов по сети, я мог без лишних телодвижений послать экземпляр класса, а всю чернушку за меня делал .NET, причем быстро, если слать в бинаре.

Хмм, пока давил клаву, возникла идея сделать такую либу...

---

Вот насчет графов решений и интерфейсов просто не сталкивался, мир программирования необъятен ))

 
Реter Konow:

Я это уже реализовал и это работает. Любой, кто понимает что такое множественное наследование должен мочь это сделать. Иначе, грош цена его знаниям.))

А без дешевых понтов и по делу?

 
Реter Konow:

Я это уже реализовал и это работает.

и?

в КБ есть готовые решения уже давно, Вы тоже добавили свое решение? или так...мимо проходили?

 
Igor Makanu:

и?

в КБ есть готовые решения уже давно, Вы тоже добавили свое решение? или так...мимо проходили?

судя по упоминанию множественного наследования, пустыха...

 
Alexey Volchanskiy:

а как в WCF, экземпляры классов

нельзя сложное решение, массовости не будет, массив прочитать и записать любой сможет, если что сложнее, просто не будет востребовано, как выше писал в КБ прилично решений по обмену данными, но имхо, GlobalArrayWrite(string name, int out[]) и GlobalArrayRead(string name , int &in[]) - и все, больше не нужно для пользователя

 
Alexey Volchanskiy:

А без понтов и по делу?

Ресурсы. Объявляете юнион с массивами нескольких типов в обоих программах-советниках (или индикаторах, или советнике и индикаторе), которые хотите разместить на разных чартах. В каждой программе записываете адрес противоположной стороны в string-переменной (папка, подпапка, имя программы). Используете две функции для общения - первая функция - чтение сообщения, вторая - запись сообщения. Функции вызываются в обоих программах на частоте таймера.

Функционал каждого из программ должен записывать все данные которые нужно передать в string-переменную. Потом, в конце функции таймера будет вызвана функция передачи сообщения, которая сохранит собранную строку в ресурсе. Другая программа на другом чарте, на следующем периоде таймера вызовет функцию чтения ресурса находящегося по адресу другой программы и распакует сообщение. Далее, она может точно также составить свое сообщение первой программе и также передать, просто записав нужные данные в свой ресурс.

 
Alexey Volchanskiy:

Что-то тут задумался, я на форе около 13 лет, начал с МТ4 в 2006 году. Вляпался в эту тему только потому, что тогдашняя подруга попросила помочь разобраться с терминалом, а я радостно обнаружил некий Си-подобный язык, MQL4 и залип. Смешно вспоминать, работал на включенном английском языке  в терминале и был уверен, что это западная разработка. Когда узнал, что это от ребят из Казани, испытал когнитивный диссонанс ))

Итак, прошло 13 лет, я могу обозначить несколько этапов в развитии терминалов МТ*.

1. Начало разработки МТ5, вроде 2009 год. Я тогда пасся на форуме альпы, до сих пор помню, как Ренат совершал туда набеги со своей пропагандой, а я возражал, что схема неттинга коммерчески на форе мертва.

2. Очень важный для меня этап, начало 2013, выпуск нового МТ4 билд > 600. Блин, я был в восторге, появились структуры, даже классы, новые нормальные дефайны, как в С++. Наконец-то убрали баги, перестал падать редактор при копи-пасте и прочие баги тоже пофиксили. Ведь до этого я все стратегии писал на C# через мост на С++, а тут начал все больше переносить код на MQL4, так как появилась возможность не шаманить. а нормально работать.

3. Вот тут год не могу вспомнить, наверное 2016? Поправьте плз. Наконец-то выпустили хедж-версию МТ5, лично для меня появился стимул переползать на МТ5. 

4. Тоже не помню год, около 2018? Единый компилятор и возможность писать один мультиплатформенный проект в МТ5. С тех пор так и пишу для себя. Когда предлагаю эту возможность Заказчикам, сразу соглашаются 90%, абсолютно все про это даже не знают. Для мультиплатформенников рекомендую либу MT4Orders от fxsaber, найдете поиском в кодобазе.

5. Тут сборная солянка, так как МТ5 постоянно развивается, это очень радует.

Я примерно обрисовал развитие платформы за 13 лет, а что будет еще через 10, пофантазируем? Глядишь, какие-то фантазии отразятся в будущих разработках )) 

Это ещё что... Меня однажды сразу 10 подруг умоляли разобраться с терминалом, хором, на коленях... А я им ответил - как вам не стыдно, я же несвободный человек, у меня уже под опекой 50 подруг, куда ж я вас то всех дену, у меня только трёшка в питере, да и времени у меня совсем не хватает - день и ночь мочу чеченов...

А МТ есть и будет есть.

 
Igor Makanu:

и?

в КБ есть готовые решения уже давно, Вы тоже добавили свое решение? или так...мимо проходили?

А зачем тогда Вы ждете этого в 30-ых годах? Если это уже есть...
 
Igor Makanu:

нельзя сложное решение, массовости не будет, массив прочитать и записать любой сможет, если что сложнее, просто не будет востребовано, как выше писал в КБ прилично решений по обмену данными, но имхо, GlobalArrayWrite(string name, int out[]) и GlobalArrayRead(string name , int &in[]) - и все, больше не нужно для пользователя

Слушай, да даже в операциях с файлами давно уже есть 

uint  FileWriteStruct(
   int          file_handle,       // handle файла
   const void&  struct_object,     // ссылка на объект
   int          size=-1            // размер для записи в байтах
   );


Гораздо удобнее читать-писать структуры или объекты классов, чем парсить поток простых типов. Может, я с возрастом стал ленив? Да, я предпочитаю делать больше, стуча по клаве меньше ))

Причина обращения: