fix: 全面系统修复 — delivery目标修正 + 脚本同步 + refresh_mtf_cache import修复 + clean_watchlist硬编码修复
修复清单: - cron delivery修正:10个job从deliver=origin/all改为local,消除推送错误 - refresh_mtf_cache.py:替换strategy_lifecycle.PORTFOLIO_PATH导入为mofin_db直接读DB - clean_watchlist.py:修复mo_data导入名错误和JSON硬编码路径 - MoFin/scripts/与profile scripts互相补全,双向sync到一致 - price_monitor.py:现金源从portfolio_summary表改为cash_log(Dad确认的现金权威) - 更新watchlist.json加入000850华茂股份
This commit is contained in:
+286
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"last_updated": "2026-07-03 15:40",
|
||||
"total_candidates": 15,
|
||||
"last_updated": "2026-07-06 13:59",
|
||||
"total_candidates": 23,
|
||||
"sectors_analyzed_today": [
|
||||
"半导体",
|
||||
"金属新材料",
|
||||
@@ -831,6 +831,290 @@
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "300015",
|
||||
"name": "爱尔眼科",
|
||||
"sector": "医疗服务",
|
||||
"xiaoguo_score": 8,
|
||||
"xiaoguo_reason": "眼科连锁龙头,门店网络与品牌壁垒深厚,业绩增速稳健,估值处于历史中低位,资金关注度回升。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "19.5-20.5元",
|
||||
"stop_loss": "18.8元",
|
||||
"target": "23.5元"
|
||||
},
|
||||
"verified_price": 8.48,
|
||||
"verified_change": -0.82,
|
||||
"added_at": "2026-07-06 12:12",
|
||||
"last_updated": "2026-07-06 13:22",
|
||||
"num_observations": 3,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:12",
|
||||
"score": 8
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 12:37",
|
||||
"score": 8
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 13:22",
|
||||
"score": 8
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "600763",
|
||||
"name": "通策医疗",
|
||||
"sector": "医疗服务",
|
||||
"xiaoguo_score": 7,
|
||||
"xiaoguo_reason": "口腔赛道核心标的,受宏观消费节奏影响短期承压,但区域扩张与单店盈利模型优化提供修复弹性,技术面呈筑底形态。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "48.0-50.0元",
|
||||
"stop_loss": "45.5元",
|
||||
"target": "58.0元"
|
||||
},
|
||||
"verified_price": 35.82,
|
||||
"verified_change": 0.39,
|
||||
"added_at": "2026-07-06 12:12",
|
||||
"last_updated": "2026-07-06 12:12",
|
||||
"num_observations": 1,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:12",
|
||||
"score": 7
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "002044",
|
||||
"name": "美年健康",
|
||||
"sector": "医疗服务",
|
||||
"xiaoguo_score": 7,
|
||||
"xiaoguo_reason": "体检服务龙头,规模效应显著,疫后需求复苏+数字化运营降本增效,弹性较大但需跟踪单客价值修复进度。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "10.5-11.2元",
|
||||
"stop_loss": "9.8元",
|
||||
"target": "13.0元"
|
||||
},
|
||||
"verified_price": 4.84,
|
||||
"verified_change": -1.63,
|
||||
"added_at": "2026-07-06 12:12",
|
||||
"last_updated": "2026-07-06 13:22",
|
||||
"num_observations": 3,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:12",
|
||||
"score": 7.5
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 12:37",
|
||||
"score": 7
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 13:22",
|
||||
"score": 7
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "600036",
|
||||
"name": "招商银行",
|
||||
"sector": "银行",
|
||||
"xiaoguo_score": 8.5,
|
||||
"xiaoguo_reason": "零售业务护城河深,资产质量与ROE居同业前列,股息率稳定在5%以上,机构资金持续回流龙头,估值修复空间明确。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "32.50-33.50元",
|
||||
"stop_loss": "31.20元",
|
||||
"target": "36.00-37.50元"
|
||||
},
|
||||
"verified_price": 37.48,
|
||||
"verified_change": 1.76,
|
||||
"added_at": "2026-07-06 12:17",
|
||||
"last_updated": "2026-07-06 13:27",
|
||||
"num_observations": 2,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:17",
|
||||
"score": 8
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 13:27",
|
||||
"score": 8.5
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "002142",
|
||||
"name": "宁波银行",
|
||||
"sector": "银行",
|
||||
"xiaoguo_score": 8.0,
|
||||
"xiaoguo_reason": "城商行基本面标杆,不良率极低且拨备充足,财富管理与小微业务增长强劲,业绩弹性大,适合成长型配置。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "24.00-25.00元",
|
||||
"stop_loss": "22.80元",
|
||||
"target": "28.50-30.00元"
|
||||
},
|
||||
"verified_price": 30.53,
|
||||
"verified_change": 0.79,
|
||||
"added_at": "2026-07-06 12:17",
|
||||
"last_updated": "2026-07-06 13:27",
|
||||
"num_observations": 2,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:17",
|
||||
"score": 7.5
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 13:27",
|
||||
"score": 8.0
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "601288",
|
||||
"name": "农业银行",
|
||||
"sector": "银行",
|
||||
"xiaoguo_score": 8.2,
|
||||
"xiaoguo_reason": "国有大行中股息率领先(约6%+),PB处于历史低位,避险属性强,直接受益于化债推进与稳增长政策,资金承接力佳。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "4.10-4.25元",
|
||||
"stop_loss": "3.95元",
|
||||
"target": "4.60-4.80元"
|
||||
},
|
||||
"verified_price": 5.92,
|
||||
"verified_change": 0.34,
|
||||
"added_at": "2026-07-06 12:17",
|
||||
"last_updated": "2026-07-06 13:27",
|
||||
"num_observations": 2,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:17",
|
||||
"score": 8.5
|
||||
},
|
||||
{
|
||||
"date": "2026-07-06 13:27",
|
||||
"score": 8.2
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "000516",
|
||||
"name": "国际医学",
|
||||
"sector": "医疗服务",
|
||||
"xiaoguo_score": 6.5,
|
||||
"xiaoguo_reason": "区域综合医院龙头,DRG/DIP改革下运营效率持续改善,但业绩波动性较高,适合技术面配合的波段操作。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "5.80-6.10元",
|
||||
"stop_loss": "5.40元",
|
||||
"target": "7.20元"
|
||||
},
|
||||
"verified_price": 3.99,
|
||||
"verified_change": -0.25,
|
||||
"added_at": "2026-07-06 12:37",
|
||||
"last_updated": "2026-07-06 12:37",
|
||||
"num_observations": 1,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 12:37",
|
||||
"score": 6.5
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
},
|
||||
{
|
||||
"code": "300244",
|
||||
"name": "迪安诊断",
|
||||
"sector": "医疗服务",
|
||||
"xiaoguo_score": 7.5,
|
||||
"xiaoguo_reason": "第三方医学检测龙头,受益于基层医疗扩容与ICL行业整合,现金流改善,估值具备安全边际。",
|
||||
"xiaoguo_strategy": {
|
||||
"entry_range": "10.8-11.5元",
|
||||
"stop_loss": "10.2元",
|
||||
"target": "13.8元"
|
||||
},
|
||||
"verified_price": 19.52,
|
||||
"verified_change": -3.46,
|
||||
"added_at": "2026-07-06 13:22",
|
||||
"last_updated": "2026-07-06 13:22",
|
||||
"num_observations": 1,
|
||||
"score_history": [
|
||||
{
|
||||
"date": "2026-07-06 13:22",
|
||||
"score": 7.5
|
||||
}
|
||||
],
|
||||
"zhiwei_star": null,
|
||||
"zhiwei_reviewed": false,
|
||||
"zhiwei_reviewed_at": null,
|
||||
"promoted": false,
|
||||
"promoted_at": null,
|
||||
"dropped": false,
|
||||
"drop_reason": null,
|
||||
"trend_warning": false,
|
||||
"trend_note": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+120
-62
@@ -5,162 +5,220 @@
|
||||
"name": "腾讯",
|
||||
"shares": 100,
|
||||
"cost": 443.13,
|
||||
"price": 446.4,
|
||||
"position_pct": null,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 447.4,
|
||||
"market_value": 39063.0,
|
||||
"change_pct": 3.53,
|
||||
"currency": "HKD",
|
||||
"position_pct": null
|
||||
"change_pct": 3.76,
|
||||
"currency": "HKD"
|
||||
},
|
||||
{
|
||||
"code": "01088",
|
||||
"name": "中国神华",
|
||||
"shares": 500,
|
||||
"cost": 45.89,
|
||||
"price": 40.72,
|
||||
"position_pct": 2.14,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 40.66,
|
||||
"market_value": 17575.0,
|
||||
"change_pct": 1.8,
|
||||
"currency": "HKD",
|
||||
"position_pct": 2.14
|
||||
"change_pct": 1.65,
|
||||
"currency": "HKD"
|
||||
},
|
||||
{
|
||||
"code": "01211",
|
||||
"name": "比亚迪股份",
|
||||
"shares": 600,
|
||||
"cost": 104.87,
|
||||
"price": 84.25,
|
||||
"position_pct": 4.62,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 84.15,
|
||||
"market_value": 44376.0,
|
||||
"change_pct": 0.18,
|
||||
"currency": "HKD",
|
||||
"position_pct": 4.62
|
||||
"change_pct": 0.06,
|
||||
"currency": "HKD"
|
||||
},
|
||||
{
|
||||
"code": "01478",
|
||||
"name": "丘钛科技",
|
||||
"shares": 11000,
|
||||
"cost": 13.47,
|
||||
"price": 6.75,
|
||||
"position_pct": 7.97,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 6.74,
|
||||
"market_value": 64460.0,
|
||||
"change_pct": -3.43,
|
||||
"currency": "HKD",
|
||||
"position_pct": 7.97
|
||||
"change_pct": -3.58,
|
||||
"currency": "HKD"
|
||||
},
|
||||
{
|
||||
"code": "02202",
|
||||
"name": "万科企业",
|
||||
"shares": 19700,
|
||||
"cost": 4.67,
|
||||
"price": 2.33,
|
||||
"position_pct": 4.6,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 2.32,
|
||||
"market_value": 40385.0,
|
||||
"change_pct": -0.43,
|
||||
"currency": "HKD",
|
||||
"position_pct": 4.6
|
||||
"change_pct": -0.85,
|
||||
"currency": "HKD"
|
||||
},
|
||||
{
|
||||
"code": "300035",
|
||||
"name": "中科电气",
|
||||
"shares": 1400,
|
||||
"cost": 22.29,
|
||||
"price": 14.02,
|
||||
"position_pct": 2.42,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 14.03,
|
||||
"market_value": 19712.0,
|
||||
"change_pct": -1.89,
|
||||
"currency": "CNY",
|
||||
"position_pct": 2.42
|
||||
"change_pct": -1.82,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "300308",
|
||||
"name": "中际旭创",
|
||||
"shares": 100,
|
||||
"cost": 1316.53,
|
||||
"price": 1116.03,
|
||||
"position_pct": 15.27,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 1117.49,
|
||||
"market_value": 106181.0,
|
||||
"change_pct": 0.0,
|
||||
"currency": "CNY",
|
||||
"position_pct": 15.27
|
||||
"change_pct": 0.13,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "300750",
|
||||
"name": "宁德时代",
|
||||
"shares": 100,
|
||||
"cost": 401.78,
|
||||
"price": 377.6,
|
||||
"position_pct": 4.64,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 378.07,
|
||||
"market_value": 37726.0,
|
||||
"change_pct": -0.63,
|
||||
"currency": "CNY",
|
||||
"position_pct": 4.64
|
||||
"change_pct": -0.51,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "518880",
|
||||
"name": "黄金ETF华安",
|
||||
"shares": 2400,
|
||||
"cost": 12.19,
|
||||
"price": 8.66,
|
||||
"position_pct": 2.45,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 8.63,
|
||||
"market_value": 20832.0,
|
||||
"change_pct": -0.08,
|
||||
"currency": "CNY",
|
||||
"position_pct": 2.45
|
||||
"change_pct": -0.45,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "600563",
|
||||
"name": "法拉电子",
|
||||
"shares": 100,
|
||||
"cost": 147.18,
|
||||
"price": 153.42,
|
||||
"position_pct": 2.3,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 154.64,
|
||||
"market_value": 15021.0,
|
||||
"change_pct": -2.32,
|
||||
"currency": "CNY",
|
||||
"position_pct": 2.3
|
||||
"change_pct": -1.54,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "601899",
|
||||
"name": "紫金矿业",
|
||||
"shares": 2400,
|
||||
"cost": 39.89,
|
||||
"price": 28.41,
|
||||
"position_pct": 7.34,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 28.42,
|
||||
"market_value": 68784.0,
|
||||
"change_pct": 2.12,
|
||||
"currency": "CNY",
|
||||
"position_pct": 7.34
|
||||
"change_pct": 2.16,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "688411",
|
||||
"name": "海博思创",
|
||||
"shares": 200,
|
||||
"cost": 266.95,
|
||||
"price": 262.98,
|
||||
"position_pct": 6.31,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 263.0,
|
||||
"market_value": 52064.0,
|
||||
"change_pct": 4.71,
|
||||
"currency": "CNY",
|
||||
"position_pct": 6.31
|
||||
"change_pct": 4.72,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "688639",
|
||||
"name": "华恒生物",
|
||||
"shares": 2800,
|
||||
"cost": 21.51,
|
||||
"price": 16.61,
|
||||
"position_pct": 5.25,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 16.57,
|
||||
"market_value": 46480.0,
|
||||
"change_pct": -0.3,
|
||||
"currency": "CNY",
|
||||
"position_pct": 5.25
|
||||
"change_pct": -0.54,
|
||||
"currency": "CNY"
|
||||
},
|
||||
{
|
||||
"code": "688981",
|
||||
"name": "中芯国际",
|
||||
"shares": 300,
|
||||
"cost": 126.07,
|
||||
"price": 147.18,
|
||||
"position_pct": 5.44,
|
||||
"added_at": null,
|
||||
"is_active": 1,
|
||||
"closed_at": null,
|
||||
"close_pnl": null,
|
||||
"price": 147.6,
|
||||
"market_value": 40599.0,
|
||||
"change_pct": 4.9,
|
||||
"currency": "CNY",
|
||||
"position_pct": 5.44
|
||||
"change_pct": 5.2,
|
||||
"currency": "CNY"
|
||||
}
|
||||
],
|
||||
"cash": 289196.0,
|
||||
"cash": 321271.0,
|
||||
"frozen_cash": 0.0,
|
||||
"total_mv": 619713.76,
|
||||
"total_assets": 908909.76,
|
||||
"position_pct": 68.18,
|
||||
"total_mv": 620482.46,
|
||||
"total_assets": 941753.46,
|
||||
"stock_value": 620482.46,
|
||||
"position_pct": 65.89,
|
||||
"currency": "CNY",
|
||||
"updated_at": "2026-07-06 11:35:19",
|
||||
"stock_value": 619713.76
|
||||
"updated_at": "2026-07-06 13:06:24",
|
||||
"total_pnl": null,
|
||||
"cash_history": []
|
||||
}
|
||||
+10
-2
@@ -266,7 +266,7 @@
|
||||
"date": "2026-07-06",
|
||||
"high": 90.58,
|
||||
"low": 80.46,
|
||||
"close": 81.83
|
||||
"close": 81.34
|
||||
}
|
||||
],
|
||||
"000711": [
|
||||
@@ -286,7 +286,7 @@
|
||||
"date": "2026-07-06",
|
||||
"high": 5.65,
|
||||
"low": 5.0,
|
||||
"close": 5.29
|
||||
"close": 5.17
|
||||
}
|
||||
],
|
||||
"001309": [
|
||||
@@ -402,5 +402,13 @@
|
||||
"low": 659.16,
|
||||
"close": 695.26
|
||||
}
|
||||
],
|
||||
"000700": [
|
||||
{
|
||||
"date": "2026-07-06",
|
||||
"high": 17.18,
|
||||
"low": 16.3,
|
||||
"close": 16.88
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user