Del año 2004 hasta hace 1 mes.
667 dias.
La verdad es que no he hecho ningun otro estudio;
no se si el rango de hoy es dependiente del rango del dia anterior o
de las anteriores.
Una de las cosas que te das cuenta, es que si tomas la posicion
mala es muy complicado que te salten un stop loss de 160 puntos.
Concretamente el 5% de los dias en el que estas realmente desacertado
(Creias que comprabas a buen precio pero fue el maximo del dia!)
Os paso el codigo de Visual Chart:
Const Data As Long = 0
Const Fichero_Log As String = "max_min.txt"
Const Hora_Inicio_Dia As Long = 905
Const Hora_Fin_Dia As Long = 1730
Const Dia_Inicio As Long = 20000101
Const Dia_Fin As Long = 20061212
Dim Numero_Elementos As Long
Dim Fecha As Date
Dim Abierto As Boolean
Dim FSO, Linea
Dim Total As Long
Dim Suma_Cuadrados As Long
Dim Media As Long
Dim Elementos_Intervalo As Long
Dim Desv_Tipica As Long
Dim Dia_Anterior As Long
Public APP As SysUserApp
Implements System
Public Sub System_OnInitCalculate()
Set FSO = CreateObject("Scripting.FilesystemObject")
Set Linea = FSO.CreateTextFile("c:\" & Fichero_Log)
Total = 0
Numero_Elementos = 0
Suma_Cuadrados = 0
Media = 109
Elementos_Intervalo = 0
Desv_Tipica = 57
escribir ("empieza la simulacion")
With APP
End With
End Sub
Public Sub System_OnCalculateBar(ByVal Bar As Long)
With APP
If .Date > Dia_Inicio And .Date < Dia_Fin Then
Dim Rango
Rango = .High - .Low
escribir ("Rango=" & Rango & " Fecha=" & .Date)
Numero_Elementos = Numero_Elementos + 1
Total = Total + Rango
Suma_Cuadrados = Suma_Cuadrados + (Rango - Media) ^ 2
'escribir (Rango & "desv= " & Desv_Tipica & "media= " & Media)
If ((Rango <20>= 40)) Then
Elementos_Intervalo = Elementos_Intervalo + 1
escribir (.Date)
Dia_Anterior = .Date
End If
End If
End With
End Sub
Public Sub System_OnSetParameters(ParamArray ParamList() As Variant)
'¡¡ Parameters initialization
'Parameters initialization !!
End Sub
Public Sub System_OnCalculateRange(ByVal StartBar As Long, ByVal FinalBar As Long)
Dim i As Long
i = APP.StartBar
If StartBar > i Then
i = StartBar
End If
While Not APP.ShouldTerminate And i <= FinalBar
APP.CurrentBar = i
System_OnCalculateBar i
i = i + 1
Wend
escribir ("total =" & Total)
escribir ("numero elementos = " & Numero_Elementos)
escribir ("suma cuadrados = " & Suma_Cuadrados)
escribir ("elementos intervalo = " & Elementos_Intervalo)
cerrar
End Sub
Private Sub SysUserAppInstance_OnConnection(ByVal Application As SysUserApp, ByVal MTDllInst As Object, Custom() As Variant)
Set APP = Application
End Sub
Public Sub escribir(S1 As String)
Linea.WriteLine (S1)
'Linea.Close
End Sub
Public Sub cerrar()
Linea.Close
End Sub
Te creara el fichero max_min.txt; en el directorio c:\
La variable Elementos_Intervalo almacena el numero de elementos
que cumplen el rango, en ese caso entre 20 y 40.
Numero_Elementos contiene el numero de elementos de la muestra
-------------
Un saludo MartinG; tus estudios tambien van encaminados a lo que yo
hago pero los tuyos son mejores
