Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1381

 
Alexey Viktorov:

Il n'y a rien de surnaturel là-dedans. L'habituel OBJ_BITMAP_LABEL et dans celui-ci ce que vous voulez comme ressource. Kanvas fonctionne également dans OBJ_BITMAP_LABEL.

Mais votre méthode est beaucoup plus facile pour un développeur novice.

Je comprends votre point de vue, merci.
 
Alexey Viktorov:

Veuillez apprendre comment insérer du code dans un message.

Et pour la question : Lisez la documentation sur CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
Ça ne marche pas. Chaque fois que OnTick est appelé, le résultat de la variable Ticks est 0.
 
Boris:
Ça ne marche pas. Chaque fois que OnTick est appelé, le résultat de la variable Ticks est 0.

Vous êtes sûr d'avoir besoin des ticks passés à l'entrée. 10 secondes ne sont pas si longues, vous pouvez attendre et compter les tics réels et leur nombre.

En général, il faut 2 variables pour la première seconde et se rappeler combien de ticks il y a eu en 9 secondes et les additionner, puis compter les ticks pour la seconde suivante, soustraire la première et ajouter la dernière. Les résultats doivent être stockés soit dans un tableau, soit dans une variable.

 
Valeriy Yastremskiy:

Vous êtes sûr d'avoir besoin des ticks passés à l'entrée. 10 secondes ne sont pas si longues, vous pouvez attendre et compter les tics réels et leur nombre.

En général, il faut 2 variables pour la première seconde et se rappeler combien de ticks il y a eu en 9 secondes et les additionner, puis compter les ticks pour la seconde suivante, soustraire la première et ajouter la dernière. Ces résultats sont enregistrés soit dans un tableau, soit dans une variable.

Il s'avère que cela ne peut pas être fait par les fonctions CopyTicks et CopyTicksRange ?

Merci.

 
Boris:
Ça ne marche pas. Chaque fois que OnTick est appelé, le résultat de la variable Ticks est 0.

Lisez la documentation ! !!

Ou bien voulez-vous que toute la documentation soit copiée ici morceau par morceau ???

from_msc

[Date à partir de laquelle les ticks sont demandés. Spécifié en millisecondes à partir du 01.01.1970. Si le paramètrefrom_msc n'est pas spécifié, alors les ticks sont retournés depuis le début de l'historique. Les ticks avec un temps >= from_msc sont retournés.

to_msc

[Date à laquelle les ticks sont demandés. Spécifié en millisecondes à partir du 01.01.1970. Les ticks avec un temps <= to_msc sont retournés. Si le paramètreto_msc n'est pas spécifié, tous les ticks jusqu'à la fin de l'historique sont donnés .

 
Valeriy Yastremskiy:

Vous êtes sûr d'avoir besoin des ticks passés à l'entrée. 10 secondes ne sont pas si longues, vous pouvez attendre et compter les tics réels et leur nombre.

En général, il faut 2 variables pour la première seconde et se rappeler combien de ticks il y a eu en 9 secondes et les additionner, puis compter les ticks pour la seconde suivante, soustraire la première et ajouter la dernière. Enregistrez les résultats soit dans un tableau, soit dans une variable.

Pourquoi donner un tel conseil ?

 
Boris:

Il n'est donc pas possible de le faire via les fonctions CopyTicks et CopyTicksRange ?

Merci.

Oui, vous pouvez. Lisez la documentation, puis demandez ce que vous ne comprenez pas dans la documentation. De cette façon, vous arriverez plus rapidement à la vérité).

 
Alexey Viktorov:

Pourquoi donner un tel conseil ?

Je le fais moi-même. Pourquoi se lancer dans des structures quand on peut régler soi-même les actions courtes.

 
Valeriy Yastremskiy:

Je le fais moi-même. Pourquoi se lancer dans des structures quand on peut régler soi-même les actions courtes.

Et je me gratte l'oreille gauche avec mon petit doigt droit... Je peux t'apprendre... Tu en as besoin ? N'apprenez pas aux autres ce que vous faites à travers......................

 
Valeriy Yastremskiy:

Vous pouvez. Lisez la documentation et demandez ensuite ce que vous ne comprenez pas dans la documentation. C'est le chemin le plus court vers la vérité).

Alors... Lisez la documentation (encore une fois).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Question. Qu'est-ce qu'il y a ? Il ne compte ni avec CopyTicksRange ni avec CopyTicks.