相关文章推荐
鬼畜的投影仪  ·  GLM(General Language ...·  2 年前    · 
魁梧的四季豆  ·  c# datetime format ...·  2 年前    · 

炒股就看 金麒麟分析师研报 ,权威,专业,及时,全面,助您挖掘潜力主题机会!

来源: 华泰证券 金融工程

人工智能系列 之66:四则案例展示如何使用GPT提升投研效率。人类社会发展的基本规律是先进生产力不断取代落后生产力。如同各行各业正在发生 的变革一样,以 GPT 为代表的大语言模型也将重塑投资研究行业。本文通过 (1) 量化分析、 (2) 网页抓取、 (3) 文字摘要、 (4) 行情复盘四个案例,探讨 GPT 在投资研究中可能的应用场景,展示如何使用 ChatGPT 提升投研效率,并分析 ChatGPT 使用技巧。总的来看, ChatGPT 在代码编写、文本编写这两类任务上表现较好。一方面可以替代日常重复劳动,另一方面能拓展投研人员的能力圈。同时,生成高质量的回答需要提出正确的问题,我们通过实验总结出任务提示 Prompt 的若干经验。

目    录

GPT应用于投资研究 经验总结

案例1:量化分析

案例2:网页抓取

案例3:文字摘要

案例4:行情复盘

代码编写任务经验

(1)ChatGPT利好有代码基础但不熟练的开发者。可以省去大量网络搜索、查看帮助文档时间,大幅提升编程效率。(2)需要使用者有代码基础。ChatGPT生成的代码可能有错误,需要人工查错;另外,涉及输入数据、输出结果这些个性化程度较高的环节,人工实现效率可能更高。(3)做优秀的产品经理。项目解耦很重要,ChatGPT很难一步到位,将项目拆解成独立的子任务,引导ChatGPT写函数;明确需求很重要,指定函数的输入、输出变量名和格式。(4)代码出错没关系,可以提供报错信息要求ChatGPT修改。GPT支持4096个字符的上下文,能够在原有代码基础上修改。

文字编写任务经验

(1)文字处理是ChatGPT较为擅长的领域。自然语言相比代码冗余度更高,容错率也更高,生成质量整体较好。(2)任务提示Prompt应写在开头位置,实验表明当Prompt写在结尾时,ChatGPT可能无法正确理解意图。(3)GPT处理上下文字数有限制,需要拆分段落,合理分配每轮对话字数,输入以1000个左右汉字为宜。(4)对于编写行情复盘这类“半监督式任务”(有往期答案但没有当期答案),可以在Prompt中提供少量样例,GPT支持Few-shot或One-shot学习,基于样例的生成效果相比无样例更好。也不必担心GPT没有学习2021年9月后的数据,新信息同样可作为Prompt提供。

GPT助力投资研究案例四则

(1)量化分析。目标:检验MACD“金叉”“死叉”事件信号对个股收益预测能力。方法:将项目拆解成独立的子任务,引导ChatGPT写Python函数。(2)网页抓取。目标:程序化抓取 东方财富 股吧评论。方 法:从原型代码出发,逐步添加需求。(3)文字摘要。目标:将约10000字的速记稿总结成约2000字的会议纪要。方法:ChatGPT3.5仅支持4096 tokens的上下文。需将原稿拆成约1000字的段落,分别概括大意并输出。(4)行情复盘。目标:基于A股市场当日行情数据,编写复盘文字。方法:提供行情数据和复盘样例,采用One-shot或Few-shot学习,生成质量高。

正    文

GPT应用于投资研究经验总结

人类社会发展的基本规律是先进生产力不断取代落后生产力。如同各行各业正在发生的变革一样,以GPT为代表的大语言模型也将重塑投资研究行业。

本文通过(1)量化分析、(2)网页抓取、(3)文字摘要、(4)行情复盘四则案例,探讨GPT在投资研究中可能的应用场景,展示如何使用ChatGPT提升投研效率,并分析ChatGPT使用技巧。

总的来看,ChatGPT在代码编写、文本编写这两类任务上表现较好。一方面可以替代日常重复劳动,另一方面能够拓展投研人员的能力圈。例如,主动投研人员希望引入量化分析工具,或者借助网页抓取获取非结构化数据,都可以尝试用ChatGPT生成Excel公式或Python等编程语言代码。同时,高质量的回答需要提出正确的问题,我们通过实验总结出任务提示Prompt的若干经验。

代码编写任务经验:

1.ChatGPT利好有代码基础但不熟练的开发者。 可以省去大量网络搜索、查看帮助文档时间,大幅提升编程效率。

2.需要使用者有代码基础。 ChatGPT生成的代码可能有错误,需要人工查错;另外涉及输入数据、输出结果这些个性化程度较高的环节,人工实现效率可能更高。

3.做优秀的产品经理。项目解耦很重要, ChatGPT很难一步到位,要将项目拆解成独立的子任务,引导ChatGPT写函数; 明确需求很重要 ,要指定函数的输入、输出变量名和格式。

4.代码出错没关系,可以提供报错信息,要求ChatGPT修改。 GPT支持4096个字符的上下文,能够在原有代码基础上修改。

文字编写任务经验:

1.文字处理是ChatGPT较为擅长的领域 自然语言相比代码冗余度更高,容错率也更高,生成质量整体较好。

2.任务提示Prompt应写在开头位置。 实验表明当Prompt写在结尾时,ChatGPT可能无法正确理解意图。

3.GPT处理上下文字数有限制,需要拆分段落,合理分配每轮对话字数 ,输入以1000个左右汉字为宜。

4.对于编写行情复盘这类“半监督式任务”(有往期答案但没有当期答案),可以在Prompt中提供少量样例。 GPT支持Few-shot或One-shot学习,基于样例的生成效果相比无样例更好。也不必担心GPT没有学习2021年9月后的数据,新的信息同样可以作为Prompt提供给ChatGPT。

我们让ChatGPT总结这两类任务的技巧,如下图所示,和前述经验较为符合,供读者参考。另外要说明的是,尽管本文中的案例均围绕GPT展开,随着越来越多大语言模型的开发和上线,或将诞生功能更强、使用更便捷、成本更低的GPT替代方案,这也是新生产力取代旧生产力的体现。

案例1:量化分析

目标 :检验MACD“金叉”“死叉”事件信号对全市场个股收益预测能力。

方法 :将项目拆解成独立的子任务,引导ChatGPT写Python函数。本文全部测试均基于ChatGPT3.5网页版实现。

MACD是经典的技术指标。当快线DIF自下而上穿过慢线DEA,此时MACD由负转正,这种形态通常称为金叉,为做多信号。反之,当快线DIF自上而下穿过慢线DEA,此时MACD由正转负,这种形态通常称为死叉,为做空信号。MACD指标对全市场个股是否具备择时能力?我们将借助ChatGPT生成量化分析代码进行检验。

ChatGPT的工作(1) :计算MACD。人的提问也称为Prompt,我们在Prompt中明确输入数据变量名、类型和具体定义,并指定生成Python代码。

生成代码总体正确,并且包含注释和解读。但ChatGPT对输入数据格式理解有误。Prompt中指定输入的收盘价矩阵,index为股票代码,columns为日期。但代码的输入变量,index为日期,columns为股票代码。我们认为此处ChatGPT的错误完全可以接受,因为Python DataFrame的习惯用法是将index定义为时间轴,ChatGPT学习大量代码语料,生成结果贴近习惯用法。与其改变ChatGPT,不如改变自己,后文我们将输入数据进行转置调整。

ChatGPT的工作(2) :发“金叉”“死叉”信号。金叉代表MACD由负转正,发做多信号;死叉代表MACD由正转负,发做空信号。

生成代码总体正确。唯一的错误是函数内部第一行的pct_change()应删除。

ChatGPT的工作(3) :计算未来horizon个交易日收益率。预测区间长度horizon为变量,之后我们将对其进行遍历。

生成代码正确。注意这里我们没有在Prompt中指定输入数据的格式,由于ChatGPT支持4096个token的上下文,无需铺垫背景也可正常理解人类意图。

ChatGPT的工作(4.1) :统计正数和负数数量,计算胜率使用。之后我们将从(3)输出的区间收益率矩阵中,分别根据(2)输出的多空信号,提取做多或做空信号下股票的区间收益率,并统计做多或做空胜率。

生成代码正确。

ChatGPT的工作(4.2) :统计正数和负数均值,计算赔率使用。

生成代码有误。ChatGPT这里没有考虑缺失值的影响。代码先对单个股票全部日期信号求均值,再对全部股票求均值(column-wise);实际应对全部信号求均值(element-wise)。当各行列缺失值数量不一致时,原代码会造成较大偏差。

ChatGPT的工作(4.2) :统计正数和负数均值,计算赔率使用。第二次生成补充要求,考虑各行列缺失值。

生成代码正确。有意思的是我们没有明示ChatGPT修改,但ChatGPT“情商很高”,回答的第一句话表明理解了我们的意图。

人的工作(1) :输入数据及预处理。ChatGPT对输入数据的路径、格式没有概念,预处理涉及较多细节,这步交给人来做效率更高。

人的工作(2) :遍历预测区间,调用各函数,汇总结果。

人的工作(3) :输出结果。和输入类似,ChatGPT对输出数据的路径、格式没有概念,这步交给人来做效率更高。

至此我们完成了对MACD个股择时信号的胜率、赔率统计。多、空信号胜率在50%左右,难言有效。多头胜率低于50%但赔率相对高,空头胜率高于50%但赔率相对低。

总的来看,ChatGPT基本可以胜任这类基础的量化分析代码任务,编程语言也不局限于Python,其他编程语言乃至Excel公式,都可以尝试交给ChatGPT生成。

案例2: 网页抓取

目标 :程序化抓取东方财富股吧评论。

方法 :从原型代码出发,逐步添加需求。

东方财富股吧评论是使用较广泛的另类数据,可以反映短期散户投资者的情绪。通过网页抓取技术得到的文本结合自然语言处理技术,可以进行更为定量的多空情绪识别,是传统财务数据和行情数据的补充。

第1步 :直接提出需求,写一段网页抓取代码,以某上市公司为例。

生成代码正确。东方财富股吧是网页抓取的入门级案例, GPT的训练语料很可能包含类似代码。ChatGPT还贴心地给出了风险提示。另外,我们没有给出该上市公司的股票代码,但ChatGPT正确回复了600519,表明中国A股市场文本也在训练语料中。

第2步 :补充需求,保存为Excel。

生成代码正确。不足之处是保存的Excel中,阅读量、评论数、标题、作者、最后更新时间等字段保存在同一个单元格,我们希望分字段保存在各列。

第3步 :补充需求,分字段保存。

生成代码有误,直接运行报错AttributeError: ‘NoneType’ object has no attribute ‘get_text’。

第4步 :补充需求,解决报错。假设我们没有编程经验,不理解报错含义,我们可以直接将Python报错信息提交给ChatGPT。

生成代码正确,实现了分字段保存。Debug是编程的痛点之一,ChatGPT似乎也能应对。

第5步:补充需求,抓取多页。原代码只抓取了首页,我们希望抓取前10页。

生成代码正确,通过循环实现了分页抓取。

实验1 :抓取2023年上市新股的股吧评论(无股票代码)。ChatGPT的训练数据截至2021年9月,如果要求ChatGPT抓取2023年上市新股的股吧评论,且不提供股票代码,ChatGPT会如何回应?如下图,ChatGPT给出的代码是600733,显然与我们希望抓取的新股代码不匹配。

实验2 :抓取2023年上市新股的股吧评论(含股票代码)。我们在Prompt中补充股票代码,ChatGPT的回应中设置了变量stock_code储存股票代码,此时对于任意新股,只要给定股票代码,都可以实现股吧评论抓取。ChatGPT具备了一定程度的泛化能力。

总的来看,ChatGPT可以胜任这类网页抓取任务。东方财富股吧属于入门级别的网页抓取,在网络上有大量案例供GPT训练。对于相对小众或者难度较大的网页抓取任务,可能需要更高的Prompt技巧。

案例3:文字摘要

目标 :将约10000字的速记稿总结成约2000字的会议纪要。

方法 :ChatGPT3.5仅支持4096 tokens的上下文。需将原稿拆成约1000字的段落,分别概括大意并输出。

撰写文字摘要、会议纪要、信息整理等是投研人员常规工作,此类任务适合交给ChatGPT处理。

我们询问ChatGPT输入和输出字数限制,答复如下图,最大输入/输出长度为2048个字符,即1024个汉字。因此需要对原始文本进行合理拆分,每次输入1000字左右为宜。

这里又有一个新问题,Prompt(如“请将这段话总结成100个左右汉字的中文纪要)应写在提问的开头还是结尾?我们继续询问ChatGPT,答复如下图,应写在开头。我们在实验中也发现,当Prompt写在结尾时,ChatGPT可能无法正确领会意图,将摘要任务理解成翻译任务。

以下两张图展示拆分后的输入和输出。总的看,摘要正确概括了原文内容。文字处理是ChatGPT较为擅长的领域。自然语言相比代码冗余度更高,容错率也更高,生成质量整体较好。

案例4:行情复盘

目标:基于A股当日行情数据,编写复盘文字。

方法 :提供行情数据和复盘样例,采用One-shot或Few-shot学习,生成质量更高。

撰写行情复盘也是投研人员常规工作。此类任务的难点是定性和定量描述相结合,文本需要和数据相匹配。

实验1 :直接提供行情数据。以2023年4月17日为例,我们提供沪深两市日内30分钟频价格以及日度成交额,在Prompt中要求ChatGPT写一段中文股评。这里需要注意,尽管ChatGPT没有学过2021年9月之后的数据,但可以将新数据在Prompt中体现。

直接生成质量不佳。从形式角度看尚可;从内容角度看,对日内行情的分析不够,并且杜撰了部分内容。

在GPT3论文 Language Models are Few-Shot Learners 中,OpenAI团队证实GPT具有Zero-shot、One-shot和Few-shot学习的能力,基于少数例子甚至完全没有例子,GPT也能够理解指令实现相应功能。当然从测试表现看,Few-shot优于One-shot,One-shot也优于Zero-shot。前述实验1直接要求写复盘,相当于Zero-shot学习,我们可以尝试给出案例再要求写复盘,即采用One-shot学习。

实验2 :提供行情数据和复盘样例。我们首先给出4月14日行情数据,并给出人工撰写的4月14日复盘。随后给出4月17日行情数据,要求ChatGPT给出相应复盘。

提供样例后生成质量显著提升,依次描述开盘、上午、午后、收盘行情,最后总结全天价、量情况。两条回答仍有小部分杜撰内容,需要后续少量人工修改,但整体质量在可接受范围。

实验3 :前述实验的数据通过Wind API接口下载,可否要求ChatGPT编写下载数据代码?我们发现生成代码总体质量不错,但仍需要修改细节方能正确运行。相比前述MACD计算和网页抓取,Wind API代码更小众,可能在GPT训练语料中占比较小,因此生成质量相对差一些。不过对于有一定经验的开发者而言,在此基础上修改并不难。

风险提示:

GPT生成内容不保证真实性。 G PT生成内容具有随机性。 人工智能挖掘市场规律是对历史的总结,市场规律在未来可能失效。 人工智能技术存在过拟合风险。 深度学习模型受随机数影响较大。

炒股开户享福利,送投顾服务60天体验权,一对一指导服务!
  • 01 / 深夜,不利信号传来!欧洲大国突对中国放"冷箭",影响多大?
  • 02 / 淄博之后,轮到这个城市火了?当地网友着急:快抓住流量
  • 03 / 购买欲望不足!这个省会城市陷入新房“开盘荒”…
  • 04 / 8根炸串要115元,游客与商家争执被骂穷!回应来了
  • 05 / 新增放缓、不良上升 银行财报透露个人住房按揭贷款风险
  • 06 / 银保监会发文!全年工作目标定了 支持小微企业科技创新
  • 07 / 一季度外贸大数据:朋友圈结构变了 “新三样”表现更突出
  • 08 / 美联储主席被骗!与冒牌泽连斯基“友好”通话,美联储急回应
  • 09 / “最疯狂”五一来了! 圆明园门票抢光了,民宿预订潮来了,毁约潮也来了……
  • 10 / 上海“睡城”探秘!超预期的REITs是怎样炼成的
  • 01 / 破发18%!“白酒第一股”首秀搞砸了,逾万投资者打新被套,最高浮亏近亿
  • 02 / 又一家崩盘 美国银行业危机远未结束
  • 03 / 久违了!时隔近8年,9100亿巨头再次涨停!五大上市险企净利飙升近七成,来看详情
  • 04 / A股风格突变,成交额连续18日破万亿!巨无霸平安居然涨停了
  • 05 / 道达投资手记:A股反弹超预期 可关注一条“暗线”
  • 06 / 德国媒体爆料:乌克兰上周日在俄境内自杀式袭击的目标是他
  • 07 / 语出惊人!共和党总统候选人:拜登很难坚持到第二任期结束
  • 08 / 股海导航 4月28日沪深股市公告与交易提示
  • 09 / 4月28日操盘必读:影响股市利好或利空消息
  • 10 / 猛降近80%!750亿巨头突发利空,蔡嵩松大举减持!
  • 01 / 贷款利率向下,理财收益向上,倒挂会引发套利行为吗?
  • 02 / 银保监会:严禁为挪用于非生产经营用途的贷款办理续贷 不得用续贷掩盖信用风险
  • 03 / 既想当官又想发财、滥用职权造成国有资产重大损失,徽商银行原董事长李宏鸣被开除党籍
  • 04 / 12家银行去年个人房贷新增不良同比涨13倍,银行财报透露按揭贷款风险
  • 05 / 国有大行首份一季报出炉!邮储银行净利营收双增长,不良“一升一降”
  • 06 / 聚焦A股上市银行一季报:净利差、净息差承压仍在持续
  • 07 / 广州农商行信用卡不良贷款率上升至8.24% 多位高管因违法违纪接受调查
  • 08 / 今年以来两百多位金融高管变动,3成因工作变动、2成因年龄原因, “70”后成接替主力
  • 09 / 何东:央行数字货币可以成为将来数字时代经济的货币基础
  • 10 / “城商行一哥”易主,“黑马”江苏银行“蒙眼狂奔”背后略显隐忧
  •