Página 36 de 39

como decirle que se ejecute el codigo solo al cierre de vela

Publicado: 05 Nov 2008 20:22
por apdb73
buenas noches a todo, ante todo me presentare, me llamo alexandro, y estoy recien ingresado en este superinteresante foro del metatrader, estoy probando pequeños codigo para aprender un poco de este apasionante lenguaje pero estoy trabado en dos cosas: por un lado no se programar el AE para que solo ejecute el codigo al cierre de cada vela y no en cada tick y por otro lado he programado un indicador MACD y efectivamente me aparece en pantalla cuando le doy a ejecutar pero no logro añadirle otro indicador que en este caso es el stochastico debajo del indicador MACD, utilizo la propiedad WINDOWS SEPARATE para separar el MACD pero con el stochastico no funciona, agradeceria enormemente que me ayudarais, y ya de esta manera pues empezar a colaborar con ustedes a diseñar estrategias y demas cosas. un saludo a todos. :roll:

Publicado: 05 Nov 2008 20:43
por Spirit
En gráfico de 1 minuto puedes poner esta condición dentro de un if

Time[0]%60 == 0 ------------- Para M1
Time[0]%300 == 0 ------------ Para M5
Time[0]%900 == 0 ------------ Para M15
Time[0]%1800 == 0 ------------ Para M30

y así sucesivamente


El problema es que si el tick no se produce hasta pasados 10, 20 ó 30 segundos desde el cierre de la anterior vela ese if durante ese tiempo no funciona.

La ventaja es que puedes trabajar con timeframes que no existen en MT.


Otra forma que se me ocurre es utilizando Time[0] y lo comparas con TimeLocal o TimeCurrent y luego le haces seguimiento. Pero el problema del retraso del Tick lo seguirías teniendo salvo que exista alguna manera de crear un Loop que haga de contador de milisegundos sin tener que esperar a que se ejecute la función start() al producirse un tick. Si existe yo la desconozco.

Publicado: 05 Nov 2008 21:05
por Spirit
Al plantearme la pregunta del anterior forero apdb73, me ha venido a la cabeza la cuestión de como trbaja MQL4, en modo sincrono o asincrono. Si tuviera la posibilidad de lanzar una función en modo asincrono el tema del reloj estaría solucionado.

Publicado: 05 Nov 2008 21:54
por cls
¿en metatrader se pueden instanciar clases de windows?
Si se pudiera, podríais crear un objeto Timer (es como el Loop contador que mencionas) y tendrías solucionado el tema.

S2

Re: como decirle que se ejecute el codigo solo al cierre de

Publicado: 05 Nov 2008 22:13
por ledzep
apdb73 escribió:buenas noches a todo, ante todo me presentare, me llamo alexandro, y estoy recien ingresado en este superinteresante foro del metatrader, estoy probando pequeños codigo para aprender un poco de este apasionante lenguaje pero estoy trabado en dos cosas: por un lado no se programar el AE para que solo ejecute el codigo al cierre de cada vela y no en cada tick y por otro lado he programado un indicador MACD y efectivamente me aparece en pantalla cuando le doy a ejecutar pero no logro añadirle otro indicador que en este caso es el stochastico debajo del indicador MACD, utilizo la propiedad WINDOWS SEPARATE para separar el MACD pero con el stochastico no funciona, agradeceria enormemente que me ayudarais, y ya de esta manera pues empezar a colaborar con ustedes a diseñar estrategias y demas cosas. un saludo a todos. :roll:

if(Bars>lstBars)NewBar=true;
lstBars=Bars;
if(NewBar)
{
// codigo a ejecutar en cambio de barra

}

Publicado: 05 Nov 2008 22:26
por d_vin@
ayer gracias a vuestras recomendaciones me quitaron la conexion q habian renovado al microondas con mi ordenata, lo comprobe al instante, muchas gracias, :-)

Publicado: 06 Nov 2008 01:34
por apdb73
ledzp, muchisimas gracias por este pequeño codigo que parecia complicado, pero ya veo que con un poquito de ingenio sale todo, bueno, y la otra parte de la pregunta, alguien sabria decirme como puedo programar dos indicadores seguidos uno debajo del otro. ahora mismo se programar uno pero el otro no se como ponerlo debajo, por ejm un schotastico debajo de una MACD. muchas gracias a todos. :P

Publicado: 06 Nov 2008 05:12
por ledzep
apdb73 escribió:ledzp, muchisimas gracias por este pequeño codigo que parecia complicado, pero ya veo que con un poquito de ingenio sale todo, bueno, y la otra parte de la pregunta, alguien sabria decirme como puedo programar dos indicadores seguidos uno debajo del otro. ahora mismo se programar uno pero el otro no se como ponerlo debajo, por ejm un schotastico debajo de una MACD. muchas gracias a todos. :P
Si te entiendo bien, lo que planteas no es posible. Las salidas de un indicador deben estar o en el gráfico del precio o una ventana separada, pero solo puedes tener una. Lo que si puedes es gráficar hasta 8 señales diferentes pero siempre en la misma ventana. Si necesitas dos ventanas necesariamente tendras que escribir dos indicadores.

Saludos.

Publicado: 07 Nov 2008 22:19
por Ciclo
Hola,

A ver si alguien me puede decir lo que es el Balance y lo que es Equity y por tanto cual es la diferencia entre las dos.

:D

Gracias por adelantado

Publicado: 07 Nov 2008 22:52
por d_vin@
un placer, estaba desenado verte espiritu

Publicado: 09 Nov 2008 11:22
por X-Trader
Ciclo escribió:Hola,

A ver si alguien me puede decir lo que es el Balance y lo que es Equity y por tanto cual es la diferencia entre las dos.

:D

Gracias por adelantado
Sencillo: Balance es el saldo en cuenta considerando las posiciones cerradas y Equitiy es el valor en tiempo real de nuestra cuenta.

Saludos,
X-Trader

Publicado: 09 Nov 2008 11:50
por Fer137
Spirit escribió:sin tener que esperar a que se ejecute la función start() al producirse un tick. Si existe yo la desconozco.

Metiendo el programa en init().
Así funciona sin paradas, de hecho no para ni aunque se desactiven los sistemas automaticos. Es entonces cuando se le viene a uno a la mente todas esas peliculas de computadoras fuera de control... :D

Publicado: 09 Nov 2008 12:29
por Ciclo
X-Trader escribió:
Ciclo escribió:Hola,

A ver si alguien me puede decir lo que es el Balance y lo que es Equity y por tanto cual es la diferencia entre las dos.

:D

Gracias por adelantado
Sencillo: Balance es el saldo en cuenta considerando las posiciones cerradas y Equitiy es el valor en tiempo real de nuestra cuenta.

Saludos,
X-Trader
Gracias X-trader, me viene muy bien saberlo por que es para calcular el tamaño de la posición en función del dinero disponible. Claro para un solo experto y una sola posicion cada vez, da igual usar uno que otro, pero para varios expertos, con lo que me has dicho, ya se que habría que usar el equity. De hecho lo mejor es usar siempre el equity.

Saludos.

Publicado: 11 Nov 2008 09:23
por Ciclo
Hola:

Está tarde envio mi último bloque 1c terminado.

estados, tu trabajo me ocupo yo de revisarlo. Cuando lo haya terminado de revisar lo lanzaré añadiendo al nombre del archivo la palabra rev.1. Si posteriormente alguien mas lo lee y hace alguna modificación o mejora adicional, deberá lanzarlo con la palabra rev.2 etc.

Saludos

Publicado: 11 Nov 2008 14:20
por Ciclo
Ciclo escribió:Hola:

Está tarde envio mi último bloque 1c terminado.

estados, tu trabajo me ocupo yo de revisarlo. Cuando lo haya terminado de revisar lo lanzaré añadiendo al nombre del archivo la palabra rev.1. Si posteriormente alguien mas lo lee y hace alguna modificación o mejora adicional, deberá lanzarlo con la palabra rev.2 etc.

Saludos
"Quita larchivo"