免费提供基于backtrader的中国期货ctp行情以及交易接口
免费提供基于backtrader的中国期货ctp行情以及交易接口。
https://github.com/backtradercn/backtrader_cn_api_example
本安装包默认包含window和Linux版的ctp行情以及交易功能。
# backtrader-cn 接口,已经接入了高频系统(参考课程 https://edu.csdn.net/course/detail/24668) 的md/td模块,可以直接使用ctp,飞马,xtp,及一些非法币交易所。默认安装包仅提供ctp接入,其他安装包请联系课程主管。
# 行情以及交易接口已经改造为power-save模式,通过增加延迟减少cpu耗费。如需原始高频模式,请联系课程主管。
# 内置接口已经可以直接读取收集中国期货ctp的tick数据和分钟线(参考期货tick自动下载和分钟线处理环境 https://blog.csdn.net/BackTraderCN/article/details/116597823)
免责声明:详见《RISK_DISCLOSURE_AGREEMENT.txt》
#安装
#win
python -m easy_install backtradercn-1.0-py3.7-win-amd64.egg
cd c:\anaconda3\lib\site-packages\backtradercn-1.0-py3.7-win-amd64.egg
c:
copy pystrategy.pyd backtradercn\
#linux
mkdir /home/bt_docker_share_folder
sudo docker pull backtradercn/backtradercn-py3-runtime:1.0
sudo docker run --name backtradercn-py3 -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -v /home/bt_docker_share_folder:/home/bt_docker_share_folder --privileged --ulimit memlock=-1 --net=host -td backtradercn/backtradercn-py3-runtime:1.0 /bin/bash
copy "backtradercn-1.0-py3.7-linux-x86_64.egg" to the share folder: /home/bt_docker_share_folder
sudo docker exec -it backtradercn-py3 bash
cd /home/bt_docker_share_folder
python -m easy_install backtradercn-1.0-py3.7-linux-x86_64.egg
cd /usr/local/python3/lib/python3.7/site-packages/backtradercn-1.0-py3.7-linux-x86_64.egg
cp *.so /usr/lib64/
cp pystrategy.so backtradercn/
### 配置定时启动关闭md,td
copy files
start_ctp.md.sh
start_ctp.td.sh
start_register_center.sh
################
# cat /home/bt_docker_share_folder/start_daemon.sh
#!/bin/bash
./stop_daemon.sh
cd /home/bt_docker_share_folder/
echo `date "+%Y-%m-%d %H:%M:%S"` start_register_center...
./start_register_center.sh
echo start_register_center: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
sleep 2s
echo `date "+%Y-%m-%d %H:%M:%S"` start_ctp.md.sh..
./start_ctp.md.sh
echo start_ctp.md.sh: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
sleep 8s
echo `date "+%Y-%m-%d %H:%M:%S"` start_ctp.td.sh..
./start_ctp.td.sh
echo start_ctp.td.sh: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
# cat /home/bt_docker_share_folder/stop_daemon.sh
#!/bin/bash
#yum install psmisc
killall RegistryCenterServer
echo stop register_center: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
killall ctp_md_daemon
echo stop ctp_md_daemon: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
killall ctp_td_daemon
echo stop ctp_td_daemon: `date "+%Y-%m-%d %H:%M:%S"` >> ./start.log
#定时 crontab
#crontab -e
55 8 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/start_daemon.sh
37 11 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/stop_daemon.sh
#week 1-5, 12:55 PM to 15:15PM
55 12 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/start_daemon.sh
20 15 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/stop_daemon.sh
#week 1-6, 20:50 PM to 03:10AM
55 20 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/start_daemon.sh
20 03 * * 1-6 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/stop_daemon.sh
54 16 * * 1-5 cd /home/bt_docker_share_folder/;/home/bt_docker_share_folder/stop_daemon.sh
1 04 * * 1-6 /home/bt_docker_share_folder/zip_and_mv.sh &
# 策略示例:
cerebro = bt.Cerebro()
cerebro.addstrategy(Resample)
store = CtpStore(
source_id='ctp',
account_id='101065', # 参数含义参考课程讲解 https://edu.csdn.net/course/detail/24668
app_id='ctp_store', # 需要保证app_id在全系统的唯一性,并且长度不超过32bytes
register_center_address='localhost:50051',
location_ip='127.0.0.1',
grpc_address='localhost:50056',
paper_trading=0,
offline=False,
cachefile_valid_seconds=300,
detect_position_change_timer=300,
print_debug=True,
)
broker = store.getbroker()
cerebro.setbroker(broker)
instrumentId = "hc2110"
from backtradercn.backfill import load_csv_candles, load_csv_ticks
# 加载实时tick数据并预先填充历史数据
# 填充历史来自backtradercn-ctp_collector产生的分钟线,使用load_csv_candles加载
# 当然如果机器够快,硬盘够大,也可以使用load_csv_ticks加载历史tick
data0 = store.getdata(dataname=instrumentId,
qcheck=0.5,
historical=False,
# backfill_from=load_csv_ticks(
# datapath=r"/home/bt_docker_share_folder/ctp_test_cases/tick_folder/%s.csv" % instrumentId,
# dataname=instrumentId,
# fromdate=datetime.datetime.now() - datetime.timedelta(days=30),
# todate=datetime.datetime.now(),
# timeframe=bt.TimeFrame.Ticks,
# compression=1
# ),
backfill_from=load_csv_candles(
datapath=os.path.join(csv_folder_path, "%s.csv" % instrumentId),
dataname=instrumentId,
fromdate=datetime.datetime.now() - datetime.timedelta(days=30),
todate=datetime.datetime.now(),
timeframe=bt.TimeFrame.Minutes,
compression=1
),
timeframe=bt.TimeFrame.Minutes, compression=1,
fromdate=datetime.datetime.now() - datetime.timedelta(days=30),
todate=None,
)
cerebro.adddata(data0)
cerebro.resampledata(data0,
compression=5,
timeframe=bt.TimeFrame.Seconds)
# cerebro.resampledata(data0,
# compression=1,
# timeframe=bt.TimeFrame.Days)
cerebro.run()
print("done")
免费提供基于backtrader的中国期货ctp行情以及交易接口相关推荐
- 上海期货交易所CTP行情和交易接入
发布时间:2018-09-25 技术:C++11,动态库的制作 概述 CTP的接入Demo 详细 代码下载:http://www.demodashi.com/demo/14125.html 本文档不介 ...
- 违章查询接口免费php,基于聚合数据的全国违章直连查询接口示例-PHP版
前言 从聚合数据官网的接口文档中我们可以看出全国违章直连查询的调用一般来说需要两个步骤 获取支持城市参数接口,即获取到不同城市的需要的参数的长度规则 请求违章查询接口,即获取到车辆的违章记录 我们以无 ...
- python获取期货行情_GitHub - lyymee/tqsdk-python: 期货行情/历史数据/交易 开发包
Introduction TqSdk 是一套依托 DIFF协议 (Differential Information Flow for Finance) 的开源 python 框架. 它支持用户使用较少 ...
- 微软对学生免费提供Visual Studio等开发软件(包括中国)
比尔盖茨今天宣布, 微软将对学生免费提供开发软件,设计软件以及服务器/数据库软件. 该项目称为Dreamspark计划,目前该计划覆盖以下国家: United States, the United ...
- 中国地铁换乘网——免费提供地铁查询代码下载
中国地铁换乘网免费提供地铁换乘查询代码下载,通过网页嵌入代码的方式,在您的网站轻松快捷实现对中国城市地铁换乘的在线查询,提供最优地铁换乘路线.时刻表.票价及站点周边相关信息.并提供了多语言选择,包括中 ...
- VNPY官方发布VNTrader,VNPY性能提升380%,python的便捷,C++性能加持, 期货CTP接口Python和PyQT框架
VNPY官方 VNTrader (基于期货CTP接口专用量化交易开源软件) 介绍 VNTrader是VNPY官方 http://www.vnpy.cn 推出的一款国内期货量化交易开源软件, 基于MIT ...
- Java 17正式发布, Oracle宣布免费提供!“版本任你发,我用Java 8”或成历史?...
Java 最重要的一次更新:JAVA 17 正式发布,这是一个LTS(长期支持)版本,带来了不少有用的新特性.关于Java 17 的一些新特性,有兴趣的可以移步文章 Java 17 新特性确定 . O ...
- MS BizSpark计划-免费提供软件和服务
为了放长线钓大鱼 MS推出了一个帮助中小企业的BizSpark计划 就是免费使用MS的开发,服务产品(Visual Studio等....),并提供基于windows,sql server,share ...
- 期货CTP接口C++源码与C#应用程序的对接
大家知道,期货CTP接口是由上期技术公司提供的,它提供的源码和范例都是用C++语言写的,这在应用上有一定局限性.比如我在实盘中需要数据库,需要程序化,需要K线图,需要这样那样的功能,下单之前要做一堆一 ...
最新文章
- HDU1301(最小生成树)
- NAACL | 通过对抗性修改,探究链接预测的鲁棒性和可解释性
- 设计阶段如何画用例视图(Use-Case View)
- CS0136 无法在此范围中声明名为“channel”的局部变量或参数,因为该名称在封闭局
- 通信网络基础实验报告_建设亚太信息枢纽港、实现5G网络全覆盖!临港新片区通信基础设施规划发布...
- 如何查看及修改Oracle的字符编码
- UVa11809-Floating-Point Numbers
- 微弱光信号检测MATLAB,微弱信号检测笔记(更新中... 2021年3月9日)
- 数据时代的大数据思维特征,主要有哪些?
- softice使用(1)- 在VMware Workstation 中使用SoftICE zz xfocus
- java 工作一年的简历
- 应用Joyoshare VidiKit裁剪视频的小技巧
- 使用路由器实现(非常)基本的家庭网络家庭安全
- WPS文件转Excel文件怎么转?建议看看这些方法
- UE4Material_RainEffect(雨的效果)
- 微信小程序引用外部字体
- 网页端Skype更新 在桌面/移动平台添加对Safari的支持
- ctfhub JWT
- GIS-空间分析(11)
- MIT和GPL到底是怎么兼容的
热门文章
- 一步步透彻理解Lock的Acquire和Release原理源码
- mipi协议中文详解
- 项目之删除评论、修改评论及架构--Kafka简介(14)
- 传奇GEE/GOM引擎的传奇假人系统如何登陆假人
- 国开计算机上机表格试题答案,国家开放大学《计算机应用基础》考试与答案形考任务模块3模块3Excel2010电子表格系统—客观题答案...
- vue 实现 发票打印功能
- Windows11 电脑不符合安装该软件最低要求处理方法
- Python 生成随机经纬度数据
- android 8.0官方刷机包,安卓8.0系统
- Ceph——多爪鱼(开源云存储平台软件),目前由红帽支持