无标题文章

目录

[TOC]

引言

量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。

量化领域拥有比较成熟的理论或策略包含“均线策略”、“钟摆策略”等,而近年来,随着机器学习以及深度学习的发展,新的模型和策略层出不穷,Kim. (2003) 提出用利用支持向量机模型对金融时间序列数据进行预测,Sam. 和 Ganesh.(2010) 提出利用遗传算法进行金融预测,Adhikari.和Agrawal.(2014) 利用神经网络和随机游走模型对金融数据进行建模,深度学习领域,Chen. 等人(2015)利用了LSTM对中国股票进行了回测分析,Heaton等人(2016)利用了深度强化学习算法对金融数据进行建模分析。当前多数模型仍然着重与对股票或期货价格的预测,而缺少对于时间交易策略的涉及。本文正是聚焦于给定时间内多资产组合交易问题,利用深度学习方法对其进行建模,希望系统能够根据当前市场状态,自动进行资金在多个资产之间的分配,从而达到最优的交易收益或汇报。

本文利用深度强化学习算法,基于A3C(Asynchronous Advantage Actor Critic)框架实现对美股市场进行模拟交易的量化系统。在此基础上,建立了基于权值共享LSTM网络的深度强化学习模型。该模型能够在对股票价格作出预判的基础上,做出交易策略的决策,自动完成给定时间内的股票交易。经过测试,该策略在模拟交易中能够达到60%的年化收益率。

背景

量化交易

价值投资和趋势投资(技术分析)是引领过去一个世纪的投资方法,随着计算机技术的发展,已有的投资方法和计算机技术相融合,产生了量化投资这一投资方法。
量化投资的优势在于纪律性、系统性、及时性、准确性和分散化。严格执行投资策略,不是投资者情绪的变化而随意更改。这样可以克服人性的弱点,如贪婪、恐惧、侥幸心理,也可以克服认知偏差。量化投资可以充当分散化投资的工具。量化投资不断地从历史中挖掘有望在未来重复的历史规律并且加以利用,这些历史规律都是较大概率取胜的策略。而是依靠筛选出投资标的组合来取胜,而不是一只或几只股票取胜,从投资组合的理念来看也是捕捉大概率获胜的股票,而不是押宝到单个股票。
量化交易中需要着重注意以下几个问题:

未来函数(Look-ahead bias)

顾名思义,它是指在回测时,使用了回测当时还不可用或者还没有公开的数据。最为典型的一个例子就是公司的财务数据一般都要延后很久才会发布,比如2016年的年度财务数据,要到2017年第一季度才会发布。在真正发布之前是不能使用相关数据的。因此我们在选择数据时要格外小心。

过拟合(Data mining and data snooping)

过于金融系统这类及其复杂的模型,如果没有从问题本身出发进行设计,那么大概率会出现严重的过拟合,泛化能力极弱。解决这个问题的核心就在于要抓住问题的本质,模型的建立要蕴涵市场的本质。简化网络结构或加大数据量也在一定程度上能解决这个问题。


过拟合

信号衰减

信号衰减指的是一个因子对未来多长时间的股票回报有预测能力。有一些因子衰减很慢,大多为一些财务因子,比如2016年6月产生的因子对今天的股票回报还存在预测能力;而另一些因子衰减很快,大多为一些价格因子,可能前天产生的因子对今天的价格没有任何预测能力。我们当然希望因子的衰减越慢越好,这样我们根据因子构建的策略调仓频率就不会太高,相应的策略换手率也就会降低,交易成本也随之降低。为了兼顾长时间尺度和短时间尺度的因子,LSTM是最契合需求的选择。


前一日的价格因子对次日交易无效

强化学习

深度强化学习(Deep Reinforcement Learning,DRL)是近两年来深度学习领域迅猛发展起来的一个分支,目的是解决计算机从感知到决策控制的问题。这种端到端,不涉及任何先验知识的学习模式更接近于人类学习和认知的过程。因此强化学习被认为是一条有可能通向通用人工智能的道路。
以Google DeepMind公司为首,基于深度强化学习的算法已经在视频、游戏、围棋、机器人等领域取得了突破性进展。2016年Google DeepMind推出的AlphaGo围棋系统,使用蒙特卡洛树搜索和深度学习结合的方式使计算机的围棋水平达到甚至超过了顶尖职业棋手的水平,引起了世界性的轰动。

数据

我们从美国标普500成分股中的能源、材料、金融、信息技术、医疗保健、消费品六个行业中各随机选择了一只股票作为资产配比的标的。交易范围为2014-6-9到2017-6-5,分辨率为一天。选取了市销率PS(TTM)、市盈率PE(TTM) 、市现率PCF(现金净流量TTM)、股息率(近12个月)四个参数作为基本面特征,开盘价、收盘价、换手率、MA简单移动平均、KDJ随机指标、BOLL布林带等六个参数作为技术分析特征。

算法与模型

强化学习Actor-Critic框架

把深度强化学习的算法认为是智能体的大脑,那么这个大脑包含了两个部分:Actor行动模块和Critic评判模块。其中Actor行动模块是大脑的执行机构,输入外部的状态s,然后输出动作a。而Critic评判模块则可认为是大脑的价值观,根据历史信息及回馈r进行自我调整,然后影响整个Actor行动模块。这一框架与人类学习过程极为相似。人类也是通过与外部世界的交互学习知识,比如神农氏尝百草和AC框架就有异曲同工之妙。
该框架流程如下:

  1. Actor与Environment交互,Environment可以是真实世界,也可以是Atari游戏等
  2. 如果Environment没有终止,则给出一个回报Reward
  3. 将Reward输入Critic进行评价,如果这是一个好的Reward则奖励Actor,否则惩罚它。这一奖惩机制体现在调整Actor的行为模式
st=>start: Start
e=>end
op1=>operation: Actor
op2=>condition: Environment
op3=>operation: Reward
critic=>operation: Critic

st->op1(right)->op2
op2(yes)->e
op2(no)->critic(right)->op1

A3C算法

常见的强化学习算法都在Actor-Critic框架内,比如Google DeepMind 在2015年提出了著名的 A3C (Asynchronous Advantage Actor Critic) 算法。该算法有两大特色——异步(Asynchronous)和优势函数(Advantage)。下面我们将详细介绍如何实现该算法。

A3C算法有两个网络,分别是策略网络和价值网络。策略网络负责给出当前状态下最好的动作,价值网络负责评估当前状态的价值。为了训练这两个网络,我们必须有标记样本,即知道某个状态最好的动作是什么,其潜在的价值是多少。这时优势函数就发挥其作用了。
当执行了一步操作$\pi$之后,我们会得到回报reward,从统计的角度上讲,reward可以无偏估计当前状态的价值,所以我们认为reward就是价值网络的目标值。而reward与当前状态估计价值之差,体现了这一步动作的“优势”(advantage)。当优势为正时,我们奖励这种选择,让该动作的出现概率变大。当优势为负时,我们惩罚这种选择,让该动作的出现概率变小。
按照这种思路,我们可以写出梯度更新的方法($\theta$是策略网络的参数,$\theta_v$是价值网络的参数)
$$d\theta = \nabla_\theta\log(\pi | s,\theta)(R-V(s, \theta_v)) \ d\theta_v = -\nabla_{\theta_v}(R-V(s,\theta_v))^2$$
A3C算法收敛速度明显快于以往的算法,这得益于其异步计算梯度更新的设计:多个线程(worker)分别独立地与Environment互动,产生观测数据并参数的更新值,但worker本身的参数并不更新。每隔一段时间将参数更新值提交给一个全局网络(global-network),并更新全局网络的参数。由于多个worker可以独立地计算梯度,这使得网络的收敛速度与worker数目有着近似线性的关系。
其伪算法表示如下[Mnih et al., 2016]


LSTM

LSTM(Long Short Term Memory) 是一种递归神经网络(RNN),由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。


LSTM原理示意图(在时间上展开)
LSTM会将细胞状态和上一时刻的输出作为输入传给下一时刻的自己。同时使用四个门来决定记住和遗忘哪些历史信息:

  • ①遗忘门
  • ②③记忆门
  • ④输出门

LSTM网络有很多变体,Greff et al.[2015] 给出了流行变体的比较,从结果上来说它们是一致的
A3C算法可以与LSTM相结合[Mnih et al., 2016]。我们基于 Tensorflow 实现了A3C-LSTM,并在OpenAI提供的标准测试环境gym中进行了测试。下面的工作也是基于A3C-LSTM展开的。

A3C框架解决量化交易问题的网络模型

