初学者的问题 MQL5 MT5 MetaTrader 5 - 页 607

 
new-rena:

没问题。我已经抛出了算法。开始的时候只是没有图表,也就是说,像这样。

НомерДНЯвМесяце=str.day;
你需要的是每月的星期数 :)
 
pako:
我需要的是每月的周数 :)

我不能在5点钟做,而且这里也没有4点钟做的习惯。

如果我被允许,我会写下代码并张贴出来。

 
pako:
4个或5个有什么区别呢,时间是一样的。)
帕科,我不知道如何做5,我不认为有什么意义了:)
 
new-rena:
帕科,我不知道如何在5上写作,我不认为有什么意义了:)
写在4。
 
pako:
写在4

可能不是正确的。这是个开始,欢迎批评,我们会按要求做。

将EA放入测试器中,打开视觉模式,选择TF 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:

可能不是正确的。这是个开始,欢迎批评,我们会按要求做。

让我们在测试器中启动EA,打开视觉模式,选择TF 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:
在Excel中,星期=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号在周末的时候放进去,因为测试者不转周末......没有看到关于excel的信息。

好吧,从几个月前的初始化滚动到当前月份也无妨,这样就不用等待一整个月的周数计算结束。但这些都是细微的差别....

这就是MQL4的魅力所在--代码短小而清晰!这就是MQL4的魅力所在。

 
new-rena:

我们还应该把每月1号在周末的时候放进去,因为测试者不转周末......没有看到关于excel的信息。

好吧,从几个月前的初始化滚动到当前月份也无妨,这样就不用等待一整个月的周数计算结束。但这些都是细微的差别....

这就是MQL4的魅力所在--代码短小而清晰!这就是MQL4的魅力所在。

它不能正确计算
 
pako:
不能正确计算
好的。在什么时候?在月底的时候?我检查了日历...