长期以来,开发量化交易平台,因其涉及技术种类繁多(前端,后端,数据库,回测系统,网络技术等),跨学科(金融、数学、计算机编程等),项目设计周期长,维护成本高等诸多因素。造成一些有志于在程序化交易 、量化交易上大展身手的投资、资产管理团队,交易工作室,宽客爱好者等中小交易者望而却步!
术业专攻一直是 发明者量化 秉承的发展理念,如今是信息、技术飞速发展的时代。速度几乎决定着一个项目的成败,一次投资的成败。只有更高的效率才是制胜的根本。
产品支持
发明者量化对于技术底层做出了强有力的支持,只需使用发明者量化的扩展 API 接口,就可以把你从繁杂的计算机技术、各个学科专业知识等问题中解放出来。您只需开发一个 WEB 站点、移动APP 或者微信小程序,对接 发明者量化 的技术底层 ,就可以实现一个专业的量化交易平台。
嵌入现有系统
全球市场
产品特点
(演示如何使用 发明者量化 的扩展 API 打造自己的资产管理量化平台)
首先 clone 本 DEMO 项目:
git clone https://github.com/发明者量化/发明者量化_extend_api_demo.git
切换到这个目录,执行 pip 安装:
pip install -r requirements.txt
注意:如果提示 Permission denied , 需要 sudo pip install -r requirements.txt 这样执行 pip ,根据要求输入操作系统密码。
安装完成后,配置一下服务端程序,要使用的发明者量化账号的 API KEY。
创建发明者量化API KEY:
把 API KEY 写入 ,本DEMO的app.py 服务端程序:
第二步:运行
本 DEMO 项目服务端运行命令:
python app.py
运行服务端程序后 , 在游览器打开本地页面: http://127.0.0.1:5000
测试注册页面:
本项目 DEMO在量化平台已经运行起来了,注册好这个测试平台的账号(储存在本地数据的),登录进去配置,作为这个平台用户的交易所 API KEY:
现在配置好了如图:
注:页面显示的三个策略,仅仅是 UI 显示,这些还需要资产管理量化平台的管理者,具体设计实现,这里只做演示用。
本 DEMO 项目 ,服务端会检测到“一键启动”按钮按下,触发搜索 发明者量化 账号中包含“main”关键字的策略,使用该策略绑定机器人运行。所以我们先创建一个 名为 main Test profit 的策略。
main Test profit 策略代码如下:
function main() {
while(true) {
LogProfit(Math.random()*100);
Sleep(1000);
}
}
编辑代码后,点击保存。 注意:在运行前必须确保有一个托管者在线。关于托管者详情。
第四步:运行策略
点击 “一键启动” 按钮, 会自动创建一个机器人运行,这个机器人只会随机输出数值作为收益数值显示出来。可以看到在发明者量化的控制中心上显示出一个新创建的机器人:
DEMO网页上也显示出对应的随机数值:
在发明者量化上运行的机器人,由 appId 识别当前 DEMO平台登录的用户:
def robot_run(robotId, appId, exchanges):
strategyId = -1
# 从策略库里选出一个包含main字符串的策略运行, 也可以预定义
for ele in api("GetStrategyList")['data']['result']['strategies']:
if 'main' in ele['name']:
strategyId = ele['id']
if strategyId < 0:
raise u"not found strategy"
settings = {
"name":"robot for %s" % (appId, ),
"args": [], # our custom arguments for this strategey
"appid": appId, # 为该机器人设置标签,关联到本用户
"period": 60,
"strategy": strategyId,
"exchanges": [],
}
for e in exchanges:
settings["exchanges"].append({"eid": e.eid, "pair": get_default_stock(e.eid), "meta" :{"AccessKey": e.accessKey, "SecretKey": e.secretKey}})
if robotId > 0:
return api('RestartRobot', robotId, settings)
else:
return api('NewRobot', settings)
可以看到,代码中 settings 是创建机器人的配置信息, appid 就是用来标记用户的。