新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 271

 
Alexey Viktorov:

然后有了这个想法。

如果你想要第一个星期五,这个数字必须小于8。如果一个月的第一个星期五是星期五,那么下一个星期五就是第八个。相应地,你可以轻松地重新计算到一周中的 任何一天 和一个月中的任何一天,第二、第三...


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
  int bs=0;

  if (DayOfWeek()==5 && Minute()<5) {  Добавьте сюда пожалуйста 
    bs=GetSignal();
    if (Hour()==lHourOpenPos && bs>0) OpenPosition();
    if (Hour()==sHourOpenPos && bs<0) OpenPosition();
  }

  if (bLastBuy) {
    if (DayOfWeek()==lDayForClose && Hour()>=lHourClosePos) CloseAllPositions();
    TrailingStop=lTrailingStop;
    if (lUseTrailing) TrailingPositions();
  } else {
    if (DayOfWeek()==sDayForClose && Hour()>=sHourClosePos) CloseAllPositions();
    TrailingStop=sTrailingStop;
    if (sUseTrailing) TrailingPositions();
  }
}
 
Darirunu:

我没有意愿去记住老的mql4的功能。下面是脚本的第二个工作版本

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime;
 datetime arrDateTime[1];
 CopyTime(_Symbol, PERIOD_D1, 1, 1, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime);
 if(mqlDateTime.day_of_week == FRIDAY && mqlDateTime.day < 8)
  {
   Print("Ура!!! Вчера была первая пятница");
   
  }
}/********************************************************************/
 
Alexey Viktorov:

我没有意愿去记住老的mql4的功能。下面是脚本的第二个工作版本


我想知道如何知道现在是什么星期?

 

这都是经典之作。 一旦你问了一个略高于平均水平的问题,结果总是一样的,但谢谢你。

 
Aleksey Vyazmikin:

我想知道你是如何知道现在是什么星期的?

用今天的数字除以7,然后四舍五入到较高的数字,不管余数是多少。

上周五是11除以7,所以1周+4天是第二周。周二的数字是15除以7,所以是2周+1天,成为第三周。对吗?

我们可以不做四舍五入的工作。如果除法的余数 大于零,那么我们就有整周加1。对吗?

 
Alexey Viktorov:

用今天的数字除以7,然后四舍五入到较高的数字,不管余数是多少。

上周五是11除以7,所以1周+4天是第二周。星期二的数字是15除以7,所以是2周+1天,所以是第3周。对吗?

你可以不用四舍五入。如果除法的余数 大于零,那么所得的整数周数加1。对吗?


这不是数学课,还是我写错了地方?

 
Darirunu:

总而言之,这很经典。 你问了一个略高于平均水平的问题,结果总是一样的,但还是谢谢你。

这与经典有什么关系?什么恩怨情仇?你的代码的逻辑对我来说是不可理解的,我为什么要尝试去理解它呢?问题是。

关于交易、自动交易系统和策略测试的论坛。

对MQL4新手的任何问题,对算法和代码的帮助和讨论

Darirunu, 2017.08.12 16:00

下午...

如何在四边形中写出条件:如果每月的第一个星期五 是看涨的,并且

第二个周一是看跌的,我们就开启卖出交易。

我向你展示了如何确定第一个星期五。在哪一天,你必须计算,由你自己决定。

请告诉我:在确定星期几的时候,你为什么要查看分钟呢?然后你检查一下时间。我认为更合乎逻辑的做法是确定一周的日期,然后在满足的条件下检查小时、分钟(如有必要),然后你检查看涨或看跌并决定在哪里开盘。

也许你最好得到更高的编程水平,而不是我回到mql3?

 
Darirunu:

这不是数学课,是吗,还是我写错地方了?

你好...没有高于平均水平的数学能力,怎么能成为一个程序员?请注意,我不是在谈论高级数学。

 
Alexey Viktorov:

你好...没有高于平均水平的数学技能,你怎么能成为一个程序员呢?注意,我不是在谈论高等数学。


然后再加上了解三角学和制图是件好事。 还有一点哲学。

 
Alexey Viktorov:

用今天的数字除以7,然后四舍五入到较高的数字,不管余数是多少。

上周五是11除以7,所以1周+4天是第二周。星期二的数字是15除以7,所以是2周+1天,所以是第3周。对吗?

你可以不做四舍五入的工作。如果除法的余数 大于零,那么所得的整数周数加1。对吗?


我正试图重现你建议的方法--我哪里错了?

1周2 周3 周4 周5周1周2 周3 周4 周5周
1 8 15 22 29 0 1 2 3 4
2 9 16 23 30 0 1 2 3 4
3 10 17 24 31 0 1 2 3 4
4 11 18 25 1 2 3 4
5 12 19 26 1 2 3 4
6 13 20 27 1 2 3 4
7 14 21 28 1 2 3 4
原因: