![The Implementation of a Multi-currency Mode in MetaTrader 5](https://c.mql5.com/2/0/Multicurrency_Expert_Advisor.png)
![The Implementation of a Multi-currency Mode in MetaTrader 5](https://c.mql5.com/i/articles/overlay.png)
The Implementation of a Multi-currency Mode in MetaTrader 5
For a long time multi-currency analysis and multi-currency trading has been of interest to people. The opportunity to implement a full fledged multi-currency regime became possible only with the public release of MetaTrader 5 and the MQL5 programming language. In this article we propose a way to analyze and process all incoming ticks for several symbols. As an illustration, let's consider a multi-currency RSI indicator of the USDx dollar index.
![Drawing Channels - Inside and Outside View](https://c.mql5.com/2/0/channels_MQL5.png)
![Drawing Channels - Inside and Outside View](https://c.mql5.com/i/articles/overlay.png)
Drawing Channels - Inside and Outside View
I guess it won't be an exaggeration, if I say the channels are the most popular tool for the analysis of market and making trade decisions after the moving averages. Without diving deeply into the mass of trade strategies that use channels and their components, we are going to discuss the mathematical basis and the practical implementation of an indicator, which draws a channel determined by three extremums on the screen of the client terminal.
![Charts and diagrams in HTML](https://c.mql5.com/2/0/html_Chart_MQL5.png)
![Charts and diagrams in HTML](https://c.mql5.com/i/articles/overlay.png)
Charts and diagrams in HTML
Today it is difficult to find a computer that does not have an installed web-browser. For a long time browsers have been evolving and improving. This article discusses the simple and safe way to create of charts and diagrams, based on the the information, obtained from MetaTrader 5 client terminal for displaying them in the browser.
![Connecting NeuroSolutions Neuronets](https://c.mql5.com/2/0/neural_DLL.png)
![Connecting NeuroSolutions Neuronets](https://c.mql5.com/i/articles/overlay.png)
Connecting NeuroSolutions Neuronets
In addition to creation of neuronets, the NeuroSolutions software suite allows exporting them as DLLs. This article describes the process of creating a neuronet, generating a DLL and connecting it to an Expert Advisor for trading in MetaTrader 5.
![Trade Events in MetaTrader 5](https://c.mql5.com/2/68/events_600x314.jpg)
Trade Events in MetaTrader 5
A monitoring of the current state of a trade account implies controlling open positions and orders. Before a trade signal becomes a deal, it should be sent from the client terminal as a request to the trade server, where it will be placed in the order queue awaiting to be processed. Accepting of a request by the trade server, deleting it as it expires or conducting a deal on its basis - all those actions are followed by trade events; and the trade server informs the terminal about them.
![MQL5 Wizard: How to Create a Module of Trailing of Open Positions](https://c.mql5.com/2/0/MQL5_Wizard_Trailing_Stop__1.png)
![MQL5 Wizard: How to Create a Module of Trailing of Open Positions](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Create a Module of Trailing of Open Positions
The generator of trade strategies MQL5 Wizard greatly simplifies the testing of trading ideas. The article discusses how to write and connect to the generator of trade strategies MQL5 Wizard your own class of managing open positions by moving the Stop Loss level to a lossless zone when the price goes in the position direction, allowing to protect your profit decrease drawdowns when trading. It also tells about the structure and format of the description of the created class for the MQL5 Wizard.
![MQL5 Wizard: How to Create a Risk and Money Management Module](https://c.mql5.com/2/0/CMoney_MQL5.png)
![MQL5 Wizard: How to Create a Risk and Money Management Module](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Create a Risk and Money Management Module
The generator of trading strategies of the MQL5 Wizard greatly simplifies testing of trading ideas. The article describes how to develop a custom risk and money management module and enable it in the MQL5 Wizard. As an example we've considered a money management algorithm, in which the size of the trade volume is determined by the results of the previous deal. The structure and format of description of the created class for the MQL5 Wizard are also discussed in the article.
![Exposing C# code to MQL5 using unmanaged exports](https://c.mql5.com/2/0/logo__5.png)
![Exposing C# code to MQL5 using unmanaged exports](https://c.mql5.com/i/articles/overlay.png)
Exposing C# code to MQL5 using unmanaged exports
In this article I presented different methods of interaction between MQL5 code and managed C# code. I also provided several examples on how to marshal MQL5 structures against C# and how to invoke exported DLL functions in MQL5 scripts. I believe that the provided examples may serve as a basis for future research in writing DLLs in managed code. This article also open doors for MetaTrader to use many libraries that are already implemented in C#.
![Orders, Positions and Deals in MetaTrader 5](https://c.mql5.com/2/68/art-cover_600x314.jpg)
Orders, Positions and Deals in MetaTrader 5
Creating a robust trading robot cannot be done without an understanding of the mechanisms of the MetaTrader 5 trading system. The client terminal receives the information about the positions, orders, and deals from the trading server. To handle this data properly using the MQL5, it's necessary to have a good understanding of the interaction between the MQL5-program and the client terminal.
![How to Copy Trading from MetaTrader 5 to MetaTrader 4](https://c.mql5.com/2/0/MetaTrader5_MetaTrader4_MQL5.png)
![How to Copy Trading from MetaTrader 5 to MetaTrader 4](https://c.mql5.com/i/articles/overlay.png)
How to Copy Trading from MetaTrader 5 to MetaTrader 4
Is it possible to trade on a real MetaTrader 5 account today? How to organize such trading? The article contains the theory of these questions and the working codes used for copying trades from the MetaTrader 5 terminal to MetaTrader 4. The article will be useful both for the developers of Expert Advisors and for practicing traders.
![Moving Mini-Max: a New Indicator for Technical Analysis and Its Implementation in MQL5](https://c.mql5.com/2/0/MQL5_Mini-Max_Indicator.png)
![Moving Mini-Max: a New Indicator for Technical Analysis and Its Implementation in MQL5](https://c.mql5.com/i/articles/overlay.png)
Moving Mini-Max: a New Indicator for Technical Analysis and Its Implementation in MQL5
In the following article I am describing a process of implementing Moving Mini-Max indicator based on a paper by Z.G.Silagadze 'Moving Mini-max: a new indicator for technical analysis'. The idea of the indicator is based on simulation of quantum tunneling phenomena, proposed by G. Gamov in the theory of alpha decay.
![Creating Multi-Expert Advisors on the basis of Trading Models](https://c.mql5.com/2/0/Multi_Expert_Advisor_MQL5__1.png)
![Creating Multi-Expert Advisors on the basis of Trading Models](https://c.mql5.com/i/articles/overlay.png)
Creating Multi-Expert Advisors on the basis of Trading Models
Using the object-oriented approach in MQL5 greatly simplifies the creation of multi-currency/multi-system /multi-time-frame Expert Advisors. Just imagine, your single EA trades on several dozens of trading strategies, on all of the available instruments, and on all of the possible time frames! In addition, the EA is easily tested in the tester, and for all of the strategies, included in its composition, it has one or several working systems of money management.
![Create Your Own Expert Advisor in MQL5 Wizard](https://c.mql5.com/2/0/masterMQL5__2.png)
![Create Your Own Expert Advisor in MQL5 Wizard](https://c.mql5.com/i/articles/overlay.png)
Create Your Own Expert Advisor in MQL5 Wizard
The knowledge of programming languages is no longer a prerequisite for creating trading robots. Earlier lack of programming skills was an impassable obstacle to the implementation of one's own trading strategies, but with the emergence of the MQL5 Wizard, the situation radically changed. Novice traders can stop worrying because of the lack of programming experience - with the new Wizard, which allows you to generate Expert Advisor code, it is not necessary.
![MQL5 Wizard: How to Create a Module of Trading Signals](https://c.mql5.com/2/0/MQL5_CExpertSignal.png)
![MQL5 Wizard: How to Create a Module of Trading Signals](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: How to Create a Module of Trading Signals
The article discusses how to write your own class of trading signals with the implementation of signals on the crossing of the price and the moving average, and how to include it to the generator of trading strategies of the MQL5 Wizard, as well as describes the structure and format of the description of the generated class for the MQL5 Wizard.
![MQL5 Wizard: Creating Expert Advisors without Programming](https://c.mql5.com/2/0/editor_wizard.png)
![MQL5 Wizard: Creating Expert Advisors without Programming](https://c.mql5.com/i/articles/overlay.png)
MQL5 Wizard: Creating Expert Advisors without Programming
Do you want to try out a trading strategy while wasting no time for programming? In MQL5 Wizard you can simply select the type of trading signals, add modules of trailing positions and money management - and your work is done! Create your own implementations of modules or order them via the Jobs service - and combine your new modules with existing ones.
![Create your own Market Watch using the Standard Library Classes](https://c.mql5.com/2/0/visual.png)
![Create your own Market Watch using the Standard Library Classes](https://c.mql5.com/i/articles/overlay.png)
Create your own Market Watch using the Standard Library Classes
The new MetaTrader 5 client terminal and the MQL5 Language provides new opportunities for presenting visual information to the trader. In this article, we propose a universal and extensible set of classes, which handles all the work of organizing displaying of the arbitrary text information on the chart. The example of Market Watch indicator is presented.
![Andrey Voitenko: Programming errors cost me $15,000 (ATC 2010)](https://c.mql5.com/2/0/avoitenko_avatar.png)
![Andrey Voitenko: Programming errors cost me $15,000 (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Andrey Voitenko: Programming errors cost me $15,000 (ATC 2010)
Andrey Voitenko is participating in the Automated Trading Championship for the first time, but his Expert Advisor is showing mature trading. For already several weeks Andrey's Expert Advisors has been listed in the top ten and seems to be continuing his positive performance. In this interview Andrey is telling about his EA's features, errors and the price they cost him.
![Creating an Indicator with Multiple Indicator Buffers for Newbies](https://c.mql5.com/2/0/P2054.png)
![Creating an Indicator with Multiple Indicator Buffers for Newbies](https://c.mql5.com/i/articles/overlay.png)
Creating an Indicator with Multiple Indicator Buffers for Newbies
The complex codes consist of a set of simple codes. If you are familiar with them, it doesn't look so complicated. In this article, we will consider how to create an indicator with multiple indicator buffers. As an example, the Aroon indicator is analyzed in details, and two different versions of the code are presented.
![Tomasz Tauzowski:"All I can do is pray for a loss position" (ATC 2010)](https://c.mql5.com/2/0/ttauzo_ava.png)
![Tomasz Tauzowski:"All I can do is pray for a loss position" (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Tomasz Tauzowski:"All I can do is pray for a loss position" (ATC 2010)
Tomasz Tauzowski (ttauzo) is a long-standing member of the top ten on the Automated Trading Championship 2010. For the seventh week his Expert Advisor is between the fifth and the seventh places. And no wonder: according to the report of the current Championship leader Boris Odinstov, ttauzo is one of the most stable EAs participating in the competition.
![Simulink: a Guide for the Developers of Expert Advisors](https://c.mql5.com/2/0/Simulink_MQL5__1.png)
![Simulink: a Guide for the Developers of Expert Advisors](https://c.mql5.com/i/articles/overlay.png)
Simulink: a Guide for the Developers of Expert Advisors
I am not a professional programmer. And thus, the principle of "going from the simple to the complex" is of primary importance to me when I am working on trading system development. What exactly is simple for me? First of all, it is the visualization of the process of creating the system, and the logic of its work. Also, it is a minimum of handwritten code. In this article, I will attempt to create and test the trading system, based on a Matlab package, and then write an Expert Advisor for MetaTrader 5. The historical data from MetaTrader 5 will be used for the testing process.
![Dimitar Manov: "I fear only extraordinary situations in the Championship" (ATC 2010)](https://c.mql5.com/2/0/manov_avatar.png)
![Dimitar Manov: "I fear only extraordinary situations in the Championship" (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Dimitar Manov: "I fear only extraordinary situations in the Championship" (ATC 2010)
In the recent review by Boris Odintsov the Expert Advisor of the Bulgarian Participant Dimitar Manov appeared among the most stable and reliable EAs. We decided to interview this developer and try to find the secret of his success. In this interview Dimitar has told us what situation would be unfavorable for his robot, why he's not using indicators and whether he is expecting to win the competition.
![Designing and implementing new GUI widgets based on CChartObject class](https://c.mql5.com/2/0/Design_Widgets_MQL5.png)
![Designing and implementing new GUI widgets based on CChartObject class](https://c.mql5.com/i/articles/overlay.png)
Designing and implementing new GUI widgets based on CChartObject class
After I wrote a previous article on semi-automatic Expert Advisor with GUI interface it turned out that it would be desirable to enhance interface with some new functionalities for more complex indicators and Expert Advisors. After getting acquainted with MQL5 standard library classes I implemented new widgets. This article describes a process of designing and implementing new MQL5 GUI widgets that can be used in indicators and Expert Advisors. The widgets presented in the article are CChartObjectSpinner, CChartObjectProgressBar and CChartObjectEditTable.
![Technical Analysis: How Do We Analyze?](https://c.mql5.com/2/0/analysis_charts.png)
![Technical Analysis: How Do We Analyze?](https://c.mql5.com/i/articles/overlay.png)
Technical Analysis: How Do We Analyze?
This article briefly describes the author's opinion on redrawing indicators, multi-timeframe indicators and displaying of quotes with Japanese candlesticks. The article contain no programming specifics and is of a general character.
![The Use of the MQL5 Standard Trade Class libraries in writing an Expert Advisor](https://c.mql5.com/2/0/Trade_Classes_Stdlib_MQL5.png)
![The Use of the MQL5 Standard Trade Class libraries in writing an Expert Advisor](https://c.mql5.com/i/articles/overlay.png)
The Use of the MQL5 Standard Trade Class libraries in writing an Expert Advisor
This article explains how to use the major functionalities of the MQL5 Standard Library Trade Classes in writing Expert Advisors which implements position closing and modifying, pending order placing and deletion and verifying of Margin before placing a trade. We have also demonstrated how Trade classes can be used to obtain order and deal details.
![Alexander Anufrenko: "A danger foreseen is half avoided" (ATC 2010)](https://c.mql5.com/2/0/anufrenko_ava.png)
![Alexander Anufrenko: "A danger foreseen is half avoided" (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Alexander Anufrenko: "A danger foreseen is half avoided" (ATC 2010)
The risky development of Alexander Anufrenko (Anufrenko321) had been featured among the top three of the Championship for three weeks. Having suffered a catastrophic Stop Loss last week, his Expert Advisor lost about $60,000, but now once again he is approaching the leaders. In this interview the author of this interesting EA is describing the operating principles and characteristics of his application.
![Building interactive semi-automatic drag-and-drop Expert Advisor based on predefined risk and R/R ratio](https://c.mql5.com/2/0/z5491084X.png)
![Building interactive semi-automatic drag-and-drop Expert Advisor based on predefined risk and R/R ratio](https://c.mql5.com/i/articles/overlay.png)
Building interactive semi-automatic drag-and-drop Expert Advisor based on predefined risk and R/R ratio
Some traders execute all their trades automatically, and some mix automatic and manual trades based on the output of several indicators. Being a member of the latter group I needed an interactive tool to asses dynamically risk and reward price levels directly from the chart. This article will present a way to implement an interactive semi-automatic Expert Advisor with predefined equity risk and R/R ratio. The Expert Advisor risk, R/R and lot size parameters can be changed during runtime on the EA panel.
![Vladimir Tsyrulnik: The Essense of my program is improvisation! (ATC 2010)](https://c.mql5.com/2/0/ustas_ava.png)
![Vladimir Tsyrulnik: The Essense of my program is improvisation! (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Vladimir Tsyrulnik: The Essense of my program is improvisation! (ATC 2010)
Vladimir Tsyrulnik is the holder of one of the brightest highs of the current Championship. By the end of the third trading week Vladimir's Expert Advisor was on the sixth position. The IMEX algorithm the Expert Advisor is based on was developed by Vladimir. To learn more about this algorithm, we had an interview with Vladimir.
![Growing Neural Gas: Implementation in MQL5](https://c.mql5.com/2/0/neural_gas_MQL5.png)
![Growing Neural Gas: Implementation in MQL5](https://c.mql5.com/i/articles/overlay.png)
Growing Neural Gas: Implementation in MQL5
The article shows an example of how to develop an MQL5-program implementing the adaptive algorithm of clustering called Growing neural gas (GNG). The article is intended for the users who have studied the language documentation and have certain programming skills and basic knowledge in the area of neuroinformatics.
![Interview with Boris Odintsov (ATC 2010)](https://c.mql5.com/2/0/bobsley_ava.png)
![Interview with Boris Odintsov (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Interview with Boris Odintsov (ATC 2010)
Boris Odintsov is one of the most impressive participants of the Championship who managed to go beyond $100,000 on the third week of the competition. Boris explains the rapid rise of his expert Advisor as a favorable combination of circumstances. In this interview he tells about what is important in trading, and what market would be unfavorable for his EA.
![Interview with Valery Mazurenko (ATC 2010)](https://c.mql5.com/2/0/notused_ava.png)
![Interview with Valery Mazurenko (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Interview with Valery Mazurenko (ATC 2010)
By the end of the first trading week, Valery Mazurenrk (notused) with his multicurrency Expert Advisor ch2010 appeared on the top position. Having treated trading as a hobby, Valery is now trying to monetize this hobby and write a stable-operating Expert Advisor for real trading. In this interview he shares his opinion about the role of mathematics in trading and explains why object-oriented approach suits best to writing multicurrency EAs.
![Guide to Testing and Optimizing of Expert Advisors in MQL5](https://c.mql5.com/2/0/Testing_Optimization_Guide_MQL5__1.png)
![Guide to Testing and Optimizing of Expert Advisors in MQL5](https://c.mql5.com/i/articles/overlay.png)
Guide to Testing and Optimizing of Expert Advisors in MQL5
This article explains the step by step process of identifying and resolving code errors as well as the steps in testing and optimizing of the Expert Advisor input parameters. You will learn how to use Strategy Tester of MetaTrader 5 client terminal to find the best symbol and set of input parameters for your Expert Advisor.
![The "New Bar" Event Handler](https://c.mql5.com/2/0/new_bar_born.png)
![The "New Bar" Event Handler](https://c.mql5.com/i/articles/overlay.png)
The "New Bar" Event Handler
MQL5 programming language is capable of solving problems on a brand new level. Even those tasks, that already have such solutions, thanks to object oriented programming can rise to a higher level. In this article we take a specially simple example of checking new bar on a chart, that was transformed into rather powerful and versatile tool. What tool? Find out in this article.
![Technical Analysis: What Do We Analyze?](https://c.mql5.com/2/0/tech_analysis_MQL5__1.png)
![Technical Analysis: What Do We Analyze?](https://c.mql5.com/i/articles/overlay.png)
Technical Analysis: What Do We Analyze?
This article tries to analyze several peculiarities of representation of quotes available in the MetaTrader client terminal. The article is general, it doesn't concern programming.
![Interview with Berron Parker (ATC 2010)](https://c.mql5.com/2/0/Berron_ava.png)
![Interview with Berron Parker (ATC 2010)](https://c.mql5.com/i/articles/overlay.png)
Interview with Berron Parker (ATC 2010)
During the first week of the Championship Berron's Expert Advisor has been on the top position. He now tells us about his experience of EA development and difficulties of moving to MQL5. Berron says his EA is set up to work in a trend market, but can be weak in other market conditions. However, he is hopeful that his robot will show good results in this competition.
![Evaluation of Trade Systems - the Effectiveness of Entering, Exiting and Trades in General](https://c.mql5.com/2/0/Measure_Trade_Efficiency_MQL5.png)
![Evaluation of Trade Systems - the Effectiveness of Entering, Exiting and Trades in General](https://c.mql5.com/i/articles/overlay.png)
Evaluation of Trade Systems - the Effectiveness of Entering, Exiting and Trades in General
There are a lot of measures that allow determining the effectiveness and profitability of a trade system. However, traders are always ready to put any system to a new crash test. The article tells how the statistics based on measures of effectiveness can be used for the MetaTrader 5 platform. It includes the class for transformation of the interpretation of statistics by deals to the one that doesn't contradict the description given in the "Statistika dlya traderov" ("Statistics for Traders") book by S.V. Bulashev. It also includes an example of custom function for optimization.
![Analyzing Candlestick Patterns](https://c.mql5.com/2/0/candlestick_research_MQL5__1.png)
![Analyzing Candlestick Patterns](https://c.mql5.com/i/articles/overlay.png)
Analyzing Candlestick Patterns
Construction of Japanese candlestick chart and analysis of candlestick patterns constitute an amazing area of technical analysis. The advantage of candlesticks is that they represent data in such a manner that you can track the dynamics inside the data. In this article we analyze candlestick types, classification of candlestick patterns and present an indicator that can determine candlestick patterns.
![Controlling the Slope of Balance Curve During Work of an Expert Advisor](https://c.mql5.com/2/0/Balance_Angle_Control_MQL5.png)
![Controlling the Slope of Balance Curve During Work of an Expert Advisor](https://c.mql5.com/i/articles/overlay.png)
Controlling the Slope of Balance Curve During Work of an Expert Advisor
Finding rules for a trade system and programming them in an Expert Advisor is a half of the job. Somehow, you need to correct the operation of the Expert Advisor as it accumulates the results of trading. This article describes one of approaches, which allows improving performance of an Expert Advisor through creation of a feedback that measures slope of the balance curve.
![Protect Yourselves, Developers!](https://c.mql5.com/2/17/846_12.gif)
![Protect Yourselves, Developers!](https://c.mql5.com/i/articles/overlay.png)
Protect Yourselves, Developers!
Protection of intellectual property is still a big problem. This article describes the basic principles of MQL4-programs protection. Using these principles you can ensure that results of your developments are not stolen by a thief, or at least to complicate his "work" so much that he will just refuse to do it.
![Contest of Expert Advisors inside an Expert Advisor](https://c.mql5.com/2/17/922_20.jpg)
![Contest of Expert Advisors inside an Expert Advisor](https://c.mql5.com/i/articles/overlay.png)
Contest of Expert Advisors inside an Expert Advisor
Using virtual trading, you can create an adaptive Expert Advisor, which will turn on and off trades at the real market. Combine several strategies in a single Expert Advisor! Your multisystem Expert Advisor will automatically choose a trade strategy, which is the best to trade with at the real market, on the basis of profitability of virtual trades. This kind of approach allows decreasing drawdown and increasing profitability of your work at the market. Experiment and share your results with others! I think many people will be interested to know about your portfolio of strategies.
![Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal](https://c.mql5.com/2/0/Adaptive_Expert_Advisor_MQL5__2.png)
![Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal](https://c.mql5.com/i/articles/overlay.png)
Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
This article suggests a variant of an adaptive system that consists of many strategies, each of which performs its own "virtual" trade operations. Real trading is performed in accordance with the signals of a most profitable strategy at the moment. Thanks to using of the object-oriented approach, classes for working with data and trade classes of the Standard library, the architecture of the system appeared to be simple and scalable; now you can easily create and analyze the adaptive systems that include hundreds of trade strategies.