CustomTicksReplace

Sustituye totalmente la historia de precios del instrumento personalizado en el intervalo temporal indicado, con los datos de la matriz del tipo MqlTick.

int  CustomTicksReplace(
   const string     symbol,            // nombre del símbolo
   long             from_msc,          // desde qué fecha
   long             to_msc,            // hasta qué fecha
   const MqlTick&   ticks[],           // matriz con los datos de ticks que necesitamos aplicar al instrumento personalizado
   uint             count=WHOLE_ARRAY  // número de elementos que se usarán de la matriz ticks[]
   );

Parámetros

symbol

[in]  Nombre del instrumento personalizado.

from_msc

[in]  Hora del primer tick en la historia de precio del diapasón indicado, que debe ser eliminado. Hora en milisegundos desde el 01.01.1970.

to_msc

[in]  Hora del último tick en la historia de precio del diapasón indicado, que debe ser eliminado. Hora en milisegundos desde el 01.01.1970.

ticks[]

[in]   Matriz de los datos de ticks del tipo MqlTick, organizados en orden temporalmente ascendente.

count=WHOLE_ARRAY

[in]  Número de elementos de la matriz ticks[] que se usarán para la sustitución en el intervalo de tiempo indicado. El valor WHOLE_ARRAY indica que se debe usar todos los elementos de la matriz ticks[].

Valor devuelto

Número de ticks actualizados o bien -1 en caso de error.

Nota

Puesto que en el flujo de cotizaciones no es raro que varios ticks tengan la misma hora con una precisión de milisegundos (la hora exacta del tick se guarda en el campo time_msc de la estructura MqlTick), la función CustomTicksReplace no realiza la clasificación automática de los elementos de la matriz ticks[] por hora. Por eso, la matriz de ticks debe ordenarse preliminarmente de forma temporalmente ascendente.

La sustitución de los ticks se realiza de forma consecutiva un día detrás otro hasta la hora indicada en to_msc o bien hasta el momento de aparición de un error. Primero se procesa el primer día del diapasón indicado, después el siguiente, y así sucesivamente.  En cuanto se detecte una discordancia de la hora del tick con respecto al orden ascendente (no decreciente), el proceso de sustitución de ticks se interrumpirá de inmediato en el día actual. En este caso, además, los ticks de los días anteriores se sustituirán con éxito, mientras que el día actual (en el momento del tick incorrecto) y el resto de los días en el intervalo indicado permanecerán sin cambios.

Si en la matriz ticks[] no hay datos de ticks disponibles de algún día (en general, de una longitud cualquiera), después de aplicar los datos de ticks de ticks[] en la historia del instrumento personalizado se forma un "agujero", que se corresponde con los datos omitidos. En otras palabras, la llamada de CustomTicksReplace con ticks cortados en un intervalo concreto será equivalente a la eliminación de una parte de la historia de ticks, como si se llamara CustomTicksDelete con el intervalo "agujero".

Si no existen datos del intervalo de tiempo indicado en la base de ticks, CustomTicksReplace sencillamente añadirá a ella los ticks de la matriz ticks[].

La función CustomTicksReplace trabaja directamente con la base de datos de ticks.

 

Vea también

CustomRatesDelete, CustomRatesUpdate, CustomTicksDelete, CopyTicks, CopyTicksRange