Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1176

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1177

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1178

Warning: Trying to access array offset on value of type bool in /www/wwwroot/blockchain/wp-content/themes/Grace8.2/functions_suxingme.php on line 1294
量化资源整理 @ 数字货币量化投资技术分析 有些国外的平台、社区、博客如果连接无法打开,那说明可能需要“科学”上网 量化交易平台 国内在线量化平台: BigQuant – 你的人工智能量化平台 – 可以无门槛地使用机器学习、人工智能开发量化策略,基于python,提供策略自动生成器 镭矿 – 基于量化回测平台 果仁网 – 回测量化平台 京东量化 – 算法交易和量化回测平台 聚宽 – 量化回测平台 优矿 – 通联量化实验室 Ricequant – 量化交易平台 况客 – 基于R语言量化回测平台 Factors – 数库多因子量化平台 诸葛量化 – 量化交易平台 宽狗量化 – 回测量化平台 国外量化平台: Quantopian 研究、回测、算法众包平台 QuantConnect 研究、回测和投资交易 Quantstart 研究、回测和投资交易、数据科学网站 ASC 研究、交易平台 zulutrade 自动交易平台 quantpedia 研究、策略平台 algotrading101 策略研究平台 investopedia 可以股票、外汇模拟交易的财经网站 Amibroker 提供系统交易工具的一家公司 AlgoTrades 股票、ETF、期货自动交易系统 Numerai 数据工程师众包的一家对冲基金 WealthFront 财富管理平台 Betterment 个人投资平台 TradeLink 量化交易平台 ActiveQuant 基于JavaScript开源交易开发框架 相关平台: 掘金量化 – 支持C/C++、C#、MATLAB、Python和R的量化交易平台 DigQuant – 提供基于matlab量化工具 SmartQuant – 策略交易平台 OpenQuant – 基于C#的开源量化回测平台 基于图表的量化交易平台 文华赢智 、TB、金字塔、MultiCharts 中国版 – 程序化交易软件、MT4、TradeStation Auto-Trader – 基于MATLAB的量化交易平台 BotVS – 云端在线量化平台 开源框架 Pandas – 数据分析包 Zipline – 一个Python的回测框架 vnpy – 基于python的开源交易平台开发框架 tushare – 财经数据接口包 easytrader – 进行自动的程序化股票交易 pyalgotrade – 一个Python的事件驱动回测框架 pyalgotrade-cn – Pyalgotrade-cn在原版pyalgotrade的基础上加入了A股历史行情回测,并整合了tushare提供实时行情。 zwPython – 基于winpython的集成式python开发平台 quantmod – 量化金融建模 rqalpha – 基于Python的回测引擎 quantdigger – 基于python的量化回测框架 pyktrader – 基于pyctp接口,并采用vnpy的eventEngine,使用tkinter作为GUI的python交易平台 QuantConnect/Lean – Lean Algorithmic Trading Engine by QuantConnect (C#,…
浅谈比特币现货做市策略 这篇文章是上一篇文章浅谈比特币期货做市策略的火币现货版本。现货的做市策略,跟期货做市很类似,复杂性甚至还不如期货做市策略(因为期货做市策略还要考虑锁仓、移仓、对手盘减仓等复杂的期货相关的处理逻辑)。 现货做市策略主要有以下几个模块: 1、短期趋势判断模块:判断短期的趋势,如果呈现极端行情,暂停做市;如果单边趋势较为明显,减少做市订单的委托数量。 2、做市模块(使用做市算法下单功能):分析买卖盘口信息,如果价差满足条件,利用做市算法下单功能,在上下买卖N档进行批量下单 3、再平衡模块(使用再平衡算法下单功能):分析当前持仓比例与初始持仓比例的差异(净头寸),如果超过一定限额,启动再平衡功能。再平衡功能启动后,系统利用再平衡算法下单功能,对净头寸进行消化处理(即到市场去对冲掉该部分净头寸。如果净头寸为多,则下达卖单;反之,则下达买单,直到净头寸减少到可承受的大小) 4、主循环:负责粘合1,2,3的逻辑并使之能够持续轮询执行。其中,1和2是顺序处理模块,3是独立的线程。 下面逐一介绍各个模块的代码构成。 一、短期趋势判断模块 使用如下函数判断短期趋势: # 价格趋势系数 def price_trend_factor(self, trades, buy1_price, sell1_price, buy2_price, sell2_price, buy3_price, sell3_price, vol_list, index_type=None, symmetric=True): prices = trades["price"].values.tolist() latest_trades = prices[-6:] mid_price = (buy1_price+sell1_price)/2*0.7 + (buy2_price+sell2_price)/2*0.2 + (buy3_price+sell3_price)/2*0.1 latest_trades.append(mid_price) is_bull_trend = False is_bear_trend = False last_price_too_far_from_latest = False has_large_vol_trade = False if latest_trades[-1] > max(latest_trades[:-1]) + latest_trades[-1]*0.00005 or (latest_trades[-1] > max(latest_trades[:-2]) + latest_trades[-1]*0.00005 and latest_trades[-1] > latest_trades[-2]): is_bull_trend = True elif latest_trades[-1] < min(latest_trades[:-1]) - latest_trades[-1]*0.00005 or (latest_trades[-1] < min(latest_trades[:-2]) - latest_trades[-1]*0.00005 and latest_trades[-1] < latest_trades[-2]): is_bear_trend = True if abs(latest_trades[-1] - latest_trades[-2]*0.7 - latest_trades[-3]*0.2 - latest_trades[-4]*0.1) > latest_trades[-1]*0.002: last_price_too_far_from_latest =…
基于比特币价差的统计套利策略 写了好几天的比特币行业的事情,想必只想挣钱的老哥们已经有点想看新轮子了。今天讲策略。 套利策略是量化交易中的常见策略,因其稳定、不受价格高低影响而备受量化交易者喜爱。特别是在数字资产市场,因其无涨跌幅度和24小时不间断交易的特性,各个交易平台经常会出现较大差价,非常适合程序化交易。传统套利是非常简单,相对风险很小的策略,下面分享一个有一定风险但是相对传统套利收益高一些的统计套利策略。 统计套利的基本思路是运用统计分析工具对一组相关联的价格之间的关系的历史数据进行研究分析,研究该关系在历史上的稳定性,并估计其概率分布,确定该分布中的极端区域,即否定域,当真实市场上的价格关系进入否定域时,则认为该种价格关系不可长久维持,套利者有较高成功概率进场套利。– mbalib 注意:统计套利是只针对有稳定性的价格关系进行的,那些没有稳定性的价格关系的套利风险是很大的。价格关系是否稳定直接决定着统计套利能否成立,因此在对价格关系的历史数据进行统计分析的时候,首先要检验价格关系在历史数据中是否稳定。一组价格关系如果是稳定的,那么必定是存在着某一种均衡关系维持机制,一旦价格关系偏离均衡水平,维持机制就会起作用,将价格关系或快或慢地拉回到均衡水平。所以,要分析一组价格关系是否稳定,需要先定性分析是否存在着这样的均衡关系维持机制,然后再对历史数据进行统计分析进行验证,以证实该通过定性分析得到的关系维持机制在历史上确实是在发挥作用。– mbalib 注意,统计套利是一种有风险的策略,跟我们通常理解的“无风险套利”是有区别的。 本文分析火币网现货人民币比特币价格和OKCoin现货人民币比特币价格之间的差值,分析该差值是不是维持一个稳定的均衡关系(即随机过程中提到稳态过程),然后得出了该差值是一个稳态过程的结论。在该结论的基础上,本文设计了一个对该差值进行统计套利的系统原型,并分析了该系统的源码实现,对想做比特币价差套利的朋友有一定的借鉴意义。 一、协整分析 我们对火币的买一价格和okcoin的卖一价格进行协整分析,画出来的曲线如下: 我们对价差(火币买一减去okcoin卖一价格之差)进行统计,画出来如下曲线: 我们对价差(火币买一减去okcoin卖一价格之差)进行ADF检查,结果如下: 协整p值为非常小的数字,因此我们可以判定这两者之间有非常好的协整关系,统计套利策略可以用在这个价差上。具体思路是:当价差为正(且偏离平均值达到一定的幅度)的情况下,我们可以从okcoin上买比特币(价格为okcoin卖一价格),然后从火币上卖去同等数量的比特币(价格为火币买一价格);当价差收缩到接近于零时,我们对刚才的操作进行反向平仓操作。 那么,如果该价差(火币买一减去okcoin卖一价格之差)为负数(且偏离平均值达到一定的幅度)的情况下,意味着火币的价格比okcoin低,这个时候,我们需要对火币的卖一价格和okcoin的买一价格进行协整分析,画出来的曲线如下: 我们对价差(okcoin买一减去火币卖一价格之差)进行统计,画出来如下曲线: ADF检查的结果如下: 这个协整p值仍然为非常小的数字,因此我们可以判定这两者之间也有非常好的协整关系,统计套利策略也可以用在这个价差上。尤其是当价差为正(且偏离平均值达到一定的幅度)的情况下,我们可以从火币上买比特币(价格为火币卖一价格),然后从okcoin上卖去同等数量的比特币(价格为okcoin买一价格);当价差收缩到接近于零时,我们对刚才的操作进行反向平仓操作。 由此,一个双向价差套利模型就出来了。 二、源码实现 请参考WeQuant开源项目:liveStrategyEngine 三、如何套期保值对冲比特币现货头寸分风险 (1)计算出现货平台的比特币总市值+期货平台的比特币保证金市值 注意,需要计入所有现货平台的比特币总市值,比如你在火币和okcoin上做搬砖,那就需要算出你在两个现货平台所持有的比特币总市值(按法币计算,比如人民币) (2)选择期货平台的杠杆倍数,比如5倍 (3)对冲的结果必须是:期货平台的空头头寸(用法币计算) = 期货平台的保证金市值 * 开仓比例 * 杠杆倍数 = 现货平台的比特币总市值+期货平台的比特币保证金市值 以上就是统计套利的基本思路,不过仍然还是要强调任何投资都有风险,请一定要量力而行,多用科学的方法,控制风险。 Source by: WeQuant-Jason
一、什么是做市策略 做市策略(market-maker strategy)是一种风险中立(risk-neutral)盘口价差套利策略。其基本原理是:在盘口的卖一和买一价之间,插入委买单和委卖单,如果插入的两个单子都成交的话,做市商就吃到了买卖单之间的价差,而整个过程结束后,做市商所持有的头寸并没有变化。如果买卖单之间的价差扣除各种交易手续费之后还有盈余,那么该做市商就获得了相应的盈利。 做市策略是一种增加交易所流动性的策略,一般来讲,成熟的交易市场为了提升自身的流动性,会用低佣金(甚至为做市商提供流动性奖励金)的办法,吸引做市商来该市场做市。 二、做市策略需要注意的事项 1 做市时机的选择。做市商本质上是整个市场的交易对手方。如果市场呈现急剧的单边行情,做市商下达的买卖委托单会大概率出现单边成交的情况,因此做市商手中就会积累大量的风险头寸,这是做市商不想承担的风险。因此,做市商在选择是否下达做市指令之前,都会预判一下市场的趋势明显程度,如果市场短期内呈现非常明显的趋势信号,做市商就会相应地减少自己的做市单数量(甚至停止做市) 2 净头寸的处理。做市商手中累计的净头寸,可以通过很多种办法来处理,下面列举其中两种: (1)在下一次做市时,处理掉累积的净头寸。比如做市商目前净头寸有2BTC,下次做市时,他就可以下达一个卖3BTC的委卖单,一个买1BTC的委买单。这种做法好处是净头寸可以及时得到处理,坏处是净头寸处理的时机(价格)可能不是最优的。 (2)第二种方法是开立另外一个独立的程序,对累积的净头寸进行成本计算,然后按照成本价*(1+一定比例的手续费+一定比例的profit margin),将该头寸反向甩出市场,甩出方法又有两种:a. 按限价单从价优到价劣依次甩出市场,超时不成交的部分则撤单,等待下次机会;b. 先按限价单从价优到价劣依次甩出市场,超时不成交的部分,则按市价单甩货。第一种方法的好处是甩货成本可控,但是甩货周期可能会拖得比较长;第二种方法则能有效地控制甩货周期,但是成本不可控,孰优孰劣,需要做市商根据自己的风险偏好慎重考虑。 3 期货换合约(移仓)的处理 期货合约都有一个到期日,在到期日结束时刻的前几个小时,我们不建议做市商继续做市,而是利用这几个小时,将即将到期的期货合约进行移仓。移仓的意思就是平掉当前期货合约的仓位,然后再开同样仓位大小的下周合约。当然,移仓也是需要考虑成本的。如果当前持仓是多头,那么我们希望移仓的时间点是在下周期货贴水最厉害的时候;反之,我们则希望移仓的时间点是在下周期货升水最厉害的时候。等移仓做完以后,做市策略继续恢复执行。 三、一个典型的比特币期货做市策略源码分享 注意,以下的策略需要其他WeQuant基础类库的支持才能运行,这里仅给出策略核心源码,是为了让读者对做市策略本身有一个具体的认识,而不用去太纠结底层下单、统计收益、收发邮件、进程监控等技术细节。关于代码的详细解释,欢迎入QQ群讨论:519538535。 期货做市策略源码: #!/usr/bin/env python # -*- coding: utf-8 -*- from signalGenerator.futureSpotArb import * from signalGenerator.strategyConfig import changeFutureContractConfig as rollCfg import time, threading class FutureMarketMaker(FutureSpotArb): def __init__(self, startRunningTime, orderRatio, timeInterval, orderWaitingTime, coinMarketType, open_diff, close_diff, heart_beat_time, depth_data, account_info, transaction_info, maximum_qty_multiplier=None, dailyExitTime=None): super(FutureMarketMaker, self).__init__(startRunningTime, orderRatio, timeInterval, orderWaitingTime, coinMarketType, open_diff, close_diff, heart_beat_time, depth_data, account_info, transaction_info, maximum_qty_multiplier=maximum_qty_multiplier, dailyExitTime=dailyExitTime) # 显示在邮件中的策略名字 self.strat_name = "期货做市-%s" % startRunningTime.strftime("%Y%m%d_%H%M%S") self.trade_threshold = 0.0003 * 1.01 self.sell_cut = 0.6 self.buy_cut = 0.6 self.leverage = 5 self.remaining_delta_cash = 0 # 策略下单参数 self.coin_type = helper.HUOBI_COIN_TYPE_BTC…
价值定投策略在比特币市场中的应用 今天WeQuant君的朋友圈被如下图片刷屏了: 这几个朋友是WeQuant君崇拜的比特币资深玩家,在这个市场翻手为云,覆手为雨。在这几位朋友看来,比特币是一个非常值得长期看好的投资品种,不然的话,何来“一币一别墅”之说呢? 中本聪的算法决定了比特币只有有限的2100万枚,而央行的印钞机却是在全负荷运转,人民币兑美元汇率一次次跌破历史低位,国家外汇管控越来越严格,固定资产泡沫横飞……在这样的背景下,比特币这种稀缺的投资标的被外界关注和热捧,也是情理之中的。 假如你也是一个比特币的铁杆粉丝,并希望通过长期持续投资的方式慢慢屯币,但是你又不知道什么样的屯币方法是靠谱的、低成本的,那么,我可以告诉你,本篇文章将会是你的菜。 一、什么是价值定投策略 相信不少朋友有过定投基金的理财经验。所谓定投,就是指定期投入一些资金,使得所持有的资产的市值呈现线性增长的趋势。在比特币市场,定投指的就是你每个月(或者每天,或其他自定义的频率)投入一些钱,使得你的比特币持仓的市值呈现一个阶梯状的上升曲线。 如下就是一个价值定投策略的比特币市值走势图: 假如一月份的币价为4000元,在一月底我们要建立2万元的仓位,这个仓位对应着5个比特币的市值。所以我们需要购买5个比特币,花费2万元; 到了二月份,持仓的目标市值是4万元。假如币价下跌至2000元,则二月份需要买入的比特币数量为:[二月份目标市值(4万元)- 现有仓位市值(2000*5)]/二月份币价(2000元)=15个。所以我们需要购买15个比特币,花费3万元(币价2000元);购入后,持仓总比特币数量为20个。 到了三月份,持仓的目标市值是6万元。假如币价上升至5000元,现有持仓市值 = 5000*20 = 10万元,已经超过6万元的目标市值,这个时候,就需要卖出比特币,卖出的数量为:[现有持仓市值(10万元)- 三月份目标市值(6万元)]/三月份币值(5000元)= 8个。所以我们需要卖出8个比特币,收入4万元(币价5000元);卖出比特币后,持仓总比特币数量为12个。 计算下来,这3个月的盈利如下: 最终的净资产 = 三月份目标市值(6万元)+ 卖币所得的现金(4万元) 期初的净资产 = 0 投入的现金 = 2万元(一月份)+ 3万元(二月份) 盈利 = 最终的净资产 – 最初的净资产– 投入的现金 = 5 万元 从上面的计算可以看出,定投策略无意中做到了低吸高抛,获得了不菲的收益(3个月100%的回报)。 二、实盘代码分析 在前面文章 小白零基础搭建一个比特币策略实盘引擎 中,我已经讲述了一个实盘引擎应该具备的各项功能,以及公开了实盘引擎的源代码。在这次的分享中,我将基于实盘引擎代码,开发出适配于该实盘引擎的比特币价值定投策略源码。 1. 策略初始化函数 initialize 设定执行频率(frequency),标的物(火币比特币:huobi_cny_btc)和基准(火币比特币:huobi_cny_btc) 设定其他策略所需的参数(比如每个投资周期需要增加的持仓市值,当前的投资周期以及初始持仓市值等)放入context.user_data中 2. 计算每一个frequency需要买入/卖出的金额(正为买入,负为卖出) 3. 实现每一个固定数据更新频率下的回调函数:handle_data 4. 修改接口函数liveStrategyEngine/main.py 5. 执行结果展示 我们看到,策略确实在定期买入比特币,实现了持仓市值的线性递增。 三、后话 比特币市场是一个非常无效的市场,在这样的市场中,很多被用烂了的传统策略竟然也可以跑得非常有效果,这对于传统量化从业者来讲,是一个非常好的知识变现机会。 Source by: WeQuant-Jason

关注我们的公众号

微信公众号