帮助新手 - 日期和时间功能 - 页 2

 

为什么我在编译代码的时候会出现这些错误?

编译'GAPeaOnlySunday.mq4'...
'bool' - 预计分号Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 3)
'(' - 初始化预期 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 22)
'TimeDayofWeek' - 预计是逗号或分号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 23)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 54)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 70)
'(' - 预计初始化 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 22)
'TimeDayofWeek' - 预计是逗号或分号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 23)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 50)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 54)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 65)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 70)
'sunday_cond' - 不允许在全局范围内表达 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'sunday_cond' - 未定义变量 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'monday_cond' - 不允许在全局范围内表达 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
'monday_cond' - 未定义变量 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 34)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (89, 20)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (89, 24)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (92, 35)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (92, 43)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (94, 38)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (94, 42)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (94, 57)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (96, 39)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (96, 45)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (98, 20)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (98, 29)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (100, 32)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (100, 53)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (102, 30)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (102, 55)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (104, 40)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (104, 57)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (104, 99)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (104, 107)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (108, 20)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (108, 30)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (110, 28)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (110, 55)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (112, 30)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (112, 57)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (114, 40)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (114, 57)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (114, 99)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (114, 107)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (122, 43)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 27)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 36)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 46)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 69)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 81)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (123, 94)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (124, 66)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (125, 49)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (126, 31)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (127, 44)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (128, 58)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (134, 44)
')' - 不平衡的右括号 Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (136, 12)
57个错误,2个警告

 

大笑 -因为你的代码有问题。

调试一下吧。

开始寻找丢失的分号,就像报告的那样,比丢失的小括号更重要。

编码不只是在编辑器中写一些字,主要工作是调试一个人的代码。

 

或者你可以减少损失,联系吉尼斯世界纪录?


CB

 

我的EA代码中没有错误,只是测试了一下以确定。所有这些错误都是在我插入了这四行代码之后出现的。


bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hour()<=15);
如果(sunday_cond || monday_cond )
如果(OrdersTotal()==0)

 
EagleEye:

我的EA代码中没有错误,只是测试了一下以确定。所有这些错误都是在我插入了这四行代码之后出现的。


如果(OrdersTotal()==0)//这里不应该是这样的-> {

如果这就是你插入的所有代码,你只是没有编码当if为真时必须做的事情

你怎么能说 "你的"(不是Mikes的EA吗?)EA在你改变代码后没有错误呢? 你在开玩笑吗?

 

而不是 "TimeDayofWeek",而是 "TimeDayOfWeek"。正确的代码是。

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23) 。
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
如果(OrdersTotal()==0)
如果(sunday_cond || monday_cond )
go_trading()。

我已经验证了这部分,所以 "右括号不平衡 "的错误是剩余代码的另一个问题。

 
abstract_mind:

而不是 "TimeDayofWeek",而是 "TimeDayOfWeek"。正确的代码是。

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23) 。
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
如果(OrdersTotal()==0)
如果(sunday_cond || monday_cond )
go_trading();

我已经验证了这一部分,所以 "右括号不平衡 "的错误是剩余代码的另一个问题。

if(OrdersTotal()==0)
if( sunday_cond || monday_cond )
go_trading();

上面这个至少是糟糕的代码风格。难怪像缺失Parenthis这样的错误是常见的

if(
    (OrdersTotal()==0)
    &&
    (sunday_cond || monday_cond )
  ) 
   {
    go_trading();
   }

通过这种方式,我们可以清楚地看到小括号是正确的,这种代码几乎在每一种语言中都适用。

{ }对于那些应该容易调试的代码来说是必不可少的。

如果代码不是只有一行的话,有时也是必要的。

 
meikel:

如果这就是你插入的全部内容,你只是没有编码,当if为真时必须做什么。

你怎么能说 "你的"(不是Mikes的EA吗?)EA在你修改了代码之后就没有错误了? 你在开玩笑吗?

不,我不是在开玩笑。如果你真的想知道,我的朋友Mike很久以前就把它发给我了,因为他想让我试试。


当我编译没有这4行代码的EA时,根本就没有错误。

当我从这里插入这4行代码时,它产生了所有的错误。

 
EagleEye:

不,我不是在开玩笑。如果你真的想知道,我的朋友Mike很久以前就把它寄给我了,因为他想让我试试。


当我编译没有这4行代码的EA时,根本就没有错误。

当我从这里插入4行代码时,它产生了所有的错误。

按照abstracts_mind的提示。

你写的是of,而不是Of

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23) 。

等号后面的所有都是错误的,因为这个原因,编译器希望在sunday_cond后面有一个分号。

 
meikel:

按照abstracts_mind的提示。

你写的是of,而不是Of

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23) 。

等号后面的所有内容都是错误的,因此编译器希望sunday_cond后面有一个分号。


那么,代码应该是什么样子的呢?


现在它看起来像这样。

//+------------------------------------------------------------------+
//| expert startfunction|
//+------------------------------------------------------------------+
int start()

bool sunday_cond = (TimeDayOfWeek(TimeCurrent() )==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);

if(
( OrdersTotal()==0)
&&
( sunday_cond || monday_cond )
)

{
if (Bars<100 || IsTradeAllowed()==false) return;

if( CalculateCurrentOrders(Symbol())==0)CheckForOpen();