不久前,寫程式、建構系統還是「工程師的專利」。對我這種不會寫程式的人來說,那是遙遠世界的事。
但 AI 出現後,這個風景徹底變了。
只要用文字說出想做的事,AI 就會幫你寫程式。
連我這個非工程師,也能把想做的事,大部分都親手做出來了。
其實,這個網站上用的各種工具,都是我為了自己想用而親手打造的。
黃金價格、原油、美國公債殖利率、恐懼與貪婪指數……這些數據工具,原本都是我「自己看盤時想要」才做出來的。
有 AI 一起,不會寫程式也能做到這種程度。
而現在,我正在挑戰的,就是 ── 用 MT5 × API × AI 來交易。
關於「非工程師與AI」這個系列
這個「非工程師與AI」系列,要分享我們這些不會寫程式的人,如何運用 AI 來幫助交易與投資。題材不只「MT5 自動交易」,之後也會挑戰像是用 X(Twitter)的文字資訊來輔助判斷等,各種把 AI 用在投資上的嘗試。
這系列的文章不是那種把完成品端出來的「教學文」。而是我實際動手、卡關、在 AI 幫助下一步步前進的真實過程。
因為我希望這能成為和我一樣「不會寫程式的交易者」的參考。只要你看完覺得「或許我也做得到」,這個系列的目的就達成了。
第一個題材:用 MT5 × API × AI 打造黃金自動交易
具體來說,就是把運用 MT5(MetaTrader 5)、API 和 AI,一步步打造自動交易系統的整個過程,原汁原味地呈現給你看。
開始挑戰前,先把目標講清楚。
🎯 目標:用 MT5 × API × AI,打造黃金(XAUUSD)的交易系統
然後,我給自己訂下另一條重要規則。
💰 投入資金上限是 1,000 美元。
為什麼要設上限?自動交易,錢動得比你想像中更快。所以一開始就先畫一條「到此為止」的線。在「就算賠光也不影響生活」的範圍內,邊學邊挑戰 ── 這是大前提。抱著練功的心態,從符合自己能力的金額開始。
⚠️ 先聲明:這個系列不是投資招攬。自動交易有風險,尤其黃金(XAUUSD)是波動很大的商品。我自己也是先從完全不動錢的「讀取」和「模擬」開始,實際下單會等到完全理解架構後,才用最小單位謹慎進行。
為什麼題材選「黃金(XAUUSD)」、券商選「ThinkMarkets」
選黃金當題材,是因為這是讀者們也關心、我自己也一直在交易的資產類別。
券商用 ThinkMarkets,是因為它具備了程式交易需要的條件。
- 可以用 MetaTrader 5(MT5) ── 這是用 Python 操作的「窗口」
- 官方允許自動交易(EA、程式交易)
- 黃金(XAUUSD)點差(買賣價差)很窄 ── 對頻繁進出的自動交易來說,這點很關鍵
還沒有帳戶的人,先免費準備一個吧。之後會用到的「登入帳號、密碼、伺服器名稱」都會拿到。
整體架構 ── 要做什麼、怎麼做
接下來要做的系統,大致由 3 個零件組成。
- 讓 MT5 讀取黃金報價
- 與 AI 一起探討交易邏輯,建立「買?賣?等?」的判斷能力
- 依判斷結果,向 MT5 下單
把這 3 個拆小,一個一個確實做。程式碼讓 AI 寫,但不會整包丟給它。一定要邊理解「為什麼這樣動」邊前進 ── 這是讓系統日後自己也能修、能養大的祕訣。
第一篇要做的事
漫長旅程的第一步。第一篇的目標,非常單純。
🏁 第一篇的目標:讓自己電腦上的 Python,讀取黃金(XAUUSD)現在的報價
還不會下單。這次完全只是「讀取」,零風險。 但只要打好這個地基,自動交易的大門就一定會打開。
具體會照以下流程進行。
- 開設 ThinkMarkets 帳戶(免費)
- 從後台建立模擬帳戶(免費、不入金)
- 安裝 MT5 並登入模擬帳戶
- 把 AI 夥伴「Claude Code」裝進電腦
- 準備 Python 與必要的套件
- 用 Python 讀取黃金報價
要準備的東西(檢查清單)
| # | 項目 | 取得方式、備註 |
|---|---|---|
| 1 | ThinkMarkets 帳戶(免費) | 開戶教學。有帳戶就能建立模擬帳戶 |
| 2 | MetaTrader 5(MT5)桌面版 | 從 ThinkMarkets 下載 |
| 3 | Claude Code(AI 夥伴) | 幫你寫程式。Windows 安裝看專門教學 |
| 4 | Python(3.10 以上) | python.org |
💡 重要前提:作業系統需要 Windows。 讀取黃金報價要用的 Python 套件(
MetaTrader5),只能在 Windows 上運作。Mac 使用者請準備一台 Windows 電腦,或 Windows 的虛擬環境/VPS。「思考、撰寫」用哪台電腦都行,但「實際連線 MT5」這部分需要 Windows。
步驟 1:先開設 ThinkMarkets 帳戶(免費)
自動交易的測試會用模擬帳戶(虛擬資金)進行。而那個模擬帳戶,只要有 ThinkMarkets 帳戶,就能從後台馬上免費建立。所以第一步,先開設 ThinkMarkets 帳戶吧。
開戶步驟(約 5 分鐘、免費)可以參考這篇教學,很好懂。
延伸閱讀
💡 請放心。「開戶」不等於「入金」。 開戶免費、不必入金。本系列的測試全部用虛擬資金的模擬帳戶進行,實際入金、實盤交易,會等到充分理解、接受後,才用最小單位進行。安全第一。
步驟 2:從後台建立「模擬帳戶」(免費、不入金)
有了帳戶後,從它的後台(控制面板)建立模擬帳戶。模擬帳戶是用虛擬的錢,在和真實一模一樣的行情環境裡試單的免費帳戶。下單練習、之後要做的自動交易測試,在這裡都能一毛錢都不花地完成。
💡 本系列的開發、測試,全部都用這個模擬帳戶進行。
① 登入客戶後台,點「註冊模擬帳戶」
登入步驟 1 開好的 ThinkMarkets 帳戶後,會打開 「控制面板」。點畫面右側 「快捷方式」 裡的 「+ 註冊模擬帳戶」。

② 平台選「MetaTrader 5」
會進到「Platform Selection(選擇交易平臺)」畫面。在這裡選 「MetaTrader 5」。不是 ThinkTrader 也不是 MetaTrader 4 ── 因為本系列要用能從 Python 操作的 MT5。

③ 在確認彈窗點「繼續使用 MetaTrader 5」
會跳出「您確定要繼續使用 MetaTrader 5 嗎?」的確認。雖然它在推薦 ThinkTrader,但這裡按 「繼續使用 MetaTrader 5」。

④ 選帳戶內容(標準、USD、槓桿、初始資金)
在「交易平台詳情」,照以下方式選。
| 項目 | 選擇 | 一句話說明 |
|---|---|---|
| 帳戶類型 | 標準 | 只有點差、無手續費,較好懂(「零式」是手續費型) |
| 帳戶結算貨幣 | USD(美元) | 黃金(XAUUSD)以美元計價 |
| 槓桿 | 1:500 | 和之後要用的真實帳戶設成相同條件,驗證才不會跑掉 |
| 選擇金額(初始資金) | 10,000 | 模擬用的虛擬資金,完全不用花錢 |
選好後按 「申請賬戶」。
💡 初始資金是虛擬的,選多少都行。想讓風險體感貼近實盤的人,可以設成接近實彈上限的 1,000 左右(本系列的實彈上限是 $1,000)。這次就照模擬的預設值 10,000 進行。

⑤ 設定密碼
在「創建密碼」,如果要自己設密碼就選 「是的」,然後輸入密碼。條件有 4 個 ── 要分別包含大寫字母、小寫字母、數字、特殊符號。設好後按 「下一步」。
🔑 這個密碼之後登入 MT5 時會用到。記在不會忘記的地方,別告訴別人。

