wshy
89bb60bdaf
Merge pull request #133 from dunmin1980-ux/cursor/tickflow-pro-rate-limit-p0
...
TickFlow Pro: process-local 80% RPM safety + Phase 1 probe scaffold
2026-07-31 19:08:11 +08:00
wshy
ceb53735b5
Merge pull request #134 from CJ0Hn/fix/numba-parallel-serialize
...
fix: 串行化 Numba parallel 内核,避免策略页并发崩溃
2026-07-31 19:08:07 +08:00
wshy
16077bb13e
Merge pull request #148 from im47cn/fix/test-time-bomb-live-enriched
...
fix(test): 修复 test_live_enriched_metadata 硬编码日期导致的 time-bomb 失败
2026-07-31 19:04:57 +08:00
shy3130
f8fca96f42
修复停复牌股票实时涨跌停漏算
2026-07-30 13:09:07 +08:00
shy3130
4b6e94e020
修复回测风控参数恢复旧缓存的问题
2026-07-29 21:27:02 +08:00
shy3130
6e4d6b9784
docs: 完善项目贡献与复审指南
2026-07-28 18:55:05 +08:00
shy3130
b29efebe68
docs: 新增项目完整操作说明书
2026-07-28 13:34:03 +08:00
im47cn
5f1c1cf0bb
fix(test): replace hardcoded dates with cn_today() in test_live_enriched_metadata
...
test_history_strategy_monitor_keeps_live_row_with_exclude_st_enabled used
date(2026,7,20) as the "today" value, but MonitorRuleEngine.evaluate()
calls cn_today() internally. The date mismatch caused the basic_filter
+ history filter to produce 0 rows, making the test fail 8 days after
it was written.
Also fixes test_live_enriched_cache_keeps_instrument_metadata_without_persisting_it
which used the same hardcoded date — would break on any future run.
Replace all hardcoded dates with cn_today() / cn_today()-timedelta(days=3)
so the tests are timeless.
2026-07-28 09:46:51 +08:00
shy3130
d29ceed73d
Merge branch 'feat/strategy-monitor-events'
2026-07-26 21:56:22 +08:00
shy3130
b43b177899
feat(monitor): add strategy signal event controls
2026-07-26 16:08:42 +08:00
CJohn
33921fcc51
fix: 串行化 Numba parallel 内核,避免策略页并发崩溃
...
并发 run_all 会触发 workqueue Concurrent access,导致后端进程中断。
为 matrix parallel 内核加进程锁,前端对 run_all 做 pending 去重。
2026-07-26 11:56:10 +08:00
shy3130
6f1c4032bb
feat(backtest): toggle auxiliary nav series
2026-07-26 00:31:38 +08:00
shy3130
6d7092089c
fix(data-source): harden custom source testing
2026-07-25 22:51:27 +08:00
shy3130
96fcbe4fff
fix(data-source): validate custom request settings
2026-07-25 22:13:38 +08:00
wshy
fffd89fce0
Merge pull request #138 from intfoo/feat/custom-source-timeout-param-ui
...
自定义数据源超时与请求参数名支持前端配置
2026-07-25 22:01:11 +08:00
wshy
ae6cf3bee4
Merge pull request #140 from intfoo/fix/index-quotes-change-pct-polling
...
fix(index-quotes): compute change_pct for custom data source
2026-07-25 16:59:11 +08:00
wshy
dd33821acc
Merge pull request #141 from HelloByeAll/agent/backtest-position-curve
...
feat: 回测净值图叠加仓位曲线
2026-07-25 16:52:03 +08:00
HelloByeAll
852cc2f319
新增: 在回测净值图叠加仓位曲线
2026-07-24 21:12:26 +08:00
intfoo
99b0c6cb35
fix(index-quotes): compute change_pct for custom data source
...
Custom data source realtime quotes were missing change_pct because _build_index_quotes only kept pre-existing columns. TickFlow path computes it in _fetch_full_market_quotes, but custom source path bypasses that computation.
- _build_index_quotes computes change_pct/change_amount from last_price/prev_close when not provided by the source
- guards prev_close=0 (Polars produces inf, invalid JSON)
- aligns with TickFlow path and _fallback_index_quotes_from_daily
2026-07-24 11:35:19 +08:00
intfoo
a15d0468cc
feat(data-source): expose custom source timeout & request param names in UI
...
- backend: pass timeout through DatasetConfigIn / _config_to_dict / _sanitize_dataset
(previously a hand-set YAML timeout was silently wiped on UI save, resetting to 30s)
- frontend: add per-dataset timeout input; collapsible 请求参数字段映射 with
symbols/start/end_param (non-realtime) + asset_type/freq_param (minute);
rename 字段映射 -> 响应参数字段映射; chevron at title end; realtime empty-state hint
- test: timeout config round-trip (custom value persists, default 30 not emitted)
- docs: document timeout in custom-data-source.md
2026-07-23 16:22:18 +08:00
shy3130
60fe9e6fa6
修复回测指标数据缺失提示问题
2026-07-22 13:30:02 +08:00
shy3130
a12e49d66d
修复实时行情下策略图表闪烁问题
2026-07-22 11:42:57 +08:00
shy3130
2d9fe4a4af
修复策略文件无法删除问题
2026-07-22 11:21:13 +08:00
shy3130
2c14fde788
完善个股点位提醒并发布0.1.87
2026-07-21 22:14:07 +08:00
shy3130
b4dae4bca1
修复股票与ETF切换误清策略池
2026-07-21 21:39:05 +08:00
shy3130
0ac6d6f56c
修复分析报告复制按钮兼容性
2026-07-21 20:50:34 +08:00
shy3130
0cb0b38437
修复看板监控通知个股弹窗
2026-07-20 17:10:15 +08:00
shy3130
c8c1a01d55
更新交流群二维码
2026-07-20 13:56:04 +08:00
shy3130
72918fe602
优化策略卡片结果加载性能
2026-07-20 13:01:03 +08:00
shy3130
0635698a08
修复策略监控开启后结果归零
2026-07-20 11:12:19 +08:00
shy3130
e1dbd1cafb
修复监控中心涨跌停信号误报
2026-07-20 10:33:06 +08:00
shy3130
ed41f7b950
修复:个股详情量比开关显示异常
2026-07-20 09:59:14 +08:00
shy3130
4df3062002
fix: 完善自定义分钟数据源配置与异常处理
...
- 补齐资产类型和周期参数在 API、YAML 与前端编辑器中的保存回读
- 权限判断和分时监控统一复用安全的数据源解析边界
- 增加配置往返及解析异常回归测试
2026-07-19 17:01:33 +08:00
shy3130
b1b2494db9
merge: 合并 PR #128 自定义分钟数据源支持
2026-07-19 16:52:52 +08:00
shy3130
b17c882e27
feat: 完善历史换手率重算入口
...
- 财务数据统计纳入历史股本,并在数据页提供分批重算入口
- 缺少股本历史时阻止重算,并接入现有任务进度
- 财务分析卡片使用更新图标,明确数据拉取语义
2026-07-19 16:42:03 +08:00
intfoo
d9a77a534a
fix(minute): 承接 #122 review 三处阻断问题整改 + resolver 异常边界加固
2026-07-19 16:00:22 +08:00
intfoo
91e16db547
fix(layout): 修复 None 档+自定义实时源用户侧边栏指数行情不显示
...
承接 #121 review: Layout.tsx:631 的 !isNoneTier 一刀切判定与同文件
546 行实时行情开关判据不一致, 导致 None 档+自定义实时源用户监控页
放行、实时开关可用, 但侧边栏指数行情卡片不渲染。后端
/api/intraday/indices 从缓存读取不调 TickFlow, 对该用户有数据,
纯前端拦截导致 UI 体验不一致。
将 !isNoneTier 改为 (!isNoneTier || !!realtimeProviderName),
与实时行情开关判据对齐。
2026-07-19 13:35:36 +08:00
intfoo
4c85f99633
fix(minute): 自定义分钟数据源用户单股补拉/监控页整改 (承接 #121 review)
2026-07-19 13:35:35 +08:00
intfoo and shy3130
e2ffde99d5
fix(minute,monitoring): 自定义数据源用户单股补拉/监控页打通 ( #121 )
...
承接 #126 : 能力探测已补 KLINE_MINUTE_BATCH, 但两处取数/UI 仍按 TickFlow
档位拦截, 配了自定义分钟/实时源的 None 档用户依旧被挡。
- kline_sync.fetch_minute_single: 与 sync_minute_batch 一致, 先查
preferences.get_minute_data_provider(), 非 tickflow 且自定义源有
minute dataset 时走 custom provider, 避免分时图首次打开(本地无数据)
补拉返回空。
- Monitoring.tsx: None 档但配了自定义实时源时, 后端
is_realtime_allowed(realtime_mode=full_market) 仍返回 True。
以 quoteStatus.realtime_allowed 作为最终判据, 不再用 isNoneTier
一刀切拦截实时监控页。
Co-authored-by: shy3130 <shy3130@users.noreply.github.com >
2026-07-19 13:26:52 +08:00
dunmin1980 and Cursor
431550859f
fix: align Phase 1 probe with TickFlow SDK namespaces
...
Use klines.batch/quotes.get, rename dry-run status to DRY_RUN_OK, document
first-batch burst limits, and cover run_live with a fake client.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 10:06:26 +08:00
dunmin1980 and Cursor
a7b272628e
chore: ignore local rate-limit branch transfer bundle
...
Keep the offline git bundle out of version control; it is only a push fallback when origin credentials lack write access.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 09:36:55 +08:00
dunmin1980 and Cursor
6cb7f9f50c
chore: drop probe debug instrumentation and ignore probe artifacts
...
Keep the Phase 1 CLI production-clean; local probe reports and debug NDJSON stay out of git.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 09:36:55 +08:00
dunmin1980 and Cursor
cafa03fb52
feat: add TickFlow Pro Phase 1 probe scaffold with off-peak gate
...
Dry-run by default; live calls require a key and wait until 16:00 Asia/Shanghai unless --force, so Stage A off-peak probing stays intentional.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 09:36:55 +08:00
dunmin1980 and Cursor
f65aaa88f6
docs: clarify rate limit is process-local, not cross-product
...
Align the Pro rate-limit note with the critique: 80% applies inside
one process; Stage A cross-product safety relies on off-peak scheduling.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 09:36:55 +08:00
dunmin1980 and Cursor
0745fdbb7d
fix: apply process-local 80% TickFlow rpm safety budget
...
Scale resolve_limit rpm by SAFETY_RPM_FACTOR and document that the
in-process slot limiter is not a cross-container account budget.
Keep Stage A isolation via off-peak A-share usage guidance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-19 09:36:55 +08:00
shy3130
8e4258cf20
feat: support historical price limits and share capital
2026-07-18 23:37:54 +08:00
shy3130
e462c63b45
fix: align AI strategy prompt constraints
2026-07-18 18:31:02 +08:00
shy3130
ff12790042
feat: add trading-day volume comparison
2026-07-18 17:46:58 +08:00
shy3130
44ab51e65d
feat: improve strategy scoring and backtest execution
2026-07-18 16:59:53 +08:00
shy3130
a1e8be58db
feat: release v0.1.86
2026-07-18 00:49:28 +08:00