SlideShare a Scribd company logo
1 of 32
Download to read offline
智能金融:
人工智能在量化投资分析中的实践
恒生电子 李涛
人工智能概论
1
人工智能
1958:
Birth of
Perceptron and
neural networks
1974:
Backpropagation
Late 1980s:
convolution neural
networks and recurrent
neural networks
trained using
backpropagation
2006:
Unsupervised
pretraining for
deep neutral
networks
2012: Distributed
deep learning (e.g.,
Google Brain)
2013: DQN for
deep reinforcement
learning
1997: LSTM-RNN
2015: Open source
tools: MxNEt,
TensorFlow, CNTK
t
人工智能(Artificial Intelligence)
是研究、开发用于模拟、延伸和
扩展人的智能的理论、方法、技
术及应用系统的一门新的技术科
学。AI企图了解智能的实质,并
生产出一种新的能以人类智能相
似的方式做出反应的智能机器。
人工智能的应用
人工智能已经有了十分广泛的应用,例如:数据挖掘、计算机视觉、自然语言处理、生物
特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音
和手写识别、战略游戏和机器人运用。
人工智能的机器学习模型
统计分类
回归分析
有监督
学习
聚 类
关联规则
无监督
学习
K-means BIRCH Apriori
决策树 朴素贝叶斯
LR KNN 神经网络
SVM
优化算法
AdaBoost 遗传算法
浅层机器学习在量化
分析中的实践
2
小波神经网络
Mexh
haar
db4
morlet
meyer
小
波
基
函
数
WNN是将神经网络隐节点的激活函数由小波函数来替代,
相应的输入层到隐含层的权值及隐含层的阈值分别由小波
函数的尺度伸缩因子和时间平移因子所代替。这是应用最
广泛的紧致型结合。
小波神经网络预测市场走势
支持向量机——SVM
SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,
即支持向量机的学习策略便是间隔最大化。
(1)针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输
入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性
算法对样本的非线性特征进行线性分析成为可能。
(2)基于结构风险最小化理论之上在特征空间中建构最优分割超平面,使得学习器得到全局最
优化,并且在整个样本空间的期望风险以某个概率满足一定上界。
多项式核
高斯核
线性核
SVM核函数:
SVM+Adaboost预测证券市场走势
特征 公式
动量 (C(i)/C(i-n))*100
W&R (HH(n)-C(t))/(HH(n)-LL(n))*100
RSI RS/(1+RS)*100
5日均线距离 (C(t)/MA (5))*100
10日均线距离 (C(t)/MA (10))
模型 SVM(Grid Search Best) AdaBoost+SVM
Accuracy 63.3% 61.2%
针对HS300指数 2005.1.4~2016.9.8 共2841个日数据,取后200个数据作为测试集,
之前数据作为训练集和验证集,采用如下特征和标记未来一日的涨跌做分类预测。
遗传算法在量化交易模型中的应用
输出高层次的机器学习
1. 基础交易信号
2. 复杂交易信号
3. 资金和仓位管理
4. 自适应风险调控
5. 目标和止损
输入-遗传指令 输出函数集
遗传编程运算符
参数 内容
Terminals Set 随机数,输入变量(价格序列Pi(分钟、日、周和月线的开盘、最高、最低、收盘、K线数),成交量序列Vi)
数学逻辑函数集 +、-、×、÷、SIN、COS、ASIN、ACOS、 POWER、SQRT、LOG、AND、OR、LT、LE、GT、GE、
MIN、MAX、UP、DOWN
常用技术指标集,
以技术指标数值应用
MA、MACD(DIF、DEA)、DMI(PDI、MDI、ADX、ADXR)、RSI(1、2、3)、BIAS(1、2、3)、
KDJ(K、D、J)、BOLL(BOLL、UB、LB)、WAD(WAD、MAWAD)、WR(WR1、WR2)、SAR、
PSY(PSY、PSYMA)、OBV(OBV、MAOBV)、PVI(PVI、MAPVI)、ATR(ATR、MATR)、ASI
(ASI、MAASI)、MINP、MAXP、MINV、MAXV等
Or
And
LT
MACD(6,26,12) 0
LT
RSI1(12) 50
GT
P4 BOLL(20
)
TREE-GA
目标函数
净利 Net Profit
回撤 Drawdown
胜率 Percent Accuracy
盈亏比 Profit Factor
夏普率 Sharp Ratio
寻优
策略
交易可行 Trade Feasibility
遗传算法在量化交易模型中的应用
各种适应度5次平均数据对比
胜率 盈亏比 累计收益 夏普比率 累计收益+最大回撤
BETA	 0.9545 0.3445 0.556 0.165 0.234
ALPHA	 0.114 0.5435 1.325 0.9915 1.017
SHARP 0.017 0.0325 0.0505 0.066 0.058
最大回撤 0.4535 0.339 0.258 0.1315 0.155
模型收益 0.224 0.5835 1.389 1.0105 1.044
基准收益 0.115 0.115 0.115 0.115 0.115
操作次数 52.5 56 111.5 64.5 59.5
盈利次数 47 11.5 49.5 40 32
胜率 0.9005 0.225 0.3945 0.6105 0.5245
单次盈利 0.037 0.133 0.085 0.0305 0.0495
单次亏损 0.141 0.02 0.019 0.0175 0.0155
盈亏比 0.263 6.696 4.138 2.315 3.4955
累积收益 1.7105 1.44 2.329 1.2115 1.367
累计亏损 0.725 0.765 1.1035 0.378 0.4675
最大连赢次数 26 2 4.5 6.5 5.5
最大连亏次数 1.5 13.5 7.5 4 4
恒生智能策略服务平台业务架构
Docker
容器管理
买卖点
提醒
GP策略规划
引擎
策略管理
策略回测
引擎
策略执行
引擎
策略运行
监控
策略规划
并行计算调
度服务
策略监控执行
数据预处理
引擎
基础指标算
法库
历史行情
数据
实时行情
数据
行情基础指
标数据
策略生成策略商城
PBox
O+
交易系统
…
策略执行监控策略回测展示
Web前端
行情数据服务
深度学习在市场走势
预测中的实践
3
递归神经网络RNN
• Model a dynamic system driven by an external signal x
– 𝐴" = 𝑓(𝑈𝑥" + 𝑊𝐴"*+)	
– Hidden node 𝐴"*+ contains information about the whole past sequence
– function 𝑓(·) maps the whole past sequence (𝑥𝑡,… , 𝑥1) to current state 𝐴"
长短期记忆神经网络LSTM
• LSTM通过门函数控制经过隐含层的信息,用以防止梯度弥散或
梯度爆发
RNN隐含层的节点memory cell,
增加三个控制门。 三个门用来阻
塞或放行对应管理的信息
Ø 输入门
Ø 输出门
Ø 忘记门
人工智能
特征 说明
当日收益率 T日收盘价/T-1日收盘价 - 1
形态特征一 T日最高价/T日开盘价 - 1
形态特征二 T日最低价/T日开盘价 - 1
形态特征三 T日收盘价/T日开盘价 - 1
形态特征四 T日平均价/T日开盘价 - 1
针对HS300指数 2005.1.4~2016.9.8		共2841个日数据,取后200个数据作为测试集,
之前数据作为训练集,判断市场一日涨跌,使用LSTM模型进行机器学习。
PCA降维后数据的分布
卷积神经网络CNN
• 局部感知Local connectivity across
space
• 权值共享Sharing weights across
space (translation equivalence)
• 池化Pooling (translation invariance)
K线图像识别预测未来市场走势
针对SP500指数 1962.1.2~2016.9.8		
共13768个日数据,按20/120日时间
窗口生成K线图,并标记后续3/10天
的走势,使用CNN进行机器学习
技术分析的K线图涵盖大量信息
定性 Vs		量化
窗口 训练集 测试集10分类 测试集Top5
20日 ±93% ±40% 95%
120日 ±93% ±30% 93%
机器学习训练中的技巧
4
过拟合
随着特征个数的增多,训练集的误
差逐渐减小。交叉验证集的误差是
先减小后增大。
根据上面图表,我们知道:
l 训练集误差和交叉集误差近似时:
低拟合
l 交叉验证集误差远大于训练集误
差时:过拟合
因此,我们在完善模型的过程中,
若需要解决过拟合,可以尝试减少
特征的数量。
若需要解决低拟合,可以尝试增加
特征的数量。
防止过拟合的方法
• 模型选择的方法为(训练集60%,交叉验证集
20%,测试集20%):
– 1.使用训练集训练出若干个模型
– 2.用这些模型分别对交叉验证集计算得出交叉验证误差
(交叉验证集用来对刚训练出的模型进行预报,以得
出最佳的模型)
– 3.选取代价函数值最小的模型
– 4.用步骤3中选出的模型对测试集计算得出推广误差
防止过拟合的方法
• Early stopping
– 在训练的过程中,记录到目前为止最好的validation	accuracy,当连续10次Epoch(或者更多次)没
达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early	Stopping)。
• 数据集扩增
• 正则化方法
– L1																																																								L2
• Dropout/DropConnect
Original	network DropOut network DropConnect network
深度学习训练中的技巧
• 数据预处理
– 零均值化(zero-center)和归一化(normalize)
– Shuffling training examples
• 学习速率调整
– decreasing, AdaGrad/AdaDelta
• 避免过拟合
– Early stopping, weight decay or L1/L2 正则,Drop out/Drop connect
• 权重初始化
– 小的权重进行初始化,方差归一化
• 梯度下降优化
– Momentum SGD, Nesterov Acceleration,
– Average SGD, Variance Reduction (SVRG)
深度学习的大规模计算
• GPU加速:矢量化编程,GPU的众核体系结构可将矩阵运算并行执行
• 计算集群
• 数据并行
是指对训练数据做切分,同时
采用多个模型实例,对多个分
片的数据并行训练。
• 模型并行
将模型拆分成几个分片,由几
个训练单元分别持有,共同协
作完成训练。
主流深度学习的开源框架
• Torch (NYU,2002), Facebook AI, Google Deepmind
• Theano (University of Montreal, ~2010)
• Caffe (Berkeley),卷积神经网络
• TensorFlow (Google)
• CNTK (MicroSoft))
Theano only supports 1 GPU
Achieved with 1-bit gradient
0
20000
40000
60000
80000
CNTK Theano TensorFlow Torch 7 Caffe
speed comparison (samples/second), higher = better
[note: December 2015]
1 GPU 1 x 4 GPUs 2 x 4 GPUs (8 GPUs)
中国技术开放日
THANKS

More Related Content

Viewers also liked

警惕大眾別隨意聽信坊間期貨投顧公司
警惕大眾別隨意聽信坊間期貨投顧公司警惕大眾別隨意聽信坊間期貨投顧公司
警惕大眾別隨意聽信坊間期貨投顧公司Philip Zheng
 
Use MQTT in Docker on Raspberry Pi
Use MQTT in Docker on Raspberry PiUse MQTT in Docker on Raspberry Pi
Use MQTT in Docker on Raspberry PiPhilip Zheng
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹Philip Zheng
 
Docker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOSDocker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOSPhilip Zheng
 
圖解高頻交易系統的運作狀況
圖解高頻交易系統的運作狀況圖解高頻交易系統的運作狀況
圖解高頻交易系統的運作狀況Philip Zheng
 
Docker all the things
Docker all the thingsDocker all the things
Docker all the thingsPhilip Zheng
 
TradingBot & Open Source 精神
TradingBot & Open Source 精神TradingBot & Open Source 精神
TradingBot & Open Source 精神Philip Zheng
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享Philip Zheng
 
外資操作剖析,單日期貨空單創歷史新高 2013 04-09
外資操作剖析,單日期貨空單創歷史新高 2013 04-09外資操作剖析,單日期貨空單創歷史新高 2013 04-09
外資操作剖析,單日期貨空單創歷史新高 2013 04-09Philip Zheng
 
程式交易經驗分享系列(2) 交易策略開發步驟
程式交易經驗分享系列(2)   交易策略開發步驟程式交易經驗分享系列(2)   交易策略開發步驟
程式交易經驗分享系列(2) 交易策略開發步驟Philip Zheng
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
Docker basic on azure
Docker basic on azureDocker basic on azure
Docker basic on azurePhilip Zheng
 
程式交易經驗分享系列(3) 策略最佳化及wfa法
程式交易經驗分享系列(3)   策略最佳化及wfa法程式交易經驗分享系列(3)   策略最佳化及wfa法
程式交易經驗分享系列(3) 策略最佳化及wfa法Philip Zheng
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹Philip Zheng
 
What's Wrong With Deep Learning?
What's Wrong With Deep Learning?What's Wrong With Deep Learning?
What's Wrong With Deep Learning?Philip Zheng
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Philip Zheng
 

Viewers also liked (20)

COSCUP - Fleet
COSCUP - FleetCOSCUP - Fleet
COSCUP - Fleet
 
警惕大眾別隨意聽信坊間期貨投顧公司
警惕大眾別隨意聽信坊間期貨投顧公司警惕大眾別隨意聽信坊間期貨投顧公司
警惕大眾別隨意聽信坊間期貨投顧公司
 
Use MQTT in Docker on Raspberry Pi
Use MQTT in Docker on Raspberry PiUse MQTT in Docker on Raspberry Pi
Use MQTT in Docker on Raspberry Pi
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
容器式軟體開發介紹
容器式軟體開發介紹容器式軟體開發介紹
容器式軟體開發介紹
 
Docker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOSDocker on Raspberry Pi and CoreOS
Docker on Raspberry Pi and CoreOS
 
圖解高頻交易系統的運作狀況
圖解高頻交易系統的運作狀況圖解高頻交易系統的運作狀況
圖解高頻交易系統的運作狀況
 
Docker all the things
Docker all the thingsDocker all the things
Docker all the things
 
TradingBot & Open Source 精神
TradingBot & Open Source 精神TradingBot & Open Source 精神
TradingBot & Open Source 精神
 
Fusion tables
Fusion tablesFusion tables
Fusion tables
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
 
外資操作剖析,單日期貨空單創歷史新高 2013 04-09
外資操作剖析,單日期貨空單創歷史新高 2013 04-09外資操作剖析,單日期貨空單創歷史新高 2013 04-09
外資操作剖析,單日期貨空單創歷史新高 2013 04-09
 
程式交易經驗分享系列(2) 交易策略開發步驟
程式交易經驗分享系列(2)   交易策略開發步驟程式交易經驗分享系列(2)   交易策略開發步驟
程式交易經驗分享系列(2) 交易策略開發步驟
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
Docker & GitLab
Docker & GitLabDocker & GitLab
Docker & GitLab
 
Docker basic on azure
Docker basic on azureDocker basic on azure
Docker basic on azure
 
程式交易經驗分享系列(3) 策略最佳化及wfa法
程式交易經驗分享系列(3)   策略最佳化及wfa法程式交易經驗分享系列(3)   策略最佳化及wfa法
程式交易經驗分享系列(3) 策略最佳化及wfa法
 
容器式基礎架構介紹
容器式基礎架構介紹容器式基礎架構介紹
容器式基礎架構介紹
 
What's Wrong With Deep Learning?
What's Wrong With Deep Learning?What's Wrong With Deep Learning?
What's Wrong With Deep Learning?
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法
 

More from Philip Zheng

十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則Philip Zheng
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖Philip Zheng
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹Philip Zheng
 
VSCode Remote Development
VSCode Remote DevelopmentVSCode Remote Development
VSCode Remote DevelopmentPhilip Zheng
 
K8s removes dockershime
K8s removes dockershimeK8s removes dockershime
K8s removes dockershimePhilip Zheng
 
Cloud Native Practice
Cloud Native PracticeCloud Native Practice
Cloud Native PracticePhilip Zheng
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊Philip Zheng
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShopPhilip Zheng
 
容器式高效率 ChatBot 開發方法
容器式高效率 ChatBot 開發方法容器式高效率 ChatBot 開發方法
容器式高效率 ChatBot 開發方法Philip Zheng
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享Philip Zheng
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用Philip Zheng
 
容器與資料科學應用
容器與資料科學應用容器與資料科學應用
容器與資料科學應用Philip Zheng
 
容器與IoT端點應用
容器與IoT端點應用容器與IoT端點應用
容器與IoT端點應用Philip Zheng
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享Philip Zheng
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇Philip Zheng
 
Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐Philip Zheng
 
程式交易面面觀
程式交易面面觀程式交易面面觀
程式交易面面觀Philip Zheng
 

More from Philip Zheng (20)

十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
 
從零開始做架構圖
從零開始做架構圖從零開始做架構圖
從零開始做架構圖
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
VSCode Remote Development
VSCode Remote DevelopmentVSCode Remote Development
VSCode Remote Development
 
K8s removes dockershime
K8s removes dockershimeK8s removes dockershime
K8s removes dockershime
 
Apahce Ignite
Apahce IgniteApahce Ignite
Apahce Ignite
 
Cloud Native Practice
Cloud Native PracticeCloud Native Practice
Cloud Native Practice
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
 
容器式高效率 ChatBot 開發方法
容器式高效率 ChatBot 開發方法容器式高效率 ChatBot 開發方法
容器式高效率 ChatBot 開發方法
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享
 
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
 
容器與資料科學應用
容器與資料科學應用容器與資料科學應用
容器與資料科學應用
 
容器與IoT端點應用
容器與IoT端點應用容器與IoT端點應用
容器與IoT端點應用
 
理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享理財機器人技術簡介與實作經驗分享
理財機器人技術簡介與實作經驗分享
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐
 
程式交易面面觀
程式交易面面觀程式交易面面觀
程式交易面面觀
 
Docker研習營
Docker研習營Docker研習營
Docker研習營
 

人工智能在量化投资分析中的实践