ebook img

Andrew Young - Expert Advisor Programming Creating Automated Trading Systems in MQL for ... PDF

212 Pages·2010·1.31 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Andrew Young - Expert Advisor Programming Creating Automated Trading Systems in MQL for ...

Expert Advisor Programming Creating Automated Trading Systems in MQL for MetaTrader 4 Andrew R. Young Edgehill Publishing SECOND PRINTING Copyright © 2010, Andrew R. Young. All rights reserved. Published by Edgehill Publishing, Nashville, TN. Disclaimer of Warranty: While we have strived to ensure that the material in this book is accurate, the publisher bears no responsibility for the accuracy or completeness of this book, and specifically disclaims all implied warranties of of merchantability or fitness for a particular purpose. Neither the author nor publisher shall be liable for any loss of profit or any other non-commercial or commercial damages, including but not limited to consequential, incidental, special, or other damages. "MetaTrader 4," "MQL" and "expert advisor" are trademarks of MetaQuotes Software Corp. This book and it's publisher is not in any way endorsed by or affiliated with MetaQuotes Software Corp. For more information on this book, including updates, news and new editions, please visit our web site at http://www.expertadvisorbook.com/. ISBN: 978-0-9826459-0-1 Table of Contents Introduction 1 About This Book 2 A Note About MQL 5 2 Conventions Used In This Book 3 An Introduction to MQL 4 Introduction to MetaEditor 4 Basic Concepts 7 Layout of an MQ4 File 14 Order Placement 20 Bid, Ask & Spread 20 Order Types 20 The Order Placement Process 21 OrderSend() 22 Calculating Stop Loss & Take Profit 25 Retrieving Order Information 32 Closing Orders 34 A Simple Expert Advisor 36 Advanced Order Placement 42 Order Modification 42 Verifying Stops and Pending Order Prices 45 Calculating Lot Size 49 Other Considerations 52 Putting It All Together 57 Working with Functions 64 Add Stop Loss and Take Profit 73 Using Include Files 74 Using Libraries 74 A Simple Expert Advisor (with Functions) 75 Order Management 80 The Order Loop 80 Order Counting 82 Trailing Stops 87 Updating the Expert Advisor 92 Order Conditions and Indicators 94 Price Data 94 Indicators 95 Indicator Constants 102 Evaluating Trade Conditions 103 Comparing Indicator Values Across Bars 108 Working with Time and Date 112 Datetime Variables 112 Date and Time Functions 114 Creating A Simple Timer 115 Execute On Bar Open 117 Tips and Tricks 122 Escape Characters 122 Using Chart Comments 122 Check Settings 123 Demo or Account Limitations 124 MessageBox() 125 Email Alerts 127 Retry on Error 128 Using Order Comments As an Identifier 131 Margin Check 132 Spread Check 132 Multiple Orders 133 Global Variables 136 Check Order Profit 137 Martingale 138 Debugging Your Expert Advisor 141 Custom Indicators and Scripts 146 Buffers 146 Creating A Custom Indicator 146 Scripts 152 Appendix A 154 Simple Expert Advisor 154 Simple Expert Advisor with Pending Orders 156 Appendix B 160 Advanced Expert Advisor 160 Advanced Expert Advisor with Pending Orders 166 Appendix C 172 Expert Advisor with Functions 172 Expert Advisor with Functions – Pending Orders 175 Appendix D 180 Include File 180 Appendix E 198 Custom Indicator 198 Introduction Introduction The foreign exchange market has rapidly become one of the most popular markets to trade in recent years. Because of its round-the-clock hours, high leverage and low margin requirements, thousands of ordinary people have become active traders. MetaTrader 4 (commonly abbreviated as MT4) has become one of the most popular trading platforms for forex. Developed by MetaQuotes Software Corporation, MetaTrader is offered by hundreds of forex brokers worldwide, including big names such as GAIN Capital, FXCM, Alpari and Interbank FX. MetaTrader's popularity stems from the fact that it's free, broker supported, and includes many useful technical analysis tools. But probably the biggest reason for MetaTrader's success is the powerful MQL programming language. MQL has made it possible for traders to program their own custom indicators and automated trading strategies without paying a dime for software. Similar trading packages for equities and futures can cost over $1000. A worldwide community of traders and programmers has developed, offering hundreds of free and commercial expert advisors and indicators, as well as programming services and advice. The similarity of MQL to languages such as C makes it relatively easy for experienced programmers to pick up, and the language itself is well documented. But learning how to effectively program trading strategies in MQL is a process of trial and error. MQL is a relatively low level language, and as such, it is necessary for the programmer to create custom procedures to handle many common trading functions. Coding something as simple as a trailing stop, for example, can be daunting for the new MQL programmer. There are many factors that must be taken into consideration when programming a robust automated trading strategy, and MetaTrader itself has many idiosyncrasies that the programmer needs to be aware of. It can take dozens of hours of troubleshooting and practice to learn the techniques necessary to program expert advisors. This book hopes to shorten the learning curve for new expert advisor programmers. Here I will present many of the tips and tricks I've learned in the hundreds of hours I've spent coding expert advisors over the last few years. 1 EXPERT ADVISOR PROGRAMMING About This Book By the time you finish this book, you should possess the knowledge necessary to create your own robust automated trading strategies in MQL, including common trading features such as trailing stops, money management and much more. You will also learn how to construct a simple indicator, using built-in indicator functions. This book assumes that the reader is knowledgeable about forex trading and technical analysis in general. The reader should already be proficient in using expert advisors and indicators in MetaTrader. While no prior programming knowledge is assumed, the reader will benefit from having some basic programming skills, and familiarity with concepts such as variables, control structures, functions and modern programming language syntax. We will be diving right into coding solutions to specific problems. Every attempt is made to explain new concepts as they are introduced, however this book is not intended as a language reference. The MQL reference at http://docs.mql4.com does an excellent job at that. The MQL reference is also built into the MetaEditor IDE that comes with MetaTrader. While we will attempt to touch on everything that is necessary and relevant to expert advisor development, we will not be able to cover every element of the MQL language. There are many specialized functions in MQL that are not generally used in expert advisor programing. In particular, we will not be discussing array functions, file manipulation, objects, windows, and most string or conversion functions. The official MQL4 website at http://www.mql4.com has a free book on MQL programming that may serve as a useful and complementary resource. There are many informative articles that cover basic and advanced programming concepts in MQL, a code library with additional indicators and examples, and a forum where you can ask for help with your programming questions. The code examples and techniques I teach in this book are what has worked for me. I try to keep things as simple as possible, without sacrificing functionality. That said, there is always more than one way to accomplish something, and this is especially true in programming. There are equally valid methods of achieving the same result, and it is possible you may discover a better way of doing something. Many of the source code examples in this book, as well as the full appendixes, are available for download at the book's official website, http://www.expertadvisorbook.com/. This way, you can save yourself the time of typing in all of the examples yourself. Feel free to modify the source code for your own needs. 2

Description:
Introduction to MetaEditor. What is an Expert Advisor? An expert advisor is an automated trading program written in MQL. Expert advisors (commonly abbreviated as EA) can place, modify and close orders according to a trading system algorithm. EA's generally use indicators to generate trading signals
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.