什么是可转债强赎陷阱?
发布时间:3小时前阅读:9
一、什么是可转债强赎陷阱?
根据可转债的发行条款,在转股期内,如果公司正股股票连续30个交易日中至少有15个交易日的收盘价不低于当前转股价格的130%(常见条款),就会触发“有条件赎回条款”。
- 强制贱卖风险:一旦上市公司正式发布公告宣布执行强制赎回,而投资者未能及时在二级市场卖出或在盘后申请转股,基金公司和券商最终只能被迫按照略高于100元面值(通常为101-103元含税利息)的极端低价,向投资者强制收回这些转债。
- 灾难性后果:如果此时该转债的二级市场市价正处于130元甚至150元的高位,量化代码由于缺乏风控未及时处理,在强赎日之后,账面持仓会瞬间被强制转化为101元的现金,导致无端承受高达30%以上的净值暴跌。
二、QMT系统中的强赎动态过滤代码白描执行步骤
为了彻底规避这一逻辑盲区,在QMT系统的Python多因子轮动策略中,必须在排序选股模块的中间,强制嵌入一道基于上市公司合规公告的过滤红线。标准执行路径如下:
- 调取转债静态属性与基本面信息: 在定期轮动的计算循环中,使用QMT的行情与信息地雷接口(如 get_stock_info 或查询专门的转债属性表),获取标的可转债的当前状态。
- 检索并匹配“强赎标志位”: 国内主流券商的QMT底层数据库中,通常会实时维护并更新转债的特殊状态标签。代码在遍历转债池时,可以通过条件判断显式剔除异常标的:Python# 伪代码白描逻辑陈述 for bond_code in all_bond_list: bond_status = Context.get_bond_status_attribute(bond_code) # 检查是否包含“已触发强赎”、“最后交易日”或“公告强赎”等合规标签 if bond_status.is_redeem == True or "强赎" in bond_status.notice_text: # 如果满足强赎风险特征,直接在股票池中将其移除,绝不参与后续双低打分排序 continue
3. 存量持仓的强制应急清理:
策略还需设立一道安全防御:在每日早盘9点15分策略启动时,自动扫描当前账户已有持仓。一旦发现持仓里的某只转债在昨夜突发发布了明确的强赎清算公告,代码必须凌驾于一切常规买卖逻辑之上,在开盘第一时间自动调用 `passorder` 发送清仓单将其全额卖出变现,彻底切断被动挨打的可能。
策略逻辑再严谨,也需要稳定高效的实盘环境来落地。当前,普通投资者获取专业交易通道的门槛已显著降低,以国金证券为例,10万资金门槛即可开通QMT/PTrade权限,帮助散户将这类涉及复杂信息地雷过滤的转债高阶风控策略完美上线实盘。为了避免个人投资者因不熟悉QMT底层数据字典、或因状态标签提取错误导致风控代码失效,平台专门配备了专业的量化社群答疑服务,由专职技术专家在线提供实操指导。同时,包括基础信用两融业务在内的全功能均支持便捷的全线上开通,为多维度的策略博弈提供合规、低门槛、多方位的一站式支撑。
----------
量化新手必学:如何在QMT中利用Python编写股票移动止损代码QMT移动止损
在证券市场进行自动化交易时,固定的百分比止损(例如买入后亏损满5%即割肉)虽然能够控制单笔最大损失,但在实际行情中往往存在局限性:如果股票买入后先顺理成章地上涨了20%,随后见顶回落,传统的固定止损代码只有在价格跌破原始买入价的-5%时才会触发,这会导致策略白白坐了一轮电梯,将已经到手的浮盈全部回吐。为了更科学地锁定理润并限制亏损,量化交易中普遍采用“移动止损(又称追踪止损、Trailing Stop)”机制。本文将客观白描如何在QMT系统中使用Python代码实现这一功能。
### 一、移动止损的核心数学执行逻辑
移动止损的本质是一个动态跟踪价格最高点的保护网。其标准逻辑可以拆解为三个步骤:
1. 动态最高价追踪:在个股买入成功后,代码开始实时盯着这只股票的后续价格走势,记录下自买入日之后的“盘中最高价(Highest Price)”。
2. 止损线下限动态上移:止损触发线不再是死板的买入价,而是以这个历史最高价为基准,向下浮动固定的比例(例如最高价的-4%)。随着股价的不断创出新高,这条止损线也会像影子一样自动跟着向上抬升。
3. 触发清仓信号:如果股价开始见顶回落,由于最高价不再更新,止损线也会在最高点锁死,不再向下移动。一旦盘中最新市价下跌并下载穿了这条动态止损线,代码立即判定策略触及高位回落保护,全自动发送平仓单变现。
### 二、QMT系统中的Python代码白描实现步骤
在QMT客户端的Python策略框架内,普通投资者可以通过引入全局字典来记录每只持仓股票的最高价,并在 `handle_data` 循环体内按如下逻辑执行:
1. 初始化持仓最高价存储器:
在 `init` 函数中,定义一个空字典:`Context.stock_highest_price_dict = {}`,用于动态记录。
2. 盘中高点实时扫描与止损判定:
在 `handle_data` 循环中,遍历当前账户的所有真实持仓个股:
```python
for stk_code in current_holdings:
last_price = Context.get_market_data_ex(stk_code, 'close')
# 如果是新买入的个股,尚未记录最高价,则以当前市价作为初始最高价
if stk_code not in Context.stock_highest_price_dict:
Context.stock_highest_price_dict[stk_code] = last_price
# 如果盘中股价创出新高,自动将字典里的最高价向上更新
if last_price > Context.stock_highest_price_dict[stk_code]:
Context.stock_highest_price_dict[stk_code] = last_price
# 根据历史最高价,动态计算出当前的移动止损红线价格
stop_loss_line = Context.stock_highest_price_dict[stk_code] * (1.0 - 0.04)
# 一旦盘中最新价跌破了这条动态保护线
if last_price <= stop_loss_line:
Context.log_info(f"{stk_code} 触及移动止损线,高位回落清仓!")
# 自动发送卖出限价单或市价单
Context.passorder(24, 1102, Context.account_id, stk_code, 11, last_price, 0, Context)
# 清理字典中的缓存记录
del Context.stock_highest_price_dict[stk_code]
通过这一段纯粹的数学控制,系统在股票一路上涨时会稳稳持股,直到趋势发生明确的高位反转回落时,全自动完成利润锁定,彻底斩断了人工手动看盘时因贪婪和犹豫导致的利润回吐。
策略逻辑再严谨,也需要稳定高效的实盘环境来落地。当前,普通投资者获取专业交易通道的门槛已显著降低,以国金证券为例,10万资金门槛
温馨提示:投资有风险,选择需谨慎。


问一问

+微信
分享该文章