量化交易的传统做法往往是if-then的表达形式,即当市场环境满足一定条件时,进行买入或卖出操作。这种做法有两个缺点。一是依赖于先验知识,主观因素偏大,可能离最优解很远。二是面对复杂交易环境时很难给出完整的策略。例如资产配置问题,如果在多个市场上同时配置资产,传统做法可以给出单个市场的交易策略,但如何统筹全局得到最优解就需要交易员的经验了。
下面我们设计网络模型以解决资产配置问题


LSTM

使用LSTM捕捉市场动态信号,提取时间特征

FC1

结合当前资产配置情况,提取当前状态的特征

FC_policy

输出策略,即新资产配置情况

FC_value

输出当前状态的价值

动作空间

Environment的动作(action)是一个连续取值的向量,向量的每个分量表示其对应资产在总资产中的占比。设共有 $I$ 种资产,$a_i$为action中的一个元素,则 $a_i$ 需要满足:

  • 资产总和为1 $\sum_i a_i =1$
  • 若市场不允许做空 $a_i>0$
  • 若市场不允许杠杆交易 $|a_i|<1$

    资产配置示意图
    在A3C算法中,我们使用了连续动作空间随机策略梯度法,策略网络给出一个最佳策略 $\mu\in R^{I-1}$(由于存在资产总和为1的约束,动作空间实际上是 $I-1$维的)。策略空间内的概率分布满足以$\mu$为均值,协方差矩阵为$\Sigma$的多维高斯分布。
    $$p(X) = \frac{1}{(2\pi)^{d/2}|\Sigma |^{1/2}}\exp (-\frac{1}{2}(X-\mu)T\Sigma{-1}(X-\mu))$$
    Actor会依此概率分布进行探索,并接受critic模板的评价以修正最佳策略$\mu$的位置。

状态

从Environment中得到的当前状态分为两部分。

  1. 市场公开信息,例如价格,交易量,均线等。
  2. 上一时刻资产配置信息

这种设计有两方面考量:
一方面,真实交易中,手续费与上一时刻的资产配置状态有关。并且有时交易有数量限制,建仓、增持、卖出等都是需要过程的。这使得将上一时刻的资产配置作为状态输入网络是极为重要的。
另一方面,强化学习的Environment要求有状态转移矩阵,且矩阵是action的函数。如果我们只把股价和基本面等信息作为Envrionment则action无法影响状态转移。

模型设计中的关键部分

稳定性控制

以$\mu$为中心,随机选取$\mu*$作为action进行训练。由策略梯度更新公式可知,当协方差矩阵$\Sigma$固定时,若$\mu$的优势函数大于0,则$\mu$会向$\mu^$的方向移动,否则向远离$\mu^$的方向移动。在网络训练后期,$\mu$已经接近最优解时,这一机制会使得$\mu$剧烈震荡,带来很大的不稳定性。
解决这一问题的通常做法是使用递减的学习率。我们在此对策略网络
进行选择性训练*,即只在优势函数大于0时才更新,而优势函数小于0时不予更新。这样就避免了训练后期最优解的剧烈震荡。

杠杆控制

在交易中使用杠杆可以带来更大的收益,同时伴随着更大的风险。我们希望策略可以平衡收益与风险,合理地使用杠杆。因此引入了对action的一范数约束作为风险惩罚。一范数约束有以下两个特点

  1. 当且仅当没有任何杠杆时,action的一范数取到最小值1
    $\sum_i a_i =1 \Rightarrow |a|_1\geq1$
  2. 杠杆越大,action一范数越大

这两个特点使得一范数约束成为表达杠杆率的最佳指标。

复利

在资产配置问题中,资产总量为单位1,每步回报为这一步动作带来的资产回报率。如果仿照传统强化学习算法,回报使用加法模型叠加在一起,即
$$ R = \sum_t^T \gamma^t r_t$$
( $\gamma$ 为贴现率)那么就会带来一个问题。真实的交易是复利计算的,而我们这里并没有体现这一点。因此应当使用乘法模型,即
$$\begin{eqnarray}
R & = & \prod_t^T \gamma r_t \
\log R & = & T\log \gamma + \sum_t^T \log r_t
\end{eqnarray}
$$
因此,最大化 $R$ 即最大化 $r_t$ 的对数之和,与贴现率大小无关。

权值共享

