量化投资:以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在量化投资中的具体应用案例简介 基于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) http://www.matlabsky.com/thread-37104-1-1.html MATLAB仅仅是个工具。 一个普通人不会因为有了手枪而成为神枪手。 好的枪手是用子弹“喂”出来的(实战)。 一个普通人不会因为有了PhotoShop而成为艺术家。 好的艺术家需要有禀赋与灵感(Ideas)。 多平台使用(哪个平台好用用就哪个,哪个平台建模周期短就用哪个) 单一固定策略回测结果的多平台核对(比对)。
内容目录 MATLAB简介 N分钟学会MATLAB(60<N<180) MATLAB在量化投资中的具体应用案例简介 基于MATLAB的行情软件——MATLAB GUI简介 基于MATLAB的量化回测平台——框架、实现、应用 学习MATLAB的一些资源
基于MATLAB的简单均线交易系统——关键字:均线系统 测试标的:股指期货日线数据 交易策略:5日均线上穿20日均线做多(即买入,若有空头仓位先平掉空头再建多头),5日均线下破20日均线做空(即卖出,若有多头仓位先平掉多头再建空头)。 该策略暂没考虑交易成本、冲击成本等影响。
内容目录 MATLAB简介 N分钟学会MATLAB(60<N<180) MATLAB在量化投资中的具体应用案例简介 基于MATLAB的行情软件——MATLAB GUI简介 基于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 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自动生成的回测报告(直接生成的Excel文件)
基于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 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 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 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 GUI简介 基于MATLAB的量化回测平台——框架、实现、应用 学习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简介 MATLAB GUI实现简要过程:内核函数的实现——GUI版面设计——组件拖拽——回调函数(Callback)实现
基于MATLAB的行情软件——MATLAB GUI简介 pushbutton回调函数 获取股票代码和日期 SecID = get(handles.edit1,'String'); HS = get(handles.popupmenu1,'Value'); FromDate = [get(handles.edit2,'String'),'/',get(handles.edit3,'String'),'/',get(handles.edit4,'String')]; ToDate = [get(handles.edit5,'String'),'/',get(handles.edit6,'String'),'/',get(handles.edit7,'String')]; Fields = {'Open';'High';'Low';'Close';'Volume'}; 从Yahoo获取数据 Connect = yahoo; if isconnection(Connect) == 0 errordlg('请检查您的网络是否连接正常'); return; end stockmatD = fetch(Connect, SecID, Fields, FromDate, ToDate,'d'); 图形展示 K线图形展示 成交量图形展示 技术指标图形展示
基于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的量化回测平台——框架、实现、应用 回测平台一些细节考虑 回测标的的选取(平台数据输入端需要独立,以便应对各种数据格式) 冲击成本的估计与设置(在外部需要能灵活设置) 手续费的设置(在外部需要能灵活设置) 入场离场价位设置(开盘价入场、收盘价入场、盘中价格入场等等,各种情景需要能灵活设置) 交易系统的评价(各种评价指标和图形展示的封装) 参数寻优(参数数值展示、2D/3D图形展示、最优参数、最优参数区域的量化给出和排名)
基于MATLAB的量化回测平台——框架、实现、应用 实现日内、隔夜策略的回测。 实现低频、高频策略的回测。 实现简单、复杂模型的回测。 丰富的图形展示,自动保存相关图形文件。 自动生成Excel文件,保存交易记录、统计指标、资金流、累计平仓盈亏等数据指标。 实现多目标函数与自定义目标函数 参数寻优以及2D、3D参数分布图形展示。 实现多策略组合测试,可根据收益风险比、回撤、最大收益等不同指标进行资金分配优化调整。 … …
基于MATLAB的量化回测平台——框架 基于MATLAB的量化回测平台框架 数据模块 回测模块 模型参数优化模块 原始数据源 Mat数据转换 数据清洗(并行化考虑) 各周期以及主力数据生成 回测模块 原始交易记录&资金流计算(并行化考虑) 各统计指标计算 统一图形展示 各种数据图形记录保存 模型参数优化模块 原始参数寻优数据计算记录(并行化考虑) 排序处理&统一图形展示 各种数据图形记录保存
基于MATLAB的量化回测平台——数据模块 原始数据源 Mat数据转换 数据清洗(并行化考虑) 各周期以及主力数据生成 外部数据库->Local Mat数据库->Matlab调用 数据结构的选择 原始double型数据存贮 struct结构? 数据清洗过程 选用其他语言清洗(C,C++,Python,Java等等) Matlab语言清洗(并行化考虑,matlabpool,parfor) 最后的数据样式 低频数据抬头:时间、日期、开、高、低、收、成交量、持仓量 高频数据抬头:1YYYYMMDD 2HHMMSS.MS 3vol 4OPI 5price 6ask1 7askVol1 8bid1 9bidVol1
基于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个。
基于MATLAB的量化回测平台——模型参数优化模块 原始参数寻优数据计算记录(并行化考虑) 排序处理&统一图形展示 各种数据图形记录保存 参数寻优考虑并行计算节省时间。 matlabpool,parfor 目标函数的选择 常见指标:夏普比率、收益风险比、胜率、最大回撤比例、年化收益率 自定义指标 图形展示单独用函数实现,不与原始参数寻优计算耦合。 代码掠影
基于MATLAB的量化回测平台——实现
内容目录 MATLAB简介 N分钟学会MATLAB(60<N<180) MATLAB在量化投资中的具体应用案例简介 基于MATLAB的行情软件——MATLAB GUI简介 基于MATLAB的量化回测平台——框架、实现、应用 学习MATLAB的一些资源
学习MATLAB的一些资源 MATLAB官方的帮助文档将是最好且最全面的学习材料 MathWorks公司的官方网站的用户中心 在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
学习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