社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

半鞅的『机器学习』世界

量化投资与机器学习 • 1 周前 • 24 次点击  


量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、金融科技、人工智能、大数据领域的主流自媒体公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业40W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。



量化投资与机器学习公众号独家出品


何为半鞅?
一个定义在带域流的概率空间的实值随机过程 被称为半鞅。
用更加通俗易懂的话来说就是:金融定价理论中的布朗运动和莱维过程都是半鞅,半鞅是最大的无套利随机过程,超过半鞅以外将存在套利的空间。
很多量化私募会以数理概念或定义来命名自己,半鞅私募基金(以下简称“半鞅”)就是其中之一。半鞅希望通过量化技术获得市场中的套利机会,推动金融市场不断逼进半鞅。
早在2017年,半鞅就开始探索机器学习在金融领域的应用,成为国内最早一批将这一前沿技术引入量化投资的团队之一。
半鞅在创立之初,其主要集中于技术积累与研究工作,因此并未立即注册备案,而是花费了近两年的时间构建独特的底层技术架构和投资逻辑框架,这种与传统机构完全不同的路径使得半鞅能够专注于技术的创新。加上多策略分散化的策略理念,使得半鞅在过去几年中,即使在市场波动较大的情况下,也依然保持了平稳的业绩表现。
近日,量化投资与机器学习公众号(QIML)采访了半鞅的投资总监王芹女士,我们将通过Quant的视角,为大家解读不一样的半鞅。

机器学习在量化投资中的应用

对于这个问题,QIML创立至今,就采访过很管理人,而大家的回答也各不相同。现如今,随着软硬件的提升和大模型的涌现,当我们再次问起这个问题时,想必大家会有和10年前不同的答案,半鞅亦是如此。
▌在股票和期货策略研究中,机器学习的使用有哪些不同?
在这两者的研究中,最大的区别主要在于数据源 的不同。
股票的数据比较丰富,例如包括快照、逐笔委托和逐笔成交等。而期货的数据主要来源于交易所提供的500毫秒级切片数据。正因如此,当构建模型时,我们够捕捉到的数据量与信息是完全不同的。
说到这里,我们提出了一个疑问——但对于传统的量价数据,如果大家都基于此做因子挖掘,势必会出现一些同质化或者失效、拥挤的情况,对于这一点,王芹总给出了不一样的回答:
目前半鞅的股票端完全拥抱量价数据,没有使用任何其他类型的数据。
例如你在因子加工端,假设我们与另外一家管理人的因子集或者特征集90%是重叠的,那么,无论后端我们怎么去设计模型,其实都很难学出不一样的东西。原因在于这样的因子本身就自带了很强的信息量,它会引导模型去往该方向收敛,所以大家训练出来的结果与别人训练出来的结果差异性就会特别小。
早在4-5年前,半鞅就发现这个问题,也正因如此,便着手开始构建构属于半鞅的端到端策略模型框架。
其中的一个动作就是把前面的因子端完全拿掉,半鞅希望喂到模型里的数据是一些简单原始的线性变换,这也是为什么目前半鞅并没有大规模使用其他类型的数据。正因如此,在同一时期如果大家去比较不同管理人的业绩曲线,你就会发现半鞅的不同。
机器学习如何改进传统因子模型的不足?有哪些具体的实战案例?
传统因子模型通常假设因子与收益之间存在线性关系,但市场中许多非线性关系无法被捕捉,限制了模型的表现。机器学习通过强大的非线性建模能力,可以有效挖掘复杂的因子关系。同时,传统因子模型依赖人工筛选因子,效率低且容易受到主观偏见的影响,而机器学习能够自动处理大规模因子库,快速筛选出重要因子,显著提升效率。此外,传统因子模型基于静态逻辑框架,难以适应快速变化的市场环境。相比之下,机器学习模型能够动态调整权重和结构,更及时地响应市场变化,从而优化因子的组合效果,提升投资策略的整体表现。
王芹总给出了一个她当年的心得体会:
在2017年,她自己建立的因子库已积累超过1000个因子,当他们对这1000+个因子通过机器学习后发现,仅需简单叠加两层神经网络,就可以捕捉到这些因子的核心信息,这让他们深受鼓舞与启发。

如何看待端到端的机器学习策略?比如原始数据直接到股票权重,还是会结合传统的金融投资理论?

端到端的机器学习策略,即直接从原始数据生成股票权重,是量化投资领域中备受关注的一种方法。这种策略通过减少人为干预和模型流程中的中间步骤,展现了高效和简洁的潜力。然而,在实际应用中,端到端策略尚未完全取代结合传统金融投资理论的模型,原因在于它既有显著的优势,也面临现实中的挑战。

