okx

Python策略封装成本地文件详细教程

时间:2023-08-26|浏览:141

有不少使用Python语言编写策略的开发者希望把策略代码文件放在本地,担心策略安全性。正如FMZAPI文档中提出的一种方案:

策略安全性 在发明者量化交易平台上开发策略,策略仅发明者量化账户持有者可见。并且在发明者量化交易平台上可以实现策略代码完全本地化,例如把策略封装成一个Python包,在策略代码中加载,这样就实现了策略本地化。

https://www.fmz.com/api#策略安全性

其实这种担心大可不必,不过既然有这种解决方案,那么就提供一个完整的实现例子。

封装一个策略 我们找一个简单的Python策略做示范,使用经典的DualThrust策略,策略地址:https://www.fmz.com/strategy/21856

我们力求不改动任何策略部分代码,将策略封装成一个可由FMZ平台上策略代码调用的文件,并且执行结果和直接运行该策略完全一致。封装最大的问题在于FMZ平台上的策略代码调用的全局对象,全局函数,常量值,在我们封装的文件中无法访问,这样就必须想个办法把这些对象、函数、变量、常量传递到封装的文件。那接下来我们按部就班的处理。

复制python版DualThrustOKCoin期货策略的代码,粘贴进本地的Python文件,本地Python文件命名为testA。

粘贴进本地编辑器打开的文件testA。

增加一些代码,对于复制粘贴进的策略代码部分保持原封不动

以上代码主要作用是,声明当前文件内用到的全局函数、变量。然后预留导入这些函数的接口SetExchanges,SetParams,SetFunc。在FMZ平台上的策略调用这些函数,把一些用到的函数、对象等传递过来。

FMZ平台上的启动策略 启动策略就很简单了,如下:

在FMZ平台上写的代码就只有这几行,需要注意的是这个启动策略的参数是要和我们封装的策略python版DualThrustOKCoin期货一模一样的,其实可以直接复制一下「python版DualThrustOKCoin期货」策略,然后把策略代码清空就可以了,粘贴上

这样我们就把策略逻辑主体封装在testA文件,放在托管者所在设备本地,FMZ平台上只用保存一个启动策略,创建这个启动策略的机器人,就可以直接加载我们的本地文件在托管者本地运行了。

回测对比 本地加载testA文件回测

原版策略,在公共服务器上回测

另一种更加简单的方式 直接将文件载入执行。这次我们准备一个testB文件,放置「python版DualThrustOKCoin期货」策略的代码。

策略太长,就省略了,策略代码完全不用改动。

然后准备「python版DualThrustOKCoin期货(启动策略,直接执行testB文件)」,就是我们在FMZ平台上的策略,创建机器人,直接加载testB文件,并且直接执行。需要注意的是启动策略必须也有和「python版DualThrustOKCoin期货」原版一摸一样的策略参数设置(策略界面参数)。

执行回测:

回测结果和以上测试一致。显然以上第二种方法更加简单,推荐使用,如果有更好的方法,欢迎大神留言。

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

宠物丫 秒懂域名 趣玩币 趣开心资讯 免费电影 聚币网 非小号行情 币圈ICO官网 天天财富 玩合约 旅游资讯网 数字财经 乐评网 币圈论坛 百悦米 谈股票 茶百科 二手域名 百科书库 數字黃金 去玩呗SPA 兼职信息网 装修装饰网 佩佩蛙官网 代特币圈 币爸爸 美白没斑啦 今日黄金 玩票票财经 金色币圈 爱网站 减肥瘦身吧 妈妈知道 黄金行情 起名取名网 皮卡丘资讯 周公解梦 培训资讯网 借春秋 币圈官网 借春秋财经 元宇宙Web 宝宝起名
在区块链世界中,智能合约不仅是代码的信任,更是商业的革命。通过了解其在供应链、版权保护等领域的应用,您将真正体验到智能合约的无限可能性
区块链世界GxPiKaQiu.com ©2020-2024版权所有 桂ICP备16002597号-2