1. 系統整體架構與核心模組
本系統為一個全自動的加密貨幣量化交易程式,執行於 Linux 背景服務(藉由 systemd 管理),透過 HTTPS 與 WSS 安全協定對接 MAX 台灣交易所。系統核心架構採用主從控制迴圈,配合 SQLite 關係型資料庫,實作資料持久化與高容錯監控。
系統支援雙交易策略模式,可透過設定變數 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%)
- 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)
網格第 i 階價格 Price_i = Lower Bound * (Ratio ^ i)
網格交易執行循環:
- 第一步:動態資金分配:系統計算目前帳戶總估值,提撥其中的 90% 均分至所有啟用網格的幣種作為分配資金。
- 第二步:網格重組與資產平衡 (Full Re-alignment):系統清除該幣種所有舊有委託,並依據現價找出「缺口基準階 (Gap Level)」。隨後計算基準階以上的賣網格共需要多少加密貨幣:
- 若手邊持幣多於所需,程式會立刻在市場以「市價單」售出超額持幣,換回 TWD;
- 若手邊持幣不足,程式會動態買入或透過交易所質押借幣補齊差額,以利後續掛單。 - 第三步:批次限價掛單:基準階以下各檔掛上 post_only 買單,基準階以上各檔掛上 post_only 賣單。
- 第四步:成交觸發與遞補 (Processes Fills):背景監控執行緒每 30 秒輪詢訂單。一旦檢測到某個買單成交,會自動在上一階價格補掛賣單;若賣單成交,則自動在下一階價格補掛買單。此循環反覆進行,持續累積價差。
3. 動態再平衡策略:等權重資產分配與融資還款
動態再平衡策略是基於資產配置(Asset Allocation)的哲學,將總資金對等均分給所有交易幣種及法幣 (TWD)。
單一資產目標配置額度 (Target Value) = 總投資組合市值 / 資產數量
交易偏離門檻 (Trading Window) = 預設為 1.0% (達此偏離值才觸發再平衡)
交易偏離門檻 (Trading Window) = 預設為 1.0% (達此偏離值才觸發再平衡)
自動化再平衡與融資機制流程:
- 第一步:資產淨值估算:系統每 60 秒獲取帳戶最新持倉餘額與價格。如果是非 TWD 幣種,會透過與 TWD 的最新報價換算成台幣等值價值。
- 第二步:偏離度檢測:當某幣種的市值佔比大於 Target * (1 + Window),則判定為超額,系統自動發布「限價/市價賣單」變現;反之,若佔比小於限制,則判定為折價,系統發布「買單」補齊。
- 第三步:極端行情自適應 (Lending & Repayment):
- 質押借幣 (Margin Loan):若賣單需要履約但帳戶現貨不足,系統會自動呼叫 API 向交易所融資借幣(防止因交割短缺導致策略中斷);
- 餘額還款 (Repayment):在系統閒置(Idle)或買回代幣時,若發現尚有融資欠款(Principal & Interest),程式會自動計算最佳金額向交易所發送還款指令,以將利息支出降到最低。