58
量量量量 MATLAB 量量量 量量量量 MATLAB 量量量 Quantitative Investment: using MATLAB as Tool —— 量 20 量 COS 量量 @ 量量 李李faruto[email protected] http://weibo.com/faruto http://www.matlabsky.com MATLAB李李李李李李李李李李李李

量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

Embed Size (px)

DESCRIPTION

量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京. 李洋( faruto ) [email protected] http://weibo.com/faruto http://www.matlabsky.com MATLAB 技术论坛管理团队核心成员. 内容目录. MATLAB 简介 N 分钟学会 MATLAB(60

Citation preview

Page 1: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

量化投资:以MATLAB为工具Quantitative Investment: using MATLAB as Tool——第 20期 COS沙龙@北京

李洋(faruto)[email protected]

http://weibo.com/faruto

http://www.matlabsky.com

MATLAB技术论坛管理团队核心成员

Page 2: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

2

Page 3: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的简单均线交易系统• 基于MATLAB的常见指标的大盘择时交易系统• 基于MATLB的期现套利• 基于MATLAB的股指期货日内突破交易系统• 基于MATLAB的 IF、 Cu期货跨期套利(日内高频)• 基于MATLAB的跨市场套利(隔夜低频)• 基于蒙特卡洛模拟的定增基金净值模拟• 基于MATLAB的品种波动性分析• 基于MATLAB的交易品种相关性分析• … …

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

3

Page 4: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

4

Page 5: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB简介

• MATLAB的全称是矩阵实验室(Matrix Laboratory),是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和 Simulink两大部分。

• 在金融领域,使用MATLAB可以加速产品研究,减少开发时间,提高模型的仿真速度和控制项目成本,利用MATLAB以及相关产品,可以进行分析数据,评估风险、开发并优化策略等一系列金融建模工作。

5

Page 6: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB简介

• MATLAB包括拥有数百个内部函数的主工具箱和三十几种工具箱。工具箱又可以分为功能性工具箱和学科性工具箱。功能性工具箱用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科性工具箱是专业性较强的工具箱,其中金融领域相关的工具箱主要有:

– Datafeed Toolbox:金融数据工具箱– Econometrics Toolbox:计量经济学工具箱– Financial Derivatives Toolbox:金融衍生品工具箱– Fixed-Income Toolbox:固定收益工具箱– Optimization Toolbox:优化工具箱– Statistics Toolbox:统计工具箱

• 通过这些工具箱,用户可以利用MATLAB进行交易策略实现和回测、投资组合优化和分析、资产分配、金融时序分析、期权价格和敏感度分析、现金流分析、风险管理、预测和模拟、利率曲线拟合和期限结构建模、Monte Carlo模拟、基于 GARCH的波动性分析等。

6

Page 7: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

7

Page 8: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

N分钟学会MATLAB(60<N<180)

• 《量化投资:以MATLAB为工具》 -基础篇• N分钟学会MATLAB(60<N<180)

• http://www.matlabsky.com/thread-37104-1-1.html

• MATLAB仅仅是个工具。• 一个普通人不会因为有了手枪而成为神枪手。• 好的枪手是用子弹“喂”出来的(实战)。• 一个普通人不会因为有了 PhotoShop而成为艺术家。• 好的艺术家需要有禀赋与灵感( Ideas)。

• 多平台使用(哪个平台好用用就哪个,哪个平台建模周期短就用哪个)• 单一固定策略回测结果的多平台核对(比对)。

8

Page 9: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的简单均线交易系统

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

9

Page 10: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的简单均线交易系统——关键字:均线系统

• 测试标的:股指期货日线数据• 交易策略: 5日均线上穿 20日均线做多(即买入,若有空头仓位先平掉空头再建多头), 5日均线下破 20日均线做空(即卖出,若有多头仓位先平掉多头再建空头)。

• 该策略暂没考虑交易成本、冲击成本等影响。

10

Page 11: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的常见指标的大盘择时交易系统

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

11

Page 12: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的常见指标的大盘择时交易系统——关键字:技术指标、择时• 综合使用MA、MACD、 DMA等常见技术指标构建大盘择时交易模型。按 1%计算双边交易成本。

12

Page 13: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLB的期现套利

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

13

Page 14: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLB的期现套利——关键字:期现套利

• 利用MATLAB实现常见的期现套利的现货构建,进行指数跟踪,采用市值权重法,选取 150 只股票来复制 HS300指数,然后通过二次规划 quadprog来进行权重优化。

• 模型简化: 1. 没有考虑 2011年 HS300成分股的几次变动情况。 2. 对于数据不完整的股票(上市时间过晚,股东大会停牌或者其他情况停牌 等等导致数据不完整),直接从待选股票池剔除。

14

Page 15: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的股指期货日内突破交易系统

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

15

Page 16: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的股指期货日内突破交易系统 -1 ——关键字:日内、突破系统• 测试策略: FRB

• 策略类型:日内策略,趋势类策略• 策略简介:突破某一区间入场、尾盘固定时间离场、固定比例止损、每日至多交易 1 次。

• 测试品种: IF。• 测试周期: 1分钟。• 测试手续费:采用 2012年 6月 1日起四大期货交易所手续费新标准的 1.5 倍,

比如 IF 最新手续费为 0.35%%,则测试手续费为 0.35%%*1.5=0.525%%。• 测试冲击成本:采用绝对形式, IF 买卖共 1.5 跳( slip),其他品种 1 跳( slip)。

• 参数设置:参数共两个,一个和生成区间中轴相关,另一个是中轴加减的幅度来生成上下轴,暂且不进行参数寻优,使用经验参数固定下来在 IF 做测试。

• 其他说明:使用固定 1手进行测试。

16

Page 17: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的股指期货日内突破交易系统 -1 ——关键字:日内、突破系统• 测试策略: FRB

• 策略类型:日内策略,趋势类策略• 策略简介:突破某一区间入场、尾盘固定时间离场、固定比例止损、每日至多交易 1 次。

• 测试品种: IF。• 测试周期: 1分钟。• 测试手续费:采用 2012年 6月 1日起四大期货交易所手续费新标准的 1.5 倍,

比如 IF 最新手续费为 0.35%%,则测试手续费为 0.35%%*1.5=0.525%%。• 测试冲击成本:采用绝对形式, IF 买卖共 1.5 跳( slip),其他品种 1 跳( slip)。

• 参数设置:参数共两个,一个和生成区间中轴相关,另一个是中轴加减的幅度来生成上下轴,暂且不进行参数寻优,使用经验参数固定下来在 IF 做测试。

• 其他说明:使用固定 1手进行测试。

17

Page 18: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的股指期货日内突破交易系统 -2——关键字:日内、突破系统• 利用MATLAB 自动生成的回测报告(直接生成的 Excel文件)

18

Page 19: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的股指期货日内突破交易系统 -3——关键字:日内、突破系统• 其他图形输出(资金曲线,仓位、最大回撤、收益多周期统计等等)

19

Page 20: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的 IF、 Cu期货跨期套利(日内高频)

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

20

Page 21: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的 IF、 Cu期货跨期套利(日内高频)

• 关键字:跨期套利、统计套利、高频、计量、 Cointegration、 VAR model

21

Page 22: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的跨市场套利(隔夜低频)

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

22

Page 23: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的跨市场套利(隔夜低频)

• 关键字:跨市场套利、商品套利、统计套利、隔夜低频、算法交易( TWAP / VWAP )、计量、 Cointegration

• Y-P、 Cu-Zn

23

Page 24: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于蒙特卡洛模拟的定增基金净值模拟

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

24

Page 25: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于蒙特卡洛模拟的定增基金净值模拟

• 关键字:定增、净值模拟、保护垫、Monte Carlo、 Garch模型、 Black-Scholes模型

25

单只股票Garch(1, 1)估算单只股票收益率波动方程

Monte Carl oBl ack-Schol es

Model

用多只股票仿真组合净值

Page 26: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的品种波动性分析

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

26

Page 27: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的品种波动性分析

• 关键字:波动率、交易品种动态选择、实盘仓位动态调整

• 通过建立交易品种的波动性模型,监控品种的活跃程度,可以从两个方面使用该模型(系统) :

– 1. 选择合适的品种进行交易(选股)。通过品种的波动性监控,当某个品种的活跃程度相比历史行情明显放大时(有具体可实施的量化方案),可以交易该品种;

– 2.进行仓位管理。对于趋势跟踪类的投资组合,可以根据品种的波动性进行灵活的仓位管理,以期有效避免市场的小波动和小震荡(有具体可实施具体量化方案)。

27

Page 28: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的品种波动性分析

• 关键字:波动率、交易品种动态选择、实盘仓位动态调整

28

Page 29: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的品种波动性分析

• 关键字:波动率、交易品种动态选择、实盘仓位动态调整

– 通过每日监测波动率的变化,进行交易品种选择和仓位调整,比如当波动率小于历史25%分位数时,调低仓位(仓位减半),当波动率小于历史 10%分位数时,停止日内趋势类策略。比如通过该种控制, 2012年 7 月、 8 月可以有效过滤掉(低仓位交易或者不交易),实盘中大多数 IF日内趋势类策略在 2012年 7 月、 8 月份是亏损或打平的。

29

Page 30: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的品种波动性分析

• 关键字:波动率、交易品种动态选择、实盘仓位动态调整• A股市场中的应用

30

Page 31: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– 基于MATLAB的交易品种相关性分析

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

31

Page 32: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的交易品种相关性分析

• 关键字:品种相关性、板块相关性、系统风险• 1. 检测品种的相关性,可以挑选相关性高的品种 ( 板块 )进行对冲操作;• 2.通过检测品种的相关性,可以监控整个市场的系统性风险,进而进行实盘交易品种的选择和交易仓位的调整。

• 设全市场又 N个品种,对于任意的品种 A、品种 B,下面只要把计算 A和 B的相关性的相关的问题解决,那么 N个品种中任意两个品种的相关性的计算就都可以解决了。

– 1.计算 A、 B相关性的时间周期、时间长度(时间窗口长度)的选择– 2.时间周期、时间长度(时间窗口长度)确定后, A和 B品种的时间轴校正– 3.相关性的图形展示问题

32

Page 33: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的交易品种相关性分析

• 关键字:品种相关性、板块相关性、系统风险• 1. 检测品种的相关性,可以挑选相关性高的品种 ( 板块 )进行对冲操作;• 2.通过检测品种的相关性,可以监控整个市场的系统性风险,进而进行实盘交易品种的选择和交易仓位的调整。

• 设全市场又 N个品种,对于任意的品种 A、品种 B,下面只要把计算 A和 B的相关性的相关的问题解决,那么 N个品种中任意两个品种的相关性的计算就都可以解决了。

– 1.计算 A、 B相关性的时间周期、时间长度(时间窗口长度)的选择– 2.时间周期、时间长度(时间窗口长度)确定后, A和 B品种的时间轴校正– 3.相关性的图形展示问题

33

Page 34: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介– MATLAB在期权定价中的应用

• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

34

Page 35: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 利用MATLAB实现各种期权定价模型– 二叉树模型 CRR Model– 三叉树模型 Trinomial Tree Model– 蒙特卡罗模拟法 Monte Carlo Method– 最小二乘蒙特卡罗美式期权定价模型 Least-Squares MonteCarlo Method

• 利用MATLAB实现期权定价模型精度对比测试

35

Page 36: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 二叉树模型 CRR Model• 通过变动二叉树模型的步长数,可以测试二叉树模型的精度和收敛方式,由于 Black-

Scholes定价模型可以给出欧式期权的精确解,故这里以 Black-Scholes模型给出的欧式看涨期权为对比标准价格,步长设置为 1到 100 步,步数足够大时,都是以震荡的方式收敛于对比标准价格。

36

Page 37: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 三叉树模型 Trinomial Tree Model

• 通过变动步长数,可以测试三叉树模型的精度和收敛方式,由于 Black-Scholes定价模型可以给出欧式期权的精确解,故这里以 Black-Scholes模型给出的欧式看涨期权为对比标准价格,并对比三叉树模型( Trinomial Tree Model)和二叉树模型( CRR Model)的精度和收敛速度。

37

Page 38: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 三叉树模型 Trinomial Tree Model• 可以看出三叉树模型( Trinomial Tree Model)的收敛速度和精度明显优于二叉树模型( CRR Model),但对于实值和

虚值期权,三叉树模型( Trinomial Tree Model)在收敛过程中也有锯齿震荡现象,比二叉树模型( CRR Model)轻微一些,平滑一些。

38

Page 39: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 蒙特卡罗模拟法 Monte Carlo Method

• 对于欧式期权,分别变动仿真次数和时间步数,使用蒙特卡罗模拟法对期权定价,对比 Black-Scholes模型定价结果。

39

Page 40: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

MATLAB在期权定价中的应用

• 最小二乘蒙特卡罗美式期权定价模型 Least-Squares MonteCarlo Method

• 对于美式期权,分别变动仿真次数和时间步数,使用 LSM(Least-Squares MonteCarlo 最小二乘蒙特卡罗 )模型对期权定价,对比 CRR模型 ( 二叉树模型 )定价结果。

40

Page 41: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

41

Page 42: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的行情软件—— MATLAB GUI简介

• 源码下载• 基于MATLAB的行情软件MatlabTraderGUI

V1.1( Beta 版本) http://www.matlabsky.com/thread-37264-1-1.html

42

Page 43: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的行情软件—— MATLAB GUI简介

• GUI 方便交流展示• MATLAB GUI实现简要过程:内核函数的实现—— GUI 版面设计——组件拖拽

——回调函数( Callback)实现

43

Page 44: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的行情软件—— MATLAB GUI简介

• pushbutton回调函数

44

Page 45: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的行情软件—— MATLAB GUI简介

• Matlab通过 Yahoo与 Sina 获取历史与实时股票数据 [faruto 版本 ]– http://www.matlabsky.com/thread-38988-1-1.html

45

Page 46: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

46

Page 47: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——框架、实现、应用

• 回测的目的:尽可能的真实地还原实际交易过程!以期检测策略的表现。• 回测流程大框架

47

Page 48: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——框架、实现、应用

• 回测平台一些细节考虑– 回测标的的选取(平台数据输入端需要独立,以便应对各种数据格式)– 冲击成本的估计与设置(在外部需要能灵活设置)– 手续费的设置(在外部需要能灵活设置)– 入场离场价位设置(开盘价入场、收盘价入场、盘中价格入场等等,各种情景需要能

灵活设置)– 交易系统的评价(各种评价指标和图形展示的封装)– 参数寻优(参数数值展示、 2D/3D 图形展示、最优参数、最优参数区域的量化给出和

排名)

48

Page 49: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——框架、实现、应用

• 构建一个通用的基于MATLAB的期货量化回测平台• 实现日内、隔夜策略的回测。• 实现低频、高频策略的回测。• 实现简单、复杂模型的回测。• 丰富的图形展示,自动保存相关图形文件。• 自动生成 Excel文件,保存交易记录、统计指标、资金流、累计平仓盈亏等数据指标。

• 实现多目标函数与自定义目标函数 参数寻优以及 2D、 3D 参数分布图形展示。• 实现多策略组合测试,可根据收益风险比、回撤、最大收益等不同指标进行资金分配优化调整。

• … …

49

Page 50: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——框架

50

基于MATLAB的量化回测平台框架基于MATLAB的量化回测平台框架

数据模块 回测模块 模型参数优化模块

Page 51: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——数据模块

• 外部数据库 ->Local Mat数据库 ->Matlab 调用• 数据结构的选择

– 原始 double型数据存贮– struct结构?

• 数据清洗过程– 选用其他语言清洗( C,C++,Python,Java等等)– Matlab语言清洗(并行化考虑,matlabpool, parfor)

• 最后的数据样式– 低频数据抬头:时间、日期、开、高、低、收、成交量、持仓量

– 高频数据抬头: 1YYYYMMDD 2HHMMSS.MS 3vol 4OPI 5price 6ask1 7askVol1 8bid1 9bidVol1

51

数据模块

Page 52: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

回测模块

基于MATLAB的量化回测平台——回测模块

• 对于每个 K线(每个 Tick)– 开平信号记录:逻辑变量 LongOpen, LongClose, ShortOpen, ShortClose– 操作记录: OperateFlag——0:无操作; 1:开多; 2:平多; -1:开空; -2:平空; 3:开多且平空; -3:开空且平多– 交易记录抬头: {'日期 ', '时间 ', '合约 ', ' 买卖(开平) ', '手数 ','平均价格 ','日内序列位置 ','手续费 ','平仓盈亏 ','全局序列位置 '}– 根据 OperateFlag和交易记录进行相关资金流的计算。(需要仔细的地方)

• 若是日内策略且仅仅用到当日的盘面信息,可以考虑并行计算。– matlabpool, parfor

• 图形展示单独用函数实现,不与原始交易记录和资金流计算耦合。• 跨周期数据获取问题的处理

– 编写 GetHistData函数 [Data,Headers] = GetHistData(F,date,time,startpoint,count,options,MarketCode)

– 实现可以从某一位置往前获取某一周期的数据 N个。

52

Page 53: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

模型参数优化模块

基于MATLAB的量化回测平台——模型参数优化模块

• 参数寻优考虑并行计算节省时间。– matlabpool, parfor

• 目标函数的选择– 常见指标:夏普比率、收益风险比、胜率、最大回撤比例、年化收益率– 自定义指标

• 图形展示单独用函数实现,不与原始参数寻优计算耦合。• 代码掠影

53

Page 54: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

基于MATLAB的量化回测平台——实现

54

Page 55: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

内容目录

• MATLAB简介• N分钟学会MATLAB(60<N<180)

• MATLAB在量化投资中的具体应用案例简介• 基于MATLAB的行情软件—— MATLAB GUI简介• 基于MATLAB的量化回测平台——框架、实现、应用• 学习MATLAB的一些资源

55

Page 56: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

学习MATLAB的一些资源

• MATLAB官方的帮助文档将是最好且最全面的学习材料– 在MATLAB的命令窗口( Command Window)中键入“ doc”

• MathWorks公司的官方网站的用户中心– http://www.mathworks.cn/matlabcentral/– Cleve's Corner( http://blogs.mathworks.com/cleve)

• MATLAB技术论坛( http://www.matlabsky.com)• MATLAB相关的中外文书籍• Baidu, Google

56

Page 57: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

学习MATLAB的一些资源

• <基于Matlab的量化投资 >系列帖子目录• http://www.matlabsky.com/thread-28536-1-1.html

– 1.前言 -基于Matlab的量化投资– http://www.matlabsky.com/thread-28489-1-1.html– 2. 从一个例子说起 -基于Matlab的量化投资– http://www.matlabsky.com/thread-28490-1-1.html– 3.关于 BackTesting中一些细节的思考 -基于Matlab的量化投资– http://www.matlabsky.com/thread-28573-1-1.html– 4.K线图以及常用技术指标的Matlab实现 -基于Matlab的量化投资– http://www.matlabsky.com/thread-28811-1-1.html– 5.MATLAB行情软件( Beta 版本) -基于Matlab的量化投资 – http://www.matlabsky.com/thread-22239-1-1.html– 6.关于选取时间框架的一点思考 -基于Matlab的量化投资 – http://www.matlabsky.com/thread-33832-1-1.html– 7.一个具有品种通用性和测试周期通用性的策略展示 -基于Matlab的量化投资– http://www.matlabsky.com/thread-33833-1-1.html– http://blog.sina.com.cn/s/blog_4cf8aad30102eb2f.html– 8.交易品种 ( 板块 )相关性分析的MATLAB实现 -基于Matlab的量化投资– http://www.matlabsky.com/thread-36485-1-1.html

57

Page 58: 量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京

量化投资:以MATLAB为工具

Thank you

58