Обсуждение статьи "Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)" - страница 3

 
Учитывая то, что в mql4/5 отсутствует возможность многопоточной организации выполнения программы, делать сервер на mql4/5 - это как смотреть ламповый телевизор (вроде и работает, но ощущения не те.  Поэтому лучше написать отдельный сервер и уже через него гонять данные между mql программами.
 
Здравствуйте, это все еще рабочий продукт? Если нет, то можно ли его обновить, чтобы он работал под последней сборкой MT5? Сейчас он выдает ошибку 'Access Violation'.
 

Также я столкнулся с ошибками нарушения доступа при вызове методов writeTick, readTick... и так далее. Исправленный файл CNamedPipes прилагается.

Я также добавил метод WriteDouble в классCNamedPipe :

#import "kernel32.dll"
...
int WriteFile(ulong fileHandle,double &var,int bytes,int &numOfBytes,ulong overlapped);
...
#import

...

bool CNamedPipe::WriteDouble(double data)
  {
   int data_size = sizeof(data);
//--- проверка параметров
   if(!data || data_size<1) return(false);

//--- отправить данные
   int written;
   if(!WriteFile(hPipe,data,data_size,written,NULL) || written!=data_size)
      return(false);
//--- ok
   return(true);
  }


Примечание: Для чтения/записи на стороне клиента (например, из другого терминала Metatrader) я просто использовал стандартную библиотеку MQL5 FilePipe. Примеры их использования можно скачать здесь:


https://www.mql5.com/ru/articles/503

Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
  • www.mql5.com
Many developers face the same problem - how to get to the trading terminal sandbox without using unsafe DLLs. One of the easiest and safest method is to use standard Named Pipes that work as normal file operations. They allow you to organize interprocessor client-server communication between programs. Take a look at practical examples in C++ and MQL5 that include server, client, data exchange between them and performance benchmark.
Файлы:
 
фантастическая работа
 
It's been a while since there was an update here... I'm seeing "Access Violation" error when I attach the indicator to the chart. Guess there's no way to make this work.