How to Write A Best Forex Robot
Processing market data could be achieved in a plethora of languages, and probably to a faster extent than the MT4 MQL4 can run back tests (back tests are a way of testing your algorithm robot; more on this later).
For the reasons of ease of functionality and general support for financial software, I highly recommend using MQL4 (MetaQuotes Language 4), the native language of MetaTrader 4, to write your algorithm trading robot.
The Job of a Trading Robot
A trading bot uses simple code to perform several basic takes. If you want to customize your own bot you will need to become comfortable programming:
- Algorithmic trading strategy: this uses statistical models to predict market behavior
- Develop a personal risk profile: this will depend on your time and knowledge commitment, as well as your trading capital
- Backtesting: you will need to run your programs to test their success, these tests will be used to validate your bot’s programs
Trading Strategies
While your bot does the work, you need to ensure that it applies sound statistical models in order to build algorithmic trading strategies.It is beneficial for your bot to take advantage of the following strategy type combinations:
- Macroeconomic news (ex. non-farm payroll or interest rate changes)
- Fundamental analysis (ex. using revenue data or earnings release notes)
- Statistical analysis (ex. correlation or co-integration)
- Technical analysis (ex. moving averages)
- The market microstructure (ex. arbitrage or trade infrastructure)
MQL4's Syntax
MQL4 is similar in its form to PHP, C, C++ or VBScript. Below is an example of a function that will be called on every tick of market data:
01
02
03
04
05
06
07
08
09
10
| void OnTick() { if (Bars<100 || IsTradeAllowed()== false ) return ; if (CalculateCurrentOrders(Symbol())==0){ CheckForOpen(); } else { CheckForClose(); } } |
Bars < 100
. MQL4 sets predefined variables such as Bars (which contains the number of bars loaded into the chart).Additionally, we check with an or
||
conditional for IsTradeAllowed(). This is a check function to check that the trading context is not currently busy.Elements of MQL4 such as these predefined variables and chart operation functions like Symbol() make writing your strategy a walk in the park, and for me are why it is really preferable to code algorithm trading robots in MQL4 over other languages.
I recommend you take a look through the MQL4 Reference whenever you have time to get more confident in using MQL4 to further satisfy your needs.
Editing MQL4 Code in the MetaEditor
I recommend using the built-in MetaEditor IDE that comes with the MT4 trading platform. To enter the editor, just right-click on an existing expert advisor in the left-hand navigator pane and select modify from the menu.The MetaEditor of MT4 will then open, and you will be able to create a new file. This offers the user syntax highlighting and debugging output.
Important: You will have to compile your mq4 files into ex4 expert advisors using the MetaEditor if you are editing in an external editor. So getting familiar with the MetaEditor is a must.
Post a Comment