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

 

Est-il possible de créer un tableau dans MT4 avec une structure comme dans Excel (+ et - réduisent et déplient les données) ? Si oui, où puis-je lire des informations à ce sujet ?


 

Bonjour à tous, je suis en train d'apprendre les codes. Il y a une erreur, je n'arrive pas à trouver comment la réparer.


int CountTrades(int type, int magic)

{

int count=0 ;

for(int i=OrdersTotal()-1;i>=0;i-)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderSymbol()==Symbol() && (OrderType()==type||type==-1) &&

(OrderMagicNumber()==magique||magique==-1))

compte++ ;

}

}

retour (count) ;


J'ai souligné ce qu'il manque.


Les erreurs sont les suivantes :

Opérande "-" attendu

")" - jeton inattendu

"i" - identifiant non déclaré


C'est comme s'il n'aimait pas que je mette moins après i dans la première erreur. Je devrais peut-être mettre un trait d'union ?

J'ai tout fait lettre par lettre avec le tutoriel - mais le code ne compile pas.

J'ai besoin de votre aide.

 
Falx:

Bonjour à tous, je suis en train d'apprendre les codes. Il y a un bug, je n'arrive pas à trouver comment le réparer.

Deux moins et pas de crochet pour fermer la fonction.
 
Aleksey Vyazmikin:
Deux moins et pas de parenthèses pour fermer la fonction.

Merci beaucoup ! Tout est réglé ! Ça marche !

 

Je devais comparer les deux dates par heures, je l'ai fait de cette façon :

string TimeCompare = StringSubstr(TimeToString(MyLastNewsTime[i],TIME_DATE|TIME_MINUTES),0,13);
string TimeCompare1 = StringSubstr(TimeToString(MyLastNewsTime1[i],TIME_DATE|TIME_MINUTES),0,13);
if(TimeCompare != TimeCompare1)
...

Cela a fonctionné, mais peut-être que ce n'est pas la manière la plus correcte ? Qu'est-ce que les programmeurs ont à dire ?

 
Nauris Zukas:

Je devais comparer les deux dates par heures, je l'ai fait de cette façon :

Cela a fonctionné, mais peut-être que ce n'est pas la manière la plus correcte ? Qu'est-ce que les programmeurs ont à dire ?


if(TimeHour(MyLastNewsTime[i])!=TimeHour(MyLastNewsTime1[i]))
 {
 }
 
Nikolay Ivanov:

Peut-être que je ne l'ai pas expliqué correctement, mais vous devez trouver deux dates à l'heure exacte (les minutes et les secondes ne sont pas importantes). Vous avez seulement une comparaison par heures.

 
Nauris Zukas:

Je ne l'ai peut-être pas expliqué correctement, mais vous devez trouver deux dates à l'heure exacte (les minutes et les secondes ne sont pas importantes).


vous avez besoin de trouver des dates, ou de comparer l'heure de 2 dates ?

 
Nikolay Ivanov:

trouver des dates, ou comparer l'heure de 2 dates ?

Vous devez trouver des dates à l'heure exacte (les minutes et les secondes ne sont pas importantes).

 
Nikolay Ivanov:

vous devez trouver les dates, ou comparer l'heure de 2 dates ?

CopyTime fonctionnerait-il mieux ?

Par ici.

int  CopyTime(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период PERIOD_H1
   datetime         start_time,      // с какой даты
   int              count,           // сколько копируем 1
   datetime         time_array[]     // массив для копирования времени открытия
   );

Traduire le temps en une chaîne de caractères et le comparer n'est pas une bonne option.

CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Функция получает в массив time_array исторические данные времени открытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...
Raison: