- StandX 交易所完整支援:新增 StandX 永續合約交易所整合
- 實現
StandXClientREST 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__.pyws_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__.pystrategies/:market_maker.py,maker_taker_hedge.py,perp_grid_strategy.pycli/commands.py,run.py,config.py,README.md,.env.exampleweb/:server.py,static/js/app.js,templates/index.html
- 多交易所 WebSocket 客戶端:新增 Apex、Aster、Lighter、Paradex 四個交易所的 WebSocket 客戶端實現
- 所有客戶端繼承自
BaseWebSocketClient抽象基類,提供統一介面 - 支援公開頻道訂閱:行情 (Ticker)、訂單簿 (OrderBook)
- 支援私有頻道訂閱:訂單更新、成交回報
- 所有客戶端繼承自
- 私有頻道認證機制:各交易所 WebSocket 客戶端支援 API Key / Secret / Passphrase 認證
- Apex: 基於 HMAC 簽名的 login 認證
- Aster: WebSocket 私有頻道認證
- Lighter: 原生 signer 整合認證
- Paradex: EIP-712 簽名認證
- 標準化數據結構:統一使用
WSTickerData、WSOrderBookData、WSOrderUpdateData、WSFillData處理不同交易所訊息 - 連線增強功能:
- 支援 Proxy 代理配置
- 可配置的心跳 (Heartbeat) 與 Ping/Pong 機制
- 指數退避重連策略 (Exponential Backoff)
- Lighter 連線異常:修正
lighter_client.pyAPI 連線問題 - Paradex 連線異常:修正
paradex_client.pyAPI 連線問題 - 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__.pystrategies/:market_maker.pyapi/:lighter_client.py,paradex_client.pyconfig.py,README.md
- 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.pystrategies/:grid_strategy.py,maker_taker_hedge.py,market_maker.py,perp_grid_strategy.py,perp_market_maker.pycli/commands.py,utils/helpers.py
- 倉位同步功能:新增倉位同步機制自動補掛平倉單,確保網格倉位與訂單狀態一致
- 網格合約風控設置:修正網格策略風控參數設置,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 界面優化:
- 網格策略隱藏不必要的永續參數(目標持倉、持倉閾值、偏移係數)
- 止損/止盈欄位改為同一行顯示
- 網格交易統計改為顯示已實現網格利潤
- 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
- 全域代理配置:添加全局代理配置支持,優化各交易所客戶端的代理設置。
- 移除 WebSocket 代理參數:統一使用全局代理配置,移除多餘的 WebSocket 代理參數。
- 命令行選項描述:更新命令行選項描述,移除 WebSocket 代理參數。
- 代理配置邏輯:更新代理配置邏輯,若未單獨設置 https_proxy,HTTPS 也使用 http_proxy。
- 代理配置工具:將代理配置邏輯重構為統一工具,簡化 API 客户端代碼。
- README 更新:更新 README 和環境變數範例,移除 WebSocket 代理參數,簡化全局代理配置說明。
- 網格交易策略:全新的網格交易功能,支援現貨與永續市場
- 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 配置說明
- 完成網格交易策略的整合文檔更新
- Lighter 交易所集成:提供 Lighter 永續交易支持
- 實作自簽名 REST 客户端,整合原生 signer 並支援簽章執行
- 支援永續合約做市和 Maker-Taker 對沖策略
- 解析 Lighter 成交資料時保留原始費率並避免誤計實際手續費,零手續費帳户可正確記帳
- CLI 命令行界面新增 Lighter 交易所選項
- Web 界面新增 Lighter 交易所選項
- 「磨損率(Slippage / Wear Rate)」的計算公式
- 新增 Lighter 配置説明到
.env.example - 添加 Lighter 使用示例到 README
- 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 相關套件
- 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
- 新增手動啟動 關閉資料庫紀錄並移除面板功能,提升部署彈性。
- 新增止損 止盈功能,增強風險控管能力。
- 修正 Aster 訂單信息統計、CLI 缺少 API Key、止損為負值、市價平倉錯誤、價格獲取與 WebSocket 連線等問題,確保交易流程與連線穩定。
- 增設 WS 備援、可配置代理與日誌輸出優化,強化監控與故障恢復能力。
- 更新 README、CHANGELOG 建議參數等文件與設定。
- 統一 CLI 與系統輸出文字、移除 panel 功能。
- 資料庫紀錄啟停流程優化。
- 為永續合約做市策略新增基於未實現盈虧的止損/止盈風控,觸發時自動取消掛單、平倉並在完成後繼續做市
- 在命令列與
run.py入口提供--stop-loss、--take-profit參數配置止損止盈閾值
- 更新 README 説明新的永續止損/止盈參數與使用範例
- 新增 Aster 交易所支援。
- Base Client 架構:抽象基礎類別,統一不同交易所的 API 介面
- 精確倉位管理:只平掉超出閾值的部分,避免過度平倉風控
- 分層日誌系統:市場狀態、策略決策、價格計算、執行結果四層資訊
- 相容性設計:支援多種 API 回應格式,強化錯誤處理機制
- 新增永續合約 (
perp) 做市功能:在原有的現貨做市基礎上,擴展支援永續合約交易,採用風險中性庫存管理策略。 - 引入目標絕對持倉量 (
target_position):此參數讓用户設定期望維持的庫存大小(絕對值)。策略以被動成交來建立庫存,並在倉位超過目標時自動執行減倉,以控制總曝險。 - 實現報價偏移以對沖風險 (
inventory_skew):新增了核心的風險管理機制。此功能會根據當前的淨倉位 (net position) 動態調整買賣報價:- 當持有多頭倉位時,會降低整體報價以鼓勵賣出。
- 當持有空頭倉位時,會提高整體報價以鼓勵買入。
- 其最終目標是持續將淨倉位推向零,達成方向風險中性 (Delta-Neutral)。
- 新增倉位硬頂風控 (
max_position):設立一個絕對的持倉量上限,一旦觸及,策略會立即強制平倉超出部分,確保風險不會無限擴大。 - 專門的策略模塊:添加
strategies/perp_market_maker.py檔案,用於處理所有永續合約的專有邏輯。 - 更新用户介面:在
run.py的命令列參數和commands.py的互動介面中,加入了完整的永續合約做市設定選項。
- 支援計算抵押品餘額並整合至總資產統計
- 新增重平衡參數設定,可調整目標比例與觸發閾值
- CLI 與 run.py 提供重平衡開關與模擬測試介面
- 修正科學記號價格步長計算
- 修正重平邏輯與資產比例設定,移除歷史交易資料獲取
- 修正價格取得與 WebSocket 斷線異常
- 更新依賴版本並改善日誌輸出格式
- 添加 WebSocket 代理連接支持,允許通過代理服務器連接
- 自動終止程序功能:當 API 簽名創建失敗時立即停止運行,防止無效操作
- 徹底改進重平衡機制風險評估方法,基於總資產價值而非累計交易量
- 添加動態風險暴露度計算,對實際風險提供更精確的評估
- 為重平衡決策添加詳細日誌,包括淨部位價值和風險暴露比例
- 完善重平衡系統的錯誤處理,確保網絡或API問題時仍能正常運作
- 為風險判斷增加備用機制,在資產數據無法獲取時回退至舊方法
- 改進風險評估算法,防止在大量交易累積後風險被系統性低估
- 為 WebSocket 客户端添加專門的日誌標識,使日誌更易識別
- 在心跳檢測失敗時添加更詳細的日誌記錄
- 將 WebSocket 相關的日誌改名為
backpack_ws,使日誌更具描述性
- 徹底重構 WebSocket 斷線重連機制,解決連接無法完全重置的問題
- 修復 WebSocket 斷線後資源未完全釋放的問題
- 改進
on_close處理邏輯,使用獨立線程進行重連以避免阻塞回調 - 優化連接關閉邏輯,確保所有相關資源和線程都被正確清理
- 增強 WebSocket 心跳檢測機制,更快偵測並恢復中斷的連接
- 實現基礎做市策略與 WebSocket 即時數據連接
- 建立命令列介面與互動式面板
- 完成設定檔管理及資料庫支援
- 實現日誌系統並提供完整 README 説明