CustomTicksAdd

Aggiunge i dati da un array di tipo MqlTick allo storico dei prezzi di un simbolo personalizzato. Il simbolo personalizzato deve essere selezionato nella finestra del Watch Market.

int  CustomTicksAdd(
   const string     symbol,             // Nome del simbolo
   const MqlTick&   ticks[],            // L'array con i dati tick che devono essere applicati al simbolo personalizzato
   uint             count=WHOLE_ARRAY   // numero degli elementi dell'array ticks[] da utilizzare
   );

Parametri

symbol

[in] Il nome del simbolo personalizzato.

ticks[]

[in] Un array di dati tick di tipo MqlTick arrangiati in ordine di tempo da dati più vecchi a quelli più recenti, cioè ticks[k].time_msc <= ticks[n].time_msc, if k<n.

count=WHOLE_ARRAY

[in] Numero di elementi dell'array ticks[] da utilizzare per l'aggiunta. WHOLE_ARRAY significa che devono essere usati tutti gli elementi dell'array ticks[] .

Valore di Ritorno

Il numero di ticks aggiunti o -1 in caso di errore.

Ulteriori Note

La funzione CustomTicksAdd funziona solo per i simboli personalizzati aperti nella finestra del Watch Market. Se il simbolo non è selezionato nel Market Watch, è necessario aggiungere ticks utilizzando CustomTicksReplace.

La funzione CustomTicksAdd consente di trasmettere i ticks come se fossero stati consegnati dal server del broker. I dati vengono inviati alla finestra di Market Watch anziché essere scritti direttamente nel database dei tick. Il terminale quindi salva i ticks dal Market Watch in un database. Se la quantità di dati trasmessa durante la chiamata di funzione è ampia, il comportamento della funzione cambia in modo da ridurre l'utilizzo delle risorse. Se si passano più di 256 ticks, i dati vengono divisi in due parti. La prima, cioè la parte più grande, viene scritta direttamente sul database dei tick (come avviene in CustomTicksReplace). La seconda parte contenente 128 ticks viene passata alla finestra Market Watch, da cui il terminal salva i ticks nel database.

La struttura MqlTick ha due campi con il valore temporale: time (il tempo tick in secondi) e il time_msc (il tempo tick in millisecondi) che vengono contati dal 1° gennaio 1970. Questi campi nei codici aggiunti vengono elaborati nel seguente ordine:

  1. Se ticks[k].time_msc!=0, lo usiamo per riempire il campo ticks[k].time, cioè ticks[k].time=ticks[k].time_msc/1000 (divisione integer) viene impostato per il tick
  2. Se ticks[k].time_msc==0 e ticks[k].time!=0, il tempo in millisecondi viene ottenuto moltiplicando per 1000, cioè ticks[k].time_msc=ticks[k].time*1000
  3. If ticks[k].time_msc==0 e ticks[k].time==0, viene scritto in questi campi il corrente orario del trade server fino ai millisecondi come da momento della chiamata CustomTicksAdd.

Se il valore di ticks[k].bid, ticks[k].ask, ticks[k].last or ticks[k].volume, è più grande di zero, una combinazione di flags viene scritta nel campo ticks[k].flags:

  • TICK_FLAG_BID – il tick ha cambiato il prezzo bid
  • TICK_FLAG_ASK  – il tick ha cambiato il prezzo ask
  • TICK_FLAG_LAST – il tick ha cambiato il prezzo last deal
  • TICK_FLAG_VOLUME – il tick ha cambiato volume

Se il valore di un campo è inferiore o uguale a zero, la corrispondente flag non viene scritta nel campo ticks[k].flags.

 

Flags TICK_FLAG_BUY e TICK_FLAG_SELL non vengono aggiunte allo storico di un simbolo personalizzato.

 

Guarda anche

CustomRatesDelete, CustomRatesUpdate, CustomTicksReplace, CopyTicks, CopyTicksRange