Sincronización automática de históricos en metatrader

Estrenamos esta sección del blog con este artículo que a mi parecer es muy necesario para los algotraders, sobre todo aquellos que ya tienen experiencia en real y se han topado con este problema.

Cuando se inicia un metatrader nuevo los históricos no suelen estar bien cargados y eso puede provocar errores, ya que al faltar velas y haber huecos, indicadores como las medias móviles no van a hacer una lectura adecuada, y o tienes preparado tu EA para detectar esto o puedes tener operaciones «falsas», es decir, que por falta de esas velas el gatillo se dispara cuando no debe.

Hay una solución manual enormemente tediosa si usas muchos EAs en un mismo MT4, pero para que veais a lo que me refiero os lo explico.

Para asegurarse que un activo está sincronizado hay que ir a la ventana y con click derecho darle a Refresh. Hay un atajo en el teclado para esto que pocos conocen que es Alt + C + R.

Claro si sólo tenemos un sistema en un activo hacerlo a mano es fácil, el tema se complica cuando tienes muchas ventanas, como en mi caso Mt4s con 99 ventanas en cuentas DEMO.

Así que la mejor solución es hacer que esto se automatice y la solución que he encontrado es la siguiente.

Le añado este código a todos mis EAs que van a operar, en el evento start() ya que si lo ponemos en el Init se puede saturar si son muchos EAs no es conveniente, es muy mejorable el código pero os doy la idea principal.

#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,string lParam);
#import         // lo primero es importar la API de windows que vamos
                // a usar

if (boolVar == 0) // variable general bool que se activa en 
                  // el primer tick recibido
{
   Print("Dormir");
   Sleep(60000); // esperamos un poco que se cargue bien el mt4, sería
                 // más optimo un tiempo random
   RefreshRates(); 
   Print("Mandamos orden");
   PostMessageA (WindowHandle (Symbol(), Period()),
                 WM_COMMAND, 33324, 0); // emulamos el envio del refresh
                                        // a la ventana
}

Pues poco más que decir, de esta manera se rellenaran los huecos de los históricos para que el EA pueda trabajar correctamente.

Si os ha gustado el artículo un RT o un like en twitter se agradece.

Para más información teneis nuestro grupo de telegram enfocado al trading algorítmico.

Twitter @quan2mlabs. Síguenos.

Untitled

Be the first to comment

Leave a Reply

Tu dirección de correo no será publicada.


*