600 likes | 1.3k Vues
量化投资:以 MATLAB 为工具 Quantitative Investment: using MATLAB as Tool —— 第 20 期 COS 沙龙 @ 北京. 李洋( faruto ) faruto@163.com http://weibo.com/faruto http://www.matlabsky.com MATLAB 技术论坛管理团队核心成员. 内容目录. MATLAB 简介 N 分钟学会 MATLAB(60<N<180) MATLAB 在量化投资中的具体应用案例简介 基于 MATLAB 的行情软件 ——MATLAB GUI 简介
E N D
量化投资:以MATLAB为工具Quantitative Investment: using MATLAB as Tool——第20期COS沙龙@北京 李洋(faruto) faruto@163.com http://weibo.com/faruto http://www.matlabsky.com MATLAB技术论坛管理团队核心成员
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的简单均线交易系统 • 基于MATLAB的常见指标的大盘择时交易系统 • 基于MATLB的期现套利 • 基于MATLAB的股指期货日内突破交易系统 • 基于MATLAB的IF、Cu期货跨期套利(日内高频) • 基于MATLAB的跨市场套利(隔夜低频) • 基于蒙特卡洛模拟的定增基金净值模拟 • 基于MATLAB的品种波动性分析 • 基于MATLAB的交易品种相关性分析 • … … • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
MATLAB简介 • MATLAB的全称是矩阵实验室(Matrix Laboratory),是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 • 在金融领域,使用MATLAB可以加速产品研究,减少开发时间,提高模型的仿真速度和控制项目成本,利用MATLAB以及相关产品,可以进行分析数据,评估风险、开发并优化策略等一系列金融建模工作。
MATLAB简介 • MATLAB包括拥有数百个内部函数的主工具箱和三十几种工具箱。工具箱又可以分为功能性工具箱和学科性工具箱。功能性工具箱用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科性工具箱是专业性较强的工具箱,其中金融领域相关的工具箱主要有: • Datafeed Toolbox:金融数据工具箱 • Econometrics Toolbox:计量经济学工具箱 • Financial Derivatives Toolbox:金融衍生品工具箱 • Fixed-Income Toolbox:固定收益工具箱 • Optimization Toolbox:优化工具箱 • Statistics Toolbox:统计工具箱 • 通过这些工具箱,用户可以利用MATLAB进行交易策略实现和回测、投资组合优化和分析、资产分配、金融时序分析、期权价格和敏感度分析、现金流分析、风险管理、预测和模拟、利率曲线拟合和期限结构建模、Monte Carlo模拟、基于GARCH的波动性分析等。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
N分钟学会MATLAB(60<N<180) • 《量化投资:以MATLAB为工具》-基础篇 • N分钟学会MATLAB(60<N<180) • http://www.matlabsky.com/thread-37104-1-1.html • MATLAB仅仅是个工具。 • 一个普通人不会因为有了手枪而成为神枪手。 • 好的枪手是用子弹“喂”出来的(实战)。 • 一个普通人不会因为有了PhotoShop而成为艺术家。 • 好的艺术家需要有禀赋与灵感(Ideas)。 • 多平台使用(哪个平台好用用就哪个,哪个平台建模周期短就用哪个) • 单一固定策略回测结果的多平台核对(比对)。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的简单均线交易系统 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的简单均线交易系统——关键字:均线系统基于MATLAB的简单均线交易系统——关键字:均线系统 • 测试标的:股指期货日线数据 • 交易策略:5日均线上穿20日均线做多(即买入,若有空头仓位先平掉空头再建多头),5日均线下破20日均线做空(即卖出,若有多头仓位先平掉多头再建空头)。 • 该策略暂没考虑交易成本、冲击成本等影响。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的常见指标的大盘择时交易系统 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的常见指标的大盘择时交易系统——关键字:技术指标、择时基于MATLAB的常见指标的大盘择时交易系统——关键字:技术指标、择时 • 综合使用MA、MACD、DMA等常见技术指标构建大盘择时交易模型。按1%计算双边交易成本。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLB的期现套利 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLB的期现套利——关键字:期现套利 • 利用MATLAB实现常见的期现套利的现货构建,进行指数跟踪,采用市值权重法,选取150只股票来复制HS300指数,然后通过二次规划quadprog来进行权重优化。 • 模型简化:1.没有考虑2011年HS300成分股的几次变动情况。2.对于数据不完整的股票(上市时间过晚,股东大会停牌或者其他情况停牌 等等导致数据不完整),直接从待选股票池剔除。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的股指期货日内突破交易系统 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习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手进行测试。
基于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手进行测试。
基于MATLAB的股指期货日内突破交易系统-2——关键字:日内、突破系统基于MATLAB的股指期货日内突破交易系统-2——关键字:日内、突破系统 • 利用MATLAB自动生成的回测报告(直接生成的Excel文件)
基于MATLAB的股指期货日内突破交易系统-3——关键字:日内、突破系统基于MATLAB的股指期货日内突破交易系统-3——关键字:日内、突破系统 • 其他图形输出(资金曲线,仓位、最大回撤、收益多周期统计等等)
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的IF、Cu期货跨期套利(日内高频) • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的IF、Cu期货跨期套利(日内高频) • 关键字:跨期套利、统计套利、高频、计量、Cointegration、VAR model
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的跨市场套利(隔夜低频) • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的跨市场套利(隔夜低频) • 关键字:跨市场套利、商品套利、统计套利、隔夜低频、算法交易( TWAP / VWAP )、计量、 Cointegration • Y-P、Cu-Zn
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于蒙特卡洛模拟的定增基金净值模拟 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于蒙特卡洛模拟的定增基金净值模拟 • 关键字:定增、净值模拟、保护垫、Monte Carlo、Garch模型、Black-Scholes模型
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的品种波动性分析 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的品种波动性分析 • 关键字:波动率、交易品种动态选择、实盘仓位动态调整 • 通过建立交易品种的波动性模型,监控品种的活跃程度,可以从两个方面使用该模型(系统): • 1.选择合适的品种进行交易(选股)。通过品种的波动性监控,当某个品种的活跃程度相比历史行情明显放大时(有具体可实施的量化方案),可以交易该品种; • 2.进行仓位管理。对于趋势跟踪类的投资组合,可以根据品种的波动性进行灵活的仓位管理,以期有效避免市场的小波动和小震荡(有具体可实施具体量化方案)。
基于MATLAB的品种波动性分析 • 关键字:波动率、交易品种动态选择、实盘仓位动态调整
基于MATLAB的品种波动性分析 • 关键字:波动率、交易品种动态选择、实盘仓位动态调整 • 通过每日监测波动率的变化,进行交易品种选择和仓位调整,比如当波动率小于历史25%分位数时,调低仓位(仓位减半),当波动率小于历史10%分位数时,停止日内趋势类策略。比如通过该种控制,2012年7月、8月可以有效过滤掉(低仓位交易或者不交易),实盘中大多数IF日内趋势类策略在2012年7月、8月份是亏损或打平的。
基于MATLAB的品种波动性分析 • 关键字:波动率、交易品种动态选择、实盘仓位动态调整 • A股市场中的应用
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的交易品种相关性分析 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的交易品种相关性分析 • 关键字:品种相关性、板块相关性、系统风险 • 1.检测品种的相关性,可以挑选相关性高的品种(板块)进行对冲操作; • 2.通过检测品种的相关性,可以监控整个市场的系统性风险,进而进行实盘交易品种的选择和交易仓位的调整。 • 设全市场又N个品种,对于任意的品种A、品种B,下面只要把计算A和B的相关性的相关的问题解决,那么N个品种中任意两个品种的相关性的计算就都可以解决了。 • 1.计算A、B相关性的时间周期、时间长度(时间窗口长度)的选择 • 2.时间周期、时间长度(时间窗口长度)确定后,A和B品种的时间轴校正 • 3.相关性的图形展示问题
基于MATLAB的交易品种相关性分析 • 关键字:品种相关性、板块相关性、系统风险 • 1.检测品种的相关性,可以挑选相关性高的品种(板块)进行对冲操作; • 2.通过检测品种的相关性,可以监控整个市场的系统性风险,进而进行实盘交易品种的选择和交易仓位的调整。 • 设全市场又N个品种,对于任意的品种A、品种B,下面只要把计算A和B的相关性的相关的问题解决,那么N个品种中任意两个品种的相关性的计算就都可以解决了。 • 1.计算A、B相关性的时间周期、时间长度(时间窗口长度)的选择 • 2.时间周期、时间长度(时间窗口长度)确定后,A和B品种的时间轴校正 • 3.相关性的图形展示问题
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • MATLAB在期权定价中的应用 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
MATLAB在期权定价中的应用 • 利用MATLAB实现各种期权定价模型 • 二叉树模型 CRR Model • 三叉树模型 Trinomial Tree Model • 蒙特卡罗模拟法 Monte Carlo Method • 最小二乘蒙特卡罗美式期权定价模型 Least-Squares MonteCarlo Method • 利用MATLAB实现期权定价模型精度对比测试
MATLAB在期权定价中的应用 • 二叉树模型 CRR Model • 通过变动二叉树模型的步长数,可以测试二叉树模型的精度和收敛方式,由于Black-Scholes定价模型可以给出欧式期权的精确解,故这里以Black-Scholes模型给出的欧式看涨期权为对比标准价格,步长设置为1到100步,步数足够大时,都是以震荡的方式收敛于对比标准价格。
MATLAB在期权定价中的应用 • 三叉树模型 Trinomial Tree Model • 通过变动步长数,可以测试三叉树模型的精度和收敛方式,由于Black-Scholes定价模型可以给出欧式期权的精确解,故这里以Black-Scholes模型给出的欧式看涨期权为对比标准价格,并对比三叉树模型(Trinomial Tree Model)和二叉树模型(CRR Model)的精度和收敛速度。
MATLAB在期权定价中的应用 • 三叉树模型 Trinomial Tree Model • 可以看出三叉树模型(Trinomial Tree Model)的收敛速度和精度明显优于二叉树模型(CRR Model),但对于实值和虚值期权,三叉树模型(Trinomial Tree Model)在收敛过程中也有锯齿震荡现象,比二叉树模型(CRR Model)轻微一些,平滑一些。
MATLAB在期权定价中的应用 • 蒙特卡罗模拟法 Monte Carlo Method • 对于欧式期权,分别变动仿真次数和时间步数,使用蒙特卡罗模拟法对期权定价,对比Black-Scholes模型定价结果。
MATLAB在期权定价中的应用 • 最小二乘蒙特卡罗美式期权定价模型 Least-Squares MonteCarlo Method • 对于美式期权,分别变动仿真次数和时间步数,使用LSM(Least-Squares MonteCarlo最小二乘蒙特卡罗)模型对期权定价,对比CRR模型(二叉树模型)定价结果。
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的行情软件——MATLAB GUI简介 • 源码下载 • 基于MATLAB的行情软件MatlabTraderGUI V1.1(Beta版本)http://www.matlabsky.com/thread-37264-1-1.html
基于MATLAB的行情软件——MATLAB GUI简介 • GUI方便交流展示 • MATLAB GUI实现简要过程:内核函数的实现——GUI版面设计——组件拖拽——回调函数(Callback)实现
基于MATLAB的行情软件——MATLAB GUI简介 • pushbutton回调函数
基于MATLAB的行情软件——MATLAB GUI简介 • Matlab通过Yahoo与Sina获取历史与实时股票数据[faruto版本] • http://www.matlabsky.com/thread-38988-1-1.html
内容目录 • MATLAB简介 • N分钟学会MATLAB(60<N<180) • MATLAB在量化投资中的具体应用案例简介 • 基于MATLAB的行情软件——MATLAB GUI简介 • 基于MATLAB的量化回测平台——框架、实现、应用 • 学习MATLAB的一些资源
基于MATLAB的量化回测平台——框架、实现、应用基于MATLAB的量化回测平台——框架、实现、应用 • 回测的目的:尽可能的真实地还原实际交易过程!以期检测策略的表现。 • 回测流程大框架
基于MATLAB的量化回测平台——框架、实现、应用基于MATLAB的量化回测平台——框架、实现、应用 • 回测平台一些细节考虑 • 回测标的的选取(平台数据输入端需要独立,以便应对各种数据格式) • 冲击成本的估计与设置(在外部需要能灵活设置) • 手续费的设置(在外部需要能灵活设置) • 入场离场价位设置(开盘价入场、收盘价入场、盘中价格入场等等,各种情景需要能灵活设置) • 交易系统的评价(各种评价指标和图形展示的封装) • 参数寻优(参数数值展示、2D/3D图形展示、最优参数、最优参数区域的量化给出和排名)
基于MATLAB的量化回测平台——框架、实现、应用基于MATLAB的量化回测平台——框架、实现、应用 • 构建一个通用的基于MATLAB的期货量化回测平台 • 实现日内、隔夜策略的回测。 • 实现低频、高频策略的回测。 • 实现简单、复杂模型的回测。 • 丰富的图形展示,自动保存相关图形文件。 • 自动生成Excel文件,保存交易记录、统计指标、资金流、累计平仓盈亏等数据指标。 • 实现多目标函数与自定义目标函数 参数寻优以及2D、3D参数分布图形展示。 • 实现多策略组合测试,可根据收益风险比、回撤、最大收益等不同指标进行资金分配优化调整。 • … …
基于MATLAB的量化回测平台——框架 基于MATLAB的量化回测平台框架 回测模块 模型参数优化模块 数据模块