使用Python实现量化交易机器人定时启动或停止小工具

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

作为全网功能强大、灵活易用的量化交易平台,发明者量化交易平台虽然使用门槛非常低,机器人程序占用资源很少。但是我们依然希望,让机器人需要运行的时候启动,不需要运行时停止。例如,在做商品期货程序化、量化交易时,非开市时间占全天的绝大部分。

这样我们就非常希望只让机器人在开市时间运行,每天只开市时间运行多节省费用,想想都激动。为了这个需求,我们可以使用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和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

发布了141 篇原创文章 · 获赞 17 · 访问量 8183

猜你喜欢

转载自blog.csdn.net/JKX_geek/article/details/104833129