本篇會介紹 MT4 EA常用內建保留字,內建保留字是策略或指標組成的基礎要素,在 MQL4 中已經建立好的,且內建字是無法被更改的。
使用前我們必須有交易商的帳號才可以免費使用 MT4 這個軟體,可以使用 OANDA 安達,進入外匯市場的首選經紀商完整介紹!
一、資料型別(或稱資料型態)
完整內建保留字請見 官方文件,而常用到的大致如下:
- int:用於宣告整數型別的變數或函式,例如:
- int a; // 宣告名稱為「a」的整數型別變數
- int b = 3; // 宣告名稱為「b」的整數型別變數,預設值為 3
- int c = -5; // 宣告名稱為「c」的整數型別變數,預設值為 -5
- int d() // 宣告名稱為「d」的函式,會回傳整數型別資料
- double:用於宣告實數(能有小數點)型別的變數或函式,例如:
- double a; // 宣告名稱為「a」的實數型別變數
- double b = 0.3; // 宣告名稱為「b」的實數型別變數,預設值為 0.3
- double c = -5.89; // 宣告名稱為「c」的實數型別變數,預設值為 -5.89
- double d() // 宣告名稱為「d」的函式,會回傳實數型別資料
- string:用於宣告字串型別的變數或函式,例如:
- string a; // 宣告名稱為「a」的字串型別變數
- string b = “量化通”; // 宣告名稱為「b」的字串型別變數,預設值為 量化通
- string c() // 宣告名稱為「c」的函式,會回傳字串型別資料
- bool:用於宣告布林型別的變數或函式,例如:
- bool a; // 「a」的布林型別變數
- bool b = true; // 「b」的布林型別變數,預設值為 true
- bool c = false; // 「c」的布林型別變數,預設值為 false
- bool d() // 宣告名稱為「d」的函式,會回傳布林型別資料
- datetime:用於宣告時間型別的變數或函式,例如:
- datetime a; // 「a」的時間型別變數
- datetime b = D’2021-09-30’; // 「b」的時間型別變數,預設值為 2021-09-30 00:00:00
- datetime c = D’2021-09-30 12:30’; // 「c」的時間型別變數,預設值為 2021-09-30 12:30:00
- datetime d = D‘2021-09-30 12:30:50’; // 「d」的時間型別變數,預設值為 2021-09-30 12:30:50
- datetime e() // 宣告名稱為「e」的函式,會回傳時間型別資
*時間的值有固定形式,可以參考 官方文件。
- color:用於宣告顏色型別的變數或函式,例如:
- color a; // 「a」的顏色型別變數
- color b = clrRed; // 「b」的顏色型別變數,預設值為 clrRed(紅色)
- color d() // 宣告名稱為「c」的函式,會回傳顏色型別資
*顏色的值有固定形式,可以參考 官方文件。
- void :用於宣告無回傳值的函式,例如:
- void a() // 宣告名稱為「a」的函式,沒有回傳值
二、訪問規範
const:用於宣告常數,並且不允許在運行時更改此常數,宣告時必須給預設值,例如:
- const int a = 999;
- const double pi = 3.1415;
三、記憶體類別
extern:用於宣告外部參數,並可於後續程式碼內更改該參數的值,例如:
input:用於宣告外部參數,但不可於後續程式碼內更改該參數的值,例如:
四、運算符
- if:條件判斷語法,若 if 後的條件判斷式(這裡舉例為a>b)為 true 則會執行大括號括起來區塊的程式碼,語法如下:
if(a>b) {
// 當條件判斷式為 true 時執行此區塊的程式碼
}
- else:與 if 做搭配,若 if 後的條件判斷式為 false 則會執行 else 後大括號括起來區塊的程式碼,語法如下:
if(條件判斷式) {
// 當條件判斷式為 true 時執行此區塊的程式碼
}else {
// 當條件判斷式為 false 時執行此區塊的程式碼
}
- for:迴圈語法,由初始式、條件判斷式與步進式構成。初始式只執行一次,用來宣告或初始變數,第一個分號後的條件判斷式則是每次執行迴圈前會執行一次,是 true 就會執行迴圈本體(大括號括起來區塊的程式碼),false 就會結束迴圈,第二個分號後的步進式,則是每次執行完迴圈本體後會執行一次,語法如下:
for(int i=0; i<100; i++) {
// 當條件判斷式為 true 時執行此區塊的程式碼
}
- while:while 也是迴圈語法,與 for 不同之處在於 小括號內僅需填入條件判斷式,語法如下:
while(a>b) {
// 當條件判斷式為 true 時執行此區塊的程式碼
}
- break:用於中斷迴圈執行,語法如下:
while(a>b) {
if(a == 3) {
break; // 中斷迴圈
}
}
五、其他類型
- true:布林型態的值,真
- false:布林型態的值,假
- #property:用於宣告EA或指標的屬性,如版本號、作者、連結、icon、指標顯示方式等,語法如下:
#property version "15.0.1"; // 版本號為 15.0.1
#property copyright "量化通" // 作者為 量化通
*其他屬性宣告方法如請見 官方文件。
六、總結
以上是我們在寫 EA 時,常會使用到的 MQL4 內建保留字。當我們將這些用法牢記,就能大幅提高 EA 開發效率哦!
類別 |
常用內建保留字 |
說明 |
資料型別 |
int |
用於宣告整數型別的變數或函式 |
double |
用於宣告實數(能有小數點)型別的變數或 函式 |
string |
用於宣告字串型別的變數或函式 |
bool |
用於宣告布林型別的變數或函式 |
datetime |
用於宣告時間型別的變數或函式 |
color |
用於宣告顏色型別的變數或函式 |
void |
用於宣告無回傳值的函式 |
訪問規範 |
const |
用於宣告常數,並且不允許在運行時更改此 常數,宣告時必須給預設值 |
記憶體類別 |
extern |
用於宣告外部參數,並可於後續程式碼內更 改該參數的值 |
input |
用於宣告外部參數,但不可於後續程式碼內 更改該參數的值 |
運算符 |
if |
條件判斷語法,條件判斷式為 true 會執行大 括號的程式碼 |
else |
與 if 做搭配,若 if 後的條件判斷式為 false 會執行大括號的程式碼 |
for |
迴圈語法,由初始式、條件判斷式與步進式 構成 |
while |
迴圈語法,僅需填入條件判斷式 |
break |
用於中斷迴圈執行 |
其他類型 |
true |
布林型態的值,真 |
false |
布林型態的值,假 |
#property |
用於宣告EA或指標的屬性 |