凌晨三点,鹏城的夜色还未褪去。
林晨坐在电脑前,屏幕上同时开着三个窗口:左边是期货主力合约的K线图,中间是可转债的转股溢价率数据表,右边是python编辑器里正在调试的策略代码。桌角放着一杯早已凉透的咖啡,旁边摊开几本打印出来的资料——《期货交易实务》《可转债投资全攻略》《量化多品种策略设计》。
他已经这样坐了五个小时。
一个月前,当股票策略实盘跑出8.52%的收益率时,林晨确实兴奋过。但那股兴奋劲儿只持续了两天,就被更深的思考取代了——如果只做股票,系统再厉害,也受制于A股t+1、涨跌停、交易时间等限制。更重要的是,单一品种意味着单一风险源。
“鸡蛋不能放在一个篮子里”。这句老话在量化领域有更专业的表述:资产配置是唯一免费的午餐。
苏婉凌晨起夜时,看到书房还亮着灯,轻轻推门进来:“还不睡”? “马上”。林晨揉了揉发酸的眼睛,“在弄新东西”。 苏婉走到他身后,看着屏幕上那些复杂的图表:“这又是什么”? “期货”。林晨指着左边窗口,“你看这个,螺纹钢主力合约。期货和股票完全不一样——t+0交易,可以做多也可以做空,有杠杆,而且交易时间更长,夜盘能到凌晨一点”。 “听起来风险很大”。苏婉皱眉。
“风险大,机会也大”。林晨切换到一个文档,“关键是要设计匹配的策略。股票我用的主要是均值回归和动量策略,但期货更适合趋势跟踪。你看这个——”
他调出一个简单的策略回测结果:基于20日和60日均线的双均线系统,在螺纹钢期货上过去三年年化收益率达到42%,最大回撤18%。
“但这个策略在股票上效果就很一般”。林晨又切换窗口,“每个品种有自己独特的‘性格’,就像不同的人要用不同的沟通方式。强行套用同一个策略,就像让程序员去跑销售,不是不行,但效率肯定低”。 苏婉似懂非懂地点点头:“那这个呢?”她指着中间窗口的可转债数据。
“可转债更有意思”。林晨眼睛亮了起来,“它既有债性又有股性。当正股价格远低于转股价时,它更像债券,有保底;当正股大涨时,它又能跟着涨,而且没有涨跌停限制”。 他打开一个自己整理的Excel表格:“我统计了过去三年所有可转债的数据,发现几个规律:第一,转股溢价率低于10%的可转债,其价格走势与正股相关性超过0.9;第二,剩余规模小于3亿的小盘债,更容易被游资炒作,波动率大;第三——”
“等等”。苏婉打断他,笑着摇头,“你这些专业名词,我一个语文老师听不懂。你就告诉我,研究这些有什么用”? 林晨深吸一口气,组织了一下语言:“简单说,我想让我的投资系统‘进化’。现在它只会炒股票,就像一个人只会说中文。我要教它说英语、法语、日语,让它能在更多场合交流,赚更多种类的钱”。 他顿了顿,语气变得认真:“而且不同品种之间有关联性。比如当股市大跌时,国债期货往往上涨,这叫‘避险情绪’。如果我的系统能同时交易股票和国债,就能对冲风险,让收益曲线更平滑”。 苏婉沉默了几秒,伸手摸了摸他的肩膀:“你瘦了”。 “有吗”? “这一个月,你每天只睡五六个小时。”苏婉的声音里带着心疼,“我知道你想尽快做出成绩,但身体要紧”。 林晨握住她的手:“放心,我有数。其实研究这些新东西,我反而更兴奋。你知道吗?就像打游戏解锁新地图,每个新领域都有新的规则要学习,新的策略要设计,这种探索感……”
他停住了,意识到自己又陷入了技术宅的兴奋状态。
苏婉笑了:“行,你继续探索吧。不过答应我,天亮前必须睡一会儿”。 “好”。 苏婉离开后,林晨重新看向屏幕。他新建了一个python文件,开始搭建多品种策略框架的核心类。
class multiAssetStrategy:
def __init__(self):
self.stock_strategy = meanReversionStrategy # 股票均值回归策略
self.futures_strategy = trendFollowingStrategy # 期货趋势跟踪策略
self.convertible_bond_strategy = cbArbitrageStrategy # 可转债套利策略
self.asset_allocation = RiskparityAllocator # 风险平价资产配置器
def run_daily(self, market_data):
# 获取各品种信号
stock_signal = self.stock_strategy.generate_signal(market_data[stocks])
futures_signal = self.futures_strategy.generate_signal(market_data[futures])
cb_signal = self.convertible_bond_strategy.generate_signal(market_data[convertible_bonds])
# 风险平价分配资金
allocations = self.asset_allocation.allocate(
signals=[stock_signal, futures_signal, cb_signal],
volatilities=self.calculate_volatilities(market_data)
)
return allocations
代码写到一半,林晨停了下来。他意识到一个关键问题:不同品种的数据频率不一样。
股票是日线数据,每天四个小时交易时间;商品期货有日盘和夜盘,每天交易时间长达12小时;国债期货又是另一套交易时间。如果要实现真正的多品种协同,他需要统一的数据处理框架。
“得重构数据模块”。林晨喃喃自语。
他打开另一个项目文件,这是之前为股票策略搭建的数据管道。现在需要扩展它,支持多种频率数据的对齐、清洗和特征工程。
凌晨四点,窗外传来第一声鸟鸣。
林晨终于完成了数据框架的初步设计。他站起身,走到阳台透气。鹏城的清晨带着海风的湿润,远处深南大道上已经有早班公交车驶过。
手机震动了一下,是张伟发来的微信:“晨哥,昨天说的那个私募朋友,我约了这周末。他对你的AI量化系统很感兴趣,想聊聊”。 林晨回复:“好,时间地点发我”。 他忽然感到一阵压力。如果只是自己小资金玩玩,失败了也无所谓。但如果要对接外部资金,系统的稳健性、风控能力、多品种覆盖度,都必须达到专业水准。
“还不够”。林晨看着东方渐亮的天色,“现在的系统还太单薄”。 回到电脑前,他新建了一个文档,标题是《智能投资系统2.0升级规划》。
第一阶段:数据层扩展
接入期货、可转债、EtF、期权数据源
构建统一的时间序列数据库,支持多频率数据
开发数据质量监控模块
第二阶段:策略层丰富
针对期货设计趋势跟踪策略簇
针对可转债设计股债轮动+套利策略
开发跨品种套利策略(如期现套利)
第三阶段:风控体系升级
引入VaR(风险价值)模型
开发实时风险监控仪表盘
建立策略熔断机制
第四阶段:资金管理优化
实现动态资产配置
开发基于机器学习的仓位控制模型
构建回撤控制模块
写完规划,天已经大亮。林晨看了眼时间,早上六点半。他本该去睡一会儿,但大脑异常清醒。
他点开期货模拟交易软件,入金10万虚拟资金,准备先用模拟盘测试几个期货策略。
第一个测试的是最简单的海龟交易策略——突破20日高点做多,跌破10日低点平仓。林晨选择了流动性较好的螺纹钢主力合约,设置好参数,让策略自动运行。
然后他切换到可转债领域。这里他设计了一个双因子策略:因子一是转股溢价率,越低越好;因子二是正股动量,选择近期涨幅排名前30%的正股对应的可转债。每只债买入仓位不超过总资金的5%。
“先跑一周模拟盘看看”。林晨设置好自动交易,终于感到困意袭来。
就在他准备关电脑时,手机弹出一条财经新闻推送:“美联储议息会议在即,大宗商品市场波动加剧……”
林晨的手指停在关机键上。
他重新坐回椅子,打开全球宏观数据网站。美元指数、美债收益率、原油价格、黄金走势……这些看似遥远的指标,其实都通过复杂的传导机制,影响着A股、商品期货甚至可转债市场。
“还得加一个宏观因子模块”。林晨苦笑着在升级规划里又添了一条。
这时,书房门被轻轻推开。五岁的乐乐揉着眼睛站在门口:“爸爸,你又是一晚上没睡吗”? 林晨赶紧起身抱起儿子:“爸爸在学新知识。走,我们去吃早餐”。 “妈妈做了你最喜欢的肠粉。”乐乐搂着他的脖子,“爸爸,你最近总是在电脑前,是不是很辛苦”? “不辛苦”。林晨亲了亲儿子的额头,“爸爸在建造一个很厉害的东西,等建好了,就能更好地保护你和妈妈”。 “像奥特曼那样吗”? “比奥特曼还厉害。”林晨笑着说,“奥特曼只能打怪兽,爸爸建的东西,能对抗更可怕的东西——风险”。 乐乐似懂非懂地点头。林晨抱着儿子走向餐厅,心里却还在想着那个多品种系统。
餐桌上,苏婉已经摆好了早餐:肠粉、皮蛋瘦肉粥、还有她特意学的潮汕菜脯蛋。林晨看着妻子忙碌的背影,忽然开口:“婉婉,如果……我是说如果,我想把家里剩下的存款也投进系统里,你会同意吗”? 苏婉盛粥的手顿了顿:“现在不是有7万在跑吗”? “7万太少了。”林晨认真地说,“多品种策略需要足够的资金才能分散风险。而且如果策略有效,资金规模越大,绝对收益才越有意义”。 “需要多少”? “再追加13万。”林晨说,“这样总资金20万,我可以分配:10万做股票,5万做期货,5万做可转债。每个品种内部还能进一步分散”。 苏婉沉默地坐下,把粥碗推到他面前:“你知道家里现在还剩多少存款吗”? “23万左右”? “23万6。”苏婉精确地说,“房贷每个月1万2,乐乐幼儿园费用、生活费、物业水电……就算我们省着花,一个月也要2万出头。这23万6,只够我们撑一年”。 她看着林晨的眼睛:“如果这15万亏了呢”? “我有信心——”
“我知道你有信心”。苏婉打断他,“但信心不能当饭吃。林晨,我们不是二十多岁的小年轻了,我们有孩子,有房贷,输不起”。 餐厅里安静下来,只有粥碗里升起的热气。
乐乐看看爸爸,又看看妈妈,小声说:“爸爸妈妈不要吵架”。 “没吵架”。林晨摸摸儿子的头,然后看向苏婉,“你说得对,是我太急了”。 他低头喝了一口粥,热流顺着食道温暖了全身:“这样吧,我先用模拟盘把多品种策略跑成熟,至少要有三个月稳定盈利的模拟记录。同时,我继续优化股票策略,用现有的7万实盘资金慢慢积累。等模拟盘和实盘数据都足够说服力了,我们再考虑追加资金”。 苏婉的脸色缓和下来:“这样稳妥”。 “还有,”林晨补充道,“周末张伟介绍的那个私募朋友,我去见见。如果能拿到外部资金,哪怕只是小规模的委托,也能验证系统的商业价值”。 “你打算做职业量化交易员”? “不一定”。林晨想了想,“但多一条路总是好的。而且……”他顿了顿,“如果我的系统真的能稳定盈利,也许未来我不需要再去公司上班,靠这个就能养活全家”。 苏婉看着他眼里的光,终于笑了:“那就去做吧。不过记住,身体是第一位的”。 “遵命,领导”。 早餐后,林晨把乐乐送到幼儿园,回来时没有立刻回到电脑前。他站在阳台上,看着楼下渐渐热闹起来的街道。
送孩子上学的家长,赶早班的上班族,开店的商户……每个人都在自己的轨道上奔波。而他的轨道,正从一条狭窄的技术栈,扩展成一个复杂的多维系统。
股票、期货、可转债、宏观因子、资产配置、风险控制……这些模块需要有机整合,而不是简单堆砌。
“就像乐团指挥”。林晨忽然想到这个比喻,“每个乐器手(策略)都要精通自己的部分,但指挥(系统框架)要协调他们,让整个乐团奏出和谐的乐曲”。 他回到书房,在升级规划的最上方加了一行字:
核心原则:不是追求单个策略的最高收益,而是追求整个系统在不同市场环境下的稳健性。
写完这句话,林晨感到思路清晰了许多。他打开期货模拟账户,发现早上测试的海龟策略已经自动成交了一单——螺纹钢在突破20日高点后,系统做多了1手。
几乎同时,可转债策略也发出了信号:筛选出三只低溢价率+正股动量的标的,各买入5%仓位。
林晨看着屏幕上跳动的持仓和浮动盈亏,忽然有种奇妙的感觉——这个系统正在慢慢“活”过来。它不再只是被动执行他的指令,而是开始主动观察市场,识别模式,做出决策。
“还差得远呢”。他对自己说。
真正的挑战才刚刚开始。多品种意味着更复杂的数据处理、更精细的风控、更智能的资金调度。而最大的挑战在于——如何让这些不同“性格”的策略和谐共处,而不是互相冲突。
林晨深吸一口气,新建了一个python文件。
这一次,他要写的不是某个具体策略,而是整个系统的“大脑”:一个基于强化学习的策略调度器。它会学习在不同市场环境下,应该给每个子策略分配多少权重,何时该增仓何时该减仓,甚至何时该暂时关闭某个策略。
代码的第一行,他郑重地写下:
# 智能投资系统核心调度器
# 目标:实现多策略、多品种的协同作战
# 原则:稳健优于激进,风控先于收益
窗外,鹏城的天空彻底亮了。