все равно что то не так, в теории этот код должен работать
C#
MQL5
получаю ошибки компиляции, что не возможно конвертировать параметр t1
тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы. Измените имя типа в шарпе и работайте только с этим типом или скопируйте возвращенные значения в тип Mql
тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы. Измените имя типа в шарпе и работайте только с этим типом или скопируйте возвращенные значения в тип Mql
не проверял (ПК сетевым висящим городом занят!!!),
но думаю будет работать как Вы пишете
тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных
на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания в C# по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится
не проверял (ПК сетевым висящим городом занят!!!),
но думаю будет работать как Вы пишете
тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных
на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания в C# по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится
я привел пример с простейшей структурой с двумя даблами. Выравнивать нечего. Для более сложной структуры возможно понадобится выравнивание. Это надо проверять.
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов. Объявление структуры Имя структуры нельзя использовать в качестве идентификатора (имени переменной или функции). Следует иметь ввиду, что в MQL5 элементы структуры следуют непосредственно друг...
Федор, осталось осилить последний контрольный пример: получение структуры тика из шарпа в mql. Подумайте как это реализовать, все примеру тут есть, Володя показал как получать данные в виде структуры из шарпа.
Если необходимо передавать большой объем разнородной информации то в этом случае лучше поступать так же как работает веб-сокет: упаковывать на стороне шарпа информацию в json, кодировать в строку и возвращать в виде string, а на стороне mql делать обратное преобразование. Это работает очень быстро, проверено. :)
Но лучше обходиться штатными методами, например теми же структурами, по возможности. :)
нет, мне нужны были структуры, структуры это практично, спс, в целом сформировалось у меня видение, что и как работает сейчас в C# + MQL5
Vladimir Suslov:
я привел пример с простейшей структурой с двумя даблами. Выравнивать нечего. Для более сложной структуры возможно понадобится выравнивание. Это надо проверять.
немного вклинюсь, благо что все действующие лица наверное устали от спектакля
а что происходит с расходом памяти/ЦП, особенно при одновременном запуске пары таких советников ?
они там вообще не пересрутся при одновременном запуске из одного процесса ??
на мой скромный взгляд, недоделанный (пока ещё) рецепт - брать Socket MQL и в нём по минимуму делать http+websocket лучше. По крайней мере это будет работать на VPS метаквотез. Конечно сие есть закат солнца вручную, но посмотрите статьи - таким образом даже к MySQL обращаться обращаются
MQL4 не умеет вызывать управляемый код, или писать обертку на С++ и из нее вызывать .Net или статья выше, я в прошлом году проверял материал статьи - все работает, НО работы очень много - много "подводных камней", если ради интереса - то не начинайте, времени очень много нужно, чтобы нагуглить материал при возникающих проблемах
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
все равно что то не так, в теории этот код должен работать
C#
MQL5
получаю ошибки компиляции, что не возможно конвертировать параметр t1
тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы.
Измените имя типа в шарпе и работайте только с этим типом
или скопируйте возвращенные значения в тип Mql
тип MqlTick, определенный в C# и тип MqlTick, определенный в MQL - это разные типы.
Измените имя типа в шарпе и работайте только с этим типом
или скопируйте возвращенные значения в тип Mql
не проверял (ПК сетевым висящим городом занят!!!),
но думаю будет работать как Вы пишете
тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных
на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания в C# по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится
не проверял (ПК сетевым висящим городом занят!!!),
Сетевой город видать везде умер. У нас в Волгограде тоже висит. Чудо сайт )))
не проверял (ПК сетевым висящим городом занят!!!),
но думаю будет работать как Вы пишете
тут в целом нет нормальной документации по обмену MQL-C# , в том же моем примере используется выравнивание полей структуры, в Вашем поля одного размера, а если будут другие типы, то что будет при обмене данными? - подозреваю, что в лучшем случае рантайм ошибка, в худшем потеря данных
на Хабре хорошая статья есть про работу со структурами в C#, точно помню, что выравнивания в C# по умолчанию, а в MQL наоборот - позже найду статью когда комп освободится
я привел пример с простейшей структурой с двумя даблами.
Выравнивать нечего.
Для более сложной структуры возможно понадобится выравнивание.
Это надо проверять.
ps сеть в порядке)
Федор, осталось осилить последний контрольный пример: получение структуры тика из шарпа в mql. Подумайте как это реализовать, все примеру тут есть, Володя показал как получать данные в виде структуры из шарпа.
Жду от тебя конечный результат.
сделал. Я вам сообщение отправил через чат
Если необходимо передавать большой объем разнородной информации то в этом случае лучше поступать так же как работает веб-сокет: упаковывать на стороне шарпа информацию в json, кодировать в строку и возвращать в виде string, а на стороне mql делать обратное преобразование. Это работает очень быстро, проверено. :)
Но лучше обходиться штатными методами, например теми же структурами, по возможности. :)
нет, мне нужны были структуры, структуры это практично, спс, в целом сформировалось у меня видение, что и как работает сейчас в C# + MQL5
я привел пример с простейшей структурой с двумя даблами.
Выравнивать нечего.
Для более сложной структуры возможно понадобится выравнивание.
Это надо проверять.
ps сеть в порядке)
нашел статью про структуры в C# https://habr.com/ru/post/114953/
в целом теперь достаточно материала для работы, спс
немного вклинюсь, благо что все действующие лица наверное устали от спектакля
а что происходит с расходом памяти/ЦП, особенно при одновременном запуске пары таких советников ?
они там вообще не пересрутся при одновременном запуске из одного процесса ??
на мой скромный взгляд, недоделанный (пока ещё) рецепт - брать Socket MQL и в нём по минимуму делать http+websocket лучше. По крайней мере это будет работать на VPS метаквотез. Конечно сие есть закат солнца вручную, но посмотрите статьи - таким образом даже к MySQL обращаться обращаются
Сейчас сделаю. Как думаете? В МТ4 будет работать?
только через способ из статьи https://www.mql5.com/ru/articles/249
MQL4 не умеет вызывать управляемый код, или писать обертку на С++ и из нее вызывать .Net или статья выше, я в прошлом году проверял материал статьи - все работает, НО работы очень много - много "подводных камней", если ради интереса - то не начинайте, времени очень много нужно, чтобы нагуглить материал при возникающих проблемах
немного вклинюсь, благо что все действующие лица наверное устали от спектакля
Можно арендовать нормальный VDS на Windows и запускать с DLL, можно несколько терминалов запустить одновременно.