有不少使用Python语言编写策略的开发者希望把策略代码文件放在本地,担心策略安全性。其实这种担心大可不必,不过既然有这种解决方案,那么就提供一个完整的实现例子。 有不少使用Python语言编写策略的开发者希望把策略代码文件放在本地,担心策略安全性。正如FMZ API文档中提出的一种方案: 策略安全性 在发明者量化交易平台上开发策略,策略仅发明者量化账户持有者可见。并且在发明者量化交易平台上可以实现策略代码完全本地化,例如把策略封装成一个Python包,在策略代码中加载,这样就实现了策略本地化。 https://www.fmz.com/api#策略安全性 其实这种担心大可不必,不过既然有这种解决方案,那么就提供一个完整的实现例子。 封装一个策略 我们找一个简单的Python策略做示范,使用经典的Dual Thrust策略,策略地址:https://www.fmz.com/strategy/21856 我们力求不改动任何策略部分代码,将策略封装成一个可由FMZ平台上策略代码调用的文件,并且执行结果和直接运行该策略完全一致。封装最大的问题在于FMZ平台上的策略代码调用的全局对象,全局函数,常量值,在我们封装的文件中无法访问,这样就必须想个办法把这些对象、函数、变量、常量传递到封装的文件。那接下来我们按部就班的处理。 复制python版 Dual Thrust OKCoin 期货策略的代码,粘贴进本地的Python文件,本地Python文件命名为testA。粘贴进本地编辑器打开的文件testA。增加一些代码,对于复制粘贴进的策略代码部分保持原封不动以上代码主要作用是,声明当前文件内用到的全局函数、变量。然后预留导入这些函数的接口SetExchanges,SetParams,SetFunc。在FMZ平台上的策略调用这些函数,把一些用到的函数、对象等传递过来。 FMZ平台上的启动策略 启动策略就很简单了,如下: 在FMZ平台上写的代码就只有这几行,需要注意的是这个启动策略的参数是要和我们封装的策略python版 Dual Thrust OKCoin 期货一模一样的,其实可以直接复制一下「python版 Dual Thrust OKCoin 期货」策略,然后把策略代码清空就可以了,粘贴上 这样我们就把策略逻辑主体封装在testA文件,放在托管者所在设备本地,FMZ平台上只用保存一个启动策略,创建这个启动策略的机器人,就可以直接加载我们的本地文件在托管者本地运行了。 回测对比 本地加载testA文件回测原版策略,在公共服务器上回测另一种更加简单的方式 直接将文件载入执行。这次我们准备一个testB文件,放置「python版 Dual Thrust OKCoin 期货」策略的代码。 策略太长,就省略了,策略代码完全不用改动。 然后准备「python版 Dual Thrust OKCoin 期货 (启动策略,直接执行testB文件)」,就是我们在FMZ平台上的策略,创建机器人,直接加载testB文件,并且直接执行。需要注意的是启动策略必须也有和「python版 Dual Thrust OKCoin 期货」原版一摸一样的策略参数设置(策略界面参数)。 执行回测: 回测结果和以上测试一致。 显然以上第二种方法更加简单,推荐使用,如果有更好的方法,欢迎大神留言。 本文来源:发明者量化 —- 编译者/作者:发明者量化 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
手把手教你把一个Python策略封装成本地文件
2020-09-01 发明者量化 来源:火星财经
- 上一篇:快速带你了解DeFi
- 下一篇:币看启动“盘古计划”进军DeFi,新功能即将面世
LOADING...
相关阅读:
- 智能炒币机器人的风险在哪?量化交易靠谱不?2020-08-31
- MT5平台玩比特币合约就该这么玩支持试用 量化机器人带你驰骋币圈2020-08-28
- 990量化云交易:当AI遇上区块链,这个世界将发生哪些改变?2020-08-28
- 用CCR智能量化炒币机器人有哪些好处/郑字区块链2020-08-28
- 玩现货炒币就选择CCR智能量化炒币机器人/郑字区块链2020-08-28