量化交易所使用的数据有明显的结构性,每种资产所对应的特征是相近的。如果我们认为不同资产之间近似独立且服从相同的市场规律,那么特征在资产轴上是平移不变的。实际上,传统的技术分析正是遵循了这一假设,由此才总结出诸多经验规律。
与CNN中权值共享的做法相似,我们将某个资产的特征输入其对应的LSTM,不同的LSTM之间权值共享。对比之前的单一LSTM,变量数大大减少,网络结构更为简单,带来泛化能力的大大加强。
在金融这一极易过拟合的领域中泛化能力远远重于表达能力,在不损失过多表达能力的前提下尽可能使用简单的网络是非常重要的。所以本项目中所有的网络都使用了权值共享的LSTM,这也是前人工作中所没有尝试过的。


稀疏编码

稀疏编码 (Sparse-Coding) 是一类典型的数据处理方法,它的特点是能够获得原有数据特征的稀疏表示[Lee et al., 2007; Olshausen and Field, 1997]。稀疏编码已经在图像分类[Yang et al., 2009]、3D 重构[Deng et al., 2012]、图像去噪[Mairal et al., 2009]、语音识别[Sivaram et al., 2010]等领域得到了广泛应用。 Hyvärinen et al. [1999]等人的研究表明,稀疏编码可以有效地去除噪声,从而使之成为一种重要的数据预处理方法。

在金融数据分析中,不同时间尺度的数据存在着较大的差别。对于某一些频率很低的交易策略,交易使用的数据通常是以天甚至是周为单位。越长周期的金融数据越能代表市场长期的变化,就数据本身而言也具有更高的信躁比,但是对于高频的金融数据(例如以秒为单位的交易数据),如何去除噪声就成为一个重要课题[Deng et al., 2015]。
Mairal et al. [2012]等人的工作演示了稀疏编码的方法如何以任务驱动来实现。Deng et al. [2015]等人受此启发,首次在高频金融交易策略中引入了稀疏编码的方式来处理数据,期望提取出数据的特征并且去掉随机误差。这个工作采用的处理方法是求一类 BP 问题的解 (Basis Pursuit, 也称 $\ell_1$-Lasso, Least absolute shrinkage and selection operator 问题),表达如下:
$$\min_\alpha \quad |f - \mathbf{D} \alpha|_2^2 + \lambda, |\alpha|_1$$

其中,$\mathbf{D}$ 称为字典 (Dictionary),是一个列数大于行数的矩阵,其列向量的二范数不超过一。$f$ 是原始数据,而 $\alpha$ 是待优化的稀疏变量。对于某种以 $\alpha$ 为数据的策略,可以简化为对如下函数做优化:
$$\min_{\mathbf{D},, P} R(\alpha(f, \mathbf{D}), P)$$

为了采用梯度下降法,需要求得 $\partial R/\partial \mathbf{D}$。则有:
$$\frac{\partial R}{\partial \mathbf{D}} = \frac{\partial R}{\partial \alpha} \cdot \frac{\partial \alpha}{\partial \mathbf{D}}$$

$\partial R/\partial \alpha$ 的值由 $R(\alpha, P)$ 给出,因此稀疏编码方法需要能够给出 $\partial \alpha / \partial \mathbf{D}$ 的值。

由于存在 $\ell_1$ 范数约束,上述表达式没有显示解。然而,可以尝试得到它的隐式解 (可以参考[Mairal et al., 2012]):

如果已经解得 Lasso 问题的解 $\alpha^$,则根据最优化条件的梯度为零,有:
$$0 = \frac{\partial \left[|f - \mathbf{D} ,\alpha|_2^2 + \lambda, ||\alpha||1\right]}{\partial \alpha}\big|{\alpha = \alpha^
} = 2\mathbf{D}\intercal\left(\mathbf{D},\alpha* - f\right) + \lambda,\partial , |\alpha^*|_1$$

因此有:
$$(\mathbf{D}^\intercal\mathbf{D}) \alpha^* = \mathbf{D}^\intercal f - \frac{\lambda}{2}\partial,|\alpha^*|_1$$

假设 $\alpha^$ 中的非零项组成的指标集为 $\Lambda$,$\mathbf{D}\Lambda$ 由 $\mathbf{D}$ 中属于 $\Lambda$ 的列组成,则有:
$$(\mathbf{D}
\Lambda^\intercal \mathbf{D}\Lambda) \alpha\Lambda^
= \mathbf{D}_\Lambda^\intercal f - \frac{\lambda}{2} s$$

其中 $s = \mathbf{sign},(\alpha_\Lambda^*)$

因此有:
$$\alpha_\Lambda^* = (\mathbf{D}\Lambda^\intercal \mathbf{D}\Lambda)^{-1} \left(\mathbf{D}_\Lambda^\intercal f - \frac{\lambda}{2} s\right)$$

(1) 对于 $i,k \in \Lambda$,$\frac{\partial \alpha_i}{\partial \mathbf{D}{j,k}}\big|{\alpha = \alpha^*}$ 可以由上式决定 (Tensorflow 提供结果)。

(2) 对于 $i \in \Lambda$,$k \notin \Lambda$,显然有 $\frac{\partial \alpha_i}{\partial \mathbf{D}{j,k}}\big|{\alpha = \alpha^*} = 0$

(3) 对于 $i \notin \Lambda$,有 $\frac{\partial \alpha_i}{\partial \mathbf{D}{j,k}}\big|{\alpha = \alpha^*} = 0$

因此,如果求得 $\alpha^$,则可以求得 $\frac{\partial \alpha}{\partial \mathbf{D}}\big|_{\alpha = \alpha^}$ 的值。

至于求解 $\alpha^*$,已有成熟的解法 [e.g. Efron et al., 2004]。实际上,ADMM 算法就可以很好地解决此类问题,下面给出算法:

原问题实际上可以作变量代换:
$$\begin{aligned}
& \underset{\alpha}{min} \qquad & & |f - \mathbf{D},\alpha|_2^2 + \lambda, ||\beta||_1 \
& s.t. \qquad & & \alpha = \beta \
\end{aligned}$$

写出待优化的Lagrange函数:
$$\mathcal{L} := \lambda,|\beta|_1 + |f - \mathbf{D},\alpha|_2^2 + \gamma^\intercal (\beta - \alpha) + \frac{1}{2\mu}|\beta - \alpha|_2^2$$

于是有:
$$\left{\begin{aligned}
\frac{\partial L}{\partial \beta} & = \lambda,\mathbf{\partial}|\beta|_1 + \frac{1}{\mu}(\beta - \alpha) + \gamma \
\frac{\partial L}{\partial \alpha} & = 2 \mathbf{D}^\intercal (\mathbf{D},\alpha - f) + \frac{1}{\mu}(\alpha - \beta) - \gamma \
\frac{\partial L}{\partial \gamma} & = \beta - \alpha \
\end{aligned}\right.$$

因此有迭代算法:
$$\left{\begin{aligned}
\beta^{k + 1} & = \mathbf{shrink},(\alpha^k - \mu\gamma^k, \lambda\mu) \
\alpha^{k + 1} & = \left(2 \mathbf{D}^\intercal \mathbf{D} + \frac{1}{\mu}I\right)^{-1} \left(2 \mathbf{D}^\intercal f + \frac{1}{\mu}\beta^{k + 1} + \gamma^k\right)\
\gamma^{k + 1} & = \gamma^k + \frac{\beta^{k + 1} - \alpha^{k + 1}}{\mu} \
\end{aligned}\right.$$

至此,给出了完整的计算 $\partial \alpha/\partial \mathbf{D}$ 的方法。将其整合近 $\mathbf{min},R(\alpha, P)$ 策略中,便可以同时更新策略参数和稀疏编码的字典。

实验

我们通过两种方式实现了稀疏编码,调用cvx和自己编写ADMM。(先随机生成 $\alpha$ 作为真实解,再通过 $f=D\alpha$ 得到 $f$. )结果如下:


  • 两种方法得到的解非常相似,虽然与真实解不同,但在一范数约束下我们的解比真实解更好
  • ADMM耗时长于cvx,这或许是因为该ADMM在python下实现导致。根据以往作业的经验,在matlab中实现的ADMM应该比调用cvx快一个数量级。

A3C算法收敛大约要一百万步,稀疏编码中的参数$D$需要与A3C算法中的参数同步优化。在单线程计算的情况下这将耗费几十个小时,由于时间限制,我们未能得到收敛的结果。在接下来工作中我们会继续讨论这一问题。

结果与总结

A3C结果

使用美股日线数据,2014-6-9到2016-12-30作为训练集,2017-1-3到2017-6-5作为测试集。为了使结果更具普适性,我们允许策略做空,但严格限制杠杆率。


半年回报率随训练周期的变化

共训练49个周期(period=1分钟),在半年时间内可以得到超过30%的收益率
</br>
</br>

取49个周期中成绩最好的结果,查看每步交易带来的收益。Benchmark为大盘走势。
可以发现在最初的15个交易日内,由于历史信息不足,我们的收益基本跟随大盘变化。在第18,19日抓住机会进行了一次非常成功的交易。后续交易稳中求胜,明显可以跑赢大盘。

总结

本项目首次将A3C-LSTM应用于金融问题,对金融问题建模使之可以与强化学习相结合,进行了开创性的探索。其开创性主要体现在两个方面:

  1. 通过深度神经网络直接给出策略。
    在以往的量化交易研究中,神经网络往往只是一个辅助性工具,用于给出某些市场特征。随后再根据经验规律,综合考虑风险、相关性、交易约束和成本等做出决策。而本项目中所提出的网络可以直接输出策略,整合了全部中间步骤,完全以最终利润最大为导向。
  2. 不依赖与先验知识,完全客观。
    比起传统量化交易if-then的形式,本项目的模型中没有任何一条人为写出的条件判断。即使是一个对金融市场完全没有操盘经验的人,也可以通过构建一个黑箱模型来训练网络,使网络自发地学会交易策略。

本课题力图将量化交易与深度学习两个领域进行结合,并不是企图找到一个所谓的“量化圣杯”。而是想要通过深度学习的算法来达到一个有着丰富经验的trader在交易时所做出的正常反应。与此同时可以期待,相比于trader,量化交易更为理性,面对大波动、非常规市场行情时更为有纪律性,trader之前所有进行的错误的交易指令我们也可以学习到从而避免。
最终,我们发现强化学习在资产配置问题上是有效的,可以取得超过大盘的涨幅。
在研究过程中我们也发现了强化学习在金融领域有一定局限性:

  1. A3C收敛的稳定性。
    很多情况下A3C收敛困难,即使能收敛,其过程也具有极强的不确定性。这对于涉及大额资本的交易策略来说是很难接受的。
  2. 强化学习在本项目中并没有比传统策略表现得更出色。
    我们认为其原因在于当前交易模型过于简化。强化学习的长处在于处理“黑箱”式回报函数。真实世界中很多复杂场景的回报函数都没有解析解,并且回报函数的形式会受到上一步动作的影响。在这些无法用传统的神经网络解决场景中,强化学习成为了不二的选择。但在本项目中由于时间和精力的限制,我们采用了极为简单的交易模型和资产种类,所以回报函数是可以显式写出的。

强化学习善于“未雨绸缪”,即提前布局以获得更好的状态(参考围棋)。但在金融领域的问题中,市场的变动远远比当前资产配置重要。而我们又假设市场不受我们交易策略的影响,状态转移矩阵几乎不依赖于每步的动作。这说明A3C适用于复杂交易模型。例如建仓问题:如何在一定时间内以最小代价对某种资产建仓,使得成本最低。

小组分工

适用于A3C框架的量化交易模型由小组成员共同完成。其余部分分工如下:

  • 雷明达 - A3C,LSTM,权值共享,网络结构设计
  • 刘晗 - 稀疏表达,数据可视化
  • 胡安东 - 金融数据,交易环境

源码

本项目全部源码已在github上开源,上文中的全部算法均使用tensorflow实现,且没有使用其他开源代码。
https://github.com/gayflying/treasure.git

主要文件 功能
sharing_lstm_ACNetwork.py 深度网络
thread.py A3C异步梯度更新
environment.py 模拟交易环境
train.py 训练网络
analysis.py 训练结果可视化
config.py 参数控制台

参考文献

  1. Kim K J. Financial time series forecasting using support vector machines[J]. Neurocomputing, 2003, 55(1–2):307-319.
  2. Sam Mahfoud, Ganesh Mani. Financial forecasting using genetic algorithms[J]. Applied Artificial Intelligence, 1996, 10(6):543-565.
  3. Adhikari R, Agrawal R K. A combination of artificial neural network and random walk models for financial time series forecasting[J]. Neural Computing and Applications, 2014, 24(6):1441-1449.
  4. Chen K, Zhou Y, Dai F. A LSTM-based method for stock returns prediction: A case study of China stock market[C]// IEEE International Conference on Big Data. IEEE, 2015:2823-2824.
  5. Heaton J B, Polson N G, Witte J H. Deep learning for finance: deep portfolios[J]. Applied Stochastic Models in Business & Industry, 2017, 33(1).
  6. Yue Deng, Yebin Liu, Qionghai Dai, Zengke Zhang, and Yao Wang. Noisy depth maps fusion for multiview stereo via matrix completion. IEEE Journal of Selected Topics in Signal Processing, 6(5):566–582, 2012
  7. Yue Deng, Youyong Kong, Feng Bao, and Qionghai Dai. Sparse coding-inspired op- timal trading system for hft industry. IEEE Transactions on Industrial Informatics, 11(2):467–475, 2015.
  8. Bradley Efron, Trevor Hastie, Iain Johnstone, Robert Tibshirani, et al. Least angle regression. The Annals of statistics, 32(2):407–499, 2004.
  9. Aapo Hyvärinen, Patrik O Hoyer, and Erkki Oja. Sparse code shrinkage: Denoising by nonlinear maximum likelihood estimation. Advances in Neural Information Pro- cessing Systems, pages 473–479, 1999.
  10. Honglak Lee, Alexis Battle, Rajat Raina, and Andrew Y Ng. Efficient sparse coding algorithms. Advances in neural information processing systems, 19:801, 2007.
  11. Julien Mairal, Francis Bach, Jean Ponce, Guillermo Sapiro, and Andrew Zisserman. Non-local sparse models for image restoration. In Computer Vision, 2009 IEEE 12th International Conference on, pages 2272–2279. IEEE, 2009.
  12. Julien Mairal, Francis Bach, and Jean Ponce. Task-driven dictionary learning. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(4):791–804, 2012.
  13. Bruno A Olshausen and David J Field. Sparse coding with an overcomplete basis set: A strategy employed by v1? Vision research, 37(23):3311–3325, 1997.
  14. Garimella SVS Sivaram, Sridhar Krishna Nemala, Mounya Elhilali, Trac D Tran, and Hynek Hermansky. Sparse coding for speech recognition. In Acoustics Speech and Signal Processing (ICASSP), 2010 IEEE International Conference on, pages 4346– 4349. IEEE, 2010.
  15. Jianchao Yang, Kai Yu, Yihong Gong, and Thomas Huang. Linear spatial pyramid matching using sparse coding for image classification. In Computer Vision and Pat- tern Recognition, 2009. CVPR 2009. IEEE Conference on, pages 1794–1801. IEEE, 2009.
  16. Florensa C, Yan D, Abbeel P. Stochastic Neural Networks for Hierarchical Reinforcement Learning[J]. 2017.
  17. Mnih V, Badia A P, Mirza M, et al. Asynchronous Methods for Deep Reinforcement Learning[J]. 2016.
  18. Mnih V, Kavukcuoglu K, Silver D, et al. Playing Atari with Deep Reinforcement Learning[J]. Computer Science, 2013.
  19. Li Y. Deep Reinforcement Learning: An Overview[J]. 2017.
  20. Kulkarni T D, Narasimhan K R, Saeedi A, et al. Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation[J]. 2016.
  21. David Silver, Guy Lever, Nicolas Heess, Thomas Degris, Daan Wierstra, et al.. Deterministic Policy Gradient Algorithms. ICML, Jun 2014, Beijing, China. 2014
  22. Greff K, Srivastava R K, Koutnik J, et al. LSTM: A Search Space Odyssey[J]. IEEE Transactions on Neural Networks & Learning Systems, 2016, PP(99):1-11.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 引 向量求导在当前线性系统的优化问题中经常用到,比如最小二乘:$$\hat{\mathbf{x}{\rm LS}}...
    hiloki阅读 948评论 0 1
  • [TOC] # 四 随机变量的数字特征 ## 1.数学期望 离散型 $...
    Ga4ra阅读 253评论 0 0
  • 王慧康11月第五天读书打卡。我读了《《假如给我三天光明》》第62页到81页,海伦把自己经历的一段非常痛苦的事情写出...
    王慧康阅读 148评论 0 0
  • “嗷呜~”城外响起阵阵狼吼,一个个魔族精英手持各种闪着寒光的,运用稀有金属制造的武器,虎视眈眈的注视的城内...
    幽阳点点阅读 170评论 1 3
  • 记得在一本书中,看到过这么一段话,让我印象深刻。说:懂得经营大企业的老板,绝不提早发布“今年会发多少年终奖”的消息...
    静静endless阅读 186评论 0 1