MQL4 Beginner's Tutorial | Syntax, Variables, Comments, Functions

Tìm hiểu cú pháp, biến, chú thích, hàm là gì và phát triển chiến lược giao dịch tự động của riêng bạn trong hướng dẫn hoàn chỉnh dành cho người mới bắt đầu MQL4 này.


Cú pháp

Nhận xét

Biến

Hàm (tiêu chuẩn)

Chức năng (tùy chỉnh)


  • < / ul>

    Cú pháp< / span>

    Nếu bạn đã quen với việc lập trình bằng bất kỳ ngôn ngữ nào trong số nhiều ngôn ngữ bắt nguồn từ C, thì bạn sẽ lập trình rất giỏi với MQL.


    Nhưng đối với hầu hết những người không phải lập trình viên muốn học ngôn ngữ này, bạn phải học một cách viết mới.


    Trong MQL, mọi câu lệnh đều kết thúc bằng dấu chấm phẩy, được gọi là biểu thức. Một biểu thức có thể trải dài trên nhiều dòng và phải có dấu chấm phẩy ở cuối.


    Dừng lỗ kép bên ngoài = 15,0; // Biểu thức một dòng


    Hoặc thế này Biểu thức nhiều dòng:


    If (FastMACurrent > SlowMACurrent)

    OpenBuy=True; //Biểu thức nhiều dòng

    p>


    Nếu bạn là người mới làm quen với lập trình, bạn cần đảm bảo đặt dấu chấm phẩy ở cuối mỗi câu lệnh. Không làm điều này là một sai lầm phổ biến của người mới bắt đầu.

    Ngoại lệ đối với quy tắc dấu chấm phẩy: toán tử ghép.

    Toán tử ghép là một dòng mã chứa nhiều biểu thức trong dấu ngoặc nhọn {}. Toán tử ghép có thể bao gồm toán tử điều khiển (if, switch), toán tử vòng lặp (for, while) và khai báo hàm. Dưới đây là ví dụ về toán tử điều khiển:


    If (Bars <100)

    { Print("Số thanh là nhỏ hơn 100 ");

    Trả về (0);


    Lưu ý rằng bạn không đặt dấu chấm phẩy sau toán tử if ban đầu . Bạn cũng không cần phải đặt dấu chấm phẩy sau dấu ngoặc đóng. Có dấu chấm phẩy sau hàm Print(). Đó là vì có thể có một hoặc nhiều biểu thức bên trong dấu ngoặc nhọn và mỗi biểu thức phải kết thúc bằng dấu chấm phẩy.

    Tip

    Có một cách nhanh chóng để kiểm tra xem cú pháp của bạn có đúng không. Nếu bạn nhấn nút biên dịch từ trình chỉnh sửa sau khi hoàn thành một biểu thức hoặc câu lệnh, bạn sẽ gặp một loạt lỗi nếu bạn quên hoàn thành biểu thức bằng dấu chấm phẩy hoặc nếu bạn quên hoàn thành nó bằng dấu ngoặc mở hoặc nẹp mở Khớp với dấu ngoặc vuông bên phải hoặc dấu ngoặc nhọn đóng. Những lỗi này là những cảnh báo trả về và kiểm tra dấu chấm phẩy, dấu ngoặc đơn và dấu ngoặc nhọn.

     

    < span jsaction="mouseup:Sxi9L,BR6jm; mousedown:qjlr0e" jsname="jqKxS">Nhận xét

    Tương tự như nhận xét bằng các ngôn ngữ khác, nhận xét MQL4 đôi khi được sử dụng trong các phần giải thích của mã Gắn cờ hoặc tạm thời xóa mã trong khi kiểm tra và gỡ lỗi. Bạn có thể thấy hữu ích khi ghi lại mã của mình càng nhiều càng tốt để giúp bạn hiểu nó. Ngôn ngữ mã hóa đôi khi có thể khá mơ hồ và có thể hữu ích nếu bạn làm rõ mã của mình đang cố gắng thực hiện điều gì bằng tiếng Anh đơn giản. Ngoài ra, bạn có thể sử dụng nhận xét để xóa tạm thời một dòng mã mà không cần phải xóa.


    Có hai cách để nhập nhận xét: 1) nhận xét một dòng và 2) nhận xét nhiều dòng.

    Cú pháp nhận xét một dòng

    // us Đã đăng một bình luận


    Các bình luận theo sau hai dấu gạch chéo lên (//). Bất kỳ dòng nào bắt đầu bằng // đều là văn bản tự do và sẽ bị chương trình bỏ qua. Điều này rất hữu ích để che dấu một dòng mã nhằm mục đích thử nghiệm.

    Cú pháp nhận xét nhiều dòng

    / * Chúng tôi muốn chặn một loạt mã*/


    Nhận xét bắt đầu bằng '/*' và kết thúc bằng '*/'.


    Dạng nhận xét này dùng để vô hiệu hóa nhanh nhiều dòng mã cùng một lúc, thay vì phải đặt hai ký tự dương ở đầu mỗi dòng như phương pháp đầu tiên. gạch chéo. Khi bạn có nhiều mã cần che dấu, sẽ quá tốn thời gian nếu đặt trước mỗi dòng bằng dấu gạch chéo kép về phía trước và việc sử dụng kỹ thuật nhận xét nhiều dòng sẽ dễ dàng hơn nhiều.

    Biến

    Biến là đơn vị lưu trữ cơ bản của bất kỳ ngôn ngữ lập trình nào và chứa dữ liệu cần thiết để chạy chương trình. Các biến phải được khai báo và để khai báo một biến, bạn đặt ba phần lại với nhau, như trong ví dụ này:


    Lô đôi = 0,1;

    p>


    Ở đây nó được chia thành ba phần:


    Loại dữ liệu (ví dụ: double ) , theo sau là mã định danh (ví dụ: Lô) và sau đó là giá trị mặc định sau dấu bằng (ví dụ: 0,1).


    Loại dữ liệu chỉ định loại thông tin mà biến chứa, chẳng hạn như số, chuỗi văn bản, ngày tháng hoặc màu sắc. Dưới đây là một số loại dữ liệu phổ biến:

    Data TypeDescription
    intMột số nguyên (số nguyên), chẳng hạn như 0, 3 hoặc -5. Bất kỳ số nào được gán cho biến số nguyên sẽ được làm tròn lên
    gấp đôi Số thập phân, chẳng hạn như 0,01
    chuỗiMột chuỗi văn bản, chẳng hạn như "Bạn đã bắn súng hỏa mai". Chuỗi phải được đặt trong dấu ngoặc kép.
    booleanGiá trị đúng/sai. Nó cũng có thể được biểu thị dưới dạng 1 (đúng) hoặc 0 (sai).
    datetimeNgày và giờ, chẳng hạn như 2011.01.01 01:11.

    Ở đây, định danh của tôi là "Lots" có thể được đặt tên bằng nhiều thứ, chẳng hạn như "ilots", "ordersize", "volume".


    Mã định danh là tên được đặt cho các biến và hàm tùy chỉnh. Nó có thể là sự kết hợp bất kỳ của số, chữ cái và ký tự gạch dưới (_), tối đa 31 ký tự. Số nhận dạng cuối cùng là những từ được chọn tùy ý để mô tả ý định của bạn.


    Tôi đã thấy một số người lập trình sử dụng các chữ cái và số (ví dụ: "gd_104") làm mã định danh thay vì sử dụng các từ đơn giản, nhưng điều này cuối cùng khiến cho mã bị không thể đọc được đối với người ngoài (hoặc đối với bạn, nếu bạn quên ý nghĩa của các chữ cái và số kết hợp). Tốt nhất là làm cho chúng dễ đọc và dễ nhớ. Ngoài ra, hãy nhớ rằng số nhận dạng phân biệt chữ hoa chữ thường (Lô và lô là số nhận dạng khác nhau) và cũng nhạy cảm với chính tả (Lô và Lô là số nhận dạng khác nhau), vì vậy hãy đảm bảo tất cả số nhận dạng đều phân biệt chữ hoa chữ thường và viết đúng chính tả (những lỗi thường gặp của người mới).


    Sau khi một biến được khai báo, giá trị của nó có thể được thay đổi bằng cách gán một giá trị mới cho nó, trong ví dụ sau:

    < br/>

    Lô kép = 0,1;

    mylotsi = rất nhiều;

    // mylotsi là 0,1


    Lưu ý rằng các biến được gán phải có cùng kiểu dữ liệu, nếu không sẽ dẫn đến kết quả không mong muốn.


    Các biến được gán trước bên ngoài được gọi là biến ngoài.


    Dừng đôi bên ngoài = 0,1;

    Dừng đôi bên ngoài = 50;


    p>

    Chúng rất hữu ích trong phần đầu tiên của EA, để truy cập và thao tác các giá trị của chúng từ cửa sổ thuộc tính chương trình.

    Hằng số

    Nếu một biến chứa một giá trị dữ liệu mà sau này có thể được thay đổi hoặc sửa đổi, thì hằng số sẽ là giá trị ngược lại, một giá trị dữ liệu không bao giờ thay đổi.


    Ví dụ: tất cả các số từ 0 đến 9 là hằng số nguyên, true và false là hằng số Boolean, màu đỏ là hằng số màu, 2011.01.01 00:00 Là hằng số ngày giờ của ngày 10 tháng 1 năm 2010.


    Có nhiều hằng số tiêu chuẩn khác nhau cho những thứ như dữ liệu giá, thời gian biểu đồ, màu sắc và hoạt động giao dịch. Bạn sẽ thấy PERIOD_M1 là hằng số trong khung thời gian của biểu đồ M1, trong khi OP_SELL đề cập đến lệnh bán trên thị trường.


    Bạn có thể tìm hiểu thêm về hằng số trong Hằng số chuẩn trong Tài liệu tham khảo MQL4.

    Chức năng

    Các chức năng là nền tảng của ngôn ngữ này. Hàm là một khối mã được thiết kế để thực hiện một tác vụ cụ thể, chẳng hạn như đặt lệnh hoặc tính toán điểm dừng cuối.

    Các chức năng tiêu chuẩn

    Có hơn 220 chức năng tiêu chuẩn trong MQL4, không bao gồm các chức năng của chỉ báo kỹ thuật. Bất cứ khi nào bạn gặp các hàm này trong mã của mình, chúng thường xuất hiện với màu riêng (chẳng hạn như màu tím) và tham chiếu đến một biểu thức trong dấu ngoặc đơn, chẳng hạn như hàm in được đề cập trước đó.


    Print("Thanh nhỏ hơn 100");


    Hàm Print() Đây là một hàm thường được sử dụng để khai báo những thứ cho chúng ta bên ngoài chương trình và thuộc cùng loại với các hàm như hàm Comment(), hàm PlaySound() và hàm MessageBox(). Bạn có thể đọc tất cả về các tính năng tiêu chuẩn (hoặc gốc) này tại đây.


    Các hàm có ưu điểm là có thể tái sử dụng, nghĩa là chúng có thể được thực thi từ nhiều điểm khác nhau trong chương trình nếu cần. Thông thường, một hàm kết hợp nhiều câu lệnh chương trình thành một đơn vị và đặt tên cho nó. Thiết bị sau đó có thể được gọi từ các phần khác của chương trình.


    Chúng ta sẽ tìm hiểu thêm về cách sử dụng các hàm tiêu chuẩn và tùy chỉnh trong các bài viết sau.

    Mẹo

    Có rất nhiều hàm và hằng số gốc trong MQL4 đến mức gần như không thể mong đợi bất cứ ai học và ghi nhớ tất cả chúng. Tùy thuộc vào tình huống, việc học chúng khi cần thiết sẽ thực tế hơn nhiều. Bạn sẽ học được nhiều điều trong số này theo thời gian và thực hành. Bạn sẽ thấy rằng hầu hết các hằng số và hàm tiêu chuẩn đều được mã hóa màu và cách nhanh chóng và dễ dàng để tìm hiểu về chúng là di chuột qua từ được mã hóa màu và nhấn F1. Thao tác này sẽ hiển thị tham chiếu MQL4 thuận tiện cho từ đó ở cuối trình chỉnh sửa.

     

    Hàm tùy chỉnh

    Ngoài các hàm tiêu chuẩn hoặc gốc, chúng ta có thể tạo các hàm theo nhu cầu của riêng mình để tận dụng khả năng sử dụng lại của các hàm. Nếu tạo một hàm, chẳng hạn như hàm Đóng lệnh, bạn có thể sử dụng lại hàm đó nhiều lần trong các phần khác nhau của mã hoặc sao chép và dán hàm này để dễ sử dụng trong các Expert Advisor khác mà bạn có thể sử dụng.