第三篇,来聊一下用GPT帮助Python编程的感悟以及一点心得。
先声明一下,我对于Python也就是入门级的水平,书大概读了四五本,但是从来没有上手编过。甚至包括hello world都没有完整的输入过一次(相信学过的都知道是什么梗)。
这次,我用GPT帮我实现一个量化模型的回测,原始数据我已经用其他软件下载好导入到EXCEL里了,所以我只需要GPT帮我实现一个典型的量化回测。具体包括三个方面:1.生成交易和平仓信号;2.定义不同参数下的总收益;3.寻找总收益最优的参数集。
整体来说,使用GPT帮助Python的使用体验还是不错的。大概2天时间,帮我写了200-300行左右的有效代码,而且一些基础的代码还是很轻松就写出来了。如果我自己一边学一边做的话,我估计我需要大概半个月的时间才能学习到这个程度。所以对我来说帮助还是挺大的,我相信对于python新手或者只有入门门槛的来说,GPT的辅助编辑代码的功能确实不错。
而且GPT还有一个很好的地方,就是如果报错的话,只需要把报错代码再喂回去。如果它直接就能改,它就输出改好的代码了。如果它不能改,或者错误的原因不在这一段代码里,它也会用白话给你解释一下错误的原因,而不是Key ERROR这种新手搞不懂的原因。
以上是好的地方,下面来说一下GPT还做不到,依靠人脑的地方。
首先,GPT只能“帮”写代码,但是代码后面的逻辑还是需要人工自己搞清楚。比如量化回测,GPT可以实现对一些常见量化回测策略的编写,但是稍微个性化一点的策略,就需要不断地训练才行。也就是说,在整个编辑代码的过程中,人的思想还是主导。
其次,GPT只能机械地执行某个指令。比如说,我在量化回测模型中人工设定了几个区域,在这些区域是不进行交易的(因为数据库底层的某些原因)。我希望设计成标记点前10天和后5天不交易,但是我大约对GPT进行了10次对话,GPT依然没有帮我实现这个功能,最终只帮我对称标记了前8天和后8天。
第三,GPT无法理解某些超越代码表层的深层次逻辑。比如说,我在回测模型中,以序列号作为持仓天数的代理,但我对数据库进行切片后,显然需要对切片后的序列号进行reset_index,但是GPT并不能理解这个层面的逻辑(尽管在形成代码的时候,它对此逻辑表示了认可)。这是最后我拿GPT输出的代码和我用EXCEL做出的同样功能的sheet进行对比之后发现的。光改这一个bug大概花了我四分之一的时间,包括对话训练和思考。
此外,GPT输出中还出现了一些逻辑矛盾和错误,也都是需要人工来改正的。尤其是不报BUG,但是和底层逻辑矛盾的地方,是需要自己来发现并修改的。
讲完这三篇,我的结论就是,GPT是一个很好用的工具,可以替代人工完成非常基础的工作。但是用好它,使用者还是需要具备一些进阶能力的。这个关系就像正式员工指导实习生是一样的。