交易

交易

“韭菜”能查看鲸鱼持仓信息?Coinbase的新数据工具有点6

攻略8btc 发表了文章 • 2019-07-18 11:54 • 来自相关话题

美国数字资产交易所Coinbase推出了一个具有争议性的工具,其能够帮助入门级数字资产投资者了解经验丰富的交易者在做什么。

周三,该交易所宣布提供了一套新的信号工具,而这个工具会监视并广播Coinbase顶级交易员的活动。

Coinbase在其官方博客文章中解释说:

    “顶级持有者的活动信号,是指那些拥有大量资产余额(排名前10%)的Coinbase客户在过去24小时内通过交易净增加(购买)或减少(出售)其资产持仓的信息,这个信息大约每2小时更新一次。”



CoinBase发言人在接受外媒CoinDesk采访时进一步解释称,顶级持有者的监视范围仅限于个人,而不包括机构。

此外,CoinBase还计算了另外两个数据点:(1)平均持有时间(2)每项资产的流行程度。而这两个功能,CoinBase是依赖于整个Coinbase用户群的数据,其会告诉你在将某项特定资产出售或发送到其他地址之前,人们会保留多长时间。






不幸的是,当你将资产转移到硬件钱包或一种安全钱包时,Coinbase会认为你不再“持有”该资产,因为其已经不在你的Coinbase账户上了。

最后,Coinbase会查看价格数据,以确定多个资产的价格是否相关。例如,如果X币与Y的相关性为0%,则意味着它们会并行地上下移动。而负相关,则意味着两个资产会向相反的方向移动。此功能可帮助投资者构建更均衡的密码货币投资组合。

 
质疑声:CoinBase是在赶大户走?


针对CoinBase提供的辅助工具,行业人士Kyle Samani评论称:






    “有人能给我解释一下吗?我真的不太理解,我的直接反应是,这将鼓励鲸鱼将其资产转移至其他地方。

    为什么要信任一家向其他交易者提供你的信息的交易所(尽管是聚合信息)?。”



对此疑问,Coinbase高级工程师Will Drevo的解释是,Coinbase的顶级账户持有者有购买而非出售投资者投资组合持仓的倾向。他在一篇博文中写道:

    “从历史上看,当顶级持有者异常看涨或看跌时,这表明市场状况正在发生变化,但并非总是如此。”



Drevo认为,利用这些信息并不总是对交易员有利,也不应直接将其视为投资策略或建议。相反,其鼓励用户根据自己的需求、财务情况和风险承受能力创建和管理自己的投资策略。


编者评:Coinbase的初衷是通过推出这套辅助工具来吸引新的用户,并增加平台用户黏性,但公布大户持仓信息显然对大户而言并没有太多好处,好在这个信息并不是实时公布的,而是设置了2小时的间隔时间(相比之下CME是每周才更新),否则大户不提币走人才怪,而这个时间差,也意味着一旦大户出现了交易倾向,其可能会快速进行操作,在一定程度上会加大市场波动性。值得玩味的是,Coinbase表示其并没有监视机构账户,而只监视了个人账户,这一决定似乎又会激起更多的争论。


原文:https://blog.coinbase.com/trade-smarter-on-coinbase-b3e6852fa2ce
https://www.coindesk.com/coinbase-releases-new-data-tools-for-first-time-crypto-investors
编译:洒脱喜 查看全部
201907180228246354.png

美国数字资产交易所Coinbase推出了一个具有争议性的工具,其能够帮助入门级数字资产投资者了解经验丰富的交易者在做什么。

周三,该交易所宣布提供了一套新的信号工具,而这个工具会监视并广播Coinbase顶级交易员的活动。

Coinbase在其官方博客文章中解释说:


    “顶级持有者的活动信号,是指那些拥有大量资产余额(排名前10%)的Coinbase客户在过去24小时内通过交易净增加(购买)或减少(出售)其资产持仓的信息,这个信息大约每2小时更新一次。”




CoinBase发言人在接受外媒CoinDesk采访时进一步解释称,顶级持有者的监视范围仅限于个人,而不包括机构。

此外,CoinBase还计算了另外两个数据点:(1)平均持有时间(2)每项资产的流行程度。而这两个功能,CoinBase是依赖于整个Coinbase用户群的数据,其会告诉你在将某项特定资产出售或发送到其他地址之前,人们会保留多长时间。

201907180234583878.png


不幸的是,当你将资产转移到硬件钱包或一种安全钱包时,Coinbase会认为你不再“持有”该资产,因为其已经不在你的Coinbase账户上了。

最后,Coinbase会查看价格数据,以确定多个资产的价格是否相关。例如,如果X币与Y的相关性为0%,则意味着它们会并行地上下移动。而负相关,则意味着两个资产会向相反的方向移动。此功能可帮助投资者构建更均衡的密码货币投资组合。

 
质疑声:CoinBase是在赶大户走?


针对CoinBase提供的辅助工具,行业人士Kyle Samani评论称:

201907180213329718.jpg


    “有人能给我解释一下吗?我真的不太理解,我的直接反应是,这将鼓励鲸鱼将其资产转移至其他地方。

    为什么要信任一家向其他交易者提供你的信息的交易所(尽管是聚合信息)?。”




对此疑问,Coinbase高级工程师Will Drevo的解释是,Coinbase的顶级账户持有者有购买而非出售投资者投资组合持仓的倾向。他在一篇博文中写道:


    “从历史上看,当顶级持有者异常看涨或看跌时,这表明市场状况正在发生变化,但并非总是如此。”




Drevo认为,利用这些信息并不总是对交易员有利,也不应直接将其视为投资策略或建议。相反,其鼓励用户根据自己的需求、财务情况和风险承受能力创建和管理自己的投资策略。


编者评:Coinbase的初衷是通过推出这套辅助工具来吸引新的用户,并增加平台用户黏性,但公布大户持仓信息显然对大户而言并没有太多好处,好在这个信息并不是实时公布的,而是设置了2小时的间隔时间(相比之下CME是每周才更新),否则大户不提币走人才怪,而这个时间差,也意味着一旦大户出现了交易倾向,其可能会快速进行操作,在一定程度上会加大市场波动性。值得玩味的是,Coinbase表示其并没有监视机构账户,而只监视了个人账户,这一决定似乎又会激起更多的争论。


原文:https://blog.coinbase.com/trade-smarter-on-coinbase-b3e6852fa2ce
https://www.coindesk.com/coinbase-releases-new-data-tools-for-first-time-crypto-investors
编译:洒脱喜

了解比特币链下指标,改善您的交易

攻略leekgeek 发表了文章 • 2019-07-01 18:53 • 来自相关话题

免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。







“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
bitcoin-off-chain-metrics.jpg


免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。

hodl_waves.png



“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu

 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

比特币3个月暴涨3倍,该逃顶了吗?你应该知道的比特币链上指标

攻略leekgeek 发表了文章 • 2019-06-27 12:32 • 来自相关话题

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。






Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
metrics.jpg

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。


priceModels.png

Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

回报率850%? 这个用Python优化的比特币交易机器人简直太烧脑了...

攻略blockchaincamp 发表了文章 • 2019-06-13 12:42 • 来自相关话题

上个月,AI 工程师 Adam King 结合人工智能在预测方面得天独厚的优势,提出使用深度强化学习构建加密货币自动交易的程序。在展示模型中,程序的收益率竟达到了惊人的 60 倍(只讨论技术,无关投资建议)。

但在当时,这个展示模型略显粗糙。虽然能获得收益,但它并不稳定。使用它可能让你赚得盆满钵盈,也有可能让你赔得一无所有,颇有些“富贵险中求”的意味。

不稳定的问题一直困扰着 Adam 小哥,经过一个月的蛰伏,小哥提出将特征工程和贝叶斯优化两大杀器引入模型。这些改进会奏效么?收益率又能提升多少呢?一起来看看 Adam 小哥的最新力作吧!



在上一篇文章中(《60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具》),我们使用深度强化学习创建了一个可以赚钱的比特币自动交易智能体。虽然这个智能体能够做到自动交易比特币获得收益,但它的收益率并没有让人眼前一亮,今天我们会大幅度改进这个比特币交易智能体,从而提高它的收益率。

需要注意的是,本篇文章的目的是测试当下最先进的深度强化学习技术是否能与区块链相结合,创造出一个可以盈利的比特币自动交易智能体。目前看来业界都还没有意识到深度强化学习在自动交易方面强大的潜力,反而认为它并不是一个“能用来构建交易算法的工具”。不过,深度学习领域的最新进展已经表明,在同一个问题上强化学习智能体通常能够比普通的监督学习智能体学习到更多的特征。

出于这个原因,我做了相关的实验来探究基于深度强化学习的交易智能体究竟能达到怎样的收益率,当然了,结果也可能会是深度强化学习有着很强的局限性以至于并不适合做交易智能体,但不去尝试谁又知道结果如何呢?

首先,我们将会改进深度强化学习模型的策略网络( policy network )并使输入数据变得平稳,以便交易智能体能在很少的数据中学习到更多的特征。

接下来,我们将使用当下先进的特征工程方法来改善交易智能体的观察空间,同时微调交易智能体的奖励函数( reward function )以帮助它发现更好的交易策略。

最后,在训练并测试交易智能体获得的收益率之前,我们将使用贝叶斯优化的方法来寻找能最大化收益率的超参数。

前方高能,系好安全带,让我们开始这场干货满满的探索之旅吧。


关于深度强化学习模型的改进


在上一篇文章中,我们已经实现了深度强化学习模型的基本功能,

GitHub 地址:

https://github.com/notadamking/Bitcoin-Trader-RL

当务之急是提高深度强化学习智能体的盈利能力,换句话说就是要对模型进行一些改进。


循环神经网络(Recurrent Neural Network,RNN)

我们需要做的第一个改进就是使用循环神经网络来改进策略网络,也就是说,使用长短期记忆网络( Long Short-Term Memory ,LSTM )网络代替之前使用的多层感知机( Multi-Layer Perceptron,MLP )网络。由于循环神经网络随着时间的推移可以一直保持内部状态,因此我们不再需要滑动“回顾窗口“来捕捉价格变动之前的行为,循环神经网络的循环本质可以在运行时自动捕捉这些行为。在每个时间步长中,输入数据集中的新一个数据与上一个时间步长的输出会被一起输入到循环神经网络中。

因而长短期记忆网络可以一直维持一个内部状态。在每个时间步长中,智能体会新记住一些新的数据关系,也会忘掉一些之前的数据关系,这个内部状态也就会随之更新。





循环神经网络会接收上一个时间步长的输出





循环神经网络如何处理上一个时间步长的输出与这一个时间步长的输入





长短期记忆网络实现代码 LSTM_model.py


介于循环神经网络对于内部状态得天独厚的优势,在这里,我们使用长短期记忆网络策略更新了近端策略优化 PPO2 模型。


数据平稳性

在上一篇文章中我曾指出比特币交易的数据是非平稳的(Non-Stationary,即存在一些趋势,而不能仅仅看作是随机的波动),因此,任何机器学习模型都难以预测未来。

    平稳时间序列是平均值,方差和自相关系数(与其自身的滞后相关)都恒定的时间序列。


而且,加密货币价格的时间序列有着很明显的趋势和季节效应(季节效应是指与季节相关联的股市非正常收益,是股市中的一种“异像”,是与市场有效性相悖的情况),这两者都会影响算法对时间序列预测的准确率,所以在这里,我们需要使用差分和变换的方法来处理输入数据,从现有的时间序列中构建一个正常的数据分布来解决这个问题。

从原理上来说,差分过程就是给任意两个时间步长内加密货币币价的导数(即收益率)做差值。在理想情况下,这样做可以消除输入时间序列中存在的趋势,但是,差分处理对季节效应并不奏效,处理后的数据仍然具有很强的季节效应。这就需要我们在差分处理之前进行对数处理来消除它,经过这样的处理最终我们会得到平稳的输入时间序列,如下方右图所示。





从左到右分别为:加密货币的收盘价,差分处理后的收盘价,对数处理和差分处理后的收盘价





对数处理和差分处理的代码 diff_and_log_time_series.py


处理后的输入时间序列平稳性如何,我们可以使用增广迪基-福勒检验( Augmented Dickey-Fuller test )验证一下。

运行以下代码:





增广迪基-福勒检验的代码 adfuller_test.py


我们得到的 p 值为 0.00 ,这意味着我们拒绝假设检验中的零假设并确认处理后的输入时间序列是平稳的。

我们可以运行上面的增广迪基-福勒检验代码来检验输入时间序列的平稳性。

在完成了这项工作之后,接下来我们将使用特征工程的方法进一步优化交易智能体的观察空间。


特征工程


为了进一步提升交易智能体的收益率,我们需要做一些特征工程。

    特征工程是使用该领域知识来生成额外的输入数据从而优化机器学习模型的过程。


具体到交易智能体,我们将在输入数据集中添加一些常见且有效的技术指标,以及 Python 数据分析程序库 StatsModels 中季节效应预测模型 SARIMAX 的输出。这些技术指标会为我们的输入数据集带来一些相关的,但可能会滞后的信息,这些信息能大大提升交易智能体预测的准确性。这些优化方法的组合可以为交易智能体提供一个非常好的观察空间,让智能体学习到更多的特征,从而获得更多的收益。


技术分析


为了选择技术指标,我们将比较 Python 技术分析库 ta 中可用的所有 32 个指标( 58 个特征)的相关性。可以使用数据分析工具 pandas 来计算相同类型的各个指标(如动量,体积,趋势,波动率)之间的相关性,然后在每种类型中仅选择最不相关的指标作为特征。这样,就可以在不给观察空间带来过多噪音干扰的情况下,最大程度地发掘这些技术指标的价值。





使用 Python 高级可视化库 seaborn 做出的比特币数据集上技术指标相关性的热力图


结果显示,波动率指标以及一些动量指标都是高度相关的。在删除所有重复的特征(每个类型中相关性的绝对平均值大于 0.5 的特征)之后,我们将剩余的 38 个技术特征添加到交易智能体的观察空间中。

在代码中,我们需要创建一个名为 add_indicators(添加指标)的函数来将这些特征添加到数据帧中,为了避免在每个时间步长中重复计算这些特征,我们只在交易智能体环境初始化的过程中调用 add_indicators 函数。





交易智能体环境初始化的代码 initialize_env.py


在这里,初始化交易智能体环境,在进行数据平稳性处理之前将特征添加到了数据帧中。


统计分析


接下来我们需要添加预测模型。

由于季节效应自回归移动平均模型(Seasonal Auto Regressive Integrated Moving Average,SARIMA)可以在每个时间步长中快速计算价格的预测值,在平稳数据集中运算非常准确,因此我们使用它来进行加密货币币价预测。

除了上述这些优点之外,该模型实现起来非常简单,它还可以给出预测值的置信区间,通常情况下这比单独给出一个预测值能提供更多的信息。就比如说,当置信区间较小时,交易智能体就会更相信这个预测值的准确性,当置信区间很大时交易智能体就知道要承担更大的风险。





加入 SARIMA 预测模型的代码 add_sarimax_predictions.py


这里我们将 SARIMAX 预测模型和置信区间添加到交易智能体的观察空间中。

现在我们已经使用性能更好的循环神经网络更新了策略,并使用特征工程的方法改进了交易智能体的观察空间,是时候优化其他的部分了。
 

奖励优化


有些人可能会觉得上一篇文章中的奖励函数(即奖励资产总价值不断增加)已经是最好的解决方案了,但是,通过进一步的研究我发现奖励函数还有提升的空间。虽然我们之前使用的简单奖励函数已经能够获得收益,但它给出的投资策略非常不稳定,往往会导致资产的严重损失。为了改善这一点,除了考虑利润的增加以外,我们还需要考虑其他奖励的指标。

奖励指标的一个简单改进就是,不仅仅奖励在比特币价格上涨时持有比特币带来的利润,还奖励在比特币价格下跌时抛售比特币而避免的损失。就比如说,我们可以奖励智能体买入比特币而总资产增加的行为,以及卖出比特币避免总资产减少的行为。

虽然这种奖励指标在提高收益率方面非常出色,但这样做并没有考虑到高回报带来的高风险。投资者早已发现这种简单投资策略背后存在的漏洞,并将其改进成一种风险可调节的奖励指标。


基于波动率的奖励指标

这种风险可调节的奖励指标中的典型就是夏普比率(Sharpe Ratio,又被称为夏普指数)。它计算的是特定时间段内投资组合的超额收益与波动性的比率。具体的计算公式如下:





夏普比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的标准差


从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性(也就是风险)。

作为一种奖励指标,夏普比率经受住了时间的考验,但它对于自动交易智能体来说并不是很完美,因为它会对上行标准差( upside volatility )产生不利影响,而在比特币交易环境中有时我们需要利用上行标准差,因为上行标准差(即比特币价格疯狂上涨)通常都是很好的机会窗口。

而使用索提诺比率( Sortino Ratio )可以很好地解决这个问题。索提诺比率与夏普比率非常相似,只是它在风险上只考虑了下行标准差,而不是整体标准差。因此,索提诺比率并不会对上行标准差产生什么不利影响。因而我们给交易智能体的第一条奖励指标就选择索提诺比率,它的计算公式如下:





索提诺比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的下行标准差


其他奖励指标

我们选择 Calmar 比率作为交易智能体的第二个奖励指标。到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大回撤率(drawdown)这个关键因素。

    最大回撤率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。


最大回撤率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。





最大回撤率


为了消除最大回撤率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大回撤率。





Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大回撤率


我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。从理论上来说,在衡量风险与收益时,Omega 比率应该优于 Sortino 比率和 Calmar 比率,因为它能够在单个指标中使用收益的分布来评估风险。

计算 Omega 比率时,我们需要分别计算在特定基准之上或之下投资组合的概率分布,然后两者相除计算比率。Omega 比率越高,比特币上涨潜力超过下跌潜力的概率就越高。





Omege 比率的计算公式


Omega 比率的计算公式看起来很复杂,不过不要担心,在代码中实现它并不难。


代码实现

虽然说编写每个奖励指标的代码听起来很有意思且很有挑战性,但这里为了方便大家的理解,我选择使用 Python 量化金融程序包 empyrical 来计算它们。幸运的是,这个程序包中恰好包含了我们上面定义的三个奖励指标,因而在每个时间步长中,我们只需要将该时间段内收益和大盘收益的列表发给 Empyrical 函数,它就会返回这三个比率。





使用 empyrical 程序包计算三个奖励指标的代码 risk_adjusted_reward.py


在代码中,我们通过预先定义的奖励函数设置了每个时间步长的奖励。

到目前为止,我们已经确定了如何衡量一个交易策略的成功与否,现在是时候弄清楚哪些指标会带来较高的收益。我们需要将这些奖励函数输入到自动超参数优化软件框架 Optuna 中,然后使用贝叶斯优化来的方法为输入数据集寻找最优的超参数。


工具集


俗话说,好马配好鞍。任何一个优秀的技术人员都需要一套好用的工具,否则就会巧妇难为无米之炊。

但我并不是说我们要重复造轮子,我们应该学会使用程序员前辈用秃头的代价为我们开发的工具,这样他们的工作也算没有白费。对于我们所开发的交易智能体,它要用到的最重要的工具就是自动超参数优化软件框架 Optuna,从原理上来说,它使用了树结构的 Parzen 窗估计(Tree-structured Parzen Estimators,TPEs)来实现贝叶斯优化,而这种估计方法是可以并行化运行的,这使得我们的显卡有了用武之地,执行搜索需要的时间也会大大缩短。简而言之,

    贝叶斯优化是一种搜索超参数空间以找到能最大化给定目标函数的超参数的高效解决方案。


也就是说,贝叶斯优化能够有效地改进任何黑箱模型。从工作原理上来说,贝叶斯优化通过使用替代函数( surrogate functions )或是替代函数的分布对要优化的目标函数进行建模。随着时间的推移,算法不断地检索超参数空间以找到那些能够最大化目标函数的超参数,分布的效果也会逐渐改善。

理论说了这么多,我们要如何把这些技术应用在比特币自动交易智能体中呢?从本质上来讲,我们可以使用这种技术来找到一组最优的超参数,使得智能体的收益率最高。这个过程就像是在超参数的汪洋大海中捞取一根效果最好的针,而贝叶斯优化就是带我们找到这根针的磁铁。让我们开始吧。

使用 Optuna 优化超参数并不是什么难事。

首先,我们需要创建一个 optuna 实例,也就是装载所有超参数试验的容器。在每次试验中我们需要调整超参数的设置来计算目标函数相应的损失函数值。在实例初始化完成后,我们需要向其中传入目标函数然后调用 study.optimize() 函数开始优化,Optuna 将使用贝叶斯优化的方法来寻找能够最小化损失函数的超参数配置。





使用 Optuna 程序库贝叶斯优化的代码 optimize_with_optuna.py


在这个例子中,目标函数就是在比特币交易环境中训练并测试智能体,而目标函数的损失值则定义为测试期间智能体平均收益的相反数,之所以给收益值加上负号,是因为平均收益越高越好,而在 Optuna 看来损失函数越低越好,一个负号刚好解决这个问题。optimize 优化函数为目标函数提供了试验对象,代码中我们可以指定试验对象中的变量设置。





优化目标函数的代码 optimize_objective_fn.py


optimize_ppo2 优化智能体函数和 optimize_envs 优化智能体环境函数接收试验对象作为输入并返回包含要测试参数的字典。每个变量的搜索空间由 suggest 函数进行设置,我们需要在试验中调用 suggest 函数并给函数中传入指定的参数。

比如说,如果设置参数在对数尺度上服从均匀分布,即调用函数

trial.suggest_loguniform('n_steps',16,2048),

相当于给函数了一个 16-2048 之间的 2 的指数次方(如16,32,64,…,1024,2048)的新浮点数。

再者,如果设置参数在普通尺度上服从均匀分布,即调用函数

trial.suggest_uniform('cliprange',0.1,0.4),

相当于给函数一个 0.1 到 0.4 之间的新浮点数(如0.1,0.2,0.3,0.4)。

相信你已经看出来了其中的规律,就是这样来设置变量:

suggest_categorical('categorical',['option_one','option_two']),其中 categorical 为设置变量的策略, option_one 和 option_two 分别为变量的两个选项,在刚才的函数中这两个选项为变量的范围,弄懂了这个相信下面的代码就难不倒你了。





化交易智能体的代码 optimize_ppo2.py





优化交易环境的代码 optimize_envs.py


代码写好后,我们在一台高性能服务器上以 CPU/显卡协同运算的方式运行了优化函数。在设置中,Optuna 创建了一个 SQLite 数据库,我们可以从中加载优化的实例。该实例记录了测试过程中性能最好的一次试验,从中我们可以推算出智能体交易环境中最优的超参数集。





加载 optuna 实例的代码 load_optuna_study.py


到这里,我们已经改进了模型,改进了特征集,并优化了所有的超参数。但俗话说,是骡子是马得拉出来遛遛。

那么,交易智能体在新的奖励指标下表现如何呢?

在训练过程中,我分别使用了利润、Sortino 比率、Calmar 比率和 Omega 比率四个奖励指标来优化智能体。接下来我们需要在测试环境中检验哪种奖励指标训练出来的智能体收益最高,当然了,测试环境中的数据都是智能体在训练过程中从未见到过的比特币价格走势,这样保证了测试的公平性。


收益比较


在查看结果之前,我们需要知晓一个成功的交易策略是什么样的。出于这个原因,我们将针对一些常见且有效的比特币交易策略进行基准测试。令人震惊的是,在过去的十年中一个最有效的比特币交易策略就是买入并持有,而另外两个不错的交易策略则是使用简单但有效的技术分析来生成买入/卖出信号,从而指导交易。

1、买入并持有

这种交易策略指尽可能多地购买比特币并一直持有下去(也就是区块链社区中的江湖黑话“ HODL ”)。虽然说这种交易策略并不是特别复杂,但在过去这样做赚钱的机率很高。

2、相对强弱指数分歧(Relative Strength Index(RSI) divergence )

当相对强弱指数持续下跌且收盘价持续上涨时,这就是需要卖出的信号,而当相对强弱指数持续上涨且收盘价持续下跌时,就是需要买入的信号。

3、简单移动平均线( Simple Moving Average,SMA )交叉

当长期简单移动平均线超过短期简单移动平均线时,这就是需要卖出的信号,而当短期简单移动平均线超过长期简单移动平均线时,就是需要买入的信号。

你可能会问,为什么要做这些简单的基准测试呢?这样做是为了通过比较证明我们的强化学习交易智能体可以在比特币市场上发挥作用,如果智能体的收益连这些简单的基准收益都超不过,那么我们就相当于花费了大量的开发时间和显卡算力来进行了一场天马行空的科学实验。现在,让我们来证明事实并非如此。


实验结果


我们的数据集选用从加密货币数据网站 CryptoDataDownload 上下载的每小时收盘价位置价值( OHCLV )数据,其中前 80% 的数据用来训练智能体,后 20% 作为全新的数据进行测试,以了解智能体的收益能力。当前这种简单的交叉验证形式足以满足我们的需求,而如果这个比特币自动交易智能体真的走向生产就绪,我们就可以使用全部的数据集进行训练,然后在每天新产生的数据集上进行测试。

废话不多说,我们来看看结果。

可以看到,使用 Omega 比率作为奖励指标的智能体在测试阶段并没有让人眼前一亮的交易。





使用 Omega 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


分析智能体所进行的交易我们可以发现,很明显 Omega 比率这种奖励指标产生了过度交易(over-trade)的交易策略,以至于智能体未能抓住市场机会获得收益。

使用 Calmar 比率作为奖励指标的智能体与使用 Omega 比率作为奖励指标的智能体相比略有改进,但最终结果非常相似。看起来像是我们投入了大量的时间和精力,只是为了让事情变得更糟......





使用 Calmar 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


如果仅使用利润作为奖励指标效果如何呢?在上一篇文章中这种奖励指标被证明有点失败,这次做的所有修改和优化能否化腐朽为神奇呢?

在为期四个月的测试周期内,使用利润作为奖励指标的智能体平均收益达到账户初始金额的350%。你可能已经被这个结果吓呆了。这应该就是强化学习能达到的巅峰了吧,对吧?





使用利润作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


并不是这样的。使用 Sortino 比率作为奖励指标的智能体平均收益达到了账户初始金额的850%。当我看到这个数字时,我都不敢相信自己的眼睛,以至于我立马回去检查代码中是否存在问题。但经过彻底的检查后,很明显代码中没有任何错误,也就是说这些智能体已经知道如何进行比特币交易。





使用 Sortino 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


看起来使用 Sortino 比率作为奖励指标的智能体学习到了在最小化持有比特币风险的前提下低价买入和高价卖出的重要性,同时它们还躲过了过度交易和投资不足两大陷阱。虽然说智能体学到的具体交易策略我们不得而知,但是我们可以清楚地看到智能体已经学会通过交易比特币获得收益了。





使用 Sortino 比率作为奖励指标的智能体正在交易比特币,其中绿色的三角形表示买入信号,红色的三角形表示卖出信号


现在,我并没有被实验成功的兴奋冲昏头脑。我清楚地知道比特币自动交易智能体还远远没有达到生产就绪。话虽如此,但这些结果比我迄今为止看到的任何交易策略都要令人印象深刻。而且令人震惊的是,我们并没有告诉智能体关于加密货币市场如何运作、如何在加密货币市场上赚钱这样的先验知识,而是仅靠智能体重复地试验和试错就达到了这么好的效果,不过,这里经过了很多很多次的试验和试错。


写在最后


在本篇文章中,我们优化了基于强化学习的比特币自动交易智能体,让它在交易比特币时做出更好的决策,从而获得更多的收益!在这个过程中我们花费了大量的时间和精力,也遇到了很多的困难,我们把困难分解细化再逐个攻破,最终完成了智能体的优化,其中具体的操作步骤如下:

1、使用循环神经网络升级现有模型,即升级成使用平稳性数据的长短期记忆网络;

2、使用领域知识和统计分析进行特征工程,为智能体提供了 40 多个用来学习的新特征;

3、将投资的风险引入智能体的奖励指标,而不只是关注利润;

4、使用贝叶斯优化来寻找模型中最优的超参数;

5、使用常见的交易策略进行基准测试,以确保智能体的收益可以跑赢市场。


从理论上来说,这个高收益的交易智能体已经做得很不错了。

但是,我收到了相当多的反馈,他们声称交易智能体只是在学习拟合曲线,因此,面对生产环境中的实时数据,交易智能体永远不可能获得收益。虽然我们在不同数据集上训练/测试智能体的方法应该能够解决这个问题,但是模型确实会有过度拟合数据集的可能,并且可能不会很好地推广到实时数据。话虽这么说,但在我看来这些交易智能体学习到的远远不只是简单的曲线拟合,因此,我认为它们能够在实时交易的场景中获得收益。

为了检验这个想法,接下来的一段时间里我会把这些基于强化学习的智能体带到生产环节,为此,我们首先要更新智能体的运行环境以支持以太币、莱特币等其他加密货币,然后我们将升级智能体让它可以在加密货币交易所 Coinbase Pro 上实时交易。

这将会是一个激动人心的实验,请不要错过它。

需要强调的是,本篇文章中所有的方法和投资策略都是出于教育目的,不应被视为投资建议。我们的比特币自动交易智能体也远远没有达到实际生产层面,所以请管好自己的钱包。


参考资源:

1)基于 Python 语言和 Tensorflow 框架的循环神经网络和长短期记忆网络教程

https://adventuresinmachinelearning.com/recurrent-neural-networks-lstm-tutorial-tensorflow/

2)浅析基于 Python 语言的季节效应自回归移动平均模型预测时间序列

https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/

3)浅析基于 Python 语言的非平稳性时间序列处理

https://www.analyticsvidhya.com/blog/2018/09/non-stationary-time-series-python/

4)超参数优化算法

https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

5)机器学习方法在金融领域中的最新进展

https://dwz.cn/iUahVt2u


来源 | Towards Data Science 编译 | Guoxi 责编 | 乔治 出品 | 区块链大本营(Blockchain_camp) 查看全部
3D-Rendering-Robot-and-laptop-stock-exchange-trading.jpg


上个月,AI 工程师 Adam King 结合人工智能在预测方面得天独厚的优势,提出使用深度强化学习构建加密货币自动交易的程序。在展示模型中,程序的收益率竟达到了惊人的 60 倍(只讨论技术,无关投资建议)。

但在当时,这个展示模型略显粗糙。虽然能获得收益,但它并不稳定。使用它可能让你赚得盆满钵盈,也有可能让你赔得一无所有,颇有些“富贵险中求”的意味。

不稳定的问题一直困扰着 Adam 小哥,经过一个月的蛰伏,小哥提出将特征工程和贝叶斯优化两大杀器引入模型。这些改进会奏效么?收益率又能提升多少呢?一起来看看 Adam 小哥的最新力作吧!




在上一篇文章中(《60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具》),我们使用深度强化学习创建了一个可以赚钱的比特币自动交易智能体。虽然这个智能体能够做到自动交易比特币获得收益,但它的收益率并没有让人眼前一亮,今天我们会大幅度改进这个比特币交易智能体,从而提高它的收益率。

需要注意的是,本篇文章的目的是测试当下最先进的深度强化学习技术是否能与区块链相结合,创造出一个可以盈利的比特币自动交易智能体。目前看来业界都还没有意识到深度强化学习在自动交易方面强大的潜力,反而认为它并不是一个“能用来构建交易算法的工具”。不过,深度学习领域的最新进展已经表明,在同一个问题上强化学习智能体通常能够比普通的监督学习智能体学习到更多的特征。

出于这个原因,我做了相关的实验来探究基于深度强化学习的交易智能体究竟能达到怎样的收益率,当然了,结果也可能会是深度强化学习有着很强的局限性以至于并不适合做交易智能体,但不去尝试谁又知道结果如何呢?

首先,我们将会改进深度强化学习模型的策略网络( policy network )并使输入数据变得平稳,以便交易智能体能在很少的数据中学习到更多的特征。

接下来,我们将使用当下先进的特征工程方法来改善交易智能体的观察空间,同时微调交易智能体的奖励函数( reward function )以帮助它发现更好的交易策略。

最后,在训练并测试交易智能体获得的收益率之前,我们将使用贝叶斯优化的方法来寻找能最大化收益率的超参数。

前方高能,系好安全带,让我们开始这场干货满满的探索之旅吧。


关于深度强化学习模型的改进


在上一篇文章中,我们已经实现了深度强化学习模型的基本功能,

GitHub 地址:

https://github.com/notadamking/Bitcoin-Trader-RL

当务之急是提高深度强化学习智能体的盈利能力,换句话说就是要对模型进行一些改进。


循环神经网络(Recurrent Neural Network,RNN)

我们需要做的第一个改进就是使用循环神经网络来改进策略网络,也就是说,使用长短期记忆网络( Long Short-Term Memory ,LSTM )网络代替之前使用的多层感知机( Multi-Layer Perceptron,MLP )网络。由于循环神经网络随着时间的推移可以一直保持内部状态,因此我们不再需要滑动“回顾窗口“来捕捉价格变动之前的行为,循环神经网络的循环本质可以在运行时自动捕捉这些行为。在每个时间步长中,输入数据集中的新一个数据与上一个时间步长的输出会被一起输入到循环神经网络中。

因而长短期记忆网络可以一直维持一个内部状态。在每个时间步长中,智能体会新记住一些新的数据关系,也会忘掉一些之前的数据关系,这个内部状态也就会随之更新。

201906130048151683.jpg

循环神经网络会接收上一个时间步长的输出

201906130048238353.jpg

循环神经网络如何处理上一个时间步长的输出与这一个时间步长的输入

201906130048263656.jpg

长短期记忆网络实现代码 LSTM_model.py


介于循环神经网络对于内部状态得天独厚的优势,在这里,我们使用长短期记忆网络策略更新了近端策略优化 PPO2 模型。


数据平稳性

在上一篇文章中我曾指出比特币交易的数据是非平稳的(Non-Stationary,即存在一些趋势,而不能仅仅看作是随机的波动),因此,任何机器学习模型都难以预测未来。


    平稳时间序列是平均值,方差和自相关系数(与其自身的滞后相关)都恒定的时间序列。



而且,加密货币价格的时间序列有着很明显的趋势和季节效应(季节效应是指与季节相关联的股市非正常收益,是股市中的一种“异像”,是与市场有效性相悖的情况),这两者都会影响算法对时间序列预测的准确率,所以在这里,我们需要使用差分和变换的方法来处理输入数据,从现有的时间序列中构建一个正常的数据分布来解决这个问题。

从原理上来说,差分过程就是给任意两个时间步长内加密货币币价的导数(即收益率)做差值。在理想情况下,这样做可以消除输入时间序列中存在的趋势,但是,差分处理对季节效应并不奏效,处理后的数据仍然具有很强的季节效应。这就需要我们在差分处理之前进行对数处理来消除它,经过这样的处理最终我们会得到平稳的输入时间序列,如下方右图所示。

201906130048282233.jpg

从左到右分别为:加密货币的收盘价,差分处理后的收盘价,对数处理和差分处理后的收盘价

201906130050581432.jpg

对数处理和差分处理的代码 diff_and_log_time_series.py


处理后的输入时间序列平稳性如何,我们可以使用增广迪基-福勒检验( Augmented Dickey-Fuller test )验证一下。

运行以下代码:

201906130051017091.jpg

增广迪基-福勒检验的代码 adfuller_test.py


我们得到的 p 值为 0.00 ,这意味着我们拒绝假设检验中的零假设并确认处理后的输入时间序列是平稳的。

我们可以运行上面的增广迪基-福勒检验代码来检验输入时间序列的平稳性。

在完成了这项工作之后,接下来我们将使用特征工程的方法进一步优化交易智能体的观察空间。


特征工程


为了进一步提升交易智能体的收益率,我们需要做一些特征工程。


    特征工程是使用该领域知识来生成额外的输入数据从而优化机器学习模型的过程。



具体到交易智能体,我们将在输入数据集中添加一些常见且有效的技术指标,以及 Python 数据分析程序库 StatsModels 中季节效应预测模型 SARIMAX 的输出。这些技术指标会为我们的输入数据集带来一些相关的,但可能会滞后的信息,这些信息能大大提升交易智能体预测的准确性。这些优化方法的组合可以为交易智能体提供一个非常好的观察空间,让智能体学习到更多的特征,从而获得更多的收益。


技术分析


为了选择技术指标,我们将比较 Python 技术分析库 ta 中可用的所有 32 个指标( 58 个特征)的相关性。可以使用数据分析工具 pandas 来计算相同类型的各个指标(如动量,体积,趋势,波动率)之间的相关性,然后在每种类型中仅选择最不相关的指标作为特征。这样,就可以在不给观察空间带来过多噪音干扰的情况下,最大程度地发掘这些技术指标的价值。

201906130051032401.jpg

使用 Python 高级可视化库 seaborn 做出的比特币数据集上技术指标相关性的热力图


结果显示,波动率指标以及一些动量指标都是高度相关的。在删除所有重复的特征(每个类型中相关性的绝对平均值大于 0.5 的特征)之后,我们将剩余的 38 个技术特征添加到交易智能体的观察空间中。

在代码中,我们需要创建一个名为 add_indicators(添加指标)的函数来将这些特征添加到数据帧中,为了避免在每个时间步长中重复计算这些特征,我们只在交易智能体环境初始化的过程中调用 add_indicators 函数。

201906130054303259.jpg

交易智能体环境初始化的代码 initialize_env.py


在这里,初始化交易智能体环境,在进行数据平稳性处理之前将特征添加到了数据帧中。


统计分析


接下来我们需要添加预测模型。

由于季节效应自回归移动平均模型(Seasonal Auto Regressive Integrated Moving Average,SARIMA)可以在每个时间步长中快速计算价格的预测值,在平稳数据集中运算非常准确,因此我们使用它来进行加密货币币价预测。

除了上述这些优点之外,该模型实现起来非常简单,它还可以给出预测值的置信区间,通常情况下这比单独给出一个预测值能提供更多的信息。就比如说,当置信区间较小时,交易智能体就会更相信这个预测值的准确性,当置信区间很大时交易智能体就知道要承担更大的风险。

sarima.jpg

加入 SARIMA 预测模型的代码 add_sarimax_predictions.py


这里我们将 SARIMAX 预测模型和置信区间添加到交易智能体的观察空间中。

现在我们已经使用性能更好的循环神经网络更新了策略,并使用特征工程的方法改进了交易智能体的观察空间,是时候优化其他的部分了。
 

奖励优化


有些人可能会觉得上一篇文章中的奖励函数(即奖励资产总价值不断增加)已经是最好的解决方案了,但是,通过进一步的研究我发现奖励函数还有提升的空间。虽然我们之前使用的简单奖励函数已经能够获得收益,但它给出的投资策略非常不稳定,往往会导致资产的严重损失。为了改善这一点,除了考虑利润的增加以外,我们还需要考虑其他奖励的指标。

奖励指标的一个简单改进就是,不仅仅奖励在比特币价格上涨时持有比特币带来的利润,还奖励在比特币价格下跌时抛售比特币而避免的损失。就比如说,我们可以奖励智能体买入比特币而总资产增加的行为,以及卖出比特币避免总资产减少的行为。

虽然这种奖励指标在提高收益率方面非常出色,但这样做并没有考虑到高回报带来的高风险。投资者早已发现这种简单投资策略背后存在的漏洞,并将其改进成一种风险可调节的奖励指标。


基于波动率的奖励指标

这种风险可调节的奖励指标中的典型就是夏普比率(Sharpe Ratio,又被称为夏普指数)。它计算的是特定时间段内投资组合的超额收益与波动性的比率。具体的计算公式如下:

201906130054425439.jpg

夏普比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的标准差


从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性(也就是风险)。

作为一种奖励指标,夏普比率经受住了时间的考验,但它对于自动交易智能体来说并不是很完美,因为它会对上行标准差( upside volatility )产生不利影响,而在比特币交易环境中有时我们需要利用上行标准差,因为上行标准差(即比特币价格疯狂上涨)通常都是很好的机会窗口。

而使用索提诺比率( Sortino Ratio )可以很好地解决这个问题。索提诺比率与夏普比率非常相似,只是它在风险上只考虑了下行标准差,而不是整体标准差。因此,索提诺比率并不会对上行标准差产生什么不利影响。因而我们给交易智能体的第一条奖励指标就选择索提诺比率,它的计算公式如下:

201906130054443367-2.jpg

索提诺比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的下行标准差


其他奖励指标

我们选择 Calmar 比率作为交易智能体的第二个奖励指标。到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大回撤率(drawdown)这个关键因素。


    最大回撤率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。



最大回撤率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。

201906130054464046.jpg

最大回撤率


为了消除最大回撤率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大回撤率。

201906130059014313.jpg

Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大回撤率


我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。从理论上来说,在衡量风险与收益时,Omega 比率应该优于 Sortino 比率和 Calmar 比率,因为它能够在单个指标中使用收益的分布来评估风险。

计算 Omega 比率时,我们需要分别计算在特定基准之上或之下投资组合的概率分布,然后两者相除计算比率。Omega 比率越高,比特币上涨潜力超过下跌潜力的概率就越高。

201906130059038913.jpg

Omege 比率的计算公式


Omega 比率的计算公式看起来很复杂,不过不要担心,在代码中实现它并不难。


代码实现

虽然说编写每个奖励指标的代码听起来很有意思且很有挑战性,但这里为了方便大家的理解,我选择使用 Python 量化金融程序包 empyrical 来计算它们。幸运的是,这个程序包中恰好包含了我们上面定义的三个奖励指标,因而在每个时间步长中,我们只需要将该时间段内收益和大盘收益的列表发给 Empyrical 函数,它就会返回这三个比率。

201906130059053400.jpg

使用 empyrical 程序包计算三个奖励指标的代码 risk_adjusted_reward.py


在代码中,我们通过预先定义的奖励函数设置了每个时间步长的奖励。

到目前为止,我们已经确定了如何衡量一个交易策略的成功与否,现在是时候弄清楚哪些指标会带来较高的收益。我们需要将这些奖励函数输入到自动超参数优化软件框架 Optuna 中,然后使用贝叶斯优化来的方法为输入数据集寻找最优的超参数。


工具集


俗话说,好马配好鞍。任何一个优秀的技术人员都需要一套好用的工具,否则就会巧妇难为无米之炊。

但我并不是说我们要重复造轮子,我们应该学会使用程序员前辈用秃头的代价为我们开发的工具,这样他们的工作也算没有白费。对于我们所开发的交易智能体,它要用到的最重要的工具就是自动超参数优化软件框架 Optuna,从原理上来说,它使用了树结构的 Parzen 窗估计(Tree-structured Parzen Estimators,TPEs)来实现贝叶斯优化,而这种估计方法是可以并行化运行的,这使得我们的显卡有了用武之地,执行搜索需要的时间也会大大缩短。简而言之,


    贝叶斯优化是一种搜索超参数空间以找到能最大化给定目标函数的超参数的高效解决方案。



也就是说,贝叶斯优化能够有效地改进任何黑箱模型。从工作原理上来说,贝叶斯优化通过使用替代函数( surrogate functions )或是替代函数的分布对要优化的目标函数进行建模。随着时间的推移,算法不断地检索超参数空间以找到那些能够最大化目标函数的超参数,分布的效果也会逐渐改善。

理论说了这么多,我们要如何把这些技术应用在比特币自动交易智能体中呢?从本质上来讲,我们可以使用这种技术来找到一组最优的超参数,使得智能体的收益率最高。这个过程就像是在超参数的汪洋大海中捞取一根效果最好的针,而贝叶斯优化就是带我们找到这根针的磁铁。让我们开始吧。

使用 Optuna 优化超参数并不是什么难事。

首先,我们需要创建一个 optuna 实例,也就是装载所有超参数试验的容器。在每次试验中我们需要调整超参数的设置来计算目标函数相应的损失函数值。在实例初始化完成后,我们需要向其中传入目标函数然后调用 study.optimize() 函数开始优化,Optuna 将使用贝叶斯优化的方法来寻找能够最小化损失函数的超参数配置。

201906130059078525.jpg

使用 Optuna 程序库贝叶斯优化的代码 optimize_with_optuna.py


在这个例子中,目标函数就是在比特币交易环境中训练并测试智能体,而目标函数的损失值则定义为测试期间智能体平均收益的相反数,之所以给收益值加上负号,是因为平均收益越高越好,而在 Optuna 看来损失函数越低越好,一个负号刚好解决这个问题。optimize 优化函数为目标函数提供了试验对象,代码中我们可以指定试验对象中的变量设置。

201906130104218908.jpg

优化目标函数的代码 optimize_objective_fn.py


optimize_ppo2 优化智能体函数和 optimize_envs 优化智能体环境函数接收试验对象作为输入并返回包含要测试参数的字典。每个变量的搜索空间由 suggest 函数进行设置,我们需要在试验中调用 suggest 函数并给函数中传入指定的参数。

比如说,如果设置参数在对数尺度上服从均匀分布,即调用函数

trial.suggest_loguniform('n_steps',16,2048),

相当于给函数了一个 16-2048 之间的 2 的指数次方(如16,32,64,…,1024,2048)的新浮点数。

再者,如果设置参数在普通尺度上服从均匀分布,即调用函数

trial.suggest_uniform('cliprange',0.1,0.4),

相当于给函数一个 0.1 到 0.4 之间的新浮点数(如0.1,0.2,0.3,0.4)。

相信你已经看出来了其中的规律,就是这样来设置变量:

suggest_categorical('categorical',['option_one','option_two']),其中 categorical 为设置变量的策略, option_one 和 option_two 分别为变量的两个选项,在刚才的函数中这两个选项为变量的范围,弄懂了这个相信下面的代码就难不倒你了。

201906130104292196.jpg

化交易智能体的代码 optimize_ppo2.py

201906130104344369.jpg

优化交易环境的代码 optimize_envs.py


代码写好后,我们在一台高性能服务器上以 CPU/显卡协同运算的方式运行了优化函数。在设置中,Optuna 创建了一个 SQLite 数据库,我们可以从中加载优化的实例。该实例记录了测试过程中性能最好的一次试验,从中我们可以推算出智能体交易环境中最优的超参数集。

201906130104367375.jpg

加载 optuna 实例的代码 load_optuna_study.py


到这里,我们已经改进了模型,改进了特征集,并优化了所有的超参数。但俗话说,是骡子是马得拉出来遛遛。

那么,交易智能体在新的奖励指标下表现如何呢?

在训练过程中,我分别使用了利润、Sortino 比率、Calmar 比率和 Omega 比率四个奖励指标来优化智能体。接下来我们需要在测试环境中检验哪种奖励指标训练出来的智能体收益最高,当然了,测试环境中的数据都是智能体在训练过程中从未见到过的比特币价格走势,这样保证了测试的公平性。


收益比较


在查看结果之前,我们需要知晓一个成功的交易策略是什么样的。出于这个原因,我们将针对一些常见且有效的比特币交易策略进行基准测试。令人震惊的是,在过去的十年中一个最有效的比特币交易策略就是买入并持有,而另外两个不错的交易策略则是使用简单但有效的技术分析来生成买入/卖出信号,从而指导交易。

1、买入并持有

这种交易策略指尽可能多地购买比特币并一直持有下去(也就是区块链社区中的江湖黑话“ HODL ”)。虽然说这种交易策略并不是特别复杂,但在过去这样做赚钱的机率很高。

2、相对强弱指数分歧(Relative Strength Index(RSI) divergence )

当相对强弱指数持续下跌且收盘价持续上涨时,这就是需要卖出的信号,而当相对强弱指数持续上涨且收盘价持续下跌时,就是需要买入的信号。

3、简单移动平均线( Simple Moving Average,SMA )交叉

当长期简单移动平均线超过短期简单移动平均线时,这就是需要卖出的信号,而当短期简单移动平均线超过长期简单移动平均线时,就是需要买入的信号。

你可能会问,为什么要做这些简单的基准测试呢?这样做是为了通过比较证明我们的强化学习交易智能体可以在比特币市场上发挥作用,如果智能体的收益连这些简单的基准收益都超不过,那么我们就相当于花费了大量的开发时间和显卡算力来进行了一场天马行空的科学实验。现在,让我们来证明事实并非如此。


实验结果


我们的数据集选用从加密货币数据网站 CryptoDataDownload 上下载的每小时收盘价位置价值( OHCLV )数据,其中前 80% 的数据用来训练智能体,后 20% 作为全新的数据进行测试,以了解智能体的收益能力。当前这种简单的交叉验证形式足以满足我们的需求,而如果这个比特币自动交易智能体真的走向生产就绪,我们就可以使用全部的数据集进行训练,然后在每天新产生的数据集上进行测试。

废话不多说,我们来看看结果。

可以看到,使用 Omega 比率作为奖励指标的智能体在测试阶段并没有让人眼前一亮的交易。

201906130104386353.jpg

使用 Omega 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


分析智能体所进行的交易我们可以发现,很明显 Omega 比率这种奖励指标产生了过度交易(over-trade)的交易策略,以至于智能体未能抓住市场机会获得收益。

使用 Calmar 比率作为奖励指标的智能体与使用 Omega 比率作为奖励指标的智能体相比略有改进,但最终结果非常相似。看起来像是我们投入了大量的时间和精力,只是为了让事情变得更糟......

201906130104406054.jpg

使用 Calmar 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


如果仅使用利润作为奖励指标效果如何呢?在上一篇文章中这种奖励指标被证明有点失败,这次做的所有修改和优化能否化腐朽为神奇呢?

在为期四个月的测试周期内,使用利润作为奖励指标的智能体平均收益达到账户初始金额的350%。你可能已经被这个结果吓呆了。这应该就是强化学习能达到的巅峰了吧,对吧?

201906130104425151.jpg

使用利润作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


并不是这样的。使用 Sortino 比率作为奖励指标的智能体平均收益达到了账户初始金额的850%。当我看到这个数字时,我都不敢相信自己的眼睛,以至于我立马回去检查代码中是否存在问题。但经过彻底的检查后,很明显代码中没有任何错误,也就是说这些智能体已经知道如何进行比特币交易。

201906130104442207.jpg

使用 Sortino 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


看起来使用 Sortino 比率作为奖励指标的智能体学习到了在最小化持有比特币风险的前提下低价买入和高价卖出的重要性,同时它们还躲过了过度交易和投资不足两大陷阱。虽然说智能体学到的具体交易策略我们不得而知,但是我们可以清楚地看到智能体已经学会通过交易比特币获得收益了。

201906130104466538.jpg

使用 Sortino 比率作为奖励指标的智能体正在交易比特币,其中绿色的三角形表示买入信号,红色的三角形表示卖出信号


现在,我并没有被实验成功的兴奋冲昏头脑。我清楚地知道比特币自动交易智能体还远远没有达到生产就绪。话虽如此,但这些结果比我迄今为止看到的任何交易策略都要令人印象深刻。而且令人震惊的是,我们并没有告诉智能体关于加密货币市场如何运作、如何在加密货币市场上赚钱这样的先验知识,而是仅靠智能体重复地试验和试错就达到了这么好的效果,不过,这里经过了很多很多次的试验和试错。


写在最后


在本篇文章中,我们优化了基于强化学习的比特币自动交易智能体,让它在交易比特币时做出更好的决策,从而获得更多的收益!在这个过程中我们花费了大量的时间和精力,也遇到了很多的困难,我们把困难分解细化再逐个攻破,最终完成了智能体的优化,其中具体的操作步骤如下:


1、使用循环神经网络升级现有模型,即升级成使用平稳性数据的长短期记忆网络;

2、使用领域知识和统计分析进行特征工程,为智能体提供了 40 多个用来学习的新特征;

3、将投资的风险引入智能体的奖励指标,而不只是关注利润;

4、使用贝叶斯优化来寻找模型中最优的超参数;

5、使用常见的交易策略进行基准测试,以确保智能体的收益可以跑赢市场。



从理论上来说,这个高收益的交易智能体已经做得很不错了。

但是,我收到了相当多的反馈,他们声称交易智能体只是在学习拟合曲线,因此,面对生产环境中的实时数据,交易智能体永远不可能获得收益。虽然我们在不同数据集上训练/测试智能体的方法应该能够解决这个问题,但是模型确实会有过度拟合数据集的可能,并且可能不会很好地推广到实时数据。话虽这么说,但在我看来这些交易智能体学习到的远远不只是简单的曲线拟合,因此,我认为它们能够在实时交易的场景中获得收益。

为了检验这个想法,接下来的一段时间里我会把这些基于强化学习的智能体带到生产环节,为此,我们首先要更新智能体的运行环境以支持以太币、莱特币等其他加密货币,然后我们将升级智能体让它可以在加密货币交易所 Coinbase Pro 上实时交易。

这将会是一个激动人心的实验,请不要错过它。

需要强调的是,本篇文章中所有的方法和投资策略都是出于教育目的,不应被视为投资建议。我们的比特币自动交易智能体也远远没有达到实际生产层面,所以请管好自己的钱包。


参考资源:

1)基于 Python 语言和 Tensorflow 框架的循环神经网络和长短期记忆网络教程

https://adventuresinmachinelearning.com/recurrent-neural-networks-lstm-tutorial-tensorflow/

2)浅析基于 Python 语言的季节效应自回归移动平均模型预测时间序列

https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/

3)浅析基于 Python 语言的非平稳性时间序列处理

https://www.analyticsvidhya.com/blog/2018/09/non-stationary-time-series-python/

4)超参数优化算法

https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

5)机器学习方法在金融领域中的最新进展

https://dwz.cn/iUahVt2u


来源 | Towards Data Science 编译 | Guoxi 责编 | 乔治 出品 | 区块链大本营(Blockchain_camp)

60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具(附详细做法)

攻略blockchaincamp 发表了文章 • 2019-06-13 12:11 • 来自相关话题

炒股的人都知道,天天盯着大盘做决策不仅让人劳神,还让人秃头。所以一堆顶级的数学家开始用数学的手段进行股市预测。

加密货币市场也一样,而且加密货币市场波动更加频繁,更加剧烈。对于这个问题,国外加密货币开发者 Adam King 提出了一种新的解决思路。

结合人工智能在预测方面得天独厚的优势, Adam 提出了使用深度强化学习构建加密货币自动交易程序,同时,这位小哥还做出了一个能够真正交易比特币的展示模型,他是怎么做到的?这个自动交易程序又能达到怎样的效果呢?让我们在文中一探究竟。

在本文中,我们将使用深度强化学习建立一个加密货币自动交易智能体(agent),并训练它通过交易比特币盈利。

为了避免重复造轮子,在本篇教程中我们将使用人工智能研究机构 OpenAI 开发的程序包。

目前人工智能在很多领域都已经超过了人类,从最初谷歌 DeepMind 团队开发的 AlphaGo 战胜围棋世界冠军李世石,到后来师出同门的 AlphaStar 在星际争霸中以 10:1 的大比分战胜两位职业玩家。近日,OpenAI 团队的 OpenAI Five 在 Dota2 游戏中以 2:0 的比分将世界冠军 OG 斩于马下。





谷歌 DeepMind 团队星际争霸人工智能产品 AlphaStar 的训练过程


人工智能给我们带来了很多激动人心的结果,虽然我们不会构建像 AlphaGo 这样令人印象深刻的产品,但在日常的比特币交易中实现盈利也非易事。

因此,与其冒着脱发的风险苦苦探索比特币币价的规律,何不让人工智能来一展身手?

在本文中,我们将通过人工智能技术完成一下三个尝试:

    为我们的智能体(agent)创建一个测试强化学习的 gym 环境; 以一种简单、优雅的方式可视化我们的测试环境; 训练我们的智能体,让它学习到能获益的比特币交易策略。


这里有些操作可能会比较麻烦,就比如说从头开始构建 gym 测试环境并将测试环境可视化,不过不要担心,我会仔细介绍这些细节,跟上我的节奏就好。


程序库安装


在本教程中,我们将使用 Zielak 提供的 Kaggle 数据集。如果你想要这些数据,你可以在我的 Github 仓库中下载 .csv 数据文件。

首先,我们来导入所有必要的 Python 程序库。如果你的电脑上还没有安装这些程序库,你可以使用 pip install 命令进行安装。






接下来,我们创建一个比特币交易环境的类。我们需要向其中传入一个 pandas 数据帧,一个用于指示智能体在每一个时间步长( time step )需要分析前几个时间步长数据的回顾窗口大小( lookback_window_size ),以及可选的智能体账户初始余额( initial_balance )。

代码中我们将手续费( commission )设置为每笔交易的 0.075% ,也就是加密货币期货交易所 Bitmex 当前的费率,同时,我们将序列运行( serial )参数默认为否( false ),这意味着在默认情况下我们的数据帧将以随机的形式遍历各个片段。

除此之外,我们还在数据帧上分别调用了删除非数字(NaN,Not A Number)所在行的 dropna 函数以及在删除了数据之后重新设置数据帧索引的 reset_index 函数。






代码中 action_space (操作空间)的第一个数字表示可选的 3 个选项,即买入,卖出或持有,第二个数字表示所操作的比例,最小单位是 10% ,也就是说这个数字中的 1,2,3 分别代表 10%,20%,30% 。当选择买入操作时,具体买入的比特币数量将是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。对于卖出操作,具体卖出的比特币数量也是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。

当然了,如果选择持有操作,那么就不会买卖账户中的比特币,因而第二个数字就没有了意义。

我们的 observation_space(观察空间)被定义为 0 到 1 之间的连续浮点数集,它的大小为( 10,回顾窗口大小( lookback_window_size ) + 1)。这里的 + 1 操作是考虑到了当前这一时间步长的操作。对于窗口中的每一步,我们都将观察它的收盘价位置价值( OHCLV ),我们在那时的资产总价值、买入或卖出的比特币数量、以及我们在买入或卖出这些比特币时花费的美元数。

接下来,我们需要编写重新设置( reset )函数来初始化比特币交易环境。






代码中我们使用了重新设置会话控制( self._reset_session )函数和下一次数据观察( self._next_observation )函数,不过这些函数都还没有被定义,接下来我们来定义它们。


交易会话控制


交易会话控制( session )是比特币交易环境中的一个重要组成部分。如果我们将这个智能体部署到外部,我们可能永远都不会一次让它运行几个月的时间。出于这个原因,我们将在数据帧参数( self.df )中限制智能体能够连续看到的数据帧数量。

在我们的重新设置会话控制( _reset_session )函数中,我们首先将当前的时间步长( current_step )重新设置为 0 。接下来,我们将剩余时间步长( steps_left )设置为 1 到最大交易会话控制数( MAX_TRADING_SESSION )之间的随机数,当然了,最大交易会话控制数需要在文件的顶部定义。






接下来,如果需要连续遍历数据帧,那就应该设置遍历所有的数据帧,否则我们需要在数据帧参数( self.df )中设置一个随机的数据帧起始位置( frame_start ),并创建一个名为激活数据帧( active_df )的新数据帧,它是数据帧( self.df )从起始位置( frame_start )到起始位置 + 剩余时间步长( frame_start + steps_left )这些连续帧组成的切片。






使用数据帧切片带来的一个重要影响就是,智能体将获得更多独一无二的数据,以便进行长时间的训练。举个例子,如果我们只是按顺序来遍历数据帧(即按数据帧 0 到最后一帧(len(df))的顺序),那么我们就只有数据帧个数这么多的唯一数据点。我们的观察空间在每一个时间步长只能观察区区几个状态。

但是,通过随机遍历数据帧的切片,我们有效地结合了原始数据集上每一个时间点的账户余额,交易数据以及当前比特币价格,从而创造出了更多独一无二的数据点。接下来我们通过一个例子来说明一下。

我们的智能体在每个时间步长中都有三种选择:买入,卖出或持有。对于这三种选择中的每一种,都还需指定操作比特币的数量,如操作当前比特币余额的 10%,20%,或是 100% 。这意味着我们的智能体在每个时间步长中都有 30 种不同的选择(当然了,对于持有操作,这 10 种选择的效果是一样的),而它从中选出最好的一个。

回到我们随机切片后的比特币交易环境。在第 10 个时间步长中,我们的智能体可以处于数据帧内的任何数据帧长度(len(df))时间步长。考虑到每个时间步长智能体可以做 30 种选择,这意味着在任意 10 个时间步长的间隔时间中,该智能体可以经历数据帧长度(len(df))的 30 次方种可能的唯一状态。

虽然这样的操作可能会给大型数据集带来相当大的噪声,但我相信这是一把双刃剑,这样我们的智能体也会从有限的数据量中学到更多。不过,对于测试数据集,我们仍将按顺序来遍历,这样做更贴近于“实时”的交易数据,因而可以更好更精确地检测我们的智能体。


比特币交易智能体都学到了些什么


为了更好地了解智能体所看到并学习到的特征,我们需要将比特币交易环境的观察空间可视化。就比如说,下面是使用 OpenCV 可视化渲染后的观察空间。





OpenCV 可视化渲染后的观察空间


图像中的每一行都代表我们观察空间( observation_space )中的一行。前4行类似于频率的红线代表了 OHCL 数据,下方的橙色和黄色的点代表着数量,再下方这个起伏不定的蓝色长条是智能体所拥有资产的总价值,而下方颜色较浅的点代则表智能体的交易。

如果你眯着眼睛看这张图,你就可以看到一个 K 线图,下面有着代表数量的指示条以及一个显示交易历史的类似于莫尔斯电码的界面。看起来我们的智能体应该能够在观察空间( observation_space )的数据中学到一些东西。在这里,我们将定义下一次观察( _next_observation )函数,在这个函数中我们要将观察到的数据缩放到 0 到 1 之间。

重要的一点是,仅仅缩放智能体到目前为止所观察到的数据,以避免出现前视偏差( Look-ahead bias,前视偏差是指在策略的开发中,采取了未来的一些信息,而这些信息在实盘操作中是基本上不可能得到的)。







编写步骤


现在我们已经设置好了观察空间,是时候编写我们的操作步骤( step )函数了,这个函数可以指导智能体的行为。

每当当前交易时段的剩余操作步骤( self.steps_left )等于 0 时,我们将卖出所持有的所有比特币并调用重新设置会话控制( _reset_session )函数。

否则,我们将智能体的奖励( reward )设置为当前所持有资产的总价值,如果智能体的资金用完了,则只会将完成( done )设置为真( True )。






其实,采取行动的过程十分简单,也就只有三步:

第一步,获取当前的比特币价格( current_price );

第二步,确定该买入卖出还是持有,以及所要操作的份额;

第三步,就是真实买入或卖出这些比特币。现在我们来编写采取行动( _take_action )函数,以便于测试我们的比特币交易智能体。






最后,在这个函数中,我们将交易添加到交易记录参数( self.trades )中,并更新我们的资产总价值和账户交易历史。






到这里,我们的智能体就可以启动新环境,在新环境中学习比特币交易的特征,并采取行动以获得收益。是时候让比特币交易智能体一展身手了。


查看比特币交易智能体的交易记录


上文中说到了,我们需要将智能体的学习和决策过程可视化。当然了,仅仅使用最简单的方法,在智能体每次决策后输出智能体所持有资产的总价值(print(self.net_worth))也不是不可以,不过这样做就少了很多的乐趣。因此,我们决定绘制一个简单的比特币价格数据 K 线图,其中包含数量栏和我们资产总价值的单独图表。

在代码中,我们需要定义一个用来可视化的资产交易图( StockTradingGraph )函数,在函数的初始化过程中,我们需要调用 python 可视化程序库 matplotlib.pyplot ,并指出每一个需要可视化的数据。






为了更好地展现数据,在可视化方法中我们需要导入 Python 时间日期( datetime )处理模块,在数据上标注出人类可读的日期和时间。






在导入完成后,我们需要使用将时间戳转换为世界统一时间 UTC 的 utcfromtimestamp 函数,将每个时间戳转化为 UTC 时间,然后用计算机时间函数( strftime )将这个 UTC 时间按照“ 年 - 月 - 日 小时:分钟 ”的格式展现出来。






到这里,可视化函数的各个部分都已编写完成,回到比特币交易环境,我们现在可以汇总出一个可视化( render )函数来显示图形。






ok了!我们现在可以看到智能体正在交易比特币。





使用 Matplotlab 程序库可视化后的智能体交易比特币数据


图中绿色的竖线代表智能体在买入比特币,红色的竖线代表智能体在卖出比特币。右上角的白色方框是智能体所持有资产的总价值,在其下方的白色方框是当前比特币的价格。

这里容我自恋一下,我认为这个可视化的效果简单而又不失优雅。现在,是时候训练我们的比特币交易智能体了,看看它能帮我们赚到多少钱!


训练比特币交易智能体


由于我们训练智能体时使用的是时间序列数据,因此在交叉验证方面我们并没有太多的选择。

就拿一种常见的交叉验证形式: k-fold(k组)交叉验证来举例,在 k-fold 交叉验证中,你需要将数据拆分成 k 个相等的分组,将每一个分组分别做一次测试组,其余的 k-1 组数据用作训练组。

然而,时间序列数据与时间有着高度的依赖性,这意味着后面出现的数据高度依赖于先前出现的数据。所以在这种情况下 k-fold 将不起作用,因为这样会让我们的智能体提前知道未来的数据,即使盈利了我们也不知道是得益于智能体精准的预测还是因为智能体作弊了。

当应用于时间序列数据时,大多数其他的交叉验证策略也都存在着同样的缺陷。因此,我们只需在完整数据帧中给定一个分界点,前一部分的数据用作训练集,其余的数据用作测试集。






接下来,由于我们的比特币交易环境被设置为仅处理单个数据帧,因此我们需要创建两个比特币交易环境,一个用于训练数据,一个用于测试数据。






到这里,我们就可以训练模型了。如下面的代码所示,我们只需要在比特币交易环境中创建智能体,然后调用 model.learn 命令开始训练。






在这里,我们会使用机器学习框架 tensorflow 的可视化工具 tensorboard ,从而我们可以轻松地可视化 tensorflow 的数据流图并查看有关我们智能体的一些量化指标。

比如说,下图展示了智能体在经过 200000 个时间步长后的盈利:






看起来我们的智能体都获得了很多的收益!最好的一个智能体在 200,000 个时间步长后资产总价值提升了 1000 倍,而其余的智能体资产总价值平均提升了 30 倍以上!

不过,就在这时,我意识到比特币交易环境中存在一个错误......在修复了该错误之后,这是新的收益图:






正如你所看到的,我们的一些智能体做得很好,而有一些则表现很差。总的来说,表现良好的智能体最多能够实现资产总价值提升 10 倍甚至 60 倍。

我必须承认,所有这些智能体都是在虚拟的比特币交易环境中训练和测试的,所以将这个比特币交易智能体直接应用于比特币区块链上还为时尚早。但是至少这个结果告诉我们,使用人工智能来进行加密货币交易决策这条路是行得通的。

接下来,让我们在比特币交易测试环境中测试智能体,在测试环境中我们将使用智能体以前从未见过的全新数据,看看这些智能体是否学到了比特币的交易策略。





结果显示,我们训练出来的比特币交易智能体在新的测试环境中争相走向破产


这也并不意外,因为我们还有很多的工作要做。仅仅通过简单地将模型从当前的近端策略优化( Proximal Policy Optimization , PPO2 )智能体切换到 stable-baseline 程序库中的 A2C ( Advantage Actor-Critic )就可以大大提高我们在此数据集上的性能。

同时,我们也可以更新奖励函数,激励那些资产总价值不断增加的操作,防止有些比特币交易智能体在资产总价值达到高位时就消极怠工。






仅仅做出这两个改动就可以大幅度提高比特币交易智能体在当前数据集上的性能,正如下图所示,最终我们在数据全新的测试环境上成功实现了盈利。






除此之外,我们还可以做得更好。为了提升这些比特币交易智能体的准确度,我们可以优化超参数并训练智能体更长的时间。是时候给你的显卡(深度学习代码运行在显卡之上)一点压力了!

如果你想继续优化,这里可以给你提供些思路,你可以使用贝叶斯优化来在问题空间上寻找最佳的超参数,并使用显卡的 CUDA 运算平台优化训练环境和测试环境。


结论


在本教程中,我们使用深度强化学习从零开始创建了一个能够获得收益的比特币交易智能体。

具体而言,我们完成了以下的任务:

    使用 OpenAI 团队开发的用于测试强化学习算法的工具包 gym 从零开始创建了一个比特币交易环境;
    使用 Python 可视化程序库 Matplotlib 将比特币交易环境可视化;
    使用简单的交叉验证对我们的比特币交易智能体进行了训练和测试;
    虽然还有很多的工作需要完成,但现在我们已经可以看到成功的曙光。


 
虽然最后我们的比特币交易智能体在数据全新的测试环境中还不能保证总是盈利,但我们已经离成功不远了。


作者 | Adam King
译者 | Guoxi
责编 | Aholiab
出品 | 区块链大本营(blockchain_camp) 查看全部
3D-Rendering-Robot-and-laptop-stock-exchange-trading.jpg

炒股的人都知道,天天盯着大盘做决策不仅让人劳神,还让人秃头。所以一堆顶级的数学家开始用数学的手段进行股市预测。

加密货币市场也一样,而且加密货币市场波动更加频繁,更加剧烈。对于这个问题,国外加密货币开发者 Adam King 提出了一种新的解决思路。

结合人工智能在预测方面得天独厚的优势, Adam 提出了使用深度强化学习构建加密货币自动交易程序,同时,这位小哥还做出了一个能够真正交易比特币的展示模型,他是怎么做到的?这个自动交易程序又能达到怎样的效果呢?让我们在文中一探究竟。

在本文中,我们将使用深度强化学习建立一个加密货币自动交易智能体(agent),并训练它通过交易比特币盈利。

为了避免重复造轮子,在本篇教程中我们将使用人工智能研究机构 OpenAI 开发的程序包。

目前人工智能在很多领域都已经超过了人类,从最初谷歌 DeepMind 团队开发的 AlphaGo 战胜围棋世界冠军李世石,到后来师出同门的 AlphaStar 在星际争霸中以 10:1 的大比分战胜两位职业玩家。近日,OpenAI 团队的 OpenAI Five 在 Dota2 游戏中以 2:0 的比分将世界冠军 OG 斩于马下。

201905131840081.png

谷歌 DeepMind 团队星际争霸人工智能产品 AlphaStar 的训练过程


人工智能给我们带来了很多激动人心的结果,虽然我们不会构建像 AlphaGo 这样令人印象深刻的产品,但在日常的比特币交易中实现盈利也非易事。

因此,与其冒着脱发的风险苦苦探索比特币币价的规律,何不让人工智能来一展身手?

在本文中,我们将通过人工智能技术完成一下三个尝试:


    为我们的智能体(agent)创建一个测试强化学习的 gym 环境; 以一种简单、优雅的方式可视化我们的测试环境; 训练我们的智能体,让它学习到能获益的比特币交易策略。



这里有些操作可能会比较麻烦,就比如说从头开始构建 gym 测试环境并将测试环境可视化,不过不要担心,我会仔细介绍这些细节,跟上我的节奏就好。


程序库安装


在本教程中,我们将使用 Zielak 提供的 Kaggle 数据集。如果你想要这些数据,你可以在我的 Github 仓库中下载 .csv 数据文件。

首先,我们来导入所有必要的 Python 程序库。如果你的电脑上还没有安装这些程序库,你可以使用 pip install 命令进行安装。

201905131840082.jpg


接下来,我们创建一个比特币交易环境的类。我们需要向其中传入一个 pandas 数据帧,一个用于指示智能体在每一个时间步长( time step )需要分析前几个时间步长数据的回顾窗口大小( lookback_window_size ),以及可选的智能体账户初始余额( initial_balance )。

代码中我们将手续费( commission )设置为每笔交易的 0.075% ,也就是加密货币期货交易所 Bitmex 当前的费率,同时,我们将序列运行( serial )参数默认为否( false ),这意味着在默认情况下我们的数据帧将以随机的形式遍历各个片段。

除此之外,我们还在数据帧上分别调用了删除非数字(NaN,Not A Number)所在行的 dropna 函数以及在删除了数据之后重新设置数据帧索引的 reset_index 函数。

201905131840083.jpg


代码中 action_space (操作空间)的第一个数字表示可选的 3 个选项,即买入,卖出或持有,第二个数字表示所操作的比例,最小单位是 10% ,也就是说这个数字中的 1,2,3 分别代表 10%,20%,30% 。当选择买入操作时,具体买入的比特币数量将是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。对于卖出操作,具体卖出的比特币数量也是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。

当然了,如果选择持有操作,那么就不会买卖账户中的比特币,因而第二个数字就没有了意义。

我们的 observation_space(观察空间)被定义为 0 到 1 之间的连续浮点数集,它的大小为( 10,回顾窗口大小( lookback_window_size ) + 1)。这里的 + 1 操作是考虑到了当前这一时间步长的操作。对于窗口中的每一步,我们都将观察它的收盘价位置价值( OHCLV ),我们在那时的资产总价值、买入或卖出的比特币数量、以及我们在买入或卖出这些比特币时花费的美元数。

接下来,我们需要编写重新设置( reset )函数来初始化比特币交易环境。

201905131840084.jpg


代码中我们使用了重新设置会话控制( self._reset_session )函数和下一次数据观察( self._next_observation )函数,不过这些函数都还没有被定义,接下来我们来定义它们。


交易会话控制


交易会话控制( session )是比特币交易环境中的一个重要组成部分。如果我们将这个智能体部署到外部,我们可能永远都不会一次让它运行几个月的时间。出于这个原因,我们将在数据帧参数( self.df )中限制智能体能够连续看到的数据帧数量。

在我们的重新设置会话控制( _reset_session )函数中,我们首先将当前的时间步长( current_step )重新设置为 0 。接下来,我们将剩余时间步长( steps_left )设置为 1 到最大交易会话控制数( MAX_TRADING_SESSION )之间的随机数,当然了,最大交易会话控制数需要在文件的顶部定义。

201905131840095.png


接下来,如果需要连续遍历数据帧,那就应该设置遍历所有的数据帧,否则我们需要在数据帧参数( self.df )中设置一个随机的数据帧起始位置( frame_start ),并创建一个名为激活数据帧( active_df )的新数据帧,它是数据帧( self.df )从起始位置( frame_start )到起始位置 + 剩余时间步长( frame_start + steps_left )这些连续帧组成的切片。

201905131840096.jpg


使用数据帧切片带来的一个重要影响就是,智能体将获得更多独一无二的数据,以便进行长时间的训练。举个例子,如果我们只是按顺序来遍历数据帧(即按数据帧 0 到最后一帧(len(df))的顺序),那么我们就只有数据帧个数这么多的唯一数据点。我们的观察空间在每一个时间步长只能观察区区几个状态。

但是,通过随机遍历数据帧的切片,我们有效地结合了原始数据集上每一个时间点的账户余额,交易数据以及当前比特币价格,从而创造出了更多独一无二的数据点。接下来我们通过一个例子来说明一下。

我们的智能体在每个时间步长中都有三种选择:买入,卖出或持有。对于这三种选择中的每一种,都还需指定操作比特币的数量,如操作当前比特币余额的 10%,20%,或是 100% 。这意味着我们的智能体在每个时间步长中都有 30 种不同的选择(当然了,对于持有操作,这 10 种选择的效果是一样的),而它从中选出最好的一个。

回到我们随机切片后的比特币交易环境。在第 10 个时间步长中,我们的智能体可以处于数据帧内的任何数据帧长度(len(df))时间步长。考虑到每个时间步长智能体可以做 30 种选择,这意味着在任意 10 个时间步长的间隔时间中,该智能体可以经历数据帧长度(len(df))的 30 次方种可能的唯一状态。

虽然这样的操作可能会给大型数据集带来相当大的噪声,但我相信这是一把双刃剑,这样我们的智能体也会从有限的数据量中学到更多。不过,对于测试数据集,我们仍将按顺序来遍历,这样做更贴近于“实时”的交易数据,因而可以更好更精确地检测我们的智能体。


比特币交易智能体都学到了些什么


为了更好地了解智能体所看到并学习到的特征,我们需要将比特币交易环境的观察空间可视化。就比如说,下面是使用 OpenCV 可视化渲染后的观察空间。

201905131840097.jpg

OpenCV 可视化渲染后的观察空间


图像中的每一行都代表我们观察空间( observation_space )中的一行。前4行类似于频率的红线代表了 OHCL 数据,下方的橙色和黄色的点代表着数量,再下方这个起伏不定的蓝色长条是智能体所拥有资产的总价值,而下方颜色较浅的点代则表智能体的交易。

如果你眯着眼睛看这张图,你就可以看到一个 K 线图,下面有着代表数量的指示条以及一个显示交易历史的类似于莫尔斯电码的界面。看起来我们的智能体应该能够在观察空间( observation_space )的数据中学到一些东西。在这里,我们将定义下一次观察( _next_observation )函数,在这个函数中我们要将观察到的数据缩放到 0 到 1 之间。

重要的一点是,仅仅缩放智能体到目前为止所观察到的数据,以避免出现前视偏差( Look-ahead bias,前视偏差是指在策略的开发中,采取了未来的一些信息,而这些信息在实盘操作中是基本上不可能得到的)。

201905131840138.jpg



编写步骤


现在我们已经设置好了观察空间,是时候编写我们的操作步骤( step )函数了,这个函数可以指导智能体的行为。

每当当前交易时段的剩余操作步骤( self.steps_left )等于 0 时,我们将卖出所持有的所有比特币并调用重新设置会话控制( _reset_session )函数。

否则,我们将智能体的奖励( reward )设置为当前所持有资产的总价值,如果智能体的资金用完了,则只会将完成( done )设置为真( True )。

201905131840139.jpg


其实,采取行动的过程十分简单,也就只有三步:

第一步,获取当前的比特币价格( current_price );

第二步,确定该买入卖出还是持有,以及所要操作的份额;

第三步,就是真实买入或卖出这些比特币。现在我们来编写采取行动( _take_action )函数,以便于测试我们的比特币交易智能体。

2019051318401410.jpg


最后,在这个函数中,我们将交易添加到交易记录参数( self.trades )中,并更新我们的资产总价值和账户交易历史。

2019051318401411.jpg


到这里,我们的智能体就可以启动新环境,在新环境中学习比特币交易的特征,并采取行动以获得收益。是时候让比特币交易智能体一展身手了。


查看比特币交易智能体的交易记录


上文中说到了,我们需要将智能体的学习和决策过程可视化。当然了,仅仅使用最简单的方法,在智能体每次决策后输出智能体所持有资产的总价值(print(self.net_worth))也不是不可以,不过这样做就少了很多的乐趣。因此,我们决定绘制一个简单的比特币价格数据 K 线图,其中包含数量栏和我们资产总价值的单独图表。

在代码中,我们需要定义一个用来可视化的资产交易图( StockTradingGraph )函数,在函数的初始化过程中,我们需要调用 python 可视化程序库 matplotlib.pyplot ,并指出每一个需要可视化的数据。

2019051318401412.jpg


为了更好地展现数据,在可视化方法中我们需要导入 Python 时间日期( datetime )处理模块,在数据上标注出人类可读的日期和时间。

2019051318401513.jpg


在导入完成后,我们需要使用将时间戳转换为世界统一时间 UTC 的 utcfromtimestamp 函数,将每个时间戳转化为 UTC 时间,然后用计算机时间函数( strftime )将这个 UTC 时间按照“ 年 - 月 - 日 小时:分钟 ”的格式展现出来。

2019051318401514.jpg


到这里,可视化函数的各个部分都已编写完成,回到比特币交易环境,我们现在可以汇总出一个可视化( render )函数来显示图形。

2019051318401515.jpg


ok了!我们现在可以看到智能体正在交易比特币。

2019051318401516.jpg

使用 Matplotlab 程序库可视化后的智能体交易比特币数据


图中绿色的竖线代表智能体在买入比特币,红色的竖线代表智能体在卖出比特币。右上角的白色方框是智能体所持有资产的总价值,在其下方的白色方框是当前比特币的价格。

这里容我自恋一下,我认为这个可视化的效果简单而又不失优雅。现在,是时候训练我们的比特币交易智能体了,看看它能帮我们赚到多少钱!


训练比特币交易智能体


由于我们训练智能体时使用的是时间序列数据,因此在交叉验证方面我们并没有太多的选择。

就拿一种常见的交叉验证形式: k-fold(k组)交叉验证来举例,在 k-fold 交叉验证中,你需要将数据拆分成 k 个相等的分组,将每一个分组分别做一次测试组,其余的 k-1 组数据用作训练组。

然而,时间序列数据与时间有着高度的依赖性,这意味着后面出现的数据高度依赖于先前出现的数据。所以在这种情况下 k-fold 将不起作用,因为这样会让我们的智能体提前知道未来的数据,即使盈利了我们也不知道是得益于智能体精准的预测还是因为智能体作弊了。

当应用于时间序列数据时,大多数其他的交叉验证策略也都存在着同样的缺陷。因此,我们只需在完整数据帧中给定一个分界点,前一部分的数据用作训练集,其余的数据用作测试集。

2019051318401817.jpg


接下来,由于我们的比特币交易环境被设置为仅处理单个数据帧,因此我们需要创建两个比特币交易环境,一个用于训练数据,一个用于测试数据。

2019051318401818.jpg


到这里,我们就可以训练模型了。如下面的代码所示,我们只需要在比特币交易环境中创建智能体,然后调用 model.learn 命令开始训练。

2019051318401819.jpg


在这里,我们会使用机器学习框架 tensorflow 的可视化工具 tensorboard ,从而我们可以轻松地可视化 tensorflow 的数据流图并查看有关我们智能体的一些量化指标。

比如说,下图展示了智能体在经过 200000 个时间步长后的盈利:

2019051318401820.jpg


看起来我们的智能体都获得了很多的收益!最好的一个智能体在 200,000 个时间步长后资产总价值提升了 1000 倍,而其余的智能体资产总价值平均提升了 30 倍以上!

不过,就在这时,我意识到比特币交易环境中存在一个错误......在修复了该错误之后,这是新的收益图:

2019051318401921.jpg


正如你所看到的,我们的一些智能体做得很好,而有一些则表现很差。总的来说,表现良好的智能体最多能够实现资产总价值提升 10 倍甚至 60 倍。

我必须承认,所有这些智能体都是在虚拟的比特币交易环境中训练和测试的,所以将这个比特币交易智能体直接应用于比特币区块链上还为时尚早。但是至少这个结果告诉我们,使用人工智能来进行加密货币交易决策这条路是行得通的。

接下来,让我们在比特币交易测试环境中测试智能体,在测试环境中我们将使用智能体以前从未见过的全新数据,看看这些智能体是否学到了比特币的交易策略。

2019051318401922.jpg

结果显示,我们训练出来的比特币交易智能体在新的测试环境中争相走向破产


这也并不意外,因为我们还有很多的工作要做。仅仅通过简单地将模型从当前的近端策略优化( Proximal Policy Optimization , PPO2 )智能体切换到 stable-baseline 程序库中的 A2C ( Advantage Actor-Critic )就可以大大提高我们在此数据集上的性能。

同时,我们也可以更新奖励函数,激励那些资产总价值不断增加的操作,防止有些比特币交易智能体在资产总价值达到高位时就消极怠工。

2019051318401923.png


仅仅做出这两个改动就可以大幅度提高比特币交易智能体在当前数据集上的性能,正如下图所示,最终我们在数据全新的测试环境上成功实现了盈利。

2019051318401924.jpg


除此之外,我们还可以做得更好。为了提升这些比特币交易智能体的准确度,我们可以优化超参数并训练智能体更长的时间。是时候给你的显卡(深度学习代码运行在显卡之上)一点压力了!

如果你想继续优化,这里可以给你提供些思路,你可以使用贝叶斯优化来在问题空间上寻找最佳的超参数,并使用显卡的 CUDA 运算平台优化训练环境和测试环境。


结论


在本教程中,我们使用深度强化学习从零开始创建了一个能够获得收益的比特币交易智能体。

具体而言,我们完成了以下的任务:


    使用 OpenAI 团队开发的用于测试强化学习算法的工具包 gym 从零开始创建了一个比特币交易环境;
    使用 Python 可视化程序库 Matplotlib 将比特币交易环境可视化;
    使用简单的交叉验证对我们的比特币交易智能体进行了训练和测试;
    虽然还有很多的工作需要完成,但现在我们已经可以看到成功的曙光。



 
虽然最后我们的比特币交易智能体在数据全新的测试环境中还不能保证总是盈利,但我们已经离成功不远了。


作者 | Adam King
译者 | Guoxi
责编 | Aholiab
出品 | 区块链大本营(blockchain_camp)

拿住等牛市?仅25%的BTC参与转账活动,创2015年来新低

市场8btc 发表了文章 • 2018-11-01 18:49 • 来自相关话题

尽管最近全球金融市场陷入波动,但在过去的六个月里,只有四分之一的比特币(不包括新挖掘出来的部分)在不同的地址间发生过转账活动。

根据研究机构Coin Metrics为彭博新闻编制的数据,变化是从2017年末开始的,当时所有这些比特币中约一半是活跃的。Coin Metrics称,比特币在2015年以后从没有达到过如此低的活动水平。






Coin Metrics联合创始人Nic Carter在接受电话采访时表示:

“数据告诉我,我们仍处于比特币的经济衰退中。”


根据Coin Metrics的数据,大约50%的比特币(不包括新挖掘的部分)在过去的12个月中参与转账活动,低于2017年末的约60%。考虑到去年年底比特币的价格达到近20,000美元的历史最高水平,许多新投资者,特别是投机者,大量涌入,因此转账活动的大幅减少更令人感到惊讶。这批投资者中的许多人高价买入,希望快速赚取利润,但随着价格暴跌而被套牢。如果比特币的价格再次反弹,相信其中许多人会将手中的比特币出售。

历史数据显示,大量的比特币从未交易过。 Coin Metrics估计,高达40%的比特币已经丢失或保存在所谓的冷储存设备中。另外25%到35%是半流动性的,所以它们只在牛市期间恢复活动性,长期持有者出售手中的比特币以套现获得收益。Coin Metrics表示,在价格不断下跌的时候,只有约30%的比特币可供交易。

Carter说:

“我认为这有助于我们在一定程度上评估'真正的流动性'。在某种程度上,我认为它可以让你大致评估未来流入市场的BTC将会造成的影响。”


根据CoinMarketCap.com的数据,即使比特币每日交易量比1月份的峰值下降近80%,每天仍有约40亿美元的比特币易手。

DA Davidson&Co的机构股权主管Gil Luria在一封电子邮件中表示:

“这并不意味着比特币市场存在流动性问题。每天40亿的交易量意味着几乎所有比特币投资者都可以在一个交易日内清仓退场。”



原文:Only 1 in 4 Bitcoins Moved Between Addresses in Past Six Months
作者:Olga Kharif
编译:Apatheticco 查看全部
-1x-1.png

尽管最近全球金融市场陷入波动,但在过去的六个月里,只有四分之一的比特币(不包括新挖掘出来的部分)在不同的地址间发生过转账活动。

根据研究机构Coin Metrics为彭博新闻编制的数据,变化是从2017年末开始的,当时所有这些比特币中约一半是活跃的。Coin Metrics称,比特币在2015年以后从没有达到过如此低的活动水平。

1000x-1.png


Coin Metrics联合创始人Nic Carter在接受电话采访时表示:


“数据告诉我,我们仍处于比特币的经济衰退中。”



根据Coin Metrics的数据,大约50%的比特币(不包括新挖掘的部分)在过去的12个月中参与转账活动,低于2017年末的约60%。考虑到去年年底比特币的价格达到近20,000美元的历史最高水平,许多新投资者,特别是投机者,大量涌入,因此转账活动的大幅减少更令人感到惊讶。这批投资者中的许多人高价买入,希望快速赚取利润,但随着价格暴跌而被套牢。如果比特币的价格再次反弹,相信其中许多人会将手中的比特币出售。

历史数据显示,大量的比特币从未交易过。 Coin Metrics估计,高达40%的比特币已经丢失或保存在所谓的冷储存设备中。另外25%到35%是半流动性的,所以它们只在牛市期间恢复活动性,长期持有者出售手中的比特币以套现获得收益。Coin Metrics表示,在价格不断下跌的时候,只有约30%的比特币可供交易。

Carter说:


“我认为这有助于我们在一定程度上评估'真正的流动性'。在某种程度上,我认为它可以让你大致评估未来流入市场的BTC将会造成的影响。”



根据CoinMarketCap.com的数据,即使比特币每日交易量比1月份的峰值下降近80%,每天仍有约40亿美元的比特币易手。

DA Davidson&Co的机构股权主管Gil Luria在一封电子邮件中表示:


“这并不意味着比特币市场存在流动性问题。每天40亿的交易量意味着几乎所有比特币投资者都可以在一个交易日内清仓退场。”




原文:Only 1 in 4 Bitcoins Moved Between Addresses in Past Six Months
作者:Olga Kharif
编译:Apatheticco

埃森哲研究报告显示:区块链技术可推动大规模交易转型

资讯8btc 发表了文章 • 2018-10-18 12:18 • 来自相关话题

据福布斯10月16日报道,为全球金融市场提供基础设施服务的美国证券托管清算公司(Depository Trust & Clearing Corporation, DTCC)最近公布了埃森哲的一份研究报告。埃森哲在该报告中表明,分布式账本技术(DLT)能够支持美国股票市场的日均超过1亿次交易的交易量,区块链技术的可扩容性再一次获得了验证。

长期以来,随着加密货币的日益普及公众加密货币意识的增强,区块链的扩容问题也越来越严重,这使该技术可能无法跟上发展步伐。目前,加密货币中规模最大比特币和以太坊使用大小有限的区块来处理交易。处理的交易越多,每个区块所携带的数据越多,导致交易阻塞的可能性就越大。

因此,区块链的可扩容性成了它能否获得普遍应用的关键。咨询公司埃森哲(Accenture)在技术服务提供商数字资产(Digital Asset, DA)和R3的支持下对此进行了研究。该报告没有提到及业区块链创业公司Axoni,后者在2016年宣布与DTCC建立了伙伴关系。埃森哲(Accenture) 总经理兼全球区块链业务主管戴维•特里特(David Treat)在一份声明中表示:

“该报告回答了一些关键的问题,并让人们充分相信区块链技术可以胜任推动大规模交易转型的角色。”


为了评估分布式账本技术在股票市场的能力,埃森哲建立了一个超过170个节点的网络,以模拟DTCC支持的交易所、市场参与者和经纪人/交易商的生态系统。去年,DTCC的子公司处理了价值超过1.61万亿美元的证券交易,并为价值57.4万亿美元的证券提供托管和资产服务。其交易托管服务每周的场外交易量维持4000万次。

虽然DTCC表示,该研究证明DLT能够以峰值速率(1.15亿笔交易,或连续5小时每秒6300笔交易)处理全天的美国股市交易量,但其同时指出,该研究仅测试了基本功能,要确定DLT是否能够满足DTCC当前系统弹性、安全性和监管等其他方面的要求,还需要做更多的测试。

本月早些时候,比特币协议开发人员马克•弗里登巴赫(Mark Friedenbach)提出了一种比特币扩容方案,声称能够将比特币“结算交易量提高到当前水平的3584倍”,并改善其审查阻力。这一新的概念建议,通过工作量证明(PoW)的转换(以软分叉的形式完成),并结合使用替代的私有分类账,可以大大提高比特币链上的容量。

今年7月,一组比特币开发人员成立了一个比特币运营技术小组(Bitcoin Operations Technology Group,Bitcoin Optech),以解决其扩容问题。届时,该小组将专注于“运营技术工作,如隔离验证(SegWit)的使用、交易批量处理、费用估算和加密货币选择等”,以帮助这一快速发展的技术被更多公司所采用。


原文:
DTCC Study: Tech Inspired By Bitcoin Could Work For U.S. Equity Markets
Scalability Study: DLT Can Support Daily Trading Volume of US Equity Market
作者:Sarah Hansen, Ana Alexandre
编译:Libert 查看全部
740_aHR0cHM6Ly9zMy5jb2ludGVsZWdyYXBoLmNvbS9zdG9yYWdlL3VwbG9hZHMvdmlldy9hMmNiNzQyYjgxYzc2YjM5Y2Y0NmU5ZTRiYzA3YmUxZi5qcGc.jpg

据福布斯10月16日报道,为全球金融市场提供基础设施服务的美国证券托管清算公司(Depository Trust & Clearing Corporation, DTCC)最近公布了埃森哲的一份研究报告。埃森哲在该报告中表明,分布式账本技术(DLT)能够支持美国股票市场的日均超过1亿次交易的交易量,区块链技术的可扩容性再一次获得了验证。

长期以来,随着加密货币的日益普及公众加密货币意识的增强,区块链的扩容问题也越来越严重,这使该技术可能无法跟上发展步伐。目前,加密货币中规模最大比特币和以太坊使用大小有限的区块来处理交易。处理的交易越多,每个区块所携带的数据越多,导致交易阻塞的可能性就越大。

因此,区块链的可扩容性成了它能否获得普遍应用的关键。咨询公司埃森哲(Accenture)在技术服务提供商数字资产(Digital Asset, DA)和R3的支持下对此进行了研究。该报告没有提到及业区块链创业公司Axoni,后者在2016年宣布与DTCC建立了伙伴关系。埃森哲(Accenture) 总经理兼全球区块链业务主管戴维•特里特(David Treat)在一份声明中表示:


“该报告回答了一些关键的问题,并让人们充分相信区块链技术可以胜任推动大规模交易转型的角色。”



为了评估分布式账本技术在股票市场的能力,埃森哲建立了一个超过170个节点的网络,以模拟DTCC支持的交易所、市场参与者和经纪人/交易商的生态系统。去年,DTCC的子公司处理了价值超过1.61万亿美元的证券交易,并为价值57.4万亿美元的证券提供托管和资产服务。其交易托管服务每周的场外交易量维持4000万次。

虽然DTCC表示,该研究证明DLT能够以峰值速率(1.15亿笔交易,或连续5小时每秒6300笔交易)处理全天的美国股市交易量,但其同时指出,该研究仅测试了基本功能,要确定DLT是否能够满足DTCC当前系统弹性、安全性和监管等其他方面的要求,还需要做更多的测试。

本月早些时候,比特币协议开发人员马克•弗里登巴赫(Mark Friedenbach)提出了一种比特币扩容方案,声称能够将比特币“结算交易量提高到当前水平的3584倍”,并改善其审查阻力。这一新的概念建议,通过工作量证明(PoW)的转换(以软分叉的形式完成),并结合使用替代的私有分类账,可以大大提高比特币链上的容量。

今年7月,一组比特币开发人员成立了一个比特币运营技术小组(Bitcoin Operations Technology Group,Bitcoin Optech),以解决其扩容问题。届时,该小组将专注于“运营技术工作,如隔离验证(SegWit)的使用、交易批量处理、费用估算和加密货币选择等”,以帮助这一快速发展的技术被更多公司所采用。


原文:
DTCC Study: Tech Inspired By Bitcoin Could Work For U.S. Equity Markets
Scalability Study: DLT Can Support Daily Trading Volume of US Equity Market
作者:Sarah Hansen, Ana Alexandre
编译:Libert

俄罗斯银行欲涉足加密领域,却受政府阻挠,场外交易激增,1/3是中国人

地区odaily 发表了文章 • 2018-09-21 17:25 • 来自相关话题

战斗民族这次有点保守。
 

据 Cointelegraph 报道,俄罗斯几家大型银行欲将与加密行业合作。该网站称,俄罗斯对加密货币的需求非常高,但由于缺乏明确的规定,银行无法实现这一需求。
 
俄罗斯银行似乎一直在为实现这一目标而努力。
 
在莫斯科交易所闭门会议期间,俄罗斯银行代表成立了一个游说团队,目标是向俄罗斯政府建议如何管理该国加密领域。
 
而且这不是他们的第一次游说。今年3月,他们向国家提交了关于加密货币和ICO相关的联邦法律草案,即“数字金融资产”法案。草案提议将加密货币定义为数字金融资产,允许通过授权的交易所进行交易,并为ICO建立反洗钱(KYC)和反恐融资(CTF)规则。而俄罗斯政府认为它“不完善且支离破碎”。
 
在最新修订的“数字金融资产”法案中,则将加密货币排除在“数字金融资产”之外。而将其定义为“代替数字空间中的证券,并确保资产所有权的账户单位”。
 
此文件也没有提到俄罗斯合法化加密货币的任何时间点。根据起草法案的人的说法,俄罗斯试图通过将加密货币市场置于狭窄的范围内来降低与加密货币相关的风险。
 
因此在俄罗斯开展加密货币和区块链业务仍然是不可能的。
 
而政府对加密交易的限制,则导致场外交易的投资需求增加。据 bitcoin.com 网站报道,莫斯科比特币和以太坊等主流加密货币的日交易量在高峰日达到了惊人的5000万美元。该报道表示,营业额的1/3来自中国人。
 
同时,据Vnesheconombank披露,9月19日火币加入俄罗斯数字资产交易平台Vnesheconombank ,号称利用Huobi所积累的专业知识为俄罗斯数字资产领域的立法活动提供专家支持。同时也包含对俄罗斯投资者的教育和培训。
 
一方面市场如此轰轰烈烈,另一方面政府却抱持严禁的态度。有人担心,俄罗斯政府的保守态度将使其在加密世界失去机会。 查看全部
8k4yb9endd5rcwl8.jpg!1200_.jpg


战斗民族这次有点保守。
 


据 Cointelegraph 报道,俄罗斯几家大型银行欲将与加密行业合作。该网站称,俄罗斯对加密货币的需求非常高,但由于缺乏明确的规定,银行无法实现这一需求。
 
俄罗斯银行似乎一直在为实现这一目标而努力。
 
在莫斯科交易所闭门会议期间,俄罗斯银行代表成立了一个游说团队,目标是向俄罗斯政府建议如何管理该国加密领域。
 
而且这不是他们的第一次游说。今年3月,他们向国家提交了关于加密货币和ICO相关的联邦法律草案,即“数字金融资产”法案。草案提议将加密货币定义为数字金融资产,允许通过授权的交易所进行交易,并为ICO建立反洗钱(KYC)和反恐融资(CTF)规则。而俄罗斯政府认为它“不完善且支离破碎”。
 
最新修订的“数字金融资产”法案中,则将加密货币排除在“数字金融资产”之外。而将其定义为“代替数字空间中的证券,并确保资产所有权的账户单位”。
 
此文件也没有提到俄罗斯合法化加密货币的任何时间点。根据起草法案的人的说法,俄罗斯试图通过将加密货币市场置于狭窄的范围内来降低与加密货币相关的风险。
 
因此在俄罗斯开展加密货币和区块链业务仍然是不可能的。
 
而政府对加密交易的限制,则导致场外交易的投资需求增加。据 bitcoin.com 网站报道,莫斯科比特币和以太坊等主流加密货币的日交易量在高峰日达到了惊人的5000万美元。该报道表示,营业额的1/3来自中国人。
 
同时,据Vnesheconombank披露,9月19日火币加入俄罗斯数字资产交易平台Vnesheconombank ,号称利用Huobi所积累的专业知识为俄罗斯数字资产领域的立法活动提供专家支持。同时也包含对俄罗斯投资者的教育和培训。
 
一方面市场如此轰轰烈烈,另一方面政府却抱持严禁的态度。有人担心,俄罗斯政府的保守态度将使其在加密世界失去机会。

45%区块链项目一年后价值归零 人工智能的预测能信吗?

攻略blockbeats 发表了文章 • 2018-09-21 12:05 • 来自相关话题

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。











在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。






另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。






风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2  查看全部
algorithmic-trading-software-system.jpg

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。

c798ebe181de2c795513e91a1d0ddd31.jpg


fbadfa8e551577313147fc07ffa41f5a.jpg


在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。

695472221f7db9fe0450aaf3d05c97f8.jpg


另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。

250ca9bdd35ef4f60eb3eb63f8893732.jpg


风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2 

当日交易加密货币时最容易犯的 7 个错误

攻略chainnews 发表了文章 • 2018-09-04 13:45 • 来自相关话题

当日交易加密货币可能导致超额利润,但是,它也可能会导致超额亏损。本文收集了 7 个最昂贵的日交易错误。避开这些,你可以成为一个更负责任的当日交易者。


错误 1:FOMO 和 FUD 交易

当你根据自己的情绪而不是分析进行交易时,很快就会失去你的钱。使用您理解并遵守的指标和规则制定您自己的交易策略。考虑随着时间的推移评估您的规则:查看您的交易历史并收集盈利和亏损的数据报告。以结果驱动的方式更新规则可能有助于抵制 FOMO 和 FUD。


错误 2:使用错误的工具

并非所有的加密货币产品都是在日常交易的基础上构建的,有些产品最终会限制一个人有效地进行日间交易的能力。钱包就是一个很好的例子,签署和确认钱包交易所需的时间可能会延迟您的交易。


错误 3:输入您无法退出的位置

某些交易所相当缺乏流动性: 它们没有足够的流水来支持在任何特定时刻以优惠的价格轻易卖掉您的加密货币。在其他时候,通常拥有健康流动性的交易所可能会有非常低的交易量 - 例如,在假期或周末交易。


错误 4:过分强调技术分析

确保继续阅读加密新闻和价格分析 - 而不仅仅是盯着图表。即使你不应该屈服于许多加密文章产生的 FOMO 和 FUD,你仍然需要这个消息才能了解市场情况。还要考虑设置止损订单,以确保在发生蝴蝶效应时减轻您的损失。


错误 5:没有看到你想要做的交易的正确点差

务必查看交易所的订单,以便更好地了解您可以获得的交易加密货币数量的实际价格。考虑将您的订单分成更小的部分以获得更好的价格,或者使用交易算法,让您在订单簿的顶部执行更大的订单作为隐藏订单。


错误 6:没有采用适当的对冲策略

在多个交易所买卖,然后,当你看到市场上犹豫不决的时刻,在最低价格的交易所购买更多的加密货币,同时在最高价格的交易所卖出一些。这样,您的风险就会降低:如果价格上涨,您就赚了钱,如果价格下跌,您可以以较低的价格回购。


错误 7:日交易?

如果您相信特定加密货币的使命,技术和价值主张,您可能需要考虑长期购买并持有它。与日间交易相比,这有可能减轻压力并获得更多利润。


原文:The 7 Costliest Mistakes People Make When Day Trading Cryptocurrency
作者:SFOX
编译:Jade 查看全部
1-_HIwVS2wfO_PT5sNYI_Vpw.jpg


当日交易加密货币可能导致超额利润,但是,它也可能会导致超额亏损。本文收集了 7 个最昂贵的日交易错误。避开这些,你可以成为一个更负责任的当日交易者。


错误 1:FOMO 和 FUD 交易

当你根据自己的情绪而不是分析进行交易时,很快就会失去你的钱。使用您理解并遵守的指标和规则制定您自己的交易策略。考虑随着时间的推移评估您的规则:查看您的交易历史并收集盈利和亏损的数据报告。以结果驱动的方式更新规则可能有助于抵制 FOMO 和 FUD。


错误 2:使用错误的工具

并非所有的加密货币产品都是在日常交易的基础上构建的,有些产品最终会限制一个人有效地进行日间交易的能力。钱包就是一个很好的例子,签署和确认钱包交易所需的时间可能会延迟您的交易。


错误 3:输入您无法退出的位置

某些交易所相当缺乏流动性: 它们没有足够的流水来支持在任何特定时刻以优惠的价格轻易卖掉您的加密货币。在其他时候,通常拥有健康流动性的交易所可能会有非常低的交易量 - 例如,在假期或周末交易。


错误 4:过分强调技术分析

确保继续阅读加密新闻和价格分析 - 而不仅仅是盯着图表。即使你不应该屈服于许多加密文章产生的 FOMO 和 FUD,你仍然需要这个消息才能了解市场情况。还要考虑设置止损订单,以确保在发生蝴蝶效应时减轻您的损失。


错误 5:没有看到你想要做的交易的正确点差

务必查看交易所的订单,以便更好地了解您可以获得的交易加密货币数量的实际价格。考虑将您的订单分成更小的部分以获得更好的价格,或者使用交易算法,让您在订单簿的顶部执行更大的订单作为隐藏订单。


错误 6:没有采用适当的对冲策略

在多个交易所买卖,然后,当你看到市场上犹豫不决的时刻,在最低价格的交易所购买更多的加密货币,同时在最高价格的交易所卖出一些。这样,您的风险就会降低:如果价格上涨,您就赚了钱,如果价格下跌,您可以以较低的价格回购。


错误 7:日交易?

如果您相信特定加密货币的使命,技术和价值主张,您可能需要考虑长期购买并持有它。与日间交易相比,这有可能减轻压力并获得更多利润。


原文:The 7 Costliest Mistakes People Make When Day Trading Cryptocurrency
作者:SFOX
编译:Jade

了解比特币链下指标,改善您的交易

攻略leekgeek 发表了文章 • 2019-07-01 18:53 • 来自相关话题

免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。







“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
bitcoin-off-chain-metrics.jpg


免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。

hodl_waves.png



“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu

 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

比特币3个月暴涨3倍,该逃顶了吗?你应该知道的比特币链上指标

攻略leekgeek 发表了文章 • 2019-06-27 12:32 • 来自相关话题

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。






Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
metrics.jpg

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。


priceModels.png

Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

“韭菜”能查看鲸鱼持仓信息?Coinbase的新数据工具有点6

攻略8btc 发表了文章 • 2019-07-18 11:54 • 来自相关话题

美国数字资产交易所Coinbase推出了一个具有争议性的工具,其能够帮助入门级数字资产投资者了解经验丰富的交易者在做什么。

周三,该交易所宣布提供了一套新的信号工具,而这个工具会监视并广播Coinbase顶级交易员的活动。

Coinbase在其官方博客文章中解释说:

    “顶级持有者的活动信号,是指那些拥有大量资产余额(排名前10%)的Coinbase客户在过去24小时内通过交易净增加(购买)或减少(出售)其资产持仓的信息,这个信息大约每2小时更新一次。”



CoinBase发言人在接受外媒CoinDesk采访时进一步解释称,顶级持有者的监视范围仅限于个人,而不包括机构。

此外,CoinBase还计算了另外两个数据点:(1)平均持有时间(2)每项资产的流行程度。而这两个功能,CoinBase是依赖于整个Coinbase用户群的数据,其会告诉你在将某项特定资产出售或发送到其他地址之前,人们会保留多长时间。






不幸的是,当你将资产转移到硬件钱包或一种安全钱包时,Coinbase会认为你不再“持有”该资产,因为其已经不在你的Coinbase账户上了。

最后,Coinbase会查看价格数据,以确定多个资产的价格是否相关。例如,如果X币与Y的相关性为0%,则意味着它们会并行地上下移动。而负相关,则意味着两个资产会向相反的方向移动。此功能可帮助投资者构建更均衡的密码货币投资组合。

 
质疑声:CoinBase是在赶大户走?


针对CoinBase提供的辅助工具,行业人士Kyle Samani评论称:






    “有人能给我解释一下吗?我真的不太理解,我的直接反应是,这将鼓励鲸鱼将其资产转移至其他地方。

    为什么要信任一家向其他交易者提供你的信息的交易所(尽管是聚合信息)?。”



对此疑问,Coinbase高级工程师Will Drevo的解释是,Coinbase的顶级账户持有者有购买而非出售投资者投资组合持仓的倾向。他在一篇博文中写道:

    “从历史上看,当顶级持有者异常看涨或看跌时,这表明市场状况正在发生变化,但并非总是如此。”



Drevo认为,利用这些信息并不总是对交易员有利,也不应直接将其视为投资策略或建议。相反,其鼓励用户根据自己的需求、财务情况和风险承受能力创建和管理自己的投资策略。


编者评:Coinbase的初衷是通过推出这套辅助工具来吸引新的用户,并增加平台用户黏性,但公布大户持仓信息显然对大户而言并没有太多好处,好在这个信息并不是实时公布的,而是设置了2小时的间隔时间(相比之下CME是每周才更新),否则大户不提币走人才怪,而这个时间差,也意味着一旦大户出现了交易倾向,其可能会快速进行操作,在一定程度上会加大市场波动性。值得玩味的是,Coinbase表示其并没有监视机构账户,而只监视了个人账户,这一决定似乎又会激起更多的争论。


原文:https://blog.coinbase.com/trade-smarter-on-coinbase-b3e6852fa2ce
https://www.coindesk.com/coinbase-releases-new-data-tools-for-first-time-crypto-investors
编译:洒脱喜 查看全部
201907180228246354.png

美国数字资产交易所Coinbase推出了一个具有争议性的工具,其能够帮助入门级数字资产投资者了解经验丰富的交易者在做什么。

周三,该交易所宣布提供了一套新的信号工具,而这个工具会监视并广播Coinbase顶级交易员的活动。

Coinbase在其官方博客文章中解释说:


    “顶级持有者的活动信号,是指那些拥有大量资产余额(排名前10%)的Coinbase客户在过去24小时内通过交易净增加(购买)或减少(出售)其资产持仓的信息,这个信息大约每2小时更新一次。”




CoinBase发言人在接受外媒CoinDesk采访时进一步解释称,顶级持有者的监视范围仅限于个人,而不包括机构。

此外,CoinBase还计算了另外两个数据点:(1)平均持有时间(2)每项资产的流行程度。而这两个功能,CoinBase是依赖于整个Coinbase用户群的数据,其会告诉你在将某项特定资产出售或发送到其他地址之前,人们会保留多长时间。

201907180234583878.png


不幸的是,当你将资产转移到硬件钱包或一种安全钱包时,Coinbase会认为你不再“持有”该资产,因为其已经不在你的Coinbase账户上了。

最后,Coinbase会查看价格数据,以确定多个资产的价格是否相关。例如,如果X币与Y的相关性为0%,则意味着它们会并行地上下移动。而负相关,则意味着两个资产会向相反的方向移动。此功能可帮助投资者构建更均衡的密码货币投资组合。

 
质疑声:CoinBase是在赶大户走?


针对CoinBase提供的辅助工具,行业人士Kyle Samani评论称:

201907180213329718.jpg


    “有人能给我解释一下吗?我真的不太理解,我的直接反应是,这将鼓励鲸鱼将其资产转移至其他地方。

    为什么要信任一家向其他交易者提供你的信息的交易所(尽管是聚合信息)?。”




对此疑问,Coinbase高级工程师Will Drevo的解释是,Coinbase的顶级账户持有者有购买而非出售投资者投资组合持仓的倾向。他在一篇博文中写道:


    “从历史上看,当顶级持有者异常看涨或看跌时,这表明市场状况正在发生变化,但并非总是如此。”




Drevo认为,利用这些信息并不总是对交易员有利,也不应直接将其视为投资策略或建议。相反,其鼓励用户根据自己的需求、财务情况和风险承受能力创建和管理自己的投资策略。


编者评:Coinbase的初衷是通过推出这套辅助工具来吸引新的用户,并增加平台用户黏性,但公布大户持仓信息显然对大户而言并没有太多好处,好在这个信息并不是实时公布的,而是设置了2小时的间隔时间(相比之下CME是每周才更新),否则大户不提币走人才怪,而这个时间差,也意味着一旦大户出现了交易倾向,其可能会快速进行操作,在一定程度上会加大市场波动性。值得玩味的是,Coinbase表示其并没有监视机构账户,而只监视了个人账户,这一决定似乎又会激起更多的争论。


原文:https://blog.coinbase.com/trade-smarter-on-coinbase-b3e6852fa2ce
https://www.coindesk.com/coinbase-releases-new-data-tools-for-first-time-crypto-investors
编译:洒脱喜

了解比特币链下指标,改善您的交易

攻略leekgeek 发表了文章 • 2019-07-01 18:53 • 来自相关话题

免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。







“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
bitcoin-off-chain-metrics.jpg


免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


常言道,你知道的东西不重要,重要的是你认识的人。不过,在交易比特币的时候,你知道一些东西,还是很重要的。


我们在之前的文章里介绍了比特币的链上指标(on-chain metrics),下面是一系列有用的链下指标(off-chain metrics)。任何交易者都应该了解这些指标。

同样,这些指标都是根据加密分析师 Adam Taché 的相关指南编制的。


梅尔倍数


“梅尔倍数”(Mayer Multiple)是最流行的指标之一,由当前价格除以200天移动平均值(200-MA)得出。平均值为1.39,从历史上看,当它等于或大于2.4时,它将回到1.5以下。


已花费输出利润率


“已花费输出利润率”(Spent Output Profit Ratio, SOPR)跟踪市场价格与已实现价格(Realised Price)的关系,可被用作识别局部价格顶部和底部的指标。

简单地说,SOPR是卖出价格(Selling Price)除以已实现价格(Realised Price),SOPR围绕1上下波动。

在熊市中,高于1的价格被拒绝,因为持有者拼命地试图出售以获取利润,导致供应量增加,价格下降。相反,在牛市中,低于1的价值被拒绝,因为人们不愿意亏本出售,从而限制了供应,从而对价格产生了上行压力,价格上涨。


市值衍生指标


“MVRV比率”(MVRV Ratio),市值(Market Cap/Value, MV)除以已实现市值(Realised Cap/Value, RV)。历史上,MVRV小于1表示估值过低,大于3.7表示估值过高。过去曾有两次这个比率跌到过1以下,一次是2011年底,比特币最大跌幅高达94%,一次是2015年1月,这一比率也低于1,这两次触底后比特币价格都开始上涨。

“MVRV z-score”,是市值(MV)和已实现市值(RV)之间的标准偏差数,用于判断市值与已实现市值的偏离程度。它的计算方法是,从MV中减去RV,再除以标准偏差。该指标在市场长期低迷之前趋于抛物线形。


“MVDV比率”(MVDV Ratio),市值(MV)除以Delta市值(Delta Cap/Value, DV)。MVDV和市场顶部价格之间的熊市差异意味着市场顶部,MVDV比率低于1则表明市场处于底部位置。


HODL Waves


由于新投资者在涨势中买入比特币,然后在市场低迷期间一直持有这些比特币,进入下一个市场周期,从而产生了 HODL Waves(持有波动)。HODL Waves 测量比特币交易中的年龄分布,可以用来检测比特币持有者的累积情况。虽然这个指标对于预测比特币未来的价格走势并不是特别有用,但它确实可以制作出一张漂亮的彩色图表。

hodl_waves.png



“休眠”衍生指标


有许多基于“休眠”(Dormancy)的市场健康(market-health)指标。

“平均休眠”(Average Dormancy)是指币天销毁数(CDD)与成交量(每天)之间的比率。这个指标测量UTXOs保持休眠的时间,显示比特币的累积和发行,跟踪比特币的花费(Spending)行为。

“供应调整后的休眠”(Supply-Adjusted Dormancy)是“平均休眠”除以供应(Supply)。因为比特币存在的时间越长,币天销毁数可能越大,“平均休眠”可以排除这一干扰因素。

“DUA Ratio”在计算HODL Waves的等式中引入了UTXO年龄,而“Dormancy Flow”(休眠流)则将价格与年化支出行为进行比较。

Dormancy Flow = Market Cap /(Dormancy的365天移动平均 * 价格)


平均已花费输出寿命


“平均已用输出寿命”(Median Spent Output Lifespan, MSOL)衡量每个已花费输出(Spent Output)的平均寿命(以天为单位)。它可以表明长期持有者减少头寸,并用于确定流通中的比特币近期被用于销售的供应量。


网络动量


“网络动量”(Network Momentum)是以BTC计算的每日交易价值,从而消除了价格的噪音。它已被用作市场价格和周期的领先指标。


普尔倍数


最后,“普尔倍数”(Puell Multiple)是每日硬币发行量(美元)与该值的365天移动平均值的比率。然而,在明年减半之后,网络交易费用将占到矿工奖励的更大比例。因此,最好使用挖矿收入(Mining Revenue,以美元计算),而不是使用硬币发行量。

普尔倍数为网络安全提供了一个健康指标,可以从挖矿盈利能力等卖家角度来衡量市场。


当然,由于分析师一直在设计新的指标,比特币指标列表永远都不可能完整。但在交易前将其中的一部分(或全部)纳入研究可能会显著改善你的交易结果。


原文:Bitcoin Off-Chain Metrics To Improve Your Trading
作者:Emilio Janus
编译:Satojiu

 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

比特币3个月暴涨3倍,该逃顶了吗?你应该知道的比特币链上指标

攻略leekgeek 发表了文章 • 2019-06-27 12:32 • 来自相关话题

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。






Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek) 查看全部
metrics.jpg

 
免责声明:以下内容不是交易或投资建议,仅用于娱乐和学习目的。在购买或投资任何加密货币之前,请自行做好研究。


通过比特币赚钱很容易,对吧?持有足够长的时间,然后获得回报……
 
但是,如果你想获得更多呢?
 
或者你也不需要持有太多时间,从今年3月到现在,比特币3个月暴涨3倍。今天凌晨比特币继续暴力拉升,突破13500美元,24小时涨幅高达20%。
 
那么,这3个月的暴涨是否太疯狂了,需要逃顶了吗?


我们做交易的时候,需要对市场及其各种指标有更深入的了解,但很多时候,分析师们似乎只是在说一种陌生的、完全听不懂的语言。

那么,你怎么知道 CVDD,或者 NVT Ratio?值得庆幸的是,加密分析师 Adam Taché 编写了一些方便的指南,我们将在本文中介绍这些链上(on-chain)指标,后续还会介绍相关链下(off-chain)指标。


已实现市值,已实现价格


在计算比特币和加密货币的市值时,“已实现市值”(Realised Cap)指标弥补了“市值”指标(Market Cap)的不足。

“市值”,是当前价格*当前供应量,没有考虑到丢失、无人认领或无法使用的硬币。

相反,“已实现市值”是每枚硬币最后一次移动时的价值之总和。因此,丢失的硬币,以及一段时间没有流通的硬币不按现行价格计价。当然,有一个问题是,这不能区分真正丢失的硬币和深冷储存的硬币。尽管我们可以认为这些长期持有不动的硬币,相当于已经丢失的硬币,直到它们被移动(被发现)。

“已实现价格”(Realised Price)是一个成交量加权平均价格(Volume-Weighted Average Price, VWAP),近似于为已流通比特币支付的平均价格。
 

均衡价格,币天销毁数


为了理解“均衡价格”(Balanced Price),以及随后的累计价值天销毁数(Cumulative Value-Days Destroyed),我们需要理解“币天销毁数”(CoinDays Destroyed, CDD)的概念。

"币天销毁数"是一种交易量指标,硬币被持有的时间越长,该硬币的权重越大。当1个比特币一天内不移动时,就会创造一个“币天”(CoinDay)。如果1个比特币在100天后被移动,那么它已经创造了100个“币天”,该移动将产生100个“币天销毁数”(CDD)。如果这个比特币立即被再次移动,所销毁的币天为零。

利用这个指标,我们可以计算“转移价格”(Transferred Price),它将CDD引入比特币价格计算,可以被视为比特币花费价格的移动平均值。“转移价格”的分子是所有CDD乘以被销毁时价格的总和,分母是市场年龄(Market Age, 以天为单位)乘以当前供应量(Current Supply)。

“均衡价格”(Balanced Price),是“已实现价格”(avg. paid)减去“转移价格”(avg. spent),目的是成为一个“公平”的估价标准。在熊市期间,当比特币价格降到这个水平时,这是一个很好的迹象,表明已经市场已经触底。即将转向。


累计价值天销毁数


“累计价值天销毁数”(Cumulative Value-days Destroyed, CVDD)是将CDD纳入价格计算的另一种方法。它的计算方法与“转移价格”完全相同,只是略有调整。它不使用供应量(随时间增加)作为除数,而是使用固定值6000000。这是用于校准计算的一个数字,如果市场年龄(自创始区块以来的时间)是以小时或区块而不是以天为单位来测量的,则会有所不同。

通过这一校准,CVDD在2011年、2015年和2018年触及了价格底部,准确度令人难以置信。


Delta Cap(底部指标)


Delta Cap 是另一种比特币指标,旨在捕捉市场底部并预测新的牛市走势。计算方法为,“已实现市值”减去“平均市值”(迄今为止的简单移动平均值)。

Delta cap= Realized cap – Average cap
 


Top Cap(顶部指标)


Top Cap 指标是一个简单的指标,“平均市值”乘以35。迄今为止,它在预测加密市场“顶部”方面非常有效,与CVDD结合使用时,为价格波动预测上下区间。

Top Cap 准确给出了2011年35美元的阻力位、2013年237美元和约1000美元的两个阻力位。该指标准确指出了这些市场顶部,后来的行情大家都清楚,比特币在短时间内出现大幅下跌。

2017年在加密市场鼎盛时,比特币价格达到了2万美元的历史最高点,并触及顶部指标 Top Cap。之后,比特币的价格下跌超过80%。

Top cap = Average cap * 35
 
从 Top cap 指标来看,目前比特币本轮上涨离价格顶部还有很大的空间,逃顶为时尚早。当然,单一的指标只能略作参考,不能作为投资决策的依据。
 

Thermo Cap(网络的累计安全支出)


Thermo Cap 被用作衡量资本流入比特币的指标。它是挖矿奖励(Coinbase Tx)的总和,以挖掘出来时的价格计算,用来表示比特币网络的累计安全支出。比特币网络通过矿工的工作量证明(PoW)来保障网络安全。


NVT Ratio(NVT比率)


最后,NVT Ratio(NVT比率),全称 Network Value to Transactions (NVT) Ratio,网络价值交易量比率,是衡量比特币货币流通速度的指标。为比特币流通市值(网络价值)除以通过区块链传输的交易量(链上交易,每日以美元计价)。

NVT Ratio = 加密货币网络价值/每日交易量

由于比特币是一种价值存储的网络,交易量代表投资者的现金流入。因此,NVT比率大致类似于股票市场中的市盈率(P/E)。它可以很好地表明比特币的价值是被低估还是高估。


绘制指标


上述的这些指标,很多都是实验性的,虽然它们似乎能准确地描绘比特币过去的表现,但不能依赖它们来预测未来。然而,它们无疑是分析市场及其周期的有用工具。

所有这些指标都可以在Woomics的Woobull Charts网站上绘制和研究。

本系列的下一篇文章将介绍分析师使用的一些链下(off-chain)指标,这些指标主要从这些链上(on-chain)估值模型派生出来。


priceModels.png

Woobull Charts:https://charts.woobull.com/bitcoin-price-models/
 
 
原文:Bitcoin On-Chain Metrics That Every Trader Should Know, bitcoinist
作者:Emilio Janus
编译:Satojiu
 
 
连载中……
作者:韭菜极客(微信公众号:leekgeek)

回报率850%? 这个用Python优化的比特币交易机器人简直太烧脑了...

攻略blockchaincamp 发表了文章 • 2019-06-13 12:42 • 来自相关话题

上个月,AI 工程师 Adam King 结合人工智能在预测方面得天独厚的优势,提出使用深度强化学习构建加密货币自动交易的程序。在展示模型中,程序的收益率竟达到了惊人的 60 倍(只讨论技术,无关投资建议)。

但在当时,这个展示模型略显粗糙。虽然能获得收益,但它并不稳定。使用它可能让你赚得盆满钵盈,也有可能让你赔得一无所有,颇有些“富贵险中求”的意味。

不稳定的问题一直困扰着 Adam 小哥,经过一个月的蛰伏,小哥提出将特征工程和贝叶斯优化两大杀器引入模型。这些改进会奏效么?收益率又能提升多少呢?一起来看看 Adam 小哥的最新力作吧!



在上一篇文章中(《60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具》),我们使用深度强化学习创建了一个可以赚钱的比特币自动交易智能体。虽然这个智能体能够做到自动交易比特币获得收益,但它的收益率并没有让人眼前一亮,今天我们会大幅度改进这个比特币交易智能体,从而提高它的收益率。

需要注意的是,本篇文章的目的是测试当下最先进的深度强化学习技术是否能与区块链相结合,创造出一个可以盈利的比特币自动交易智能体。目前看来业界都还没有意识到深度强化学习在自动交易方面强大的潜力,反而认为它并不是一个“能用来构建交易算法的工具”。不过,深度学习领域的最新进展已经表明,在同一个问题上强化学习智能体通常能够比普通的监督学习智能体学习到更多的特征。

出于这个原因,我做了相关的实验来探究基于深度强化学习的交易智能体究竟能达到怎样的收益率,当然了,结果也可能会是深度强化学习有着很强的局限性以至于并不适合做交易智能体,但不去尝试谁又知道结果如何呢?

首先,我们将会改进深度强化学习模型的策略网络( policy network )并使输入数据变得平稳,以便交易智能体能在很少的数据中学习到更多的特征。

接下来,我们将使用当下先进的特征工程方法来改善交易智能体的观察空间,同时微调交易智能体的奖励函数( reward function )以帮助它发现更好的交易策略。

最后,在训练并测试交易智能体获得的收益率之前,我们将使用贝叶斯优化的方法来寻找能最大化收益率的超参数。

前方高能,系好安全带,让我们开始这场干货满满的探索之旅吧。


关于深度强化学习模型的改进


在上一篇文章中,我们已经实现了深度强化学习模型的基本功能,

GitHub 地址:

https://github.com/notadamking/Bitcoin-Trader-RL

当务之急是提高深度强化学习智能体的盈利能力,换句话说就是要对模型进行一些改进。


循环神经网络(Recurrent Neural Network,RNN)

我们需要做的第一个改进就是使用循环神经网络来改进策略网络,也就是说,使用长短期记忆网络( Long Short-Term Memory ,LSTM )网络代替之前使用的多层感知机( Multi-Layer Perceptron,MLP )网络。由于循环神经网络随着时间的推移可以一直保持内部状态,因此我们不再需要滑动“回顾窗口“来捕捉价格变动之前的行为,循环神经网络的循环本质可以在运行时自动捕捉这些行为。在每个时间步长中,输入数据集中的新一个数据与上一个时间步长的输出会被一起输入到循环神经网络中。

因而长短期记忆网络可以一直维持一个内部状态。在每个时间步长中,智能体会新记住一些新的数据关系,也会忘掉一些之前的数据关系,这个内部状态也就会随之更新。





循环神经网络会接收上一个时间步长的输出





循环神经网络如何处理上一个时间步长的输出与这一个时间步长的输入





长短期记忆网络实现代码 LSTM_model.py


介于循环神经网络对于内部状态得天独厚的优势,在这里,我们使用长短期记忆网络策略更新了近端策略优化 PPO2 模型。


数据平稳性

在上一篇文章中我曾指出比特币交易的数据是非平稳的(Non-Stationary,即存在一些趋势,而不能仅仅看作是随机的波动),因此,任何机器学习模型都难以预测未来。

    平稳时间序列是平均值,方差和自相关系数(与其自身的滞后相关)都恒定的时间序列。


而且,加密货币价格的时间序列有着很明显的趋势和季节效应(季节效应是指与季节相关联的股市非正常收益,是股市中的一种“异像”,是与市场有效性相悖的情况),这两者都会影响算法对时间序列预测的准确率,所以在这里,我们需要使用差分和变换的方法来处理输入数据,从现有的时间序列中构建一个正常的数据分布来解决这个问题。

从原理上来说,差分过程就是给任意两个时间步长内加密货币币价的导数(即收益率)做差值。在理想情况下,这样做可以消除输入时间序列中存在的趋势,但是,差分处理对季节效应并不奏效,处理后的数据仍然具有很强的季节效应。这就需要我们在差分处理之前进行对数处理来消除它,经过这样的处理最终我们会得到平稳的输入时间序列,如下方右图所示。





从左到右分别为:加密货币的收盘价,差分处理后的收盘价,对数处理和差分处理后的收盘价





对数处理和差分处理的代码 diff_and_log_time_series.py


处理后的输入时间序列平稳性如何,我们可以使用增广迪基-福勒检验( Augmented Dickey-Fuller test )验证一下。

运行以下代码:





增广迪基-福勒检验的代码 adfuller_test.py


我们得到的 p 值为 0.00 ,这意味着我们拒绝假设检验中的零假设并确认处理后的输入时间序列是平稳的。

我们可以运行上面的增广迪基-福勒检验代码来检验输入时间序列的平稳性。

在完成了这项工作之后,接下来我们将使用特征工程的方法进一步优化交易智能体的观察空间。


特征工程


为了进一步提升交易智能体的收益率,我们需要做一些特征工程。

    特征工程是使用该领域知识来生成额外的输入数据从而优化机器学习模型的过程。


具体到交易智能体,我们将在输入数据集中添加一些常见且有效的技术指标,以及 Python 数据分析程序库 StatsModels 中季节效应预测模型 SARIMAX 的输出。这些技术指标会为我们的输入数据集带来一些相关的,但可能会滞后的信息,这些信息能大大提升交易智能体预测的准确性。这些优化方法的组合可以为交易智能体提供一个非常好的观察空间,让智能体学习到更多的特征,从而获得更多的收益。


技术分析


为了选择技术指标,我们将比较 Python 技术分析库 ta 中可用的所有 32 个指标( 58 个特征)的相关性。可以使用数据分析工具 pandas 来计算相同类型的各个指标(如动量,体积,趋势,波动率)之间的相关性,然后在每种类型中仅选择最不相关的指标作为特征。这样,就可以在不给观察空间带来过多噪音干扰的情况下,最大程度地发掘这些技术指标的价值。





使用 Python 高级可视化库 seaborn 做出的比特币数据集上技术指标相关性的热力图


结果显示,波动率指标以及一些动量指标都是高度相关的。在删除所有重复的特征(每个类型中相关性的绝对平均值大于 0.5 的特征)之后,我们将剩余的 38 个技术特征添加到交易智能体的观察空间中。

在代码中,我们需要创建一个名为 add_indicators(添加指标)的函数来将这些特征添加到数据帧中,为了避免在每个时间步长中重复计算这些特征,我们只在交易智能体环境初始化的过程中调用 add_indicators 函数。





交易智能体环境初始化的代码 initialize_env.py


在这里,初始化交易智能体环境,在进行数据平稳性处理之前将特征添加到了数据帧中。


统计分析


接下来我们需要添加预测模型。

由于季节效应自回归移动平均模型(Seasonal Auto Regressive Integrated Moving Average,SARIMA)可以在每个时间步长中快速计算价格的预测值,在平稳数据集中运算非常准确,因此我们使用它来进行加密货币币价预测。

除了上述这些优点之外,该模型实现起来非常简单,它还可以给出预测值的置信区间,通常情况下这比单独给出一个预测值能提供更多的信息。就比如说,当置信区间较小时,交易智能体就会更相信这个预测值的准确性,当置信区间很大时交易智能体就知道要承担更大的风险。





加入 SARIMA 预测模型的代码 add_sarimax_predictions.py


这里我们将 SARIMAX 预测模型和置信区间添加到交易智能体的观察空间中。

现在我们已经使用性能更好的循环神经网络更新了策略,并使用特征工程的方法改进了交易智能体的观察空间,是时候优化其他的部分了。
 

奖励优化


有些人可能会觉得上一篇文章中的奖励函数(即奖励资产总价值不断增加)已经是最好的解决方案了,但是,通过进一步的研究我发现奖励函数还有提升的空间。虽然我们之前使用的简单奖励函数已经能够获得收益,但它给出的投资策略非常不稳定,往往会导致资产的严重损失。为了改善这一点,除了考虑利润的增加以外,我们还需要考虑其他奖励的指标。

奖励指标的一个简单改进就是,不仅仅奖励在比特币价格上涨时持有比特币带来的利润,还奖励在比特币价格下跌时抛售比特币而避免的损失。就比如说,我们可以奖励智能体买入比特币而总资产增加的行为,以及卖出比特币避免总资产减少的行为。

虽然这种奖励指标在提高收益率方面非常出色,但这样做并没有考虑到高回报带来的高风险。投资者早已发现这种简单投资策略背后存在的漏洞,并将其改进成一种风险可调节的奖励指标。


基于波动率的奖励指标

这种风险可调节的奖励指标中的典型就是夏普比率(Sharpe Ratio,又被称为夏普指数)。它计算的是特定时间段内投资组合的超额收益与波动性的比率。具体的计算公式如下:





夏普比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的标准差


从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性(也就是风险)。

作为一种奖励指标,夏普比率经受住了时间的考验,但它对于自动交易智能体来说并不是很完美,因为它会对上行标准差( upside volatility )产生不利影响,而在比特币交易环境中有时我们需要利用上行标准差,因为上行标准差(即比特币价格疯狂上涨)通常都是很好的机会窗口。

而使用索提诺比率( Sortino Ratio )可以很好地解决这个问题。索提诺比率与夏普比率非常相似,只是它在风险上只考虑了下行标准差,而不是整体标准差。因此,索提诺比率并不会对上行标准差产生什么不利影响。因而我们给交易智能体的第一条奖励指标就选择索提诺比率,它的计算公式如下:





索提诺比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的下行标准差


其他奖励指标

我们选择 Calmar 比率作为交易智能体的第二个奖励指标。到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大回撤率(drawdown)这个关键因素。

    最大回撤率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。


最大回撤率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。





最大回撤率


为了消除最大回撤率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大回撤率。





Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大回撤率


我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。从理论上来说,在衡量风险与收益时,Omega 比率应该优于 Sortino 比率和 Calmar 比率,因为它能够在单个指标中使用收益的分布来评估风险。

计算 Omega 比率时,我们需要分别计算在特定基准之上或之下投资组合的概率分布,然后两者相除计算比率。Omega 比率越高,比特币上涨潜力超过下跌潜力的概率就越高。





Omege 比率的计算公式


Omega 比率的计算公式看起来很复杂,不过不要担心,在代码中实现它并不难。


代码实现

虽然说编写每个奖励指标的代码听起来很有意思且很有挑战性,但这里为了方便大家的理解,我选择使用 Python 量化金融程序包 empyrical 来计算它们。幸运的是,这个程序包中恰好包含了我们上面定义的三个奖励指标,因而在每个时间步长中,我们只需要将该时间段内收益和大盘收益的列表发给 Empyrical 函数,它就会返回这三个比率。





使用 empyrical 程序包计算三个奖励指标的代码 risk_adjusted_reward.py


在代码中,我们通过预先定义的奖励函数设置了每个时间步长的奖励。

到目前为止,我们已经确定了如何衡量一个交易策略的成功与否,现在是时候弄清楚哪些指标会带来较高的收益。我们需要将这些奖励函数输入到自动超参数优化软件框架 Optuna 中,然后使用贝叶斯优化来的方法为输入数据集寻找最优的超参数。


工具集


俗话说,好马配好鞍。任何一个优秀的技术人员都需要一套好用的工具,否则就会巧妇难为无米之炊。

但我并不是说我们要重复造轮子,我们应该学会使用程序员前辈用秃头的代价为我们开发的工具,这样他们的工作也算没有白费。对于我们所开发的交易智能体,它要用到的最重要的工具就是自动超参数优化软件框架 Optuna,从原理上来说,它使用了树结构的 Parzen 窗估计(Tree-structured Parzen Estimators,TPEs)来实现贝叶斯优化,而这种估计方法是可以并行化运行的,这使得我们的显卡有了用武之地,执行搜索需要的时间也会大大缩短。简而言之,

    贝叶斯优化是一种搜索超参数空间以找到能最大化给定目标函数的超参数的高效解决方案。


也就是说,贝叶斯优化能够有效地改进任何黑箱模型。从工作原理上来说,贝叶斯优化通过使用替代函数( surrogate functions )或是替代函数的分布对要优化的目标函数进行建模。随着时间的推移,算法不断地检索超参数空间以找到那些能够最大化目标函数的超参数,分布的效果也会逐渐改善。

理论说了这么多,我们要如何把这些技术应用在比特币自动交易智能体中呢?从本质上来讲,我们可以使用这种技术来找到一组最优的超参数,使得智能体的收益率最高。这个过程就像是在超参数的汪洋大海中捞取一根效果最好的针,而贝叶斯优化就是带我们找到这根针的磁铁。让我们开始吧。

使用 Optuna 优化超参数并不是什么难事。

首先,我们需要创建一个 optuna 实例,也就是装载所有超参数试验的容器。在每次试验中我们需要调整超参数的设置来计算目标函数相应的损失函数值。在实例初始化完成后,我们需要向其中传入目标函数然后调用 study.optimize() 函数开始优化,Optuna 将使用贝叶斯优化的方法来寻找能够最小化损失函数的超参数配置。





使用 Optuna 程序库贝叶斯优化的代码 optimize_with_optuna.py


在这个例子中,目标函数就是在比特币交易环境中训练并测试智能体,而目标函数的损失值则定义为测试期间智能体平均收益的相反数,之所以给收益值加上负号,是因为平均收益越高越好,而在 Optuna 看来损失函数越低越好,一个负号刚好解决这个问题。optimize 优化函数为目标函数提供了试验对象,代码中我们可以指定试验对象中的变量设置。





优化目标函数的代码 optimize_objective_fn.py


optimize_ppo2 优化智能体函数和 optimize_envs 优化智能体环境函数接收试验对象作为输入并返回包含要测试参数的字典。每个变量的搜索空间由 suggest 函数进行设置,我们需要在试验中调用 suggest 函数并给函数中传入指定的参数。

比如说,如果设置参数在对数尺度上服从均匀分布,即调用函数

trial.suggest_loguniform('n_steps',16,2048),

相当于给函数了一个 16-2048 之间的 2 的指数次方(如16,32,64,…,1024,2048)的新浮点数。

再者,如果设置参数在普通尺度上服从均匀分布,即调用函数

trial.suggest_uniform('cliprange',0.1,0.4),

相当于给函数一个 0.1 到 0.4 之间的新浮点数(如0.1,0.2,0.3,0.4)。

相信你已经看出来了其中的规律,就是这样来设置变量:

suggest_categorical('categorical',['option_one','option_two']),其中 categorical 为设置变量的策略, option_one 和 option_two 分别为变量的两个选项,在刚才的函数中这两个选项为变量的范围,弄懂了这个相信下面的代码就难不倒你了。





化交易智能体的代码 optimize_ppo2.py





优化交易环境的代码 optimize_envs.py


代码写好后,我们在一台高性能服务器上以 CPU/显卡协同运算的方式运行了优化函数。在设置中,Optuna 创建了一个 SQLite 数据库,我们可以从中加载优化的实例。该实例记录了测试过程中性能最好的一次试验,从中我们可以推算出智能体交易环境中最优的超参数集。





加载 optuna 实例的代码 load_optuna_study.py


到这里,我们已经改进了模型,改进了特征集,并优化了所有的超参数。但俗话说,是骡子是马得拉出来遛遛。

那么,交易智能体在新的奖励指标下表现如何呢?

在训练过程中,我分别使用了利润、Sortino 比率、Calmar 比率和 Omega 比率四个奖励指标来优化智能体。接下来我们需要在测试环境中检验哪种奖励指标训练出来的智能体收益最高,当然了,测试环境中的数据都是智能体在训练过程中从未见到过的比特币价格走势,这样保证了测试的公平性。


收益比较


在查看结果之前,我们需要知晓一个成功的交易策略是什么样的。出于这个原因,我们将针对一些常见且有效的比特币交易策略进行基准测试。令人震惊的是,在过去的十年中一个最有效的比特币交易策略就是买入并持有,而另外两个不错的交易策略则是使用简单但有效的技术分析来生成买入/卖出信号,从而指导交易。

1、买入并持有

这种交易策略指尽可能多地购买比特币并一直持有下去(也就是区块链社区中的江湖黑话“ HODL ”)。虽然说这种交易策略并不是特别复杂,但在过去这样做赚钱的机率很高。

2、相对强弱指数分歧(Relative Strength Index(RSI) divergence )

当相对强弱指数持续下跌且收盘价持续上涨时,这就是需要卖出的信号,而当相对强弱指数持续上涨且收盘价持续下跌时,就是需要买入的信号。

3、简单移动平均线( Simple Moving Average,SMA )交叉

当长期简单移动平均线超过短期简单移动平均线时,这就是需要卖出的信号,而当短期简单移动平均线超过长期简单移动平均线时,就是需要买入的信号。

你可能会问,为什么要做这些简单的基准测试呢?这样做是为了通过比较证明我们的强化学习交易智能体可以在比特币市场上发挥作用,如果智能体的收益连这些简单的基准收益都超不过,那么我们就相当于花费了大量的开发时间和显卡算力来进行了一场天马行空的科学实验。现在,让我们来证明事实并非如此。


实验结果


我们的数据集选用从加密货币数据网站 CryptoDataDownload 上下载的每小时收盘价位置价值( OHCLV )数据,其中前 80% 的数据用来训练智能体,后 20% 作为全新的数据进行测试,以了解智能体的收益能力。当前这种简单的交叉验证形式足以满足我们的需求,而如果这个比特币自动交易智能体真的走向生产就绪,我们就可以使用全部的数据集进行训练,然后在每天新产生的数据集上进行测试。

废话不多说,我们来看看结果。

可以看到,使用 Omega 比率作为奖励指标的智能体在测试阶段并没有让人眼前一亮的交易。





使用 Omega 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


分析智能体所进行的交易我们可以发现,很明显 Omega 比率这种奖励指标产生了过度交易(over-trade)的交易策略,以至于智能体未能抓住市场机会获得收益。

使用 Calmar 比率作为奖励指标的智能体与使用 Omega 比率作为奖励指标的智能体相比略有改进,但最终结果非常相似。看起来像是我们投入了大量的时间和精力,只是为了让事情变得更糟......





使用 Calmar 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


如果仅使用利润作为奖励指标效果如何呢?在上一篇文章中这种奖励指标被证明有点失败,这次做的所有修改和优化能否化腐朽为神奇呢?

在为期四个月的测试周期内,使用利润作为奖励指标的智能体平均收益达到账户初始金额的350%。你可能已经被这个结果吓呆了。这应该就是强化学习能达到的巅峰了吧,对吧?





使用利润作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


并不是这样的。使用 Sortino 比率作为奖励指标的智能体平均收益达到了账户初始金额的850%。当我看到这个数字时,我都不敢相信自己的眼睛,以至于我立马回去检查代码中是否存在问题。但经过彻底的检查后,很明显代码中没有任何错误,也就是说这些智能体已经知道如何进行比特币交易。





使用 Sortino 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


看起来使用 Sortino 比率作为奖励指标的智能体学习到了在最小化持有比特币风险的前提下低价买入和高价卖出的重要性,同时它们还躲过了过度交易和投资不足两大陷阱。虽然说智能体学到的具体交易策略我们不得而知,但是我们可以清楚地看到智能体已经学会通过交易比特币获得收益了。





