Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1118

 
Artyom Trishkin:

No hay necesidad de adivinar. Hay que pensar y entender qué se hace y para qué. Cuándo hay que escribir algo y cuándo no.

Está pensando que la impresión debe contener una cadena y cualquier valor numérico debe ser convertido en una cadena.
Pero este ejemplo demostró que el compilador se vuelve lento. Y cómo no adivinar cuándo se salta el compilador y cuándo no.

 
Roman:

Parece que la impresión debe ser convertida a cadena, por lo que cualquier valor numérico debe ser convertido a cadena.
Pero este ejemplo demostró que el compilador se vuelve lento. Cómo no adivinar cuándo salta el compilador y cuándo no.

De nuevo - el código aquí - ¿qué no está claro?

ZS. Si se trata de esto:

Print((string)(uint)PeriodSeconds(PERIOD_MN1)*1000)

... No lo he comprobado, sólo lo he vuelto a escribir en el post.

Realiza la conversión funcional a cadena:

Print(string((uint)PeriodSeconds(PERIOD_MN1)*1000));
 

¡Amigos!

Estoy luchando con el problema de conectar una DLL a MQL. Estoy describiendo mi problema:

1. Al principio intenté escribir una biblioteca .dll en C#. He comprobado que MQL4 no se "come" dichas librerías, ya que todos los métodos dentro de la dll están cerrados, si están escritos en C#. Empecé a buscar activamente una solución al problema. He encontrado varias variantes en Internet, como la conexión de la biblioteca "DLL Export", descargada de NuGet. Probado de diferentes maneras, no funcionó. Realmente no quiero tener una solución "frágil" para este problema, por el principio de "funciona hoy y no mañana". Lo probé de esta manera, y en realidad hay un montón de cómo funciona de otra manera:

using System.Runtime.InteropServices;
using RGiesecke.DllExport;

[DllExport("Good", CallingConvention.Cdecl)] // + заменял на просто [DllExport] - не помогает
public static string Good() {

   return "GHBBBGGDDDD !!!!! РУССКИЙ! :) " + 5.ToString();
}


2. Me di cuenta de que lo más probable es que tenga que escribir una biblioteca C++ que funcione de forma estable. Lo conecté desde la primera vez, las consultas de prueba pasaron sin problemas. Pero cuando empecé a intentar devolver un mensaje de texto (a MQL) con un método (de DLL), me encontré con un nuevo problema - obtuve la respuesta"?????‡?-" en MQL. He intentado descifrar el mensaje, pero no ha funcionado. Intenté devolver el valor a través de un parámetro de la función - obtuve "?". He buscado muchas cosas y aún no he encontrado la solución. Esta es la variante por la que me he decantado, pero devuelve signos de interrogación:

extern "C" __declspec(dllexport) char* __stdcall ToString(char* &str)
{
        str = " - 889 - dsa - просто!";
        return "--- Привет! ---";
}


Estoy recibiendo una respuesta en forma de:

La decodificación no ayuda...


Lo que se necesita esencialmente:

1) ¿existe una solución real a este problema mediante C#? Necesito una solución estable y bonita. Las medias tintas, aunque ahora funcionen, pero puedan caer con una nueva construcción, no son una opción.

2) Si no hay una solución en C#, pasa por C++. ¿Cómo enviar correctamente los mensajes en ambas direcciones sin perder calidad? (MQL - DLL - MQL). Necesito la variante que funciona igualmente para MT4 y MT5.

 
Artyom Trishkin:

De nuevo - código aquí - ¿qué no está claro?

No está claro por qué se devuelven constantes de H1 y superiores que no corresponden al periodo como antes de H1

Print("PERIOD_M1=",PERIOD_M1);
Print("PERIOD_M5=",PERIOD_M5);
Print("PERIOD_M30=",PERIOD_M30);
Print("PERIOD_H1=",PERIOD_H1);
2020.04.10 03:47:03.627 VP (EPM20,H4)   PERIOD_M1=1
2020.04.10 03:47:03.627 VP (EPM20,H4)   PERIOD_M5=5
2020.04.10 03:47:03.627 VP (EPM20,H4)   PERIOD_M30=30
2020.04.10 03:47:03.627 VP (EPM20,H4)   PERIOD_H1=16385
2020.04.10 03:47:03.627 VP (EPM20,H4)   PERIOD_H4=16388

Lo mismo devuelve la variable _Period.

 
Roman:

No está claro por qué se devuelven constantes de H1 y superiores que no corresponden al periodo como antes de H1

Lo mismo devuelve la variable _Period.

 
Artyom Trishkin:

Artyom no te asustes ))
Por qué a M30 se muestran exactamente los valores de TF
1
5
30

Y en H1 comienza con 16385
Pues no es lógico que primero se devuelva el valor a los minutos y luego al infierno.
Y no se ajusta a la descripción en la ayuda de _Period como valor de retorno de un marco temporal.

 
Roman:

Artyom no te asustes ))
Por qué a M30 se muestran exactamente los valores de TF
1
5
30

Y en H1 comienza con 16385
Pues no es lógico que primero se devuelva el valor a los minutos y luego al infierno.
Y no se ajusta a la descripción en la ayuda de _Period como valor de retorno de un marco temporal.

Valor del marco temporal. No el número de minutos. No el número de segundos, ni el número de gansos en Baba Nyura, sino el valor del plazo.

Документация по MQL5: Проверка состояния / Period
Документация по MQL5: Проверка состояния / Period
  • www.mql5.com
Проверка состояния / Period - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

El valor del marco temporal. No el número de minutos. No el número de segundos, ni el número de gansos en Baba Nyura, sino el valor del plazo.

¡Esto es lo que estamos hablando, que las constantes deben ser iguales a los valores de los plazos!
Y llevar el sentido lógico y matemático de la correspondencia.
Porque estos valores se utilizan en los cálculos.

M1 = 1
M5 = 5
M30 = 30
H1 = 60
H4 = 240
D1
= 1440

De lo contrario, se pierde el significado de los valores devueltos.
Por lo tanto, en mi opinión, es un error.

 
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
 
Artyom Trishkin:

Me sorprende que tengas la paciencia de repetirlo todo durante tanto tiempo y por la mañana... Aunque ya estás en la mañana después de otra noche de insomnio).

Al menos ponlo en cuarentena durante 24 horas para que lea detenidamente la documentación. Es una pena... Es la primera vez que un as de las variedades del lenguaje C dice semejante disparate. Y esta es la primera vez que se explica todo...

Imagínese que esto se ha resuelto en Service Desk. Probablemente no tienen ese tipo de equilibrio allí, por eso lo cerraron.

Razón de la queja: