lập trình
Bạn đang đọc bây giờ
MQL Thực tế. Nguyên tắc cơ bản và xung nhịp của thị trường [Khóa học lập trình]
0

MQL Thực tế. Nguyên tắc cơ bản và xung nhịp của thị trường [Khóa học lập trình]

tạo Radek SzafronTháng 12 2019

trong một chu kỳ MQL thực tế chúng tôi sẽ cung cấp cho bạn kiến ​​thức cần thiết để bắt đầu làm việc với các ứng dụng được viết bằng MQL 4 cho nền tảng Meta Trader. Chủ đề lập trình tất nhiên là rất rộng, nhưng mục đích của loạt bài này không phải là nêu ra tất cả các vấn đề có thể xảy ra và trang bị cho bạn lý thuyết phức tạp. Mục đích của loạt bài này là chỉ cho bạn cách bắt đầu làm việc với MQL và cung cấp cho bạn kiến ​​thức cho phép bạn phát triển độc lập trong lĩnh vực này.

Vì mục đích của các nhiệm vụ mà chúng ta sẽ thực hiện cùng nhau, cần phải cài đặt riêng nền tảng MetaTrader 4, trên đó chỉ cài đặt tài khoản demo của bất kỳ nhà môi giới nào. Chúng tôi không muốn làm rối tung tài khoản thực. Đây có thể là phiên bản gốc của nền tảng MT4.

TẢI XUỐNG METATRADER 4

Chức năng cơ bản

Hãy bắt đầu từ những điều cơ bản, tức là từ cửa sổ nền tảng MT4 trông như thế nào và nó chứa những chức năng nào liên quan đến các ứng dụng được viết bằng MQL. Chúng ta hãy nhìn vào bức tranh dưới đây.

chuyên gia_config

MQL thực tế - Hình 1

Có một cửa sổ ở nơi được đánh dấu bằng một "Hoa tiêu" (Ctrl + N). Bảng điều khiển cho phép chúng tôi truy cập vào tất cả các công cụ MQL được cài đặt trên một nền tảng nhất định và được chia thành “Các chỉ số”, “Chiến lược gia” i "Kịch bản". Chúng tôi chạy các chương trình bằng cách kéo chúng vào biểu đồ đã chọn và định cấu hình các tham số của ứng dụng đã cho trong cửa sổ hiển thị. Ở nơi được đánh dấu bằng hai, chúng ta thấy một cửa sổ cài đặt ví dụ. Tất cả các tham số có thể được định cấu hình cho ứng dụng đều có sẵn tại đây, nhưng hãy tập trung vào các yếu tố cơ bản chung cho tất cả các chương trình. Đồng ruộng “Kích hoạt giao dịch” thường bị người dùng bỏ qua và tùy thuộc vào dấu tích ở đây để xác định liệu thuật toán có thể kết thúc giao dịch hay không. Tính năng này cho phép bạn tắt và bật chức năng giao dịch cho từng thuật toán một cách riêng biệt trái ngược với các tính năng “Giao dịch tự động”, được đánh dấu bằng một hình tam giác, là một công tắc toàn cầu tắt khả năng kết thúc giao dịch bằng tất cả các công cụ hoạt động trên một nền tảng Meta Trader nhất định.

Tôi không nghĩ rằng có bất kỳ điều gì cần phải làm phiền bạn với các tính năng bổ sung ở giai đoạn này. Thông tin trên là đủ để chúng tôi chạy thành công chương trình đầu tiên của mình.

Chúng ta có thể bắt đầu nghĩ về lập trình. Một môi trường phát triển ứng dụng được tích hợp vào nền tảng MetaTrader. Môi trường có sẵn từ menu “Công cụ/Trình chỉnh sửa MQL4”.

metaeditor_launch

MQL thực tế - Hình 2

Sau khi chọn tùy chọn trong menu, một ứng dụng mới sẽ mở ra - "Siêu biên tập viên". Ở đây chúng tôi sẽ viết các thuật toán cho nền tảng MT4. Hãy dừng lại ở đây một chút và tìm hiểu các yếu tố quan trọng nhất của trình soạn thảo.

metaeditor_basic

MQL thực tế - Hình 3

Ở phía bên trái của cửa sổ, giống như trong MT4, có một bảng điều khiển "Hoa tiêu". Ở vị trí được đánh dấu bằng một trong hình trên, chúng tôi đã mở rộng nội dung của thư mục Chuyên gia, sau đó, bằng cách nhấp đúp vào tên của chương trình, chúng tôi đã mở mã nguồn của nó, mã này xuất hiện trong phần của cửa sổ được đánh dấu bằng số hai. Đây là nơi chúng tôi tạo và chỉnh sửa các thuật toán. Khi viết xong ứng dụng, chúng ta cần chuyển nó sang dạng mà máy tính có thể đọc được, tức là biên dịch chương trình bằng cách chọn tùy chọn "biên dịch" (F7), được đánh dấu bằng ba. Thuật toán đã biên dịch có thể được tìm thấy trong bảng điều khiển "Hoa tiêu" Nền tảng MT4 và bắt đầu bằng cách kéo vào biểu đồ đã chọn. Chính xác như trong phần trước của bài viết này.

cây non "Hoa tiêu" phản ánh cấu trúc của các tệp nằm trong thư mục MQL4, tức là thư mục nơi một nền tảng nhất định lưu trữ tất cả các ứng dụng được viết bằng MQL. Khi chúng tôi muốn cài đặt một ứng dụng, ví dụ: một ứng dụng được cung cấp như một phần trong chu trình của chúng tôi, chúng tôi nên sao chép tệp vào thư mục MQL4, hãy nhớ rằng “Chiến lược gia” chúng tôi đưa vào thư mục “MQL4\Chuyên gia”, Một “Các chỉ số” trong danh mục “MQL4\ Chỉ báo” và mỗi bản sao của Meta Trader 4 được cài đặt trên máy tính của bạn đều có thư mục MQL4 riêng. Cách tìm thư mục MQL4 của một nền tảng nhất định được trình bày trong hình bên dưới (nhấp chuột phải vào biểu tượng MQL4).

metaeditor_mql_folder

MQL thực tế - Hình 4

Chúng ta đã biết cách chạy, cài đặt và cách viết ứng dụng cho Meta Trader 4. Hãy chuyển sang phần ưu điểm và bắt đầu học lập trình.


chuyên gia tư vấn


Chúng tôi tạo ứng dụng đầu tiên

Để giúp bạn thực hiện những bước đầu tiên với tư cách là một lập trình viên, chúng ta sẽ cùng nhau viết một ứng dụng nhỏ, nhiệm vụ của ứng dụng này là thông báo cho chúng ta về hoạt động thị trường hiện tại. Chúng tôi sẽ gọi cho cô ấy “Nhịp đập của thị trường”, và chúng tôi sẽ sử dụng nó trong khi đang bận duyệt báo chí, chờ độ biến thiên mong muốn xuất hiện mà chúng tôi sẽ nghe thấy nhờ sự thay đổi tần số âm thanh do thuật toán của chúng tôi tạo ra.

Như một phụ lục cho bài viết này dưới LIÊN KẾT NÀY bạn sẽ tìm thấy tập tin âm thanh “xung_beep.wav”. Vui lòng đặt nó trong thư mục "Âm thanh", nằm trong thư mục gốc của nền tảng MT4. Mục lục "Âm thanh" có thể được định vị bằng cách mở các thuộc tính của phím tắt khởi chạy thiết bị đầu cuối, như trong hình bên dưới.
mt4_location

MQL thực tế - Hình 5

Những hình ảnh dưới đây cho thấy cách tạo một tệp chính sách tự động mới, gần như trống rỗng. Trong cửa sổ MetaEditor, chọn chức năng "Mới mẻ", sau đó đánh dấu "Chuyên gia tư vấn", chọn tên chương trình và bấm "Kế tiếp" cho đến khi mẫu chương trình mới xuất hiện trong trình chỉnh sửa.

