The latest version of MetaTrader 4 iOS supports two-factor authentication using One-Time Password for connection to a trading account. Now, a verification code can be requested in addition to login and password when logging in to a desktop or tablet terminal. The code is generated by the MetaTrader 4 iOS app. To start using one-time passwords, users need to bind their trading accounts to the password generator.
Another new option of MetaTrader 4 for iOS is trading from a chart
with a single touch (similar to one-click trading). Turn your device
into a horizontal position and open a quick trade panel.
The first web version of the trading platform has been released. All trading and analytical features of a desktop terminal can now be accessed from a web browser. Trading on the web platform is safe, while any transmitted information is securely encrypted. Trading account passwords are encrypted and stored only in the local storage of the browser.
Web trading is already available for testing in the new Trading
section of the MQL5.community site. The interface of the web platform
is similar to the desktop version. The following functions are available
now:
int ObjectsDeleteAll( int chart_id, // chart ID const string prefix, // prefix int sub_window=EMPTY, // chart subwindow ID int object_type=EMPTY // object type );This function removes all graphical objects of the specified type from the specified chart or its subwindow. A special feature is the ability to set a prefix in the names of removed objects. For example, you can remove only the objects having the names beginning from "myobj_".
The update is available through the LiveUpdate system.
int WebRequest( const string method, // HTTP method const string url, // url address const string headers, // Headers int timeout, // timeout const char &data[], // an array of the body of the HTTP message char &result[], // an array with the server response data string &result_headers // Headers of the server response );Error notifications have been modified. If an error occurs, the 'result' array will contain the description of the error.
ulong GetMicrosecondCount();
This function can be used to profile program execution and identify "bottlenecks".Fixed errors reported in crash logs.
The update is available through the LiveUpdate system.
Fixed errors reported on the forum and in crash logs.
The update is available through the LiveUpdate system.
//--- move the chart up if it is not on the very top if(!ChartGetInteger(0,CHART_BRING_TO_TOP)) ChartSetInteger(0,CHART_BRING_TO_TOP);
Fixed errors reported on the forum and in crash logs.
The update is available through the LiveUpdate system.
You can choose 1 440 free minutes provided to each registered MQL5.community user or select one of the offered service plans. Finally, you will select the data migration mode depending on your objectives:
After selecting the migration mode, you can launch the virtual
server immediately by clicking "Migrate now" or do that later at any
time.
Preparing for Migration
Before launching the
virtual terminal, you should prepare an active environment for it -
charts, launched indicators and Expert Advisors, Signal copying
parameters and the terminal settings.
Migration
Migration is transferring the current active environment from the client terminal to the virtual one.
Migration is performed during each synchronization of the client
terminal. Synchronization is always a one-direction process - the client
terminal's environment is moved to the virtual terminal but never vice
versa. The virtual terminal status can be monitored via requesting the
terminal's and Expert Advisors' logs as well as virtual server's
monitoring data.
To perform synchronization, execute "Synchronize Environment" command and select migration type.
Thus, you always can change the number of charts and the list of
symbols, the set of launched programs and their input parameters, the
terminal settings and Signal subscription.
When performing migration, all data is recorded in the client terminal's log.
After the synchronization, open the virtual terminal's main journal to examine the actions performed on it.
Working with the Virtual Terminal
The rented virtual
server status can also be easily monitored from the client terminal.
Execute "Details" command in the context menu.
The information is presented in four tabs:
Fixed errors reported on the forum and in crash logs.
The update is available through the LiveUpdate system.
//+------------------------------------------------------------------+ //| MacroExample | //| Copyright 2014, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property script_show_inputs input bool InpSecond=true; #define DEFCLASS(class_name) class class_name:public CBase{public:class_name(string name):CBase(name){}}; #define TOSTR(x) #x #define AUTODEL(obj) CAutoDelete auto_##obj(obj) #define NEWOBJ(type,ptr) do { ptr=new type(TOSTR(ptr)); \ Print("Create object '",TOSTR(type)," ",TOSTR(ptr),"' by macro NEWOBJ"); } \ while(0) //+------------------------------------------------------------------+ //| Base class, required used for auto deletion | //+------------------------------------------------------------------+ class CBase { protected: string m_name; public: CBase(string name):m_name(name) { } string Name(void) const{ return(m_name); } }; //+------------------------------------------------------------------+ //| The class of auto deletion of objects allows you not to control | //| deletion of created objects. It deletes them in destructor | //+------------------------------------------------------------------+ class CAutoDelete { CBase *m_obj; public: CAutoDelete(CBase *obj):m_obj(obj) { } ~CAutoDelete() { if(CheckPointer(m_obj)==POINTER_DYNAMIC) { Print("Delete object '",m_obj.Name(),"' by CAutoDelete class"); delete m_obj; } } }; //+------------------------------------------------------------------+ //| Declare two new classes CFoo and CBar | //+------------------------------------------------------------------+ DEFCLASS(CFoo); DEFCLASS(CBar); //+------------------------------------------------------------------+ //| Main function of the script | //+------------------------------------------------------------------+ void OnStart() { CFoo *foo; //--- create an object of the CFoo class NEWOBJ(CFoo,foo); //--- create an instance of the class of auto deletion of CFoo foo object AUTODEL(foo); //--- if(InpSecond) { CBar *bar; //--- NEWOBJ(CBar,bar); AUTODEL(bar); } //--- It is not necessary to delete foo, it will be deleted automatically } //+------------------------------------------------------------------+
Fixed errors reported on the forum and in crash logs.
The update will be available through the LiveUpdate system.
Many traders want to arrange a
reliable round-the-clock operation of the client terminal containing an
active trading robot or following trading signals. One of the possible
solutions is using VPS servers. However, finding a reliable provider, as
well as diving into configuration and payment details require
additional skills and time. Now, traders do not need VPS servers
anymore.
Virtual Hosting Cloud is
a server network distributed all around the world and supporting
special versions of MetaTrader client terminal. Selection of a suitable
location, service plan, payment and synchronization is fully automated. A
trader needs to complete only 5 steps in order to rent the virtual copy
of a terminal with minimal network latency to the broker's trade server
and select the most suitable service plan directly from MetaTrader 4.
Virtual Hosting Wizard can be launched by selecting "Register a Virtual Server" command in the account context menu.
The first dialog window briefly describes and illustrates the main points of the virtual hosting operation.
After clicking Next, MQL5.community authorization window appears, where a trader should enter the account login and password or create a new account. If the existing login and password are already specified in the terminal settings, this step is skipped.
At the next stage, environment is prepared for migration to a virtual copy.
If you are sure that your terminal is
ready for copying and you have read the rules, tick the "I agree to the
'Preparation of trading account for migration to virtual hosting' rules"
option and click Next.
The wizard automatically scans all the access points and provides you with the list of the most suitable servers.
The following data is displayed in the table for each server:
After choosing the most suitable server, click Next. The next window contains available service plans.
Select the most suitable service plan,
tick the option "I agree to the virtual hosting service rules" and also
the option "Automatically renew subscription with sufficient funds and
terminal activity" if necessary. Click Next to go to the final step.
Registration for virtual hosting rent has been completed.
Now,
the data migration mode and start time should be selected (data can be
migrated right now or postponed). After making the final adjustments,
click Finish.
The additional context menu item for managing the server appears in Navigator window allowing traders to:
The
first stage of opening a new account is selection of a trading server
for connection. This window allows traders to select a proposed server
or add a new one.
After selecting the server, click Next.
Account
type is selected in the next window. Here the details of an already
existing trade account can be specified or a new one can be created.
Fill in all the mandatory fields, tick the option "I agree to subscribe to your newsletters" and click Next.
The newly created account is registered on the specified server. After that, its details are displayed.
After
clicking Finish, the newly created account is automatically connected
to the trade server. It also appears in the Accounts section of the
Navigator window. If Cancel is clicked in this window, connection to the
trade server is not performed and the account is not added to the
Navigator window, though it is already created. You can connect to the
server later using the account details.
This option is disabled by default for security reasons.
Fixed errors reported on the forum and in crash logs.
The update is available through the LiveUpdate system.