Duda de VBA para visual basic

Foro genérico sobre programas relacionados con el trading: gráficos, ejecución de órdenes, automatización, etc.
Responder
Avatar de Usuario
MARTING
Mensajes: 369
Registrado: 14 Jun 2005 05:21

Duda de VBA para visual basic

Mensaje por MARTING »

Hola amigos , tengo una duda sobre visual basic en Visual y como ya he mandado correos pero nadie parece saber solucionarla voy a ponerla aqui.

Necesitaba hacer una cosa sencilla para luego pasar a una cosa mas dificil.

Construir un indicador que sea aplicado en intradia y de el maximo de la sesion anterior.
Esto podria hacerlo eligiendo la funcion getsymbol y poniendo yo mismo la serie de la que quiero que extraiga el maximo pero asi no me serviria porque para cada mercado tendria que cambiar el simbolo.

Creo que se puede hacer algo con las compresiones para que sea automatico pero no sabo. : (

¿Alguien sabe hacer esto ?
Si alguien me puede echar un cable le estaria muy agradecido.

Un saludo.
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

El Maximo de la sesion anterior
se puede conseguir llevando una variable local
en el dia anterior que te guarde el maximo para ese
dia.
Para hacerlo al inicio de cada dia tienes que iniciarlo a 0
y luego ir comparando para cada maximo si lo supera o no.

Asi yo lo haria;
primero tienes que saber si estamos en un nuevo dia o no;
eso se hace comparando el .date con respecto al .date anterior,
por lo cual necesitamos otra variable para guardar el .date anterior
y si se da el caso del nuevo .date empezar a iniciar la variable de maximo a 0 para ir comparandolo con la barra del nuevo dia.

Por lo tanto necesitamos 2 variables globales:
Dia_Ant y Max_Ant
iniciadas asi por ejemplo:

Dia_Ant As Date
Max_Ant As Long
Max_Dia_Anterior As Long

Dia_Ant=18000101
Max_Ant=0


Por cada ciclo del bucle hacemos lo siguiente:

If (.Date != Dia_Ant)
'EN ESTE UNICO MOMENTO TENEMOS EN MAX_ANT el maximo del
'dia_anterior
Max_Dia_Ant=.High 'Guardamos en Max_Dia_Ant el Maximo
Max_Ant=.High ' Ponemos al maximo esta variable
Dia_Ant=.Date
Else
If (.High > Max_Ant) Then

Max_Ant=.High

End If

End If

En Max_Dia_Ant Guardamos el Maximo del Dia Anterior que podras usar.

Un saludo.

Si tienes mas dudas puedo incluir el VBA.
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

Te lo paso,

luego ya haces lo que quieras con
la variable de max_dia_ant que es la que precisas.
Adjuntos
maxant.vba
(112 KiB) Descargado 172 veces
Avatar de Usuario
MARTING
Mensajes: 369
Registrado: 14 Jun 2005 05:21

Mensaje por MARTING »

Te mando un privado mikelon si no te importa y sobre todo UN MILLON DE GRACIASS.

P.D o mas !
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Software”