This website requires JavaScript.
Explore
Help
Register
Sign In
sanguo
/
sanguo_vnpy_v2
Watch
3
Star
0
Fork
0
You've already forked sanguo_vnpy_v2
Code
Issues
5
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
a2fb7b4dbb4e45a2dc9f698d3b7ccf8cc23407f6
sanguo_vnpy_v2
/
sanguo_portfolio
T
History
claude_dev
a2fb7b4dbb
CI/CD / test (push)
Successful in 22s
Details
CI/CD / nas-deploy (push)
Successful in 12s
Details
CI/CD / nas-verify (push)
Successful in 8s
Details
fix(portfolio): 周报双修——回测基准认 equity 列(生产四文件全被 balance-only 拒)+daily_returns 同日多行取末次(多写者防覆写) [vps]
...
Co-Authored-By: Claude Sonnet 5 <
noreply@anthropic.com
>
2026-09-25 14:49:10 +08:00
..
factors
feat(portfolio): sanguo_portfolio 组合策略框架(BulletTrade+miniQMT,不用jqdatasdk)
2026-07-18 19:08:18 +08:00
providers
fix(provider): fq别名none改映射pre——use_real_price=True体系撮合基准价走fq=pre(engine.py:1877),none→raw造成「前复权价买入多拿股数×不复权价计市值」口径撕裂,首日equity凭空+15%(09-12 NAS平安银行真值22.81 vs撮合18.39前复权实锤,000605复权因子≈1险些蒙混);none/None/空→pre与撮合同体系自洽,volume/paused字段不受价格复权影响同映射无害
2026-09-12 12:15:50 +08:00
strategies
feat(factor): 改造③size中性化变体+④分数加权rank^γ——③register_szneu_variants生产冠军挂composite_quant12_v2a_szneu(cs_neutralize((v2a),close*share_capital),残差算子线性⇒包裹式≡各源中性化再加权,引擎端到端测试逐点实证;端到端测试显式register_fast_ops钉生产算子语义——fast下alpha16小截面合成数据每日NaN部分股,5股有效对<3会假绿,20股修复)④FactorTopNConfig.weight_gamma目标市值∝(N+1−rank)^γ缺省0退化等权,透传四处+json测试扩六参 [vps]
2026-09-14 23:46:45 +08:00
__init__.py
feat(portfolio): 移植3聚宽策略到BulletTrade + 8bug修正 + 数据缺口文档
2026-07-28 22:20:49 +08:00
filters.py
feat(portfolio): B fundamentals批量 + C涨跌停filter修复(get_limit_status_batch接入)
2026-07-30 07:37:03 +08:00
live_instance_ledger.py
fix(live): 迟到成交对账根因修——引擎16s超时弃跟踪后迟到fill永不进engine.get_trades(08-25幻影500+700股/-18060不自愈):a窄修=下单返回非终态挂进程内待对账名单,归因轮询按券商订单号直查QMT原始成交行(broker.get_trades,绕开引擎视图)见一笔记一笔,终态出名单/隔夜出清;b宽修=15:05 EOD全量对账(QMT当日成交vs live_trades,trade_id或时间+代码+方向+价+量五元组对齐,缺失补插带eod:前缀),赶在15:10恒等式前收敛;三路径同一deal_no幂等;新增live_reconcile模块+账本seen_trade_ids快照,适配器_done挂钩孤立加载已验,21新测试+全量1100绿(9红=test_live_api前后端session既有) [vps]
2026-08-25 23:56:29 +08:00
live_portfolio_proxy.py
feat(portfolio): B2定寸虚拟化InstancePortfolio代理——策略决策层脱离全账户污染(spec§B2+A2清单issue#29)——①live_portfolio_proxy:InstanceContextProxy(portfolio→账本视图,其余属性透传真context,property+__getattr__实现)+InstancePortfolio(每次访问现算)②覆盖A2清单全集:available_cash/cash=账本现金(168万/只定寸污染根治点,.cash fallback同源);positions=账本jq对象(total_amount/amount/closeable_amount(T+1)/avg_cost(台账口径=成交价)/cost_basis/security)+price/last_sale_price从真portfolio同名标的透传(市场数据非所有权,缺→None止损跳过);value/market_value/total_value=现价×量(缺价→0偏保守不误卖);total_value/positions_value=账本equity(现价优先成本兜底);locked_cash=0③清单外属性AttributeError fail-fast(真值=全账户数字,静默透传=污染复发,宁可崩=A1同款house style)④wrap_scheduler包装facade的run_daily/run_monthly(发生在策略initialize注册任务之前,策略代码零改动);functools.wraps保任务名;无账本原样返回=回测/影子零改动⑤live_strategy._setup接线(_ledger None→wrap直通);引擎内部撮合/风控仍看真实账户;+13测试(定寸现金/T+1/现价透传/缺价保守/equity兜底/fail-fast/调度代理注入/无账本零改动/_setup接线两态);portfolio 373绿 [vps]
2026-08-19 22:37:16 +08:00
live_reconcile.py
fix(live): EOD对账重启兜底归因——remark指纹重建本实例订单集+实例唯一label注入;09-01 002646终局实锤:引擎订单注册表=进程内存态(轮换重启即失,runtime持久化只恢复策略/账本),新进程18:49 EOD报「本实例=0」→无守恒缺口→记日,当日15:05后才补全的迟到成交永久失联(get_trades内部本就是query_stock_trades,重试环与直查同源都不缺接口,缺的是归因锚);修=①runner_live经live_config注入strategy_name=live_{id},订单remark(bt:live_17:hash)实例唯一(此前六实例适配文件同名,label全为live_strateg不可分;仅对注入后新单生效)②eod_reconcile补_own_orders_remarked:broker.get_orders(QMT当日订单,带remark)按前缀筛本实例→shim补进own_by_broker(setdefault,engine自己的单优先),状态复用broker._map_order_status,is_buy缺失弃用(宁漏勿错);_PENDING不重建(EOD兜底已覆盖当日全量,省一条风险面);+4重启形态测试+1注入缝钉子,557绿 [vps]
2026-09-01 19:18:22 +08:00
live_strategy.py
[nas] feat(factor): szneul_reb63 影子盘件①②——daily_section 截面增量生产器+live factor_topn 接线
2026-09-22 22:47:06 +08:00
live_trade_receipt.py
feat(live): 成交回报回执日志①——09-04守恒缺口观测件 [vps]——根因件:002633/002836缺口复盘发现引擎会话当日成交视图行缺+时间字段中途退化None,QMT行dump全打查询时刻即铁证,事后无从对「哪笔什么时候以什么形态被看到」;用户钦点观测机制「再出现时根因可查」,dev契约:任何处理/匹配/去重之前打[trade-receipt] tid/order/acc/sym/vol/px/t_raw/recv八字段(②解析此格式,拼写冻结);实现=with_trade_receipt包装QmtBroker.get_trades(bullet_trade轮询制无成交推送回调,_Callback仅桥接断连,broker.get_trades是柜台行进本进程唯一咽喉,引擎同步/a窄修/b宽修全经它),与with_connect_retry同款实例级包装源码零改动;铁律=t_raw原样照记None也记/日志永不抛逐行try-except包死/get_trades原异常照抛行为不变;量控=观测层变化检测非处理层去组:同tid签名(t_raw+量+价+单号)不变不重打,退化即重打(捕获09-04形态),行照常流向消费方;③结论免改:vt_tradeid三条归因路径已承载柜台成交号(即时=引擎trades键/a窄修=trade_id/b宽修=eod:前缀),既有测试已钉(test_live_reconcile.py:123,206+test_live_instance_ledger.py:236),②按tid比回执↔live_trades即闭环;TDD 7新测先红后绿(caplog须set_level(INFO)坑)+598全绿
2026-09-06 11:14:29 +08:00
pipeline_store.py
feat(api): /pipeline 五端点接真——梯子/阈值配置/毕业口令/驾驶舱聚合/因子评审 [vps] [no-doc]
2026-09-24 21:10:05 +08:00
promotion_gate.py
feat(portfolio): 晋级闸门纯函数——默认阈值+回测/影子两套判定+DB覆盖汇合点 [vps] [no-doc]
2026-09-24 20:53:10 +08:00
runner_backtest.py
feat(factor): 改造③size中性化变体+④分数加权rank^γ——③register_szneu_variants生产冠军挂composite_quant12_v2a_szneu(cs_neutralize((v2a),close*share_capital),残差算子线性⇒包裹式≡各源中性化再加权,引擎端到端测试逐点实证;端到端测试显式register_fast_ops钉生产算子语义——fast下alpha16小截面合成数据每日NaN部分股,5股有效对<3会假绿,20股修复)④FactorTopNConfig.weight_gamma目标市值∝(N+1−rank)^γ缺省0退化等权,透传四处+json测试扩六参 [vps]
2026-09-14 23:46:45 +08:00
runner_live.py
feat(live): 成交回报回执日志①——09-04守恒缺口观测件 [vps]——根因件:002633/002836缺口复盘发现引擎会话当日成交视图行缺+时间字段中途退化None,QMT行dump全打查询时刻即铁证,事后无从对「哪笔什么时候以什么形态被看到」;用户钦点观测机制「再出现时根因可查」,dev契约:任何处理/匹配/去重之前打[trade-receipt] tid/order/acc/sym/vol/px/t_raw/recv八字段(②解析此格式,拼写冻结);实现=with_trade_receipt包装QmtBroker.get_trades(bullet_trade轮询制无成交推送回调,_Callback仅桥接断连,broker.get_trades是柜台行进本进程唯一咽喉,引擎同步/a窄修/b宽修全经它),与with_connect_retry同款实例级包装源码零改动;铁律=t_raw原样照记None也记/日志永不抛逐行try-except包死/get_trades原异常照抛行为不变;量控=观测层变化检测非处理层去组:同tid签名(t_raw+量+价+单号)不变不重打,退化即重打(捕获09-04形态),行照常流向消费方;③结论免改:vt_tradeid三条归因路径已承载柜台成交号(即时=引擎trades键/a窄修=trade_id/b宽修=eod:前缀),既有测试已钉(test_live_reconcile.py:123,206+test_live_instance_ledger.py:236),②按tid比回执↔live_trades即闭环;TDD 7新测先红后绿(caplog须set_level(INFO)坑)+598全绿
2026-09-06 11:14:29 +08:00
sentiment_thermometer.py
feat(strategy): 情绪温度计四指标——涨停池三件套首轮Python化,消费provider.get_limit_pool出口(get_limit_pool/get_event_panel双端8/8已验);四口径契约与数据session 09-03对齐并逐条钉进测试:①炸板率=zbgc/(zt+zbgc)按行数,回封票(zt内break_count>0)留分母勿扣②dtgc空=0跌停合法值③history按trade_date对齐,某池某日无行按0计不丢日④连板高度=consecutive_boards之max(to_numeric吸字符串)+行业集中度用industry现成列(空串/NaN剔除);三接口=compute纯函数+daily单日快照(date=None最新落盘日)+history区间校准表;只算不判,阈值待23日真实数据校准后另定;10新测+588全绿 [vps]
2026-09-03 08:58:49 +08:00
strategy_registry.py
fix(portfolio): P2 终审 defer 六修——vs=0.0 误判/graduate 并发锁/口令 compare_digest/gitea base_url env 化/静默 except 加 log/测试 db 隔离+覆盖缺口补测 [vps] [no-doc]
2026-09-24 23:39:59 +08:00
verdict_records.py
feat(portfolio): 研判留痕模块——七档静态表唯一源+裁决 JSONL(spec §4.7 P3 第一刀) [vps]
2026-09-25 10:09:21 +08:00
weekly_report.py
fix(portfolio): 周报双修——回测基准认 equity 列(生产四文件全被 balance-only 拒)+daily_returns 同日多行取末次(多写者防覆写) [vps]
2026-09-25 14:49:10 +08:00