个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
作为全网功能强大、灵活易用的量化交易平台,发明者量化交易平台虽然使用门槛非常低,机器人程序占用资源很少。但是我们依然希望,让机器人需要运行的时候启动,不需要运行时停止。例如,在做商品期货程序化、量化交易时,非开市时间占全天的绝大部分。
这样我们就非常希望只让机器人在开市时间运行,每天只开市时间运行多节省费用,想想都激动。为了这个需求,我们可以使用Python语言编写一个在FMZ量化交易平台上运行的策略机器人,让这个机器人通过发明者量化交易平台的扩展API接口,定时控制机器人的启动和停止。
有了需求,说干就干!
其实整个代码非常简单,调用发明者量化交易平台扩展API接口的例子直接可以使用,地址:https://www.fmz.com/api#%E7%AE%80%E5%8D%95%E7%9A%84%E4%BE%8B%E5%AD%90
直接使用例子中的函数:def api(method, *args)。我们需要调用的接口也很简单,用到以下两个接口(在FMZ文档上可以查询到)
RestartRobot是重启机器人接口,参数传入机器人ID即可。使用具体id,这样调用即可:api('RestartRobot', id)
StopRobot是停止机器人接口,参数也是机器人ID。机器人ID查看、获取,截图:
调用发明者量化交易平台扩展API需要使用发明者量化交易平台的API KEY。
可以在账户管理中生成自己的API KEY。
我们把API KEY作为策略的参数传入。
获取发明者量化交易平台账号API KEY截图:
剩下的就是编写定时逻辑了,也非常简单,设置定时参数:
["175708,14:55:33-15:10:33", ...]
省略号代表可以设置更多的类似"175708,14:55:33-15:10:33"的设置。
定时参数是一个JSON字符串,策略代码中会对其解析,解析为一个列表。列表中每个元素就是一组机器人启动/停止设置。
即:"175708,14:55:33-15:10:33"
其中以逗号间隔。逗号之前的部分175708为机器人ID,逗号后面的部分为启动时间/停止时间。如上例子,是ID为:175708的机器人,14:55:33启动,15:10:33停止。
然后策略中不停轮寻,每次轮寻先获取当前时间,然后根据当前时间和定时时间对比,判断是否需要触发启动或者停止机器人。
如果触发了,就调用api('RestartRobot', id)或者api('StopRobot', id) ,来启动、停止机器人。
完整的策略代码
机器人参数设置
策略运行
被这个策略操作的机器人:
策略地址:https://www.fmz.com/strategy/184600
结尾
作为抛砖引玉,发明者量化交易平台的扩展API还强大的很,用这些扩展API基于FMZ平台做一个自己的量化交易平台都完全没问题。
这个定时机器人设计的比较简单,只是无脑到时间开启,到时间停止,并没有加入启动是否成功,检验,异常重试,等等机制,有兴趣的可以增加功能,扩展。策略仅供学习参考
附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:
(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。