GOLD FORUM

[TUT] Hướng dẫn lập trình bằng ngôn ngữ MQL4!.

linhchiter
Chào mừng bạn đến với khoá học lập trình bằng ngôn ngữ MQL4 (MetaQuotes Language 4). (Mr.Ken)



Giới thiệu

Hiện nay, hầu hết giới đầu tư trong lĩnh vực tài chính đều có nhu cầu xây dựng riêng cho mình những công cụ hỗ trợ phân tích cũng như lập trình cho máy tính vận hành tự động theo chiến lược riêng biệt mà nhà đầu tư mong muốn. Nghĩa là, tự động hoá các thao tác, tính toán mà nhà đầu tư từng làm thủ công hằng ngày. Ví dụ: khi bạn muốn biết điểm pivot của ngày hôm nay, bạn phải tìm thông số đầu vào và áp vào công thức để tính điểm pivot này. Nếu ta lập trình cho máy tính tính toán tự động và show kết quả, thì nhà đầu tư giờ đây chỉ còn ngồi nhìn kết quả mà hoạch định, chọn lựa hướng đầu tư, đầu cơ .

Tất nhiên, bạn hoàn toàn có thể lập trình để máy tính làm mọi thứ cho bạn, ngay cả việc khớp lệnh máy tính cũng có thể làm giúp. Nghĩa là, bạn chỉ cần lập trình ý tưởng, chiến lược của mình cho máy tính, thì nó sẽ làm mọi thứ theo ý bạn. Không có gì là máy tính không thể làm giúp bạn, chỉ khó khăn ở chổ là quá trình lập trình đó không dễ dàng, đòi hỏi nhiều kiến thức về công nghệ phần mềm cũng như thời gian để hoàn thành việc đó là quá lớn, chưa nói đến việc bạn thường xuyên thay đổi chiến lược của mình. Đồng thời, việc cập nhật datafeed (dữ liệu giá) cho phần mềm cũng tốn phí không ít, việc đồ hoạ hoá các kết quả, thừa kế những công cụ hỗ trợ phân tích đã có sẵn... tất cả bạn phải làm từ đầu.

Nhận thấy hầu hết các giới đầu tư đều có nhu cầu máy tính hoá và khó khăn của họ khi không dễ gì tự mình lập trình một phần mềm với nhiều công đoạn và thời gian như vậy. Các nhà lập trình Flatform bắt đầu có ý nghĩ là tích hợp sẵn mọi thứ trong flatform, giới đầu tư muốn lập trình tự động hoá gì, chỉ cần khai báo các yêu cầu thôi là phần mềm đã có thể làm giúp bạn. Vậy là mọi thứ bây giờ trở nên vô cùng đơn giản, nhà đầu tư muốn tự động hoá những thao tác, vận hành các chiến lược nhanh chóng, chính xác... hãy khai báo nhu cầu đó với các flatform có tích hợp sẵn chức năng này, nó sẽ hiểu tất cả những mong muốn của bạn và sẽ thực thi mọi yêu cầu của bạn nếu bạn biết cách khai báo yêu cầu đó. Hiện nay có khá nhiều Flatform có chức năng tích hợp lập trình như thế như: Metastocks, E-signals, Tradestation... nhưng nổi bật nhất là Metatrader4.

Ngôn ngữ MQL4

Mql4 là viết tắt của MetaQuotes Language 4. MetaQuotes là công ty đã xây dựng phần mềm giao dịch Metatrader ( Metatrader Trading Flatform). Ngoài việc được kết hợp sử dụng với Metatrader4 - một flatform được đông đảo nhà đầu tư trên thế giới đánh giá là flatform tốt nhất hiện nay, nhà đầu tư cảm thấy lập trình khai báo với Mql4 đơn giản mà nhiều tính năng hơn ở những Flatform tích hợp lập trình khác. Do đó, ngôn ngữ này quá phổ biến và tốt đến mức hầu hết các nhà đầu tư trên thế giới đều sử dụng nó và từ đó hình thành một thư viện rất lớn các sản phẩm lập trình với Mql4, và bạn có thể thừa kế chúng để phát triển, đa phần là miễn phí.

Ngôn ngữ MQL4 hỗ trợ bạn tạo các vấn đề sau khá dễ dàng:

1. Expert Advisors: Lập trình khớp lệnh tự động theo một quy trình phân tích, chiến lược nào đó.
2. Custom Indicators: Lập trình các chỉ báo, thao tác vận hành theo công thức do bạn nghiên cứu ra.
3. Scripts: Lập trình các chức năng phụ trợ giao dịch. Vd: tắt đồng loạt tất cả các khớp lệnh.

Bạn chỉ cần vào một broker nào đó có hỗ trợ flatform Metatrader4 (đa phần bây giờ các brokers đều hỗ trợ nó) hoặc vào thẳng trang chủ của công ty MetaQuotes để download phần mềm Metatrader4 về. Và thế là đã quá đủ cho yêu cầu về thiết bị của quá trình lập trình khai báo, không cần bất kỳ tài nguyên phụ kiện nào khác.

Phần mềm soạn thảo MetaEditor

Để viết code lập trình MQl4, bạn có thể dùng notepad...etc. Nhưng Metatrader4 có hỗ trợ phần mềm soạn thảo chuyên dụng là MetaEditor, nên sử dụng MetaEditor để soạn thảo code lập trình MQL4 là thuận lợi nhất.

1. Chạy phần mềm MT4, sau đó nhấn F4 hoặc click vào biểu tượng ở menu như hình dưới.




2. MetaEditor được chia làm 3 vùng với các tên gọi: "Editor Window", "Navigator Window" và "Toolbox Window".
a. Editor Window: Là nơi để bạn soạn thảo, viết chương trình (code lập trình) của bạn.
b. Navigator Window: chứa 3 tabs:
-Files: Giúp bạn truy xuất các files lập trình đã được lưu trong thư mục nào đó thật đơn giản, nhanh chóng.
-Dictionary: Cho phép bạn sử dụng hệ thống trợ giúp các từ khóa lập trình (tự điển Mql4). Thật tiện lợi.
-Search: Cho phép bạn tìm kiếm tự điển Mql4.
c. Toolbox Window: chứa 3 tabs:
-Errors: Bạn sẽ thấy lỗi trong phần soạn thảo lập trình của mình (nếu có) ở đây.
-Find in Files: Bạn sẽ thấy ở đây những files mà chứa từ khóa bạn đang tìm kiếm. Để tìm kiếm như thế bạn có thể dùng phím tắt: CTRL + SHIFT + F hoặc dùng toolbar command "Find in files".
-Help:



Đầu tiên chúng ta nói về nguyên tắc CÚ PHÁP của MQL4. Nó rất giống cú pháp của ngôn ngữ lập trình C. Cú pháp của ngôn ngữ MQL4 cũng bao gồm:
-Format
-Comments
-Identifiers
-Reserved words

1. Format:
Khi bạn viết code lập trình, bạn có thể tự do sử dụng bất kỳ khoảng trắng space, tabs và các dòng trống để bạn dễ dàng phân biệt code lập trình và các dòng lập trình nhằm tiện lợi cho quá trình nhìn nhận những đặc điểm của code.
Ví dụ tất cả các dòng lập trình sau là đúng trong MQL4:

double MacdCurrent, MacdPrevious, SignalCurrent;
double
MacdCurrent,
MacdPrevious,
SignalCurrent;
double MacdCurrent, MacdPrevious,
SignalCurrent;
(còn tiếp)
xinh113
Đề tài này Mr. Ken viết lâu quá rồi mà còn dang dở. Sao anh k viết tiếp để cho mọi người tham khảo với. Đang đọc hay, tới đây làm cụt mất hứng. Hic hic... Hay lâu quá anh quên k viết tiếp? Em rất muốn học hỏi, nếu được anh có thể send qua mail share cho em với. Thanks anh nhiều nhiều :hungio:
Mail của em: [email protected]
mymyby
mymyby đang đọc tài liệu luôn tiện post tiếp chủ để này theo chính bản của tác giả, mymy ko sửa gì lại cũng như ko hiểu gì nhiều nên mong mọi người đóng góp thêm...hy vọng mọi người thích..
Vì bài dài nên mình sẽ chia ra từng phần..
Tài liệu này mình nghĩ khá căn bản và đầy đủ cho mọi người bắt đầu bước vào tìm hiểu..

MQL4 COURSE
By Coders’ guru

Welcome to the MQL4 course.

-1-
WELCOME
--------------------

