【零基础】极星量化入门十一:远程遥控的简单办法
一、前言
前面实现了通过微信公众号推送重要消息,又有童鞋问了,那能不能通过微信对策略进行遥控呢?比如启动、暂停、停止等等?
百度了下,在前两年是可以做到的,如果有一定的编程基础通过微信公众号也是可以做的,但是玩量化的童鞋大部分都不是土生的程序员,所以搞太复杂不行。
于是我就想了个比较“土”,但也比较容易实现的办法。
简单来说:
1)你得有个博客,或者任何你可以修改编辑的‘网页’。
2)在极星量化中,通过requests模块,依然是GET上面说的“你可以修改的页面”
3)现在你就可以在极星量化中使用requests读取到“你可以修改的页面”内容,你可以写个“启动”,然后代码就执行启动,写个“停止”,代码就执行停止
二、实现
1、找一个可以修改的网页
这一步最重要,很多童鞋可能会想不明白的是,极星量化的代码执行怎么跟一个网页关联起来呢?其实有点基础的童鞋就会知道requests可以读取网页上的内容,所以你如果可以修改某个页面的内容,再通过requests去读取,最后在极星量化代码执行前做一个判断,那不就很容易实现了“遥控”?
这里我就用自己的博客,页面链接如下
https://www.cnblogs.com/cation/p/12663703.html
我已经写好了一个暗语,需要注意的是,由于博客类网站的页面内容比较复杂,保不齐就出现了“启动”、“停止”这一类词,所以你的暗语最好是复杂点的,比如我这个就很复杂:
而且保不齐有热心人在后面加评论,把你的量化搞瘫就不好了,所以停止的暗语最好不要跟启动的暗语相似,比如我们可以用:
叽里咕噜呱“停止”!
又或者你可以随便写一些迷惑性强的,比如:
小明吃了三个汉堡啥的
2、代码执行前做判断
现在我们已经准备好了暗语的页面,接着就简单做一下判断就好了,我们知道极星量化里行情每一次触发就执行一次handle_data函数,所以handle_data里就是执行量化策略的地方,那么暗语判断就放在handle_data最前面即可。
3、运行效果和问题
运行策略后,一开始日志输出的是“这里执行策略”,当我将博客的内容修改为“叽里咕噜呱“停止”!”时,下一次触发handle_data输出的就是“策略停止”了。
这个办法固然是非常简单了,但是也有个缺陷,那就是网站可能并不允许你太过高频的访问。使用requests每一次获取页面的内容,对于网站来说就是一次访问,有些网站可能会限制日访问次数(具体多少谁也不知道)。所以如果你的策略频率比较高(比如几秒钟一次),那还是不要使用这个办法。如果是5分钟或以上的策略,一般的网站就不会有太多限制。
其次保不齐这些网站自己出现故障访问不了,所以你也可以考虑多准备几个网站,做多次的判断,确保OK。
有一点基础的童鞋还可以租个服务器搞个WEB服务来做类似的事情,不过自己租服务器可能还不如多找几个博客备着呢。
三、回顾
这一节用一个简单的办法实现了远程控制极星量化代码的运行,除了启动、停止,其实还可以做更多的应用,这就需要你发动脑神经了。结合前一节“将重要信息推送到微信”,我们就实现了一个通知->控制->通知的闭环。有时候策不策略的不说,这种小应用挺有意思的。
示例的代码:
https://share.weiyun.com/5Vp5F90