来自一个 "傻瓜 "的问题 - 页 148

 
Yedelkin:
那你自己看看你的代码吧。if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16)这个条件在目前的形式下是无用的。因为无论它产生什么结果,你的bool 函数timeOntrade()都会返回true。
听起来合乎逻辑,这正是我感兴趣的地方。我想我写了不必要的东西,可能错过了必要的东西。
 
Interesting:

alph,这就是Yedelkin所说的。

这些函数的变体在我们心中是相同的

我现在明白了。
 
alph:
听起来合乎逻辑,这就是我感兴趣的原因。在我看来,我写了一些不必要的东西,可能遗漏了一些必要的东西。


还有一件事,我还不清楚

   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);

也就是说,如果我理解正确的话,我们首先把时钟分配给0,然后再进行比较。

逻辑在哪里?
 
Interesting:


还有一点,我还不清楚

也就是说,如果我理解正确的话,我们首先把时钟分配给0,然后再进行比较。

逻辑在哪里?
我还没有删除带有true的那一行,但在我看来,如果你删除它,在ontik中已经没有与时钟作为一个具体数值或参数的比较。
 
alph:
我还没有删除带有true的那一行,但在我看来,如果我们删除它,就不会有与时钟作为ontik的具体数值或参数的比较。

目前,在我看来,这些选项是相同的

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   return(true);
   }

一般来说,我不明白为什么需要分配价值。

也就是说,就我的理解,最好的选择是

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.hour!=TradeHour) return(false);
   return(true);
   }
在这种情况下,如果当前的 服务器时间(只针对时钟)不等于设定的时间,那么它返回false,否则返回true。
 
Interesting:

目前,这些选项是相同的

实际上我不明白为什么我们需要赋值?

要写这个。

空白的OnTick()

{...

//-----------------------------------------------------------------------------------------+

//转为开放的基础

MqlRates rt[1];

如果(CopyRates(Symbol(),MyTframe,0,1,rt)<0) 返回。

if(rt[0].tick_volume>1) return;

如果(!PositionSelect(_Symbol) && (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))))Open();//进入开仓状态

timeOntrade.min =0

在这种情况下,这显然是没有必要的


   timeOntrade.min = 0;
   timeOntrade.sec = 1;
 

alph:

要把这个。

空白的OnTick()

试试这个选项,如果没有,那么我不明白你想得到什么...

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.hour!=TradeHour) return(false);
   return(true);
   }
 
Interesting:

试试这个选项,如果没有,那么我不明白你想得到什么...

是的,是的,而且在。

 bool timeOntrade2(int TradeMin)  
   {
   MqlDateTime timetrade2;
   TimeTradeServer(timetrade);
   if(timetrade.min!=TradeMin) return(false);
   return(true);
   }
 
alph:

是的,是的,而且在。

那么已经这样了(可以肯定)。但是,从原则上讲,你说对了

 bool timeOntrade2(int TradeMin)  
   {
   MqlDateTime timetrade;
   TimeTradeServer(timetrade);
   if(timetrade.min!=TradeMin) return(false);
   return(true);
   }
 
Interesting:

然后是这样的(确定)。但是,从原则上讲,你说对了

谢谢你!其余的代码是否正确?