MQL4 to MQL5 porting table ver. 0.1 coded by fai. | |
MQL4 | MQL5 |
Ask | SymbolInfoDouble(Symbol(),SYMBOL_ASK); |
Bid | SymbolInfoDouble(Symbol(),SYMBOL_BID); |
Bars | Bars(Symbol(),PERIOD_CURRENT); |
Digits | _Digits or Digits() |
Point | _Point or Point() |
Close[] High[] Low[] Open[] Time[] Volume[] |
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 &Volume[], const long &Real_Volume[], const int &Spread[]) { ArraySetAsSeries(Open,true); ArraySetAsSeries(High,true); ArraySetAsSeries(Low,true); ArraySetAsSeries(Close,true); ArraySetAsSeries(Time,true); ArraySetAsSeries(Volume,true); ArraySetAsSeries(Spread,true); |
in EA/script use CopyClose,CopyHigh,CopyLow,CopyOpen,CopyTime, CopyTickVolume |
|
AccountBalance() | AccountInfoDouble(ACCOUNT_BALANCE); |
AccountCredit() | AccountInfoDouble(ACCOUNT_CREDIT); |
AccountCompany() | AccountInfoString(ACCOUNT_COMPANY); |
AccountCurrency() | AccountInfoString(ACCOUNT_CURRENCY); |
AccountEquity() | AccountInfoDouble(ACCOUNT_EQUITY); |
AccountFreeMargin() | AccountInfoDouble(ACCOUNT_FREEMARGIN); |
AccountFreeMarginCheck() | read AccountFreeMarginCheck |
AccountFreeMarginMode() | ??? |
AccountLeverage() | AccountInfoInteger(ACCOUNT_LEVERAGE); |
AccountMargin() | AccountInfoDouble(ACCOUNT_MARGIN); |
AccountName() | AccountInfoString(ACCOUNT_NAME); |
AccountNumber() | AccountInfoInteger(ACCOUNT_LOGIN); |
AccountProfit() | AccountInfoDouble(ACCOUNT_PROFIT); |
AccountServer() | AccountInfoString(ACCOUNT_SERVER); |
AccountStopoutLevel() | AccountInfoDouble(ACCOUNT_MARGIN_SO_SO); |
AccountStopoutMode() | AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE); |
ArrayBsearch() | read ArrayBsearch |
ArrayCopyRates() | read CopyRates |
ArrayCopySeries() | read CopyClose/CopyHigh/CopyLow/CopyOpen/CopyTickVolume/CopyTime |
ArrayDimension() | ???? |
ArraySort() | // MQL4 ArraySort(SortInt, 0, 0, MODE_ASCEND); ArraySort(SortInt); //MQL4 ArraySort(SortInt, 0, 0, MODE_DESCEND); ArraySetAsSeries(SortInt,true); ArraySort(SortInt); |
GetLastError() | you need to call ResetLastError() before use. |
IsConnected() | (bool)TerminalInfoInteger(TERMINAL_CONNECTED)?? |
IsDemo() | bool IsDemo(){ ENUM_ACCOUNT_TRADE_MODE tradeMode=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE); if(tradeMode == ACCOUNT_TRADE_MODE_DEMO) return(true); // tradeMode is ACCOUNT_TRADE_MODE_CONTEST or ACCOUNT_TRADE_MODE_REAL return(false); } |
IsDllsAllowed() IsLibrariesAllowed() |
(bool)MQL5InfoInteger(MQL5_DLLS_ALLOWED)??? |
IsOptimization() | (bool)MQL5InfoInteger(MQL5_OPTIMIZATION)??? |
IsTesting() | (bool)MQL5InfoInteger(MQL5_TESTING)??? |
IsTradeAllowed() |
(bool)MQL5InfoInteger(MQL5_TRADE_ALLOWED) && (bool)TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)?? |
IsExpertEnabled() | (bool)TerminalInfoInteger(TERMINAL_EXPERTS_ENABLED)?? |
IsTradeContextBusy() | LOST???? |
IsVisualMode() | (bool)MQL5InfoInteger(MQL5_VISUAL_MODE)??? |
UninitializeReason() | _UninitReason |
TerminalCompany() | TerminalInfoString(TERMINAL_COMPANY) |
TerminalName() | TerminalInfoString(TERMINAL_NAME) |
TerminalPath() | TerminalInfoString(TERMINAL_PATH) TerminalInfoString(TERMINAL_DATA_PATH) TerminalInfoString(TERMINAL_COMMONDATA_PATH) |
Alert() | LOST???? |
MarketInfo() | read SymbolInfoInteger/Double/String |
CharToStr() | CharToString() |
DoubleToStr() | DoubleToString() |
StrToDouble() | StringToDouble() |
StrToInteger() | StringToInteger() |
StrToTime() | StringToTime() |
TimeToStr() | TimeToString() |
IndicatorBuffers() | #property indicator_buffers 7 #property indicator_plots 7 |
IndicatorCounted() | const int prev_calculated |
IndicatorDigits() | IndicatorSetInteger(INDICATOR_DIGITS,_Digits); |
IndicatorShortName() | IndicatorSetString(INDICATOR_SHORTNAME,name); |
SetIndexArrow() | PlotIndexSetInteger(0,PLOT_ARROW,213); |
SetIndexBuffer() | SetIndexBuffer(0,MABuffer,INDICATOR_DATA); // or INDICATOR_CALCULATIONS |
SetIndexDrawBegin() | PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,KPeriod); |
SetIndexEmptyValue() | PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); |
SetIndexLabel() | PlotIndexSetString(0,PLOT_LABEL,"Moving Average"); |
SetIndexShift() | PlotIndexSetInteger(0,PLOT_SHIFT,26); |
SetIndexStyle() | PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID); PlotIndexSetInteger(0,PLOT_LINE_WIDTH,2); PlotIndexSetInteger(0,PLOT_LINE_COLOR,DeepPink); |
SetLevelStyle() | IndicatorSetInteger(INDICATOR_LEVELSTYLE,STYLE_DOT); |
SetLevelValue() | IndicatorSetInteger(INDICATOR_LEVELS,2); IndicatorSetDouble(INDICATOR_LEVELVALUE,0,20); IndicatorSetDouble(INDICATOR_LEVELVALUE,1,80); |
Day() DayOfWeek() DayOfYear() Hour() Minute() Month() Seconds() Year() |
MqlDateTime tm; TimeCurrent(tm); int Day=tm.day; int DayOfWeek=tm.day_of_week; int DayOfYear=tm.day_of_year; int Hour=tm.hour; int Minute=tm.min; int Seconds=tm.sec; int Year=tm.year; |
TimeDay() TimeDayOfWeek() TimeDayOfYear() TimeHour() TimeMinute() TimeMonth() TimeSeconds() TimeYear() |
datetime TargetTime = D'2003.12.31'; MqlDateTime tm; TimeToStruct(TargetTime,tm); int Day=tm.day; int DayOfWeek=tm.day_of_week; int DayOfYear=tm.day_of_year; int Hour=tm.hour; int Minute=tm.min; int Seconds=tm.sec; int Year=tm.year; |
FileOpenHistory() | LOST???? |
FileSeek() | read FileSeek |
ObjectCreate() | ObjectCreate(0,… |
ObjectDelete() | ObjectDelete(0,name); |
ObjectDescription() | ObjectGetString(0,name,OBJPROP_TEXT); |
ObjectFind() | ObjectFind(0,name); |
ObjectGet() | read ObjectGetIngeger/Double/String |
ObjectGetFiboDescription() | ObjectGetString(0,name,OBJPROP_LEVELTEXT,int level); |
ObjectGetShiftByValue() | ObjectGetTimeByValue(0,string name,double value,int line_id); |
ObjectGetValueByShift() | ObjectGetValueByTime(0,string name,datetime time, int line_id); |
ObjectMove() | ObjectMove(0, string name, int point, datetime time1, double price1) |
ObjectName() | ObjectName(0,int pos,int nwin=-1,int type=-1); |
ObjectsDeleteAll() | ObjectsDeleteAll(0,int window=EMPTY, int type=EMPTY) |
ObjectSet() | read ObjectSetIngeger/Double/String |
ObjectSetFiboDescription() | ObjectSetString(0,string name,OBJPROP_LEVELTEXT,int level,string newstring); |
ObjectSetText() | ObjectSetString(0,string name,OBJPROP_LEVELTEXT,string newstring); |
ObjectsTotal() | ObjectsTotal(0,int nwin=-1,int type=-1); |
ObjectType() | ObjectGetInteger(0,name,OBJPROP_TYPE); |
StringConcatenate() | int StringConcatenate(string& string_var,void arg1,void arg2....); |
StringGetChar() | StringGetCharacter() |
StringSetChar() | StringSetCharacter() |
iBars() | Bars() |
iBarShift() iClose() iHigh() iHighest() iLow() iLowest() iOpen() iTime() iVolume() |
use mt4timeseries.mqh (http://forum.mql4.com/26550/page14) |
iTime() | datetime iTime(string symbol,ENUM_TIMEFRAMES timeframe,int
index) { datetime Times[]; datetime tm=0; ArraySetAsSeries(Times,true); int copied=CopyTime(symbol,timeframe,0,Bars(symbol,timeframe),Times); if(copied>0 && index<copied) tm=Times[index]; return(tm); }// My Simple code.. |
HideTestIndicators() | LOST???? |
Period() | PeriodSeconds(Period())/60 |
RefreshRates() | LOST???? |
WindowBarsPerChart() | ChartGetInteger(0,CHART_VISIBLE_BARS) |
WindowExpertName() | MQL5InfoString(MQL5_PROGRAM_NAME)??? |
WindowFind() | |
WindowFirstVisibleBar() | ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR) |
WindowHandle() | *ChartGetInteger(0,CHART_WINDOW_HANDLE) |
WindowIsVisible() | ChartGetInteger(0,CHART_WINDOW_IS_VISIBLE) |
WindowOnDropped() | ChartWindowOnDropped() |
WindowPriceMax() | ChartGetDouble(0,CHART_PRICE_MIN,0); |
WindowPriceMin() | ChartGetDouble(0,CHART_PRICE_MAX,0); |
WindowPriceOnDropped() | ChartPriceOnDropped() |
WindowRedraw() | ChartRedraw() |
WindowScreenShot() | read ChartScreenShot |
WindowTimeOnDropped() | ChartTimeOnDropped() |
WindowsTotal() | ChartGetInteger(0,CHART_WINDOWS_TOTAL) |
WindowXOnDropped() | ChartXOnDropped() |
WindowYOnDropped() | ChartYOnDropped() |