Numero de la semana

Todo lo relacionado con este conocido software de trading made in Spain: estudios, indicadores, sistemas, plantillas, etc.
Responder
soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Numero de la semana

Mensaje por soyjuma » 04 Mar 2013 15:52

Muy buenas a todos. hacia mucho que no posteaba nada por aqui.
Hoy ha tocado de nuevo hacerlo y esta vez para una pregunta. Se como sacar el dia, el mes, el dia de la semana inclusive el año en el que estamos a través de la programación, pero .............. ¿ cómo puedo saber la semana del año en la que estamos ? Lo estoy intentando de diversas formas pero creo ya he llegado a un bucle del cual no salgo. ¿ Una ayuda ? ............... gracias.


http://nuevotrader.blogspot.com/
Mi trading diario en DAX

Avatar de Usuario
SpeakerTrading
Mensajes: 117
Registrado: 13 Dic 2012 21:26
Contactar:

Re: Numero de la semana

Mensaje por SpeakerTrading » 04 Mar 2013 15:58

Quizá sea esto:

http://www.ozgrid.com/forum/showthread.php?t=41999" onclick="window.open(this.href);return false;


Speaker Trading
http://speakertrading.wordpress.com/" onclick="window.open(this.href);return false;

soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Re: Numero de la semana

Mensaje por soyjuma » 04 Mar 2013 16:02

SpeakerTrading escribió:Quizá sea esto:

http://www.ozgrid.com/forum/showthread.php?t=41999" onclick="window.open(this.href);return false;
Con eso sigo teniendo el mismo inconveniente. Hoy estoy muy espeso, pero no consigo aplicar eso en Visualchart.


http://nuevotrader.blogspot.com/
Mi trading diario en DAX

Avatar de Usuario
Gamelu
Mensajes: 782
Registrado: 21 May 2009 16:49

Re: Numero de la semana

Mensaje por Gamelu » 04 Mar 2013 16:03

Define un punto de partida, haces una resta de fechas, te dara el numero de dias de intervalo y lo divides entre 7



Avatar de Usuario
Gamelu
Mensajes: 782
Registrado: 21 May 2009 16:49

Re: Numero de la semana

Mensaje por Gamelu » 04 Mar 2013 16:06

p.d:un año tiene 52 semanas



soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Re: Numero de la semana

Mensaje por soyjuma » 04 Mar 2013 16:24

Gamelu escribió:Define un punto de partida, haces una resta de fechas, te dara el numero de dias de intervalo y lo divides entre 7
Pero el punto de partida es variable en funcion de que es lo que se grafique, sin embargo el numero de semana si que es fijo independientemente de ese punto de partida. Y lo que busco es como saber hoy, en que semana del año me encuentro. El formato de fecha que devuelve VC lo tenemos en YYYYMMDD, formato militar, del cual puedo y ya se extraer el dia, el mes, el dia de la semana tal como lo he expuesto al inicio. Espero explicarme bien en mi problemática actual.
Gracias


http://nuevotrader.blogspot.com/
Mi trading diario en DAX

Avatar de Usuario
Gamelu
Mensajes: 782
Registrado: 21 May 2009 16:49

Re: Numero de la semana

Mensaje por Gamelu » 04 Mar 2013 17:05

Por ejemplo el 01/01/2012 es semana 1,

hoy 4/3/2013 - 01/01/2012 = 428

428/7=61,14
No puede ser mayor a 52 , por lo tanto

61,14 - 52 = 9,14

Estamos en la semana 10 , eso es lo que tienes que programar



soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Re: Numero de la semana

Mensaje por soyjuma » 04 Mar 2013 17:14

Gamelu escribió:Por ejemplo el 01/01/2012 es semana 1,

hoy 4/3/2013 - 01/01/2012 = 428

428/7=61,14
No puede ser mayor a 52 , por lo tanto

61,14 - 52 = 9,14

Estamos en la semana 10 , eso es lo que tienes que programar
Bien eso hasta creo sabria hacerlo, pero el grafico es variable en el tiempo y no le puedo poner una fecha de partida fija. Puede que la primera fecha del grafico sea del año 2003 y la de hoy ................. o la inicial sea de 1999 o ...... cualquier fecha de cualquier momento.
Es para revisar como se comportan determinadas materia primas y/o indices en funcion de la semana del año en que nos encontremos, buscando un comportamiento repetitivo. Por ejemplo, sin que sirva para nada en concreto, posicionarse largo la primera semana del año y posicionarse corto la 33 semana del año ...... o ................ según pueda estudiarlo.
Gracias de nuevo


http://nuevotrader.blogspot.com/
Mi trading diario en DAX

Avatar de Usuario
Gamelu
Mensajes: 782
Registrado: 21 May 2009 16:49

Re: Numero de la semana

Mensaje por Gamelu » 04 Mar 2013 17:26

Que necesites de un punto de partida no tiene que obligarte a meterlo tu manualmente, sino que el punto de partida puedes y debes de usar el año actual el mes 01 y dia 01, ...

Vamos que tienes que hacer otro script par que el punto de partida sea el 01/01/año .



soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Re: Numero de la semana

Mensaje por soyjuma » 04 Mar 2013 17:56

Gamelu escribió:Que necesites de un punto de partida no tiene que obligarte a meterlo tu manualmente, sino que el punto de partida puedes y debes de usar el año actual el mes 01 y dia 01, ...

Vamos que tienes que hacer otro script par que el punto de partida sea el 01/01/año .
Voy a intentarlo por esa vía, aunque debo estar muy torpe hoy, porque los primeros inte tos no me sale correctamente.
Gracias de nuevo


http://nuevotrader.blogspot.com/
Mi trading diario en DAX

soyjuma
Mensajes: 170
Registrado: 31 Mar 2008 15:29

Re: Numero de la semana

Mensaje por soyjuma » 07 Mar 2013 10:02

No lo he conseguido perfecto, pero casi e inicialmente puede ser que me sirva para lo que andaba buscando. Expongo aqui el código de lo programado por si alguien quiere o puede mejorarlo para determinados días que da un fallo de 1 semana. A parte de no tener en cuenta los años bisiestos, donde febrero tendría 29 días.

anyo = Int(.Date / 10000)
mes = Int(.Date / 100) - (anyo * 100)
dia = Int(.Date) - (mes * 100) - (anyo * 10000)
cadena = dia & "/" & mes & "/" & anyo
diasemana = DatePart("w", cadena, 2) '1=lunes,2=martes,3=miercoles,4=jueves,5=viernes

If anyo <> Int(.Date(1) / 10000) Then Semana = 1

If mes = 1 Then
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 1 Then Semana = 1
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 2 Then Semana = 1
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 3 Then Semana = 1
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 4 Then Semana = 1
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 5 Then Semana = 52
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 6 Then Semana = 52
If DatePart("w", 1 & "/" & mes & "/" & anyo, 2) = 7 Then Semana = 52
End If

If mes = 1 And DatePart("w", 4 & "/" & mes & "/" & anyo, 2) = 1 Then Semana = 1
If mes = 1 And DatePart("w", 3 & "/" & mes & "/" & anyo, 2) = 1 Then Semana = 1
If mes = 1 And DatePart("w", 2 & "/" & mes & "/" & anyo, 2) = 1 Then Semana = 1

'If diasemana = 1 And .Date <> .Date(1) Then Semana = Semana + 1
If mes = 1 And dia >= 3 And dia < 7 Then Semana = 1
If mes = 1 And dia >= 7 And .Date <> .Date(1) Then
Semana = Semana + Int(dia / 7)
SemanaActual = Semana
End If
If mes = 1 And dia >= 7 And .Date = .Date(1) Then Semana = SemanaActual

If mes = 2 Then
Semana = Int(dia + 31) / 7
If diasemana = 1 And .Date <> .Date(1) Then
Semana = Semana + 1
SemanaActual = Semana
End If
If diasemana = 1 And .Date = .Date(1) Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) + 1 Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) Then Semana = SemanaActual
End If

If mes = 3 Then
Semana = Int(dia + 31 + 28) / 7
If diasemana = 1 And .Date <> .Date(1) Then
Semana = Semana + 1
SemanaActual = Semana
End If
If diasemana = 1 And .Date = .Date(1) Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) + 1 Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) Then Semana = SemanaActual
End If

If mes = 4 Then
Semana = Int(dia + 31 + 28 + 31) / 7
If diasemana = 1 And .Date <> .Date(1) Then
Semana = Semana + 1
SemanaActual = Semana
End If
If diasemana = 1 And .Date = .Date(1) Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) + 1 Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) Then Semana = SemanaActual
End If

If mes = 5 Then
Semana = Int(dia + 31 + 28 + 31 + 30) / 7
If diasemana = 1 And .Date <> .Date(1) Then
Semana = Semana + 1
SemanaActual = Semana
End If
If diasemana = 1 And .Date = .Date(1) Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) + 1 Then Semana = SemanaActual
If diasemana >= 2 And diasemana <= 5 And .Date = .Date(1) Then Semana = SemanaActual
End If

y asi sucesivamente para el resto de meses ....
Un saludo


http://nuevotrader.blogspot.com/
Mi trading diario en DAX


Responder

Volver a “Visual Chart”