¿Cómo es el Websocket? - página 13

 
Igor Makanu:

Aún así algo está mal, en teoría este código debería funcionar.

C#

MQL5

Obtengo errores de compilación, que el parámetro t1 no se puede convertir

El tipo MqlTick definido en C# y el tipo MqlTick definido en MQL son tipos diferentes.
Cambiar el nombre del tipo en Sharp y trabajar sólo con este tipo
O copiar los valores devueltos en el tipo Mql

 
Vladimir Suslov:

El tipo MqlTick definido en C# y el tipo MqlTick definido en MQL son tipos diferentes.
Cambiar el nombre del tipo en Sharp y trabajar sólo con este tipo
o copiar los valores devueltos al tipo Mql

no lo he probado (¡¡¡el PC está ocupado con la red colgando de la ciudad!!!),

pero creo que funcionará tal y como lo escribes

no existe una documentación adecuada de intercambio MQL-C# en general, mi ejemplo utiliza alineación de campos de estructura, en el tuyo los campos son del mismo tamaño, y si hay otros tipos, ¿qué pasará al intercambiar datos? - Sospecho que, en el mejor de los casos, será un error de tiempo, y en el peor, la pérdida de datos.

Hay un buen artículo sobre el manejo de estructuras en C# en Habra, recuerdo, que en C# es la alineación por defecto, pero en MQL es lo contrario - lo encontraré más tarde, cuando esté libre.

 
Igor Makanu:

no lo he comprobado (¡¡¡Red de PCs colgada de la ciudad ocupada!!!),

La ciudad de la red parece estar muerta en todas partes. El nuestro, en Volgogrado, también está rondando. Sitio milagroso )))

 
Igor Makanu:

no lo he probado (¡¡el PC de la ciudad en red está ocupado!!),

Pero creo que funcionará tal y como lo escribes

no existe una documentación adecuada de intercambio MQL-C# en general, mi ejemplo utiliza la alineación de campos de estructura, en tu ejemplo los campos son del mismo tamaño, y si hay otros tipos, ¿qué pasará al intercambiar datos? - Sospecho que, en el mejor de los casos, será un error de tiempo, y en el peor, la pérdida de datos.

hay un buen artículo en Habra sobre el trabajo con estructuras en C#, recuerdo que en C# la alineación es por defecto, pero en MQL es viceversa - lo encontraré más tarde, cuando tenga suficiente espacio en mi PC

He puesto un ejemplo con una estructura sencilla con dos doblajes.
No hay nada que alinear.
Una estructura más compleja puede necesitar alineación.
Hay que comprobarlo.

ps la red está bien)

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

Fedor, sólo queda un último caso de prueba: obtener la estructura de ticks de sharp a mql. Piensa en cómo implementarlo, todos los ejemplos están aquí, Volodya mostró cómo obtener datos como estructura desde sharp.

Estoy esperando el resultado final.

Lo haré ahora. ¿Qué te parece? ¿Funcionará en MT4?
 

Lo hice. Te he enviado un mensaje por el chat


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

Si necesitas transferir una gran cantidad de información heterogénea entonces es mejor hacer lo mismo que funciona el web socket: empaquetar la información en el lado sharp en json, codificar en cadena y devolverla como cadena, y hacer la conversión inversa en el lado mql. Funciona muy rápido, lo he probado. :)

Pero es mejor utilizar métodos regulares, por ejemplo, las mismas estructuras, si es posible. :)

No, necesito estructuras, las estructuras son prácticas, gracias. Ahora tengo una visión clara de cómo funcionan las cosas en C# + MQL5.


Vladimir Suslov:

He puesto un ejemplo con una estructura sencilla con dos doblajes.
No hay nada que alinear.
Para una estructura más compleja puede ser necesaria la alineación.
Hay que comprobarlo.

ps la red está bien)

He encontrado un artículo sobre estructuras en C#https://habr.com/ru/post/114953/

en general, hay suficiente material para trabajar, gracias

 

Voy a cortar un poco, ya que probablemente todos los actores estén cansados del espectáculo

¿Qué pasa con el consumo de memoria/puente, especialmente cuando se ejecutan un par de estos EAs al mismo tiempo?

no se sobrecargan si se inician desde el mismo proceso?

En mi humilde opinión, una receta inacabada (hasta ahora) es tomar Socket MQL y hacer que http+websocket en él sea el mínimo. Al menos funcionará en VPS metaquotes. Por supuesto, esto es una puesta de sol a mano, pero mira los artículos - por lo que incluso MySQL se aborda de esta manera

 
Fedor Arkhipov:
Lo haré ahora. ¿Qué te parece? ¿Funcionará en MT4?

sólo a través del método del artículohttps://www.mql5.com/ru/articles/249

MQL4 no sabe cómo llamar a código administrado, o escribir una envoltura en C ++ y utilizarlo para llamar a .Net o el artículo anterior, he comprobado el artículo el año pasado - todo funciona, pero hay un montón de trabajo - muchas trampas, si usted está interesado no empiece, se necesita un montón de tiempo para googlear material cuando surgen problemas

 
Maxim Kuznetsov:

Voy a interrumpir un poco, con la buena razón de que todos los actores están probablemente cansados de la obra


Puedes alquilar un VDS normal de Windows y ejecutarlo desde una DLL, puedes ejecutar varios terminales al mismo tiempo.

Razón de la queja: