
METATRADER
como decirle que se ejecute el codigo solo al cierre de vela
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. 

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.
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.
Re: como decirle que se ejecute el codigo solo al cierre de
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.
if(Bars>lstBars)NewBar=true;
lstBars=Bars;
if(NewBar)
{
// codigo a ejecutar en cambio de barra
}
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. 

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.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.
Saludos.
Sencillo: Balance es el saldo en cuenta considerando las posiciones cerradas y Equitiy es el valor en tiempo real de nuestra cuenta.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.
![]()
Gracias por adelantado
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
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...

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.X-Trader escribió:Sencillo: Balance es el saldo en cuenta considerando las posiciones cerradas y Equitiy es el valor en tiempo real de nuestra cuenta.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.
![]()
Gracias por adelantado
Saludos,
X-Trader
Saludos.
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
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
Hay muchas cosas mas importantes que el dinero ¡pero cuestan tanto!. Groucho Marx.
"Quita larchivo"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
- Adjuntos
-
- Libro 2 de MQL4- 1c.doc
- (880 KiB) Descargado 267 veces
Si te ha gustado este hilo del Foro, ¡compártelo en redes!