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

 
new-rena:

Pas de problème. J'ai jeté l'algorithme. Le début seulement sans graphique, c'est-à-dire comme ceci :

НомерДНЯвМесяце=str.day;
vous avez besoin du numéro de la semaine du mois :)
 
pako:
J'ai besoin du numéro de la semaine du mois :)

Je ne peux pas le faire sur 5 et ce n'est pas habituel ici sur 4.

Si je suis autorisé, je vais écrire le code et le poster.

 
pako:
quelle différence cela fait-il 4 ou 5 ? ??, le temps est le même :))))
Paco, je ne sais pas comment faire 5 et je n'en vois plus l'intérêt :)
 
new-rena:
Paco, je ne sais pas comment écrire sur 5 et je n'en vois plus l'intérêt :)
Écrire en 4.
 
pako:
Écrire sur 4

Probablement pas le bon. C'est le début, les critiques sont les bienvenues, nous ferons ce qui est nécessaire.

Placez l'EA dans le testeur, activez le mode visuel, sélectionnez TF D1, et observez les empreintes dans le journal.

//+------------------------------------------------------------------+
//|                                                  WeekOfMonth.mq4 |
//|                                                         new-rena |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "new-rena"
#property link      ""
#property version   "1.00"
#property strict
//--------------------------
double DayOfMonth,WeekOfMonth;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---
//--- init
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//--- deinit
      return(0);   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
      DayOfMonth=TimeDay(TimeLocal());
      Print("DayOfMonth N "+DoubleToStr(DayOfMonth,0));
      WeekOfMonth=MathCeil(DayOfMonth/7);
      Print("WeekOfMonth N "+DoubleToStr(WeekOfMonth,0));
      
//--- start
      return(0);   
  }
//+------------------------------------------------------------------+
 
new-rena:

Probablement pas le bon. C'est le début, les critiques sont les bienvenues, nous ferons ce qui est nécessaire.

Démarrons l'EA dans le testeur, passons en mode visuel, sélectionnons TF D1, et regardons les impressions dans le journal.

//+------------------------------------------------------------------+
//|                                                  WeekOfMonth.mq4 |
//|                                                         new-rena |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "new-rena"
#property link      ""
#property version   "1.00"
#property strict
//--------------------------
double DayOfMonth,WeekOfMonth;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---
//--- init
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//--- deinit
      return(0);   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {
      DayOfMonth=TimeDay(TimeLocal());
      Print("DayOfMonth N "+DoubleToStr(DayOfMonth,0));
      WeekOfMonth=MathCeil(DayOfMonth/7);
      Print("WeekOfMonth N "+DoubleToStr(WeekOfMonth,0));
      
//--- start
      return(0);   
  }
//+------------------------------------------------------------------+

il ne s'affiche pas correctement

Il affiche la semaine 3 et aujourd'hui la semaine 4, 22.08.2016.

 
pako:
Dans Excel, la semaine=1+INT((A1-DATE(YEAR(A1+4-WEEKDAY(A1+6));1;5)+WEEKDAY(DATE(YEAR(A1+4-WEEKDAY(A1+6));1;3))/7)

//+------------------------------------------------------------------+ //|                                                  WeekOfMonth.mq4 | //|                                                         new-rena | //|                                                                  | //+------------------------------------------------------------------+ #property copyright "new-rena" #property link      "" #property version   "1.00" #property strict //-------------------------- double DayOfMonth,WeekOfMonth; int DayOfWeeks,MonthOfYear,PrevMonth,Delta=0,Show=0; //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int init()   { //--- PrevMonth=TimeMonth(TimeLocal()); DayOfMonth=TimeDay(TimeLocal()); if(DayOfMonth==1)    {       Delta=TimeDayOfWeek(TimeLocal());       Show=1;    } //--- init    return(0);   } //+------------------------------------------------------------------+ //| Expert deinitialization function                                 | //+------------------------------------------------------------------+ int deinit()   { //--- deinit       return(0);     } //+------------------------------------------------------------------+ //| Expert tick function                                             | //+------------------------------------------------------------------+ int start()   { //---   MonthOfYear=TimeMonth(TimeLocal()); DayOfMonth=TimeDay(TimeLocal()); DayOfWeeks=TimeDayOfWeek(TimeLocal()); if(PrevMonth!=MonthOfYear && DayOfMonth==1)    {       Delta=DayOfWeeks;       Show=1;    } if(Show==1)    {       WeekOfMonth=MathCeil((DayOfMonth+Delta)/7);             Print("DayOfMonth N "+DoubleToStr(DayOfMonth,0));       Print("WeekOfMonth N "+DoubleToStr(WeekOfMonth,0));    }

PrevMonth=MonthOfYear; //--- start       return(0);     } //+------------------------------------------------------------------+

 

Il faudrait aussi mettre quand le 1er du mois tombe sur un week-end, car le testeur ne tourne pas les week-ends.... Je n'ai pas vu pour l'Excel.

Eh bien, et de rouler dans l'initialisation d'un couple de mois auparavant ET au mois en cours ne serait pas mal, afin de ne pas attendre la fin du calcul du numéro de la semaine un mois entier. Mais ce ne sont que des nuances ....

C'est ce qui rend MQL4 si attrayant - le code est court et clair !

 
new-rena:

Il faudrait aussi mettre quand le 1er du mois tombe sur un week-end, car le testeur ne tourne pas les week-ends.... Je n'ai pas vu pour l'Excel.

Eh bien, et de rouler dans l'initialisation d'un couple de mois auparavant ET au mois en cours ne serait pas mal, afin de ne pas attendre la fin du calcul du numéro de la semaine un mois entier. Mais ce ne sont que des nuances ....

C'est ce qui rend MQL4 si attrayant - le code est court et clair !

Il ne calcule pas correctement
 
pako:
Ne compte pas correctement
Ok. A quel moment ? A la fin du mois ? J'ai vérifié le calendrier...
Raison: