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); }
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
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);
}
}