Sobre barras y tiempos
Publicado: 14 Jul 2009 18:04
Buenas tardes,
Haciendo mis primeros "matojos" con el Visual Chart (qué lento y feo) y el Ninja Trader (mucho más chulo
). Estaba pensando en el famoso evento "CambioEnLaBarraQueEstamosMirando".
Este evento te informa de que ha pasado algo en la barra actual, o que la barra actual ha terminado, dependiendo de lo que le hayas dicho que te informe.
En el Ninja Trader, en concreto, este código:
/// <summary>
/// This method is used to configure the strategy and is called once before any strategy method is called.
/// </summary>
protected override void Initialize()
{
CalculateOnBarClose = false; // Avísame cada dos por tres...
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
Print(DateTime.Now.ToLongTimeString() + " - " + Time[0].ToLongTimeString() + " " + Close[0] + " - " + Time[1].ToLongTimeString() + " " + Close[1]);
}
No es más que imprimir la hora del sistema, la hora de la barra actual, el precio de cierre de la barra actual, la hora de la barra anterior y el precio de cierre de la barra anterior.
Cuando lo aplico al futuro del ESX en barras de 5 minutos, genera una salida como ésta en la pantalla de Output:
...
17:04:57 - 17:00:00 2353 - 16:55:00 2352
17:04:58 - 17:00:00 2353 - 16:55:00 2352
17:05:03 - 17:00:00 2353 - 16:55:00 2352
17:05:04 - 17:00:00 2353 - 16:55:00 2352
17:05:05 - 17:00:00 2352 - 16:55:00 2352
17:05:06 - 17:05:00 2352 - 17:00:00 2352
17:05:06 - 17:05:00 2352 - 17:00:00 2352
17:05:07 - 17:05:00 2352 - 17:00:00 2352
17:05:07 - 17:05:00 2353 - 17:00:00 2352
17:05:08 - 17:05:00 2353 - 17:00:00 2352
17:05:08 - 17:05:00 2353 - 17:00:00 2352
17:05:09 - 17:05:00 2352 - 17:00:00 2352
17:05:09 - 17:05:00 2353 - 17:00:00 2352
17:05:10 - 17:05:00 2352 - 17:00:00 2352
17:05:10 - 17:05:00 2353 - 17:00:00 2352
17:05:11 - 17:05:00 2352 - 17:00:00 2352
17:05:13 - 17:05:00 2352 - 17:00:00 2352
17:05:16 - 17:05:00 2353 - 17:00:00 2352
17:05:21 - 17:05:00 2353 - 17:00:00 2352
17:05:22 - 17:05:00 2353 - 17:00:00 2352
17:05:28 - 17:05:00 2353 - 17:00:00 2352
17:05:28 - 17:05:00 2353 - 17:00:00 2352
17:05:31 - 17:05:00 2353 - 17:00:00 2352
17:05:31 - 17:05:00 2353 - 17:00:00 2352
17:05:34 - 17:05:00 2353 - 17:00:00 2352
17:05:35 - 17:05:00 2353 - 17:00:00 2352
...
Entiendo que todos los indicadores que pida en estos momentos se basan exactamente en las barras fijas marcadas cada 5 minutos desde el inicio de la sesión. Imagino que en todos los programas de trading programables, el comportamiento es el mismo.
¿No sería más interesante, para poder trabajar con indicadores sobre barras COMPLETAS de cinco minutos en este caso, o de otro número de minutos en otros, que tuviéramos los datos de las barras partiendo del momento actual hacia atrás?
O sea, que si estamos en el momento 17:07:20, pueda saber cómo estaban las barras e indicadores de cinco minutos con inicio en las 17:03:20, 16:58:20...
¿Es esto una limitación?, ¿una desventaja?, ¿un error de concepto que venimos arrastrando de cuando los PCs eran más lentos?, ¿o de cuando la gente hacía "Elliot con ábaco"?... ¿o es que al final da igual?
Saludos,
Paco
Haciendo mis primeros "matojos" con el Visual Chart (qué lento y feo) y el Ninja Trader (mucho más chulo

Este evento te informa de que ha pasado algo en la barra actual, o que la barra actual ha terminado, dependiendo de lo que le hayas dicho que te informe.
En el Ninja Trader, en concreto, este código:
/// <summary>
/// This method is used to configure the strategy and is called once before any strategy method is called.
/// </summary>
protected override void Initialize()
{
CalculateOnBarClose = false; // Avísame cada dos por tres...
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
Print(DateTime.Now.ToLongTimeString() + " - " + Time[0].ToLongTimeString() + " " + Close[0] + " - " + Time[1].ToLongTimeString() + " " + Close[1]);
}
No es más que imprimir la hora del sistema, la hora de la barra actual, el precio de cierre de la barra actual, la hora de la barra anterior y el precio de cierre de la barra anterior.
Cuando lo aplico al futuro del ESX en barras de 5 minutos, genera una salida como ésta en la pantalla de Output:
...
17:04:57 - 17:00:00 2353 - 16:55:00 2352
17:04:58 - 17:00:00 2353 - 16:55:00 2352
17:05:03 - 17:00:00 2353 - 16:55:00 2352
17:05:04 - 17:00:00 2353 - 16:55:00 2352
17:05:05 - 17:00:00 2352 - 16:55:00 2352
17:05:06 - 17:05:00 2352 - 17:00:00 2352
17:05:06 - 17:05:00 2352 - 17:00:00 2352
17:05:07 - 17:05:00 2352 - 17:00:00 2352
17:05:07 - 17:05:00 2353 - 17:00:00 2352
17:05:08 - 17:05:00 2353 - 17:00:00 2352
17:05:08 - 17:05:00 2353 - 17:00:00 2352
17:05:09 - 17:05:00 2352 - 17:00:00 2352
17:05:09 - 17:05:00 2353 - 17:00:00 2352
17:05:10 - 17:05:00 2352 - 17:00:00 2352
17:05:10 - 17:05:00 2353 - 17:00:00 2352
17:05:11 - 17:05:00 2352 - 17:00:00 2352
17:05:13 - 17:05:00 2352 - 17:00:00 2352
17:05:16 - 17:05:00 2353 - 17:00:00 2352
17:05:21 - 17:05:00 2353 - 17:00:00 2352
17:05:22 - 17:05:00 2353 - 17:00:00 2352
17:05:28 - 17:05:00 2353 - 17:00:00 2352
17:05:28 - 17:05:00 2353 - 17:00:00 2352
17:05:31 - 17:05:00 2353 - 17:00:00 2352
17:05:31 - 17:05:00 2353 - 17:00:00 2352
17:05:34 - 17:05:00 2353 - 17:00:00 2352
17:05:35 - 17:05:00 2353 - 17:00:00 2352
...
Entiendo que todos los indicadores que pida en estos momentos se basan exactamente en las barras fijas marcadas cada 5 minutos desde el inicio de la sesión. Imagino que en todos los programas de trading programables, el comportamiento es el mismo.
¿No sería más interesante, para poder trabajar con indicadores sobre barras COMPLETAS de cinco minutos en este caso, o de otro número de minutos en otros, que tuviéramos los datos de las barras partiendo del momento actual hacia atrás?
O sea, que si estamos en el momento 17:07:20, pueda saber cómo estaban las barras e indicadores de cinco minutos con inicio en las 17:03:20, 16:58:20...
¿Es esto una limitación?, ¿una desventaja?, ¿un error de concepto que venimos arrastrando de cuando los PCs eran más lentos?, ¿o de cuando la gente hacía "Elliot con ábaco"?... ¿o es que al final da igual?
Saludos,
Paco