Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 581

 
barudkinarseniy:
¡¡¡Hola señores del foro!!! Tengo un problema. Probé el Asesor Experto entre semana y obtuvo un resultado, pero los fines de semana me da un resultado totalmente diferente. ¿Puede decirme por qué?
creo que es porque el diferencial se amplía los fines de semana
 
Sergey Gritsay:
porque el fin de semana amplían el margen
y el nivel de margen disminuye, es decir, cuando el mercado cierra o antes o depende del corredor?
 
Karputov Vladimir:

Aquí está el panel de diálogo con el control CEdit (para mayor claridad, el ejemplo está hecho como un solo archivo) - el panel comprueba los caracteres introducidos. Sólo se permiten números:

Gracias por el código. Pero aquí hay otra pregunta. He compilado el código en MT5. Resulta que todavía se pueden introducir letras en la unidad, pero si se introducen letras, dice "Sólo se permiten dígitos" al final del código en la unidad. Pero, ¿cómo hacer que sea imposible introducir letras en la unidad?
 
Andrey Zuev:
Gracias por el código. Pero otra cuestión es ésta. He compilado el código en mt5. Resulta que todavía puedes introducir letras en la edición, pero si introduces letras, cuando terminas de introducirlas, dice "Sólo se permiten números" en la edición. Pero, ¿cómo hacer que sea imposible introducir letras en udite?
No se puede. El control basado en la clase CEdit sólo maneja el evento ON_END_EDIT- (6) // fin de la edición - es decir, el evento de finalización de la entrada.
 

Colegas, tratando de tomar una señal de esta línea:

si((MathAbs(d_f)>(K_F*Punto)) && (d_f>0.0)) // Señal de compra

Pero el compilador se queja de que "Punto - identificador no declarado".

Esto es MT5.

¿No es una variable predefinida?

 
Andrey Koldorkin:

Colegas, tratando de tomar una señal de esta línea:

si((MathAbs(d_f)>(K_F*Punto)) && (d_f>0.0)) // Señal de compra

Pero el compilador se queja de que "Punto - identificador no declarado".

Esto es MT5.

¿No es una variable predefinida?

No. Utilice _Punto.
 
Andrey Koldorkin:

Colegas, tratando de tomar una señal de esta línea:

si((MathAbs(d_f)>(K_F*Punto)) && (d_f>0.0)) // Señal de compra

Pero el compilador se queja de que "Punto - identificador no declarado".

Esto es MT5.

¿No es una variable predefinida?

Tienes que utilizarPoint().

 

Gracias.

Otra pregunta. Quiero tomar el valor de la curva en la vela actual y en la última vela cerrada, así como en la última vela cerrada y en la penúltima.

¿Es necesario utilizar una matriz aquí?

Tengo una mashka que tiene 3 parámetros de entrada. Estoy tratando de construir una dirección para ello:

//----------------------

double P0, P1, P2; // valor del indicador en la vela actual, última vela cerrada

P0 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la vela actual

P1 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la última vela cerrada

P2 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la penúltima vela cerrada

//----------------------

Las tres líneas inferiores son iguales, lo escribí así, porque no entiendo cómo leer el valor en la vela anterior. Toma la actual correctamente, y la emite correctamente usando Alert.

Tal vez deberíamos definir de alguna manera un bucle, donde el valor actual se escribe y con cada nueva vela se desplaza hacia atrás, convirtiéndose primero en la última vela cerrada, y luego en la penúltima vela cerrada.

¿Cómo hacerlo de forma inteligente? ))

 
Andrey Koldorkin:

Colegas, tratando de tomar una señal de esta línea:

si((MathAbs(d_f)>(K_F*Punto)) && (d_f>0.0)) // Señal de compra

Pero el compilador se queja de que "Punto - identificador no declarado".

Esto es MT5.

¿No es una variable predefinida?

Y luego escribes esto:

Andrey Koldorkin:

Gracias.

Otra pregunta. Quiero tomar el valor de la curva en la vela actual y en la última vela cerrada, así como en la última vela cerrada y en la penúltima.

¿Es necesario utilizar una matriz aquí?

Tengo una mashka que tiene 3 parámetros de entrada. Estoy tratando de construir una dirección para ello:

//----------------------

double P0, P1, P2; // valor del indicador en la vela actual, última vela cerrada

P0 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la vela actual

P1 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la última vela cerrada

P2 = iCustom(NULL, 0, "VIDYA", InpPeriodCMO, InpPeriodEMA, InpShift); //El precio del indicador en la penúltima vela cerrada

//----------------------

Las tres líneas inferiores son iguales, lo escribí así, porque no entiendo cómo leer el valor en la vela anterior. Toma la actual correctamente, y la emite correctamente usando Alert.

Tal vez deberíamos definir de alguna manera un bucle, donde el valor actual se escribe y con cada nueva vela se desplaza hacia atrás, convirtiéndose primero en la última vela cerrada, y luego en la penúltima vela cerrada.

¿Cómo hacerlo de forma inteligente? ))

Entonces, todavía: ¿escribes en MT5 o en MT4?

Añadido:Insertar código correctamente en el foro

 
Karputov Vladimir:

y luego escribes esto:

Entonces, todavía: ¿escribes en MT5 o en MT4?

Añadido:Inserción correcta del código en el foro

MT5. No juzgues con dureza, estoy empezando.

El compilador no parece jurar.