Skip to content

Latest commit

 

History

History
392 lines (304 loc) · 18.4 KB

File metadata and controls

392 lines (304 loc) · 18.4 KB

Changelog

[2.8.0] - 2026-02-04

新增

  • StandX 交易所完整支援:新增 StandX 永續合約交易所整合
    • 實現 StandXClient REST API 客戶端,支援訂單創建、取消、查詢
    • 實現 StandXWebSocket 客戶端,支援公開與私有頻道訂閱
    • 新增簽名密鑰解碼機制與訂單處理邏輯
    • 支援倉位與餘額查詢、成交歷史同步
  • 成交資訊處理增強:新增本地 Maker 訂單檢查機制
  • WebSocket 頻道訂閱邏輯優化:Paradex 新增頻道訂閱邏輯
  • CLI 命令行界面新增 StandX 交易所選項
  • Web 界面新增 StandX 交易所選項

修復

  • 多交易所 WebSocket 報價獲取問題:統一報價獲取邏輯至 BaseWebSocketClient 基類
  • Backpack 私有頻道處理:優化並精簡私有頻道處理邏輯

優化

  • WebSocket 基類重構:將報價獲取邏輯統一至 BaseWebSocketClient,精簡各交易所客戶端冗餘代碼
  • 做市策略重構market_maker.py 重構以支援 StandX 交易所與多交易所 WebSocket 整合
  • 對沖策略增強maker_taker_hedge.py 新增本地 Maker 訂單檢查與成交資訊處理

變更涉及檔案

  • api/: standx_client.py (新增), __init__.py
  • ws_client/: standx_ws_client.py (新增), base_ws_client.py, backpack_ws_client.py, apex_ws_client.py, aster_ws_client.py, lighter_ws_client.py, paradex_ws_client.py, __init__.py
  • strategies/: market_maker.py, maker_taker_hedge.py, perp_grid_strategy.py
  • cli/commands.py, run.py, config.py, README.md, .env.example
  • web/: server.py, static/js/app.js, templates/index.html

[2.7.0] - 2026-02-02

新增

  • 多交易所 WebSocket 客戶端:新增 Apex、Aster、Lighter、Paradex 四個交易所的 WebSocket 客戶端實現
    • 所有客戶端繼承自 BaseWebSocketClient 抽象基類,提供統一介面
    • 支援公開頻道訂閱:行情 (Ticker)、訂單簿 (OrderBook)
    • 支援私有頻道訂閱:訂單更新、成交回報
  • 私有頻道認證機制:各交易所 WebSocket 客戶端支援 API Key / Secret / Passphrase 認證
    • Apex: 基於 HMAC 簽名的 login 認證
    • Aster: WebSocket 私有頻道認證
    • Lighter: 原生 signer 整合認證
    • Paradex: EIP-712 簽名認證
  • 標準化數據結構:統一使用 WSTickerDataWSOrderBookDataWSOrderUpdateDataWSFillData 處理不同交易所訊息
  • 連線增強功能
    • 支援 Proxy 代理配置
    • 可配置的心跳 (Heartbeat) 與 Ping/Pong 機制
    • 指數退避重連策略 (Exponential Backoff)

修復

  • Lighter 連線異常:修正 lighter_client.py API 連線問題
  • Paradex 連線異常:修正 paradex_client.py API 連線問題
  • WebSocket URL 配置:修正 config.py 中的 WS URL 配置

優化

  • 做市策略重構market_maker.py 重構以支援多交易所 WebSocket 整合
  • 模組導出更新ws_client/__init__.py 新增所有交易所客戶端導出

變更涉及檔案

  • ws_client/: apex_ws_client.py, aster_ws_client.py, lighter_ws_client.py, paradex_ws_client.py, base_ws_client.py, __init__.py
  • strategies/: market_maker.py
  • api/: lighter_client.py, paradex_client.py
  • config.py, README.md

[2.6.0] - 2026-01-30

新增

  • PARADEX 精度處理優化:改進浮點數精度計算,確保訂單金額精確性

修復

  • LighterClient 即時行情獲取:增強即時行情獲取邏輯,優化價格判斷及取消訂單處理
  • 網格點位持倉狀態重置:支持補單邏輯,解決網格策略補單失敗問題
  • 倉位變化檢測增強:優化訂單狀態同步邏輯,確保倉位與訂單一致
  • Aster 網格訂單調整:移除網格訂單減倉功能,簡化交易邏輯
  • Lighter 成交問題:修正 Lighter 交易所成交確認異常
  • Paradex 成交訂單問題:修復 Paradex 訂單狀態同步
  • Aster 網格減倉掛單:解決減倉掛單邏輯錯誤
  • 倉位處理邏輯增強:確保正確解析 PositionInfo 並處理不同方向

優化

  • 程式碼結構重構:大規模重構以提升程式碼可讀性與維護性
  • API 層效能優化:改進 API 調用效率

變更涉及檔案

  • api/: __init__.py, apex_client.py, base_client.py, example_exchange_client.py, lighter_client.py, paradex_client.py
  • strategies/: grid_strategy.py, maker_taker_hedge.py, market_maker.py, perp_grid_strategy.py, perp_market_maker.py
  • cli/commands.py, utils/helpers.py

[2.5.0] - 2026-01-21

新增

  • 倉位同步功能:新增倉位同步機制自動補掛平倉單,確保網格倉位與訂單狀態一致

