開始編輯MQL4 不同區塊代表什麼意思?

MQL4是MT4使用的交易程式專屬的編輯語言

當打開一個新的空白程式編輯頁時,大概會分為四個功能區
1. 外部區
2. 程式開始時執行
3. 程式移除時執行
4. 主程式區

我們來看看這四個功能區分別代表什麼不同的意思吧

圖片6

1. 第一個區域為程式外面的區域

這邊主要是放要放置兩種東西: 1) 外部宣告參數  2) 外部函數
所以不屬於主程式的東西都要放置在這個區域,當然你也可以放置在第四個區域下面的外部。

只是我們寫程式是習慣把宣告參數放在最上面,函數放在最下面,這只是一個習慣,看得比較清楚而以,當然只要是外部,放最上面或最下面都是沒差的。

外部宣告參數與外部函數都是可以在主程式內被呼叫的,所以外部宣告參數又稱做”全域宣告”,意思是這個參數被創造出來之後,可以在整支程式內使用,且不能有相同的參數重複被宣告
(嗯…有點像繞口令)

如果主程式與函數當中有跟他重複的再次宣告參數,會出現錯誤喔。

而外部函數就像是一支獨立的小程式,他在函數內部會自己做運算,然後最後返回一個答案
這個答案可能是一個整數、一個小數、一個true或false 等等…

那因為每個外部函數都是獨立的,所以外部函數内的宣告參數與其他函數或主程式內的宣告參數重複是沒有關係的
例如:主程式有個”int i;”的內部宣告,在外部函數中你也可以使用”int i;”的宣告,兩個參數i並不會互相的影響。

 

2. 第二個區域為程式開始時執行區

顧名思義,就是當你把程式載進貨幣兌介面時會執行一次這個部分的動做
但是他有單單只有執行一次就結束了,不會像主程式區的程式被反覆的執行

所以這個部分會放置需要讀取程式一開始載進去時的一些資料,例如抓起始資金量、或是建立一些矩陣放你要的資料進去等等…

這是個比較少被用到的區域

 

3. 第三個區域為程式移除時執行區

跟上個區域意思差不多,但是功能相反,這是在刪除程式時會被執行一次的區域
所以這個部分放的通常是移除螢幕顯示的文字或圖案。

當有些EA移除時他的所有螢幕顯示也會跟著消失,就是有在這個部分寫進了移除的程式碼,
像艾比有時常偷懶,就不會特別寫移除,所以在EA刪除後,所有的顯示文字還是會留在MT4的貨幣兌螢幕上。

 

4. 第四個區域為主程式區

這就是最重要的區域了,所有的主要運算都會放在這個部分
這個部分就是會每個tick都執行一次,所以EA才會一直跑下去。

當然你也可以把每個要執行的動做都寫成外部函數,放在外面(也就是上面說的第一個區域),主程式中在呼叫這些外部函數也是可以的
像是我們一般會把下單的動做(OrderSend)寫在主程式裡面,但也有人會把OrderSend寫在外部函數,在從主程式去呼叫,讓他執行下單

簡單來說,EA的核心邏輯就是會寫在這個部分
遇到什麼條件要下單、什麼條件要出場等等…

1504882298211

例如上面的程式碼
當場上沒有單,又符合多單進場的條件,程式才會去執行下buy單
這樣的功能就會寫在主程式裡面。

所以你可以把所有運算都寫在外部函數,主程式可以簡短的只有幾行,全部去呼叫外部函數來用
也可以把外部的函數寫在主程式裡面,但這樣你的主程式就會非長的攏長。

 

以上就是在開始編即MQL4時每個主區塊的介紹
有不明瞭的地方歡迎留言給艾比喔

 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *