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

 
barudkinarseniy:
No veo ningún problema, simplemente mi Expert Advisor funciona de tal manera que después de cerrar una operación rentable o con pérdidas abre órdenes inmediatamente y el número de ticket en la impresora es muy grande, por lo que pensé que no tendría que recargarlo manualmente, tal vez se pueda hacer automáticamente. También debo agradecerle esta función))
Si miras los 1000 pedidos en un año no es nada, solo hay que mirar los tickers de las cuentas reales. Tengo, por ejemplo, el último 10179697. Generalmente, los billetes son de tipo int, por lo que el valor máximo es de 2 147 483 647.
 
Alexey Volchanskiy:
1000 pedidos en un año no es nada, mira los tickets de las cuentas reales. Tengo, por ejemplo, el último 10179697. Generalmente, los billetes son de tipo int, por lo que el valor máximo es de 2 147 483 647.
¿Y qué pasará si se alcanza el valor máximo?
 
en MQL5 el billete es del tipo ulong, te quedarás sin aliento para superar
 
barudkinarseniy:
¿Y qué ocurre si alcanza el valor máximo?
Los números para las órdenes y las operaciones son asignados por el corredor, no por su EA, y el EA se asegurará de que no excedan el valor máximo. ) Este no es su dolor de cabeza.
 
Gracias por la útil información))) ¿Alguna idea de cómo comprobar las órdenes limitadas con AccountFreeMarginCheck?
 

Tomé el EA estándar para la marca de la biblioteca, parece que funciona. Empecé a perfeccionarla.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

He añadido cálculos y datos de salida adicionales a este indicador y funciona de la siguiente manera

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

y mi EA comienza a retrasarse, es decir, recibo errores de datos no válidos.

La pregunta es si he creado el mismo indicador 8 veces y he obtenido la matriz correcta de él, o estoy equivocado? ¿O me equivoco, un indicador se crea una vez?
Si estoy en lo cierto, ¿cómo puedo crearla una vez y obtener los datos necesarios de ella?

 

¡Hola colegas!

Por favor, aconséjeme sobre la estructura de una solicitud de operación para cerrar una posición en MT5 con una cobertura.

Gracias.

 
Nikita Solodko:

¡Hola colegas!

Por favor, aconséjeme sobre la estructura de una solicitud de operación para cerrar una posición en MT5 con una cobertura.

Gracias.

Puede utilizar el método
bool  PositionClose( 
   const ulong   ticket,                  // тикет позиции 
   ulong         deviation=ULONG_MAX      // отклонение 
   )
de la biblioteca estándar de la clase CTrade
 
Sergey Gritsay:
Puede utilizar el método de la biblioteca estándar de la clase CTrade
Gracias, por supuesto, pero no estoy usando clases de comercio, prefiero usar la función OrderSend(). Y todo estaba bien antes de la posibilidad de cobertura, pero ahora en la estructura de la solicitud de comercio apareció el elemento"posición", como se indica en la ayuda, para indicar una posición específica al modificar y cerrarla, sólo que no dice cómo cerrar esta posición (tipo de operación, etc.).
 
Milleras1981:

Tomé el EA estándar para la marca de la biblioteca, parece que funciona. Empecé a perfeccionarla.

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

He añadido cálculos y datos de salida adicionales a este indicador y funciona de la siguiente manera

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

y comienza a retrasarse, es decir, recibo errores de datos no válidos.

La pregunta es si he creado el mismo indicador 8 veces y he obtenido la matriz correcta de él, o estoy equivocado? ¿O me equivoco, un indicador se crea una vez?
Si estoy en lo cierto, ¿cómo puedo crearla una vez y obtener los datos necesarios de ella?

Antes de mejorarlo, el Asesor Experto recibía 4 valores: del buffer del indicador cero de la última y penúltima barra, y del buffer del primer indicador también, mientras que usted está intentando recibir información de 6 buffers de indicadores... ¿Está seguro de que los tiene en el indicador? ¿Qué quiere conseguir?
Razón de la queja: