Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 71

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Desde cuándo un punto es un tipo Doble?
Eso es lo que digo, string+int es un error
Pero si lo haces de la manera que escribí arriba, no habrá ningún error.
Eso es lo que digo: cadena+int es un error.
Pero si lo haces de la manera que escribí arriba, no habrá ningún error.
¿IntegerToString? No, no me he enterado ;)
¿IntegerToString? No, no me he enterado ;)
Hola a todos
Soy nuevo en la programación, pero estoy tratando de aprender)
Tengo un pequeño problema con el cierre de la orden según las lecturas del indicador
Puedo saber directamente las condiciones de apertura y cierre de una posición por las lecturas del indicador y cerrar la orden en la dirección opuesta sin ningún tipo de paradas y beneficios
if(r > 50 && p > m) //condiciones para la apertura de una orden de compra
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //abrir orden de compra
}
¿Estoy escribiendo correctamente la condición de cierre de la orden?
if(r < 50 && p < m) --- esta es una condición de Venta y de Cierre
{
OrderClose(ticketB,0.1,Bid,5,Red);
}
e imprime el posible uso de la variable no inicializada 'ticketB' y el valor de retorno de 'OrderClose' debe ser comprobado
¿Podéis decirme dónde lo he escrito mal?
hola a todos
Soy nuevo en la programación, pero estoy tratando de aprender)
Tengo un pequeño problema con el cierre de la orden según las lecturas del indicador
Puedo saber directamente las condiciones de apertura y cierre de una posición por las lecturas del indicador y cerrar la orden en la dirección opuesta sin ningún tipo de paradas y beneficios
if(r > 50 && p > m) //condiciones para la apertura de una orden de compra
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,",111,0,Green); //abrir orden de compra
}
¿Estoy escribiendo correctamente la condición de cierre de la orden?
if(r < 50 && p < m) --- esta es una condición de Venta y de Cierre
{
OrderClose(ticketB,0.1,Bid,5,Red);
}
e imprime el posible uso de la variable no inicializada 'ticketB' y el valor de retorno de 'OrderClose' debe ser comprobado
¿Podrían decirme dónde lo he escrito mal?
La variable ticketB no está inicializada, es decir, no se conoce su tipo. En este caso es Int
El segundo error es que tenemos que comprobar el resultado del cierre de la orden para ver si hay errores. Buscar "función de tratamiento de errores" en el foro
la variable ticketB no está inicializada, es decir, no se conoce el tipo. En este caso es Int.
El segundo error se refiere a la comprobación del resultado del cierre de la orden en busca de errores. Buscar "función de tratamiento de errores" en el foro
No consigo entender la lógica o estoy aturdido), pero ¿cómo lo hago? Al principio intenté hacerlo con OrderSelect pero daba error)
Necesito información sobre esto.
¿es GetLastError? no puedo entender la lógica o soy un poco tonto) pero ¿cómo establecerlo? al principio traté de hacer todo con OrderSelect, pero no es lo mismo)
Necesito información sobre esto.
Sí.
Revisa el código base: hay muchos ejemplos de implementación.
¿Dónde está la lógica? Se establece el lote máximo permitido para la primera orden y luego se aumenta para cada orden posterior. ¿No crees que esto es, por decirlo suavemente, poco sensato?
Además, disminuye el lote de la primera orden en el bucle utilizando algún método totalmente incomprensible, mientras que los lotes de las otras órdenes que se "calcularon" antes permanecen sin cambios, y estos valores no van más allá de los límites de esta función. ¿Y qué hacen entonces?
Por no hablar de que el bucle de incremento no puede ser un número real, tiene que ser un contador, un entero. Pero se establece el valor del lote como un contador y se le resta uno en cada iteración. Esto es un error importante, muy grave.
Aclara primero la lógica en tu mente y luego intenta implementarla en tu código.
¿Qué te parece?
Yo diré lo mismo. No se te da bien la lógica. ¿Cuál es el problema para calcular inmediatamente el lote inicial, basándose en los fondos disponibles y el valor del riesgo (creo que se escribió sobre el 3%)? ¿Por qué hay que hacer todo en un solo lugar?
Tome el valor del margen libre, multiplíquelo por el riesgo, divídalo por 100 y el valor del margen para 1 lote - aquí está la fórmula más simple para calcular el lote con un porcentaje determinado del margen libre. Además, hay que tener en cuenta el paso del cambio de lote y evitar que se supere el tamaño de lote mínimo/máximo permitido por las empresas de corretaje: