数字货币市场的量化交易工具有哪些?

论坛 期权论坛 期权     
用Python的交易员   2018-9-26 01:16   52376   9
[h1]如题,提问的范围包括所有数字货币市场的量化交易工具,不限功能、不限语言。[/h1]

比如:


以上只是题主最近看过的一些例子,希望能通过这个问题比较全面的了解下目前币圈的整个量化交易生态,如果认识的话也欢迎邀请以上这些工具的作者或者公司来回答~~~
分享到 :
0 人收藏

9 个回复

倒序浏览
2#
杨丰恺  2级吧友 | 2018-9-26 01:16:03 发帖IP地址来自
作为一个关注加密货币市场超过一年的金融人,我来介绍一下现在币圈所谓量化交易平台的现状:
  • 现在所谓的币圈量化基本上还是程序员在弄,正经的金融工程狗还没有进入这个圈子,如果你想找Quantopian,RiceQuant那样的回测平台,是没有的。现在的币圈量化产品也因此基本停留在trading bot的阶段(自带简单的technical analysis/ML/arbitrage驱动),不支持复杂策略的历史回测,他们做的产品不是从金融理论和严谨的金融逻辑出发的,更多是本能般地痴迷于自动化和炫技,大都是forward looking的黑盒子,不注重历史数据的积累。(Zenbot,Gekko,BotVS皆属于这一类)
  • 在量化回测领域,你不能不提Zipline,就像你买电脑时,不是Intel的芯会让你犹豫再三一样,backtester不是zipline的量化回测平台,我是信不过的。那么币圈有没有内核是zipline的量化回测平台呢,是有的
  • 阿布量化(应该是用了Zipline内核,百度数据部门的程序员弄的,非常自恋,每个函数的命名都以自己的名字开头,涵盖所有市场百科大全式的回测平台,加密货币市场只有比特币和莱特币的历史数据,数据种类和时间范围都有限,在未来也不一定会维护数据库。阿布很努力,技术很牛,可产品不了解真实需求,缺乏金融逻辑,是Data Science和Computer Science视角的人做出来的。)
  • 微宽网(火币弄的,但是很早就不再维护了,现在网页已经打不开了)
当然还有一种可能性,就是在本地部署Zipline模块,自己找数据,清理数据,自己回测自己的策略,这是现在唯一靠谱可行的办法,代码如下。


