¿Cómo codificar? - página 263

 

¿Es posible arrastrar una línea hacia arriba y hacia abajo?

Hola,

¿Es posible que una línea de niveles (o una línea de niveles "efectiva") en una ventana de indicador separada se pueda mover (es decir, "arrastrar") manualmente y que el nuevo valor de la configuración se actualice en un EA que los utilice para iniciar y salir de una operación?

He leído que hay scripts de arrastrar y soltar en los que se puede mover una línea, pero no sé si es posible incorporar / empalmar dicho script en el EA.

 
 
yourspace:
hola

tal vez es correcto, puede probarlo .

double upper_red = iCustom(NULL,0, "DDM",Nmbr_Bars,Order,Ecart,3,0);

No cambia nada, pero los tanques para la reacción de todos modos.

¿Quizás alguien conozca un indicador parecido?

edit: Lo he solucionado, el indicador " i-Regr H&L" es casi igual, este dibuja normalmente.

 

Ahorro de citas

Hola,

Quiero guardar los datos reales de los ticks en un archivo csv. Cada semana o mes quiero guardar un archivo csv.

Así que en mi función init abriré un nuevo archivo y cada tick haré un

FileWrite(handle_tick,TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),Bid,Ask);

Ahora tengo algunos problemas / preguntas:

1.

Cuando hay un problema con la escritura en el archivo el ea se detiene por el agujero (semana/mes) y no puede abrirlo de nuevo.

-¿Debo escribir FileOpen(...) en cada tick? ¿O debo usar FileFlush(..)?

2.

También había un problema con el tiempo guardado. Si lo comparo con el tiempo del gráfico, o el tiempo del centro de la historia, hay una gran diferencia (no estática, a veces, por ejemplo, 39 minutos, o 87 minutos).

¿Tengo que guardar el CurTime o qué tiempo?

3.

Hay algunas interrupciones en mi conexión a Internet (por ejemplo, de 2 a 5 minutos, unas 3 veces al día).

¿Cómo puedo comprobar mis cotizaciones guardadas automáticamente, para que el ea recupere los datos de los minutos que faltan del historial?

¿Y cómo puedo obtener mis datos de ticks si se pierde la conexión a Internet? 3. ¿Hay también un centro de historia o un buffer para las últimas horas?

4.

¿Alguien conoce una forma fácil de combinar los archivos de cotizaciones csv de forma automática?

5.

¡También quiero guardar datos de ticks y minutos de cfd's como Ger30! Si guardo el archivo .csv mensualmente, pero el nuevo contrato, que viene cada 3 meses cambia durante el mes. Entonces el EA no puede encontrar los datos porque el subyacente actual (el contrato "Juli" ya no es válido, pero ahora, por ejemplo, es el contrato de septiembre) ya no funciona.

¿Tal vez ya hay un EA fiable para ese problema?

 

Después de cada FileWrite, se debe hacer un flush de archivo para asegurar que los datos se escriben en el disco después de cada escritura. Si no se usa el flush, el sistema de archivos almacena las escrituras en un buffer de memoria y luego escribe todos los registros en el buffer al disco para mayor eficiencia. Esta puede ser la razón por la que se pierden registros; el ea se detiene y se pierden los registros de la memoria. El file flush escribirá cada registro en el disco, lo que es más lento, pero le asegura tenerlos todos. Con el file flush, puede abrir el archivo usando Excel mientras el EA se está ejecutando y examinarlo en modo de sólo lectura.

En la función deinit, compruebe si el manejador del archivo es > 0 y luego cierre el archivo.

Esto vaciará el buffer de memoria automáticamente

Durante la apertura hay opciones para crear un nuevo archivo en el disco o para anexar a un archivo existente. Parece que debería utilizar el método de añadir a un archivo existente. Esto resolverá la fusión de archivos automáticamente. Usted puede abrir cada archivo CSV en una instancia separada de Excel y cortar y pegar, podría utilizar el Bloc de notas también. En Excel puedes guardar el archivo fusionado como un CSV o usar Excel como una base de datos para almacenar la información fusionada en un formato XLSX. O podrías conseguir VB express de MS, es gratis, aprender VB y escribir una fusión de archivos en ese lenguaje.

La mejor opción es buscar otros ejemplos de ahorro de ticks.

Saludos

 

También tengo otra pregunta:

6.

¿Es útil guardar la oferta, la demanda y el volumen en mi archivo de ticks?

7.

¿Alguien tiene un tutorial de cómo backtest tickdata con metatrader 4 o/y 5?

¿Hay algún experto por ahí que pueda ayudarme? También puede responder por mensaje privado...

¡Gracias!

julia

 

Sobre todo, ¿qué pasa con los CFDs? ¡Cambian el contrato cada tres meses! Entonces, ¿cómo puedo programar esto en mi tick-saver.mq4, que el cambio del subyacente ocurra automáticamente y no pierda ningún tic?

 

¡Hola a todos, necesito ayuda para usar 1 EA en múltiples gráficos!

resumen de mi pregunta:

Tengo un EA que coloca sólo 1 orden a la vez utilizando la variable total = OrdersTotal() . Una nueva orden sólo se abrirá cuando esa 1 orden se cierre.

¿Cómo puedo modificarlo para que dos pares de divisas diferentes puedan tener cada uno 1 orden abierta sin que el mismo par de divisas tenga 2 órdenes abiertas?

Lo que necesito son líneas de código que me permitan hacer esto:

colocar 1 orden (digamos, con el número mágico 12345) si no hay ya una orden con ese número mágico específico abierta.

o, colocar 1 orden si no hay ya una orden del mismo símbolo de orden abierta.

--------------------------

Versión más larga de mi problema:

Recientemente he modificado un simple EA basado en colocar órdenes cuando las líneas de 10 y 5 SMA se cruzan.

Funciona bien con mi gráfico de EURUSD y sólo coloca una orden a la vez, ya sea de compra o de venta, porque tengo estas líneas de código

total = OrdersTotal();

if(total < 1)

--entonces coloca una orden

Sin embargo, cuando creé un duplicado del EA y lo apliqué al gráfico del EURJPY, tuve que cambiar el código a

total = OrdersTotal();

if(total < 2)

--para que colocara una orden si ya había una orden abierta en el gráfico del EURUSD.

El problema es que cuando la orden de EURUSD se cierra, se permite abrir una segunda orden de EURJPY y el EA de EURUSD no colocará una nueva orden puesto que ya hay una orden de EURJPY abierta.

Le doy a los diferentes pares números mágicos separados. Tenía una orden abierta en mi gráfico de EURUSD con el número mágico 22341 y probé a utilizar una nueva variable para mi gráfico de EURJPY:

tott = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber() == 22341) //22341 es el número mágico de las órdenes del EURUSD

total = OrdersTotal();

if(total < 2 && tott == true)

--entonces se coloca una orden para el EURJPY

pero se complica dejar que los EAs se ejecuten por su cuenta... especialmente si agrego un tercer par de divisas de USDJPY que quiero que mi EA se ejecute.

¡cualquier ayuda se agradece!

editar:

He decidido ir con números mágicos:

total= 0;

for(int i=0;i<OrdersTotal(); i++ )

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

si (OrderMagicNumber()==12341)

total++;

}

}

{

if(total < 1)

-entonces se realizará una operación

 

Backtesting tickdata

Sunshineh,

"7. ¿Alguien tiene un tutorial de cómo hacer backtesting tickdata con metatrader 4 o/y 5?"

Un viejo build - creo que fue el 208 - fue el último que haría datos de ticks. Fue publicado en algún lugar, busque TSD primero.

Si consigues resolver todo esto me gustaría usarlo también. También sé de un hilo donde se resuelve esto aceptablemente, aunque puede que no esté en TSD.

Big Be

 

¿Cómo conseguir que el EA se dé cuenta de que la barra anterior ha cerrado por encima del BB?

Hola a todos,

Estoy intentando que el EA registre cuando una barra cierra por fuera de las bollingerbands, y luego inicie una operación si esto ocurrió en la barra anterior

y las ema se cruzan o algo así. Mi código hasta ahora se ve así:

int bar, sll;

if( Close[0] > bollingerband ){

bar = Bars;}

if( bar+1 == Bars){

if(ema1>ema2){

sll = 1}

if( bar+2 == Bars ){

bar = 0;}

Desgraciadamente esto no parece funcionar y también he probado a hacerla una variable estática además de global. Así que estaría muy agradecido si alguien pudiera indicarme la dirección correcta.

Saludos,

Sapere

Razón de la queja: