【零基础】极星量化入门十:将重要事件推送到微信
一、前言
经常有童鞋担心量化要是运行着挂了怎么办,程序崩溃了怎么办,策略错误疯狂开仓怎么办,有没有什么办法让策略给我发消息呢?
办法自然是有的,python无所不能嘛。其实很简单,一段代码就搞定了。
二、原理
微信公众号(服务号)有一个功能就是向用户主动推送消息,一般来说要实现这个功能你得有一个公众号,还得认证企业、认证服务号,还得有个服务器、域名XXXX,反正就是很麻烦还得花钱。
不过互联网时代只要你多百度总能找到更好的解决方案,所以今天隆重介绍ServerChan这个服务,作者完成了前面所述的全部困难工作,我们剩下的工作就只是调用一行代码即可(而且不要钱):
requests.get('https://sc.ftqq.com/'+SCKEY+'.send?text='+text+'&desp='+desp)
这是利用了python的一个叫requests的模块,模拟了一次GET访问,访问的就是https://sc.ftqq.com/XXX这个URL。其中SCKEY是你在ServerChan上申请的KEY,text和desp是你向微信推送的消息内容。
三、准备工作
1、绑定微信
http://sc.ftqq.com/3.version
首先你得在ServerChan(上面的链接)注册一个账户,然后将你的微信和ServerChan的公众号绑定,接着你会得到一个SCKEY,大概长这样:
你可以直接在这个页面体验一下微信推送(当然这也是一个web版的消息推送渠道)。
2、推送限制
推送自然是不可能让你无限制狂发的(服务器受不了、微信也不会让你发太多),限制如下:
四、功能实现
如果只是简单的调用一行代码做个范例那不是我的性格,所以我还是使用了BOLL指标做了个范例,并且根据发送规则封装了一个sendWX函数,可以帮助你自动处理发送间隔、日发送限制的问题。
1、初始化
初始化这里增加了关于时间的保存,一个是当前“时间”用以留作后面做时间比较,另一个是记录下当前“日期”,后面也是做比较,当日期变化时我们好知道隔日了,又可以多发500条消息了。
我在最前面定义了一些参数对消息发送做了限制,都注释好了。
2、消息发送函数
使用时,text是消息的标题,建议将具体内容就写到这里。desp是消息的正文,你可以写一些详细的描述,最好像我那要将这是第几条消息表述在这里(避免短时间内发送重复内容)。
3、调用消息推送
消息推送只需要简单的调用sendWX即可,你可以将它放在需要提醒的地方,或者也可以每隔几分钟调用一次,提醒自己程序还没崩溃。
五、回顾
这节我们实现了从量化系统中向微信推送消息,那么有没有可能在微信或web中向量化系统推送消息呢?比如远程关闭、暂停或启动策略?肯定是可以的,不过我现在还没百度,这些内容留到以后再说吧。
示例代码:
https://share.weiyun.com/5ljg1xJ