How to Start with Metatrader 5 - page 82

 

Forum on trading, automated trading systems and testing trading strategies

How to Start with Metatrader 5

Sergey Golubev, 2014.03.07 12:57

How to Prepare MetaTrader 5 Quotes for Other Applications



Before I started studying MQL5, I tried many other applications for development of trading systems. I can't say that I wasted my time. Some of them contain a few useful tools allowing users to save time, deal with many issues, destroy some myths and quickly select some further direction for development without the knowledge of programming languages.

These applications need historical data. Due to the absence of some certain standard data format, they often had to be edited before they could be used (for example, in Excel) to comply with the format applicable to the necessary program. Even if you are able to figure out all necessary details, many things should still be done manually. Users can find different versions of scripts designed to copy the quotes from MetaTrader 4 to the necessary format. If there is such a demand, we can also develop the version of the script for MQL5.

Introduction
1. Covered Topics
2. Data Format
3. Program's External Parameters
4. Checking Parameters Entered by a User
5. Global Variables
6. Information Panel
7. Application's Main Block
8. Creating Folders and Filing the Data
Conclusion


 

Forum on trading, automated trading systems and testing trading strategies

Payments via Skrill in MetaTrader 5

MetaQuotes Software Corp., 2016.11.15 15:02

The MetaTrader 5 platform now supports the Skrill payment system, which allows making online transaction in over 40 currencies by simply specifying an email address.

Skrill is the eighth payment method featured in the popular trading platform. MetaTrader 5 also supports Visa, MasterCard and UnionPay cards, as well as the MQL5.community, PayPal, WebMoney, Neteller and ePayments systems.

Paying for trader services is fast and easy — MetaTrader 5 now supports the world's most popular payment methods

The MetaTrader 5 platform supports a wide range of payment options to help you purchase trading robots from the Market or pay for the Virtual Hosting and Signal subscriptions using your preferred payment method. Payments can be performed straight from the platform. In order to pay for a desired service using Skrill, select the appropriate payment option, enter your e-mail address, specify your password, and confirm the transaction:

Payments via Skrill in MetaTrader 5

Paying for trader services is fast and easy — MetaTrader 5 now supports the world's most popular payment methods!

Download MetaTrader 5>>


 

Forum on trading, automated trading systems and testing trading strategies

List of changes in MetaTrader 5 Client Terminal builds

MetaQuotes Software Corp., 2016.11.16 16:05

New MetaTrader 5 Build 1485: Additional testing mode and graphics in the Standard Library

The MetaTrader 5 platform update is to be released on Friday, November 18, 2016. The new version features the following changes:

  1. Terminal: The order of entries in the terminal and MetaEditor journals has changed. Before the update, the latest log entries were featured first. Now the oldest entries are shown in the beginning of the journal. A more conventional reverse sorting order makes reading the journal easier.




    In addition, it is now possible to hide the 'Time' and 'Source' columns using the journal context menu.

  2. Terminal: In the hedging mode, the ticket of a closed position is now displayed for the orders and deals in the trading history. This makes it easier to find related opening and closing operations.




  3. Terminal: Fixed an error that caused copying of SL/TP from an existing position to a new position on the same instrument. The error could occur when using One Click Trading functions (for example, from the chart or from the Market Watch window) in the hedging mode.
  4. Terminal: Fixed display of arrow objects on ultra-high-definition screens (4K).
  5. MQL5: A new ArrayPrint function has been added, which prints simple types and structures to the array log.
    void  ArrayPrint(
       const void&   array[],             // Printed array
       uint          digits=_Digits,      // The number of decimal places
       const string  separator=NULL,      // A separator between the values of the structure fields
       ulong         start=0,             // The index of the first displayed element
       ulong         count=WHOLE_ARRAY,   // The number of displayed elements
       ulong         flags=ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_LIMIT|ARRAYPRINT_ALIGN    
       );
    
    ArrayPrint does not print all fields of a structure array to logs – array fields and pointer fields of objects are skipped. If you want to print all fields of a structure, you should use a custom function for the mass printing with a desired formatting.
    //--- Prints the values of the last 10 bars
       MqlRates rates[];
       if(CopyRates(_Symbol,_Period,1,10,rates))
         {
          ArrayPrint(rates);
          Print("Проверка\n[time]\t[open]\t[high]\t[low]\t[close]\t[tick_volume]\t[spread]\t[real_volume]");
          for(int i=0;i<10;i++)
            {
             PrintFormat("[%d]\t%s\t%G\t%G\t%G\t%G\t%G\t%G\t%I64d\t",i,
             TimeToString(rates[i].time,TIME_DATE|TIME_MINUTES|TIME_SECONDS),
             rates[i].open,rates[i].high,rates[i].low,rates[i].close,
             rates[i].tick_volume,rates[i].spread,rates[i].real_volume);
            }
         }
       else
          PrintFormat("CopyRates failed, error code=%d",GetLastError());
    //--- A log example
    /*
                        [time]  [open]  [high]   [low] [close] [tick_volume] [spread] [real_volume]
       [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295         18110       10   17300175000
       [1] 2016.11.09 05:00:00 1.12296 1.12825 1.11930 1.12747         17829        9   15632176000
       [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744         13458       10    9593492000
       [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194         15362        9   12352245000
       [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172         16833        9   12961333000
       [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052         15933        8   10720384000
       [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528         11888        9    8084811000
       [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915          7284       10    5087113000
       [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904          8710        9    6769629000
       [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263          8956        7    7192138000
       Check
       [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume]
       [0] 2016.11.09 04:00:00 1.11242 1.12314 1.11187 1.12295 18110 10 17300175000 
       [1] 2016.11.09 05:00:00 1.12296 1.12825 1.1193 1.12747 17829 9 15632176000 
       [2] 2016.11.09 06:00:00 1.12747 1.12991 1.12586 1.12744 13458 10 9593492000 
       [3] 2016.11.09 07:00:00 1.12743 1.12763 1.11988 1.12194 15362 9 12352245000 
       [4] 2016.11.09 08:00:00 1.12194 1.12262 1.11058 1.11172 16833 9 12961333000 
       [5] 2016.11.09 09:00:00 1.11173 1.11348 1.10803 1.11052 15933 8 10720384000 
       [6] 2016.11.09 10:00:00 1.11052 1.11065 1.10289 1.10528 11888 9 8084811000 
       [7] 2016.11.09 11:00:00 1.10512 1.11041 1.10472 1.10915 7284 10 5087113000 
       [8] 2016.11.09 12:00:00 1.10915 1.11079 1.10892 1.10904 8710 9 6769629000 
       [9] 2016.11.09 13:00:00 1.10904 1.10913 1.10223 1.10263 8956 7 7192138000 
    */
    

  6. MQL5: Fixed error in the addition of strings of type S1=S2+S1
  7. MQL5: The behavior of the ArrayResize function has changed. If -1 is passed as the reserve_size parameter, the function only releases unused (reserved) memory if the function does not increase the array size. Setting the new array size to 0 with reserve_size=-1 is equivalent to the ArrayFree call. The new behavior allows optimizing memory usage in MQL5 programs.
    void OnStart()
      {
       int arr[];
    //--- Amount of memory initially used 
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- Amount of memory used for the array of size 1, with a reserve
       ArrayResize(arr,1,1024*1024);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- After the increase of the array, the amount of memory used will not change due to the reserve
       ArrayResize(arr,1024*512,1024*1024);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- After reducing the array, the memory size will not change either
       ArrayResize(arr,1);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
    //--- Unused memory will be released after the removal of the reserve
       ArrayResize(arr,1,-1);
       Print("Array size:",ArraySize(arr)," Memory used:",MQLInfoInteger(MQL_MEMORY_USED)," MB");
      }
    

  8. MQL5: Chart drawing functions have been added to the Standard Library. To use the new functionality, include MQL5\Include\Graphics\Graphic.mqh to your project.

    Plotting a chart based on three data series using GraphPlot:
    #include <Graphics/Graphic.mqh>
    
    double Func1(double x) { return MathPow(x,2); }
    double Func2(double x) { return MathPow(x,3); }
    double Func3(double x) { return MathPow(x,4); }
    
    void OnStart()
      {
       GraphPlot(Func1,Func2,Func3,-2,2,0.05,CURVE_LINES);
      }
    
    
    The result:


    Plotting a chart based on a data array using GraphPlot:
    #include <Math/Stat/Binomial.mqh>
    #include <Graphics/Graphic.mqh>
    
    void OnStart(void)
      {
       double    vars[101];
       double    results[101];
       const int N=2000;
    //---  
       MathSequence(0,N,20,vars);
       MathProbabilityDensityBinomial(vars,N,M_PI/10,true,results);
       ArrayPrint(results,4);
       GraphPlot(results);
    //---
      }
    
    The result:



  9. MQL5: Updated functions for working with mathematical statistics in the Standard Library. We have thoroughly checked the quality and accuracy of all functions both in the MQL5 version and in the source R language. Unit tests are distributed along with the static library; the tests enable control over the accuracy and performance speed. They are available in the directory \MQL5\Scripts\UnitTests\Stat.

    • TestStat.mq5 — the main test script for checking calculation results
    • TestPrecision.mq5 — test of calculation precision
    • TestBenchmark.mq5 — the test includes computing performance measurement

  10. Tester: The updated version features advanced settings for configuring execution delays during testing. Now you can test your Expert Advisors in a variety of trading conditions, including the ideal case without a delay and any custom set delay.



    Only the random delay mode was available in earlier versions.

  11. Tester: Fixed generation of the tick volume of bars in the 'M1 based OHLC' mode.
  12. Tester: Fixed specification of order and position opening time up to milliseconds when trading in the hedging mode.
  13. Tester: Fixed "old tick" error, which could appear during multi-currency or multi-timeframe testing in the 'real ticks' mode.
  14. Tester: Improved CopyTicks performance speed when the requested ticks are read from a database located on a disk.
  15. MetaEditor: The file context menu in the Navigator and in the toolbox now features commands for working with the versioned source code repository MQL5 Storage.




  16. MetaEditor: Fixed an error that could occasionally break the integrity of the local MQL5 Storage database when working with more than 1024 files in the repository.
  17. MetaEditor: Fixed display of the file tree of MQL5 Storage.
  18. MetaEditor: Fixed file display after a mass text replacement.
  19. Updated documentation.

