Questions des débutants MQL5 MT5 MetaTrader 5 - page 700

 
Vitalie Postolache:
Urgent à réaliser !!!!!!!!!!!!!
pas si urgent, une copie à moi d'abord)
 
Treder9:
J'aimerais en avoir un vrai pour 50 dollars moi-même.

Vous pouvez obtenir une bonne augmentation d'un quidam comme ça.

♪ mais personne ne peut le faire ♪

Je réponds !
 
Taras Slobodyanik:

Vous devez ajouter un paramètre

request.type_time=ORDER_TIME_DAY;


Merci, j'aimerais juste pouvoir trouver comment ajouter...

 

Je n'arrive pas à trouver comment exprimer High[] en cinq ???

double High[]
double High[];
int count;        // сколько копируем
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,_Period,0,count,High);
 
-Aleks-:

Je n'arrive pas à trouver comment exprimer High[] en 5 ???

Je l'exprime de cette façon, ce n'est peut-être pas écrit correctement, mais ça marche :

double iOpen(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Open[];
  double open=0;
   ArraySetAsSeries(_Open,true);
   int copied=CopyOpen(symb,tf,0,Bars(symb,tf),_Open);
   if(copied>0 && index<copied) open=_Open[index];
   return(open);
}
double iClose(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Close[];
  double close=0;
   ArraySetAsSeries(_Close,true);
   int copied=CopyClose(symb,tf,0,Bars(symb,tf),_Close);
   if(copied>0 && index<copied) close=_Close[index];
   return(close);
}
double iHigh(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _High[];
  double high=0;
   ArraySetAsSeries(_High,true);
   int copied=CopyHigh(symb,tf,0,Bars(symb,tf),_High);
   if(copied>0 && index<copied) high=_High[index];
   return(high);
}
double iLow(string symb,ENUM_TIMEFRAMES tf,int index) {
if(symb=="0") { symb=Symbol();}
  double _Low[];
  double low=0;
   ArraySetAsSeries(_Low,true);
   int copied=CopyLow(symb,tf,0,Bars(symb,tf),_Low);
   if(copied>0 && index<copied) low=_Low[index];
   return(low);
}
 
-Aleks-:

Je n'arrive pas à trouver comment exprimer High[] en 5 ???

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


puis, si nécessaire, appeler : rates[x].high.
 
Vitaly Muzichenko:

Je l'exprime de cette façon, ce n'est peut-être pas écrit correctement, mais ça marche :

Et c'est ce que j'ai fait - mais pourquoi tout foirer à ce point sur five.....

Vitalie Postolache:

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


puis, le cas échéant, appeler : rates[x].high.

Et, en règle générale, quelles sont les valeurs que les gens copient ? Quel est l'avantage de cette copie ? Consomme-t-il moins de mémoire qu'en 4 ?

Je suis tombé dans une stupeur de

Il faut noter que dans MQL5 les valeurs numériques des constantes des périodes du graphique (à partir de H1) ne coïncident pas avec le nombre de minutes dans une barre (par exemple, dans MQL5 la valeur numérique de PERIOD_H1=16385, alors que dans MQL4 PERIOD_H1=60). Cette circonstance doit être prise en compte lors du transfert vers MQL5, si des valeurs numériques pour les calculs ont été utilisées dans le programme en MQL4.

Pour connaître le nombre de minutes d'une période donnée d'un graphique, divisez la valeur de la fonction PeriodSeconds par 60.

D'où vient le nombre 16385 - où est la logique ?

 
Vitalie Postolache:

MqlRates rates[];
int copied=CopyRates(NULL,0,0,100,rates);


puis, le cas échéant, appeler : taux[x].haut.

OK, vous avez une solution pour le caractère courant, j'ai une récupération multi-symboles.

Question : mon écriture est-elle correcte, ou y a-t-il un bug dans le code ?

-Aleks:

Je suis confus par

Il est à noter que dans MQL5 les valeurs numériques des constantes des périodes du graphique (à partir de H1) ne coïncident pas avec le nombre de minutes dans une barre (par exemple, dans MQL5 la valeur numérique de PERIOD_H1=16385, alors que dans MQL4 PERIOD_H1=60). Cette circonstance doit être prise en compte lors du transfert vers MQL5, si des valeurs numériques pour les calculs ont été utilisées dans le programme en MQL4.

Pour connaître le nombre de minutes d'une période donnée d'un graphique, divisez la valeur de la fonction PeriodSeconds par 60.

D'où vient le nombre 16385 - où est la logique?

Il faut étudier la physique quantique, c'est de là que doit venir la valeur.
 
-Aleks-:

Moi aussi - mais pourquoi tout faire foirer à ce point sur le site .....

Et, qu'est-ce que les gens ont tendance à copier toutes les valeurs ? Quel est l'avantage de cette copie ? Consomme-t-il moins de mémoire qu'en 4 ?

Pourquoi tous ? Informations complètes pour 100 barres, à la fois (bien sûr, vous pouvez spécifier moins ou plus de barres). Utile lorsque vous avez besoin de plus qu'un simple High.

Mais il peut être téléchargé séparément, comme l'a montréVitaly Muzichenko.

Vitaly Muzichenko:

Ok, vous avez la solution pour le symbole actuel, j'ai une capacité multi-symboles.

Question : est-ce correct, ou y a-t-il un bug dans mon code ?

Il est facile de "transformer" cette solution en une solution multi-symboles, simplement en spécifiant un caractère au lieu de NULL. Eh bien, et TF, si nécessaire, comme dans vos exemples.

En ce qui concerne la correction du code, il y a des exemples dans l'aide (regardezCopyHigh ), seulement des tableaux au niveau global.

 
-Aleks-:

Tombe en désordre .........

Il y a ça.

C'est un peu piquant au début. Cependant, la réécriture à partir de MT4 ne pose aucun problème.

Je ne sais pas pour les autres, mais 4-Rka pense plus vite.

Et ce qui a été fait sur 4-Rka passe sur le marché sans aucun problème, alors que la réécriture de MT4 à MT5 ne passe parfois pas, simplement parce que le marché n'a pas le temps de tester un produit identique dans le temps qui lui est imparti.