Билет в будущее - страница 3

 

Я предлагаю не делать эксперт, этих советников и так как грязи.

А делать порт к MQL. Общедоступный.

См. мой пред пост. - https://www.mql5.com/ru/forum/93373/page2#comment_2717366 

Билет в будущее
Билет в будущее
  • отзывов: 2
  • www.mql5.com
Топик удалён...
 
Yuriy Asaulenko:

Я предлагаю не делать эксперт, этих советников и так как грязи.

А делать порт к MQL. Общедоступный.

См. мой пред пост. - https://www.mql5.com/ru/forum/93373/page2#comment_2717366 

У желающего "взять бразды на себя в этой ветке" даже профиль удалили, а если кто против MQL попрёт, страшно дело будет ))

Форум то по MQL, а не против него, как ни странно.

 
Sergey Basov:

У желающего "взять бразды на себя в этой ветке" даже профиль удалили, а если кто против MQL попрёт, страшно дело будет ))

Форум то по MQL, а не против него, как ни странно.

А где Вы увидели против? Мы ЗА и только хотим расширить функциональные возможности. Для всех.

Перспективы оч интересные, даже без выхода за пределы МТ. Если вдуматься, то один индикатор для другого или для советника такие-же внешние объекты.

 
Sergey Gridnev:

 

Во дела! 

Не успел как следует взять "бразды правления", как уже профиль удалён.

Не потянул руководства. Или испужался)
 

Ладно, начну в одиночестве, м.б. кто подтянется в процессе. Не подтянется - оставим это занятие.

Итак, задача: организовать обмен произвольными данными между объектами, как внутри МТ - экспертами, индикаторами, м.б. скриптами расположенными на разных графиках, так и подключение  внешнего ПО. Протоколы обмена должны быть идентичны.

Обмен будет осуществляться по шине данных. Каждый объект на  шине имеет адрес, и обращаются друг к другу по адресу.

Пока базовый клаас подключения 

class cChannel //баз класс канала связи
{
protected:
int ch; //идентификатор канала связи

public:
cChannel(int channel)
{
ch=channel;
}
};

class cEX //Баз каласс обмена данными.
{
protected:
int adr; //адрес устройства
int ch; //тип канала связи
cChannel *cCh;

//public:
void cEx(int adress, int channel,cChannel *cch)
{
adr=adress;
ch=channel;
//cCh= new cChannel(ch);
cCh=cch;
};
protected:
virtual void WriteDate(int adress,int no); //пишет данные в шину данных
virtual void ReadDate(int adress,int no); //читает данные из шины
};


 void data - это не ошибка. Пока непонятно, как запихнуть сюда произвольные данные.

Канал обмена м.б. выбран  любым, при неизменном UI.

PS 22:31 обновлен базовый класс. 

11.08.2016 2:51  Добавлен баз класс канала связи cChannel (Пока пустой) и его инициализация в баз классе CEx

 
Yuriy Asaulenko:

Ладно, начну в одиночестве, м.б. кто подтянется в процессе. Не подтянется - оставим это занятие.

Итак, задача: организовать обмен произвольными данными между объектами, как внутри МТ - экспертами, индикаторами, м.б. скриптами расположенными на разных графиках, так и подключение  внешнего ПО. Протоколы обмена должны быть идентичны.

Обмен будет осуществляться по шине данных. Каждый объект на  шине имеет адрес, и обращаются друг к другу по адресу.

Пока базовый клаас подключения 

 void data - это не ошибка. Пока непонятно, как запихнуть сюда произвольные данные.

Канал обмена м.б. выбран  любым, при неизменном UI.

PS 22:31 обновлен базовый класс. 

Как минимум, надо это закинуть в Storage и расшарить доступ для членов команды, если такие найдутся. Это удобно, я так работал с группой. Я в жисть не стал бы копипастить проект туда-сюда между форумом и редактором.

Хотя, у меня все давно реализовано. Внутри одного терминала обмен через файлы, внутри одного компа через Shared Memory, внутри одной планеты Земля через WCF.

Дальше одной планеты пока не замахивался )  

---- ЗЫ: Сегодня Ринат подкинул мысль в какой-то ветке, что внутри компа можно обмениваться через графические ресурсы, вот тут я могу поучаствовать, это мне интересно попробовать. Создавайте проект в Storage, именно проект в Projects.

 
Alexey Volchanskiy:

Как минимум, надо это закинуть в Storage и расшарить доступ для членов команды, если такие найдутся. Это удобно, я так работал с группой. Я в жисть не стал бы копипастить проект туда-сюда между форумом и редактором.

Хотя, у меня все давно реализовано. Внутри одного терминала обмен через файлы, внутри одного компа через Shared Memory, внутри одной планеты Земля через WCF.

Дальше одной планеты пока не замахивался )  

---- ЗЫ: Сегодня Ринат подкинул мысль в какой-то ветке, что внутри компа можно обмениваться через графические ресурсы, вот тут я могу поучаствовать, это мне интересно попробовать. 

Ну, пока это еще и не проект.)

Через файлы уже реализовано. Впрочем, Вы читали. 

Про Shared Memory  не знаю, не приходилось. Что это, в 3-х словах? Погуглю обязательно, позднее.

Пост Рената про графические ресурсы читал, тоже заинтересовало, но тоже ниче не знаю.

Вообще, хотелось бы унифицировать обмен, чтобы каждый раз не изобретать. Много всего набралось, и зоопарк решений.

 
Yuriy Asaulenko:

Ну, пока это еще и не проект.)

Через файлы уже реализовано. Впрочем Вы читали. 

Про Shared Memory  не знаю, не приходилось. Что это, в 3-х словах? Погуглю обязательно, позднее.

Пост Рената про графические ресурсы читал, тоже заинтересовало, но тоже ниче не знаю.

Вообще, хотелось бы унифицировать обмен, чтобы каждый раз не изобретать. Много всего набралось, и зоопарк решений.

Ну так надо сделать абстрактный базовый класс с виртуальными функциями, в принципе, вы в этом направлении и начали. А потом от него рождать потомков для каждого способа связи. 

Про Shared Memory тут есть пара статей и на форуме куча обсуждений было. Надо поискать по синонимам, еще называют  Memory Mapping, Memory Mapping File, MMF.

Вот несколько ссылок в кодобазе на разные решения

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

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

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

File Mapping без DLL
File Mapping без DLL
  • голосов: 26
  • 2012.01.16
  • o_O
  • www.mql5.com
Класс MQL5, который работает напрямую с маппингом, без использования самописной DLL.
 
Alexey Volchanskiy:

Ну так надо сделать абстрактный базовый класс с виртуальными функциями, в принципе, вы в этом направлении и начали. А потом от него рождать потомков для каждого способа связи. 

Cпасибо за ссылки.

Не все так просто. Связные классы будут сбоку - у них своя иерархия. А от базового будут наследовать интерфейсные. Разделение труда.) Иначе все в кучу валить придется.

 
Alexey Volchanskiy:

Про Shared Memory тут есть пара статей и на форуме куча обсуждений было. Надо поискать по синонимам, еще называют  Memory Mapping, Memory Mapping File, MMF.

Вот несколько ссылок в кодобазе на разные решения

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

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

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

Еще раз Спасибо за ифу. Оч интересно. Не знал о такой возможности (точнее знал только в принципе, что есть что-то в этом роде), хотя и размышлял об этом -Думал в направлении malloc, сalloc. Но под виндами как-то и ни к чему было. Хотя, посмотрим, м.б. к ним и вернусь.

Оказывается и в NET (С# ) это все есть неск в другом виде. Не ожидал, что в этой песочнице...))

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