Alquien me ayuda por favor.

Foro para cuestiones generales sobre la plataforma MetaTrader 4.

Alquien me ayuda por favor.

Notapor macmercurio » 25 Ene 2011, 21:05

Hola gracias por el interes, estoy armando un expert y me encuentro con la dificultad de que no se como optener datos historicos, lo que necesito es obtener el precio mas alto y precio mas bajo de una barra en una determinada hora del dia, y no se como he intentado con ihigh pero no obtengo los resultados deseados, si alguien sabe como hacer para poder obtener los datos, desde ya muchas gracias el foro esta fantastico.
macmercurio
 
Mensajes: 20
Registrado: 23 Ene 2011, 00:15
Karma: 0

Re: Alquien me ayuda por favor.

Notapor FXWizard » 27 Ene 2011, 01:09

Lo muevo aqui, más apropiado. Alguien puede echar una mano a macmercurio?

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: Alquien me ayuda por favor.

Notapor elcctroo » 27 Ene 2011, 15:04

Utiliza iHighest para encontrar el valor máximo de las ultimas n barras

VALmax=High[iHighest(NULL,0,MODE_HIGH,20,4)];

Un saludo.
elcctroo
 
Mensajes: 56
Registrado: 01 Dic 2009, 17:41
Karma: 0

Re: Alquien me ayuda por favor.

Notapor macmercurio » 27 Ene 2011, 19:54

Ok haré pruebas y les comento como fue, muchísimas gracias por la ayuda, la verdad soy muy novato en este lenguaje y por mas que leo montón me falta mucha practica, gracias.

La solución que tengo hasta ahora es tomar la barra anterior a la hora indicada con "iHigh[1]" y asignársela a una variable fuera del start. Así obtengo que tome los valores solo a esa hora el problema que me surja es que si apago el metatrader al encenderlo ya no tiene ese valor por eso buscaba otra solución, haber si con esta va bien, gracias y saludos.
macmercurio
 
Mensajes: 20
Registrado: 23 Ene 2011, 00:15
Karma: 0

Re: Alquien me ayuda por favor.

Notapor Pablunk » 28 Ene 2011, 15:38

Hola macmercurio,
creo entender que lo que quieres es extraer una información de una vela pasada. Osea históricamente.

Según tengo entendido esto no es posible en metatrader directamente. Pero podemos desarrollar un EA que lo haga.

Te lo adjunto abajo compliado.

Lo que he hecho ha sido crear un for que busque en las velas que el sistema maneja. Hasta que de con uno que se ajuste a
la hora que le pides al programa.

Evidentemente, debes llevar cuidado con el chart en el que pones el EA.

Si le pides que de los valores de las 12:22, y el chart es de 1H, lo mas cercano será las 12. Y los valores serían erróneos.

Si lo necesitas se puede adaptar para que extraiga los valores de una fecha concreta, también, ya me dices. DEW!

Extraer info velas.mq4
(1.21 KiB) 648 veces
Pablunk
 
Mensajes: 27
Registrado: 21 Dic 2010, 00:38
Karma: 0

Re: Alquien me ayuda por favor.

Notapor macmercurio » 31 Ene 2011, 12:20

Pablo gracias por el aporte ya estoy bastante encaminado en mi estrategia, mira claramente yo queria historicamente pero bueno lo que me pasastes me sirve lo he modificado asi:

for (int a=0;TimeToStr(convstrtotime,TIME_MINUTES)!=TimeToStr(Time[a],TIME_MINUTES);a++)
{
int b=a+1;//He agregado esto por que me leia la barra siguiente y no la de la hora.
ValorH=High[b];
ValorL=Low[b];
}
ya que me leia la barra siguiente y no la de la hora puesta pero con eso ya queda perfecto, hora estoy en una segunda face haber si logro terminarlo, no dispongo de mucho tiempo pero creo que la estrategia es muy buena, lo que me falta por crear y eso si que no se como hacerlo, es poder medir en milisegundos los ticks de entrada, osea yo lo que quiero agregarle ha este robot es un for por ejemplo pero que me mida el tiempo entre tick y tick y si entran x en y tiempos me devuelva un valor o o 1, entendes, desde ya muchas gracias

elcctro gracias por la colaboracion pero lo preciso era este, muchas gracias y haber si obtenemos un robot 100% rentable que es la estrategia que quiero obtener.saludos.
macmercurio
 
Mensajes: 20
Registrado: 23 Ene 2011, 00:15
Karma: 0

Re: Alquien me ayuda por favor.

Notapor elcctroo » 31 Ene 2011, 18:07

for (int a=0;TimeToStr(convstrtotime,TIME_MINUTES)!=TimeToStr(Time[a],TIME_MINUTES);a++)
{
// Mejor asi, nos ahorramos la variable b
Valormaxvela=High[a+1];
Valorminvela=Low[a+1];
}


Para medir el tiempo en ms entre tick y tick utiliza la función de la plataforma: GetTickCount()
elcctroo
 
Mensajes: 56
Registrado: 01 Dic 2009, 17:41
Karma: 0

Re: Alquien me ayuda por favor.

Notapor macmercurio » 31 Ene 2011, 20:47

ok elcctroo barbaro ya lo agrego y sigo armando.gracias por el aporte.
macmercurio
 
Mensajes: 20
Registrado: 23 Ene 2011, 00:15
Karma: 0


Volver a MetaTrader 4

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados