实盘数据同步功能
由qxiao创建,最终由qxiao 被浏览 17 用户
机器学习在股票市场上应用价值初见成效,不少机器学习的策略远远超过大盘。虽然目前平台的实盘交易功能还未对外开放,但是不少策略开发者已经在实盘跟踪自己的策略了。
1.功能背景
用户在实盘中可能会遇到实盘账户数据和模拟交易运行数据不一致的情形,比如模拟交易的交易计划里提醒今天收盘时卖出A股票1000股,但今天碰巧由于断网导致卖单失败了。于是当日清算后,模拟交易策略里没有1000股A,但是实盘账户里该股票还继续持有。 策略次日会买入新股票,但实际由于收盘卖出失败,其实没有资金买入新股票。如果不对此类问题进行调整处理的话,随着交易日逐渐增多,那么实盘和模拟交易的差异会逐渐扩大,时间长了会影响到对策略的评估。实盘数据和模拟交易数据也就失去了可比性。
为解决上述类似的问题,现在平台提供了实盘数据同步功能,通过API接口,开发者可以将自己账户的数据传至模拟交易策略中。我们继续以上述例子举例,开发者可以通过接口将自己账户的数据传至模拟交易,即通过接口通知策略1000股A还没有卖出。经过调整后,可以保证实盘策略严格按照策略的逻辑运行。
之前的文章我们介绍过如何在本地终端获取模拟交易策略的信号数据。今天我们介绍如何在本地终端调整策略持仓和资金数据,该功能简称:实盘数据同步,不过小伙伴要记住必须是策略的作者才能数据同步哦~~ 2. API Token
在主页右上角点击【模拟交易API】,就跳转到了一个新界面。在这个新界面里,你能看到你的 API Token 。 这个API Token很重要,千万不能随便给别人,有了这个API Token,可以不用登陆bigquant.com网站,就能在本地终端获取策略模拟交易信号。
3.数据同步代码
##终端需要安装这两个python包
import requests import json
#需要填写用户个人的api_token
api_token = ''' '''
#需要传入是哪个模拟交易策略
notebook_id='112957ce-3052-11e9-8f42-0a580a8104e7'
planned_orders_url = 'https://bigquant.com/bigwebapi/algo_info/planned_orders' liverun_daily_url = 'https://bigquant.com/bigwebapi/algo_info/liverun_daily'
#传入cash数据和持仓数据
r = requests.post(url=liverun_daily_url, data={'api_key': api_token, 'notebook_id': notebook_id, 'cash': 14567, 'positions': '''[ {"amount":1000,"price":2.69,"symbol":"000568.SZA"}, {"amount":2000,"price":3.69,"symbol":"000123.SZA"} ]'''}) print(json.loads(r.text))
4.运行方式
直接打开终端,命令行运行同步文件(python格式)。 本地运行截图如下: 数据同步就这样简单。待平台运行模拟交易以后,策略就会按照同步的数据运行。建议大家同步时间为每日下午15点到17点之间,因为过会儿平台就要运行模拟交易产生明天的交易计划啦。 如果是平台模拟交易运行后做了数据同步,比如次日早上7点,这种情形下可以主动联系客服小Q,平台会重新按照同步的数据产生新的交易计划。