La Structure pour Retourner les Prix Courants (MqlTick)
C'est la structure pour le stockage des derniers prix du symbole. Elle est conçue pour récupérer rapidement les informations les plus courantes des prix.
struct MqlTick
{
datetime time; // Heure de la dernière mise à jour des prix
double bid; // Prix Bid actuel
double ask; // Prix Ask actuel
double last; // Prix de la dernière transaction (Last)
ulong volume; // Volume pour le prix Last actuel
long time_msc; // Heure de la dernière mise à jour du prix en millisecondes
uint flags; // Flags du tick
double volume_real; // Volume for the current Last price with greater accuracy
};
|
La variable de type MqlTick permet d'obtenir les valeurs Ask, Bid, Last et Volume avec un seul appel à la fonction SymbolInfoTick().
Les paramètres de chaque tick sont remplis indépendemment du fait de changements ou pas par rapport au dernier tick. Il est donc possible d'avoir un prix correct à tout moment dans le passé sans avoir besoin de rechercher les valeurs précédentes dans l'historique des ticks. Par exemple, même si seul le prix Bid change à l'arrivée d'un tick, la structure contient toujours les autres paramètres, incluant le dernier prix Ask, le dernier volume, etc.
Vous pouvez analyser les flags du tick pour savoir exactement quelles données ont été changées :
- TICK_FLAG_BID le tick a changé le prix Bid
- TICK_FLAG_ASK le tick a changé le prix Ask
- TICK_FLAG_LAST le tick a changé le prix Last
- TICK_FLAG_VOLUME le tick a changé le volume
- TICK_FLAG_BUY le tick est le résultat d'une transaction d'achat
- TICK_FLAG_SELL le tick est le résultat d'une transaction de vente
Exemple :
void OnTick()
{
MqlTick last_tick;
//---
if(SymbolInfoTick(Symbol(),last_tick))
{
Print(last_tick.time,": Bid = ",last_tick.bid,
" Ask = ",last_tick.ask," Volume = ",last_tick.volume);
}
else Print("Echec de SymbolInfoTick(), erreur = ",GetLastError());
//---
}
|
Voir aussi