- 程序自動化交易:投資策略解析
- 劉杰等
- 2021字
- 2020-09-29 16:11:59
2.3 MQL4基礎知識
學習編程語言一定要克服懼怕心理,有人擔心自己英文水平有限,怕很多英文注釋看不明白;有人擔心自己學歷太低,看不懂、寫不出程序。其實所有的擔心都是自我設限,自己給前方的道路增加“攔路虎”,但只要肯下功夫,就沒有攀登不了的高峰。MQL4 語言簡潔,函數高度集成,是我們實現程序自動化交易的最佳選擇。但是萬丈高樓平地起,我們依然需要從基礎知識開始學習。
對于計算機程序來說,其本質上是通過數據處理來實現一定功能的,因此學習和掌握與數據相關的信息,就顯得十分必要,與數據相關的信息包括數據類型、數據的運算等。同時我們在編寫程序的時候還要對程序的書寫規則以及函數有一個清晰的認識。
2.3.1 語法規則
任何一種語言在表述的時候都有一套規則,例如我們說的中文、英文或計算機C語言,如果沒有規則,那么別人就聽不明白你想要表達的意思或者計算機不知道你要執行什么。MQL4語言也是一樣的,只有書寫出滿足MQL4語法結構的程序,MT4平臺才能夠對其識別和運行。下面我們將從格式、注釋、保留字、標識符等方面做介紹。
1.格式
在編寫程序的時候,我們可以使用空格或者制表符來分割代碼,以達到讓代碼美觀簡潔的目的,例如下面的代碼:

我們還可以這樣表述:

以上兩種代碼表述的方式都是正確的,但是從簡潔的角度考慮,我們還是選擇第一種表述方法。但是在多條件共振的時候,建議每一個條件都單獨成行,這樣更方便我們排查單個條件,例如下面的寫法:

2.注釋
注釋是對程序的解釋,方便在日后對程序進行維護和升級,使程序更加清晰易讀。程序會忽略被注釋的代碼,不會去執行。MQL4語言規則下的注釋分為兩種:單行注釋和多行注釋。單行注釋開始于“//”,結束于一個新行。多行注釋開始于“/*”,結束于“*/”,如下所示:

3.保留字
保留字是程序語言已經定義過的字,MQL4的保留字如表2-1所示。
表2-1

在編程過程中不能再將這些字作為變量名或過程名使用。例如,我們把一個變量命名為“switch”,給它賦值為1.68,因為“switch”是MQL4語言的保留字,所以這樣的寫法就是錯誤的,在編譯的時候會報錯。

4.標識符
標識符用來給變量、函數和數據類型進行命名,其長度不能超過 31 個字符。標識符可以使用數字0~9、大寫英文字母A~Z、小寫英文字母a~z(區分字母大小寫)和下畫線。此外,標識符的首字符不能是數字,而且標識符不能使用保留字,但可以使用中文進行命名,只是字符長度要符合要求。


2.3.2 數據類型
數據類型,顧名思義是給數據指定一個類型,使得數據指向更加精確。我們用一個例子來加深理解,比如,國外產的某品牌汽車有3臺,國產的某品牌汽車有4臺,汽車品牌就是一個變量名字,汽車產地就是這個變量的數據類型。MQL4語言中數據類型常用的有整型數據類型、浮點數據類型、布爾數據類型、字符串數據類型、日期時間數據類型、顏色數據類型。
1.整型數據類型(int)
整型數據類型可以表示十進制和十六進制的整型數據,例如:

2.浮點數據類型(double)
浮點數據類型由整數部分、小數點和小數部分組成,其中整數部分和小數部分都是一組十進制數字。

一個浮點數據(雙精度)占用8字節的內存空間。其數值范圍為-1.7e308~1.7e308。如果超出這個范圍,則視為無效。
3.布爾數據類型(bool)
布爾值用來表示“真”和“假”,還可以用數字1和0進行表示,True和False的書寫可以忽略大小寫。


4.字符串數據類型(string)
字符串數據是用雙引號括起來的一串ASCII字符,如“zifu”。
如果需要在字符串中插入一個雙引號("),那么在它前面必須使用反斜杠(/)。如果有前置反斜杠,則任何特殊字符都能用在字符串中。字符串長度介于0到255個字符之間,如果超過這個長度,尾部多余的字符將被忽略,編譯器也會有相應的提示。

5.日期時間數據類型(datetime)
日期時間數據由6個部分的字符組成:年、月、日、時、分、秒。以D開頭,用單引號括起來。日期(年、月、日)或者時間(時、分、秒)可以單獨使用,或者兩者都不用填寫也可以表示日期時間數據。日期時間數據的變化范圍是1970.1.1~2037.12.31。

6.顏色數據類型(color)
顏色數據可以用三種方法表示:字符數據、整型數據和顏色名。顏色名表示某一個特定的顏色。

2.3.3 數據運算
我們在用中文表達意思的時候,如果只有名詞沒有形容詞、介詞、動詞等其他詞語,則不能完美地傳達出意思。同樣,在編程語言中,如果我們只有數據和參量而沒有連接它們的紐帶,計算機程序也不會識別出你想實現的目標。這個紐帶就是我們接下來要介紹的運算符和表達式。運算符連接參量和字符,有了這些運算符的配合,才能正確地完成表達式。在MQL4語言中經常用到的運算符有算術運算符、賦值運算符、關系運算符和邏輯運算符等。
1.算術運算符
主要的算術運算符如表2-2所示。
表2-2

2.賦值運算符
賦值運算符的作用就是把運算結果賦予左邊的參量。在MQL4自動化交易編程中常用的賦值運算符如表2-3所示。
表2-3

3.關系運算符
關系運算符連接兩個參量,用False和True來表示兩個參量之間的邏輯關系。MQL4編程語言常用的關系運算符如表2-4所示。
表2-4

4.邏輯運算符
邏輯運算符根據表達式的值來返回真值(True)或者假值(False)。MQL4使用3個邏輯運算符,如表2-5所示。
表2-5
