第76章 扩展品种(1/2)
凌晨三点,鹏城的夜色还未褪去。
林晨坐在电脑前,屏幕上同时开着三个窗口:左边是期货主力合约的K线图,中间是可转债的转股溢价率数据表,右边是Python编辑器里正在调试的策略代码。桌角放着一杯早已凉透的咖啡,旁边摊开几本打印出来的资料——《期货交易实务》《可转债投资全攻略》《量化多品种策略设计》。
他已经这样坐了五个小时。
一个月前,当股票策略实盘跑出8.52%的收益率时,林晨确实兴奋过。但那股兴奋劲儿只持续了两天,就被更深的思考取代了——如果只做股票,系统再厉害,也受制于A股T+1、涨跌停、交易时间等限制。更重要的是,单一品种意味着单一风险源。
“鸡蛋不能放在一个篮子里”。这句老话在量化领域有更专业的表述:资产配置是唯一免费的午餐。
苏婉凌晨起夜时,看到书房还亮着灯,轻轻推门进来:“还不睡”?“马上”。林晨揉了揉发酸的眼睛,“在弄新东西”。苏婉走到他身后,看着屏幕上那些复杂的图表:“这又是什么”?“期货”。林晨指着左边窗口,“你看这个,螺纹钢主力合约。期货和股票完全不一样——T+0交易,可以做多也可以做空,有杠杆,而且交易时间更长,夜盘能到凌晨一点”。“听起来风险很大”。苏婉皱眉。
“风险大,机会也大”。林晨切换到一个文档,“关键是要设计匹配的策略。股票我用的主要是均值回归和动量策略,但期货更适合趋势跟踪。你看这个——”
他调出一个简单的策略回测结果:基于20日和60日均线的双均线系统,在螺纹钢期货上过去三年年化收益率达到42%,最大回撤18%。
“但这个策略在股票上效果就很一般”。林晨又切换窗口,“每个品种有自己独特的‘性格’,就像不同的人要用不同的沟通方式。强行套用同一个策略,就像让程序员去跑销售,不是不行,但效率肯定低”。苏婉似懂非懂地点点头:“那这个呢?”她指着中间窗口的可转债数据。
“可转债更有意思”。林晨眼睛亮了起来,“它既有债性又有股性。当正股价格远低于转股价时,它更像债券,有保底;当正股大涨时,它又能跟着涨,而且没有涨跌停限制”。他打开一个自己整理的Excel表格:“我统计了过去三年所有可转债的数据,发现几个规律:第一,转股溢价率低于10%的可转债,其价格走势与正股相关性超过0.9;第二,剩余规模小于3亿的小盘债,更容易被游资炒作,波动率大;第三——”
“等等”。苏婉打断他,笑着摇头,“你这些专业名词,我一个语文老师听不懂。你就告诉我,研究这些有什么用”?林晨深吸一口气,组织了一下语言:“简单说,我想让我的投资系统‘进化’。现在它只会炒股票,就像一个人只会说中文。我要教它说英语、法语、日语,让它能在更多场合交流,赚更多种类的钱”。他顿了顿,语气变得认真:“而且不同品种之间有关联性。比如当股市大跌时,国债期货往往上涨,这叫‘避险情绪’。如果我的系统能同时交易股票和国债,就能对冲风险,让收益曲线更平滑”。苏婉沉默了几秒,伸手摸了摸他的肩膀:“你瘦了”。“有吗”?“这一个月,你每天只睡五六个小时。”苏婉的声音里带着心疼,“我知道你想尽快做出成绩,但身体要紧”。林晨握住她的手:“放心,我有数。其实研究这些新东西,我反而更兴奋。你知道吗?就像打游戏解锁新地图,每个新领域都有新的规则要学习,新的策略要设计,这种探索感……”
他停住了,意识到自己又陷入了技术宅的兴奋状态。
苏婉笑了:“行,你继续探索吧。不过答应我,天亮前必须睡一会儿”。“好”。苏婉离开后,林晨重新看向屏幕。他新建了一个Python文件,开始搭建多品种策略框架的核心类。
cssMultiAssetStrategy:
def__it__(self):
self.stock_strategy=MeanReversiy#股票均值回归策略
self.futures_strategy=TrendFolly#期货趋势跟踪策略
self.vertible_bond_strategy=CBArbitrageStrategy#可转债套利策略
self.asset_allocation=RiskParityAllocator#风险平价资产配置器
defrun_daily(self,arket_data):
#获取各品种信号
stock_signal=self.stock_strategy.gee_signal(arket_data[stocks])
futures_signal=self.futures_strategy.gee_signal(arket_data[futures])
cb_signal=self.vertible_bond_strategy.gee_signal(arket_data[vertible_bonds])
#风险平价分配资金
allocations=self.asset_allocation.allocate(
signals=[stock_signal,futures_signal,cb_signal],
votilities=self.calcute_votilities(arket_data)
)
returnallocations
代码写到一半,林晨停了下来。他意识到一个关键问题:不同品种的数据频率不一样。
股票是日线数据,每天四个小时交易时间;商品期货有日盘和夜盘,每天交易时间长达12小时;国债期货又是另一套交易时间。如果要实现真正的多品种协同,他需要统一的数据处理框架。
“得重构数据模块”。林晨喃喃自语。
他打开另一个项目文件,这是之前为股票策略搭建的数据管道。现在需要扩展它,支持多种频率数据的对齐、清洗和特征工程。
凌晨四点,窗外传来第一声鸟鸣。
林晨终于完成了数据框架的初步设计。他站起身,走到阳台透气。鹏城的清晨带着海风的湿润,远处深南大道上已经有早班公交车驶过。
手机震动了一下,是张伟发来的微信:“晨哥,昨天说的那个私募朋友,我约了这周末。他对你的AI量化系统很感兴趣,想聊聊”。林晨回复:“好,时间地点发我”。他忽然感到一阵压力。如果只是自己小资金玩玩,失败了也无所谓。但如果要对接外部资金,系统的稳健性、风控能力、多品种覆盖度,都必须达到专业水准。
“还不够”。林晨看着东方渐亮的天色,“现在的系统还太单薄”。回到电脑前,他新建了一个文档,标题是《智能投资系统2.0升级规划》。
第一阶段:数据层扩展
接入期货、可转债、ETF、期权数据源
构建统一的时间序列数据库,支持多频率数据
开发数据质量监控模块
本章未完,点击下一页继续阅读。