Websocket как сделать? - страница 13

 
Igor Makanu:

все равно что то не так, в теории этот код должен работать

C#

MQL5

получаю ошибки компиляции, что не возможно конвертировать параметр t1

тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы.
Измените имя типа в шарпе и работайте только с этим типом
или скопируйте возвращенные значения в тип Mql

 
Vladimir Suslov:

тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы.
Измените имя типа в шарпе и работайте только с этим типом
или скопируйте возвращенные значения в тип Mql

не проверял (ПК сетевым висящим городом занят!!!),

но думаю будет работать как Вы пишете

тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных

на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания  в C#  по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится

 
Igor Makanu:

не проверял (ПК сетевым висящим городом занят!!!),

Сетевой город видать везде умер. У нас в Волгограде тоже висит. Чудо сайт )))

 
Igor Makanu:

не проверял (ПК сетевым висящим городом занят!!!),

но думаю будет работать как Вы пишете

тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных

на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания  в C#  по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится

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

ps сеть в порядке)

Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
  • www.mql5.com
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов. Объявление структуры Имя структуры нельзя использовать в качестве идентификатора (имени переменной или функции). Следует иметь ввиду, что в MQL5 элементы структуры следуют непосредственно друг...
 
Алексей Барбашин:

Федор, осталось осилить последний контрольный пример: получение структуры тика из шарпа в mql. Подумайте как это реализовать, все примеру тут есть, Володя показал как получать данные в виде структуры из шарпа.

Жду от тебя конечный результат.

Сейчас сделаю. Как думаете? В МТ4 будет работать?
 

сделал. Я вам сообщение отправил через чат


 
Алексей Барбашин:

Если необходимо передавать большой объем разнородной информации то в этом случае лучше поступать так же как работает веб-сокет: упаковывать на стороне шарпа информацию в json, кодировать в строку и возвращать в виде string, а на стороне mql делать обратное преобразование. Это работает очень быстро, проверено. :)

Но лучше обходиться штатными методами, например теми же структурами, по возможности. :)

нет, мне нужны были структуры, структуры это практично, спс, в целом сформировалось у меня видение, что и как работает сейчас в C# + MQL5


Vladimir Suslov:

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

ps сеть в порядке)

нашел статью про структуры в C# https://habr.com/ru/post/114953/

в целом теперь достаточно материала для работы, спс

 

немного вклинюсь, благо что все действующие лица наверное устали от спектакля

а что происходит с расходом памяти/ЦП, особенно при одновременном запуске пары таких советников ?

они там вообще не пересрутся при одновременном запуске из одного процесса ??

на мой скромный взгляд, недоделанный (пока ещё) рецепт - брать Socket MQL и в нём по минимуму делать http+websocket лучше. По крайней мере это будет работать на VPS метаквотез. Конечно сие есть закат солнца вручную, но посмотрите статьи - таким образом даже к MySQL обращаться обращаются

 
Fedor Arkhipov:
Сейчас сделаю. Как думаете? В МТ4 будет работать?

только через способ из статьи https://www.mql5.com/ru/articles/249

MQL4 не умеет вызывать управляемый код, или писать обертку на С++ и из нее вызывать .Net или статья выше, я в прошлом году проверял материал статьи - все работает, НО работы очень много - много "подводных камней", если ради интереса - то не начинайте, времени очень много нужно, чтобы нагуглить материал при возникающих проблемах

 
Maxim Kuznetsov:

немного вклинюсь, благо что все действующие лица наверное устали от спектакля


Можно арендовать нормальный VDS на Windows и запускать с DLL, можно несколько терминалов запустить одновременно.