P1
背景:為什麼要做這個?
Thomas 目前已經有以下東西:
1
Alpaca Paper Trading API — 一個可以用程式下「假單」的模擬交易帳號,免費的,不用真金白銀就能練習。密鑰已經安全地存在 GCP Secret Manager 裡。
2
Hub 個人首頁(thomas-hub.pages.dev)— 一個有密碼保護的個人網站,已經部署在 Cloudflare Pages 上。
3
Claude Code 操作經驗 — 已經能用白話文跟 Claude 說「查一下 NVDA 期權」,Claude 就會自動調用 Alpaca API 回報結果。
痛點
目前只能坐在電腦前、打開 VS Code、啟動 Claude Code 才能操作。出門在外、只有手機的時候完全沒辦法用。想做的事情是:打開手機瀏覽器,進入個人網站,打幾個字,就能查股價、查期權、甚至下模擬單。
這篇指南不是詳細教程,而是一份架構設想和規劃文件。先搞清楚整個系統長什麼樣、需要什麼零件、每個零件負責什麼,然後再一步步動手做。
P2
核心概念:每個詞是什麼意思?
以下是整個系統會用到的所有技術名詞。每個都附中英文和比喻,看不懂程式也能理解。
API Application Programming Interface
程式之間溝通的標準窗口。你(前端)跟伺服器說「給我 NVDA 股價」,伺服器回覆「110.5」— 這個對話就是透過 API 進行的。
餐廳的服務員。你不能自己跑進廚房(伺服器),要透過服務員(API)點菜和拿菜。
Cloudflare Worker 雲端邊緣運算函數
Cloudflare 提供的雲端小程式。它運行在 Cloudflare 的全球伺服器上,幫你轉接(relay)請求。不需要自己買伺服器。
銀行櫃台。你跟櫃台說要幹嘛,櫃台去金庫操作,你永遠不用碰到金庫鑰匙。
Cloudflare Pages 靜態網頁託管服務
免費的網頁存放服務。你把 HTML 文件上傳上去,它就變成一個任何人都能訪問的網站。Thomas 現在的踩坑筆記網站就是用 Cloudflare Pages。
免費的網路圖書館書架。把你的書(HTML 文件)放上去,全世界的人都能來看。
REST API Representational State Transfer API
用「網址 + 動作」來發指令的方式。比如 GET https://...stocks/NVDA/quotes 就是「用 GET 方法取得 NVDA 的報價」。像寄信一樣,信封上寫收件地址(URL)和你要做什麼(GET/POST)。
寄信。信封上寫地址(URL),信裡寫你要什麼(參數),郵局(網路)幫你送到,對方回信給你(回應)。
API Key / Secret Key API 金鑰 / 密鑰
進入交易系統的身份證和密碼。API Key 像你的用戶名(告訴系統你是誰),Secret Key 像密碼(證明你真的是本人)。兩個一起用才能登入。
銀行卡號 + PIN 碼。卡號讓銀行知道你是誰,PIN 碼證明是你本人操作。兩樣缺一不可。
Paper Trading 模擬交易
用「假錢」練習交易。行情是真實的,但下的單不會真的花錢或賺錢。Alpaca 提供免費的模擬交易帳號,API 操作跟真實交易一模一樣。
大富翁遊戲。用遊戲幣買賣,不影響你的真實錢包,但規則跟真的一樣。
大模型 API LLM API / Large Language Model API
AI 的大腦,能理解人類的白話文。你說「NVDA 現在多少錢」,大模型 API 能理解你的意思,並翻譯成程式可以執行的 API 指令。
超強翻譯官。你說中文白話文,它翻譯成「機器語言」讓電腦聽得懂。
DeepSeek 深度求索 AI 大模型
中國開發的 AI 大模型,API 接口跟 OpenAI 兼容(格式一樣)。最大優點是超便宜(約人民幣 1 元 / 100 萬字),中文理解能力很強。
高性價比的翻譯官。別家翻譯官一次收你 100 塊,DeepSeek 只收 1 塊,而且中文水平一樣好。
Proxy / 中轉 代理 / Reverse Proxy
中間人。你的瀏覽器不直接跟 Alpaca 或 DeepSeek 說話,而是透過 Cloudflare Worker 這個「中間人」轉接。好處是密鑰藏在中間人那裡,瀏覽器看不到。
你打電話給律師,律師代你去跟銀行溝通。你不需要把銀行帳號密碼告訴電話公司。
Token 令牌 / AI 計費單位
AI 大模型的計費單位。大約 1 個中文字 = 1~2 tokens,1 個英文單詞 = 1 token。DeepSeek 的定價是大約 1 元人民幣 / 100 萬 tokens(輸入),日常用量每天幾毛錢。
手機流量。每次跟 AI 對話都會消耗一點流量(tokens),但 DeepSeek 的流量包非常便宜。
P3
完整架構圖:資料怎麼流動?
下面這張圖展示了從你在手機上打字,到螢幕上顯示結果的完整資料流動路線。一共經過 5 個站點。
你的手機 / 電腦瀏覽器
↓ 輸入白話文:「NVDA 現在多少錢?」
thomas-hub.pages.dev/alpaca.html
前端頁面(密碼保護,HTML + JavaScript)
↓ 發送請求到 Worker
alpaca-proxy.YOUR-SUBDOMAIN.workers.dev
Cloudflare Worker(中間層,密鑰藏在這裡)
Worker 內部三步驟:
①
發給 DeepSeek API
→
「把白話文翻譯成 API 指令」
DeepSeek 回覆:要查 NVDA 股價 → GET /v2/stocks/NVDA/quotes/latest
DeepSeek 回覆:要查 NVDA 股價 → GET /v2/stocks/NVDA/quotes/latest
②
發給 Alpaca API
→
GET /v2/stocks/NVDA/quotes/latest
Alpaca 回覆:{ "ap": 110.5, "bp": 110.3 }
Alpaca 回覆:{ "ap": 110.5, "bp": 110.3 }
③
再發給 DeepSeek API
→
「把 JSON 數據翻譯成白話文」
DeepSeek 回覆:NVDA 現在 $110.50,賣出價 $110.30
DeepSeek 回覆:NVDA 現在 $110.50,賣出價 $110.30
↓ 回傳白話文結果
瀏覽器顯示:「NVDA 現在 $110.50,賣出價 $110.30」
一句話總結
瀏覽器 → Worker → DeepSeek(理解意思)→ Alpaca(拿數據)→ DeepSeek(翻譯結果)→ Worker → 瀏覽器。整個過程大約 3~5 秒。
P4
為什麼需要 Worker 中間層?
這是新手最常問的問題:「為什麼不讓瀏覽器直接跟 Alpaca 說話?幹嘛多一層?」
!
前端代碼是透明的 — 任何人在你的網頁上按 F12(開發者工具),就能看到所有 JavaScript 代碼。如果你把 API Key 寫在前端 HTML 或 JS 裡,等於把你的鑰匙貼在大門上。
!
被偷走的後果 — 拿到你的 Alpaca API Key 的人,可以用你的帳號下單(真實交易模式下會造成真金白銀的損失),或者消耗你的 DeepSeek 額度。
OK
Worker 把密鑰藏起來 — API Key 存在 Cloudflare Worker 的「環境變數」(Environment Variables)裡。這些變數只有 Worker 自己能讀取,前端永遠看不到、也拿不到。
OK
前端只跟 Worker 說話 — 瀏覽器發請求到 Worker 的網址,Worker 拿著密鑰去跟 Alpaca/DeepSeek 溝通,再把結果回傳給瀏覽器。全程前端碰不到密鑰。
比喻
Worker 就像銀行櫃台。你(瀏覽器)跟櫃台(Worker)說:「我要查一下我的帳戶餘額。」櫃台人員拿著鑰匙(API Key)去金庫(Alpaca)查詢,然後回來告訴你結果。你全程不需要碰到金庫鑰匙,也不需要知道金庫在哪裡。
Worker 自己也要保護
光有 Worker 還不夠。要防止別人直接調用你的 Worker(不透過你的網頁),需要加一個 驗證 Token。前端發請求時帶上一個密碼,Worker 檢查密碼對不對,不對就拒絕。這個 Token 可以用簡單的字符串,配合網頁的密碼保護,已經足夠安全。
P5
兩個版本對比:從簡單到進階
整個項目可以分兩個階段做。第一階段不用 AI,先做出能用的基礎功能;第二階段接上 DeepSeek,實現白話文聊天。
Phase 1
簡單版:固定按鈕,不用 AI
網頁上放幾個固定功能的按鈕和輸入框,每個按鈕對應一個 Alpaca API 操作:
1
查報價 — 輸入股票代碼(如 NVDA),按下按鈕,顯示最新買賣價
2
查持倉一覽 — 按一下就顯示目前帳戶裡持有的所有部位
3
期權鏈查詢 — 輸入股票代碼和到期日,列出可交易的期權合約
4
下單表單 — 填寫股票/期權代碼、方向(買/賣)、數量、價格,按確認送出
優點
• 完全免費(不需要 AI API)
• 穩定,不依賴第三方 AI 服務
• 速度快(少了 AI 來回翻譯的時間)
• 做起來簡單,可以一天搞定
• 穩定,不依賴第三方 AI 服務
• 速度快(少了 AI 來回翻譯的時間)
• 做起來簡單,可以一天搞定
缺點
• 只能做預設好的操作
• 需要自己記股票代碼
• 期權代碼格式複雜,容易打錯
• 不夠「智慧」,沒有對話感
• 需要自己記股票代碼
• 期權代碼格式複雜,容易打錯
• 不夠「智慧」,沒有對話感
Phase 2
進階版:接 DeepSeek,白話文聊天
網頁上只有一個打字框,跟聊天軟體一樣。你用白話文說要幹嘛,AI 自動理解並執行:
A
「NVDA 現在多少?」 → AI 自動查報價並用白話文回覆
B
「幫我看看持倉有什麼」 → AI 列出持倉表格,還附帶盈虧分析
C
「買 1 張 NVDA 下週五到期的 ATM call」 → AI 自動找到對應合約、確認價格、幫你下單
優點
• 像跟人說話一樣自然
• 不需要記任何代碼格式
• AI 可以做複雜判斷(如找 ATM 合約)
• 可以追問、連續對話
• 不需要記任何代碼格式
• AI 可以做複雜判斷(如找 ATM 合約)
• 可以追問、連續對話
缺點
• 每次對話花一點錢(極低)
• 速度比 Phase 1 慢 2~3 秒
• DeepSeek API 偶爾會出錯
• 需要額外申請 DeepSeek API Key
• 速度比 Phase 1 慢 2~3 秒
• DeepSeek API 偶爾會出錯
• 需要額外申請 DeepSeek API Key
費用估算(Phase 2)
DeepSeek V3 的定價:輸入 ¥1 / 百萬 tokens,輸出 ¥2 / 百萬 tokens。一次完整的「查報價 + 回覆白話文」大約消耗 500~1000 tokens。換算下來,每天查 20 次大約花不到 1 毛錢人民幣。一年下來不超過 30 元。
| 比較項目 | Phase 1(固定按鈕) | Phase 2(白話文聊天) |
|---|---|---|
| AI 依賴 | 不需要 | 需要 DeepSeek API |
| 每月費用 | $0 | 約 ¥2~3(極低) |
| 回應速度 | ~1 秒 | ~3~5 秒 |
| 操作方式 | 選按鈕 + 填表單 | 打字聊天 |
| 靈活度 | 只能做預設操作 | 可以問任何問題 |
| 開發難度 | 簡單(1 天) | 中等(2~3 天) |
| 建議 | 先做這個 | 在 Phase 1 穩定後加上 |
P6
需要準備的東西清單
以下是動手前需要確認的所有「零件」。有些已經有了,有些需要額外申請。
| 項目 | 狀態 | 說明 |
|---|---|---|
| Alpaca Paper API Key 模擬交易帳號的鑰匙 |
已有 | 存在 GCP Secret Manager(nvda-strategy 項目),密鑰名稱:alpaca-paper-api-key / alpaca-paper-secret-key |
| Cloudflare 帳號 用來部署 Pages 和 Worker |
已有 | thomastangnz@gmail.com,已有多個 Pages 站點在運行 |
| thomas-hub 密碼保護 網頁前端的密碼防護 |
已有 | JavaScript SHA-256 密碼驗證,30 天免重登 |
| DeepSeek API Key Phase 2 白話文功能需要 |
需申請 | 到 platform.deepseek.com 註冊,充值 10 元人民幣夠用很久。申請後存入 GCP Secret Manager。 |
| Cloudflare Worker 中間層伺服器 |
需建立 | 在 Cloudflare Dashboard 建立一個 Worker,或用 wrangler CLI 部署。免費方案每天 10 萬次請求,完全夠用。 |
| alpaca.html 前端頁面 使用者操作的介面 |
需建立 | 放在 thomas-hub 的 Pages 項目裡,跟現有首頁共享密碼保護。 |
好消息
Phase 1(固定按鈕版)只需要前三樣(全部已有)+ Worker + 前端頁面。不需要 DeepSeek,零成本就能上線。
P7
執行步驟概覽
以下不是詳細教程(每一步的教程會另外寫),只是讓你知道整個流程長什麼樣、大約要做幾步。
Phase 1 步驟(固定按鈕版)
1
建 Cloudflare Worker
在 Cloudflare Dashboard 或用
在 Cloudflare Dashboard 或用
wrangler CLI 建立一個名為 alpaca-proxy 的 Worker。把 Alpaca API Key 和 Secret Key 設為環境變數(Secrets),Worker 代碼負責接收前端請求、加上密鑰、轉發給 Alpaca API、回傳結果。2
建 alpaca.html 前端頁面
在 thomas-hub 項目裡新增一個
在 thomas-hub 項目裡新增一個
alpaca.html,頁面上有:股票查詢框 + 查報價按鈕、查持倉按鈕、期權查詢表單、下單表單。所有按鈕點擊後發請求到 Worker。3
部署並測試
用
用
wrangler deploy 部署 Worker,用 wrangler pages deploy 更新 Pages。在手機上打開網頁,測試查報價、查持倉是否正常。4
加到 Hub 首頁
在 thomas-hub 首頁加一個「交易助手」的入口連結,方便快速進入。
在 thomas-hub 首頁加一個「交易助手」的入口連結,方便快速進入。
Phase 2 額外步驟(白話文版)
5
申請 DeepSeek API Key
到 platform.deepseek.com 註冊帳號,充值 10 元人民幣,生成 API Key,存入 GCP Secret Manager。
到 platform.deepseek.com 註冊帳號,充值 10 元人民幣,生成 API Key,存入 GCP Secret Manager。
6
Worker 加上 AI 邏輯
在 Worker 中加入 DeepSeek API 的調用:先把白話文發給 DeepSeek 翻譯成 API 指令,執行後再把結果發給 DeepSeek 翻譯成白話文回覆。
在 Worker 中加入 DeepSeek API 的調用:先把白話文發給 DeepSeek 翻譯成 API 指令,執行後再把結果發給 DeepSeek 翻譯成白話文回覆。
7
前端改成聊天界面
把 alpaca.html 的固定按鈕改成聊天打字框 + 對話氣泡,像 LINE/WeChat 一樣的對話體驗。Phase 1 的按鈕可以保留為快捷方式。
把 alpaca.html 的固定按鈕改成聊天打字框 + 對話氣泡,像 LINE/WeChat 一樣的對話體驗。Phase 1 的按鈕可以保留為快捷方式。
8
測試全流程
測試查報價、查持倉、查期權鏈、下單(模擬)。確保 AI 不會誤解白話文導致錯誤操作,特別是下單前必須彈確認框。
測試查報價、查持倉、查期權鏈、下單(模擬)。確保 AI 不會誤解白話文導致錯誤操作,特別是下單前必須彈確認框。
P8
安全提醒(非常重要)
交易相關的系統,安全是重中之重。以下是必須遵守的安全規則:
1
API Key 永遠不放前端
Alpaca Key、DeepSeek Key 全部存在 Worker 的環境變數裡。前端 HTML / JavaScript 裡不能出現任何密鑰的明文。按 F12 檢查,確保看不到任何 Key。
Alpaca Key、DeepSeek Key 全部存在 Worker 的環境變數裡。前端 HTML / JavaScript 裡不能出現任何密鑰的明文。按 F12 檢查,確保看不到任何 Key。
2
Worker 要加 Token 驗證
前端發請求時帶上一個驗證用的 Token(可以跟網頁密碼一樣或另設),Worker 收到請求先檢查 Token,不對就拒絕。防止別人猜到 Worker 網址後直接調用。
前端發請求時帶上一個驗證用的 Token(可以跟網頁密碼一樣或另設),Worker 收到請求先檢查 Token,不對就拒絕。防止別人猜到 Worker 網址後直接調用。
3
下單前必須彈確認框
無論是 Phase 1 的表單下單還是 Phase 2 的白話文下單,在送出訂單之前必須彈出確認視窗,顯示:「你要買入 1 張 NVDA 250418 Call $120,限價 $3.50,確定嗎?」用戶點「確定」才真正送出。
無論是 Phase 1 的表單下單還是 Phase 2 的白話文下單,在送出訂單之前必須彈出確認視窗,顯示:「你要買入 1 張 NVDA 250418 Call $120,限價 $3.50,確定嗎?」用戶點「確定」才真正送出。
4
先用 Paper Trading 測試
整個系統全程只接 Paper Trading(模擬交易)API。確認所有功能正常、安全機制到位之後,再考慮是否切換到真實交易帳號。不要急。
整個系統全程只接 Paper Trading(模擬交易)API。確認所有功能正常、安全機制到位之後,再考慮是否切換到真實交易帳號。不要急。
5
Worker 限制來源域名(CORS)
設定 Worker 只接受來自
設定 Worker 只接受來自
thomas-hub.pages.dev 的請求。其他網站(或 Postman 等工具)發過來的請求一律拒絕。最壞情況假設
即使以上防護全部被繞過,因為用的是 Paper Trading 帳號,損失的也只是模擬資金,不會有真金白銀的風險。這就是為什麼堅持先用 Paper Trading 測試的原因。
FAQ
常見問題
Q: Cloudflare Worker 免費方案夠用嗎?
夠。免費方案每天 100,000 次請求、每次請求最多 10ms CPU 時間。一次查報價消耗 1 次請求(Phase 1)或 3 次請求(Phase 2,因為要調 DeepSeek 兩次 + Alpaca 一次),每天查 100 次也只用了 300 次,完全不會超。
Q: 為什麼選 DeepSeek 而不是 ChatGPT / Claude?
三個原因:(1) 便宜,DeepSeek 的價格是 OpenAI 的 1/10~1/50;(2) 中文好,白話文理解能力不輸 GPT-4;(3) API 兼容,接口格式跟 OpenAI 一樣,以後想換成其他模型只需改一行網址。
Q: 這個系統能真的賺錢嗎?
這個系統不是投資建議工具,它只是一個方便你操作 Alpaca 帳戶的界面。賺不賺錢取決於你的交易策略,跟這個工具無關。它只是讓你從「必須坐在電腦前用 Claude Code」變成「手機上就能操作」。
Q: DeepSeek 服務不穩定怎麼辦?
Phase 2 依賴 DeepSeek API,如果 DeepSeek 當機,白話文功能會失效。但 Phase 1 的固定按鈕完全不受影響,因為它直接調 Alpaca API,不經過 DeepSeek。所以建議保留 Phase 1 的按鈕作為備用方案。
Q: 手機上好用嗎?
前端頁面會做成手機優先的響應式設計(Mobile-first Responsive Design)。查報價、查持倉這些功能在手機上的體驗會跟電腦一樣好。下單表單的輸入框會放大,避免手機打字困難。
Q: 可以讓 AI 自動交易嗎?(不需要我確認就下單)
技術上可以,但強烈不建議。AI 可能誤解你的白話文,把「查一下 NVDA」理解成「買 NVDA」。所有下單操作必須經過人工確認,這是不能省掉的安全步驟。
Q: 整個項目要花多少時間做?
Phase 1(固定按鈕版)用 Claude Code 輔助的話,大約 半天到一天就能做完。Phase 2(白話文版)額外需要 1~2 天。主要時間花在測試和調試 AI 的 prompt(提示詞),讓它準確理解白話文指令。