首頁 > MT4 EA 常用內建保留字-MT4 EA語法教學(二)...

MT4 EA 常用內建保留字-MT4 EA語法教學(二)

內建保留字是策略或指標組成的基礎要素,在 MQL4 中已經建立好的,且內建字是無法被更改的,完整內建保留字請見官方文件,而常用到的大致如下:

一、資料型別(或稱資料型態)

  • int:用於宣告整數型別的變數或函式,例如:
    1. int a; // 宣告名稱為「a」的整數型別變數
    2. int b = 3; // 宣告名稱為「b」的整數型別變數,預設值為 3
    3. int c = -5; // 宣告名稱為「c」的整數型別變數,預設值為 -5
    4. int d() // 宣告名稱為「d」的函式,會回傳整數型別資料
  • double:用於宣告實數(能有小數點)型別的變數或函式,例如:
    1. double a; // 宣告名稱為「a」的實數型別變數
    2. double b = 0.3; // 宣告名稱為「b」的實數型別變數,預設值為 0.3
    3. double c = -5.89; // 宣告名稱為「c」的實數型別變數,預設值為 -5.89
    4. double d() // 宣告名稱為「d」的函式,會回傳實數型別資料
  • string:用於宣告字串型別的變數或函式,例如:
    1. string a; // 宣告名稱為「a」的字串型別變數
    2. string b = “量化通”; // 宣告名稱為「b」的字串型別變數,預設值為 量化通
    3. string c() // 宣告名稱為「c」的函式,會回傳字串型別資料
  • bool:用於宣告布林型別的變數或函式,例如:
    1. bool a; // 「a」的布林型別變數
    2. bool b = true;  // 「b」的布林型別變數,預設值為 true
    3. bool c = false;  // 「c」的布林型別變數,預設值為 false
    4. bool d() // 宣告名稱為「d」的函式,會回傳布林型別資料
  • datetime:用於宣告時間型別的變數或函式,例如:
    1. datetime a;  // 「a」的時間型別變數
    2. datetime b = D’2021-09-30’; // 「b」的時間型別變數,預設值為 2021-09-30 00:00:00
    3. datetime c = D’2021-09-30 12:30’; // 「c」的時間型別變數,預設值為 2021-09-30 12:30:00
    4. datetime d = D‘2021-09-30 12:30:50’; // 「d」的時間型別變數,預設值為 2021-09-30 12:30:50
    5. datetime e() // 宣告名稱為「e」的函式,會回傳時間型別資

*時間的值有固定形式,可以參考官方文件

  • color:用於宣告顏色型別的變數或函式,例如:
    1. color a; // 「a」的顏色型別變數
    2. color b = clrRed; // 「b」的顏色型別變數,預設值為 clrRed(紅色)
    3. color d() // 宣告名稱為「c」的函式,會回傳顏色型別資

*顏色的值有固定形式,可以參考官方文件

  • void :用於宣告無回傳值的函式,例如:
    1. void a() // 宣告名稱為「a」的函式,沒有回傳值

二、訪問規範

const:用於宣告常數,並且不允許在運行時更改此常數,宣告時必須給預設值,例如

  • const int a = 999;
  • const double pi = 3.1415;

三、記憶體類別

extern:用於宣告外部參數,並可於後續程式碼內更改該參數的值,例如

  • extern int a = 9999;

input:用於宣告外部參數,但不可於後續程式碼內更改該參數的值,例如

  • input int a = 999;

四、運算符

  1. if:條件判斷語法,若 if 後的條件判斷式(這裡舉例為a>b)為 true 則會執行大括號括起來區塊的程式碼,語法如下:

if(a>b) {
    // 當條件判斷式為 true 時執行此區塊的程式碼
}

  1. else:與 if 做搭配,若 if 後的條件判斷式為 false 則會執行 else 後大括號括起來區塊的程式碼,語法如下:

if(條件判斷式) {
    // 當條件判斷式為 true 時執行此區塊的程式碼
}else {
    // 當條件判斷式為 false 時執行此區塊的程式碼
}

  1. for:迴圈語法,由初始式條件判斷式步進式構成初始式只執行一次,用來宣告或初始變數,第一個分號後的條件判斷式則是每次執行迴圈前會執行一次,是 true 就會執行迴圈本體(大括號括起來區塊的程式碼),false 就會結束迴圈,第二個分號後的步進式,則是每次執行完迴圈本體後會執行一次,語法如下:

for(int i=0; i<100; i++) {
    // 當條件判斷式為 true 時執行此區塊的程式碼
}

  1. while:while 也是迴圈語法,與 for 不同之處在於 小括號內僅需填入條件判斷式,語法如下

while(a>b) {
    // 當條件判斷式為 true 時執行此區塊的程式碼
}

  1. break:用於中斷迴圈執行,語法如下:

while(a>b) {
    if(a == 3) {
        break; // 中斷迴圈
    }
}

五、其他類型

  1. true:布林型態的值,真
  2. false:布林型態的值,假
  3. #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或指標的屬性

延伸閱讀:MT4 EA 常用內建保留字-MT4 EA語法教學(一)


量化通粉絲社群,定期分享實用資源
✅加入LINE匿名群組量化通QuantPass」無壓力討論與分享!
✅追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

程式交易課程推薦
📣 MT4 程式交易系列線上課程,手把手開始用程式交易打造自己的被動收入!

發表迴響

相關文章