Files
MoFin/data/portfolio.json
T
知微 df4f898bc4 持仓来源修复:holding.xls导入+持仓数据修正
老问题:scripts读的是 strategy_staleness_report.json 里的旧现金值,
portfolio.json 被 strategy_lifecycle.regenerate_all 反复覆盖。

修复:
1. import_holding_xls.py — 从 ~/stocks/holding.xls 导入TSV持仓
   (含25只真实持仓,14A/11H,总市值93万,现金8万,仓位92%)
2. stale_push_wlin 现金来源改读 portfolio.json(取代旧stale_report缓存)
3. 港股市值×汇率修正(之前按1:1当人民币算,总资产多估了)
4. 每条策略的决策树同步重建

脚本执行:python3 MoFin/scripts/import_holding_xls.py (含全量重评)
Dad你以后更新holding.xls后跑这条命令就行
2026-06-24 11:19:29 +08:00

374 lines
8.5 KiB
JSON

{
"holdings": [
{
"code": "001309",
"name": "德明利",
"shares": 100,
"avail_shares": 100,
"price": 790.0,
"cost_price": 737.0374,
"pl": 5096.26,
"pl_pct": 6.91,
"currency": "CNY",
"market_val": 78800.0,
"cost_amount": 73703.74,
"exchange_rate": 0.866
},
{
"code": "01478",
"name": "丘钛科技",
"shares": 11000,
"avail_shares": 11000,
"price": 7.57,
"cost_price": 13.8089,
"pl": -59438.6,
"pl_pct": -45.18,
"currency": "HKD",
"market_val": 72120.15,
"cost_amount": 131558.75,
"exchange_rate": 0.8661,
"change_pct": -3.93
},
{
"code": "600739",
"name": "辽宁成大",
"shares": 6600,
"avail_shares": 6600,
"price": 10.44,
"cost_price": 12.2862,
"pl": -11789.02,
"pl_pct": -14.54,
"currency": "CNY",
"market_val": 69300.0,
"cost_amount": 81089.02,
"exchange_rate": 0.866,
"change_pct": -1.97
},
{
"code": "601899",
"name": "紫金矿业",
"shares": 2400,
"avail_shares": 2400,
"price": 27.38,
"cost_price": 40.2685,
"pl": -30572.29,
"pl_pct": -31.63,
"currency": "CNY",
"market_val": 66072.0,
"cost_amount": 96644.29,
"exchange_rate": 0.866
},
{
"code": "688639",
"name": "华恒生物",
"shares": 2800,
"avail_shares": 0,
"price": 21.31,
"cost_price": 21.5085,
"pl": -135.75,
"pl_pct": -0.23,
"currency": "CNY",
"market_val": 60088.0,
"cost_amount": 60223.75,
"exchange_rate": 0.866
},
{
"code": "09988",
"name": "阿里巴巴-W",
"shares": 700,
"avail_shares": 700,
"price": 98.55,
"cost_price": 126.1516,
"pl": -16582.48,
"pl_pct": -21.68,
"currency": "HKD",
"market_val": 59899.48,
"cost_amount": 76481.96,
"exchange_rate": 0.8661,
"change_pct": -0.4
},
{
"code": "603259",
"name": "药明康德",
"shares": 400,
"avail_shares": 400,
"price": 116.94,
"cost_price": 96.201,
"pl": 8295.62,
"pl_pct": 21.56,
"currency": "CNY",
"market_val": 46776.0,
"cost_amount": 38480.38,
"exchange_rate": 0.866
},
{
"code": "688981",
"name": "中芯国际",
"shares": 300,
"avail_shares": 300,
"price": 149.89,
"cost_price": 126.0681,
"pl": 7173.58,
"pl_pct": 18.97,
"currency": "CNY",
"market_val": 44994.0,
"cost_amount": 37820.42,
"exchange_rate": 0.866,
"change_pct": 5.78
},
{
"code": "01888",
"name": "建滔积层板",
"shares": 500,
"avail_shares": 500,
"price": 93.5,
"cost_price": 88.3855,
"pl": 2409.7,
"pl_pct": 6.3,
"currency": "HKD",
"market_val": 40685.05,
"cost_amount": 38275.35,
"exchange_rate": 0.8661,
"change_pct": 7.16
},
{
"code": "02202",
"name": "万科企业",
"shares": 19700,
"avail_shares": 19700,
"price": 2.37,
"cost_price": 4.676,
"pl": -39344.79,
"pl_pct": -49.32,
"currency": "HKD",
"market_val": 40437.34,
"cost_amount": 79782.13,
"exchange_rate": 0.8661
},
{
"code": "02388",
"name": "中银香港",
"shares": 1000,
"avail_shares": 1000,
"price": 46.22,
"cost_price": 43.7892,
"pl": 2053.39,
"pl_pct": 5.41,
"currency": "HKD",
"market_val": 39979.18,
"cost_amount": 37925.79,
"exchange_rate": 0.8661,
"change_pct": -1.66
},
{
"code": "300750",
"name": "宁德时代",
"shares": 100,
"avail_shares": 100,
"price": 391.09,
"cost_price": 401.7803,
"pl": -1063.03,
"pl_pct": -2.65,
"currency": "CNY",
"market_val": 39115.0,
"cost_amount": 40178.03,
"exchange_rate": 0.866,
"change_pct": -0.36
},
{
"code": "01211",
"name": "比亚迪股份",
"shares": 600,
"avail_shares": 600,
"price": 75.0,
"cost_price": 105.0542,
"pl": -15539.97,
"pl_pct": -28.47,
"currency": "HKD",
"market_val": 39052.45,
"cost_amount": 54592.42,
"exchange_rate": 0.8661
},
{
"code": "00700",
"name": "腾讯控股",
"shares": 100,
"avail_shares": 100,
"price": 420.0,
"cost_price": 443.9024,
"pl": -2035.55,
"pl_pct": -5.29,
"currency": "HKD",
"market_val": 36410.84,
"cost_amount": 38446.39,
"exchange_rate": 0.8661,
"change_pct": 1.25
},
{
"code": "00981",
"name": "中芯国际",
"shares": 500,
"avail_shares": 500,
"price": 83.15,
"cost_price": 76.0724,
"pl": 3151.55,
"pl_pct": 9.57,
"currency": "HKD",
"market_val": 36094.72,
"cost_amount": 32943.17,
"exchange_rate": 0.8661,
"change_pct": 6.81
},
{
"code": "09868",
"name": "小鹏集团-W",
"shares": 700,
"avail_shares": 700,
"price": 50.2,
"cost_price": 51.3644,
"pl": -675.62,
"pl_pct": -2.17,
"currency": "HKD",
"market_val": 30465.07,
"cost_amount": 31140.69,
"exchange_rate": 0.8661
},
{
"code": "600036",
"name": "招商银行",
"shares": 800,
"avail_shares": 800,
"price": 37.06,
"cost_price": 38.1582,
"pl": -846.53,
"pl_pct": -2.77,
"currency": "CNY",
"market_val": 29680.0,
"cost_amount": 30526.53,
"exchange_rate": 0.866,
"change_pct": -0.91
},
{
"code": "300548",
"name": "长芯博创",
"shares": 100,
"avail_shares": 100,
"price": 276.12,
"cost_price": 231.46,
"pl": 4766.0,
"pl_pct": 20.59,
"currency": "CNY",
"market_val": 27912.0,
"cost_amount": 23146.0,
"exchange_rate": 0.866,
"change_pct": -3.46
},
{
"code": "02318",
"name": "中国平安",
"shares": 500,
"avail_shares": 500,
"price": 52.7,
"cost_price": 54.8199,
"pl": -896.35,
"pl_pct": -3.78,
"currency": "HKD",
"market_val": 22843.39,
"cost_amount": 23739.74,
"exchange_rate": 0.8661,
"change_pct": -1.68
},
{
"code": "300035",
"name": "中科电气",
"shares": 1400,
"avail_shares": 1400,
"price": 16.02,
"cost_price": 22.2914,
"pl": -8765.91,
"pl_pct": -28.09,
"currency": "CNY",
"market_val": 22442.0,
"cost_amount": 31207.91,
"exchange_rate": 0.866
},
{
"code": "000700",
"name": "模塑科技",
"shares": 1400,
"avail_shares": 1400,
"price": 14.53,
"cost_price": 14.8336,
"pl": -327.0,
"pl_pct": -1.57,
"currency": "CNY",
"market_val": 20440.0,
"cost_amount": 20767.0,
"exchange_rate": 0.866,
"change_pct": -3.0
},
{
"code": "518880",
"name": "黄金ETF华安",
"shares": 2400,
"avail_shares": 2400,
"price": 8.43,
"cost_price": 12.1915,
"pl": -8982.04,
"pl_pct": -30.7,
"currency": "CNY",
"market_val": 20277.6,
"cost_amount": 29259.64,
"exchange_rate": 0.866,
"change_pct": -1.21
},
{
"code": "01088",
"name": "中国神华",
"shares": 500,
"avail_shares": 500,
"price": 41.92,
"cost_price": 45.974,
"pl": -1764.27,
"pl_pct": -8.86,
"currency": "HKD",
"market_val": 18144.8,
"cost_amount": 19909.06,
"exchange_rate": 0.8661
},
{
"code": "600563",
"name": "法拉电子",
"shares": 100,
"avail_shares": 100,
"price": 178.76,
"cost_price": 146.95,
"pl": 2762.0,
"pl_pct": 18.8,
"currency": "CNY",
"market_val": 17457.0,
"cost_amount": 14695.0,
"exchange_rate": 0.866
},
{
"code": "300690",
"name": "双一科技",
"shares": 400,
"avail_shares": 400,
"price": 22.7,
"cost_price": 27.178,
"pl": -1759.2,
"pl_pct": -16.18,
"currency": "CNY",
"market_val": 9112.0,
"cost_amount": 10871.2,
"exchange_rate": 0.866
}
],
"cash": 80476,
"total_market_value": 930199.93,
"total_pl": -164810.3,
"position_pct": 92.0,
"updated_at": "2026-06-24 11:47",
"source": "/home/hmo/stocks/holding.xls"
}