因为赞比较多,在这里特地声明一下,本文中的代码我不是原创作者,是转自http://Pythonprogramming.net,我只是参考了他的教程,那里详细的介绍了如何在本地部署zipline及整理数据,我非常感谢原代码作者Sendtex





  1. import jupyterthemesfrom jupyterthemes import jtplotjtplot.style(theme='grade3')jtplot.style(context='poster', fscale=1.4, spines=False, gridlines='--')jtplot.style(ticks=True, grid=True, figsize=(16, 9))import pandas as pdfrom collections import OrderedDictimport pytzfrom zipline.api import order, record, symbol, set_benchmark, order_target_percent, get_open_ordersfrom zipline.utils.calendars.exchange_calendar_twentyfourhr import TwentyFourHRimport ziplineimport matplotlib.pyplot as pltfrom datetime import datetimedef initialize(context):    set_benchmark(symbol("BTC"))def handle_data(context, data):    slowma = data.history(symbol("BTC"), fields='price', bar_count=50, frequency='1m').mean()    fastma = data.history(symbol("BTC"), fields='price', bar_count=10, frequency='1m').mean()    if fastma  slowma:        if symbol("BTC") not in get_open_orders():            order_target_percent(symbol("BTC"), 0.96)    record(BTC=data.current(symbol('BTC'), fields='price'))data = OrderedDict()data['BTC'] = pd.read_csv("BTC-USD.csv")data['BTC']['date'] = pd.to_datetime(data['BTC']['time'], unit='s', utc=True)data['BTC'].set_index('date', inplace=True)data['BTC'].drop('time', axis=1, inplace=True)data['BTC'] = data['BTC'].resample("1min").mean()data['BTC'].fillna(method="ffill", inplace=True)data['BTC'] = data['BTC'][["low","high","open","close","volume"]]print(data['BTC'].head())panel = pd.Panel(data)panel.minor_axis = ["low","high","open","close","volume"]panel.major_axis = panel.major_axis.tz_localize(pytz.utc)print(panel)perf = zipline.run_algorithm(start=datetime(2018, 2, 7, 0, 0, 0, 0, pytz.utc),                      end=datetime(2018, 3, 26, 0, 0, 0, 0, pytz.utc),                      initialize=initialize,                      trading_calendar=TwentyFourHR(),                      capital_base=10000,                      handle_data=handle_data,                      data_frequency ='minute',                      data=panel)```                                 low         high         open        close  \    date                                                                          2018-02-05 17:48:00  7170.000000  7171.000000  7170.000000  7170.990234       2018-02-05 17:49:00  7131.990234  7171.000000  7170.990234  7131.990234       2018-02-05 17:50:00  7120.000000  7137.359863  7132.000000  7120.020020       2018-02-05 17:51:00  7113.000000  7121.000000  7120.040039  7113.000000       2018-02-05 17:52:00  7113.000000  7122.000000  7113.000000  7121.990234                               volume      date                                2018-02-05 17:48:00   3.425961      2018-02-05 17:49:00   5.209975      2018-02-05 17:50:00  14.767619      2018-02-05 17:51:00  18.237879      2018-02-05 17:52:00  22.768671          Dimensions: 1 (items) x 72277 (major_axis) x 5 (minor_axis)    Items axis: BTC to BTC    Major_axis axis: 2018-02-05 17:48:00+00:00 to 2018-03-27 22:24:00+00:00    Minor_axis axis: low to volumeperf.portfolio_value.pct_change().fillna(0).add(1).cumprod().sub(1).plot(label='BTC Momentum Strategy')perf.BTC.pct_change().fillna(0).add(1).cumprod().sub(1).plot(label='Benchmark:BTC')plt.legend(loc=2)plt.ylabel('Cumulative Return')plt.title('Momentum AlgoTrading with BTC')plt.show()
复制代码




3#
Freeman  2级吧友 | 2018-9-26 01:16:04 发帖IP地址来自
据我自己的观察,传统的金工团队确实是成批进入加密货币市场了,个人就接触了两位数的在传统机构操盘五年以上的老司机了,资金量还不小。有这么大的需求,供应很快就会有的。
币宽(BitQuant  http://www.nextfintech.io)最近用这个在做回测,是公测版,不过已经提供了几个主流所的回测环境,和实盘交易。
使用习惯上非常类似传统的通用的股票量化工具,支持python,只需重写onbar/ontick即可构成自己的策略。
回测:
支持了OK  火币  Bitfinex几个主流交易所,貌似所有币对都支持了。支持到了tick级的回测。
实盘:
上面支持的所也支持了实盘交易,我绑定了我火币的key,交易没问题---是PC客户端,策略和key号称存在本地,资金也不多,所以基于信任就绑定了。


缺点:
现在还没支持期货;
OK的历史数据貌似有些问题。


4#
匿名用户   | 2018-9-26 01:16:05 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
5#
成天幻想一夜暴富  1级新秀 | 2018-9-26 01:16:06 发帖IP地址来自
推荐风泉量化,看放出来的收益图感觉不错,而且本人也在用
6#
子明  2级吧友 | 2018-9-26 01:16:07 发帖IP地址来自
这种东西还是自己写最好。我研究过很多框架。发现都达不到我的要求。所以自己写了一套。主要是要保证模拟交易和实盘基本一致。其次,数据全部用tick数据。金额小稳定盈利不是难事。但是金额一大就完全不一样了。
7#
娜小妞  3级会员 | 2018-9-26 01:16:08 发帖IP地址来自
士大夫广告词
8#
llyygzyyxxyyyd  4级常客 | 2018-9-26 01:16:09 发帖IP地址来自
开源实盘交易系统vn.crypto,
vnpy/vnpy

9#
李翠花  3级会员 | 2018-9-26 01:16:10 发帖IP地址来自
10#
王驿站  1级新秀 | 2018-9-26 01:16:11 发帖IP地址来自
现在来问量化有点不是时候,不是很挣钱了,大钱深度又不够.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:206
帖子:10
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP