㈠ 如何利用matlab对交易策略进行回测
首先你要提出一个自己的策略,一般来说就是一些规则的判断了,然后根据这些规则产生出signal,就是交易信号。 发出了交易信号,就要根据信号进行持仓或者平仓操作。你要建立一个向量记录你每天的资产净值,或者说资产序列,其中的P&L 就是跟你持仓的股票的价格变化来决定的。。。
说白了 就是个模拟
㈡ 关于利用matlab绘制股票线型的数据问题
从bggf.mat 读得的bggf数据看上去有4列
看你用highlow 函数的调用方式,这四列应该是
开市价 最高价 最低价 收市价
而r是用size获得的数据的行数
之所以报错就是bggf(r-100:r,2)取下标的时候错了
r是数据的行数,肯定是个正整数没错,错就错在r-100
你文件里面的数据如果不足100行,那么r-100就会出现负数
数据正好是100行,那么r-100就会等于0
在matlab里面,下标是从1开始的正整数,所以发生以上情况就会错
如果你的数据是刚刚好100行的,那么完全不用这么麻烦,直接用:代替就可以了
highlow(bggf(:,2),bggf(:,3),bggf(:,4),bggf(:,1),'r')
但是这样写无论是数据有多少行,图都会照画,不足100行,超过100行照单全收
如果你的数据有超过100行,你只想取最后的100行,你应该减99而不是100
highlow(bggf(r-99:r,2),bggf(r-99:r,3),bggf(r-99:r,4),bggf(r-9:r,1),'r')
但是当数据不足行时,这样写会同样报错
㈢ Matlab用Copula模型进行蒙特卡洛(Monte Carlo)模拟和拟合股票收益数据分析
Copula在仿真模型中的应用变得日益流行,它是一种描述变量间依赖关系的函数,可以为相关多元数据建模提供一种有效的方法。通过指定边缘单变量分布并选择特定的copula,数据分析师可以构建多变量分布。此示例展示如何使用copula生成数据,特别是在变量间存在复杂关系或单个变量来自不同分布时。在应用中,我们首先加载和绘制模拟股票收益数据,接着使用累积分布函数的核估计将数据转换为copula。接下来,我们拟合t copula到数据中,并生成随机样本。最后,将这些随机样本变换回原始数据的量纲,以确保数据的完整性。
使用copula生成相关多元随机数据时,首先设计蒙特卡罗模拟,选择随机输入的概率分布。为每个单独变量选择分布通常很简单,但决定输入间依赖关系可能更具挑战性。理想情况下,模拟输入数据应反映实际数量之间的已知相关性。然而,当缺乏具体信息或依赖关系复杂时,尝试不同可能性以评估模型的敏感性是明智的。
在某些情况下,独立模拟随机变量可能过于简单,无法准确反映实际场景。例如,在金融风险模拟中,不同保险损失来源可能被建模为对数正态随机变量,了解它们之间的依赖性对结果至关重要。通过利用对数正态分布的特性,我们可以生成具有相关性的双变量对数正态随机变量,进而推广至更高维度和不同边缘分布的情况。
使用通用方法构建相关双变量分布,我们首先从二元正态分布生成值对,这些值具有统计相关性并具有正态边缘分布。然后,对每个变量分别应用转换,将边缘分布更改为对数正态分布。这种方法可以灵活应用于创建具有任意边缘分布的相关双变量随机向量。
等级相关系数在描述相关性时更为准确,尤其是在边缘分布选择多样时。Kendall's tau或Spearman's rho等秩相关系数衡量一个rv的大值或小值与另一个rv的大值或小值的关联程度,它们对于边缘分布的选择是不变的,因此在描述变量间相关性时更为有用。
Gaussian和t copula是常用的椭圆copula,可以轻松推广到更多维度。通过使用Gaussian copula模拟来自不同边缘分布的多变量数据,可以构建出具有特定依赖结构的分布,适用于金融时间序列分析、VaR分析以及更多领域。
在实际应用中,我们通常使用经验模型来拟合边缘分布,而非参数模型。这种方法更灵活,允许我们在不完全了解数据分布时进行模拟。通过拟合二元t(5) copula到具有相当大负相关参数,我们可以在模拟数据边缘直方图与原始数据边缘直方图之间建立良好的一致性,从而获得更准确的模拟结果。
综上所述,copula在统计建模、风险评估和金融时间序列分析等领域扮演着重要角色。通过灵活地选择copula类型和调整相关参数,我们可以更好地模拟和理解实际数据中的复杂依赖关系,从而为决策提供更可靠的支持。