更多精彩内容,欢迎关注公众号:数量技术宅。想要获取本期分享的完整策略代码,请加技术宅微信:sljsz01

为何使用交易开拓者(TB)作为回测工具

交易开拓者(后文以TB简称)是一个支持国内期货市场K线数据回测、交易的第三方交易平台。TB自带回测框架,投资者在开发量化策略时,只需关注实现策略主逻辑,它的自带编程语言相比较C++、Python也更简单,适合编程零基础的投资者快速上手。TB自带的基于K线的回测框架,在期货市场已经经过许多交易员多年实盘的检验,结果稳定可靠。

尽管TB回测框架完善、语法简单。但其内置的数据局限于期货市场的历史数据,如果我们需要测试其他类别的资产,比如数字货币,就需要通过外部导入数据的方式。

本次分享,我们将带着大家学习从数字货币历史K线数据的获取、转换为TB支持的数据格式导入、在TB中利用导入的历史数据测试数字货币的交易策略、最终得到策略回测结果的这一全过程。

数字货币K线数据的获取

本次测试,我们将采用数字货币的大周期K线数据。我们曾经在前文的分享中提到过数字货币免费数据的获取途径,对于大周期K线数据,可以从CryptoData网站下载数据。这次我们将下载币安交易所的历史数据,该网站币安交易所能获取到的数字货币品种更为丰富。

 我们选择币安交易所 BTC/USD 1小时K线数据下载,下载得到的原始数据,打开字段如下。

数据转换格式、导入TB

请大家注意,下载数据虽然包含了K线所需的全部字段:日期时间、开、高、低、收、成交量、成交额,但这个数据是无法直接导入TB的。导入TB的数据,我们需要和TB本身支持的数据字段格式,完全一致。我们先从TB下载其内置的期货数据,看一下内置数据的字段格式,我们以沪银期货,同样是1小时周期的K线为例。

通过对比TB内置的数据格式,与我们现有数字货币的数据格式,有以下几个地方需要预处理:一是,日期时间的格式需要转换;二是,Symbol列不需要,将其去除;三是,成交量(VolumeBTC、VolumeUSDT)保留一列即可。

我们使用Python,按照上述三点规则,对数据进行预处理,并存为新的CSV文件。以上是部分代码,完整代码请联系小编。打开保存的csv文件,查看数据字段格式是否成功转换。需要特别注意,保存的文件不能有列名,否则TB会产生导入错误。

紧接着,我们就将处理好的数据导入TB。选择数据管理,由于没有数字货币对应的交易所,此处随机选择一个交易所即可,点击自定义商品。

填写该品种的基本属性数据。其中的重要字段:(1)报价精度,根据原始数据精度填写;(2)最小变动,1即为1个报价精度单位;(3)交易时间段:数字货币24小时不间断交易。

再选择数据维护栏,商品选择刚才新建的品种名称,由于我们导入的是1小时K线,周期选择1小时。

点击导入数据,选项按默认设置即可,选择我们刚才用Python预处理好并保存的csv文件。此时TB提示导入成功,下方数据栏显示正确的K线数据,就说明我们自定义的数据,已经成功导入。

数字货币交易策略的开发、回测

成功导入数字货币BTC/USD的1小时K线数据后,接下来就进入最激动人心的一步:量化策略的回测。我们首先新建一个超级图表,该图表正常显示btcusdt这个新定义品种的K线数据,于是我们可以基于这个超级图表,来做接下来的回测。

我们将在期货市场开发的一个交易策略,移植到数字货币市场,不需要修改任何代码,直接进行测试。

TB轻松完成了我们导入品种的回测,可以看到,测试的效果让人惊喜,以btc为代表的数字货币市场,策略表现不错。

如果你想要本次的完整代码,欢迎加小编微信,与我交流。


往期干货分享推荐阅读

股指期货高频数据机器学习预测

如何使用TradingView(TV)回测数字货币交易策略

如何投资股票型基金?什么时间买?买什么?

【数量技术宅|量化投资策略系列分享】基于指数移动平均的股指期货交易策略

AMA指标原作者Perry Kaufman 100+套交易策略源码分享

【 数量技术宅 | 期权系列分享】期权策略的“独孤九剑”

【数量技术宅|金融数据系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单

【数量技术宅|量化投资策略系列分享】成熟交易者期货持仓跟随策略

如何获取免费的数字货币历史数据

【数量技术宅|量化投资策略系列分享】多周期共振交易策略

【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数

商品现货数据不好拿?商品季节性难跟踪?一键解决没烦恼的Python爬虫分享

【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品

【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略

【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫

如何使用交易开拓者(TB)开发数字货币策略的更多相关文章

  1. 免费开源数字货币交易所——基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所

    本项目是基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎.本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币 ...

  2. [币严BIZZAN区块链]数字货币交易所钱包对接之比特币(BTC)

    在币严BIZZAN开发数字货币交易所的过程中,一共有两大难点,一个是高速撮合交易引擎,另一个是钱包对接,这两者是我们团队以前没有接触过的.这个系列的文章主要介绍数字货币交易所钱包对接实现技术.第一个要 ...

  3. 基于Java的数字货币交易系统的架构设计与开发

    前言 无论是股票交易系统,还是数字货币交易系统,都离不开撮合交易引擎,这是交易平台的心脏.同时,一个优秀的架构设计也会让交易平台的运维和持续开发更加容易.本文基于对开源项目的深入研究,总结了数字货币交 ...

  4. 神经网络与数字货币量化交易系列(1)——LSTM预测比特币价格

    首发地址:https://www.fmz.com/digest-topic/4035 1.简单介绍 深度神经网络这些年越来越热门,在很多领域解决了过去无法解决的难题,体现了强大的能力.在时间序列的预测 ...

  5. 计量经济与时间序列_ACF自相关与PACF偏自相关算法解析(Python,TB(交易开拓者))

    1   在时间序列中ACF图和PACF图是非常重要的两个概念,如果运用时间序列做建模.交易或者预测的话.这两个概念是必须的. 2   ACF和PACF分别为:自相关函数(系数)和偏自相关函数(系数). ...

  6. 一步步教你创建自己的数字货币(代币)进行ICO

    本文从技术角度详细介绍如何基于以太坊ERC20创建代币的流程. 写在前面 本文所讲的代币是使用以太坊智能合约创建,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 ...

  7. [币严区块链]数字货币交易所之比特币(BTC)钱包对接 | 自建节点JSON-RPC访问

    BTC钱包对接流程 一.   部署BTC钱包节点 二.   分析BTC钱包的API 三.   通过JSON-RPC访问BTC钱包API 四.   部署测试 一.部署钱包节点 交易平台对接BTC之前,要 ...

  8. [币严区块链]数字货币交易所之以太坊(ETH)钱包对接(四) 使用web3j对接以太坊钱包

    本文给大家介绍了 Web3j Java 版本的框架的基本使用,大家可根据本文的内容进行扩展性的练习,对其他 API 的使用进行尝试. 使用web3j对接以太坊钱包 一.开发准备事项 启动 Geth 此 ...

  9. 央行辟谣未发行“DC/EP”和“DCEP” 法定数字货币仍在测试阶段

    http://www.sohu.com/a/354709423_100157595 近期,中国央行再度就法定数字货币发布公告,指出目前系统仍处于研究测试过程中,市场上交易“DC/EP”或“DCEP”均 ...

随机推荐

  1. Python_网络编程_socket()

    什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 详细资 ...

  2. 07 . 前端工程化(ES6模块化和webpack打包)

    模块化规范 传统开发模式主要问题 /* 1. 命名冲突 2. 文件依赖 */ 通过模块化解决上述问题 /* 模块化就是把单独的一个功能封装在一个模块(文件)中,模块之间相互隔离, 但是可以通过特定的接 ...

  3. Java-Annotation的一种用法(消除代码中冗余的if/else或switch语句)

    Java-Annotation的一种用法(消除代码中冗余的if/else或switch语句) 1.冗余的if/else或switch ​ 有没有朋友写过以下的代码结构,大量的if/esle判断,来选择 ...

  4. conda / cuda / screen 常用命令总结

    记录一些常用的 conda / cuda / screen 相关的命令,这些在跑深度学习代码时经常用到. conda 下面的命令在 Ubuntu 下的 4.8.3 版本 conda 均正确工作. 查看 ...

  5. ABBYY FineReader 14新增了什么

    FineReader 是一款一体化的 OCR 和PDF编辑转换器,随着版本的更新,功能的增加,FineReader 14的推出继续为用户在处理文档时提高业务生产力,该版本包含若干新特性和功能增强,包括 ...

  6. 如何在Camtasia中对录制视频添加注释

    今天我给大家带来的是一款专门录制屏幕动作的软件Camtasia,拥有了使我们的屏幕录像拥有全新的剪辑速度和更换颜色背景的特性.它不仅可以完成我们屏幕录像的心愿,还可以进行对录制的视频进行后期的编辑.这 ...

  7. [poi使用]使用excel模版导出excel

    ​ Apache POI是基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式的开源项目.简而言之,您可以使用Java读写MS ...

  8. 【P1972】HH的项链——树状数组+询问离线

    (题面摘自luogu) 题目背景 无 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集 ...

  9. C语言编程学习者问答第一期,看看这些问题你出现过吗?

    今天给大家分享我们学习基地的小伙伴遇到的问题,以及正确回答,看看这些问题你遇到过吗~ 1.这张图片文字"第二段"后面的说法是否有问题?   回答: 这是二进制的加法,很多人会误解减 ...

  10. JavaScript的执行上下文,真没你想的那么难

    作者:小土豆 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/2436173500265335 前言 在正文开始前,先来看 ...