Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 607

 
new-rena:

Не вопрос. Алгоритм я кинул. Начало только без графика, то есть так:

НомерДНЯвМесяце=str.day;
нужен номер недели месяца :)
 
pako:
нужен номер недели месяца :)

На 5-рке не могу, а на 4-ке тут не принято.

Разрешат - напишу код. и выложу

 
pako:
какая разница 4 или 5 ???, время идинаково :))
Пако, я не умею на 5-ре и вникать уже не вижу смысла:)
 
new-rena:
Пако, я не умею на 5-ре и вникать уже не вижу смысла:)
напиши на 4ке
 
pako:
напиши на 4ке

навеерное не то. Это начало, критика приветствуется, будем делать так, как потребуется.

Заводим советника в тестер, включаем визуальный режим, выбираем ТФ D1, и смотрим принты в журнале.

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

навеерное не то. Это начало, критика приветствуется, будем делать так, как потребуется.

Заводим советника в тестер, включаем визуальный режим, выбираем ТФ D1, и смотрим принты в журнале.

 

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

 

неправильно показывает

показывет 3неделю , а сегодня 4 неделя  22.08.2016

 
pako:
В екселе так считают  , неделя =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);     } //+------------------------------------------------------------------+

 

Надо еще всунуть, когда 1-е число месяца попало на выходные, т.к. тестер выходные не крутит... Про эксель не видел.

Ну и крутануть в инициализации с пару месяцев назад И до текщего месяца не мешало БЫ, чтобы не ждать окончания расчета номера недели целый месяц. Но это уже всё нюансы....

Вот чем и красив MQL4 - код короткий и понятный!

 
new-rena:

Надо еще всунуть, когда 1-е число месяца попало на выходные, т.к. тестер выходные не крутит... Про эксель не видел.

Ну и крутануть в инициализации с пару месяцев назад И до текщего месяца не мешало БЫ, чтобы не ждать окончания расчета номера недели целый месяц. Но это уже всё нюансы....

Вот чем и красив MQL4 - код короткий и понятный!

Неправильно считает
 
pako:
Неправильно считает
Ок. В каком месте? В конце месяца? Я по календарику проверял...
Причина обращения: