Can't compile ('}' - not all control paths return a value )
Forum on trading, automated trading systems and testing trading strategies
When you post code please use the CODE button (Alt-S)!

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { Set_Values_to_variables(); return start(); }
I think the correct way is this
ENUM_TIMEFRAMES TFMigrate(int tf) { switch(tf) { case 0: return(PERIOD_CURRENT); case 1: return(PERIOD_M1); case 5: return(PERIOD_M5); case 15: return(PERIOD_M15); case 30: return(PERIOD_M30); case 60: return(PERIOD_H1); case 240: return(PERIOD_H4); case 1440: return(PERIOD_D1); case 10080: return(PERIOD_W1); case 43200: return(PERIOD_MN1); case 2: return(PERIOD_M2); case 3: return(PERIOD_M3); case 4: return(PERIOD_M4); case 6: return(PERIOD_M6); case 10: return(PERIOD_M10); case 12: return(PERIOD_M12); case 16385: return(PERIOD_H1); case 16386: return(PERIOD_H2); case 16387: return(PERIOD_H3); case 16388: return(PERIOD_H4); case 16390: return(PERIOD_H6); case 16392: return(PERIOD_H8); case 16396: return(PERIOD_H12); case 16408: return(PERIOD_D1); case 32769: return(PERIOD_W1); case 49153: return(PERIOD_MN1); } return(PERIOD_CURRENT); }
No idea wha i'm doing. Any help will be appreciate..
Trying to conver a MT4 to Mt5 using an automatic converter. Got only this far. When compiling i get the following error:
Can't complie ('}' - not all control paths return a value )
The problem is here:
{
Set_Values_to_variables();
}
void OnInit()
This is the full code.
//+------------------------------------------------------------------+
//| Converted by: MqlConvert.com |
//| Site of CyberFX.org |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
ObjectCreate(0,"_Fab_ask",OBJ_HLINE,0,0,0.0);
ObjectSetInteger(0,"_Fab_ask",OBJPROP_COLOR,clrRed);
ObjectSetInteger(0,"_Fab_ask",OBJPROP_STYLE,STYLE_DOT);
ObjectCreate(0,"_Fab_bid",OBJ_HLINE,0,0,0.0);
ObjectSetInteger(0,"_Fab_bid",OBJPROP_COLOR,clrGray);
ObjectSetInteger(0,"_Fab_bid",OBJPROP_STYLE,STYLE_DOT);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll(0,"_Fab");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
ObjectSetDouble(0,"_Fab_ask",OBJPROP_PRICE,Ask);
ObjectSetDouble(0,"_Fab_bid",OBJPROP_PRICE,Bid);
//----
return(0);
}
//+------------------------------------------------------------------+
//******************************************** Emulation *******************************************
double Ask;
double Bid;
double Bars;
double Open[];
double Close[];
double High[];
double Low[];
datetime Time[];
long Volume[];
void Set_Values_to_variables()
{
MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
Ask=last_tick.ask;
Bid=last_tick.bid;
ArraySetAsSeries(Close,true);
CopyClose(_Symbol,_Period,0,Bars(_Symbol,_Period),Close);
ArraySetAsSeries(Open,true);
CopyOpen(_Symbol,_Period,0,Bars(_Symbol,_Period),Open);
ArraySetAsSeries(Low,true);
CopyLow(_Symbol,_Period,0,Bars(_Symbol,_Period),Low);
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,_Period,0,Bars(_Symbol,_Period),High);
ArraySetAsSeries(Time,true);
CopyTime(_Symbol,_Period,0,Bars(_Symbol,_Period),Time);
ArraySetAsSeries(Volume,true);
CopyTickVolume(_Symbol,_Period,0,Bars(_Symbol,_Period),Volume);
}
void OnTick()
{
Set_Values_to_variables();
}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[],
const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[])
{
Set_Values_to_variables();
}
void OnInit()
{
Set_Values_to_variables();
init();
}
void OnDeinit()
{
deinit();
}
ENUM_TIMEFRAMES TFMigrate(int tf)
{
switch(tf)
{
case 0: return(PERIOD_CURRENT);
case 1: return(PERIOD_M1);
case 5: return(PERIOD_M5);
case 15: return(PERIOD_M15);
case 30: return(PERIOD_M30);
case 60: return(PERIOD_H1);
case 240: return(PERIOD_H4);
case 1440: return(PERIOD_D1);
case 10080: return(PERIOD_W1);
case 43200: return(PERIOD_MN1);
case 2: return(PERIOD_M2);
case 3: return(PERIOD_M3);
case 4: return(PERIOD_M4);
case 6: return(PERIOD_M6);
case 10: return(PERIOD_M10);
case 12: return(PERIOD_M12);
case 16385: return(PERIOD_H1);
case 16386: return(PERIOD_H2);
case 16387: return(PERIOD_H3);
case 16388: return(PERIOD_H4);
case 16390: return(PERIOD_H6);
case 16392: return(PERIOD_H8);
case 16396: return(PERIOD_H12);
case 16408: return(PERIOD_D1);
case 32769: return(PERIOD_W1);
case 49153: return(PERIOD_MN1);
default: return(PERIOD_CURRENT);
}
}