[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 718
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
Usted lee el archivo línea por línea y asigna valores a sus variables cada vez. Cuando el archivo termine, las variables tendrán los últimos valores.
¿Cómo ponerlo en práctica?
No sé qué usar
¿Cómo ponerlo en práctica?
No se sabe qué usar
Ya se ha escrito y reescrito mucho sobre esto, pruebe con https://www.mql5.com/ru/forum/118349
¡Buenas noches de nuevo! Recientemente he comenzado a escribir un EA multidivisa que abre órdenes en un par de divisas y abre órdenes en otro.
Arranqué el trailing stop más cercano del EA y empecé a jugar con él pero no funcionó. Aquí está el código:
esto es lo que no puedo entender. Dado que el Asesor Experto es un Asesor Experto multidivisa, abre órdenes para divisas de manera impredecible y a veces las abre en un mismo momento para varias divisas.
En el código de seguimiento calculo las órdenes abiertas para(int i=0; i<OrdersTotal(); i++) y luego va la selección de órdenes OrderSelect, etc. Entiendo que cada orden abierta para un determinado par de divisas requiere los datos bid, ask, etc. Pero aquí quiero saber qué datos deben descargarse y cómo voy a seleccionar una orden para los cambios? Sólo tengo una variante en mi mente, la peor es escribir un trailing stop para cada moneda ) Por favor, aconsejar lo que se puede hacer.
¡Buenas noches de nuevo! Recientemente he comenzado a escribir un EA multidivisa que abre órdenes en un par de divisas y abre órdenes en otro.
Arranqué el trailing stop más cercano del EA y empecé a jugar con él pero no funcionó. Aquí está el código:
esto es lo que no puedo entender. Dado que el Asesor Experto es un Asesor Experto multidivisa, abre órdenes para divisas de manera impredecible y a veces las abre en un mismo momento para varias divisas.
En el código de seguimiento calculo las órdenes abiertas para(int i=0; i<OrdersTotal(); i++) y luego va la selección de órdenes OrderSelect, etc. Entiendo que cada orden abierta para un determinado par de divisas requiere los datos bid, ask, etc. Pero aquí quiero saber qué datos deben descargarse y cómo voy a seleccionar una orden para los cambios? Sólo tengo una variante en mi mente, la peor es escribir un trailing stop para cada moneda ) Por favor, aconsejar lo que se puede hacer.
Infinity:
No entiendo muy bien la tecnología, cómo va a funcionar
Ya se ha escrito y reescrito mucho sobre el tema: pruebe con https://www.mql5.com/ru/forum/118349.
int a1;
int handle=FileOpen("a1.csv",FILE_READ|FILE_WRITE,';');FileWrite(handle,a1);
FileClose(handle);
En el archivo a1=5;
No entiendo lo básico.
int handle=FileOpen("a1.csv",FILE_READ|FILE_WRITE,';');aquí asignamos el valor 5 a a1
FileClose(handle);
muy necesario
pero declarado con un valor asignado:
int ask = MarketInfo(sy, MODE_ASK), bid=MarketInfo(sy, MODE_BID), open, stop, level;
En consecuencia,
ya debería estar escrito de otra manera, por ejemplo:
O crear otra variable, por ejemplo, PrecioOferta y escribir
y luego usar PriceBid en lugar de Bid en el código...
Revise todo su código y utilice variables para un símbolo concreto cuando sea necesario.
Y este símbolo lo pasarás a la función de arrastre cuando la llames:
o
¿Está más claro?
Asigna valores a las variables en el código de arrastre basándose en los datos del par que se pasa a la función. Necesitas finalizar el código de arrastre... Por ejemplo, la variable Bid no debe ser declarada sin más,
pero declarado con un valor asignado:
Correspondientemente
ya debería estar escrito de otra manera, por ejemplo:
O crear otra variable, por ejemplo, PriceBid y escribir
y luego usar PriceBid en lugar de Bid en el código...
Revisa todo tu código y utiliza la búsqueda de valores de variables para un símbolo en particular.
Y este símbolo lo pasarás a la función de arrastre cuando la llames:
o
¿Está más claro?
Lo único que no entiendo es qué par de divisas debe enviarme en cada momento. No sé de dónde sacar la información de que, por ejemplo, hay 4 órdenes abiertas en tales pares y que estos pares deben enviarme.
No sé si lo estoy haciendo bien o no... en fin ....
Pero por alguna razón obtuve un error EURUSD: cero dividir - este error probablemente significa en algún lugar de la variable 0, probablemente durante una operación de tipo de división. ¿Estoy tratando de implementarlo correctamente en absoluto?
int a1;
int handle=FileOpen("a1.csv",FILE_READ|FILE_WRITE,';');FileWrite(handle,a1);
FileClose(handle);
En el archivo a1=5;
Malentendido en los fundamentos. Por favor, explique - completando la propuesta
int handle=FileOpen("a1.csv",FILE_READ|FILE_WRITE,';');aquí asignamos el valor 5 a a1
FileClose(handle);
Realmente lo necesito.
Así que, en orden.
Si sólo se necesitan los últimos datos, ¿para qué guardar los anteriores? ("antes de escribir" ocurre con la combinación de los modos FILE_READ|FILE_WRITE).
Por lo tanto, es más lógico utilizar el modo FILE_CSV|FILE_WRITE, en el que se borran los registros anteriores antes de escribir los nuevos datos.
Vamos a empezar a escribir 4 variables en el archivo.
Lo principal es recordar el orden en el que se escriben las variables, porque es el orden en el que las leeremos.
Comencemos a leer los datos en las variables desde el archivo.
Usando la función FileReadNumber(), leemos el número después del número en el orden en que fueron escritos.
Eso es todo, nada complicado :)
Lo único que no entiendo es qué par de divisas debe enviarme en cada momento. ¿De dónde saco la información de que, por ejemplo, hay 4 órdenes abiertas en tales pares y que estos pares deben enviarme?
No sé si lo estoy haciendo bien o no... en fin ....
Pero tengo EURUSD: error de división cero. Aparentemente, este error dice que tengo 0 en una variable en algún lugar, probablemente, es una operación de división. ¿Estoy tratando de implementarlo correctamente?