The update will be available through the LiveUpdate system.


 

Forum on trading, automated trading systems and testing trading strategies

MetaTrader platforms awarded with the Best FX Trading Platform and Best Multi-Asset Trading Platform at the 2016 Finance Magnate London Summit Awards

MetaQuotes Software Corp., 2016.11.18 08:41

The MetaTrader trading platforms have been awarded in two categories at the Finance Magnates Awards 2016. MetaTrader 5 has been awarded with the Best Multi-Asset Trading Platform, while MetaTrader 4 has been named the Best FX Trading Platform.

Finance Magnates Awards 2016

The award ceremony was a final accord of the Finance Magnates Summit on November 15, 2016. This year's event brought together over 2000 financial industry specialists and 90 participant companies, which was a record-high number of visitors. MetaTrader 4 and MetaTrader 5 have bested their competitors and gained the most votes in an independent voting procedure. These awards have been chosen by actual market participants and they objectively reflect the worldwide market situation.

This is not the first success of our products at the Finance Magnates Awards: last year MetaTrader platforms were awarded with the Best Trading Platform and the Best Mobile Product. We are proud that MetaTrader is the choice of major players of the financial industry.


 
Sergey Golubev:

Will it be possible to WITHDRAW by Skrill?

Or are there any other options planed for withdrawel?

 

If you are newbie in Metatrader 5 so please find some threads/articles about where to start:


Forum on trading, automated trading systems and testing trading strategies

All (not yet) about Strategy Tester, Optimization and Cloud

Alain Verleyen, 2013.08.20 19:47

A must ! Before using it or asking any question : please read the Online Help  (Also accessible by F1 on your MT5 platform)


Strategy Tester

For Traders



For Programmers


Optimization



Cloud

Announce of the launch : MQL5 Cloud Network launched.

As Users

Some useful topic about usage of the Cloud :


As Providers (agents)




Work in progress, stay tuned !


 

Forum on trading, automated trading systems and testing trading strategies

How to Start with Metatrader 5

Sergey Golubev, 2016.05.08 20:17

Welcome,

  • Usually people who can't code don't receive free help on this forum, though it could happen if you are lucky, be patient.
  • If you show your attempts and describe well your problem, you will most probably receive an answer from the community.
  • If you don't want to learn to code, nothing bad, you can either look at the Codebase if something free already exists, or in the Market for paid products (sometimes free also).
  • Finally, you also have the option to hire a programmer in the Freelance section.
Good luck.

 

Forum on trading, automated trading systems and testing trading strategies

signal to twitter

Sergey Golubev, 2016.11.22 08:01

MetaTrader 5: Publishing trading forecasts and live trading statements via e-mail on blogs, social networks and dedicated websites


Automatic web-publication of trading forecasts has become a widespread trend in the trading industry. Some traders or companies use Internet as a medium for selling subscribed signals, some traders use it for their own blogs to inform about their track record, some do it in order to offer programming or consultancy services. Others publish signals just for fame or fun.

This article aims to present ready-made solutions for publishing forecasts using MetaTrader 5. It covers a range of ideas: from using dedicated websites for publishing MetaTrader statements, through setting up one's own website with virtually no web programming experience needed and finally integration with a social network microblogging service that allows many readers to join and follow the forecasts.

All solutions presented here are 100% free and possible to setup by anyone with a basic knowledge of e-mail and ftp services. There are no obstacles to use the same techniques for professional hosting and commercial trading forecast services.