返回儀表板

全面剖析自動交易系統的底層邏輯、循環與執行流程

1. 系統整體架構與核心模組

本系統為一個全自動的加密貨幣量化交易程式,執行於 Linux 背景服務(藉由 systemd 管理),透過 HTTPS 與 WSS 安全協定對接 MAX 台灣交易所。系統核心架構採用主從控制迴圈,配合 SQLite 關係型資料庫,實作資料持久化與高容錯監控。

Python Trader Daemon SQLite (trade_data.db) MAX Exchange API 儲存狀態與委託單 執行交易與取得價格 帳戶餘額同步 / 價格更新 依配置自動發送買賣委託

系統支援雙交易策略模式,可透過設定變數 TRADE_STRATEGY 自由切換:

🔥 網格交易策略 (Grid) 在震盪區間內設定等比/等差價格區間,藉由不斷低買高賣(Buy Low, Sell High)賺取無風險震盪利潤,特別適用於盤整行情。
⚖️ 動態再平衡策略 (Rebalance) 將資產均勻分配於各交易標的。當價格偏離導致價值比例失衡時,自動低買高賣以維持資產權重相同,實現長期複利效果。

2. 網格交易策略:動態區間與幾何等比網格

網格策略內嵌了動態適應機制,不再使用死板的固定區間,而是藉由統計指標自動調節網格的範圍與密度:

布林通道區間計算 (Bollinger Bands):
- SMA-20 = 20日收盤價之簡單移動平均值
- 標的波動標準差 (σ) = StdDev(20日收盤價)
- 網格下限 (Lower Bound) = SMA-20 - 2σ (最低不低於市價 50%)
- 網格上限 (Upper Bound) = SMA-20 + 2σ (最高不高於市價 110%)

系統透過日 K 線計算出波動區間後,採用幾何等比網格 (Geometric Spacing) 進行定價,這能確保不論價格在哪個層級波動,每次買賣成交時的報酬率百分比皆完全相同

幾何等比比率 (Ratio) = (Upper Bound / Lower Bound) ^ (1 / num_grids)
網格第 i 階價格 Price_i = Lower Bound * (Ratio ^ i)
上限 (Upper Bound) 網格 3 (Sell Limit) 現價基準 (Gap Level) 網格 2 (Buy Limit) 下限 (Lower Bound) 買單 (Buy Order) 成交 自動於上一檔掛賣 賣單 (Sell Order) 成交 自動於下一檔掛買

網格交易執行循環:

  • 第一步:動態資金分配:系統計算目前帳戶總估值,提撥其中的 90% 均分至所有啟用網格的幣種作為分配資金。
  • 第二步:網格重組與資產平衡 (Full Re-alignment):系統清除該幣種所有舊有委託,並依據現價找出「缺口基準階 (Gap Level)」。隨後計算基準階以上的賣網格共需要多少加密貨幣:
    - 若手邊持幣多於所需,程式會立刻在市場以「市價單」售出超額持幣,換回 TWD;
    - 若手邊持幣不足,程式會動態買入或透過交易所質押借幣補齊差額,以利後續掛單。
  • 第三步:批次限價掛單:基準階以下各檔掛上 post_only 買單,基準階以上各檔掛上 post_only 賣單。
  • 第四步:成交觸發與遞補 (Processes Fills):背景監控執行緒每 30 秒輪詢訂單。一旦檢測到某個買單成交,會自動在上一階價格補掛賣單;若賣單成交,則自動在下一階價格補掛買單。此循環反覆進行,持續累積價差。

3. 動態再平衡策略:等權重資產分配與融資還款

動態再平衡策略是基於資產配置(Asset Allocation)的哲學,將總資金對等均分給所有交易幣種及法幣 (TWD)。

單一資產目標配置額度 (Target Value) = 總投資組合市值 / 資產數量
交易偏離門檻 (Trading Window) = 預設為 1.0% (達此偏離值才觸發再平衡)
平衡狀態 (每資產等額) BTC (50%) TWD (50%) BTC 暴漲 失衡偏離 (觸發閥值) BTC (70%) TWD (30%) 執行再平衡 賣出超額 BTC 買入/換回 TWD 恢復 50:50

自動化再平衡與融資機制流程:

  • 第一步:資產淨值估算:系統每 60 秒獲取帳戶最新持倉餘額與價格。如果是非 TWD 幣種,會透過與 TWD 的最新報價換算成台幣等值價值。
  • 第二步:偏離度檢測:當某幣種的市值佔比大於 Target * (1 + Window),則判定為超額,系統自動發布「限價/市價賣單」變現;反之,若佔比小於限制,則判定為折價,系統發布「買單」補齊。
  • 第三步:極端行情自適應 (Lending & Repayment)
    - 質押借幣 (Margin Loan):若賣單需要履約但帳戶現貨不足,系統會自動呼叫 API 向交易所融資借幣(防止因交割短缺導致策略中斷);
    - 餘額還款 (Repayment):在系統閒置(Idle)或買回代幣時,若發現尚有融資欠款(Principal & Interest),程式會自動計算最佳金額向交易所發送還款指令,以將利息支出降到最低。