半鞅目前并没有把所有的策略都通过端到端生成股票权重,原因有两点:
1、如果直接生成到股票权重,那么样本的多样性就会有很大的牺牲。例如你只需300只股票,最终我们得到的就只有300只股票的权重,这也就意味着剩下5000多只股票的多样性就会被埋没,这对于模型的泛化能力是一个很大的损失。
2、目前整个量化产品线是非常多元化的,这就要求其风控也是要多元化的。在应对不同的风控要求或推出新产品时,端到端模型通常需要重新进行大规模训练,这增加了很多开发和应用的成本。
因此,在实际应用中,端到端策略通常会与传统金融理论相结合使用。模型通过生成交易信号,交由优化器结合传统的投资约束(如风险分散和行业分布)处理,从而生成最终的股票权重。这种“技术与理论结合”的方式既发挥了端到端模型的数据处理能力,也保留了传统理论的指导价值。

▌如何平衡因子的可解释性及因子多样性?

对于这个问题,也是业内十分关注的一个话题。
在半鞅看来,他们并没有过多关注因子的可解释性,因为半鞅所做的机器学习模型与传统的多因子框架是两个完全不同的概念。前文也提到过,半鞅喂给机器学习模型的数据都是原始数据的简单变换,半鞅在乎的是数据量纲的匹配与时序的平稳性。
反过来说,如果从样本多样性的角度来看,经历大的波动行情其实对机器学习模型是有益的,因为我们可以让模型看到更多样的数据,以后再遇到类似数据时会更加从容。同时,我们只要保证数据来源和变化方式的多样性,模型会自行判断数据的价值,而无需过多地从可解释性的角度去考虑问题。
最后在模型上线之前,半鞅也会在内部对模型的可解释性进行拆解,但这种拆解也有别于 多因子框架,他们的目的很简单,就是清楚模型在什么市场环境下适应,在什么情况下可能面临压力。
如果我们一直用多因子框架的角度来思考这个问题,有时会难以接受。因为从本质来说,机器学习模型和多因子框架是完全不同的两条赛道,技术壁垒也是不同的。

实盘过程中,如何应对市场风格切换导致的失效风险?

半鞅回答的核心主要是以下几点:
1、多策略的优势;
2、异常情况下的模型定制化;
3、坚定提升日内收益率占比,降低对风格切换的依赖和影响。
对于第三点,半鞅认为极其重要,因为你的收益不是因为你偏离在某一种风格上面赚到的!

对于短周期日内策略,如何平衡换手率与交易成本?

对于每一笔交易,只要你的预期收益大于预期成本,交易便具备执行价值
因此,半鞅的策略优先提升模型对市场变化的预测能力,确保每笔交易都有足够的利润空间。尽管单笔交易可能收益有限,但通过高频次的交易累积,使得策略能够实现整体的高收益。
此外,半鞅也注重交易成本的精细化管理,例如通过优化执行算法降低滑点等方式,从而进一步提升策略的盈利能力。这种以预测精度为核心,辅以成本优化的方式,确保了短周期日内策略在高换手率的情况下依然能够保持稳健的盈利表现。

如何看待机器学习在量化投资中应用的天花板?

对于技术的迭代,还有很长的路要走,未来还是一片蓝海!
这是半鞅给出的答案。
原因是目前的应用主要集中在深度学习和基本的模型优化,而更前沿的技术如强化学习和生成式模型在量化领域的普及度仍然较低。
在半鞅看来,AI只是一个工具,一个用来赚钱的工具。关键是不要陷入另一种固定思维,反而被局限,而是要真正做到“为我所用”。在这个市场中,最终的竞争可能还是对投资的深刻认知。

技术架构与差异化优势

除了机器学习,QIML还对大家关心的技术、风控与投研进行了采访,让我们看看半鞅是如何回答的。
QIML了解到半鞅专门为量化投资场景打造了一个大数据平台。为此,QIML好奇的点在于,自主研发的大数据平台与其他市场通用的方案相比,性能提升的关键点在哪里?
王芹谈到,在半鞅在初期,他们就测试了市面上几乎所有的开源数据库平台,但金融数据是一种有状态的流数据,从交易所到平台,其历史数据是不会被更改的。也因此通用数据库的功能对于其半鞅来说是不实用的。
根据半鞅的实践经验,如果是做日频的交易策略,实际上开源的工具就足够了。虽然可能会带来一些复杂性,带来一些时间损耗,但这对于日频策略的损耗其实是有限的。
但如果做更加快速的预测,例如分钟级别或者毫秒级别等,此时的开源工具就会给模型带来很大的损耗,而其自研的大数据平台就展现了其特殊的价值。
其次是因为与股票相关的很多模型与通用数据库有一个很大的差别——许多股票模型是基于截面的,而通用数据库则是基于时序的。这样就会导致一个很大的问题,当我们在建模的时候会消耗很多时间成本。如何把一个时序数据流合理的利用到截面模型中去,这就是半鞅研发该大数据平台的诉求与意义。

对于风控而言,大家比较关心的是如何避免极端行情中的风险敞口?

半鞅的回答是:风控系统是通过分级预警机制,根据风险事件的严重性对公司相关人员进行实时通知。
如从轻微的交易波动到可能影响资金安全的重大异常,系统分别推送给不同的管理层级,确保问题能够被迅速识别并处理。这种多层次的监控体系和快速响应机制,能有效避免了极端行情中可能造成的重大风险敞口。
同时,半鞅的风控系统在“多层次交叉验证”和“分级预警机制”上有着创新的应用。例如在交易实时监控中,系统引入了IT部门和交易部门的双重交叉监控机制——IT部门基于内部监控系统捕获公司交易流数据,而交易团队使用独立的第三方交易平台数据进行核对。

在之前的文章中,QIML曾专门对当前量化机构的两种模式——投资经理模式和流水线模型进行了深入的解读。

其讨论的结论是:在机器学习时代,流水线模式的量化研究更适合Quant的职业发展。像科研一样做量化策略的研究,才是最符合这个时代量化投资机构的发展路径。
那么,与传统量化公司相比,流水线模式下的投研流程具体解决了哪些行业痛点?
半鞅的流水线投研流程解决了量化投资中的重复性劳动和资源分配低效的问题。在传统的PM制度中,不同投资经理独立负责策略的全流程开发,这种模式导致了重复造轮子和技术资源浪费。半鞅通过流水线式的分工合作,将数据处理、模型训练、信号生成等环节模块化,由专门的团队负责核心组件开发和优化。
同时,这种模式也极大地提高了投研效率。例如,数据组专注于构建高质量的数据平台,而模型组优化机器学习算法,信号团队负责策略的最终部署。通过分工协作,投研团队不仅能够专注于自己的专业领域,还能通过共享模块减少开发时间,从而显著提升策略的整体质量和迭代速度。

还有一个大家关心的问题——Alpha策略的灰度上线机制

对于这个问题,半鞅给出了最好的答案:
只有迭代才能够抵抗!
半鞅策略迭代的速度,远远超越了其模型失效的速度。
目前半鞅通过分阶段部署新策略来控制风险。在新策略上线初期,仅将其应用于小部分资金或账户,以测试策略在真实市场环境下的表现。这种逐步扩大应用范围的方法,确保策略性能在低风险条件下得到验证。同时,通过实时监控新策略的收益、风险和稳定性,团队能够迅速识别失效信号,并及时调整或替换策略。对老策略的逐步下线与新策略的快速迭代相结合,使得整体策略体系能够保持高效的更新速度,从而抵御单一策略衰减带来的影响。

一家量化私募的成功与否,人才是最关键的要素,没有之一!

这是QIML对行业调研后得出的一个结论。
一个最直接的答案就是策略是量化私募的核心竞争力,而策略的创新与优化离不开高水平的人才。纵观国内外的量化基金,大家在用各种各样的方式吸引全球的顶尖人才,如提供有竞争力的薪酬待遇、打造一流的工作环境和文化、给予广阔的职业发展平台和晋升空间等。
可能有的人会说,规模也很重要,因为大规模的私募往往更容易受到市场的关注和认可,树立起较强的品牌形象。这不仅有助于吸引更多的投资者,还能够吸引优秀的人才加入,形成良性循环。
但在QIML看来,在规模和人才的权衡中,注重质量才是关键。
对于这个问题,半鞅的回答也很真诚:
“薪酬给够、心不委屈”
半鞅介绍到,在薪酬、年终奖和分红激励等方面,他们远高于行业平均水平。此外,半鞅也十分注重员工的职业发展,通过明确的晋升路径和对贡献的认可,帮助团队成员看到自身成长的方向。
此外,半鞅特别强调了他们的价值观——“平等、坦诚、信任、创新”
“平等”体现在公司扁平化的管理结构中,团队成员无论资历如何都能畅所欲言,充分表达自己的观点。“坦诚”则通过日常的团队交流和反馈机制得以体现,团队成员之间鼓励公开讨论,面对问题直言不讳,从而促进策略的优化和进步。
“信任”是半鞅文化的核心,公司给予每位员工高度的自主性,在分配任务时允许他们根据兴趣和专长选择项目,从而激发创造力。而“创新”则是投研的驱动力,公司鼓励团队成员探索新的方法和工具,通过持续迭代和技术突破,保持在行业中的领先地位。
这些核心价值观的贯彻,为半鞅投研团队营造了一个开放、高效、充满活力的工作环境,使得团队成员不仅能充分发挥自身潜力,也能在合作中取得卓越的成果。
如果在屏幕前阅读此文的你正在寻求一份这样的工作,可以尝试投递简历哦~

10年后的自己

访谈的最后,QIML希望半鞅给10年后的自己写一段话:

10年之后,希望我们回头一看,我们这群有意思的人真的做成了一件有意思的事情!

10年的时间足以见证无数的变革与创新,而半鞅希望在这场变革中,能够始终坚守初心,与一群志同道合的人一起,不断突破自我,创造出真正有价值、有意义的成果。


这也许就是一家量化管理人的终极梦想!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177841
 
24 次点击