¿Cómo codificar? - página 131

 

Los valores de las variables del EA se pierden al cerrar MT4

Hola a todos,

He buscado y probado varias soluciones a mi pregunta, pero no encuentro ninguna que funcione.

Estoy programando un EA y las operaciones se manejan por sus números de ticket. Los números de ticket se almacenan en una variable int. Esto funciona bien en el Probador de Estrategias o en una MT4 continua sin interrupción, sin embargo si cierras la MT4, por supuesto los tickets se pierden y cuando la MT4 se recarga, los números de ticket se han perdido, por lo tanto el EA no sabe qué operaciones están actualmente abiertas y comienza a abrir otras nuevas. Incluso si las órdenes pendientes o abiertas ya están operando.

Espero que esto tenga sentido.

He probado con variables estáticas y conozco las variables globales, pero preferiría no usarlas, ya que cada número de ticket y variable quiere ser individual para el TF del gráfico y el Símbolo en el que se está ejecutando el EA.

¿Alguien tiene una solución simple. Sé que probablemente podría exportar los números de ticket a un archivo que el EA puede entonces abrir y leer, pero esto parece un camino largo. Una forma no tan limpia que estoy probando actualmente es en el inicio del programa para utilizar la función SELECT_BY_POS, buscando cada comercio con un número mágico el mismo, pero esto no permite la funcionalidad completa de la EA I como a veces ejecutar 2 compras al mismo tiempo y identifiying que es que es difícil.

Gracias por las respuestas.

 
mach_one_man:
Hola a todos,

He buscado y probado varias soluciones a mi pregunta, pero no encuentro ninguna que funcione.

Estoy programando un EA y las operaciones se manejan por sus números de ticket. Los números de ticket se almacenan en una variable int. Esto funciona bien en el Probador de Estrategias o en una MT4 continua sin interrupción, sin embargo si cierras la MT4, por supuesto los tickets se pierden y cuando la MT4 se recarga, los números de ticket se han perdido, por lo tanto el EA no sabe qué operaciones están actualmente abiertas y comienza a abrir otras nuevas. Incluso si las órdenes pendientes o abiertas ya están operando.

Espero que esto tenga sentido.

He probado con variables estáticas y conozco las variables globales, pero preferiría no usarlas, ya que cada número de ticket y variable quiere ser individual para el TF del gráfico y el Símbolo en el que se está ejecutando el EA.

¿Alguien tiene una solución simple. Sé que probablemente podría exportar los números de ticket a un archivo que el EA puede entonces abrir y leer, pero esto parece un camino largo. Una forma no tan limpia que estoy probando actualmente es en el inicio del programa para utilizar la función SELECT_BY_POS, buscando cada comercio con un número mágico el mismo, pero esto no permite la funcionalidad completa de la EA I como a veces ejecutar 2 compras al mismo tiempo y identifiying que es que es difícil.

Gracias por las respuestas.

En lugar de los números de ticket, intente llevar la cuenta de sus órdenes utilizando números mágicos. Esta es la mejor manera que he encontrado.

 
FerruFx:
Modificar así:

if(Show_Settings) subPrintDetails(); else Comment("");

FerruFx

¡¡¡Muchas gracias!!! Lo probaré el domingo por la tarde. ¡Te agradezco mucho tu ayuda! ¡Que tengáis un buen fin de semana!

Dave

 

Modificación de EA

Hola

Agradecería mucho si alguien pudiera ayudarme. Hay este EA que obtuve de otro foro de FX. Se ve muy bien, pero agradecería si alguien puede ayudar a hacer algunas modificaciones en él.

He probado lo poco que creo que sé pero me sigue dando errores de corchetes desequilibrados e.t.c

El EA abre 5 lotes y toma ganancias de 1 lote cada uno a un valor incremental especificado (digamos 50 puntos/pips). Entonces cierra 1 lote cada vez que el beneficio se incrementa en un número especificado y finalmente deja correr el quinto/último lote hasta que haya una señal contraria.

Modificaciones:

Quiero que abra sólo 3 lotes,

Cierre 1 lote cada vez que el beneficio aumente en un número especificado de pips

Después de alcanzar los dos primeros puntos de Take profit, se debe utilizar un trailing Stop para el tercero.

Ilustración:

3 lotes

Punto de TP incremental= 40 pips

1er lote TP = 40, stoploss movido a BE

2º lote TP= 80

3er lote = Trailing stop activado

Todo lo demás ya está en el EA, pero sólo necesito cambiar el tamaño del lote y añadir un trailing stop.

Gracias

Archivos adjuntos:
stoch_ac.txt  7 kb
 
Dave137:
¡¡¡Muchas gracias!!! Lo probaré el domingo por la tarde. ¡Aprecio mucho tu ayuda! Que tengan un buen fin de semana! Dave

De nada, Dave. ¡Disfruta de tu domingo!

FerruFx

 

dibujar una línea y dibujar una flecha arriba/abajo en una vela

Estoy tratando de programar un indicador muy simple para dibujar una línea y dibujar una flecha hacia arriba / abajo en una vela.

No puedo averiguar cómo utilizar los estilos, índices, dibujos, etc.

Tengo una declaración if muy simple dentro de Start(), así que ¿qué más necesito añadir antes de Start(), y dentro del if de Start(), para dibujar una línea, y una flecha hacia arriba, y una flecha hacia abajo?

Gracias.

 
MoreYummy:
Estoy tratando de programar un indicador muy simple para dibujar una línea y dibujar una flecha hacia arriba / abajo en una vela.

No puedo averiguar cómo usar esos estilos, índices, dibujos, etc.

Tengo una declaración if muy simple dentro de Start(), así que ¿qué más necesito añadir antes de Start(), y dentro del if de Start(), para dibujar una línea, y una flecha hacia arriba, y una flecha hacia abajo?

Gracias.

Antes de intentar dibujar con algunas condiciones en la función Start(), tienes que establecer/inicializar los buffers[].

Codificar un indicador no es un trabajo simple. Usted puede tener que aprender algunos fundamentos de la codificación mql.

Te deseo lo mejor en tu proceso de aprendizaje.

FerruFx

 

ayuda

Hola compañeros programadores,

Tengo un EA que opera en EURUSD cuando lo adjunto al gráfico EURUSD. La pregunta es ¿cómo puedo operar con varios pares sin tener que adjuntar mi EA a varios gráficos?

¿Algo como esto?

string pairs = "GBPUSD;EURUSD;USDCHF;USDJPY;USDCAD;GBPJPY;EURJPY;GBPCHF;EURAUD;EURCHF;EURGBP;AUDUSD;CHFJPY";

Gracias de antemano,

LF

 

Tenga su código para operar con un par específico cuando envíe su orden, es muy simple, justo en la documentación.

 

Utiliza un array en lugar de una cadena y luego haz un bucle a través del array colocando un orden para cada par en cada iteración. Si no has utilizado arrays antes, sólo tienes que buscarlo en el archivo de ayuda. Son bastante sencillos.

Buena suerte

Lux

Razón de la queja: