代码编写任务经验
(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
/
“城商行一哥”易主,“黑马”江苏银行“蒙眼狂奔”背后略显隐忧