⑥ 完成 ── 登入資訊會當場顯示
申請通過後,會出現 「立即開始交易!」 畫面,模擬帳戶就建好了。登入需要的資訊會直接顯示在這個畫面上(同樣內容也會寄到確認信)。以下 3 項,在步驟 3 登入 MT5 時會用到。
| 項目 | 內容 |
|---|---|
| 交易帳號(登入帳號) | 數字的帳號(※記下來) |
| 密碼 | ⑤ 自己設的那組 |
| 伺服器(伺服器名稱) | ThinkMarkets-Demo |
💡 這 3 項每次登入都會用到。截圖或記在安全的地方吧(帳號、密碼別給別人看)。

步驟 3:安裝 MT5 並登入模擬帳戶
從 ThinkMarkets 下載 MetaTrader 5 並安裝。啟動後,用開模擬帳戶時拿到的 3 項資訊(⑥ 完成畫面上顯示的)登入。
- 登入帳號(數字)
- 密碼
- 伺服器名稱:
ThinkMarkets-Demo(⑥ 完成畫面上顯示)

登入成功後,畫面上黃金(XAUUSD)等各種商品的報價會開始閃動跳動。這就是即時行情。
💡 看到「畫面上有黃金報價」=MT5 正常。接下來,就來準備讀取這個報價的「AI 夥伴」和 Python。
步驟 4:把 AI 夥伴「Claude Code」裝進電腦
這個系統的程式碼,要讓 AI 來寫。我用的夥伴是 Claude Code(Anthropic 公司的 AI 程式設計工具)。用中文(我自己主要用日文)跟它說「幫我寫這樣的程式」,它就會寫程式 → 執行 → 修錯,全程陪你一起做。是不會寫程式的人最強的後盾。
Windows 的安裝方式,已經有很好懂的教學了,就交給它們。
👉 把 Claude Code 裝到 Windows 的方法(推薦的中文教學):
💡 同樣的事,用 ChatGPT 的 Codex 也能做到。Claude Code 和 Codex 都會幫你把「寫程式 → 執行 → 修錯」一手包辦,依喜好選就好。本系列用 Claude Code 進行。
步驟 5:準備 Python 與套件(這也交給 Claude Code)
接著,準備 Python 本體和幾個「套件」。要用的有 3 個。
MetaTrader5… 連接 MT5 和 Python 的 Windows 專用套件anthropic… 之後篇章要用 AI(Claude)時的套件pandas… 把報價資料當表格處理的經典套件
這裡有個好消息。這個準備,也能整包交給 Claude Code。 在黑黑的畫面(命令提示字元或 PowerShell)打那些像咒語的指令,對不會寫程式的人有點可怕。但只要跟 Claude Code 說「幫我裝 Python,還有 MetaTrader5、anthropic、pandas」,它就會代你完成需要的安裝。你完全不用碰那個黑畫面。
🖱️ 想自己動手的人:從 python.org 安裝 Python,在命令提示字元執行
pip install MetaTrader5 anthropic pandas就能做到一樣的事。
🔧 實際做了才知道的事 我的環境是 Python 3.14 這個較新的版本,但
MetaTrader5有準備好對應版本,順利就裝起來了。「太新會不會裝不起來?」這個擔心,目前是多餘的。
步驟 6:讓 Python 讀取黃金報價
總算進入正題。不過,還是不會馬上下單。這次只是「讀取」,完全沒有風險。
這裡,這樣拜託 AI。訣竅是不要一次全部,而是一次只拜託一小件。
「用
MetaTrader5套件,連線到 MT5 顯示帳戶餘額,並取得、顯示 XAUUSD(黃金)最近 100 根的 1 小時 K 線的 Python。每一行都加上註解說明在做什麼。」
拿回來的程式碼,一定要確認讀註解能不能「原來如此」地看懂。有看不懂的行,就再追問「這行在做什麼?」。這個「發問的動作」,正是不會寫程式的人學會理解的瞬間。
補足:這裡的商品代碼以 ThinkMarkets 為例是 XAUUSD。其他券商可能會使用 XAUUSD.pro、GOLD 等不同表記。讀取失敗時,先在 MT5 的「市場報價」中確認實際商品名稱,再把程式裡的 SYMBOL 改成那個名稱。
實際會跑的程式碼,大概長這樣(摘錄)。
import sys
import MetaTrader5 as mt5
import pandas as pd
# Windows 的命令列有時會因表情符號或特殊字元出現編碼錯誤,先指定 UTF-8
sys.stdout.reconfigure(encoding="utf-8")
# ThinkMarkets 的黃金商品代碼。其他券商可能會有 XAUUSD.pro、GOLD 等不同名稱
SYMBOL = "XAUUSD"
# 連線到 MT5(若已啟動並登入 MT5,這樣就 OK)
if not mt5.initialize():
print("連線失敗:", mt5.last_error())
raise SystemExit
try:
# 顯示帳戶資訊(餘額等)
acc = mt5.account_info()
if acc is None:
print("帳戶資訊取得失敗:", mt5.last_error())
raise SystemExit
print("伺服器:", acc.server, "/ 餘額:", acc.balance, acc.currency)
# 讓 MT5 確認這個商品可以被選取
if not mt5.symbol_select(SYMBOL, True):
print(f"{SYMBOL} 無法選取:", mt5.last_error())
raise SystemExit
# 取得黃金最近 100 根的 1 小時 K 線
rates = mt5.copy_rates_from_pos(SYMBOL, mt5.TIMEFRAME_H1, 0, 100)
if rates is None:
print("K 線取得失敗:", mt5.last_error())
raise SystemExit
df = pd.DataFrame(rates)
df["time"] = pd.to_datetime(df["time"], unit="s")
print(df[["time", "open", "high", "low", "close"]].tail())
finally:
# 程式結束前,斷開 MT5 連線
mt5.shutdown()順利的話,會出現這樣的輸出(實際取得範例)。
✅ MT5 連線成功
伺服器: ThinkMarkets-Demo / 貨幣: USD(模擬帳戶、虛擬資金)
XAUUSD 最近的 1 小時 K 線
time open high low close
2026-06-01 07:00:00 4516.32 4519.75 4508.48 4514.48
2026-06-01 08:00:00 4514.46 4525.28 4512.78 4518.31
2026-06-01 09:00:00 4518.41 4518.68 4514.28 4518.03黃金的報價(一盎司約 4,518 美元),已經以表格的形式進到 Python 裡了。 這就是這個系列的起點。
卡關點,與它的解法(實際發生的事)
從這裡開始,就是這個系列和「用想像寫的文章」不一樣的地方。實際做,就一定會卡關。而那些卡關,正好能幫到同樣不會寫程式的你。
① 一開始就因為亂碼錯誤停下來
第一次執行,馬上就因為這個錯誤停住了。
UnicodeEncodeError: 'cp932' codec can't encode character '✅'其實 MT5 的連線本身是成功的,錯誤是發生在「要把表情符號(✅)顯示到畫面上的那一瞬間」。是 Windows 畫面顯示的編碼,不支援表情符號。
解法只要 1 行。 在程式最前面,加上這個就好。
import sys
sys.stdout.reconfigure(encoding="utf-8")在 Windows 跑這類程式的人,幾乎一定會遇到。只要知道「連線是成功的,只是表情符號報錯」,就不可怕了。這種小牆,問 AI「這個錯誤怎麼修?」也會馬上告訴你。
② 電腦裡裝了兩個 MT5
我的電腦裡,除了 ThinkMarkets,還裝了別的 MT5。這種情況,Python 有時會「搞不清要連哪個 MT5」。
對策是,把連線對象講清楚。
mt5.initialize(path=r"C:\Program Files\TF Global Markets MetaTrader 5 Terminal\terminal64.exe")只裝一個 MT5 的人,不用在意。只有裝多個的人,用這一行就能解決。
第一篇總結
這次做的事,雖然樸素,卻是最重要的「地基」。
✅ 成功用 Python 連上了 ThinkMarkets 的 MT5
✅ 確認了 ThinkMarkets 環境中的黃金商品代碼是 XAUUSD(其他券商可能不同)
✅ 知道了黃金 1 手=100 盎司、最小 0.01 手起跳
✅ 把即時 K 線,以 Python 的表格形式取得了
🔑 這次的檢查點 只要你手邊「執行 Python 後,顯示出了黃金現價」,第一篇就合格了。還一張單都沒下。在完全安全的狀態下,站上了自動交易的入口。
不會寫程式的我,到這裡都很順利地走到了。你,也一定做得到。
