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

 
Igor Zakharov:

Comment le saurais-je ? La personne qui a posé la question a utilisé iLow(), il en a donc besoin. Peut-être que c'est plus simple, peut-être qu'il prévoit de se référer à un autre symbole ou à une autre période de temps par le biais d'une variable d'entrée (je ne me souviens pas s'il y a des copyrates en quadruple?).

C'est le cas.

 
psyman:

Je n'ai pas posté le code ici, mais j'ai écrit le plus simple pour simplifier l'analyse.

Dites-moi ce qui ne va pas, la vitesse maximale n'est pas claire.

Vladimir Karputov:

Le code est GRANDEMENT GLUCIEUX - car à chaque tic, il y a un passage sur TOUTES les barres.


En quatrième, c'étaitIndicatorCounted(), je ne sais pas quelles sont les possibilités en cinquième, et il n'y a même pas d'endroit où lire à ce sujet.

Cette option est-elle bonne, ou peut-elle être simplifiée ?

int OnCalculate(....)
{
   int i, Counted_bars;
   
      Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
      i=Bars-Counted_bars-1;           // Индекс первого непосчитанного

      while(i>=0)                      // Цикл по непосчитанным барам
      { 
        .....
        
       i--;                          
      }
}

int IndicatorCounted()
  {
   if(prev_calculated>0) return(prev_calculated-1);
   if(prev_calculated==0) return(0);
   return(0);
  }
 
psyman:


En Q4, il y avaitIndicatorCounted(), je ne sais pas quelles sont les possibilités en 5 et il n'y a nulle part où lire à ce sujet.

Cette option est-elle bonne, ou peut-elle être simplifiée ?

Aide, forum, articles - est-ce le "nulle part à lire" à votre avis ? Si seulement vous en aviez le désir. En fait, vous écrivez dans le sujet de l'ancien terminal, alors que votre question porte sur MQL5. Vous avez une divergence.

J'ai quitté le sujet.

 
psyman:


En Q4, il y avaitIndicatorCounted(), je ne sais pas quelles sont les possibilités en 5 et il n'y a nulle part où lire à ce sujet.

Cette option est-elle bonne ou peut-elle être simplifiée ?

Maintenant, dans mql4 et mql5, la fonction d'indicateur principal a tout ce dont vous avez besoin.

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime& time[],     // Time
                 const double& open[],       // Open
                 const double& high[],       // High
                 const double& low[],        // Low
                 const double& close[],      // Close
                 const long& tick_volume[],  // Tick Volume
                 const long& volume[],       // Real Volume
                 const int& spread[]         // Spread
   );

prev_calculated est le nombre de barres calculées.

 

Bonjour.

Si le prix a changé de 30 pips en 60 secondes, je marquerai la barre.

 for(int i=limit; i>=0; i--)
     {
      datetime t_=TimeCurrent();
      if(t_>t_b+60)
        {
         t_b = TimeCurrent();
         pr_b=close[0];
        }
      if(MathAbs(close[0]-pr_b)>=30*Point && t_<t_b+60)
        {
         BufferUP[i]=low[i]-10*Point;
        }

     }

Qu'est-ce qu'il y a ?

 
lil_lil:

Bonjour.

Si le prix a changé de 30 pips en 60 secondes, je marquerai la barre.

Qu'est-ce qu'il y a ?

Pourquoi est-ce que c'est comme ça

int limit=rates_total-prev_calculated-1;

et pas comme ça ?

int limit=rates_total-prev_calculated;

Où dois-je fixer la limite ?

   if(limit>1)
     {
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }

Je n'ai pas cherché plus loin.

 
Artyom Trishkin:

Pourquoi est-ce que c'est comme ça

et pas comme ça ?

Où se situe la limite ?

Je n'ai pas cherché plus loin.

Merci, mais il n'y a pas de résultat de cette façon non plus. Regardez plus loin, s'il vous plaît.

 
lil_lil:

Merci, mais il n'y a pas de résultat de cette façon non plus. Regardez plus loin, s'il vous plaît.

Qu'est-ce que c'est ?

datetime t_=TimeCurrent();

Quel temps prenez-vous dans la boucle ? Qu'est-ce que TimeCurrent()?

 
Bonjour !
Il y a une fonction dans l'Expert Advisor pour obtenir le texte d'un lien.... je l'obtiens avec cette bibliothèque :
https://github.com/sergeylukin/mql4-http
Tout va bien et il n'y a aucune question à ce sujet !
Le problème est le suivant :
Dans ce lien, le texte est systématiquement mis à jour et le terminal ne le perçoit pas, même lorsque vous réinitialisez la chouette du tableau et la remettez en place ! Seules la fermeture et l'ouverture du terminal sont utiles ! Peut-être qui sait comment le réparer ?
 
lil_lil:

Bonjour.

Si le prix a changé de 30 pips en 60 secondes, je marquerai la barre.

Qu'est-ce qu'il y a ?

Je suis récemment tombé sur une commande de freelance avec une tâche similaire. N'est-ce pas le travail que vous faites ?

Raison: