panker: Hay un código que no funciona por alguna razón. El precio en el método m_symbol.Ask() devuelve 0.
Mira la propia implementación de la biblioteca. El método Ask() devuelve estúpidamente el valor de m_tick.ask. El método RefreshRates() se utiliza para refrescar los valores de m_tick).
Si no recuerdo mal, la función OnDeinit() tiene 2,5 segundos para ejecutarse. Pregunta 1: si no están libres todas las asas de los indicadores durante este tiempo, ¿qué ocurre? Pregunta 2: ¿Existe un límite de tiempo para OnInit()?
Si no recuerdo mal, la función OnDeinit() necesita 2,5 segundos para ejecutarse.
Pregunta 1: si no se liberan todas las asas de los indicadores durante este tiempo, ¿qué ocurre?
Los manejadores de los indicadores son un tema aparte en MT5, porque su liberación es controlada no tanto por el propio Asesor Experto (sólo puede enviar un mensaje de que no los necesita y restablecer el valor del manejador), como por el propio terminal (que toma la decisión final de eliminar completamente el manejador del indicador).
Pregunta 2: ¿hay un límite de tiempo para OnInit()?
Estoy escribiendo un Asesor Experto multidivisa donde en los parámetros de entrada establezco el nombre del instrumento, como la cadena Symbol0="EURUSD". Si escribo el nombre equivocado, el comercio no va. Pregunta: ¿Existe una función que compare los nombres de los instrumentos con los instrumentos ofrecidos por el corredor?
Do ArrayResize(Buf, rates_total);
También haga esto, entonces al menos no habrá ningún error.
Y dibujará una línea recta=0,014 en el Euro M1.
Buenas tardes.
Hay un código que por alguna razón no funciona.
El precio en el método m_symbol.Ask() devuelve 0.
Juzga el código con dureza. Sólo estoy aprendiendo. Dispuesto a escuchar cualquier crítica adecuada.
Mientras que para el propósito fue el hecho de la apertura de una posición. Qty aún no es interesante (fácil de implementar).
Buenas tardes.
Hay un código que por alguna razón no funciona.
El precio en el método m_symbol.Ask() devuelve 0.
Juzga el código con dureza. Sólo estoy aprendiendo. Dispuesto a escuchar cualquier crítica adecuada.
Mientras que para el propósito fue el hecho de la apertura de una posición. Qty aún no es interesante (fácil de implementar).
Tal vez te falta una función, algo como SymbolSelect.
En este caso, se trata de un comando Nombre
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfoask - ver nota
Requerido
RefreshRates
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinforefreshrates
¿Puede alguien dar un ejemplo de código?
¿Cómo crear una "ScrollBar decimal"?
He utilizado la clase MQL5 CScroll.https://www.mql5.com/en/docs/standardlibrary/controls/cscroll
Si no recuerdo mal, la función OnDeinit() necesita 2,5 segundos para ejecutarse.
Pregunta 1: si no se liberan todas las asas de los indicadores durante este tiempo, ¿qué ocurre?
Los manejadores de los indicadores son un tema aparte en MT5, porque su liberación es controlada no tanto por el propio Asesor Experto (sólo puede enviar un mensaje de que no los necesita y restablecer el valor del manejador), como por el propio terminal (que toma la decisión final de eliminar completamente el manejador del indicador).
Pregunta 2: ¿hay un límite de tiempo para OnInit()?
¿Puede decirme cuál debe ser la "banda de beneficios" por año? (в %%)