上个月,AI工程师AdamKing结合人工智能在预测方面得天独厚的优势,提出使用深度强化学习构建加密货币自动交易的程序。在展示模型中,程序的收益率竟达到了惊人的60倍。
但在当时,这个展示模型略显粗糙。虽然能获得收益,但它并不稳定。使用它可能让你赚得盆满钵盈,也有可能让你赔得一无所有,颇有些“富贵险中求”的意味。
不稳定的问题一直困扰着Adam小哥,经过一个月的蛰伏,小哥提出将特征工程和贝叶斯优化两大杀器引入模型。这些改进会奏效么?收益率又能提升多少呢?一起来看看Adam小哥的最新力作吧!
在上一篇文章中,我们使用深度强化学习创建了一个可以赚钱的比特币自动交易智能体。虽然这个智能体能够做到自动交易比特币获得收益,但它的收益率并没有让人眼前一亮,今天我们会大幅度改进这个比特币交易智能体,从而提高它的收益率。
需要注意的是,本篇文章的目的是测试当下最先进的深度强化学习技术是否能与区块链相结合,创造出一个可以盈利的比特币自动交易智能体。目前看来业界都还没有意识到深度强化学习在自动交易方面强大的潜力,反而认为它并不是一个“能用来构建交易算法的工具”。不过,深度学习领域的最新进展已经表明,在同一个问题上强化学习智能体通常能够比普通的监督学习智能体学习到更多的特征。
出于这个原因,我做了相关的实验来探究基于深度强化学习的交易智能体究竟能达到怎样的收益率,当然了,结果也可能会是深度强化学习有着很强的局限性以至于并不适合做交易智能体,但不去尝试谁又知道结果如何呢?
首先,我们将会改进深度强化学习模型的策略网络并使输入数据变得平稳,以便交易智能体能在很少的数据中学习到更多的特征。
接下来,我们将使用当下先进的特征工程方法来改善交易智能体的观察空间,同时微调交易智能体的奖励函数以帮助它发现更好的交易策略。
最后,在训练并测试交易智能体获得的收益率之前,我们将使用贝叶斯优化的方法来寻找能最大化收益率的超参数。
前方高能,系好安全带,让我们开始这场干货满满的探索之旅吧。
关于深度强化学习模型的改进
在上一篇文章中,我们已经实现了深度强化学习模型的基本功能,
GitHub地址:
https://github.com/notadamking/Bitcoin-Trader-RL
当务之急是提高深度强化学习智能体的盈利能力,换句话说就是要对模型进行一些改进。
循环神经网络
我们需要做的第一个改进就是使用循环神经网络来改进策略网络,也就是说,使用长短期记忆网络网络代替之前使用的多层感知机网络。由于循环神经网络随着时间的推移可以一直保持内部状态,因此我们不再需要滑动“回顾窗口“来捕捉价格变动之前的行为,循环神经网络的循环本质可以在运行时自动捕捉这些行为。在每个时间步长中,输入数据集中的新一个数据与上一个时间步长的输出会被一起输入到循环神经网络中。
因而长短期记忆网络可以一直维持一个内部状态。在每个时间步长中,智能体会新记住一些新的数据关系,也会忘掉一些之前的数据关系,这个内部状态也就会随之更新。
循环神经网络会接收上一个时间步长的输出
循环神经网络如何处理上一个时间步长的输出与这一个时间步长的输入
分析师:比特币自2011年以来的投资回报率达6271233%:Compound Capital Advisors的分析师Charlie Bilello提供的数据显示,如果有人在2011年投资比特币,他们将看到超过6271233%的回报率。相比之下,纳斯达克指数作为第二大资产类别的回报率仅为512%,而黄金的回报率仅为24.3%。今年的避险资产表现尤其强劲,尤其是比特币。从3月份的低点来看,比特币已经上涨了440%,自今年年初以来目前的涨幅超过160%。(Coin Insider)[2020/12/18 15:40:32]
长短期记忆网络实现代码LSTM_model.py
介于循环神经网络对于内部状态得天独厚的优势,在这里,我们使用长短期记忆网络策略更新了近端策略优化PPO2模型。
数据平稳性
在上一篇文章中我曾指出比特币交易的数据是非平稳的,因此,任何机器学习模型都难以预测未来。
平稳时间序列是平均值,方差和自相关系数都恒定的时间序列。
而且,加密货币价格的时间序列有着很明显的趋势和季节效应,这两者都会影响算法对时间序列预测的准确率,所以在这里,我们需要使用差分和变换的方法来处理输入数据,从现有的时间序列中构建一个正常的数据分布来解决这个问题。
从原理上来说,差分过程就是给任意两个时间步长内加密货币币价的导数做差值。在理想情况下,这样做可以消除输入时间序列中存在的趋势,但是,差分处理对季节效应并不奏效,处理后的数据仍然具有很强的季节效应。这就需要我们在差分处理之前进行对数处理来消除它,经过这样的处理最终我们会得到平稳的输入时间序列,如下方右图所示。
从左到右分别为:
加密货币的收盘价,差分处理后的收盘价,对数处理和差分处理后的收盘价
对数处理和差分处理的代码diff_and_log_time_series.py
处理后的输入时间序列平稳性如何,我们可以使用增广迪基-福勒检验验证一下。
运行以下代码:
增广迪基-福勒检验的代码adfuller_test.py
我们得到的p值为0.00,这意味着我们拒绝假设检验中的零假设并确认处理后的输入时间序列是平稳的。
我们可以运行上面的增广迪基-福勒检验代码来检验输入时间序列的平稳性。
在完成了这项工作之后,接下来我们将使用特征工程的方法进一步优化交易智能体的观察空间。
特征工程
为了进一步提升交易智能体的收益率,我们需要做一些特征工程。
特征工程是使用该领域知识来生成额外的输入数据从而优化机器学习模型的过程。
具体到交易智能体,我们将在输入数据集中添加一些常见且有效的技术指标,以及Python数据分析程序库StatsModels中季节效应预测模型SARIMAX的输出。这些技术指标会为我们的输入数据集带来一些相关的,但可能会滞后的信息,这些信息能大大提升交易智能体预测的准确性。这些优化方法的组合可以为交易智能体提供一个非常好的观察空间,让智能体学习到更多的特征,从而获得更多的收益。
技术分析
为了选择技术指标,我们将比较Python技术分析库ta中可用的所有32个指标的相关性。可以使用数据分析工具pandas来计算相同类型的各个指标之间的相关性,然后在每种类型中仅选择最不相关的指标作为特征。这样,就可以在不给观察空间带来过多噪音干扰的情况下,最大程度地发掘这些技术指标的价值。
分析师:LINK年度回报率或类似比特币早期:Cane Island Alternative Advisors的加密货币分析师Timothy Peterson预测,ChainLink(LINK)将会获得类似比特币早期300 - 400%的年度回报率。Peterson认为,LINK的价格在很大程度上与ChainLink的采用相关。就ChainLink在加密市场的短期价值而言,Peterson预测LINK可能会在9月底触底。(EWN)[2020/9/20]
使用Python高级可视化库seaborn做出的比特币数据集上技术指标相关性的热力图
结果显示,波动率指标以及一些动量指标都是高度相关的。在删除所有重复的特征之后,我们将剩余的38个技术特征添加到交易智能体的观察空间中。
在代码中,我们需要创建一个名为add_indicators的函数来将这些特征添加到数据帧中,为了避免在每个时间步长中重复计算这些特征,我们只在交易智能体环境初始化的过程中调用add_indicators函数。
交易智能体环境初始化的代码initialize_env.py
在这里,初始化交易智能体环境,在进行数据平稳性处理之前将特征添加到了数据帧中。
统计分析
接下来我们需要添加预测模型。
由于季节效应自回归移动平均模型可以在每个时间步长中快速计算价格的预测值,在平稳数据集中运算非常准确,因此我们使用它来进行加密货币币价预测。
除了上述这些优点之外,该模型实现起来非常简单,它还可以给出预测值的置信区间,通常情况下这比单独给出一个预测值能提供更多的信息。就比如说,当置信区间较小时,交易智能体就会更相信这个预测值的准确性,当置信区间很大时交易智能体就知道要承担更大的风险。
加入SARIMA预测模型的代码add_sarimax_predictions.py
这里我们将SARIMAX预测模型和置信区间添加到交易智能体的观察空间中。
现在我们已经使用性能更好的循环神经网络更新了策略,并使用特征工程的方法改进了交易智能体的观察空间,是时候优化其他的部分了。
奖励优化
有些人可能会觉得上一篇文章中的奖励函数已经是最好的解决方案了,但是,通过进一步的研究我发现奖励函数还有提升的空间。虽然我们之前使用的简单奖励函数已经能够获得收益,但它给出的投资策略非常不稳定,往往会导致资产的严重损失。为了改善这一点,除了考虑利润的增加以外,我们还需要考虑其他奖励的指标。
奖励指标的一个简单改进就是,不仅仅奖励在比特币价格上涨时持有比特币带来的利润,还奖励在比特币价格下跌时抛售比特币而避免的损失。就比如说,我们可以奖励智能体买入比特币而总资产增加的行为,以及卖出比特币避免总资产减少的行为。
虽然这种奖励指标在提高收益率方面非常出色,但这样做并没有考虑到高回报带来的高风险。投资者早已发现这种简单投资策略背后存在的漏洞,并将其改进成一种风险可调节的奖励指标。
基于波动率的奖励指标
这种风险可调节的奖励指标中的典型就是夏普比率。它计算的是特定时间段内投资组合的超额收益与波动性的比率。具体的计算公式如下:
夏普比率的计算公式:/投资组合的标准差
分析师PlanB:比特币激励更多人储蓄 因其投资回报率更高:加密货币分析师PlanB在推特表示,在美国现行的法币制度下,50%的人没有资产,因为他们不储蓄。比特币激励更多人储蓄,因为它比任何其他资产都能提供更好的风险/回报(夏普比率>1)。通过DCA获得BTC可以使任何人获得非对称的回报,并减少债务。[2020/6/7]
从公式中我们可以得出,为了保持较高的夏普比率,投资组合必须同时保证高收益和低波动性。
作为一种奖励指标,夏普比率经受住了时间的考验,但它对于自动交易智能体来说并不是很完美,因为它会对上行标准差产生不利影响,而在比特币交易环境中有时我们需要利用上行标准差,因为上行标准差通常都是很好的机会窗口。
而使用索提诺比率可以很好地解决这个问题。索提诺比率与夏普比率非常相似,只是它在风险上只考虑了下行标准差,而不是整体标准差。因此,索提诺比率并不会对上行标准差产生什么不利影响。因而我们给交易智能体的第一条奖励指标就选择索提诺比率,它的计算公式如下:
索提诺比率的计算公式:/投资组合的下行标准差
其他奖励指标
我们选择Calmar比率作为交易智能体的第二个奖励指标。到目前为止,我们所有的奖励指标都没有考虑到比特币币价最大回撤率这个关键因素。
最大回撤率是指比特币币价从价格顶峰到价格低谷之间的价值差,用来描述买入比特币后最糟糕的情况。
最大回撤率对我们的投资策略来说是致命的,因为只需一次币价突然跳水,我们长时间累积的高收益就会化为乌有。
最大回撤率
为了消除最大回撤率带来的负面影响,我们需要选用可以处理这种情况的奖励指标,就比如说选用Calmar比率。该比率与夏普比率类似,只是它将分母上投资组合的标准差替换为最大回撤率。
Calmar比率的计算公式:/最大回撤率
我们最后一个奖励指标是在对冲基金行业中广泛使用的Omega比率。从理论上来说,在衡量风险与收益时,Omega比率应该优于Sortino比率和Calmar比率,因为它能够在单个指标中使用收益的分布来评估风险。
计算Omega比率时,我们需要分别计算在特定基准之上或之下投资组合的概率分布,然后两者相除计算比率。Omega比率越高,比特币上涨潜力超过下跌潜力的概率就越高。
Omege比率的计算公式
Omega比率的计算公式看起来很复杂,不过不要担心,在代码中实现它并不难。
代码实现
虽然说编写每个奖励指标的代码听起来很有意思且很有挑战性,但这里为了方便大家的理解,我选择使用Python量化金融程序包empyrical来计算它们。幸运的是,这个程序包中恰好包含了我们上面定义的三个奖励指标,因而在每个时间步长中,我们只需要将该时间段内收益和大盘收益的列表发给Empyrical函数,它就会返回这三个比率。
使用empyrical程序包计算三个奖励指标的代码risk_adjusted_reward.py
在代码中,我们通过预先定义的奖励函数设置了每个时间步长的奖励。
到目前为止,我们已经确定了如何衡量一个交易策略的成功与否,现在是时候弄清楚哪些指标会带来较高的收益。我们需要将这些奖励函数输入到自动超参数优化软件框架Optuna中,然后使用贝叶斯优化来的方法为输入数据集寻找最优的超参数。
Polychain Capital加密对冲基金整体回报率可达1332.3%:一份投资者文件显示,Polychain Capital的加密货币对冲基金在2016年的年回报率为2.7%,而2017年的年回报率为2278.8%。随后,该指数在2018年暴跌60.4%,并在2019年(截至11月)飙升至56.1%。这种过山车式的变化象征着加密投资者都深谙的市场剧烈波动,其表现完全脱离了常识和常规市场。文件指出,在该对冲基金生命周期内持有资金的投资者将净赚1332.3%,因此较长期的展望可能抵消增加的风险。彭博全球对冲基金指数显示,2018年非加密货币对冲基金的整体回报率为5.9%,2016年、2017年和2019年分别为4.0%、9.2%和9.0%。不属于加密货币领域的领先对冲基金在其整个周期中可获得15%至35%的收益。Polychain Capital对此拒绝置评。回报能否实现,取决于Polychain Capital的投资者——包括著名风险投资公司Andreessen-Horowitz、Founders Fund、红杉资本(Sequoia Capital)和Union Square Ventures——何时存取资金。(CoinDesk)[2020/3/30]
工具集
俗话说,好马配好鞍。任何一个优秀的技术人员都需要一套好用的工具,否则就会巧妇难为无米之炊。
但我并不是说我们要重复造轮子,我们应该学会使用程序员前辈用秃头的代价为我们开发的工具,这样他们的工作也算没有白费。对于我们所开发的交易智能体,它要用到的最重要的工具就是自动超参数优化软件框架Optuna,从原理上来说,它使用了树结构的Parzen窗估计来实现贝叶斯优化,而这种估计方法是可以并行化运行的,这使得我们的显卡有了用武之地,执行搜索需要的时间也会大大缩短。简而言之,
贝叶斯优化是一种搜索超参数空间以找到能最大化给定目标函数的超参数的高效解决方案。
也就是说,贝叶斯优化能够有效地改进任何黑箱模型。从工作原理上来说,贝叶斯优化通过使用替代函数或是替代函数的分布对要优化的目标函数进行建模。随着时间的推移,算法不断地检索超参数空间以找到那些能够最大化目标函数的超参数,分布的效果也会逐渐改善。
理论说了这么多,我们要如何把这些技术应用在比特币自动交易智能体中呢?从本质上来讲,我们可以使用这种技术来找到一组最优的超参数,使得智能体的收益率最高。这个过程就像是在超参数的汪洋大海中捞取一根效果最好的针,而贝叶斯优化就是带我们找到这根针的磁铁。让我们开始吧。
使用Optuna优化超参数并不是什么难事。
首先,我们需要创建一个optuna实例,也就是装载所有超参数试验的容器。在每次试验中我们需要调整超参数的设置来计算目标函数相应的损失函数值。在实例初始化完成后,我们需要向其中传入目标函数然后调用study.optimize()函数开始优化,Optuna将使用贝叶斯优化的方法来寻找能够最小化损失函数的超参数配置。
使用Optuna程序库贝叶斯优化的代码optimize_with_optuna.py
在这个例子中,目标函数就是在比特币交易环境中训练并测试智能体,而目标函数的损失值则定义为测试期间智能体平均收益的相反数,之所以给收益值加上负号,是因为平均收益越高越好,而在Optuna看来损失函数越低越好,一个负号刚好解决这个问题。optimize优化函数为目标函数提供了试验对象,代码中我们可以指定试验对象中的变量设置。
分析 | 除少数主流交易所外 2019年IEO项目回报率相当糟糕:Longhash发布分析文章称,在观察了在2019年上半年结束其IEO ,且截至9月2日还在活跃交易的代币后,在Coincodex上共发现了77个此类项目。其中三分之二代币的价格甚至低于投资者在IEO时支付的低价,与美元相比,其投资回报率的中位数为-81.4%。实际情况可能更糟——因为这只计算了还有活跃交易量的代币。此外,在呈现正投资回报率的三分之一项目中,投资回报率的中位数仅为64%。平均投资回报率更高一些(178%),但这主要是受到了少数异常值的影响。这种回报率很糟糕,因为投资者其实可以简单地把钱投入到比特币,大致上,在相同的时间段里(1月至9月)他们可以获得近3倍的收益。 在分析了2019 年上半年至少完成了四个IEO的交易所的ROI百分比中位数后,其中成绩最好的显然是币安,其四个项目的投资回报率中位数为203%。Gate.io、火币和OKEx都呈现了正投资回报率。另一方面,probit和p2pb2b的投资回报率中位数均低于-90%。[2019/9/6]
优化目标函数的代码optimize_objective_fn.py
optimize_ppo2优化智能体函数和optimize_envs优化智能体环境函数接收试验对象作为输入并返回包含要测试参数的字典。每个变量的搜索空间由suggest函数进行设置,我们需要在试验中调用suggest函数并给函数中传入指定的参数。
比如说,如果设置参数在对数尺度上服从均匀分布,即调用函数
trial.suggest_loguniform,
相当于给函数了一个16-2048之间的2的指数次方的新浮点数。
再者,如果设置参数在普通尺度上服从均匀分布,即调用函数
trial.suggest_uniform,
相当于给函数一个0.1到0.4之间的新浮点数。
相信你已经看出来了其中的规律,就是这样来设置变量:
suggest_categorical,其中categorical为设置变量的策略,option_one和option_two分别为变量的两个选项,在刚才的函数中这两个选项为变量的范围,弄懂了这个相信下面的代码就难不倒你了。
化交易智能体的代码optimize_ppo2.py
优化交易环境的代码optimize_envs.py
代码写好后,我们在一台高性能服务器上以CPU/显卡协同运算的方式运行了优化函数。在设置中,Optuna创建了一个SQLite数据库,我们可以从中加载优化的实例。该实例记录了测试过程中性能最好的一次试验,从中我们可以推算出智能体交易环境中最优的超参数集。
加载optuna实例的代码load_optuna_study.py
到这里,我们已经改进了模型,改进了特征集,并优化了所有的超参数。但俗话说,是骡子是马得拉出来遛遛。
那么,交易智能体在新的奖励指标下表现如何呢?
在训练过程中,我分别使用了利润、Sortino比率、Calmar比率和Omega比率四个奖励指标来优化智能体。接下来我们需要在测试环境中检验哪种奖励指标训练出来的智能体收益最高,当然了,测试环境中的数据都是智能体在训练过程中从未见到过的比特币价格走势,这样保证了测试的公平性。
收益比较
在查看结果之前,我们需要知晓一个成功的交易策略是什么样的。出于这个原因,我们将针对一些常见且有效的比特币交易策略进行基准测试。令人震惊的是,在过去的十年中一个最有效的比特币交易策略就是买入并持有,而另外两个不错的交易策略则是使用简单但有效的技术分析来生成买入/卖出信号,从而指导交易。
1、买入并持有
这种交易策略指尽可能多地购买比特币并一直持有下去。虽然说这种交易策略并不是特别复杂,但在过去这样做赚钱的机率很高。
2、相对强弱指数分歧divergence)
当相对强弱指数持续下跌且收盘价持续上涨时,这就是需要卖出的信号,而当相对强弱指数持续上涨且收盘价持续下跌时,就是需要买入的信号。
3、简单移动平均线交叉
当长期简单移动平均线超过短期简单移动平均线时,这就是需要卖出的信号,而当短期简单移动平均线超过长期简单移动平均线时,就是需要买入的信号。
你可能会问,为什么要做这些简单的基准测试呢?这样做是为了通过比较证明我们的强化学习交易智能体可以在比特币市场上发挥作用,如果智能体的收益连这些简单的基准收益都超不过,那么我们就相当于花费了大量的开发时间和显卡算力来进行了一场天马行空的科学实验。现在,让我们来证明事实并非如此。
实验结果
我们的数据集选用从加密货币数据网站CryptoDataDownload上下载的每小时收盘价位置价值数据,其中前80%的数据用来训练智能体,后20%作为全新的数据进行测试,以了解智能体的收益能力。当前这种简单的交叉验证形式足以满足我们的需求,而如果这个比特币自动交易智能体真的走向生产就绪,我们就可以使用全部的数据集进行训练,然后在每天新产生的数据集上进行测试。
废话不多说,我们来看看结果。
可以看到,使用Omega比率作为奖励指标的智能体在测试阶段并没有让人眼前一亮的交易。
使用Omega比率作为奖励指标的智能体在超过3500小时的交易时间里资产的总价值
分析智能体所进行的交易我们可以发现,很明显Omega比率这种奖励指标产生了过度交易的交易策略,以至于智能体未能抓住市场机会获得收益。
使用Calmar比率作为奖励指标的智能体与使用Omega比率作为奖励指标的智能体相比略有改进,但最终结果非常相似。看起来像是我们投入了大量的时间和精力,只是为了让事情变得更糟......
使用Calmar比率作为奖励指标的智能体在超过3500小时的交易时间里资产的总价值
如果仅使用利润作为奖励指标效果如何呢?在上一篇文章中这种奖励指标被证明有点失败,这次做的所有修改和优化能否化腐朽为神奇呢?
在为期四个月的测试周期内,使用利润作为奖励指标的智能体平均收益达到账户初始金额的350%。你可能已经被这个结果吓呆了。这应该就是强化学习能达到的巅峰了吧,对吧?
使用利润作为奖励指标的智能体在超过3500小时的交易时间里资产的总价值
并不是这样的。使用Sortino比率作为奖励指标的智能体平均收益达到了账户初始金额的850%。当我看到这个数字时,我都不敢相信自己的眼睛,以至于我立马回去检查代码中是否存在问题。但经过彻底的检查后,很明显代码中没有任何错误,也就是说这些智能体已经知道如何进行比特币交易。
使用Sortino比率作为奖励指标的智能体在超过3500小时的交易时间里资产的总价值
看起来使用Sortino比率作为奖励指标的智能体学习到了在最小化持有比特币风险的前提下低价买入和高价卖出的重要性,同时它们还躲过了过度交易和投资不足两大陷阱。虽然说智能体学到的具体交易策略我们不得而知,但是我们可以清楚地看到智能体已经学会通过交易比特币获得收益了。
如果你不信,请看下图。
使用Sortino比率作为奖励指标的智能体正在交易比特币,
其中绿色的三角形表示买入信号,红色的三角形表示卖出信号。
现在,我并没有被实验成功的兴奋冲昏头脑。我清楚地知道比特币自动交易智能体还远远没有达到生产就绪。话虽如此,但这些结果比我迄今为止看到的任何交易策略都要令人印象深刻。而且令人震惊的是,我们并没有告诉智能体关于加密货币市场如何运作、如何在加密货币市场上赚钱这样的先验知识,而是仅靠智能体重复地试验和试错就达到了这么好的效果,不过,这里经过了很多很多次的试验和试错。
写在最后
在本篇文章中,我们优化了基于强化学习的比特币自动交易智能体,让它在交易比特币时做出更好的决策,从而获得更多的收益!在这个过程中我们花费了大量的时间和精力,也遇到了很多的困难,我们把困难分解细化再逐个攻破,最终完成了智能体的优化,其中具体的操作步骤如下:
使用循环神经网络升级现有模型,即升级成使用平稳性数据的长短期记忆网络;
使用领域知识和统计分析进行特征工程,为智能体提供了40多个用来学习的新特征;
将投资的风险引入智能体的奖励指标,而不只是关注利润;
使用贝叶斯优化来寻找模型中最优的超参数;
使用常见的交易策略进行基准测试,以确保智能体的收益可以跑赢市场。
从理论上来说,这个高收益的交易智能体已经做得很不错了。
但是,我收到了相当多的反馈,他们声称交易智能体只是在学习拟合曲线,因此,面对生产环境中的实时数据,交易智能体永远不可能获得收益。虽然我们在不同数据集上训练/测试智能体的方法应该能够解决这个问题,但是模型确实会有过度拟合数据集的可能,并且可能不会很好地推广到实时数据。话虽这么说,但在我看来这些交易智能体学习到的远远不只是简单的曲线拟合,因此,我认为它们能够在实时交易的场景中获得收益。
为了检验这个想法,接下来的一段时间里我会把这些基于强化学习的智能体带到生产环节,为此,我们首先要更新智能体的运行环境以支持以太币、莱特币等其他加密货币,然后我们将升级智能体让它可以在加密货币交易所CoinbasePro上实时交易。
这将会是一个激动人心的实验,请不要错过它。
需要强调的是,本篇文章中所有的方法和投资策略都是出于教育目的,不应被视为投资建议。我们的比特币自动交易智能体也远远没有达到实际生产层面,所以请管好自己的钱包。
参考资源:
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
V神来北京啦!6月29-30日,2019第二届以太坊技术及应用大会将在北京重磅开启,届时V神将携以太坊核心团队与国内外区块链大咖带来众多以太坊开发干货,包括:
以太坊2.0进展及未来动向
信标链、链下、Casper、Plasma新动态及核心原理
安全、零知识证明、De-Fi、扩容、PoS算法等热门话题
合约开发、Dapp开发、区块链游戏开发与设计、数据存储等技术实践
开发工具与技术选型
国内区块链的发展与以太坊的新机遇
由于干货过于密集,小伙伴们要做好烧脑的心理准备哦!扫描下图二维码立享优惠,名额有限,先到先得!
大会第二天,「以太坊开发训练营」也如期开幕,在前一天众多嘉宾演讲的洗礼之后,再和技术大牛一起coding!是不是更爽?具体详情如下:
以太坊大会福利社现已全面开放!扫码入群即可抢先获得大会一手信息和优惠福利!相关疑问也可入群交流咨询,务必备注“公司职位姓名”,否则不予通过!!!
推荐阅读:
"伪努力"正在毁掉80%的当代区块链开发者……
豪华嘉宾阵容曝光!6月底V神来的那个大会,还有优惠票吗?
“算法稳定币”是一个伪命题!
“篡改”视频脚本,让特朗普轻松“变脸”?AIDeepfake再升级
纯粹,极致!他用两个词阐释了UCloud|人物志
阿里腾讯进击韩国互联网
无良老板拖欠程序员工资,一怒开源冲上GitHubTOP1
Chrome成为互联网看门人?!
火星财经APP一线消息,在近期发布的报告中,Gartner称,到2021年,区块链将会带来1760亿美元的业务增值,2030年则有望达到3.1万亿.
1900/1/1 0:00:00BTC看涨期权代码月BTC看涨0710期权标的BTC合约类型欧式看涨期权计价单位USDT最小价格单位0.0001USDT合约比例2000:1.
1900/1/1 0:00:00文章系金色财经专栏作者供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当.
1900/1/1 0:00:002019.6.11行情报告今日话题:据forbes.com报道,几位市场观察人士注意到了莱特币减半的关键重要性,这将使莱特币的开采动力减少50%,并将其作为推动莱特币上涨的主要因素.
1900/1/1 0:00:00据Dailyhodl6月8日报道,美国国会议员泰德?巴德最近对税收政策如何阻碍加密货币的采用,以及如何扼杀区块链创新并将人才推向海外进行了阐述。他称这是一个“国家安全问题”.
1900/1/1 0:00:00导读:Libra将成为发展中国家的一股有益力量Facebook将向Libra的持有者支付利息Facebook的基金会将在资本市场获得巨大的影响力该项目将面临监管方面的不确定性一些问题将会被提出L.
1900/1/1 0:00:00