GitHub 交易機器人:建立您的開源機器人
GitHub 上充斥著可供 fork、研究和部署的交易機器人。然而,您仍然需要懂得區分一個認真的專案和一個被遺棄的倉庫,尤其要知道如何在不暴露金鑰也不盲目下注的情況下進行調整。本指南為您提供從公開倉庫出發,最終得到一個您理解、測試並掌控的機器人的方法。
GitHub 上充斥著可供 fork、研究和部署的交易機器人。然而,您仍然需要懂得區分一個認真的專案和一個被遺棄的倉庫,尤其要知道如何在不暴露金鑰也不盲目下注的情況下進行調整。本指南為您提供從公開倉庫出發,最終得到一個您理解、測試並掌控的機器人的方法。
為什麼 GitHub 是機器人的絕佳起點
託管在 GitHub 上的交易機器人基於開放程式碼:您可以看到每一行,跟蹤修改歷史,識別活躍的貢獻者。這與按訂閱出售的黑箱截然相反。這種透明性改變了信任的性質:它不再取決於賣方的營銷,而取決於您親自閱讀的程式碼質量。
選擇開源基礎有三個具體好處:
- 完全可見性:進場、出場和風險管理邏輯在任何部署之前都是可讀的。
- 可追溯的社群:issue、pull request 和提交頻率表明專案是活躍的還是孤立的。
- 可逆性:Git 保留每個版本。降低效能的修改可以用一條命令回滾。
一個擁有超過 100 位貢獻者和月度釋出的活躍倉庫,在統計上比一個 18 個月沒有提交的明星專案更可靠。
七個值得一看的倉庫
與其列出詳盡清單,不如介紹在認真工作流程中反覆出現的專案。所有專案都是公開的、維護良好的,可用於教育或原型開發目的。
| 倉庫 | 語言 | 專長 | 強項 |
|---|---|---|---|
| freqtrade/freqtrade | Python | 加密多交易所 | 原生回測、hyperopt、Telegram 控制 |
| ccxt/ccxt | Python, JS, PHP | 交易所庫 | 100+ 統一交易所,每週維護 |
| jesse-ai/jesse | Python | 加密、研究 | 清晰的 API,整合風險管理 |
| hummingbot/hummingbot | Python | 做市 | DEX + CEX,即用型策略 |
| nautechsystems/nautilus_trader | Python, Rust | 專業研究、多資產 | 效能、事件驅動、機構級 |
| QuantConnect/Lean | C#, Python | 雲端回測、多資產 | 歷史資料、整合平臺 |
| Robinhoodies/awesome-quant | — | 資源列表 | 用於發現其他專案的主題索引 |
按三個標準篩選:過去 60 天內有提交、超過 50 個已關閉的 issue、不僅僅是 README 的文件。如果缺一不可,請繞道而行。
選擇語言:真正重要的是什麼
語言不是意識形態的選擇,而是生態系統的選擇。Python 在量化分析中占主導地位,因為 Pandas、NumPy 和 scikit-learn 都在這裡。如果您的機器人需要與 Web 介面共存,JavaScript 就有理由。C++ 和 Rust 只有在延遲以微秒衡量時才有理由。
| 語言 | 選擇時機... | 避免時機... |
|---|---|---|
| Python | 您測試策略、整合機器學習或入門 | 您追求純粹的高頻做市 |
| JavaScript / TypeScript | 您的機器人有 Web 儀表板,透過 web3.js 在 DEX 交易 | 您需要重型數值計算 |
| Rust / C++ | 您與經紀商同地部署,亞毫秒延遲 | 您是初學者或在做原型 |
| Go | 您編排微服務,併發執行 | 您需要豐富的資料生態 |
對於 90% 的場景 — 個人、業餘量化交易者、首次自動化 — Python 仍然是最佳折中。
完整工作流程:從 fork 到部署
以下是經驗豐富的開發者遵循的順序。沒有任何步驟是可選的。
1. Fork 和探索
將倉庫 fork 到您的賬戶。在本地克隆。閱讀 README、CHANGELOG 和至少兩個示例策略檔案。如果您在一小時內無法理解結構,那麼該專案對您來說太晦澀了 — 選擇另一個。
2. 隔離的環境
建立虛擬環境(venv、poetry 或 conda)。從 requirements.txt 或 pyproject.toml 安裝依賴項。將您的配置版本化到 .env.example 檔案中,並將 .env 放入 .gitignore。這種紀律可以避免 95% 的金鑰洩露。
3. 策略配置
精確定義:
- 資產:主要加密貨幣(BTC、ETH)、流動性外匯貨幣對、高成交量股票。
- 時間週期:1m、5m、1h、4h、1d。時間週期越短,延遲和費用越重要。
- 指標:RSI、MACD、EMA、ATR。限制為三個匯合訊號以避免過度最佳化。
- 每筆交易風險:資本的 0.5 至 2%,在配置中硬編碼。
4. 誠實的回測
將資料分為三組:訓練(60%)、驗證(20%)、樣本外測試(20%)。永遠不要在樣本外測試上最佳化。監控四個指標:
- CAGR:年複合增長率
- 最大回撤:從高點的最大損失
- 夏普比率:風險調整後的回報(目標 > 1)
- 盈利因子:總收益 / 總虧損(目標 > 1.5)
回測中的夏普 3 是可疑的。要麼策略很好,要麼過擬合了 — 而且幾乎總是第二種假設。
5. 模擬交易
將機器人連線到測試網環境(Binance Testnet、Kraken Demo)或 dry-run 模式。執行至少兩週。您將在那裡發現回測無法顯示的內容:真實延遲、被拒訂單、WebSocket 斷開。
6. 漸進式部署
從預期資本的 5 至 10% 開始。如果指標保持在預期範圍內,每 30 天加倍一次。託管在靠近您交易所區域的 VPS 上(Binance 用東京,Bitstamp 用法蘭克福)。
保護 API 金鑰:不可妥協的規則
公開倉庫被持續掃描,尋找看起來像 API 金鑰的字串的機器人。一個金鑰暴露 30 秒就可能足以掏空一個賬戶。三條要刻在心裡的規則:
- 程式碼中絕不出現明文金鑰。 使用
python-dotenv、AWS Secrets Manager 或 HashiCorp Vault。 - 最小許可權。 在交易所級別啟用「交易」,但禁用「提現」。
- IP 限制。 在 Binance、Kraken 或 Coinbase 的 API 設定中,將您的 VPS IP 加入白名單。
如果您不慎提交了金鑰,立即在交易所撤銷 — 即使您從提交中刪除,Git 歷史也會保留它。
代價高昂的錯誤
- 克隆後直接上線執行。 為另一個市場或另一個時間週期配置的倉庫永遠不會收斂。
- 在單一市場週期上回測。 在 2020 年牛市中有效的策略可能在 2022 年震盪市中崩潰。覆蓋至少 5 年的資料。
- 忽略滑點和費用。 沒有費用的回測通常會高估業績 30 至 50%。
- 止損缺失或過寬。 沒有嚴格的止損,單一黑天鵝事件就足以抹去兩年的收益。
- 沒有監控。 凌晨 3 點崩潰且直到第二天早晨才被注意到的機器人可能默默累積損失。
長期演進開源機器人
機器人不是成品,而是一個活生生的系統。三個持續改進的槓桿:
- 按標籤版本化。 每次生產部署都獲得 Git 標籤(
v1.2.0)。回滾變得輕而易舉。 - 記錄一切。 每個下單的訂單、每個生成的訊號、每個 API 錯誤都必須進入檔案或 Loki / Datadog 這樣的服務。
- 每季度校準。 每 3 個月在近期資料上重新訓練引數,以跟隨市場狀態。
為什麼在 GitHub 之後轉向 Obside
如果您已經掌握了 GitHub,那麼您知道一個自動化策略的價值 — 但也知道它在維護、基礎設施和除錯上消耗的所有時間。建立免費 Obside 賬戶讓您能夠用自然語言將想法轉化為可執行的策略,在幾秒鐘內回測,並連線到您的經紀商而無需管理伺服器。您保留 DIY 精神而無需承擔運營成本。
僅限教育內容。不構成投資建議。交易涉及風險,包括可能的資本損失。
常見問題
使用 GitHub 機器人需要懂程式設計嗎?
至少需要一點。您必須知道如何克隆倉庫、閱讀配置檔案、執行指令碼和理解錯誤訊息。如果您想修改策略或修復 bug,需要中級水平的 Python 或 JavaScript。沒有這些,像 Obside 這樣的無程式碼平臺更合適。
開源機器人的主要風險是什麼?
頭號風險是 API 金鑰洩露,其次是部署未經測試的策略。由於程式碼是公開的,任何人都可以分析邏輯的缺陷。這也是這些專案快速改進的原因:bug 比專有軟體更快被識別和修復。
GitHub 機器人真的免費嗎?
許可證免費,但執行不免費。VPS 每月 5 至 30 歐元,加上交易所交易費用(每筆交易 0.05 至 0.10%),可能還有市場資料訂閱。在資本有限的情況下,這些成本會侵蝕業績。
起步用什麼策略?
BTC/USDT 在 4 小時週期上的指數移動平均線交叉(EMA 20 / EMA 50)。簡單、回測穩健,而且大多數倉庫中都有程式碼。只有當簡單版本盈利時才增加複雜度。
需要多少資本才值得?
低於 2,000 歐元,費用和滑點主導業績。介於 2,000 和 10,000 歐元之間,您可以驗證策略是否站得住腳。再往上,您開始測量真正的收益曲線。
如果倉庫被遺棄了怎麼辦?
Fork 它,自己維護,或者選擇一個活躍的專案。一個一年沒有提交的倉庫會累積技術債務:變更的交易所 API、棄用的庫、未修復的漏洞。隱藏成本太高。