metaeditor_new_1

Hình 6

 

metaeditor_new_2

Hình 7

 

metaeditor_new_3

Hình 8

Chúng tôi không dễ dàng và xóa toàn bộ nội dung của tệp trong cửa sổ được đánh dấu bằng một trong ảnh cuối cùng. Chúng tôi sẽ tự viết toàn bộ mã của ứng dụng của mình. Hãy bắt đầu.


              // Puls Rynku.mq4
              // Copyright 2019, Mistrz Programowania
              // https://www.mistrz.ty
            

Bằng cách nhập “//” ở đầu dòng, chúng tôi tạo nhận xét, tức là các đoạn được lập trình viên sử dụng để tạo tất cả các loại thông tin và ghi chú bên trong mã. Comment không ảnh hưởng đến hoạt động của chương trình. Sử dụng nhận xét, bạn có thể tạo tiêu đề cho ứng dụng của mình, ví dụ: tiêu đề này sẽ cung cấp thông tin về tác giả, thông tin về chính ứng dụng hoặc bản quyền. Hãy tạo một tiêu đề (hoặc không), sau đó, trên một dòng mới, hãy đặt đoạn mã sau.

          
              #property strict
            

Các tham số của loại “#property” cho phép bạn cung cấp cho nền tảng thông tin bổ sung về chương trình đã tạo. Tham số “#propertystrict”, được đặt ở đầu dòng, thông báo cho nền tảng biết rằng thuật toán được tạo bằng cú pháp ngôn ngữ MQL4 mới nhất.

Trong bước tiếp theo, hãy nhập thao tác sau vào một dòng mới.

    
              input string Plik_dzwiekowy =  "pulse_beep.wav";
            

Từ "đầu vào" cho chương trình biết rằng chúng tôi đang tạo một tham số cho phép chúng tôi nhập các cài đặt cần thiết để chương trình chạy. Sau đó "đầu vào" chúng tôi luôn chỉ định loại đầu vào, đây là "Sợi dây" tức là văn bản. Sau đó, chúng tôi tạo tên của biến, nói một cách đơn giản, tên của một đoạn bộ nhớ của máy tính, mà chúng tôi sẽ có thể tham khảo trong tương lai để đọc dữ liệu đã nhập. Chúng tôi gọi biến của chúng tôi "tập tin âm thanh", nó thuộc loại chuỗi, tức là nó sẽ cho phép chúng tôi nhập văn bản vào chương trình mà chúng tôi sẽ sử dụng làm tên của tệp âm thanh mà thuật toán của chúng tôi sẽ sử dụng.

Sau tên biến ta thấy có dấu bằng. Nó có nghĩa là một văn bản sẽ được gán cho biến của chúng tôi “xung_beep.wav”. Giá trị này sẽ được sử dụng làm giá trị mặc định trong trường hợp này và có thể thay đổi giá trị này sau khi kéo chương trình vào biểu đồ trong cửa sổ cài đặt. Chúng ta vừa định nghĩa một thao tác gán dữ liệu. Đây là một thao tác đơn giản và chúng tôi kết thúc thao tác này bằng dấu chấm phẩy.

Tại thời điểm này, bạn nên dừng lại một chút và đọc về các loại dữ liệu. Trong dòng trên, chúng tôi đã sử dụng một kiểu dữ liệu "Sợi dây", nhưng còn nhiều loại nữa và chúng là một phần cơ bản của ngôn ngữ không thể tránh khỏi. Tôi đang đăng địa chỉ lên một đoạn tài liệu mô tả các loại dữ liệu MQL4.
Như bạn có thể thấy trong các đoạn trên, một dòng rất quan trọng trong lập trình và bạn nên rất cẩn thận với những gì bạn nhập vào mã nguồn, bởi vì ngay cả lỗi nhỏ nhất cũng sẽ ngăn cản quá trình biên dịch thuật toán.

Chúng tôi tiếp tục viết.


                void OnTick()   
                {
                
                PlaySound(Plik_dzwiekowy);
                
                }
          

Ký hiệu trên định nghĩa một hàm “OnTick ()”. Các chức năng là các thành phần của thuật toán chịu trách nhiệm thực hiện các hoạt động được giao phó cho chúng. Trong trường hợp này, chúng tôi thấy một chức năng không thể thiếu của ngôn ngữ MQL, có nhiệm vụ thực hiện một thao tác khi giá của công cụ mà thuật toán của chúng tôi hoạt động thay đổi. Nền tảng sẽ gọi chức năng này mỗi khi một đánh dấu mới xuất hiện. Các hoạt động được thực hiện bởi mỗi chức năng do chúng tôi viết được xác định bởi chính chúng tôi. Chúng tôi có đầy đủ tự do ở đây và hầu như không có hạn chế. Tuy nhiên, lần này, chúng tôi sẽ bị hạn chế và chỉ phát tệp âm thanh được chỉ định trước đó bởi tham số "đầu vào". Với mục đích này, chúng tôi sẽ sử dụng một chức năng khác, cũng được tích hợp sẵn của ngôn ngữ MQL 4 - “PlaySound(tên tệp chuỗi)”có nhiệm vụ phát tệp âm thanh có tên mà nó nhận được bằng cách sử dụng một biến có kiểu dữ liệu “chuỗi” mà nó mong đợi nằm giữa các dấu ngoặc sau tên hàm. Thao tác gọi hàm “PlaySound” chúng tôi kết thúc bằng dấu chấm phẩy bởi vì, giống như thao tác gán dữ liệu, đây là một thao tác đơn giản.

Như bạn có thể đoán, đây là lúc bạn nên khám phá các thao tác có sẵn trong cú pháp của ngôn ngữ.

Chúng tôi nhấn biên dịch!

metaeditor_compile_ok

Hình 9

Tôi giữ ngón tay của mình vượt qua rằng mọi thứ trông giống như trong hình trên. Nếu vậy, quá trình biên dịch đã thành công. Mặt khác, nếu kết quả giống hình 10 hơn, thì chúng ta phải xác định lỗi bằng cách làm theo thông tin hiển thị ở bảng dưới cùng, xuất hiện sau nỗ lực biên dịch. Ở phía bên trái của bảng điều khiển, chúng ta có thể đọc nội dung của các lỗi và ở bên phải chúng nằm ở dòng nào. Nhấp đúp vào dòng có lỗi sẽ đưa chúng ta đến phần thích hợp của mã nguồn. Hãy chèn dấu chấm phẩy và dấu ngoặc đơn còn thiếu và nhấn lại "biên dịch".

metaeditor_compile_ups

Hình 10

Đã kết thúc! Chúng ta có thể truy cập MT4 và kéo thuật toán đầu tiên của mình vào bất kỳ biểu đồ nào.

Bíp bíp… ????

Gặp lại bạn vào tuần tới. Chúng tôi sẽ viết một chương trình mới và khám phá các tính năng nâng cao hơn của ngôn ngữ.

MÃ SỐ CUỐI CÙNG - SỨC SẮC CỦA THỊ TRƯỜNG

Bạn nghĩ sao?
tôi thích
68%
Thú vị
28%
Heh ...
6%
Sốc!
11%
Tôi không thích
15%
Thương xót
3%
Thông tin về các Tác giả
Radek Szafron
Tác giả của ấn phẩm là Radek Szafron, chủ sở hữu của Expert Advisors, công ty đã hỗ trợ các nhà đầu tư trong nhiều năm bằng cách cung cấp các công nghệ dành riêng cho thị trường FOREX. Tác giả tốt nghiệp ngành tài chính tại Trường Kinh tế Warsaw với chuyên ngành "Thị trường tài chính" và là một lập trình viên với gần 20 năm kinh nghiệm. Công ty thực hiện các dự án về thuật toán và ứng dụng được viết bằng tất cả các ngôn ngữ thuộc họ "C", bao gồm nền tảng phổ biến Meta Trader 4 và 5. Bạn có thể tìm thấy Expert Advisors tại www.expertadvisors.pl.