In this series, I will try to strip the mystique and confusion from MQL4 by giving you comprehensive tutorials with a straight forward example.

In this series of lessons, I will show you how to use the MQL4 for building your own
Expert Advisors, Custom Indicators and Scripts.

If you are programming in C (or its superset C++) then you know a lot of MQL4 before even I start my lessons, if you didn’t write in any programming language before, no problem, I’ll guide you to understand the concept of programming in general as well.

So, let’s start from the beginning.

MQL4? What, Why and Where?


MQL4 stands for MetaQuotes Language 4.
MetaQuotes is the company who built the MetaTrader Trading Platform.
And to make it stronger than the other trading platforms the company extended it by a
built-in programming language that enables the user (you) to write his own trading strategies.

The language enables you to create one of the following:

1- Expert Advisors.
2- Custom Indicators.
3- Scripts.

• Expert Advisor is a program which can automate trading deals for you. For example it can automate your market orders, stops orders automatically, cancels/replaces orders and takes your profit.

• Custom Indicator is a program which enables you to use the functions of the technical indicators and it cannot automate your deals.





• Script is a program designed for single function execution.
Unlike the Advisor, scripts are being held only once (on demand), and not by ticks. And of course has no access to indicator functions.

These were “What” MQL4 is? “Why” to use MQL4? Now, “Where” do I write MQL4?

To write your MQL4 code and as anything else in world, you can choose one of two ways, the hard way and the easy way.

1- The hard way
The hard way is using your favorite text editor and the command prompt to compile your
program.
Notepad is not bad choice, but do not forget two things:
1- To save the file you have created in plain text format.
2- To save the file as .mp4 (that’s to be easy to reopen it with Metaeditor), but you can save it as any extension you prefer.

After saving your program there is an extra step to make your code comes out to the light.
It’s the Compiling step.
Compiling means to convert the human readable script that you have just wrote to the machine language that your computer understands.

MetaTrader has been shipped with its own compiler (the program which will convert your script to the machine language) called MetaLang.exe.

Metalang.exe is a console program which takes 2 parameters and output an .ex4 file (the file which Metatrader understands).
The first parameter is “options” parameter and the only option available is –q quit
The second parameter is the full path to your .mql file.

The syntax will be in this format.
metalang [options…] filename

Example
1- Find your metalang.exe path, it will be the same path of MetaTrader (here my
path is D:\Program Files\MetaTrader 4)
2- Create a batch file and name it compile.bat (or any name you prefer).
3- Write these lines into the bat file then save it.
cd D:\Program Files\MetaTrader 4
metalang -q "D:\Program Files\MetaTrader 4\my_first_mql4_script.mq4"
(Don’t forget to change the path to you MetaTrader installed path)
4- Run the batch file and if you are lucky person like me you will get a screen like this.

As you see you will get the output file “my_first_mql4_script.ex4”


2-The easy way
Metatrader has been shipped with a good IDE (integrated development editor) called
MetaEditor which has these features:

1- A text editor has the feature of highlighting different constructions of MQL4 language while you are writing/reading code.

2- Easy to compile your program, just click F5 and the MetaEditor will make all the hard work for you and produces the “ex4” file.
Besides it’s easy to see what the wrong in your program is (in the Error Tab – see figure 2).

3- Built-in a dictionary book which you can access by highlight the keyword you want to know further about it then press F1.

(Còn tiếp...)
mymyby


Figure 2 MetaEditor 4

In the coming lessons we will know more about MetaEditor.



Today I just came to say hello, tomorrow we will start the real works. Tomorrow we will study the Syntax of MQL4?

I welcome very much the questions and the suggestions.



See you
Coders’ Guru
19-10-2005
mymyby
Phần 2 gồm 6 trang
Trang 1
mymyby
Trang 2
mymyby
Trang 3
mymyby
Trang 4
mymyby
Trang 5
mymyby
Trang 6

Hết phần 2
mymyby
Phần 3 gồm 9 trang
Trang 1
mymyby
Trang 2
mymyby
Trang 3
mymyby
Trang 4
mymyby
Trang 5
mymyby
Trang 6
mymyby
Trang 7
mymyby
Trang 8
mymyby
Trang 9

Hết phần 3
Edart
hix, món này hơi bị khó nuốt
Trang 1/2 1 2 cuốicuối