吃饭的时候,我终于把那个问题给想明白了,就是为什么我运行的这个量化策略没有产生效果。原来的原因是我没有调用自己的麦函数,而是调用了系统的一个方法。但是,在系统的方法里头,我没有做任何提交的动作,也就是说,我没有真正向系统提交任何买单或卖单。我有点奇怪的是,为什么它的日志没有打印出来。后来,我把系统生成的那个代码注释掉了,然后调用了Kimi给我生成的那个梦函数主体,结果它就能运行我指定的部分内容了。所以,这里面其实存在一个问题,就是我需要编写对应的函数,比如当触发某个消息时,下一步该做什么,可能需要参考一些网上的例子。后来,我在一个视频网站上找到了一个教程,虽然还没详细看,但好歹运行我自己那部分的代码——也就是Kimi帮我生成的那部分——已经可以运行了,并且我也发现了一些小问题。
主要问题是那个计算,比如6.6元的基准价减去0.1元后,本应等于6.5,但它算出来却经常是6.49999... 这实际上涉及到了浮点数计算不准确的问题。我问了Kimi,他给了我三种方式,我看了看觉得比较好的一种就是在数字外面包裹一层Decimal。但我用了这种方式还是不行,后来才发现那个函数Decimal里面的数字要用两个单引号包起来,这真是有点坑。不过好在我遇到几次挫折后,再仔细对比了一下,发现了问题所在,这个问题也就解决了。
另外,关于打印日志的问题,怎样让日志打印得更清晰一些,比如当可卖数量不足时要打印错误日志,而且日志里要显示当前可卖的数量是多少股,准备要卖的数量又是多少股。比如可售数量只有300股,但你准备卖500股,这就会失败。要把这些相关日志打印得更详细一点,特别是在生成买单和卖单时,如果因为金额不足无法提交买单,或是库存不足无法提交卖单,都要打印详细的日志,这样一看就会一目了然,而不会让人处于一种懵的状态。
还有一个问题就是关于期货的量化。现在有两种解决方案,一是使用现有期货,他们那边有相应的支持平台;二是使用掘金量化平台,然后开一个它支持的期货公司的账户。我个人倾向于后者,因为我熟悉一个平台的话,可以减少摸索的时间,最关键的是出现问题时能更快定位并解决问题,而不是去适应两个不同的量化平台,这样做没什么意义。当然,
东方财富期货那边有一个比较坑的地方,就是手续费比较高,是三倍的手续费,而广发那边支持的那家是1.3倍的手续费。从这个角度看,东方财富期货这边的收费要贵得多。但如果它的运行比较稳定,能提供较好的服务,我认为也是可以接受的。毕竟,鸡蛋期货一手的手续费大概是6块多,如果是三倍的话就是18块,这几乎相当于两个点的成本了,确实有点高。因此,还有一种折中的办法,就是继续使用掘金平台,然后开一个它支持的期货公司账户,但不使用东方财富期货的,这样应该会好很多。