修復

  • 網格合約風控設置:修正網格策略風控參數設置,CLI 和 Web 界面的 position_threshold 現正確設為 max_position
  • 自動數量計算錯誤:修正策略自動計算訂單數量時的錯誤
    • 修正 get_asset_balance() 方法調用問題
    • 使用 format_quantity() 避免科學記號導致的 API 錯誤(如 Invalid decimal: unknown character
  • Backpack 網格下單及減倉問題:修正批量下單簽名失敗及 reduceOnly 衝突問題
  • Lighter 成交訂單獲取:修正訂單 ID 映射,使用 bid_id/ask_id 正確追蹤成交
  • APEX 訂單獲取問題:修正 APEX 交易所訂單資訊解析
  • 訂單數量屬性名稱:更新屬性名稱以符合最新的 OrderResult 結構
  • Lighter API 調用異常:修正 Lighter 交易所 API 調用錯誤處理
  • Paradex 下單精度問題:修正 Paradex 交易所下單時的精度處理
  • 無倉位平倉問題:修正無倉位時仍嘗試平倉導致倉位不平衡的問題
  • 止損止盈後網格重置:執行止損止盈後現會正確重新初始化網格
  • 網格倉位平衡問題:修正網格策略倉位平衡計算邏輯
  • 移除重複導入:清理程式碼中的重複導入語句

優化

  • API 回應處理重構:統一多個模組的 API 回應處理結構
    • perp_grid_strategy.py 使用一致的回應結構檢查
    • perp_market_maker.py 增強錯誤日誌記錄
    • server.py 支援新的回應格式,包括 dataclass 結構處理
    • base_ws_client.py 改進訂單簿初始化以同時支援 dataclass 和字典格式
  • WebSocket 抽象化:優化 WebSocket 客戶端架構,提升可維護性
  • 對沖 API 調用優化:減少不必要的 API 調用,提升對沖策略效率
  • Web 界面優化
    • 網格策略隱藏不必要的永續參數(目標持倉、持倉閾值、偏移係數)
    • 止損/止盈欄位改為同一行顯示
    • 網格交易統計改為顯示已實現網格利潤

[2.4.0] - 2025-11-28

新增

  • APEX 交易所集成:完整支援 APEX Omni 永續合約交易
    • 實現基於 zkLink L2 的訂單簽名機制
    • 支援永續合約做市、網格交易和 Maker-Taker 對沖策略
    • 自動處理 APEX 特有的訂單格式和精度要求
    • 支援成交歷史同步和倉位狀態查詢
  • CLI 命令行界面新增 APEX 交易所選項
  • Web 界面新增 APEX 交易所選項

修復

  • 網格策略重複下單問題:修正 _refill_grid_orders 方法,使用三重檢查(API 訂單 + 本地追蹤 + 當輪已下單)防止在同一價格重複下單
  • 平倉單失敗處理:新增平倉單重試機制
    • 失敗的平倉單會加入重試隊列,最多重試 3 次限價單
    • 超過限價重試次數後自動改用市價強制平倉
    • 市價平倉失敗後會持續每輪重試
  • 止損止盈失敗處理:修改 check_stop_conditions 邏輯,當止盈/止損觸發但平倉失敗時,策略不再停止,而是繼續運行並在下一輪重試

優化

  • 新增 pending_close_orders 隊列管理待重試的平倉單
  • 網格統計信息新增「待重試平倉單」計數
  • 完善平倉失敗時的日誌輸出,便於追蹤問題

依賴

  • 新增 apexomni 套件用於 APEX 交易所 API 支援

文檔

  • 更新 README 新增 APEX 配置說明和使用示例
  • 更新所有策略文檔(網格、做市、對沖)支援 APEX 交易所
  • 新增 APEX 環境變數配置到 .env.example

[2.3.0] - 2025-11-18

新增

  • 全域代理配置:添加全局代理配置支持,優化各交易所客戶端的代理設置。

修改

  • 移除 WebSocket 代理參數:統一使用全局代理配置,移除多餘的 WebSocket 代理參數。
  • 命令行選項描述:更新命令行選項描述,移除 WebSocket 代理參數。
  • 代理配置邏輯:更新代理配置邏輯,若未單獨設置 https_proxy,HTTPS 也使用 http_proxy。
  • 代理配置工具:將代理配置邏輯重構為統一工具,簡化 API 客户端代碼。

文檔

  • README 更新:更新 README 和環境變數範例,移除 WebSocket 代理參數,簡化全局代理配置說明。

[2.2.0] - 2025-11-14

新增

  • 網格交易策略:全新的網格交易功能,支援現貨與永續市場
    • CLI 命令行界面支援網格交易策略選擇與參數配置
    • Web 界面新增網格交易策略支援,提供完整的策略參數與統計顯示
    • 實現批量下單功能,優化網格策略初始化速度
    • 支援 Backpack、Aster、Paradex、Lighter 交易所的批量訂單執行
  • Web 服務器配置優化:新增自動查找可用端口及調試模式設置功能

修復

  • 修正 WebSocket 重連冷卻時間機制,避免頻繁重連嘗試
  • 減少 WebSocket 連接等待時間及檢查間隔,改善連接效率
  • 修正網格價格初始化邏輯,強制使用 REST API 獲取準確價格並處理錯誤情況
  • 更新網格鎖定邏輯,防止重複補單並優化平倉單處理
  • 修正買入價格獲取邏輯,改為使用最後一個活躍買單的價格
  • 修復分批下單時訂單計數不正確問題,改用價格和方向匹配訂單
  • 修正永續網格 reduce-only 錯誤
  • 修正 Web 網格交易統計顯示
  • 修正 web 網格交易價格區間顯示及相關表單欄位
  • 調整市場類型選項及更新表單結構,改善用戶體驗
  • 修正 Web collect_strategy_stats 函數以支持 Backpack 抵押品餘額的獲取和計算
  • 修正 Lighter 統計數據異常
  • 移除訂單數量限制檢查,簡化補單邏輯
  • 移除下單與抓取市場重試,增加 10u 最小精度調整

優化

  • 更新批量下單邏輯,檢查客戶端支持性並優化錯誤處理
  • 更新重連檢查邏輯,增加冷卻期內的 API 備援模式啟動,並重置重連計數器
  • 優化 Aster 批量執行訂單功能,支持最多 5 個訂單的批量下單處理
  • 優化 Paradex 批量執行訂單功能,支持不同交易所的響應格式處理
  • 優化 Lighter 批量交易和訂單創建功能,改善訂單處理邏輯

文檔

  • 更新文檔,支持 WEB 配置說明
  • 完成網格交易策略的整合文檔更新

[2.1.0] - 2025-11-09

新增

  • Lighter 交易所集成:提供 Lighter 永續交易支持
    • 實作自簽名 REST 客户端,整合原生 signer 並支援簽章執行
    • 支援永續合約做市和 Maker-Taker 對沖策略
    • 解析 Lighter 成交資料時保留原始費率並避免誤計實際手續費,零手續費帳户可正確記帳
  • CLI 命令行界面新增 Lighter 交易所選項
  • Web 界面新增 Lighter 交易所選項

修復

  • 「磨損率(Slippage / Wear Rate)」的計算公式

文檔

  • 新增 Lighter 配置説明到 .env.example
  • 添加 Lighter 使用示例到 README

[2.0.0] - 2025-11-03

新增

  • Web 控制枱界面:全新的圖形化管理界面,提供直觀的策略控制和實時監控
    • 基於 Flask + Socket.IO 的 Web 服務器實現
    • 響應式設計的專業級儀錶板(深色主題)
    • 實時數據推送,每 5 秒自動更新統計信息
    • 支援通過瀏覽器啟動/停止做市策略
    • 可視化展示交易統計、盈虧分析、成交量分佈
    • WebSocket 心跳機制保持連接穩定
    • 支援多瀏覽器標籤頁同步查看
  • 策略停止機制優化:新增 _stop_flag 標誌和 stop() 方法,支援優雅停止
  • 統計數據保留:策略停止後保留最後統計數據,方便查看最終結果
  • 新增 --web 命令行參數,快速啟動 Web 服務器

修復

  • Paradex API 端點修正:餘額查詢從 /balance 改為 /account,並優化數據解析
  • 倉位信息增強:Paradex 倉位查詢返回值新增 unrealizedPnl 字段

優化

  • 改進多種 PnL 返回格式的處理,增強容錯能力
  • 優化 Web 界面的數據展示邏輯,處理多種返回類型
  • 增強線程安全性,策略線程與統計更新線程獨立運行

文檔

  • 更新 README 新增 Web 控制枱使用説明
  • 添加 Web 界面功能特性和使用示例
  • 新增 Web 控制枱界面截圖
  • 更新依賴列表,添加 Flask 相關套件

[1.5.0] - 2025-10-29

新增

  • Paradex 交易所集成:完整支援 Paradex 永續合約交易
    • 實現基於 EIP-712 簽名的 JWT 認證機制
    • 自動 JWT token 刷新功能,提前 5 分鐘自動更新避免過期
    • 支援永續合約做市和 Maker-Taker 對沖策略
    • 使用 Paradex 私鑰進行請求簽名
  • Maker-Taker 對沖策略現貨/永續通用化,掛單成交後自動以市價減倉
  • run.py 與 CLI 支援 maker_hedge 策略選項,可於現貨或永續啟動對沖模式
  • Maker-Taker 對沖策略適配 Aster 永續交易所,移除不支援的訂單欄位並保留 reduce-only 市價對沖
  • CLI 命令行界面新增 Paradex 交易所選項

文檔

  • 更新 README 説明新策略使用方式與命令範例
  • 新增 Paradex 配置説明到 .env.example
  • 添加 Paradex 使用示例到 README

[1.4.3] - 2025-10-08

新增

  • 新增手動啟動 關閉資料庫紀錄並移除面板功能,提升部署彈性。
  • 新增止損 止盈功能,增強風險控管能力。

修復

  • 修正 Aster 訂單信息統計、CLI 缺少 API Key、止損為負值、市價平倉錯誤、價格獲取與 WebSocket 連線等問題,確保交易流程與連線穩定。

優化

  • 增設 WS 備援、可配置代理與日誌輸出優化,強化監控與故障恢復能力。
  • 更新 README、CHANGELOG 建議參數等文件與設定。
  • 統一 CLI 與系統輸出文字、移除 panel 功能。
  • 資料庫紀錄啟停流程優化。

[1.4.2] - 2025-09-26

新增

  • 為永續合約做市策略新增基於未實現盈虧的止損/止盈風控,觸發時自動取消掛單、平倉並在完成後繼續做市
  • 在命令列與 run.py 入口提供 --stop-loss--take-profit 參數配置止損止盈閾值

文檔

  • 更新 README 説明新的永續止損/止盈參數與使用範例

[1.4.1] - 2025-09-25

新增

  • 新增 Aster 交易所支援。

[1.4.0] - 2025-09-22

新增

  • Base Client 架構:抽象基礎類別,統一不同交易所的 API 介面
  • 精確倉位管理:只平掉超出閾值的部分,避免過度平倉風控
  • 分層日誌系統:市場狀態、策略決策、價格計算、執行結果四層資訊
  • 相容性設計:支援多種 API 回應格式,強化錯誤處理機制

[1.3.0] - 2025-09-18

新增

  • 新增永續合約 (perp) 做市功能:在原有的現貨做市基礎上,擴展支援永續合約交易,採用風險中性庫存管理策略。
  • 引入目標絕對持倉量 (target_position):此參數讓用户設定期望維持的庫存大小(絕對值)。策略以被動成交來建立庫存,並在倉位超過目標時自動執行減倉,以控制總曝險。
  • 實現報價偏移以對沖風險 (inventory_skew):新增了核心的風險管理機制。此功能會根據當前的淨倉位 (net position) 動態調整買賣報價:
    • 當持有多頭倉位時,會降低整體報價以鼓勵賣出。
    • 當持有空頭倉位時,會提高整體報價以鼓勵買入。
    • 其最終目標是持續將淨倉位推向零,達成方向風險中性 (Delta-Neutral)
  • 新增倉位硬頂風控 (max_position):設立一個絕對的持倉量上限,一旦觸及,策略會立即強制平倉超出部分,確保風險不會無限擴大。
  • 專門的策略模塊:添加 strategies/perp_market_maker.py 檔案,用於處理所有永續合約的專有邏輯。
  • 更新用户介面:在 run.py 的命令列參數和 commands.py 的互動介面中,加入了完整的永續合約做市設定選項。

[1.2.0] - 2025-07-04

新增

  • 支援計算抵押品餘額並整合至總資產統計
  • 新增重平衡參數設定,可調整目標比例與觸發閾值
  • CLI 與 run.py 提供重平衡開關與模擬測試介面

修復

  • 修正科學記號價格步長計算
  • 修正重平邏輯與資產比例設定,移除歷史交易資料獲取
  • 修正價格取得與 WebSocket 斷線異常

優化

  • 更新依賴版本並改善日誌輸出格式

[1.1.2] - 2025-04-10

新增

  • 添加 WebSocket 代理連接支持,允許通過代理服務器連接

優化

  • 自動終止程序功能:當 API 簽名創建失敗時立即停止運行,防止無效操作

[1.1.1] - 2025-04-09

新增

  • 徹底改進重平衡機制風險評估方法,基於總資產價值而非累計交易量
  • 添加動態風險暴露度計算,對實際風險提供更精確的評估
  • 為重平衡決策添加詳細日誌,包括淨部位價值和風險暴露比例

優化

  • 完善重平衡系統的錯誤處理,確保網絡或API問題時仍能正常運作
  • 為風險判斷增加備用機制,在資產數據無法獲取時回退至舊方法

安全

  • 改進風險評估算法,防止在大量交易累積後風險被系統性低估

[1.1.0] - 2025-04-09

新增

  • 為 WebSocket 客户端添加專門的日誌標識,使日誌更易識別
  • 在心跳檢測失敗時添加更詳細的日誌記錄

修改

  • 將 WebSocket 相關的日誌改名為 backpack_ws,使日誌更具描述性

修復

  • 徹底重構 WebSocket 斷線重連機制,解決連接無法完全重置的問題
  • 修復 WebSocket 斷線後資源未完全釋放的問題
  • 改進 on_close 處理邏輯,使用獨立線程進行重連以避免阻塞回調
  • 優化連接關閉邏輯,確保所有相關資源和線程都被正確清理
  • 增強 WebSocket 心跳檢測機制,更快偵測並恢復中斷的連接

[1.0.0] - 2025-04-08

新增

  • 實現基礎做市策略與 WebSocket 即時數據連接
  • 建立命令列介面與互動式面板
  • 完成設定檔管理及資料庫支援
  • 實現日誌系統並提供完整 README 説明