Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел прибыльную стратегию? Поделись ею с миллионами трейдеров в Сигналах!
Alexey Volchanskiy
16622
Alexey Volchanskiy 2015.04.05 13:38 

Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?

Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.

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

Или есть еще пути?

Andrey Miguzov
2103
Andrey Miguzov 2015.04.05 13:51  
VDev:

Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?

Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.

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

Или есть еще пути?

Правильно поняли - не работает.

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

Если внутри терминала между программами - то есть ещё варианты, помимо файлов (в зависимости от объема передаваемой инфы). Я уже говорил, немного в другой теме, что у многих трудности из-за этого  возникают...

Alexey Volchanskiy
16622
Alexey Volchanskiy 2015.04.06 12:14  
MigVRN:

Правильно поняли - не работает.

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

Если внутри терминала между программами - то есть ещё варианты, помимо файлов (в зависимости от объема передаваемой инфы). Я уже говорил, немного в другой теме, что у многих трудности из-за этого  возникают...

Мне надо именнно между несколькими терминалами, значит, общие файлы. А заодно уж, внутри терминала между советниками, кроме глобальных переменных, какие пути еще есть? Тему прочитал, но там про обмен советника с индикатором.
Andrey Miguzov
2103
Andrey Miguzov 2015.04.06 21:34  
VDev:
Мне надо именнно между несколькими терминалами, значит, общие файлы. А заодно уж, внутри терминала между советниками, кроме глобальных переменных, какие пути еще есть? Тему прочитал, но там про обмен советника с индикатором.

Там Komposter предлагал попробовать через параметры функции EventChartCustom() - 3 переменных за раз можно передать. По скорости передачи нечего сказать не могу - не проверял. 

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

Alexey Volchanskiy
16622
Alexey Volchanskiy 2015.04.08 11:02  
MigVRN:

Там Komposter предлагал попробовать через параметры функции EventChartCustom() - 3 переменных за раз можно передать. По скорости передачи нечего сказать не могу - не проверял. 

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

Да, я потом внимательно прочитал переписку - еще один нормальный способ внутри терминала.
Konstantin Karpov
604
Konstantin Karpov 2015.06.07 16:52  
Alexey Volchanskiy:

Только сейчас посмотрел код в стандартной библиотеке, вижу реализацию только клиента в FilePipe.mqh . Открытия канала со стороны сервера с помощью CreateNamedPipe нет.
Я правильно понял, что для обмена инфой между терминалами это штука не работает?

Я имею в виду с соблюдением правил маркета, то есть запретом использовать любые стандартные от Windows, в которых и сидит CreateNamedPipe.

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

Или есть еще пути?

если нужно могу скинуть класс по работе в обе стороны
-Aleks-
6933
-Aleks- 2015.06.07 19:33  
Konstantin Karpov:
если нужно могу скинуть класс по работе в обе стороны
Для четверки есть такой класс?
Andy
564
Andy 2015.06.08 01:32  

Разве этот метод не создает канал, если его нет?

CFilePipe::Open(const string file_name,const int open_flags)

Эти статьи точно видели?

Хм, хотя в статьях тоже используются DLL ... если МТ не может создавать канал, то пайпы в МТ бессмысленны и беспощадны :)

Alexander Bereznyak
21426
Alexander Bereznyak 2015.06.08 09:50  
artemiusgreat:

Хм, хотя в статьях тоже используются DLL ... если МТ не может создавать канал, то пайпы в МТ бессмысленны и беспощадны :)

Согласен, от внешней DLL не избавились. Получился костыль.
Vasiliy Sokolov
21649
Vasiliy Sokolov 2015.06.08 11:53  

Ждем штатную поддержку SQL. Передача инфы через таблицу будет большим шагом вперед.

Пока можно предложит передачу через механизм кастомных событий ну и через глобальные переменные в некоторых случаях.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий