¿Cómo codificar? - página 107

 

Es un EA, no un indicador, no debes mezclar ambos.

 

Hola a todos...

Es un EA, no un indicador, no debes mezclar ambos.

En realidad, tomo un código del indicador MACD y a partir de él hago un EA... ¿alguien puede ayudarme a qué código debo corregir?

Gracias...

 

Intenta mirar algunos de los EA que ya tienes. Estudia el código y trata de ver si puedes descifrar algo de la lógica. Intenta decir el flujo del programa en voz alta. Ayuda mucho.

Buena suerte

Lux

 

hola a todos...

gracias luxinterrior por la respuesta..

Intenta mirar algunos de los EA que ya tienes. Estudia el código y trata de ver si puedes descifrar algo de la lógica. Intenta decir el flujo del programa en voz alta. ¡Ayuda mucho! Buena suerte

Tengo 7 buffer.. buffer1 hasta buffer7.. cada buffer guardará el valor de la barra MACD.. el EA abrirá

Compra cuando el MACD se convierte en forma de 'u'...

la condición cuando ..

if (MacdBuffer7>MacdBuffer5&&MacdBuffer5>MacdBuffer3&&MacdBuffer3>MacdBuffer1

&&MacdBuffer1<MacdBuffer2&&MacdBuffer2<MacdBuffer4&&MacdBuffer4<MacdBuffer6) [/CODE]

SELL post when the MACD become 'n' shape..

the condition when..

[CODE] if(MacdBuffer7<MacdBuffer5&&MacdBuffer5<MacdBuffer3&&MacdBuffer3<MacdBuffer1

&&MacdBuffer1>MacdBuffer2&&MacdBuffer2>MacdBuffer4&&MacdBuffer4>MacdBuffer6)

Espero que alguien pueda ayudarme a resolver el problema... gracias...

 

¿Hay alguna forma de forzar al programa a calcular?

Ahora mismo espera al siguiente tick.

Tengo 6 gráficos abiertos y el mismo indicador está en los seis gráficos.

Si un gráfico recibe un tick, se actualiza, pero los otros gráficos no lo hacen, por lo que están "anquilosados".

Gracias.

 
:: si es conveniente entonces intenta formarlo en un EA, allí puedes hacer un bucle y usar la función sleep, he probado varias configuraciones simples para tener sólo procesos/cálculos no relacionados con los ticks, pero entonces tienes el problema de la pantalla de refresco ... así que ... He cambiado todo de nuevo a la normalidad ... la importancia de hacerlo no era tan grande ... tal vez en MQL5 subiendo

:: los indicadores no pueden lidiar con la función sleep()

:: puedes escribir una dll, buscar todas las ventanas en tu terminal... luego hacer/enviar un "refresh screen/window" a cada ventana hija. Pero entonces usted tiene que enviar el archivo dll junto con su indicador a los demás ... de nuevo ... haciendo que sea complicado ...

TheRumpledOne:
¿Hay una manera de forzar el programa para calcular?

Ahora mismo espera el siguiente tick.

Tengo 6 gráficos abiertos y el mismo indicador está en los seis gráficos.

Si un gráfico recibe un tick, se actualiza, pero los otros gráficos no, por lo que son "rancios".

Gracias.
 

Hola a todos,

Espero que no te importe que me meta aquí, estoy mirando una situación similar y tengo una idea sobre el tema ... ¿qué pasa si el código de un bucle al final de su programa que dice "si no hay orden abierta ejecutar a través de nuevo". y dejar que el bucle tal vez 3 o 4 veces.

Si hace eso, entonces cualquier orden perdida (que sucede muy a menudo) debería ser recogida.

Creo que sería algo así...

for (int k = OrdersTotal() ==0; k >=2; k++)

{

if ( ! OrderSelect ( k, SELECT_BY_POS, MODE_TRADES ))continue;

if (k > 2) break;

}

return(0);

}

Todavía soy nuevo en esto así que si no tiene sentido por favor explícame por qué.

 

A Lux, ajk, Raygun, Devil2000, IN10TION

Gracias por los consejos.

Los probaré y espero dar con la respuesta.

Publicaré más tarde.

Big Be

 
amatrader:
Hola a todos,

Espero que no te importe que me meta aquí, estoy mirando una situación similar y tengo una idea sobre el tema ... ¿qué pasa si el código de un bucle al final de su programa que dice "si no hay ninguna orden abierta ejecutar a través de nuevo". y dejar que el bucle tal vez 3 o 4 veces.

Si hace eso, entonces cualquier orden perdida (que sucede muy a menudo) debería ser recogida.

Creo que sería algo así...

Todavía soy nuevo en esto así que si no tiene sentido por favor explíqueme por qué.

¡Esa es una buena idea!

Podría comprobar el tiempo y si han transcurrido X segundos o minutos entonces salir del bucle.

¡¡GRACIAS!!

P.D. Esto no era para un EA. No codifico EAs.

 
No funcionará con indicadores como ese, incluso si haces un bucle 1.000.000 de veces, se detendrá todo lo demás, nada más que ese bucle será procesado, cuando el bucle se termine entonces tu terminal continuará sus procesos normales antes de un nuevo tick.

:: en ese bucle de 1.000.000 es inútil comprobar/controlar algo más, por eso la función sleep() no funciona.

TheRumpledOne:
Hey, ¡es una buena idea!

Podría comprobar el tiempo y si han pasado X segundos o minutos entonces salir del bucle.

¡¡¡GRACIAS!!!

P.D. Esto no era para un EA. No codifico EAs.