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

 
MosheDayan:
unas 25 personas. Por ejemplo: 14.02.2017 EURUSD 1.0630

Lamentablemente, tampoco veo una solución a este problema puramente con mql.

Sólo hay que crear una plantilla de carta con los nombres de todos los amigos y enviarla por correo

 
MosheDayan:
unas 25 personas. Por ejemplo: 14.02.2017 EURUSD 1.0630
¿Hay que transmitir los niveles exactamente? ¿No sería mejor crear una señal y emitirla?
 

Hola.

He matado toda la noche, pero no podía entender la razón, por favor ayuda. El indicador debería mostrar los datos en la pantalla como una marca de texto, pero cuando arranco el terminal no ocurre, la marca sólo aparece cuando cambio el marco temporal, luego funciona bien en los ticks.

El ejemplo se ha simplificado al máximo, pero la esencia no cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // entonces imprime b en la pantalla

Utilizando el método de eliminación, he llegado a la conclusión de que esto sólo funciona si sustituyo la división por cualquier otra operación, o asigno cualquier constante a la variable "a".

Intenté usar ChartRedraw(), jugué con tipos enteros y dobles, probé MathRound() y mucho más, nada funcionó.

Todo es extraño.

 
Fam:

Hola.

He matado toda la noche, pero no podía entender la razón, por favor ayuda. El indicador debería mostrar los datos en la pantalla como una marca de texto, pero cuando arranco el terminal no ocurre, la marca sólo aparece cuando cambio el marco temporal, luego funciona bien en los ticks.

El ejemplo se ha simplificado al máximo, pero la esencia no cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // entonces imprime b en la pantalla

Utilizando el método de eliminación, he llegado a la conclusión de que esto sólo funciona si sustituyo la división por cualquier otra operación, o asigno cualquier constante a la variable "a".

Intenté usar ChartRedraw(), jugué con tipos enteros y dobles, probé MathRound() y mucho más, nada funcionó.

Todo es extraño.

Entonces, ¿cuál es el problema de multiplicar en lugar de dividir?

intb=a*0,001;

Y también es importante en qué lugar exacto del código se hacen los cálculos. Espero que no sea en el inite o a nivel global. Si no, también se podría dividir por cero ;)

 
Fam:

Hola.

He matado toda la noche, pero no podía entender la razón, por favor ayuda. El indicador debería mostrar los datos en la pantalla como una marca de texto, pero cuando arranco el terminal no ocurre, la marca sólo aparece cuando cambio el marco temporal, luego funciona bien en los ticks.

El ejemplo se ha simplificado al máximo, pero la esencia no cambia:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

intb=1000/a; // entonces imprime b en la pantalla

Utilizando el método de eliminación, he llegado a la conclusión de que esto sólo funciona si sustituyo la división por cualquier otra operación, o asigno cualquier constante a la variable "a".

Intenté usar ChartRedraw(), jugué con tipos enteros y dobles, probé MathRound() y mucho más, nada funcionó.

Todo es extraño.

Y si revisas el diario, encontrarás el error crítico "división por 0" allí
 
Vitalie Postolache:

Entonces, ¿cuál es el problema de rehacer la multiplicación en lugar de la división?

intb=a*0,001;

Y también es importante el lugar exacto del código en el que se realizan los cálculos. Espero que no sea en el inite o en el global. También puedes dividir por cero ;)

Eso no funcionará, en realidad es una variable en lugar de 1000. El cálculo está enOnCalculate.
 
Vitalie Postolache:
¿Hay que transmitir exactamente los niveles? ¿No sería mejor crear una señal y emitirla?
También los envío por Whatsapp al grupo. Sólo quería facilitarles la vida... abrir el gráfico y mi nivel ya está ahí. ¿Puedes decirme más sobre la señal, es a través de MT o de un tercero?
 
Alexey Viktorov:
Y si miras en el registro, puedes encontrar un error crítico "división por 0" allí

En el cuaderno de bitácora es realmente: cero dividir. Voy a comprobarlo ahora.

No entiendo de dónde viene el 0. ¿No hay datos deAccountInfoInteger(ACCOUNT_LEVERAGE) durante la inicialización? ¿Y por qué no aparece la marca en los siguientes ticks?

 
MosheDayan:
También los envío por Whatsapp al grupo. Sólo quería facilitarles la vida... abrir el gráfico y mi nivel ya está ahí. ¿Puede decirme más sobre la señal, es de MT o de un tercero?
Es público:)
 
Fam:

En el cuaderno de bitácora es realmente: cero dividir. Voy a comprobarlo ahora.

No entiendo de dónde sale el 0. ¿No hay datos deAccountInfoInteger(ACCOUNT_LEVERAGE) durante la inicialización? ¿Y por qué no aparece la marca en los siguientes ticks?

Porque el programa ha recibido un error crítico y no se ejecuta más.

Tal vez, algunas empresas de corretaje no pasan el apalancamiento? Aunque, no lo he visto en forex...

Razón de la queja: