Saludos hermanos.
Espero que hagais buen uso de esto...
Libreria para gestión de ordenes virtuales
COMENTADA EN CASTELLANO:
Tiene dos modos de uso principales, como optimizador interno y como Array virtual de ordenes a tiempo real(del post anterior).
YsEkU escribió:
*Por un lado y para ejecutar ordenes a tiempo real, emula las ordenes de tipo:
Order*():{OrderSelect(),OrderSend()... etc) por
v.Order*():{v.OrderSelect(),v.OrderSend()... etc) para lanzar las ordenes en el registro virtual.
*Y para lanzar ordenes virtuales en el historico se usa la funcion v.SetOrder:
Para usar la libreria virtual, debes indicar en cada llamada en que barra te encuentras, asi como relizar el calculo de las operaciones abiertas con las funciones: SetCurrentDateTime(dt); Y RecalcTradeArray(dt);
---------------------------------------------------------------------------------------------------------------------
Ok, en el ejemplo teneis todo para entender el funcionamiento básico.
Pero tambien pueden hacerse otro tipo de optimizaciones con mucha más potencia, un problema clasico como la "Reversion a la Media" podría ser entrenado en una RN con perceptrones "a mano" encontrando el punto exacto de maximo beneficio.
Para hacer esto hay que entender bien las funciones SetCurrentDateTime(dt); Y RecalcTradeArray(dt);
La optimizacion NO TIENE POR QUE SER LINEAL, es decir, cuando por ejemplo el optimizador cierra una orden por un stop o un take, con SetCurrentDateTime() puedo volver de nuevo a la barra de apertura de la operación y volver a abrirla y optimizar parametros a fondo y con total libertad, no como el optimizador de serie ademas de poder usarlo desde dentro del experto.
Ademas para los que programais bien,el siguiente paso sería utilizar la estructura que tiene para gestionar el Array virtual en ficheros, para ir un pasito mas alla y realizar un array similar que lleve el control de los resultados de cada optimizacion emulando la salida del optimizador de serie pero internamente.
Y ya de mi ejemplo de optimizador, si se os ocurre una forma mejor para la estructura de separar el start() y el v.start()a mí me a parece que queda muy bien en el conjunto de la libreria, pero vamos se puede mejorar.
Espero ver algun optimizador más currado que el mío, la verdad es que en el post está todo lo necesarío, solo hay que montarse el tetris jejeje
Corto y cierro...