Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?
Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.
В принципе попробовал через общие файлы, вроде пашет, так как обмен нечастый. Но опять же, мьютекс не поставить, придется файл открывать-закрывать, а остальным терминалам в это время ждать. Печалько.. Для себя и своих клиентов сделал, конечно, через MMF, а для маркета придется фичу выкинуть.
Или есть еще пути?
Правильно поняли - не работает.
Между терминалами, если штатными средствами, без использования DLL и сторонних программ - только файлы.
Если внутри терминала между программами - то есть ещё варианты, помимо файлов (в зависимости от объема передаваемой инфы). Я уже говорил, немного в другой теме, что у многих трудности из-за этого возникают...
Правильно поняли - не работает.
Между терминалами, если штатными средствами, без использования DLL и сторонних программ - только файлы.
Если внутри терминала между программами - то есть ещё варианты, помимо файлов (в зависимости от объема передаваемой инфы). Я уже говорил, немного в другой теме, что у многих трудности из-за этого возникают...
Мне надо именнно между несколькими терминалами, значит, общие файлы. А заодно уж, внутри терминала между советниками, кроме глобальных переменных, какие пути еще есть? Тему прочитал, но там про обмен советника с индикатором.
Там Komposter предлагал попробовать через параметры функции EventChartCustom() - 3 переменных за раз можно передать. По скорости передачи нечего сказать не могу - не проверял.
В той теме организована передача из советника в индикатор, но тем же образом можно заставить обмениваться и экспертов на разных графиках. Я в код-базу код отправил на проверку - как появится ссылку в эту тему положу.
Там Komposter предлагал попробовать через параметры функции EventChartCustom() - 3 переменных за раз можно передать. По скорости передачи нечего сказать не могу - не проверял.
В той теме организована передача из советника в индикатор, но тем же образом можно заставить обмениваться и экспертов на разных графиках. Я в код-базу код отправил на проверку - как появится ссылку в эту тему положу.
Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?
Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.
В принципе попробовал через общие файлы, вроде пашет, так как обмен нечастый. Но опять же, мьютекс не поставить, придется файл открывать-закрывать, а остальным терминалам в это время ждать. Печалько.. Для себя и своих клиентов сделал, конечно, через MMF, а для маркета придется фичу выкинуть.
Или есть еще пути?
если нужно могу скинуть класс по работе в обе стороны
Разве этот метод не создает канал, если его нет?
CFilePipe::Open(const string file_name,const int open_flags)
Эти статьи точно видели?
Хм, хотя в статьях тоже используются DLL ... если МТ не может создавать канал, то пайпы в МТ бессмысленны и беспощадны :)
Хм, хотя в статьях тоже используются DLL ... если МТ не может создавать канал, то пайпы в МТ бессмысленны и беспощадны :)
Ждем штатную поддержку SQL. Передача инфы через таблицу будет большим шагом вперед.
Пока можно предложит передачу через механизм кастомных событий ну и через глобальные переменные в некоторых случаях.
При использовании CFilePipe есть ли способ узнать, что сервер отключился?
Проверяю при запуске клиента на MQL - пока сервер не запущен Open (FileOpen) возвращает INVALID_HANDLE. Запускаю сервер - получаю корректный хендл и дальше работаю с ним.
Но если сервер остановить, то клиент на MQL ничего не замечает. Пробовал функции SIze (FileSize), IsEnding (FileIsEnding), но они возвращают корректные значения и ошибки (GetLastError) не возникает.
Как можно обнаружить отключение сервера?
Или только по прекращению трансляции "сердцебиения" от сервера?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?
Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.
В принципе попробовал через общие файлы, вроде пашет, так как обмен нечастый. Но опять же, мьютекс не поставить, придется файл открывать-закрывать, а остальным терминалам в это время ждать. Печалько.. Для себя и своих клиентов сделал, конечно, через MMF, а для маркета придется фичу выкинуть.
Или есть еще пути?