Questions pour les débutants en MQL5. Les professionnels ne passent pas leur chemin. - page 3

 

Il est peut-être temps d'appeler les modérateurs à l'aide et de leur demander de supprimer les deux premiers messages du fil (j'espère que M. Yedelkin ne sera pas offensé, merci à lui d'avoir répondu à mes questions). J'espère que monsieur Yedelkin n'est pas offensé, ce post et renommer ce sujet en"souhaits des enthousiastes sur l'amélioration de MT5" ou quelque chose comme ça à leur discrétion.... Je vais essayer de changer le nom de ce sujet pour quelque chose d'autre, je vais le laisser à sa place.

Peut-être que du bien en sortira ? Peut-être l'entendront-ils).

 

a décidé de lire le fichier hst, maisFileReadString a donné des hiéroglyphes.

Comment puis-je lutter contre ça ?

J'écris l'en-tête µl4 de 5 "EURUSD" "(C)opyright 2003, MetaQuotes Software Corp. Je suis en train de le regarder.

J'ai tout compris sauf les lignes, pourquoi c'est comme ça ?

expéditeur 5

#define AMOUNT_OHLCV 5 
static double OLHCV[AMOUNT_OHLCV];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void  OnStart()  {

  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string Symbol_Create  = "EURDDD";     
  string FileName = Symbol_Create + "1.hst";
  int handle = FileOpen(FileName, FILE_BIN|FILE_WRITE);
   
  string s="";
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 400,4)+"\n";            
  s=s+"FileWriteString "+FileWriteString(handle, "(C)opyright 2003, MetaQuotes Software Corp.",32)+"\n"; 
  s=s+"FileWriteString "+FileWriteString(handle, Symbol_Create, 6)+"\n"; //Symbol      
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 1,4)+"\n";   //Period        
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 4,4)+"\n";  //Digits           
  s=s+"FileWriteArray "+FileWriteArray(handle, Tmp, 0, 15)+"\n";           
  Comment(s);


   MqlRates EURUSD[];
   int bars=CopyRates("EURUSD",1,0,Bars("EURUSD",1),EURUSD);
   ArraySetAsSeries(EURUSD,true);
   
   for(int i=bars-1;i>=0;i--){
        OLHCV[0] = EURUSD[i].open;
        OLHCV[1] = EURUSD[i].low;
        OLHCV[2] = EURUSD[i].high;
        OLHCV[3] = EURUSD[i].close;
        OLHCV[4] = EURUSD[i].real_volume;
        
        double Tmph = OLHCV[ArrayMaximum(OLHCV,0, AMOUNT_OHLCV - 1)];
        OLHCV[1] = OLHCV[ArrayMinimum(OLHCV, 0, AMOUNT_OHLCV - 1)];
        OLHCV[2] = Tmph;
        FileWriteInteger(handle,EURUSD[i].time,4);  
        FileWriteArray(handle, OLHCV, 0, AMOUNT_OHLCV);
    }
  FileFlush(handle);
  FileClose(handle);
return;
}

récepteur 4

int start(){
  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string FileName = "EURDDD1.hst",s="";
  int handle = FileOpenHistory(FileName, FILE_BIN|FILE_WRITE|FILE_READ);

  s= s+FileReadInteger(handle,4)+"\n";            
  s= s+FileReadString(handle,64)+"\n"; 
  s= s+FileReadString(handle,12)+"\n";     
  s= s+FileReadInteger(handle,4)+"\n";           
  s= s+FileReadInteger(handle,4)+"\n";             
  s= s+FileReadArray(handle, Tmp, 0, 15)+"\n";  

  for(int i=20/*(FileSize(handle)-148)/44*/;i>=0;i--){
         s= s+TimeToStr(FileReadInteger(handle,4))+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";            
         s= s+"-----------------------------------------"+"\n";
  }
  Comment(s);
  return;
}
 
costy_:

et FileReadString a abandonné les hiéroglyphes.

Et c'est vraiment des hiéroglyphes... Les conséquences de l'externalisation, ou un œuf de Pâques à la mémoire de Kim Jong-il)
 
Figar0:
Et c'est vraiment en hiéroglyphes... Conséquences de l'externalisation, ou œuf de Pâques à la mémoire de Kim Jong-il)
OUTROHLIFE ET JUNG SIM KIN :(
 

Chers experts MT5, dans le terminal MT5, j'ai découvert que le nombre de barres (sur les minutes principalement) aux mêmes intervalles de temps est parfois différent.

Je comprends que s'il n'y a pas eu de changement de prix pendant la formation de la barre, celle-ci n'est pas dessinée du tout, c'est-à-dire qu'elle est ignorée.

Je suis choqué. Je veux le vérifier.

C'est vrai ou pas ?

 
Edic:

Chers experts MT5, dans le terminal MT5, j'ai découvert que le nombre de barres (sur les minutes principalement) aux mêmes intervalles de temps est parfois différent.

Je comprends que s'il n'y a pas eu de changement de prix pendant la formation de la barre, celle-ci n'est pas dessinée du tout, c'est-à-dire qu'elle est ignorée.

Je suis choqué. Je veux le vérifier.

C'est vrai ou pas ?

S'il n'y a pas eu de ticks pendant la période de formation de la barre, la barre ne sera pas dessinée.
 

Comment puis-je traiter tous les objets graphiques d'un certain type (par exemple OBJ_HLINE) ?

Avec ObjectsTotal je peux connaître le nombre d'objets de ce type sur le graphique, mais comment les énumérer par le même pour, si je ne connais pas le nom de l'objet au préalable.

La tâche spécifique est que je dois énumérer toutes les lignes horizontales du graphique et obtenir leurs valeurs dans un tableau.

Merci

 
Olegts:

Comment puis-je traiter tous les objets graphiques d'un certain type (par exemple OBJ_HLINE) ?

Avec ObjectsTotal je peux connaître le nombre d'objets de ce type sur le graphique, mais comment les énumérer par le même pour, si je ne connais pas le nom de l'objet au préalable.

La tâche spécifique est que je dois énumérer toutes les lignes horizontales du graphique et obtenir leurs valeurs dans un tableau.

Merci

Utilisez"ObjectName" après "ObjectsTotal".
 
barabashkakvn:
Utilisez"ObjectName" après "ObjectsTotal".
Compris, merci)
 
barabashkakvn:
S'il n'y a pas de ticks dans l'intervalle de temps de la barre, celle-ci n'est pas construite.
Merci)
Raison: