Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 607

 
new-rena:

Kein Problem. Ich habe den Algorithmus eingeworfen. Der Anfang nur ohne Grafik, also so:

НомерДНЯвМесяце=str.day;
Sie brauchen die Nummer der Woche des Monats :)
 
pako:
Ich brauche die Nummer der Woche des Monats :)

Ich kann es nicht auf 5 machen und es ist hier nicht üblich auf 4.

Wenn ich die Erlaubnis habe, werde ich den Code schreiben und ihn veröffentlichen.

 
pako:
was macht es für einen Unterschied, ob es 4 oder 5 sind, die Zeit ist dieselbe :)))
Paco, ich weiß nicht, wie man 5 macht und ich sehe keinen Sinn mehr darin :)
 
new-rena:
Paco, ich weiß nicht, wie ich auf 5 schreiben soll, und ich sehe den Sinn nicht mehr:)
Schreiben Sie in 4.
 
pako:
Schreiben Sie auf 4

Wahrscheinlich ist es nicht das richtige. Dies ist der Anfang, Kritik ist willkommen, wir werden das Nötige tun.

Legen Sie den EA in das Prüfgerät, schalten Sie den visuellen Modus ein, wählen Sie TF D1 und beobachten Sie die Ausdrucke im Protokoll.

//+------------------------------------------------------------------+
//|                                                  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:

Wahrscheinlich ist es nicht das richtige. Dies ist der Anfang, Kritik ist willkommen, wir werden das Nötige tun.

Starten wir den EA im Tester, schalten wir den visuellen Modus ein, wählen wir TF D1 und sehen wir uns die Ausdrucke im Protokoll an.

//+------------------------------------------------------------------+
//|                                                  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);   
  }
//+------------------------------------------------------------------+

es wird nicht richtig angezeigt

Es zeigt Woche 3 und heute ist es Woche 4, 22.08.2016

 
pako:
In Excel ist die Woche=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);     } //+------------------------------------------------------------------+

 

Wir sollten auch angeben, wann der 1. des Monats auf ein Wochenende fällt, da der Tester die Wochenenden nicht dreht... Ich habe das mit dem Excel nicht gesehen.

Nun, und in der Initialisierung von vor ein paar Monaten UND auf den aktuellen Monat zu rollen würde nicht schaden, um nicht für das Ende der Berechnung der Zahl der Woche einen ganzen Monat zu warten. Aber das sind alles nur Nuancen ....

Das ist es, was MQL4 so attraktiv macht - der Code ist kurz und klar!

 
new-rena:

Wir sollten auch angeben, wann der 1. des Monats auf ein Wochenende fällt, da der Tester die Wochenenden nicht dreht... Ich habe das mit dem Excel nicht gesehen.

Nun, und in der Initialisierung von vor ein paar Monaten UND auf den aktuellen Monat zu rollen würde nicht schaden, um nicht für das Ende der Berechnung der Zahl der Woche einen ganzen Monat warten. Aber das sind alles Nuancen ....

Das ist es, was MQL4 so attraktiv macht - der Code ist kurz und klar!

Es wird nicht korrekt berechnet
 
pako:
Zählt nicht korrekt
Ja. Zu welchem Zeitpunkt? Am Ende des Monats? Ich habe den Kalender überprüft...
Grund der Beschwerde: