[英]with using a timefilter, i get the following error: '}' - not all control paths return a value
I get the error: '}' - not all control paths return a value.我收到错误:'}' - 并非所有控制路径都返回一个值。 I am using:
我在用:
int StartHour = 8;
int EndHour = 20;
And this is the code I am using:这是我正在使用的代码:
bool TimeFilter()
{
EndHour1=EndHour+GMTOffset;
StartHour1=StartHour+GMTOffset;
if ((StartHour+GMTOffset)<0) {StartHour1=StartHour+GMTOffset+24;}
if ((EndHour+GMTOffset)<0) {EndHour1=EndHour+GMTOffset+24;}
if ((StartHour+GMTOffset)>24) {StartHour1=StartHour+GMTOffset-24;}
if ((EndHour+GMTOffset)>24) {EndHour1=EndHour+GMTOffset-24;}
if (Use_TimeFilter==false) {comment1=""; return (true);}
else
if (StartHour1<EndHour1)
{
if (Hour()>=StartHour1 && Hour()<EndHour1)
{
comment1="";
return (true);
}
comment1="WARNING: Trading diluar Time Filter, No Open Position\n";
return (false);
}
else
if (StartHour1>EndHour1)
{
if (Hour()>=StartHour1 || Hour()<EndHour1)
{
comment1="";
return (true);
}
comment1="WARNING: Trading diluar Time Filter, No Open Position\n";
return (false);
}
}
What is wrong and how to fix this so i don't receive this error anymore.出了什么问题以及如何解决此问题,因此我不再收到此错误。 Thanks in advance
提前致谢
You are using multiple nested if
else
statements and there exists a possible scenario which would result in all the if
statements not being fulfilled (ie Use_TimeFilter=True
and StartHour1==EndHour1
).您正在使用多个嵌套的
if
else
语句,并且存在一种可能的情况,这将导致所有if
语句都没有被执行(即Use_TimeFilter=True
和StartHour1==EndHour1
)。 You therefore need to simply add a final return(false)
statement in your code.因此,您只需在代码中添加最终的
return(false)
语句。
bool TimeFilter()
{
EndHour1=EndHour+GMTOffset;
StartHour1=StartHour+GMTOffset;
if((StartHour+GMTOffset)<0) {StartHour1=StartHour+GMTOffset+24;}
if((EndHour+GMTOffset)<0) {EndHour1=EndHour+GMTOffset+24;}
if((StartHour+GMTOffset)>24) {StartHour1=StartHour+GMTOffset-24;}
if((EndHour+GMTOffset)>24) {EndHour1=EndHour+GMTOffset-24;}
if(!Use_TimeFilter) {comment1=""; return (true);}
else if(StartHour1<EndHour1)
{
if(Hour()>=StartHour1 && Hour()<EndHour1)
{
comment1="";
return(true);
}
comment1="WARNING: Trading diluar Time Filter, No Open Position\n";
return(false);
}
else if(StartHour1>EndHour1)
{
if (Hour()>=StartHour1 || Hour()<EndHour1)
{
comment1="";
return (true);
}
comment1="WARNING: Trading diluar Time Filter, No Open Position\n";
return (false);
}
return(false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.