使用 Sortino 比率作为奖励指标的智能体正在交易比特币,其中绿色的三角形表示买入信号,红色的三角形表示卖出信号


现在,我并没有被实验成功的兴奋冲昏头脑。我清楚地知道比特币自动交易智能体还远远没有达到生产就绪。话虽如此,但这些结果比我迄今为止看到的任何交易策略都要令人印象深刻。而且令人震惊的是,我们并没有告诉智能体关于加密货币市场如何运作、如何在加密货币市场上赚钱这样的先验知识,而是仅靠智能体重复地试验和试错就达到了这么好的效果,不过,这里经过了很多很多次的试验和试错。


写在最后


在本篇文章中,我们优化了基于强化学习的比特币自动交易智能体,让它在交易比特币时做出更好的决策,从而获得更多的收益!在这个过程中我们花费了大量的时间和精力,也遇到了很多的困难,我们把困难分解细化再逐个攻破,最终完成了智能体的优化,其中具体的操作步骤如下:

1、使用循环神经网络升级现有模型,即升级成使用平稳性数据的长短期记忆网络;

2、使用领域知识和统计分析进行特征工程,为智能体提供了 40 多个用来学习的新特征;

3、将投资的风险引入智能体的奖励指标,而不只是关注利润;

4、使用贝叶斯优化来寻找模型中最优的超参数;

5、使用常见的交易策略进行基准测试,以确保智能体的收益可以跑赢市场。


从理论上来说,这个高收益的交易智能体已经做得很不错了。

但是,我收到了相当多的反馈,他们声称交易智能体只是在学习拟合曲线,因此,面对生产环境中的实时数据,交易智能体永远不可能获得收益。虽然我们在不同数据集上训练/测试智能体的方法应该能够解决这个问题,但是模型确实会有过度拟合数据集的可能,并且可能不会很好地推广到实时数据。话虽这么说,但在我看来这些交易智能体学习到的远远不只是简单的曲线拟合,因此,我认为它们能够在实时交易的场景中获得收益。

为了检验这个想法,接下来的一段时间里我会把这些基于强化学习的智能体带到生产环节,为此,我们首先要更新智能体的运行环境以支持以太币、莱特币等其他加密货币,然后我们将升级智能体让它可以在加密货币交易所 Coinbase Pro 上实时交易。

这将会是一个激动人心的实验,请不要错过它。

需要强调的是,本篇文章中所有的方法和投资策略都是出于教育目的,不应被视为投资建议。我们的比特币自动交易智能体也远远没有达到实际生产层面,所以请管好自己的钱包。


参考资源:

1)基于 Python 语言和 Tensorflow 框架的循环神经网络和长短期记忆网络教程

https://adventuresinmachinelearning.com/recurrent-neural-networks-lstm-tutorial-tensorflow/

2)浅析基于 Python 语言的季节效应自回归移动平均模型预测时间序列

https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/

3)浅析基于 Python 语言的非平稳性时间序列处理

https://www.analyticsvidhya.com/blog/2018/09/non-stationary-time-series-python/

4)超参数优化算法

https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

5)机器学习方法在金融领域中的最新进展

https://dwz.cn/iUahVt2u


来源 | Towards Data Science 编译 | Guoxi 责编 | 乔治 出品 | 区块链大本营(Blockchain_camp) 查看全部
3D-Rendering-Robot-and-laptop-stock-exchange-trading.jpg


上个月,AI 工程师 Adam King 结合人工智能在预测方面得天独厚的优势,提出使用深度强化学习构建加密货币自动交易的程序。在展示模型中,程序的收益率竟达到了惊人的 60 倍(只讨论技术,无关投资建议)。

但在当时,这个展示模型略显粗糙。虽然能获得收益,但它并不稳定。使用它可能让你赚得盆满钵盈,也有可能让你赔得一无所有,颇有些“富贵险中求”的意味。

不稳定的问题一直困扰着 Adam 小哥,经过一个月的蛰伏,小哥提出将特征工程和贝叶斯优化两大杀器引入模型。这些改进会奏效么?收益率又能提升多少呢?一起来看看 Adam 小哥的最新力作吧!




在上一篇文章中(《60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具》),我们使用深度强化学习创建了一个可以赚钱的比特币自动交易智能体。虽然这个智能体能够做到自动交易比特币获得收益,但它的收益率并没有让人眼前一亮,今天我们会大幅度改进这个比特币交易智能体,从而提高它的收益率。

需要注意的是,本篇文章的目的是测试当下最先进的深度强化学习技术是否能与区块链相结合,创造出一个可以盈利的比特币自动交易智能体。目前看来业界都还没有意识到深度强化学习在自动交易方面强大的潜力,反而认为它并不是一个“能用来构建交易算法的工具”。不过,深度学习领域的最新进展已经表明,在同一个问题上强化学习智能体通常能够比普通的监督学习智能体学习到更多的特征。

出于这个原因,我做了相关的实验来探究基于深度强化学习的交易智能体究竟能达到怎样的收益率,当然了,结果也可能会是深度强化学习有着很强的局限性以至于并不适合做交易智能体,但不去尝试谁又知道结果如何呢?

首先,我们将会改进深度强化学习模型的策略网络( policy network )并使输入数据变得平稳,以便交易智能体能在很少的数据中学习到更多的特征。

接下来,我们将使用当下先进的特征工程方法来改善交易智能体的观察空间,同时微调交易智能体的奖励函数( reward function )以帮助它发现更好的交易策略。

最后,在训练并测试交易智能体获得的收益率之前,我们将使用贝叶斯优化的方法来寻找能最大化收益率的超参数。

前方高能,系好安全带,让我们开始这场干货满满的探索之旅吧。


关于深度强化学习模型的改进


在上一篇文章中,我们已经实现了深度强化学习模型的基本功能,

GitHub 地址:

https://github.com/notadamking/Bitcoin-Trader-RL

当务之急是提高深度强化学习智能体的盈利能力,换句话说就是要对模型进行一些改进。


循环神经网络(Recurrent Neural Network,RNN)

我们需要做的第一个改进就是使用循环神经网络来改进策略网络,也就是说,使用长短期记忆网络( Long Short-Term Memory ,LSTM )网络代替之前使用的多层感知机( Multi-Layer Perceptron,MLP )网络。由于循环神经网络随着时间的推移可以一直保持内部状态,因此我们不再需要滑动“回顾窗口“来捕捉价格变动之前的行为,循环神经网络的循环本质可以在运行时自动捕捉这些行为。在每个时间步长中,输入数据集中的新一个数据与上一个时间步长的输出会被一起输入到循环神经网络中。

因而长短期记忆网络可以一直维持一个内部状态。在每个时间步长中,智能体会新记住一些新的数据关系,也会忘掉一些之前的数据关系,这个内部状态也就会随之更新。

201906130048151683.jpg

循环神经网络会接收上一个时间步长的输出

201906130048238353.jpg

循环神经网络如何处理上一个时间步长的输出与这一个时间步长的输入

201906130048263656.jpg

长短期记忆网络实现代码 LSTM_model.py


介于循环神经网络对于内部状态得天独厚的优势,在这里,我们使用长短期记忆网络策略更新了近端策略优化 PPO2 模型。


数据平稳性

在上一篇文章中我曾指出比特币交易的数据是非平稳的(Non-Stationary,即存在一些趋势,而不能仅仅看作是随机的波动),因此,任何机器学习模型都难以预测未来。


    平稳时间序列是平均值,方差和自相关系数(与其自身的滞后相关)都恒定的时间序列。



而且,加密货币价格的时间序列有着很明显的趋势和季节效应(季节效应是指与季节相关联的股市非正常收益,是股市中的一种“异像”,是与市场有效性相悖的情况),这两者都会影响算法对时间序列预测的准确率,所以在这里,我们需要使用差分和变换的方法来处理输入数据,从现有的时间序列中构建一个正常的数据分布来解决这个问题。

从原理上来说,差分过程就是给任意两个时间步长内加密货币币价的导数(即收益率)做差值。在理想情况下,这样做可以消除输入时间序列中存在的趋势,但是,差分处理对季节效应并不奏效,处理后的数据仍然具有很强的季节效应。这就需要我们在差分处理之前进行对数处理来消除它,经过这样的处理最终我们会得到平稳的输入时间序列,如下方右图所示。

201906130048282233.jpg

从左到右分别为:加密货币的收盘价,差分处理后的收盘价,对数处理和差分处理后的收盘价

201906130050581432.jpg

对数处理和差分处理的代码 diff_and_log_time_series.py


处理后的输入时间序列平稳性如何,我们可以使用增广迪基-福勒检验( Augmented Dickey-Fuller test )验证一下。

运行以下代码:

201906130051017091.jpg

增广迪基-福勒检验的代码 adfuller_test.py


我们得到的 p 值为 0.00 ,这意味着我们拒绝假设检验中的零假设并确认处理后的输入时间序列是平稳的。

我们可以运行上面的增广迪基-福勒检验代码来检验输入时间序列的平稳性。

在完成了这项工作之后,接下来我们将使用特征工程的方法进一步优化交易智能体的观察空间。


特征工程


为了进一步提升交易智能体的收益率,我们需要做一些特征工程。


    特征工程是使用该领域知识来生成额外的输入数据从而优化机器学习模型的过程。



具体到交易智能体,我们将在输入数据集中添加一些常见且有效的技术指标,以及 Python 数据分析程序库 StatsModels 中季节效应预测模型 SARIMAX 的输出。这些技术指标会为我们的输入数据集带来一些相关的,但可能会滞后的信息,这些信息能大大提升交易智能体预测的准确性。这些优化方法的组合可以为交易智能体提供一个非常好的观察空间,让智能体学习到更多的特征,从而获得更多的收益。


技术分析


为了选择技术指标,我们将比较 Python 技术分析库 ta 中可用的所有 32 个指标( 58 个特征)的相关性。可以使用数据分析工具 pandas 来计算相同类型的各个指标(如动量,体积,趋势,波动率)之间的相关性,然后在每种类型中仅选择最不相关的指标作为特征。这样,就可以在不给观察空间带来过多噪音干扰的情况下,最大程度地发掘这些技术指标的价值。

201906130051032401.jpg

使用 Python 高级可视化库 seaborn 做出的比特币数据集上技术指标相关性的热力图


结果显示,波动率指标以及一些动量指标都是高度相关的。在删除所有重复的特征(每个类型中相关性的绝对平均值大于 0.5 的特征)之后,我们将剩余的 38 个技术特征添加到交易智能体的观察空间中。

在代码中,我们需要创建一个名为 add_indicators(添加指标)的函数来将这些特征添加到数据帧中,为了避免在每个时间步长中重复计算这些特征,我们只在交易智能体环境初始化的过程中调用 add_indicators 函数。

201906130054303259.jpg

交易智能体环境初始化的代码 initialize_env.py


在这里,初始化交易智能体环境,在进行数据平稳性处理之前将特征添加到了数据帧中。


统计分析


接下来我们需要添加预测模型。

由于季节效应自回归移动平均模型(Seasonal Auto Regressive Integrated Moving Average,SARIMA)可以在每个时间步长中快速计算价格的预测值,在平稳数据集中运算非常准确,因此我们使用它来进行加密货币币价预测。

除了上述这些优点之外,该模型实现起来非常简单,它还可以给出预测值的置信区间,通常情况下这比单独给出一个预测值能提供更多的信息。就比如说,当置信区间较小时,交易智能体就会更相信这个预测值的准确性,当置信区间很大时交易智能体就知道要承担更大的风险。

sarima.jpg

加入 SARIMA 预测模型的代码 add_sarimax_predictions.py


这里我们将 SARIMAX 预测模型和置信区间添加到交易智能体的观察空间中。

现在我们已经使用性能更好的循环神经网络更新了策略,并使用特征工程的方法改进了交易智能体的观察空间,是时候优化其他的部分了。
 

奖励优化


有些人可能会觉得上一篇文章中的奖励函数(即奖励资产总价值不断增加)已经是最好的解决方案了,但是,通过进一步的研究我发现奖励函数还有提升的空间。虽然我们之前使用的简单奖励函数已经能够获得收益,但它给出的投资策略非常不稳定,往往会导致资产的严重损失。为了改善这一点,除了考虑利润的增加以外,我们还需要考虑其他奖励的指标。

奖励指标的一个简单改进就是,不仅仅奖励在比特币价格上涨时持有比特币带来的利润,还奖励在比特币价格下跌时抛售比特币而避免的损失。就比如说,我们可以奖励智能体买入比特币而总资产增加的行为,以及卖出比特币避免总资产减少的行为。

虽然这种奖励指标在提高收益率方面非常出色,但这样做并没有考虑到高回报带来的高风险。投资者早已发现这种简单投资策略背后存在的漏洞,并将其改进成一种风险可调节的奖励指标。


基于波动率的奖励指标

这种风险可调节的奖励指标中的典型就是夏普比率(Sharpe Ratio,又被称为夏普指数)。它计算的是特定时间段内投资组合的超额收益与波动性的比率。具体的计算公式如下:

201906130054425439.jpg

夏普比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的标准差


从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性(也就是风险)。

作为一种奖励指标,夏普比率经受住了时间的考验,但它对于自动交易智能体来说并不是很完美,因为它会对上行标准差( upside volatility )产生不利影响,而在比特币交易环境中有时我们需要利用上行标准差,因为上行标准差(即比特币价格疯狂上涨)通常都是很好的机会窗口。

而使用索提诺比率( Sortino Ratio )可以很好地解决这个问题。索提诺比率与夏普比率非常相似,只是它在风险上只考虑了下行标准差,而不是整体标准差。因此,索提诺比率并不会对上行标准差产生什么不利影响。因而我们给交易智能体的第一条奖励指标就选择索提诺比率,它的计算公式如下:

201906130054443367-2.jpg

索提诺比率的计算公式:(投资组合的收益-大盘的收益)/投资组合的下行标准差


其他奖励指标

我们选择 Calmar 比率作为交易智能体的第二个奖励指标。到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大回撤率(drawdown)这个关键因素。


    最大回撤率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。



最大回撤率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。

201906130054464046.jpg

最大回撤率


为了消除最大回撤率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用 Calmar 比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大回撤率。

201906130059014313.jpg

Calmar 比率的计算公式:(投资组合的收益-大盘的收益)/最大回撤率


我们最后一个奖励指标是在对冲基金行业中广泛使用的 Omega 比率。从理论上来说,在衡量风险与收益时,Omega 比率应该优于 Sortino 比率和 Calmar 比率,因为它能够在单个指标中使用收益的分布来评估风险。

计算 Omega 比率时,我们需要分别计算在特定基准之上或之下投资组合的概率分布,然后两者相除计算比率。Omega 比率越高,比特币上涨潜力超过下跌潜力的概率就越高。

201906130059038913.jpg

Omege 比率的计算公式


Omega 比率的计算公式看起来很复杂,不过不要担心,在代码中实现它并不难。


代码实现

虽然说编写每个奖励指标的代码听起来很有意思且很有挑战性,但这里为了方便大家的理解,我选择使用 Python 量化金融程序包 empyrical 来计算它们。幸运的是,这个程序包中恰好包含了我们上面定义的三个奖励指标,因而在每个时间步长中,我们只需要将该时间段内收益和大盘收益的列表发给 Empyrical 函数,它就会返回这三个比率。

201906130059053400.jpg

使用 empyrical 程序包计算三个奖励指标的代码 risk_adjusted_reward.py


在代码中,我们通过预先定义的奖励函数设置了每个时间步长的奖励。

到目前为止,我们已经确定了如何衡量一个交易策略的成功与否,现在是时候弄清楚哪些指标会带来较高的收益。我们需要将这些奖励函数输入到自动超参数优化软件框架 Optuna 中,然后使用贝叶斯优化来的方法为输入数据集寻找最优的超参数。


工具集


俗话说,好马配好鞍。任何一个优秀的技术人员都需要一套好用的工具,否则就会巧妇难为无米之炊。

但我并不是说我们要重复造轮子,我们应该学会使用程序员前辈用秃头的代价为我们开发的工具,这样他们的工作也算没有白费。对于我们所开发的交易智能体,它要用到的最重要的工具就是自动超参数优化软件框架 Optuna,从原理上来说,它使用了树结构的 Parzen 窗估计(Tree-structured Parzen Estimators,TPEs)来实现贝叶斯优化,而这种估计方法是可以并行化运行的,这使得我们的显卡有了用武之地,执行搜索需要的时间也会大大缩短。简而言之,


    贝叶斯优化是一种搜索超参数空间以找到能最大化给定目标函数的超参数的高效解决方案。



也就是说,贝叶斯优化能够有效地改进任何黑箱模型。从工作原理上来说,贝叶斯优化通过使用替代函数( surrogate functions )或是替代函数的分布对要优化的目标函数进行建模。随着时间的推移,算法不断地检索超参数空间以找到那些能够最大化目标函数的超参数,分布的效果也会逐渐改善。

理论说了这么多,我们要如何把这些技术应用在比特币自动交易智能体中呢?从本质上来讲,我们可以使用这种技术来找到一组最优的超参数,使得智能体的收益率最高。这个过程就像是在超参数的汪洋大海中捞取一根效果最好的针,而贝叶斯优化就是带我们找到这根针的磁铁。让我们开始吧。

使用 Optuna 优化超参数并不是什么难事。

首先,我们需要创建一个 optuna 实例,也就是装载所有超参数试验的容器。在每次试验中我们需要调整超参数的设置来计算目标函数相应的损失函数值。在实例初始化完成后,我们需要向其中传入目标函数然后调用 study.optimize() 函数开始优化,Optuna 将使用贝叶斯优化的方法来寻找能够最小化损失函数的超参数配置。

201906130059078525.jpg

使用 Optuna 程序库贝叶斯优化的代码 optimize_with_optuna.py


在这个例子中,目标函数就是在比特币交易环境中训练并测试智能体,而目标函数的损失值则定义为测试期间智能体平均收益的相反数,之所以给收益值加上负号,是因为平均收益越高越好,而在 Optuna 看来损失函数越低越好,一个负号刚好解决这个问题。optimize 优化函数为目标函数提供了试验对象,代码中我们可以指定试验对象中的变量设置。

201906130104218908.jpg

优化目标函数的代码 optimize_objective_fn.py


optimize_ppo2 优化智能体函数和 optimize_envs 优化智能体环境函数接收试验对象作为输入并返回包含要测试参数的字典。每个变量的搜索空间由 suggest 函数进行设置,我们需要在试验中调用 suggest 函数并给函数中传入指定的参数。

比如说,如果设置参数在对数尺度上服从均匀分布,即调用函数

trial.suggest_loguniform('n_steps',16,2048),

相当于给函数了一个 16-2048 之间的 2 的指数次方(如16,32,64,…,1024,2048)的新浮点数。

再者,如果设置参数在普通尺度上服从均匀分布,即调用函数

trial.suggest_uniform('cliprange',0.1,0.4),

相当于给函数一个 0.1 到 0.4 之间的新浮点数(如0.1,0.2,0.3,0.4)。

相信你已经看出来了其中的规律,就是这样来设置变量:

suggest_categorical('categorical',['option_one','option_two']),其中 categorical 为设置变量的策略, option_one 和 option_two 分别为变量的两个选项,在刚才的函数中这两个选项为变量的范围,弄懂了这个相信下面的代码就难不倒你了。

201906130104292196.jpg

化交易智能体的代码 optimize_ppo2.py

201906130104344369.jpg

优化交易环境的代码 optimize_envs.py


代码写好后,我们在一台高性能服务器上以 CPU/显卡协同运算的方式运行了优化函数。在设置中,Optuna 创建了一个 SQLite 数据库,我们可以从中加载优化的实例。该实例记录了测试过程中性能最好的一次试验,从中我们可以推算出智能体交易环境中最优的超参数集。

201906130104367375.jpg

加载 optuna 实例的代码 load_optuna_study.py


到这里,我们已经改进了模型,改进了特征集,并优化了所有的超参数。但俗话说,是骡子是马得拉出来遛遛。

那么,交易智能体在新的奖励指标下表现如何呢?

在训练过程中,我分别使用了利润、Sortino 比率、Calmar 比率和 Omega 比率四个奖励指标来优化智能体。接下来我们需要在测试环境中检验哪种奖励指标训练出来的智能体收益最高,当然了,测试环境中的数据都是智能体在训练过程中从未见到过的比特币价格走势,这样保证了测试的公平性。


收益比较


在查看结果之前,我们需要知晓一个成功的交易策略是什么样的。出于这个原因,我们将针对一些常见且有效的比特币交易策略进行基准测试。令人震惊的是,在过去的十年中一个最有效的比特币交易策略就是买入并持有,而另外两个不错的交易策略则是使用简单但有效的技术分析来生成买入/卖出信号,从而指导交易。

1、买入并持有

这种交易策略指尽可能多地购买比特币并一直持有下去(也就是区块链社区中的江湖黑话“ HODL ”)。虽然说这种交易策略并不是特别复杂,但在过去这样做赚钱的机率很高。

2、相对强弱指数分歧(Relative Strength Index(RSI) divergence )

当相对强弱指数持续下跌且收盘价持续上涨时,这就是需要卖出的信号,而当相对强弱指数持续上涨且收盘价持续下跌时,就是需要买入的信号。

3、简单移动平均线( Simple Moving Average,SMA )交叉

当长期简单移动平均线超过短期简单移动平均线时,这就是需要卖出的信号,而当短期简单移动平均线超过长期简单移动平均线时,就是需要买入的信号。

你可能会问,为什么要做这些简单的基准测试呢?这样做是为了通过比较证明我们的强化学习交易智能体可以在比特币市场上发挥作用,如果智能体的收益连这些简单的基准收益都超不过,那么我们就相当于花费了大量的开发时间和显卡算力来进行了一场天马行空的科学实验。现在,让我们来证明事实并非如此。


实验结果


我们的数据集选用从加密货币数据网站 CryptoDataDownload 上下载的每小时收盘价位置价值( OHCLV )数据,其中前 80% 的数据用来训练智能体,后 20% 作为全新的数据进行测试,以了解智能体的收益能力。当前这种简单的交叉验证形式足以满足我们的需求,而如果这个比特币自动交易智能体真的走向生产就绪,我们就可以使用全部的数据集进行训练,然后在每天新产生的数据集上进行测试。

废话不多说,我们来看看结果。

可以看到,使用 Omega 比率作为奖励指标的智能体在测试阶段并没有让人眼前一亮的交易。

201906130104386353.jpg

使用 Omega 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


分析智能体所进行的交易我们可以发现,很明显 Omega 比率这种奖励指标产生了过度交易(over-trade)的交易策略,以至于智能体未能抓住市场机会获得收益。

使用 Calmar 比率作为奖励指标的智能体与使用 Omega 比率作为奖励指标的智能体相比略有改进,但最终结果非常相似。看起来像是我们投入了大量的时间和精力,只是为了让事情变得更糟......

201906130104406054.jpg

使用 Calmar 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


如果仅使用利润作为奖励指标效果如何呢?在上一篇文章中这种奖励指标被证明有点失败,这次做的所有修改和优化能否化腐朽为神奇呢?

在为期四个月的测试周期内,使用利润作为奖励指标的智能体平均收益达到账户初始金额的350%。你可能已经被这个结果吓呆了。这应该就是强化学习能达到的巅峰了吧,对吧?

201906130104425151.jpg

使用利润作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


并不是这样的。使用 Sortino 比率作为奖励指标的智能体平均收益达到了账户初始金额的850%。当我看到这个数字时,我都不敢相信自己的眼睛,以至于我立马回去检查代码中是否存在问题。但经过彻底的检查后,很明显代码中没有任何错误,也就是说这些智能体已经知道如何进行比特币交易。

201906130104442207.jpg

使用 Sortino 比率作为奖励指标的智能体在超过 3500 小时的交易时间里资产的总价值


看起来使用 Sortino 比率作为奖励指标的智能体学习到了在最小化持有比特币风险的前提下低价买入和高价卖出的重要性,同时它们还躲过了过度交易和投资不足两大陷阱。虽然说智能体学到的具体交易策略我们不得而知,但是我们可以清楚地看到智能体已经学会通过交易比特币获得收益了。

201906130104466538.jpg

使用 Sortino 比率作为奖励指标的智能体正在交易比特币,其中绿色的三角形表示买入信号,红色的三角形表示卖出信号


现在,我并没有被实验成功的兴奋冲昏头脑。我清楚地知道比特币自动交易智能体还远远没有达到生产就绪。话虽如此,但这些结果比我迄今为止看到的任何交易策略都要令人印象深刻。而且令人震惊的是,我们并没有告诉智能体关于加密货币市场如何运作、如何在加密货币市场上赚钱这样的先验知识,而是仅靠智能体重复地试验和试错就达到了这么好的效果,不过,这里经过了很多很多次的试验和试错。


写在最后


在本篇文章中,我们优化了基于强化学习的比特币自动交易智能体,让它在交易比特币时做出更好的决策,从而获得更多的收益!在这个过程中我们花费了大量的时间和精力,也遇到了很多的困难,我们把困难分解细化再逐个攻破,最终完成了智能体的优化,其中具体的操作步骤如下:


1、使用循环神经网络升级现有模型,即升级成使用平稳性数据的长短期记忆网络;

2、使用领域知识和统计分析进行特征工程,为智能体提供了 40 多个用来学习的新特征;

3、将投资的风险引入智能体的奖励指标,而不只是关注利润;

4、使用贝叶斯优化来寻找模型中最优的超参数;

5、使用常见的交易策略进行基准测试,以确保智能体的收益可以跑赢市场。



从理论上来说,这个高收益的交易智能体已经做得很不错了。

但是,我收到了相当多的反馈,他们声称交易智能体只是在学习拟合曲线,因此,面对生产环境中的实时数据,交易智能体永远不可能获得收益。虽然我们在不同数据集上训练/测试智能体的方法应该能够解决这个问题,但是模型确实会有过度拟合数据集的可能,并且可能不会很好地推广到实时数据。话虽这么说,但在我看来这些交易智能体学习到的远远不只是简单的曲线拟合,因此,我认为它们能够在实时交易的场景中获得收益。

为了检验这个想法,接下来的一段时间里我会把这些基于强化学习的智能体带到生产环节,为此,我们首先要更新智能体的运行环境以支持以太币、莱特币等其他加密货币,然后我们将升级智能体让它可以在加密货币交易所 Coinbase Pro 上实时交易。

这将会是一个激动人心的实验,请不要错过它。

需要强调的是,本篇文章中所有的方法和投资策略都是出于教育目的,不应被视为投资建议。我们的比特币自动交易智能体也远远没有达到实际生产层面,所以请管好自己的钱包。


参考资源:

1)基于 Python 语言和 Tensorflow 框架的循环神经网络和长短期记忆网络教程

https://adventuresinmachinelearning.com/recurrent-neural-networks-lstm-tutorial-tensorflow/

2)浅析基于 Python 语言的季节效应自回归移动平均模型预测时间序列

https://machinelearningmastery.com/sarima-for-time-series-forecasting-in-python/

3)浅析基于 Python 语言的非平稳性时间序列处理

https://www.analyticsvidhya.com/blog/2018/09/non-stationary-time-series-python/

4)超参数优化算法

https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf

5)机器学习方法在金融领域中的最新进展

https://dwz.cn/iUahVt2u


来源 | Towards Data Science 编译 | Guoxi 责编 | 乔治 出品 | 区块链大本营(Blockchain_camp)

60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具(附详细做法)

攻略blockchaincamp 发表了文章 • 2019-06-13 12:11 • 来自相关话题

炒股的人都知道,天天盯着大盘做决策不仅让人劳神,还让人秃头。所以一堆顶级的数学家开始用数学的手段进行股市预测。

加密货币市场也一样,而且加密货币市场波动更加频繁,更加剧烈。对于这个问题,国外加密货币开发者 Adam King 提出了一种新的解决思路。

结合人工智能在预测方面得天独厚的优势, Adam 提出了使用深度强化学习构建加密货币自动交易程序,同时,这位小哥还做出了一个能够真正交易比特币的展示模型,他是怎么做到的?这个自动交易程序又能达到怎样的效果呢?让我们在文中一探究竟。

在本文中,我们将使用深度强化学习建立一个加密货币自动交易智能体(agent),并训练它通过交易比特币盈利。

为了避免重复造轮子,在本篇教程中我们将使用人工智能研究机构 OpenAI 开发的程序包。

目前人工智能在很多领域都已经超过了人类,从最初谷歌 DeepMind 团队开发的 AlphaGo 战胜围棋世界冠军李世石,到后来师出同门的 AlphaStar 在星际争霸中以 10:1 的大比分战胜两位职业玩家。近日,OpenAI 团队的 OpenAI Five 在 Dota2 游戏中以 2:0 的比分将世界冠军 OG 斩于马下。





谷歌 DeepMind 团队星际争霸人工智能产品 AlphaStar 的训练过程


人工智能给我们带来了很多激动人心的结果,虽然我们不会构建像 AlphaGo 这样令人印象深刻的产品,但在日常的比特币交易中实现盈利也非易事。

因此,与其冒着脱发的风险苦苦探索比特币币价的规律,何不让人工智能来一展身手?

在本文中,我们将通过人工智能技术完成一下三个尝试:

    为我们的智能体(agent)创建一个测试强化学习的 gym 环境; 以一种简单、优雅的方式可视化我们的测试环境; 训练我们的智能体,让它学习到能获益的比特币交易策略。


这里有些操作可能会比较麻烦,就比如说从头开始构建 gym 测试环境并将测试环境可视化,不过不要担心,我会仔细介绍这些细节,跟上我的节奏就好。


程序库安装


在本教程中,我们将使用 Zielak 提供的 Kaggle 数据集。如果你想要这些数据,你可以在我的 Github 仓库中下载 .csv 数据文件。

首先,我们来导入所有必要的 Python 程序库。如果你的电脑上还没有安装这些程序库,你可以使用 pip install 命令进行安装。






接下来,我们创建一个比特币交易环境的类。我们需要向其中传入一个 pandas 数据帧,一个用于指示智能体在每一个时间步长( time step )需要分析前几个时间步长数据的回顾窗口大小( lookback_window_size ),以及可选的智能体账户初始余额( initial_balance )。

代码中我们将手续费( commission )设置为每笔交易的 0.075% ,也就是加密货币期货交易所 Bitmex 当前的费率,同时,我们将序列运行( serial )参数默认为否( false ),这意味着在默认情况下我们的数据帧将以随机的形式遍历各个片段。

除此之外,我们还在数据帧上分别调用了删除非数字(NaN,Not A Number)所在行的 dropna 函数以及在删除了数据之后重新设置数据帧索引的 reset_index 函数。






代码中 action_space (操作空间)的第一个数字表示可选的 3 个选项,即买入,卖出或持有,第二个数字表示所操作的比例,最小单位是 10% ,也就是说这个数字中的 1,2,3 分别代表 10%,20%,30% 。当选择买入操作时,具体买入的比特币数量将是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。对于卖出操作,具体卖出的比特币数量也是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。

当然了,如果选择持有操作,那么就不会买卖账户中的比特币,因而第二个数字就没有了意义。

我们的 observation_space(观察空间)被定义为 0 到 1 之间的连续浮点数集,它的大小为( 10,回顾窗口大小( lookback_window_size ) + 1)。这里的 + 1 操作是考虑到了当前这一时间步长的操作。对于窗口中的每一步,我们都将观察它的收盘价位置价值( OHCLV ),我们在那时的资产总价值、买入或卖出的比特币数量、以及我们在买入或卖出这些比特币时花费的美元数。

接下来,我们需要编写重新设置( reset )函数来初始化比特币交易环境。






代码中我们使用了重新设置会话控制( self._reset_session )函数和下一次数据观察( self._next_observation )函数,不过这些函数都还没有被定义,接下来我们来定义它们。


交易会话控制


交易会话控制( session )是比特币交易环境中的一个重要组成部分。如果我们将这个智能体部署到外部,我们可能永远都不会一次让它运行几个月的时间。出于这个原因,我们将在数据帧参数( self.df )中限制智能体能够连续看到的数据帧数量。

在我们的重新设置会话控制( _reset_session )函数中,我们首先将当前的时间步长( current_step )重新设置为 0 。接下来,我们将剩余时间步长( steps_left )设置为 1 到最大交易会话控制数( MAX_TRADING_SESSION )之间的随机数,当然了,最大交易会话控制数需要在文件的顶部定义。






接下来,如果需要连续遍历数据帧,那就应该设置遍历所有的数据帧,否则我们需要在数据帧参数( self.df )中设置一个随机的数据帧起始位置( frame_start ),并创建一个名为激活数据帧( active_df )的新数据帧,它是数据帧( self.df )从起始位置( frame_start )到起始位置 + 剩余时间步长( frame_start + steps_left )这些连续帧组成的切片。






使用数据帧切片带来的一个重要影响就是,智能体将获得更多独一无二的数据,以便进行长时间的训练。举个例子,如果我们只是按顺序来遍历数据帧(即按数据帧 0 到最后一帧(len(df))的顺序),那么我们就只有数据帧个数这么多的唯一数据点。我们的观察空间在每一个时间步长只能观察区区几个状态。

但是,通过随机遍历数据帧的切片,我们有效地结合了原始数据集上每一个时间点的账户余额,交易数据以及当前比特币价格,从而创造出了更多独一无二的数据点。接下来我们通过一个例子来说明一下。

我们的智能体在每个时间步长中都有三种选择:买入,卖出或持有。对于这三种选择中的每一种,都还需指定操作比特币的数量,如操作当前比特币余额的 10%,20%,或是 100% 。这意味着我们的智能体在每个时间步长中都有 30 种不同的选择(当然了,对于持有操作,这 10 种选择的效果是一样的),而它从中选出最好的一个。

回到我们随机切片后的比特币交易环境。在第 10 个时间步长中,我们的智能体可以处于数据帧内的任何数据帧长度(len(df))时间步长。考虑到每个时间步长智能体可以做 30 种选择,这意味着在任意 10 个时间步长的间隔时间中,该智能体可以经历数据帧长度(len(df))的 30 次方种可能的唯一状态。

虽然这样的操作可能会给大型数据集带来相当大的噪声,但我相信这是一把双刃剑,这样我们的智能体也会从有限的数据量中学到更多。不过,对于测试数据集,我们仍将按顺序来遍历,这样做更贴近于“实时”的交易数据,因而可以更好更精确地检测我们的智能体。


比特币交易智能体都学到了些什么


为了更好地了解智能体所看到并学习到的特征,我们需要将比特币交易环境的观察空间可视化。就比如说,下面是使用 OpenCV 可视化渲染后的观察空间。





OpenCV 可视化渲染后的观察空间


图像中的每一行都代表我们观察空间( observation_space )中的一行。前4行类似于频率的红线代表了 OHCL 数据,下方的橙色和黄色的点代表着数量,再下方这个起伏不定的蓝色长条是智能体所拥有资产的总价值,而下方颜色较浅的点代则表智能体的交易。

如果你眯着眼睛看这张图,你就可以看到一个 K 线图,下面有着代表数量的指示条以及一个显示交易历史的类似于莫尔斯电码的界面。看起来我们的智能体应该能够在观察空间( observation_space )的数据中学到一些东西。在这里,我们将定义下一次观察( _next_observation )函数,在这个函数中我们要将观察到的数据缩放到 0 到 1 之间。

重要的一点是,仅仅缩放智能体到目前为止所观察到的数据,以避免出现前视偏差( Look-ahead bias,前视偏差是指在策略的开发中,采取了未来的一些信息,而这些信息在实盘操作中是基本上不可能得到的)。







编写步骤


现在我们已经设置好了观察空间,是时候编写我们的操作步骤( step )函数了,这个函数可以指导智能体的行为。

每当当前交易时段的剩余操作步骤( self.steps_left )等于 0 时,我们将卖出所持有的所有比特币并调用重新设置会话控制( _reset_session )函数。

否则,我们将智能体的奖励( reward )设置为当前所持有资产的总价值,如果智能体的资金用完了,则只会将完成( done )设置为真( True )。






其实,采取行动的过程十分简单,也就只有三步:

第一步,获取当前的比特币价格( current_price );

第二步,确定该买入卖出还是持有,以及所要操作的份额;

第三步,就是真实买入或卖出这些比特币。现在我们来编写采取行动( _take_action )函数,以便于测试我们的比特币交易智能体。






最后,在这个函数中,我们将交易添加到交易记录参数( self.trades )中,并更新我们的资产总价值和账户交易历史。






到这里,我们的智能体就可以启动新环境,在新环境中学习比特币交易的特征,并采取行动以获得收益。是时候让比特币交易智能体一展身手了。


查看比特币交易智能体的交易记录


上文中说到了,我们需要将智能体的学习和决策过程可视化。当然了,仅仅使用最简单的方法,在智能体每次决策后输出智能体所持有资产的总价值(print(self.net_worth))也不是不可以,不过这样做就少了很多的乐趣。因此,我们决定绘制一个简单的比特币价格数据 K 线图,其中包含数量栏和我们资产总价值的单独图表。

在代码中,我们需要定义一个用来可视化的资产交易图( StockTradingGraph )函数,在函数的初始化过程中,我们需要调用 python 可视化程序库 matplotlib.pyplot ,并指出每一个需要可视化的数据。






为了更好地展现数据,在可视化方法中我们需要导入 Python 时间日期( datetime )处理模块,在数据上标注出人类可读的日期和时间。






在导入完成后,我们需要使用将时间戳转换为世界统一时间 UTC 的 utcfromtimestamp 函数,将每个时间戳转化为 UTC 时间,然后用计算机时间函数( strftime )将这个 UTC 时间按照“ 年 - 月 - 日 小时:分钟 ”的格式展现出来。






到这里,可视化函数的各个部分都已编写完成,回到比特币交易环境,我们现在可以汇总出一个可视化( render )函数来显示图形。






ok了!我们现在可以看到智能体正在交易比特币。





使用 Matplotlab 程序库可视化后的智能体交易比特币数据


图中绿色的竖线代表智能体在买入比特币,红色的竖线代表智能体在卖出比特币。右上角的白色方框是智能体所持有资产的总价值,在其下方的白色方框是当前比特币的价格。

这里容我自恋一下,我认为这个可视化的效果简单而又不失优雅。现在,是时候训练我们的比特币交易智能体了,看看它能帮我们赚到多少钱!


训练比特币交易智能体


由于我们训练智能体时使用的是时间序列数据,因此在交叉验证方面我们并没有太多的选择。

就拿一种常见的交叉验证形式: k-fold(k组)交叉验证来举例,在 k-fold 交叉验证中,你需要将数据拆分成 k 个相等的分组,将每一个分组分别做一次测试组,其余的 k-1 组数据用作训练组。

然而,时间序列数据与时间有着高度的依赖性,这意味着后面出现的数据高度依赖于先前出现的数据。所以在这种情况下 k-fold 将不起作用,因为这样会让我们的智能体提前知道未来的数据,即使盈利了我们也不知道是得益于智能体精准的预测还是因为智能体作弊了。

当应用于时间序列数据时,大多数其他的交叉验证策略也都存在着同样的缺陷。因此,我们只需在完整数据帧中给定一个分界点,前一部分的数据用作训练集,其余的数据用作测试集。






接下来,由于我们的比特币交易环境被设置为仅处理单个数据帧,因此我们需要创建两个比特币交易环境,一个用于训练数据,一个用于测试数据。






到这里,我们就可以训练模型了。如下面的代码所示,我们只需要在比特币交易环境中创建智能体,然后调用 model.learn 命令开始训练。






在这里,我们会使用机器学习框架 tensorflow 的可视化工具 tensorboard ,从而我们可以轻松地可视化 tensorflow 的数据流图并查看有关我们智能体的一些量化指标。

比如说,下图展示了智能体在经过 200000 个时间步长后的盈利:






看起来我们的智能体都获得了很多的收益!最好的一个智能体在 200,000 个时间步长后资产总价值提升了 1000 倍,而其余的智能体资产总价值平均提升了 30 倍以上!

不过,就在这时,我意识到比特币交易环境中存在一个错误......在修复了该错误之后,这是新的收益图:






正如你所看到的,我们的一些智能体做得很好,而有一些则表现很差。总的来说,表现良好的智能体最多能够实现资产总价值提升 10 倍甚至 60 倍。

我必须承认,所有这些智能体都是在虚拟的比特币交易环境中训练和测试的,所以将这个比特币交易智能体直接应用于比特币区块链上还为时尚早。但是至少这个结果告诉我们,使用人工智能来进行加密货币交易决策这条路是行得通的。

接下来,让我们在比特币交易测试环境中测试智能体,在测试环境中我们将使用智能体以前从未见过的全新数据,看看这些智能体是否学到了比特币的交易策略。





结果显示,我们训练出来的比特币交易智能体在新的测试环境中争相走向破产


这也并不意外,因为我们还有很多的工作要做。仅仅通过简单地将模型从当前的近端策略优化( Proximal Policy Optimization , PPO2 )智能体切换到 stable-baseline 程序库中的 A2C ( Advantage Actor-Critic )就可以大大提高我们在此数据集上的性能。

同时,我们也可以更新奖励函数,激励那些资产总价值不断增加的操作,防止有些比特币交易智能体在资产总价值达到高位时就消极怠工。






仅仅做出这两个改动就可以大幅度提高比特币交易智能体在当前数据集上的性能,正如下图所示,最终我们在数据全新的测试环境上成功实现了盈利。






除此之外,我们还可以做得更好。为了提升这些比特币交易智能体的准确度,我们可以优化超参数并训练智能体更长的时间。是时候给你的显卡(深度学习代码运行在显卡之上)一点压力了!

如果你想继续优化,这里可以给你提供些思路,你可以使用贝叶斯优化来在问题空间上寻找最佳的超参数,并使用显卡的 CUDA 运算平台优化训练环境和测试环境。


结论


在本教程中,我们使用深度强化学习从零开始创建了一个能够获得收益的比特币交易智能体。

具体而言,我们完成了以下的任务:

    使用 OpenAI 团队开发的用于测试强化学习算法的工具包 gym 从零开始创建了一个比特币交易环境;
    使用 Python 可视化程序库 Matplotlib 将比特币交易环境可视化;
    使用简单的交叉验证对我们的比特币交易智能体进行了训练和测试;
    虽然还有很多的工作需要完成,但现在我们已经可以看到成功的曙光。


 
虽然最后我们的比特币交易智能体在数据全新的测试环境中还不能保证总是盈利,但我们已经离成功不远了。


作者 | Adam King
译者 | Guoxi
责编 | Aholiab
出品 | 区块链大本营(blockchain_camp) 查看全部
3D-Rendering-Robot-and-laptop-stock-exchange-trading.jpg

炒股的人都知道,天天盯着大盘做决策不仅让人劳神,还让人秃头。所以一堆顶级的数学家开始用数学的手段进行股市预测。

加密货币市场也一样,而且加密货币市场波动更加频繁,更加剧烈。对于这个问题,国外加密货币开发者 Adam King 提出了一种新的解决思路。

结合人工智能在预测方面得天独厚的优势, Adam 提出了使用深度强化学习构建加密货币自动交易程序,同时,这位小哥还做出了一个能够真正交易比特币的展示模型,他是怎么做到的?这个自动交易程序又能达到怎样的效果呢?让我们在文中一探究竟。

在本文中,我们将使用深度强化学习建立一个加密货币自动交易智能体(agent),并训练它通过交易比特币盈利。

为了避免重复造轮子,在本篇教程中我们将使用人工智能研究机构 OpenAI 开发的程序包。

目前人工智能在很多领域都已经超过了人类,从最初谷歌 DeepMind 团队开发的 AlphaGo 战胜围棋世界冠军李世石,到后来师出同门的 AlphaStar 在星际争霸中以 10:1 的大比分战胜两位职业玩家。近日,OpenAI 团队的 OpenAI Five 在 Dota2 游戏中以 2:0 的比分将世界冠军 OG 斩于马下。

201905131840081.png

谷歌 DeepMind 团队星际争霸人工智能产品 AlphaStar 的训练过程


人工智能给我们带来了很多激动人心的结果,虽然我们不会构建像 AlphaGo 这样令人印象深刻的产品,但在日常的比特币交易中实现盈利也非易事。

因此,与其冒着脱发的风险苦苦探索比特币币价的规律,何不让人工智能来一展身手?

在本文中,我们将通过人工智能技术完成一下三个尝试:


    为我们的智能体(agent)创建一个测试强化学习的 gym 环境; 以一种简单、优雅的方式可视化我们的测试环境; 训练我们的智能体,让它学习到能获益的比特币交易策略。



这里有些操作可能会比较麻烦,就比如说从头开始构建 gym 测试环境并将测试环境可视化,不过不要担心,我会仔细介绍这些细节,跟上我的节奏就好。


程序库安装


在本教程中,我们将使用 Zielak 提供的 Kaggle 数据集。如果你想要这些数据,你可以在我的 Github 仓库中下载 .csv 数据文件。

首先,我们来导入所有必要的 Python 程序库。如果你的电脑上还没有安装这些程序库,你可以使用 pip install 命令进行安装。

201905131840082.jpg


接下来,我们创建一个比特币交易环境的类。我们需要向其中传入一个 pandas 数据帧,一个用于指示智能体在每一个时间步长( time step )需要分析前几个时间步长数据的回顾窗口大小( lookback_window_size ),以及可选的智能体账户初始余额( initial_balance )。

代码中我们将手续费( commission )设置为每笔交易的 0.075% ,也就是加密货币期货交易所 Bitmex 当前的费率,同时,我们将序列运行( serial )参数默认为否( false ),这意味着在默认情况下我们的数据帧将以随机的形式遍历各个片段。

除此之外,我们还在数据帧上分别调用了删除非数字(NaN,Not A Number)所在行的 dropna 函数以及在删除了数据之后重新设置数据帧索引的 reset_index 函数。

201905131840083.jpg


代码中 action_space (操作空间)的第一个数字表示可选的 3 个选项,即买入,卖出或持有,第二个数字表示所操作的比例,最小单位是 10% ,也就是说这个数字中的 1,2,3 分别代表 10%,20%,30% 。当选择买入操作时,具体买入的比特币数量将是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。对于卖出操作,具体卖出的比特币数量也是第二个数字( amount )乘以当前账户的比特币余额( self.balance )。

当然了,如果选择持有操作,那么就不会买卖账户中的比特币,因而第二个数字就没有了意义。

我们的 observation_space(观察空间)被定义为 0 到 1 之间的连续浮点数集,它的大小为( 10,回顾窗口大小( lookback_window_size ) + 1)。这里的 + 1 操作是考虑到了当前这一时间步长的操作。对于窗口中的每一步,我们都将观察它的收盘价位置价值( OHCLV ),我们在那时的资产总价值、买入或卖出的比特币数量、以及我们在买入或卖出这些比特币时花费的美元数。

接下来,我们需要编写重新设置( reset )函数来初始化比特币交易环境。

201905131840084.jpg


代码中我们使用了重新设置会话控制( self._reset_session )函数和下一次数据观察( self._next_observation )函数,不过这些函数都还没有被定义,接下来我们来定义它们。


交易会话控制


交易会话控制( session )是比特币交易环境中的一个重要组成部分。如果我们将这个智能体部署到外部,我们可能永远都不会一次让它运行几个月的时间。出于这个原因,我们将在数据帧参数( self.df )中限制智能体能够连续看到的数据帧数量。

在我们的重新设置会话控制( _reset_session )函数中,我们首先将当前的时间步长( current_step )重新设置为 0 。接下来,我们将剩余时间步长( steps_left )设置为 1 到最大交易会话控制数( MAX_TRADING_SESSION )之间的随机数,当然了,最大交易会话控制数需要在文件的顶部定义。

201905131840095.png


接下来,如果需要连续遍历数据帧,那就应该设置遍历所有的数据帧,否则我们需要在数据帧参数( self.df )中设置一个随机的数据帧起始位置( frame_start ),并创建一个名为激活数据帧( active_df )的新数据帧,它是数据帧( self.df )从起始位置( frame_start )到起始位置 + 剩余时间步长( frame_start + steps_left )这些连续帧组成的切片。

201905131840096.jpg


使用数据帧切片带来的一个重要影响就是,智能体将获得更多独一无二的数据,以便进行长时间的训练。举个例子,如果我们只是按顺序来遍历数据帧(即按数据帧 0 到最后一帧(len(df))的顺序),那么我们就只有数据帧个数这么多的唯一数据点。我们的观察空间在每一个时间步长只能观察区区几个状态。

但是,通过随机遍历数据帧的切片,我们有效地结合了原始数据集上每一个时间点的账户余额,交易数据以及当前比特币价格,从而创造出了更多独一无二的数据点。接下来我们通过一个例子来说明一下。

我们的智能体在每个时间步长中都有三种选择:买入,卖出或持有。对于这三种选择中的每一种,都还需指定操作比特币的数量,如操作当前比特币余额的 10%,20%,或是 100% 。这意味着我们的智能体在每个时间步长中都有 30 种不同的选择(当然了,对于持有操作,这 10 种选择的效果是一样的),而它从中选出最好的一个。

回到我们随机切片后的比特币交易环境。在第 10 个时间步长中,我们的智能体可以处于数据帧内的任何数据帧长度(len(df))时间步长。考虑到每个时间步长智能体可以做 30 种选择,这意味着在任意 10 个时间步长的间隔时间中,该智能体可以经历数据帧长度(len(df))的 30 次方种可能的唯一状态。

虽然这样的操作可能会给大型数据集带来相当大的噪声,但我相信这是一把双刃剑,这样我们的智能体也会从有限的数据量中学到更多。不过,对于测试数据集,我们仍将按顺序来遍历,这样做更贴近于“实时”的交易数据,因而可以更好更精确地检测我们的智能体。


比特币交易智能体都学到了些什么


为了更好地了解智能体所看到并学习到的特征,我们需要将比特币交易环境的观察空间可视化。就比如说,下面是使用 OpenCV 可视化渲染后的观察空间。

201905131840097.jpg

OpenCV 可视化渲染后的观察空间


图像中的每一行都代表我们观察空间( observation_space )中的一行。前4行类似于频率的红线代表了 OHCL 数据,下方的橙色和黄色的点代表着数量,再下方这个起伏不定的蓝色长条是智能体所拥有资产的总价值,而下方颜色较浅的点代则表智能体的交易。

如果你眯着眼睛看这张图,你就可以看到一个 K 线图,下面有着代表数量的指示条以及一个显示交易历史的类似于莫尔斯电码的界面。看起来我们的智能体应该能够在观察空间( observation_space )的数据中学到一些东西。在这里,我们将定义下一次观察( _next_observation )函数,在这个函数中我们要将观察到的数据缩放到 0 到 1 之间。

重要的一点是,仅仅缩放智能体到目前为止所观察到的数据,以避免出现前视偏差( Look-ahead bias,前视偏差是指在策略的开发中,采取了未来的一些信息,而这些信息在实盘操作中是基本上不可能得到的)。

201905131840138.jpg



编写步骤


现在我们已经设置好了观察空间,是时候编写我们的操作步骤( step )函数了,这个函数可以指导智能体的行为。

每当当前交易时段的剩余操作步骤( self.steps_left )等于 0 时,我们将卖出所持有的所有比特币并调用重新设置会话控制( _reset_session )函数。

否则,我们将智能体的奖励( reward )设置为当前所持有资产的总价值,如果智能体的资金用完了,则只会将完成( done )设置为真( True )。

201905131840139.jpg


其实,采取行动的过程十分简单,也就只有三步:

第一步,获取当前的比特币价格( current_price );

第二步,确定该买入卖出还是持有,以及所要操作的份额;

第三步,就是真实买入或卖出这些比特币。现在我们来编写采取行动( _take_action )函数,以便于测试我们的比特币交易智能体。

2019051318401410.jpg


最后,在这个函数中,我们将交易添加到交易记录参数( self.trades )中,并更新我们的资产总价值和账户交易历史。

2019051318401411.jpg


到这里,我们的智能体就可以启动新环境,在新环境中学习比特币交易的特征,并采取行动以获得收益。是时候让比特币交易智能体一展身手了。


查看比特币交易智能体的交易记录


上文中说到了,我们需要将智能体的学习和决策过程可视化。当然了,仅仅使用最简单的方法,在智能体每次决策后输出智能体所持有资产的总价值(print(self.net_worth))也不是不可以,不过这样做就少了很多的乐趣。因此,我们决定绘制一个简单的比特币价格数据 K 线图,其中包含数量栏和我们资产总价值的单独图表。

在代码中,我们需要定义一个用来可视化的资产交易图( StockTradingGraph )函数,在函数的初始化过程中,我们需要调用 python 可视化程序库 matplotlib.pyplot ,并指出每一个需要可视化的数据。

2019051318401412.jpg


为了更好地展现数据,在可视化方法中我们需要导入 Python 时间日期( datetime )处理模块,在数据上标注出人类可读的日期和时间。

2019051318401513.jpg


在导入完成后,我们需要使用将时间戳转换为世界统一时间 UTC 的 utcfromtimestamp 函数,将每个时间戳转化为 UTC 时间,然后用计算机时间函数( strftime )将这个 UTC 时间按照“ 年 - 月 - 日 小时:分钟 ”的格式展现出来。

2019051318401514.jpg


到这里,可视化函数的各个部分都已编写完成,回到比特币交易环境,我们现在可以汇总出一个可视化( render )函数来显示图形。

2019051318401515.jpg


ok了!我们现在可以看到智能体正在交易比特币。

2019051318401516.jpg

使用 Matplotlab 程序库可视化后的智能体交易比特币数据


图中绿色的竖线代表智能体在买入比特币,红色的竖线代表智能体在卖出比特币。右上角的白色方框是智能体所持有资产的总价值,在其下方的白色方框是当前比特币的价格。

这里容我自恋一下,我认为这个可视化的效果简单而又不失优雅。现在,是时候训练我们的比特币交易智能体了,看看它能帮我们赚到多少钱!


训练比特币交易智能体


由于我们训练智能体时使用的是时间序列数据,因此在交叉验证方面我们并没有太多的选择。

就拿一种常见的交叉验证形式: k-fold(k组)交叉验证来举例,在 k-fold 交叉验证中,你需要将数据拆分成 k 个相等的分组,将每一个分组分别做一次测试组,其余的 k-1 组数据用作训练组。

然而,时间序列数据与时间有着高度的依赖性,这意味着后面出现的数据高度依赖于先前出现的数据。所以在这种情况下 k-fold 将不起作用,因为这样会让我们的智能体提前知道未来的数据,即使盈利了我们也不知道是得益于智能体精准的预测还是因为智能体作弊了。

当应用于时间序列数据时,大多数其他的交叉验证策略也都存在着同样的缺陷。因此,我们只需在完整数据帧中给定一个分界点,前一部分的数据用作训练集,其余的数据用作测试集。

2019051318401817.jpg


接下来,由于我们的比特币交易环境被设置为仅处理单个数据帧,因此我们需要创建两个比特币交易环境,一个用于训练数据,一个用于测试数据。

2019051318401818.jpg


到这里,我们就可以训练模型了。如下面的代码所示,我们只需要在比特币交易环境中创建智能体,然后调用 model.learn 命令开始训练。

2019051318401819.jpg


在这里,我们会使用机器学习框架 tensorflow 的可视化工具 tensorboard ,从而我们可以轻松地可视化 tensorflow 的数据流图并查看有关我们智能体的一些量化指标。

比如说,下图展示了智能体在经过 200000 个时间步长后的盈利:

2019051318401820.jpg


看起来我们的智能体都获得了很多的收益!最好的一个智能体在 200,000 个时间步长后资产总价值提升了 1000 倍,而其余的智能体资产总价值平均提升了 30 倍以上!

不过,就在这时,我意识到比特币交易环境中存在一个错误......在修复了该错误之后,这是新的收益图:

2019051318401921.jpg


正如你所看到的,我们的一些智能体做得很好,而有一些则表现很差。总的来说,表现良好的智能体最多能够实现资产总价值提升 10 倍甚至 60 倍。

我必须承认,所有这些智能体都是在虚拟的比特币交易环境中训练和测试的,所以将这个比特币交易智能体直接应用于比特币区块链上还为时尚早。但是至少这个结果告诉我们,使用人工智能来进行加密货币交易决策这条路是行得通的。

接下来,让我们在比特币交易测试环境中测试智能体,在测试环境中我们将使用智能体以前从未见过的全新数据,看看这些智能体是否学到了比特币的交易策略。

2019051318401922.jpg

结果显示,我们训练出来的比特币交易智能体在新的测试环境中争相走向破产


这也并不意外,因为我们还有很多的工作要做。仅仅通过简单地将模型从当前的近端策略优化( Proximal Policy Optimization , PPO2 )智能体切换到 stable-baseline 程序库中的 A2C ( Advantage Actor-Critic )就可以大大提高我们在此数据集上的性能。

同时,我们也可以更新奖励函数,激励那些资产总价值不断增加的操作,防止有些比特币交易智能体在资产总价值达到高位时就消极怠工。

2019051318401923.png


仅仅做出这两个改动就可以大幅度提高比特币交易智能体在当前数据集上的性能,正如下图所示,最终我们在数据全新的测试环境上成功实现了盈利。

2019051318401924.jpg


除此之外,我们还可以做得更好。为了提升这些比特币交易智能体的准确度,我们可以优化超参数并训练智能体更长的时间。是时候给你的显卡(深度学习代码运行在显卡之上)一点压力了!

如果你想继续优化,这里可以给你提供些思路,你可以使用贝叶斯优化来在问题空间上寻找最佳的超参数,并使用显卡的 CUDA 运算平台优化训练环境和测试环境。


结论


在本教程中,我们使用深度强化学习从零开始创建了一个能够获得收益的比特币交易智能体。

具体而言,我们完成了以下的任务:


    使用 OpenAI 团队开发的用于测试强化学习算法的工具包 gym 从零开始创建了一个比特币交易环境;
    使用 Python 可视化程序库 Matplotlib 将比特币交易环境可视化;
    使用简单的交叉验证对我们的比特币交易智能体进行了训练和测试;
    虽然还有很多的工作需要完成,但现在我们已经可以看到成功的曙光。



 
虽然最后我们的比特币交易智能体在数据全新的测试环境中还不能保证总是盈利,但我们已经离成功不远了。


作者 | Adam King
译者 | Guoxi
责编 | Aholiab
出品 | 区块链大本营(blockchain_camp)

拿住等牛市?仅25%的BTC参与转账活动,创2015年来新低

市场8btc 发表了文章 • 2018-11-01 18:49 • 来自相关话题

尽管最近全球金融市场陷入波动,但在过去的六个月里,只有四分之一的比特币(不包括新挖掘出来的部分)在不同的地址间发生过转账活动。

根据研究机构Coin Metrics为彭博新闻编制的数据,变化是从2017年末开始的,当时所有这些比特币中约一半是活跃的。Coin Metrics称,比特币在2015年以后从没有达到过如此低的活动水平。






Coin Metrics联合创始人Nic Carter在接受电话采访时表示:

“数据告诉我,我们仍处于比特币的经济衰退中。”


根据Coin Metrics的数据,大约50%的比特币(不包括新挖掘的部分)在过去的12个月中参与转账活动,低于2017年末的约60%。考虑到去年年底比特币的价格达到近20,000美元的历史最高水平,许多新投资者,特别是投机者,大量涌入,因此转账活动的大幅减少更令人感到惊讶。这批投资者中的许多人高价买入,希望快速赚取利润,但随着价格暴跌而被套牢。如果比特币的价格再次反弹,相信其中许多人会将手中的比特币出售。

历史数据显示,大量的比特币从未交易过。 Coin Metrics估计,高达40%的比特币已经丢失或保存在所谓的冷储存设备中。另外25%到35%是半流动性的,所以它们只在牛市期间恢复活动性,长期持有者出售手中的比特币以套现获得收益。Coin Metrics表示,在价格不断下跌的时候,只有约30%的比特币可供交易。

Carter说:

“我认为这有助于我们在一定程度上评估'真正的流动性'。在某种程度上,我认为它可以让你大致评估未来流入市场的BTC将会造成的影响。”


根据CoinMarketCap.com的数据,即使比特币每日交易量比1月份的峰值下降近80%,每天仍有约40亿美元的比特币易手。

DA Davidson&Co的机构股权主管Gil Luria在一封电子邮件中表示:

“这并不意味着比特币市场存在流动性问题。每天40亿的交易量意味着几乎所有比特币投资者都可以在一个交易日内清仓退场。”



原文:Only 1 in 4 Bitcoins Moved Between Addresses in Past Six Months
作者:Olga Kharif
编译:Apatheticco 查看全部
-1x-1.png

尽管最近全球金融市场陷入波动,但在过去的六个月里,只有四分之一的比特币(不包括新挖掘出来的部分)在不同的地址间发生过转账活动。

根据研究机构Coin Metrics为彭博新闻编制的数据,变化是从2017年末开始的,当时所有这些比特币中约一半是活跃的。Coin Metrics称,比特币在2015年以后从没有达到过如此低的活动水平。

1000x-1.png


Coin Metrics联合创始人Nic Carter在接受电话采访时表示:


“数据告诉我,我们仍处于比特币的经济衰退中。”



根据Coin Metrics的数据,大约50%的比特币(不包括新挖掘的部分)在过去的12个月中参与转账活动,低于2017年末的约60%。考虑到去年年底比特币的价格达到近20,000美元的历史最高水平,许多新投资者,特别是投机者,大量涌入,因此转账活动的大幅减少更令人感到惊讶。这批投资者中的许多人高价买入,希望快速赚取利润,但随着价格暴跌而被套牢。如果比特币的价格再次反弹,相信其中许多人会将手中的比特币出售。

历史数据显示,大量的比特币从未交易过。 Coin Metrics估计,高达40%的比特币已经丢失或保存在所谓的冷储存设备中。另外25%到35%是半流动性的,所以它们只在牛市期间恢复活动性,长期持有者出售手中的比特币以套现获得收益。Coin Metrics表示,在价格不断下跌的时候,只有约30%的比特币可供交易。

Carter说:


“我认为这有助于我们在一定程度上评估'真正的流动性'。在某种程度上,我认为它可以让你大致评估未来流入市场的BTC将会造成的影响。”



根据CoinMarketCap.com的数据,即使比特币每日交易量比1月份的峰值下降近80%,每天仍有约40亿美元的比特币易手。

DA Davidson&Co的机构股权主管Gil Luria在一封电子邮件中表示:


“这并不意味着比特币市场存在流动性问题。每天40亿的交易量意味着几乎所有比特币投资者都可以在一个交易日内清仓退场。”




原文:Only 1 in 4 Bitcoins Moved Between Addresses in Past Six Months
作者:Olga Kharif
编译:Apatheticco

埃森哲研究报告显示:区块链技术可推动大规模交易转型

资讯8btc 发表了文章 • 2018-10-18 12:18 • 来自相关话题

据福布斯10月16日报道,为全球金融市场提供基础设施服务的美国证券托管清算公司(Depository Trust & Clearing Corporation, DTCC)最近公布了埃森哲的一份研究报告。埃森哲在该报告中表明,分布式账本技术(DLT)能够支持美国股票市场的日均超过1亿次交易的交易量,区块链技术的可扩容性再一次获得了验证。

长期以来,随着加密货币的日益普及公众加密货币意识的增强,区块链的扩容问题也越来越严重,这使该技术可能无法跟上发展步伐。目前,加密货币中规模最大比特币和以太坊使用大小有限的区块来处理交易。处理的交易越多,每个区块所携带的数据越多,导致交易阻塞的可能性就越大。

因此,区块链的可扩容性成了它能否获得普遍应用的关键。咨询公司埃森哲(Accenture)在技术服务提供商数字资产(Digital Asset, DA)和R3的支持下对此进行了研究。该报告没有提到及业区块链创业公司Axoni,后者在2016年宣布与DTCC建立了伙伴关系。埃森哲(Accenture) 总经理兼全球区块链业务主管戴维•特里特(David Treat)在一份声明中表示:

“该报告回答了一些关键的问题,并让人们充分相信区块链技术可以胜任推动大规模交易转型的角色。”


为了评估分布式账本技术在股票市场的能力,埃森哲建立了一个超过170个节点的网络,以模拟DTCC支持的交易所、市场参与者和经纪人/交易商的生态系统。去年,DTCC的子公司处理了价值超过1.61万亿美元的证券交易,并为价值57.4万亿美元的证券提供托管和资产服务。其交易托管服务每周的场外交易量维持4000万次。

虽然DTCC表示,该研究证明DLT能够以峰值速率(1.15亿笔交易,或连续5小时每秒6300笔交易)处理全天的美国股市交易量,但其同时指出,该研究仅测试了基本功能,要确定DLT是否能够满足DTCC当前系统弹性、安全性和监管等其他方面的要求,还需要做更多的测试。

本月早些时候,比特币协议开发人员马克•弗里登巴赫(Mark Friedenbach)提出了一种比特币扩容方案,声称能够将比特币“结算交易量提高到当前水平的3584倍”,并改善其审查阻力。这一新的概念建议,通过工作量证明(PoW)的转换(以软分叉的形式完成),并结合使用替代的私有分类账,可以大大提高比特币链上的容量。

今年7月,一组比特币开发人员成立了一个比特币运营技术小组(Bitcoin Operations Technology Group,Bitcoin Optech),以解决其扩容问题。届时,该小组将专注于“运营技术工作,如隔离验证(SegWit)的使用、交易批量处理、费用估算和加密货币选择等”,以帮助这一快速发展的技术被更多公司所采用。


原文:
DTCC Study: Tech Inspired By Bitcoin Could Work For U.S. Equity Markets
Scalability Study: DLT Can Support Daily Trading Volume of US Equity Market
作者:Sarah Hansen, Ana Alexandre
编译:Libert 查看全部
740_aHR0cHM6Ly9zMy5jb2ludGVsZWdyYXBoLmNvbS9zdG9yYWdlL3VwbG9hZHMvdmlldy9hMmNiNzQyYjgxYzc2YjM5Y2Y0NmU5ZTRiYzA3YmUxZi5qcGc.jpg

据福布斯10月16日报道,为全球金融市场提供基础设施服务的美国证券托管清算公司(Depository Trust & Clearing Corporation, DTCC)最近公布了埃森哲的一份研究报告。埃森哲在该报告中表明,分布式账本技术(DLT)能够支持美国股票市场的日均超过1亿次交易的交易量,区块链技术的可扩容性再一次获得了验证。

长期以来,随着加密货币的日益普及公众加密货币意识的增强,区块链的扩容问题也越来越严重,这使该技术可能无法跟上发展步伐。目前,加密货币中规模最大比特币和以太坊使用大小有限的区块来处理交易。处理的交易越多,每个区块所携带的数据越多,导致交易阻塞的可能性就越大。

因此,区块链的可扩容性成了它能否获得普遍应用的关键。咨询公司埃森哲(Accenture)在技术服务提供商数字资产(Digital Asset, DA)和R3的支持下对此进行了研究。该报告没有提到及业区块链创业公司Axoni,后者在2016年宣布与DTCC建立了伙伴关系。埃森哲(Accenture) 总经理兼全球区块链业务主管戴维•特里特(David Treat)在一份声明中表示:


“该报告回答了一些关键的问题,并让人们充分相信区块链技术可以胜任推动大规模交易转型的角色。”



为了评估分布式账本技术在股票市场的能力,埃森哲建立了一个超过170个节点的网络,以模拟DTCC支持的交易所、市场参与者和经纪人/交易商的生态系统。去年,DTCC的子公司处理了价值超过1.61万亿美元的证券交易,并为价值57.4万亿美元的证券提供托管和资产服务。其交易托管服务每周的场外交易量维持4000万次。

虽然DTCC表示,该研究证明DLT能够以峰值速率(1.15亿笔交易,或连续5小时每秒6300笔交易)处理全天的美国股市交易量,但其同时指出,该研究仅测试了基本功能,要确定DLT是否能够满足DTCC当前系统弹性、安全性和监管等其他方面的要求,还需要做更多的测试。

本月早些时候,比特币协议开发人员马克•弗里登巴赫(Mark Friedenbach)提出了一种比特币扩容方案,声称能够将比特币“结算交易量提高到当前水平的3584倍”,并改善其审查阻力。这一新的概念建议,通过工作量证明(PoW)的转换(以软分叉的形式完成),并结合使用替代的私有分类账,可以大大提高比特币链上的容量。

今年7月,一组比特币开发人员成立了一个比特币运营技术小组(Bitcoin Operations Technology Group,Bitcoin Optech),以解决其扩容问题。届时,该小组将专注于“运营技术工作,如隔离验证(SegWit)的使用、交易批量处理、费用估算和加密货币选择等”,以帮助这一快速发展的技术被更多公司所采用。


原文:
DTCC Study: Tech Inspired By Bitcoin Could Work For U.S. Equity Markets
Scalability Study: DLT Can Support Daily Trading Volume of US Equity Market
作者:Sarah Hansen, Ana Alexandre
编译:Libert

俄罗斯银行欲涉足加密领域,却受政府阻挠,场外交易激增,1/3是中国人

地区odaily 发表了文章 • 2018-09-21 17:25 • 来自相关话题

战斗民族这次有点保守。
 

据 Cointelegraph 报道,俄罗斯几家大型银行欲将与加密行业合作。该网站称,俄罗斯对加密货币的需求非常高,但由于缺乏明确的规定,银行无法实现这一需求。
 
俄罗斯银行似乎一直在为实现这一目标而努力。
 
在莫斯科交易所闭门会议期间,俄罗斯银行代表成立了一个游说团队,目标是向俄罗斯政府建议如何管理该国加密领域。
 
而且这不是他们的第一次游说。今年3月,他们向国家提交了关于加密货币和ICO相关的联邦法律草案,即“数字金融资产”法案。草案提议将加密货币定义为数字金融资产,允许通过授权的交易所进行交易,并为ICO建立反洗钱(KYC)和反恐融资(CTF)规则。而俄罗斯政府认为它“不完善且支离破碎”。
 
在最新修订的“数字金融资产”法案中,则将加密货币排除在“数字金融资产”之外。而将其定义为“代替数字空间中的证券,并确保资产所有权的账户单位”。
 
此文件也没有提到俄罗斯合法化加密货币的任何时间点。根据起草法案的人的说法,俄罗斯试图通过将加密货币市场置于狭窄的范围内来降低与加密货币相关的风险。
 
因此在俄罗斯开展加密货币和区块链业务仍然是不可能的。
 
而政府对加密交易的限制,则导致场外交易的投资需求增加。据 bitcoin.com 网站报道,莫斯科比特币和以太坊等主流加密货币的日交易量在高峰日达到了惊人的5000万美元。该报道表示,营业额的1/3来自中国人。
 
同时,据Vnesheconombank披露,9月19日火币加入俄罗斯数字资产交易平台Vnesheconombank ,号称利用Huobi所积累的专业知识为俄罗斯数字资产领域的立法活动提供专家支持。同时也包含对俄罗斯投资者的教育和培训。
 
一方面市场如此轰轰烈烈,另一方面政府却抱持严禁的态度。有人担心,俄罗斯政府的保守态度将使其在加密世界失去机会。 查看全部
8k4yb9endd5rcwl8.jpg!1200_.jpg


战斗民族这次有点保守。
 


据 Cointelegraph 报道,俄罗斯几家大型银行欲将与加密行业合作。该网站称,俄罗斯对加密货币的需求非常高,但由于缺乏明确的规定,银行无法实现这一需求。
 
俄罗斯银行似乎一直在为实现这一目标而努力。
 
在莫斯科交易所闭门会议期间,俄罗斯银行代表成立了一个游说团队,目标是向俄罗斯政府建议如何管理该国加密领域。
 
而且这不是他们的第一次游说。今年3月,他们向国家提交了关于加密货币和ICO相关的联邦法律草案,即“数字金融资产”法案。草案提议将加密货币定义为数字金融资产,允许通过授权的交易所进行交易,并为ICO建立反洗钱(KYC)和反恐融资(CTF)规则。而俄罗斯政府认为它“不完善且支离破碎”。
 
最新修订的“数字金融资产”法案中,则将加密货币排除在“数字金融资产”之外。而将其定义为“代替数字空间中的证券,并确保资产所有权的账户单位”。
 
此文件也没有提到俄罗斯合法化加密货币的任何时间点。根据起草法案的人的说法,俄罗斯试图通过将加密货币市场置于狭窄的范围内来降低与加密货币相关的风险。
 
因此在俄罗斯开展加密货币和区块链业务仍然是不可能的。
 
而政府对加密交易的限制,则导致场外交易的投资需求增加。据 bitcoin.com 网站报道,莫斯科比特币和以太坊等主流加密货币的日交易量在高峰日达到了惊人的5000万美元。该报道表示,营业额的1/3来自中国人。
 
同时,据Vnesheconombank披露,9月19日火币加入俄罗斯数字资产交易平台Vnesheconombank ,号称利用Huobi所积累的专业知识为俄罗斯数字资产领域的立法活动提供专家支持。同时也包含对俄罗斯投资者的教育和培训。
 
一方面市场如此轰轰烈烈,另一方面政府却抱持严禁的态度。有人担心,俄罗斯政府的保守态度将使其在加密世界失去机会。

45%区块链项目一年后价值归零 人工智能的预测能信吗?

攻略blockbeats 发表了文章 • 2018-09-21 12:05 • 来自相关话题

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。











在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。






另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。






风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2  查看全部
algorithmic-trading-software-system.jpg

如果人工智能可以帮你预测未来的价格并且帮你做出投资决定,你会把钱交给人工智能吗?

在媒体上,我们看到有关人工智能帮助人类做出投资决策的新闻分为两类,一种是人工智能管理的基金在「一顿操作」之后没有赚钱、甚至亏钱,另外一种是人工智能在股票市场的表现超越专业的基金经理,实现逆市盈利。

国外有一家名为 Wallet Investor 的网站,专门做人工智能对各种金融产品的预测,包括股票、外汇、商品期货、基金等,最近他们还加入了对数字加密货币的人工智能预测。Wallet Investor 通过对金融产品的交易量、近期和历史价格、发展趋势等数据,将其投入人工智能预测模型中,得出一个有一定参考意义的投资参考。但是对于区块链世界的数字加密货币投资,这个市场真的可以预测吗?

以股票、大宗商品为例,老练的投资者是可以根据市场信息、波动趋势来判断买入卖出点的,总体宏观上是可以进行预测的。但是数字加密货币市场存在更多的不可控因素,比如私募投资者、交易所、黑客等诸多因素都将导致 BTC、ETH 等数字机密货币发生不可预测的变化。

让我们来看一下人工智能给数字加密货币投资建议,到底一顿操作之后,是猛如虎,还是 0:5 呢?


人工智能预测 45% 的 ICO 项目一年后价值归零


根据这家网站的人工智能分析,我们看到它对每个数字加密货币的价格都进行了预测,时间范围包括 14 天、3 个月、6 个月、1 年和 5 年等。

在这份数据中我们发现了几个有意思的数据,比如多个主流币种将在一年内归零,如 ETH、BCH、ADA、QTM 等,还有一些知名项目比如 OMG、Gifto、Cybermiles、Bit-z、秘银币等多个项目,也将面临归零的风险。而列表中,BTC、EOS、XRP、莱特币、门罗币等项目将实现翻倍。

c798ebe181de2c795513e91a1d0ddd31.jpg


fbadfa8e551577313147fc07ffa41f5a.jpg


在整个列表中,有约 960 个 Token 被人工智能预测为「一年后价值归零,价格下跌 100%」,还有上百个 Token 在未来一年里「价格下跌 80% 以上」,可以说是哀「红」一片。

有 355 个 Token 被人工智能预测为「一年后价值翻倍」,其中 19 个项目可以实现 10 倍的价值增长。我们熟悉的项目比如 BTC、EOS、XRP、LTC、DASH、ETC、TRX 等都将实现最少一倍的增长。


但是人工智能的预测真的准吗?


实际上,在预测价格方面,人工智能做的一直很差。曾一度被人称之为是「人工智障」。因为模型的精度、权重和预测数据来源等多方面原因,人工智能对于一件事情的预测仍然出在很早的阶段。

在 Wallet Investor 的暴涨 10 倍币列表里,我们看到了几个令人匪夷所思的项目,比如已经被宣判死刑的 Centra。这是一个被区块律动 BlockBeats 写过的项目,该项目由美国拳王梅威瑟代言,但是因为存在商业欺诈行为,该项目定美国方面定性为诈骗,创始人在机场被警方抓捕。该项目已经基本进入死亡阶段,仅剩少数人进行交易,过去 24 小时的交易量仅 2000 美元。

695472221f7db9fe0450aaf3d05c97f8.jpg


另外 10 倍币的榜单中也有大量空气币项目,比如排名第一的 Mercury Protocl 项目已经接近被统计网站除名的状态,过去 24 小时的交易量不足 100 美元。对,你没看错,这个项目已经死了。排名第三的 Blockchain Index,过去 24 小时的交易量不足 200 美元。排名第四的项目 10M Token 未被 CoinMarketCap 收录。排名第五的 Xplay,过去 24 小时的交易量不到 300 美元。

而在归零币的列表中,我们也看到几个令人感到困惑的项目出现在上面,比如以太坊的代币 ETH 将会在一年内归零,比特币现金一年后将下跌 99.9983%,几乎归零,达世币也会归零,知名技术项目 ADA 也会归零,每日交易量近 5000 币的量子链 QTM 等都将归零。

不可否认,上述 5 个项目近期的表现确实差强人意,尤其是 ETH 更是被媒体和专业人士做空即将归零。但是像以太坊、比特币现金、达世币、量子链等已经成型的项目,他们已经产生了相应的社会价值,理论上很难归零。

这里就不得不开始怀疑人工智能到底能不能做投资分析和判断,他们的决策真的有可信度吗?


人工智能到底行不行?


2017 年,全球第一支应用人工智能进行投资的 ETF 基金 AIEQ 开始运作。这只基金的经理是一个跑在 IBM Watson 超级计算机上「人工智能」,它可以一年 365 天、一天 24 小时不间断地对 6000 支股票进行分析和交易。

在许多人眼里,人工智能速度更快、判断更准,而且相比于传统的纯人工投资,可以对更多的投资标的做出操作。原先需要人工大量时间做出的投资决定,人工智能只需要几秒钟。在上线的前两天,这只人工智能投资基金轻轻松松地就跑赢了大盘,看上去人工智能好像即将实现惊天逆转,让不少基金经理、交易员和分析师开始担心自己饭碗不保。

然而一个月之后,AIEQ 累积跌了 3.27%,而同期美国标普 500 指数却上涨了 1.06%。在那波牛市里,投资者随便买一只股票都比 AIEQ 赚的多。但是在美股今年的利好下,AIEQ 又开始了漂亮转身的操作,标准普尔 500 指数今年回报约为 8%,而 AIEQ 的回报已经达到了 12%,后者的投资者可以获得 4% 的超额收益。

除了美国之外,中国的不少机构也在涉足人工智能投资顾问业务,比如招商银行的摩羯智投、工商银行的 AI 投、宜信投米 RA、理财魔法、璇玑等。根据《轻金融》统计,只有璇玑的投资收益是正的,其他四家的智能投顾都是负数。但是对比沪深 300 指数同期 10% 跌幅的话,剩下的四家表现其实也不算差。

250ca9bdd35ef4f60eb3eb63f8893732.jpg


风险分析师陆晨在一财的采访中表示,现在「很多的 AI」是回溯历史大数据的统计方法,统计的黑匣子胃口食量很大,要喂给它大量的历史数据才能对未来有非常局限的预测。同时这个预测是很固定静态的,根据这个预测再针对未来设定相应的解决方式,要面对未来的不确定性。然而,市场是瞬息万变的,时间又不停息,原有的固定起点变成了历史。

虽然上市公司会主动披露很多数据,而且隐藏在数据背后的很多信息是人工智能无法分析出来的。比如虽然披露了员工数量,但是员工的状态需要现场考察才能确定;虽然财报上展示了业务数据,但也有可能出现绿诺科技这种只有亲自去现场才能发现其造假。诸如此类的问题,人工智能虽然可以预测,但是其预测结果并不准确。

再回到本文的人工智能分析币价上,从这个网站给出的数据中的大量偏差就可以看出,数字加密货币市场几乎无法做出预测。这与数字加密货币市场的混乱现状有很大关系,也与参与分析的人工智能其智能程度也有很大的关系。

人工智能肯定是不知道庄家会在什么时候拉盘的。


文| 0x2 

当日交易加密货币时最容易犯的 7 个错误

攻略chainnews 发表了文章 • 2018-09-04 13:45 • 来自相关话题

当日交易加密货币可能导致超额利润,但是,它也可能会导致超额亏损。本文收集了 7 个最昂贵的日交易错误。避开这些,你可以成为一个更负责任的当日交易者。


错误 1:FOMO 和 FUD 交易

当你根据自己的情绪而不是分析进行交易时,很快就会失去你的钱。使用您理解并遵守的指标和规则制定您自己的交易策略。考虑随着时间的推移评估您的规则:查看您的交易历史并收集盈利和亏损的数据报告。以结果驱动的方式更新规则可能有助于抵制 FOMO 和 FUD。


错误 2:使用错误的工具

并非所有的加密货币产品都是在日常交易的基础上构建的,有些产品最终会限制一个人有效地进行日间交易的能力。钱包就是一个很好的例子,签署和确认钱包交易所需的时间可能会延迟您的交易。


错误 3:输入您无法退出的位置

某些交易所相当缺乏流动性: 它们没有足够的流水来支持在任何特定时刻以优惠的价格轻易卖掉您的加密货币。在其他时候,通常拥有健康流动性的交易所可能会有非常低的交易量 - 例如,在假期或周末交易。


错误 4:过分强调技术分析

确保继续阅读加密新闻和价格分析 - 而不仅仅是盯着图表。即使你不应该屈服于许多加密文章产生的 FOMO 和 FUD,你仍然需要这个消息才能了解市场情况。还要考虑设置止损订单,以确保在发生蝴蝶效应时减轻您的损失。


错误 5:没有看到你想要做的交易的正确点差

务必查看交易所的订单,以便更好地了解您可以获得的交易加密货币数量的实际价格。考虑将您的订单分成更小的部分以获得更好的价格,或者使用交易算法,让您在订单簿的顶部执行更大的订单作为隐藏订单。


错误 6:没有采用适当的对冲策略

在多个交易所买卖,然后,当你看到市场上犹豫不决的时刻,在最低价格的交易所购买更多的加密货币,同时在最高价格的交易所卖出一些。这样,您的风险就会降低:如果价格上涨,您就赚了钱,如果价格下跌,您可以以较低的价格回购。


错误 7:日交易?

如果您相信特定加密货币的使命,技术和价值主张,您可能需要考虑长期购买并持有它。与日间交易相比,这有可能减轻压力并获得更多利润。


原文:The 7 Costliest Mistakes People Make When Day Trading Cryptocurrency
作者:SFOX
编译:Jade 查看全部
1-_HIwVS2wfO_PT5sNYI_Vpw.jpg


当日交易加密货币可能导致超额利润,但是,它也可能会导致超额亏损。本文收集了 7 个最昂贵的日交易错误。避开这些,你可以成为一个更负责任的当日交易者。


错误 1:FOMO 和 FUD 交易

当你根据自己的情绪而不是分析进行交易时,很快就会失去你的钱。使用您理解并遵守的指标和规则制定您自己的交易策略。考虑随着时间的推移评估您的规则:查看您的交易历史并收集盈利和亏损的数据报告。以结果驱动的方式更新规则可能有助于抵制 FOMO 和 FUD。


错误 2:使用错误的工具

并非所有的加密货币产品都是在日常交易的基础上构建的,有些产品最终会限制一个人有效地进行日间交易的能力。钱包就是一个很好的例子,签署和确认钱包交易所需的时间可能会延迟您的交易。


错误 3:输入您无法退出的位置

某些交易所相当缺乏流动性: 它们没有足够的流水来支持在任何特定时刻以优惠的价格轻易卖掉您的加密货币。在其他时候,通常拥有健康流动性的交易所可能会有非常低的交易量 - 例如,在假期或周末交易。


错误 4:过分强调技术分析

确保继续阅读加密新闻和价格分析 - 而不仅仅是盯着图表。即使你不应该屈服于许多加密文章产生的 FOMO 和 FUD,你仍然需要这个消息才能了解市场情况。还要考虑设置止损订单,以确保在发生蝴蝶效应时减轻您的损失。


错误 5:没有看到你想要做的交易的正确点差

务必查看交易所的订单,以便更好地了解您可以获得的交易加密货币数量的实际价格。考虑将您的订单分成更小的部分以获得更好的价格,或者使用交易算法,让您在订单簿的顶部执行更大的订单作为隐藏订单。


错误 6:没有采用适当的对冲策略

在多个交易所买卖,然后,当你看到市场上犹豫不决的时刻,在最低价格的交易所购买更多的加密货币,同时在最高价格的交易所卖出一些。这样,您的风险就会降低:如果价格上涨,您就赚了钱,如果价格下跌,您可以以较低的价格回购。


错误 7:日交易?

如果您相信特定加密货币的使命,技术和价值主张,您可能需要考虑长期购买并持有它。与日间交易相比,这有可能减轻压力并获得更多利润。


原文:The 7 Costliest Mistakes People Make When Day Trading Cryptocurrency
作者:SFOX
编译:Jade