Comment obtenir les paramètres Open,Low,High,Close dans MQL5 ? - page 3

 

Un exemple de script :

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int i=0;i<3;i++)
      Print("# ",i,": ",DoubleToString(iOpen(Symbol(),PERIOD_CURRENT,i),Digits()));
//---
  }
//+------------------------------------------------------------------+

et le résultat :

2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 0: 1.11399
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 1: 1.11425
2019.07.29 20:36:41.215 1 (EURUSD,H1)   # 2: 1.11319


Édité.

Dossiers :
1.mq5  2 kb
 

Les voici.

Fonctionne à la fois sur 4pc et 5pc

Dans 4pc, appliquez Period(), Symbol(), etc.

En 5-pc, appliquer _Period, _Symbol(), etc.

iBars

Retourne le nombre de barres dans l'historique pour un symbole et une période spécifiés.

iBarShift

Renvoie le décalage de la barre à laquelle appartient le temps spécifié.

iClose

Renvoie le prix de clôture de la barre du graphique correspondant.

iHigh

Renvoie la valeur du prix maximal de la barre dans le graphique.

iHighest

Renvoie l'indice de la plus haute valeur trouvée du graphique correspondant.

iLow

Renvoie la valeur du prix minimum de la barre du graphique correspondant.

iLowest

Renvoie l'indice de la plus petite valeur trouvée du graphique correspondant.

iOpen

Renvoie la valeur du prix d'ouverture de la barre du graphique correspondant.

iTime

Renvoie l'heure d'ouverture de la barre du graphique correspondant.

iVolume

Renvoie la valeur du volume en ticks de la barre dans le graphique.

iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Avec CopyRates, ça a marché. Ça marche.
 

Et voici la varianteCopyRates

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(CopyRates(Symbol(),Period(),start_pos,count,rates)!=count)
      return;

   for(int i=0;i<count;i++)
      Print("Open # ",i,": ",DoubleToString(rates[i].open,Digits()));
//---
  }
//+------------------------------------------------------------------+

et le résultat

2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 0: 1.11399
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 1: 1.11425
2019.07.29 20:44:55.491 1 (EURUSD,H1)   Open # 2: 1.11319
Dossiers :
1.mq5  3 kb
 
Alexey Viktorov:

Alexey, c'est pour ceux qui sont dans un tank. Et pour les normaux, CopyRates() est disponible dans mql4 aussi. Alors oubliez tous les iOpen et autres bêtises. Je ne comprends même pas pourquoi ils l'ont mis dans mql5.

Oh ! Des petits gars sont apparus))

Pourquoi avons-nous besoin en pratique d'avoir un grand nombre de valeurs OHLC consécutives - ce que vous avez suggéré d'obtenir en utilisant CopyRates() ? - sauf pour méditer ? ))))

il n'y a pas beaucoup d'utilité pratique, voici une tâche triviale, le déchargement (ou l'utilisation) de l'indicateur Fractals, j'ai un tel code :

#define  Time(n)   iTime(NULL,0,n)
//+------------------------------------------------------------------+
void OnStart()
  {
   int handle=iFractals(NULL,0);
   if(handle==INVALID_HANDLE)
     {
      Print("Error№,",::GetLastError()," create handle indicator");
      return;
     }
   int count=0,i=0;
   double buffup[1],buffdn[1];
   while(i<Bars(_Symbol,_Period) && count<10)
     {
      if(CopyBuffer( handle,0,i,1, buffup)<1) Print("buffup , error № ",::GetLastError());
      if(CopyBuffer( handle,1,i,1, buffdn)<1) Print("buffup , error № ",::GetLastError());
      if(buffup[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Up = ",buffup[0]);
      if(buffdn[0]<EMPTY_VALUE && ++count>0)  Print("Bar № ",i," : ",Time(i)," , Fractals Dn = ",buffdn[0]);
     i++;
     }
  }
//+------------------------------------------------------------------+


montrez-moi votre code avec l'utilisation de CopyRates()...

 
Vladimir Karputov:

Et voici la varianteCopyRates

et le résultat

Mais, si nous avons besoin de suivre constamment les données sur les nouvelles barres, cela signifie qu'il faut se référer à CopyRates sur chaque tick et faire une série chronologique sur chaque tick ?

J'essaie de trouver le meilleur endroit pour mettre CopyRates.

 
Реter Konow:

Mais, si vous avez besoin de suivre constamment les données sur les nouvelles barres, alors devez-vous vous référer à CopyRates à chaque tick et faire une série temporelle à chaque tick ?

J'essaie de comprendre où il vaut mieux mettre les CopyRates.

J'ai déjà posé la question ci-dessus : POURQUOI ? Est-il nécessaire de prendre en compte la valeur de la barre zéro (la barre la plus à droite du graphique) ?

 
Vladimir Karputov:

J'ai déjà posé la question ci-dessus : POURQUOI ? Faut-il prendre en compte la valeur de la barre zéro (la barre la plus à droite du graphique) ?

Pour la table. Il y a quatre paramètres dans le tableau : Open, Close, High, Low, les 10 dernières barres, sans compter la barre actuelle.

Dernier, dans le sens d'un retour en arrière à partir de l'actuel (zéro).

 
Igor Makanu:

Ooh ! les petits sont apparus))

pourquoi, en pratique, avoir beaucoup de valeurs OHLC consécutives - que vous proposez d'obtenir en utilisant CopyRates() ? - sauf pour méditer ? ))))

il n'y a pas beaucoup d'utilité pratique, voici une tâche triviale, le déchargement (ou l'utilisation) de l'indicateur Fractals, j'ai un tel code :


montrez-moi votre code utilisant CopyRates()...

Igor, tu devrais aller en première année. Ils y enseignent les lettres et après avoir étudié, vous comprendrez la différence entre CopyRates et CopyBuffer.

Vous feriez mieux de me proposer une solution à ce problème SANS CopyRates( !)

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Comment obtenir les paramètres Open,Low,High,Close dans MQL5 ?

Retrog Konow, 2019.07.29 19:58

Pour la table. Il y a quatre paramètres dans le tableau : Open, Close, High, Low, les 10 dernières barres, sans compter la barre actuelle.

Enfin, je veux dire si vous reculez à partir de la valeur actuelle (zéro).


 
Реter Konow:

Pour la table. Il y a quatre paramètres dans le tableau : Open, Close, High, Low, les 10 dernières barres, sans compter la barre actuelle.

Dernier, dans le sens d'un retour en arrière à partir de l'actuel (zéro).

Dans ce cas, le CopyRate de la première mesure est sans ambiguïté de 10. Et ne l'appelez pas à chaque tic, mais suffisamment lorsqu'une nouvelle barre apparaît.

Raison: