CustomTicksAdd

Añade a la historia de precios del instrumento personalizado los datos de la matriz del tipo MqlTick. El símbolo personalizado debe ser elegido en la ventana de MarketWatch (Observación del mercado).

int  CustomTicksAdd(
   const string     symbol,             // nombre del símbolo
   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.

ticks[]

[in]   Matriz con los datos de ticks del tipo MqlTick, organizados en orden temporal ascendente, es decir, es necesario que ticks[k].time_msc <= ticks[n].time_msc, si k<n.

count=WHOLE_ARRAY

[in]  Número de elementos de la matriz ticks[] que se usarán para la adición. El valor WHOLE_ARRAY indica que se debe usar todos los elementos de la matriz ticks[].

Valor devuelto

Número de ticks añadidos o bien -1 en caso de error.

Nota

La función CustomTicksAdd solo funciona para los símbolos personalizados abiertos en la ventana MarketWatch (Observación del mercado). Si el símbolo no se ha elegido en MarketWatch, para insertar ticks será necesario usar CustomTicksReplace.

La función CustomTicksAdd permite transmitir los ticks como si llegaran desde el servidor del bróker. La información no se guarda directamente en el banco de datos de ticks, sino que es enviada a la ventana "Observación de mercado". Y ya desde ella, el terminal almacena los ticks en su base. Cuando la cantidad de información transferida por la llamada tiene un gran volumen, la función cambia su comportamiento para ahorrar recursos. Si se transfieren más de 256 ticks, los datos se dividen en dos partes. La primera de ellas (la grande) se carga de inmediato en la base de ticks (como hace CustomTicksReplace). La segunda, que consta de los últimos 128 ticks, se transfiere a la ventana "Observación de mercado" y, después de ello, es guardada por el terminal en la base de ticks.

La estructura MqlTick tiene dos campos con el valor de hora - time (hora del tick en segundos) y  time_msc (hora del tick en milisegundos) que llevan la cuenta desde el 01 de enero del año 1970. El procesamiento de estos campos en los ticks añadidos se realiza según las normas siguientes en el orden indicado:

  1. si el valor ticks[k].time_msc!=0, lo usaremos para rellenar el campo ticks[k].time, es decir, para el tick se muestra la hora ticks[k].time=ticks[k].time_msc/1000 (división en números enteros)
  2. si ticks[k].time_msc==0 y ticks[k].time!=0, la hora en milisigundos resultará multiplicada por 1000, es decir,  ticks[k].time_msc=ticks[k].time*1000
  3. si ticks[k].time_msc==0 y ticks[k].time==0, en estos campos se registra la hora actual del servidor comercial con una precisión de milisegundos en el momento de la llamada de la función CustomTicksAdd.

Si el valor de los campos ticks[k].bid, ticks[k].ask, ticks[k].last o ticks[k].volume es superior a cero, en el campo ticks[k].flags se escribirá una combinación de las banderas correspondientes:

  • TICK_FLAG_BID — el tick ha cambiado el precio bid
  • TICK_FLAG_ASK  — el tick ha cambiado el precio ask
  • TICK_FLAG_LAST — el tick ha cambiado el precio de la última transacción
  • TICK_FLAG_VOLUME — el tick ha cambiado el volumen

Si el valor de algún campo es menor o igual a cero, la bandera que le corresponda no se anotará en el campo ticks[k].flags.

 

Las banderas TICK_FLAG_BUY y TICK_FLAG_SELL no se añaden a la historia del instrumento personalizado.

 

Vea también

CustomRatesDelete, CustomRatesUpdate, CustomTicksReplace, CopyTicks, CopyTicksRange