MQL4 程式語言入門教學:MQL4是什麼?新手從零學寫自動交易程式

在外匯與差價合約(CFD)交易中,如何提升執行效率與策略穩定性,是許多交易者關注的重點。MQL4 程式語言 提供了一個解決方案,讓你能在 MetaTrader 4(MT4)平台上開發 EA(Expert Advisor),實現自動下單、風險控管與資金管理。
本篇 MQL4 教學 將專為零基礎新手設計,從環境設定開始,帶你了解 MetaTrader 4(MT4) 的核心運作邏輯。我們將解析基礎語法與事件函數,並結合 Titan FX 提供的免費資源與前測數據,幫助你逐步建立自己的自動交易系統。
1. 什麼是 MQL4?從 MT4 到自動交易完整理解
MQL4 是 MetaQuotes 專為 MetaTrader 4(MT4)開發的程式語言,相當於 MT4 的「交易指令手冊」。它能把你的交易策略轉化成電腦可以自動執行的程式,讓交易不再依賴人工盯盤。
MT4 可建立的三種常用程式類型
在 MT4 中,使用 MQL4 可以建立以下三種最常見的程式:
- EA(Expert Advisor,專家顧問):自動執行買賣、設定停損停利、資金管理等,是自動交易的核心工具(本文重點)。
- 自訂指標(Custom Indicator):在圖表上繪製各種技術指標、線條、圖形。
- 腳本(Script):執行一次性任務,例如快速平倉、畫線、修改訂單等,用完即止。
其中,EA 是最強大的自動交易工具,也是本文主要講解的對象。
MT4 核心運作邏輯(以 EA 為例)
MT4 的運作以 Tick(報價跳動) 為基本單位。每當市場價格有任何變動,就會產生一個 Tick。
當你把 EA 掛載到圖表上後:
- MT4 會持續把最新的 Tick 資料傳給 EA。
- EA 則透過
OnTick()函數接收這些 Tick,並根據你寫好的策略決定是否下單、管理訂單、調整止損止盈等。
重點:
所有自動交易的判斷邏輯,主要都寫在 OnTick() 函數裡。它就像 EA 的「心跳」,每跳一次就執行一次你的交易邏輯。
與 MQL5 相比,MQL4 語法更簡單,適合新手入門,且擁有成熟的 EA 生態,大量現成程式碼可供參考修改。
2. MQL4 怎麼寫 EA?MetaEditor 完整操作流程
開啟 MT4 的 MetaEditor,依循以下流程即可完成開發:
- ① 登入MT4 - 點選導航欄的黃色圖示,開啟MetaEditor。
- ② 點擊「New」-「Expert Advisor (template)」,在「Expert\」後輸入名稱與作者資訊後繼續。
- ③ 根據需要選擇額外的EA交易時間處理常式,也可以不勾選直接進行下一步。
- ④ 在編輯區撰寫程式碼(副檔名為 .mq4),完成後點擊「Compile」進行編譯,成功後會產生 .ex4 執行檔。
- ⑤ 回到 MT4,在「Navigator」→「Expert Advisors」找到檔案並拖曳到圖表上,完成掛載。

※ 新手最常遇到的問題是 EA 掛載後右上角沒有出現笑臉。這通常是因為你沒有開啟「允許自動交易」的功能。點擊「工具(Tools)」→「選項(Options)」→「EA交易(Expert Advisors)」,勾選「Allow automated trading」。

3. 語法極簡版:新手必學的資料型態與 OnTick 函數
開發 MQL4 EA 並不需要背誦成千上萬的代碼,掌握最核心的「資料型態」與「運作心臟」,就能組裝出邏輯完整的自動化策略。
核心資料型態
| 資料型態 | 說明 | 實戰用途範例 |
|---|---|---|
| int | 整數(無小數) | 指標週期、MagicNumber、訂單編號 |
| double | 帶小數點精準數值 | Ask/Bid 價格、Lot 大小、點數 |
| bool | true / false | 是否允許進場、訊號是否成立 |
EA 的運作心臟:OnTick() 函數
OnTick() 是 MQL4 EA 最重要的事件函數。
- 執行時機:市場每出現一次新的報價(Tick),系統就會執行一次 OnTick() 內的程式碼。
- 開發重點:所有交易判斷邏輯(例如快線穿過慢線就買入)都應該放在這裡。
常用行情變數
- Ask / Bid:目前買入價與賣出價(決定開倉價格)
- Close[0]:當前尚未完成 K 線的即時價格
- High[0] / Low[0]:當前 K 線最高價與最低價
掌握這些後,搭配簡單 if 判斷(如 if(Close[0] > High[1]))就能建立第一套自動交易規則。
4. 避坑指南:EA 常見錯誤與穩定性優化
撰寫 MQL4 EA 時,語法錯誤容易被發現,但邏輯錯誤與執行問題卻常讓新手卡關。以下整理最常見的錯誤與實用避坑技巧。
常見開發錯誤速查
| 錯誤類型 | 常見原因 | 解決方法 |
|---|---|---|
| 語法報錯 | 遺漏 ; 或大括號不對稱 | 雙擊 MetaEditor 錯誤訊息跳轉修正 |
| 下單失敗 (130) | 停損停利距離太近 | 使用 MarketInfo() 查最小間距並加緩衝 |
| 資金不足 (134) | 保證金不夠 | 動態計算手數或檢查帳戶餘額 |
程式穩定度提升技巧
| 實用工具 | 主要功能 | 建議使用時機 |
|---|---|---|
| Print() | 把變數數值或訊息記錄到「專家」日誌 | 追蹤程式內部邏輯是否正確 |
| Comment() | 在圖表左上角即時顯示資訊 | 即時觀察關鍵變數 |
| 策略測試器 | 可視化模式(Visual Mode)觀看 EA 實際運行 | 開發初期驗證進出場邏輯 |
| 模擬帳戶測試 | 在真實市場環境中使用虛擬資金運行 | 上線實盤前的最終驗證 |
關鍵提醒:避免過度優化歷史數據。建議從簡單策略開始,在模擬帳戶長期運行,確認風險控管合理後再轉實盤。
5. 免費 EA 資源推薦:利用 Titan FX 前測數據加速實戰
如果你覺得從零開始開發過於困難,利用經紀商提供的成熟資源是一個非常聰明的做法。Titan FX提供了超過 70 款免費 EA 程式,同時支援 MT4 與 MT5。

這些資源的價值在於透明度:
新手可以挑選排名靠前、回撤適合自己風格的 EA,下載後先在模擬帳戶觀察。這不僅加速自動化進程,也是學習專業 EA 結構的最佳方式。
6. 常見 FAQ:關於 MQL4 與 EA 開發的疑難雜症解答
Q1:可以在一張圖表掛載多個 EA 嗎?
不行,每張圖表只能執行一個 EA。如果你需要運行多個策略,請為同一個貨幣對開啟多個獨立的圖表視窗。
Q2:MT4 的 EA 可以直接用在 MT5 嗎?
不行。由於 MQL4 與 MQL5 的交易邏輯有顯著差異,代碼無法直接共用。你需要根據 MQL5 的物件導向架構重新編寫邏輯。
Q3:.mq4 與 .ex4 的差別是什麼?
.mq4 是可編輯的源碼檔案,.ex4 是編譯後的執行檔。修改程式時只能編輯 .mq4,載入平台則使用 .ex4。
Q4:EA 一定能穩定獲利嗎?
不一定。EA 的表現取決於策略邏輯與市場環境,沒有任何策略能在所有行情中穩定獲利。因此風險控管與持續優化仍然非常重要。
7. 總結
透過這篇教學,你已了解 MT4 環境設定、MQL4 基礎語法、EA 開發流程、除錯優化,以及 Titan FX 免費資源的運用。
雖然自行撰寫 EA 需要練習,但從簡單邏輯開始,並善用回測與模擬帳戶驗證,就能逐步打造穩定系統。同時,參考 Titan FX 的前測排名與成熟 EA,能大幅縮短你的學習與實戰曲線。