0
• 【可转债 Skill 关键算法与筛选逻辑】
1) 数据源与回退
- source=auto:
先尝试集思录;若“游客受限”或行数不足(<80)则转东财。
- 东财抓取:
datacenter + push2;push2 失败时不中断,保留
datacenter 结果继续。
- 今日策略(today_advice):
先跑实时;若实时失败或 universe_enriched.csv 行数<80,判为无效实时,自动使用回退快照。
回退时会提示“使用回退文件 + 文件更新时间”。
2) 东财未上市新债过滤(已加)
- 若 start_date(优先 PUBLIC_START_DATE, 否则
BOND_START_DATE) >= today
且 close == 100.0
则判为“未上市占位价”,直接剔除,不进入三线排名。
3) 三线评分(Tri-line)
- 安全分 safety_score:
评级映射(AAA=100, AA=90, A=80, BBB=70, BB=60,B=50...),AA+/AA- 做 ±3 调整。
低于 config.rating_floor 的评级,安全分直接记 0。
- 弹性分 elasticity_score:
stock_volatility 在全样本做 min-max 归一化到 0~100。
- 总分 total_score:
total_score = ws * safety_score + we *
elasticity_score
当前 balanced-soft: ws=0.58, we=0.42
4) 三线价格计算
- 按 total_score 落入收益率分段,取 line1/line2/
line3_yield:
score>=85: [0.00, 0.02, 0.04]
score>=70: [0.01, 0.03, 0.05]
score>=60: [0.02, 0.04, 0.06]
score>=0 : [0.03, 0.05, null]
- 价格线公式:
line_price = maturity_value / (1 + remaining_years *
annual_yield)
得到 build_line / add_line / heavy_line
5) 区间判定与目标仓位
- zone 判定:
close<=heavy_line -> HEAVY
close<=add_line -> ADD
close<=build_line -> BUILD
其他 -> NO_BUY
- 目标仓位(累计):
position_weights=[0.34,0.33,0.33]
BUILD=0.34, ADD=0.67, HEAVY=1.00, NO_BUY=0
- today_advice 输出默认再乘 target_scale=0.10
即单券上限 10%(BUILD 3.4%、ADD 6.7%、HEAVY 10%)
6) 观察池硬筛选(build_watchlist)
- close <= 220
- remaining_years >= 0.8
- rating >= rating_floor(today_advice 默认传 BBB)
- 默认排除 ST/*ST
- zone 在允许集合内(默认 NO_BUY,BUILD,ADD,HEAVY)
7) TopN 排序公式
- discount_to_build = (build_line - close) /
build_line,截断到 [-0.5, 0.5]
- zone_bonus: HEAVY=8, ADD=5, BUILD=3, NO_BUY=0
- rank_score = total_score + 40 * discount_to_build + zone_bonus
- 按 rank_score 降序取 TopN(默认 20)
8) 复式卖出(FUSHI)
- 触发价 trigger_price:
优先逐券字段;缺失用默认 130
- 进入触发区(close>=trigger)后:
维护 peak_price,计算回撤
drawdown_abs = peak - close
drawdown_pct = drawdown_abs / peak
- 卖出触发:
drawdown_abs>=10 或 drawdown_pct>=10%
-> SELL,卖出 sell_ratio=50%,按 round_lot=10 张取整
- 触发区跌破规则:
trigger_on_break_below_trigger=true 时,曾入触发区后跌破 trigger 也可触发一次 SELL
- 卖出后:
reset_peak_on_sell=true 时峰值重置到当前价
- 状态持久化:
peak 状态写入 fushi_state.json
9) 持仓口径(today_advice)
- 优先读取 current_position_ratio;
- 若无 ratio 但有 holding_qty 且给了
portfolio_capital,则按 qty*close/portfolio_capital 推 ratio;
- 否则 current_ratio 使用 default_current_ratio(默认
0)。
1) 数据源与回退
- source=auto:
先尝试集思录;若“游客受限”或行数不足(<80)则转东财。
- 东财抓取:
datacenter + push2;push2 失败时不中断,保留
datacenter 结果继续。
- 今日策略(today_advice):
先跑实时;若实时失败或 universe_enriched.csv 行数<80,判为无效实时,自动使用回退快照。
回退时会提示“使用回退文件 + 文件更新时间”。
2) 东财未上市新债过滤(已加)
- 若 start_date(优先 PUBLIC_START_DATE, 否则
BOND_START_DATE) >= today
且 close == 100.0
则判为“未上市占位价”,直接剔除,不进入三线排名。
3) 三线评分(Tri-line)
- 安全分 safety_score:
评级映射(AAA=100, AA=90, A=80, BBB=70, BB=60,B=50...),AA+/AA- 做 ±3 调整。
低于 config.rating_floor 的评级,安全分直接记 0。
- 弹性分 elasticity_score:
stock_volatility 在全样本做 min-max 归一化到 0~100。
- 总分 total_score:
total_score = ws * safety_score + we *
elasticity_score
当前 balanced-soft: ws=0.58, we=0.42
4) 三线价格计算
- 按 total_score 落入收益率分段,取 line1/line2/
line3_yield:
score>=85: [0.00, 0.02, 0.04]
score>=70: [0.01, 0.03, 0.05]
score>=60: [0.02, 0.04, 0.06]
score>=0 : [0.03, 0.05, null]
- 价格线公式:
line_price = maturity_value / (1 + remaining_years *
annual_yield)
得到 build_line / add_line / heavy_line
5) 区间判定与目标仓位
- zone 判定:
close<=heavy_line -> HEAVY
close<=add_line -> ADD
close<=build_line -> BUILD
其他 -> NO_BUY
- 目标仓位(累计):
position_weights=[0.34,0.33,0.33]
BUILD=0.34, ADD=0.67, HEAVY=1.00, NO_BUY=0
- today_advice 输出默认再乘 target_scale=0.10
即单券上限 10%(BUILD 3.4%、ADD 6.7%、HEAVY 10%)
6) 观察池硬筛选(build_watchlist)
- close <= 220
- remaining_years >= 0.8
- rating >= rating_floor(today_advice 默认传 BBB)
- 默认排除 ST/*ST
- zone 在允许集合内(默认 NO_BUY,BUILD,ADD,HEAVY)
7) TopN 排序公式
- discount_to_build = (build_line - close) /
build_line,截断到 [-0.5, 0.5]
- zone_bonus: HEAVY=8, ADD=5, BUILD=3, NO_BUY=0
- rank_score = total_score + 40 * discount_to_build + zone_bonus
- 按 rank_score 降序取 TopN(默认 20)
8) 复式卖出(FUSHI)
- 触发价 trigger_price:
优先逐券字段;缺失用默认 130
- 进入触发区(close>=trigger)后:
维护 peak_price,计算回撤
drawdown_abs = peak - close
drawdown_pct = drawdown_abs / peak
- 卖出触发:
drawdown_abs>=10 或 drawdown_pct>=10%
-> SELL,卖出 sell_ratio=50%,按 round_lot=10 张取整
- 触发区跌破规则:
trigger_on_break_below_trigger=true 时,曾入触发区后跌破 trigger 也可触发一次 SELL
- 卖出后:
reset_peak_on_sell=true 时峰值重置到当前价
- 状态持久化:
peak 状态写入 fushi_state.json
9) 持仓口径(today_advice)
- 优先读取 current_position_ratio;
- 若无 ratio 但有 holding_qty 且给了
portfolio_capital,则按 qty*close/portfolio_capital 推 ratio;
- 否则 current_ratio 使用 default_current_ratio(默认
0)。
2
赞同来自: brendachen 、退休老李
最近焦炭确实在涨价,但这属于“成本推动型涨价”,并没有改变行业基本面疲软的局面。这也是为什么你手里的美锦能源(美锦转债正股)在焦炭涨价背景下,股价依然低迷的核心原因。
* 焦炭确实在涨,但逻辑变了
截至5月底,焦炭已经完成了四轮提涨,累计涨幅约200元/吨,第五轮提涨也在酝酿中。但这波涨价主要由两个外部因素驱动,而非需求爆发:
成本倒逼:山西煤矿安全事故导致焦煤(原料)供应紧张、价格暴涨,焦化厂为了不亏本,被迫向钢厂提涨。
被动补库:钢厂铁水产量维持高位,需要补充焦炭库存,暂时接受了涨价。
* 为什么美锦能源还在跌?
结合你之前问的美锦转债,正股表现差是因为“增收不增利”甚至“越卖越亏”:
剪刀差效应:焦炭涨价的速度跑不赢焦煤涨价的速度。美锦能源的煤炭自给率不高(约30%),大部分原料需要外购,成本端压力巨大,利润空间反而被压缩。
历史包袱重:公司2025年巨亏,2026年一季度仍在亏损,且负债率高、折旧巨大。市场担心的是其偿债能力(特别是转债兑付压力),而不是短期的焦炭价格波动。
⚠️ 警惕“涨价陷阱”
目前的焦炭涨价是脆弱的:
下游抵触:钢材市场处于淡季,价格疲软,钢厂利润薄,对焦炭继续涨价非常抵触,后续提涨落地难度会加大。
缺乏支撑:如果后续焦煤供应恢复或钢厂减产,焦炭价格会迅速回落。
结论:焦炭涨价是事实,但对于美锦能源这类高成本、高负债的企业,这波涨价更像是“回光返照”而非“业绩反转”。这也是市场给予低估值(转债破百、股价低位)的根本逻辑。
元宝分析的结果,目前溢价率比125元时期的转债溢价率都低
* 焦炭确实在涨,但逻辑变了
截至5月底,焦炭已经完成了四轮提涨,累计涨幅约200元/吨,第五轮提涨也在酝酿中。但这波涨价主要由两个外部因素驱动,而非需求爆发:
成本倒逼:山西煤矿安全事故导致焦煤(原料)供应紧张、价格暴涨,焦化厂为了不亏本,被迫向钢厂提涨。
被动补库:钢厂铁水产量维持高位,需要补充焦炭库存,暂时接受了涨价。
* 为什么美锦能源还在跌?
结合你之前问的美锦转债,正股表现差是因为“增收不增利”甚至“越卖越亏”:
剪刀差效应:焦炭涨价的速度跑不赢焦煤涨价的速度。美锦能源的煤炭自给率不高(约30%),大部分原料需要外购,成本端压力巨大,利润空间反而被压缩。
历史包袱重:公司2025年巨亏,2026年一季度仍在亏损,且负债率高、折旧巨大。市场担心的是其偿债能力(特别是转债兑付压力),而不是短期的焦炭价格波动。
⚠️ 警惕“涨价陷阱”
目前的焦炭涨价是脆弱的:
下游抵触:钢材市场处于淡季,价格疲软,钢厂利润薄,对焦炭继续涨价非常抵触,后续提涨落地难度会加大。
缺乏支撑:如果后续焦煤供应恢复或钢厂减产,焦炭价格会迅速回落。
结论:焦炭涨价是事实,但对于美锦能源这类高成本、高负债的企业,这波涨价更像是“回光返照”而非“业绩反转”。这也是市场给予低估值(转债破百、股价低位)的根本逻辑。
元宝分析的结果,目前溢价率比125元时期的转债溢价率都低
Edge
Chrome
Firefox


京公网安备 11010802031449号