bsp_monitor: 支持全部20个币对 + 数据源切换至data_provider + Python 3.9兼容
- fetcher.py: 数据源从CCXT改为data_provider HTTP API,新增get_symbols()自动获取所有币对 - main.py: 重构为多币对架构,每个币对独立SymbolState(pivot_monitor/BSP去重/首轮抑制) - engine.py: format_bsp_detail()支持动态币对名 - ChanPivotMonitor/Classifier: 修复Python 3.9类型注解兼容(X|None → Optional[X]) - 首轮初始化时不推送中枢和BSP,避免启动时20条消息轰炸 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
b1cbdca707
commit
881c9d5eac
@@ -127,7 +127,7 @@ class ChanEngine:
|
||||
cst = dt.astimezone(timezone(timedelta(hours=8)))
|
||||
return cst.strftime("%Y-%m-%d %H:%M:%S CST")
|
||||
|
||||
def format_bsp_detail(self, bsp: ChanBSP) -> str:
|
||||
def format_bsp_detail(self, bsp: ChanBSP, symbol: str = "BTC/USDT:USDT") -> str:
|
||||
bi = bsp.bi
|
||||
klc = bsp.klc
|
||||
bsp_type = bsp.type
|
||||
@@ -136,8 +136,9 @@ class ChanEngine:
|
||||
emoji = "🟢" if bsp_dir == Chan_BSP_DIR.BUY else "🔴"
|
||||
dir_label = "买点" if bsp_dir == Chan_BSP_DIR.BUY else "卖点"
|
||||
|
||||
symbol_short = symbol.split(":")[0].replace("/", "")
|
||||
lines = [
|
||||
f"{emoji} [{dir_label}] {self._bsp_type_name(bsp_type)} — <b>BTC/USDT 1m</b>",
|
||||
f"{emoji} [{dir_label}] {self._bsp_type_name(bsp_type)} — <b>{symbol_short} 1m</b>",
|
||||
"",
|
||||
f"⏰ 确认: <code>{self._utc_to_cst(klc.end_time)}</code>",
|
||||
f"💰 价格: <b>{klc.close:.2f}</b>",
|
||||
|
||||
Reference in New Issue
Block a user