with using a timefilter, i get the following error: '}' - not all control paths return a value

with using a timefilter, i get the following error: '}' - not all control paths return a value

Manage alerts

Loading saved threads...

geoffreyLemaire · External communityPost link
External question — Stack Overflow Stack Exchange Author: geoffreyLemaire Original post: https://stackoverflow.com/questions/72845931 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. 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
Quote
Report
PaulB · External communityPost link
External answer — Stack Overflow Stack Exchange Author: PaulB Original post: https://stackoverflow.com/a/72859003 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. 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 ). You therefore need to simply add a final return(false) statement in your code. 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); }
Quote
Report

Post Reply

Checking account access…