MATLAB股票数据平滑处理:折线图、散点图和三种平滑方法
使用MATLAB对股票收盘价数据进行平滑处理
本文将使用MATLAB代码从'stockIndex.xls'文件中读取股票收盘价数据,绘制原始数据的散点图,并使用smoothts函数进行平滑处理,分别使用盒子法、高斯法和指数法进行平滑,并绘制不同窗宽下的平滑曲线。
代码实现
clear;clc;
%读取数据
[num,txt,raw] = xlsread('stockIndex.xls');
date = raw(2:end,1); %日期数据
closePrice = num(:,4); %收盘价数据
%绘制原始数据散点图
plot(date,closePrice,'.','MarkerSize',10);
hold on;
%盒子法平滑
box15 = smoothts(closePrice,'b',15); %窗宽为15的盒子法平滑
box30 = smoothts(closePrice,'b',30); %窗宽为30的盒子法平滑
plot(date,box15,'k-','LineWidth',2); %盒子法平滑线,黑色实线,窗宽为15
plot(date,box30,'r--','LineWidth',2); %盒子法平滑线,红色虚线,窗宽为30
%高斯法平滑
gauss15_10 = smoothts(closePrice,'g',15,10); %窗宽为15,标准差为10的高斯法平滑
gauss30_20 = smoothts(closePrice,'g',30,20); %窗宽为30,标准差为20的高斯法平滑
plot(date,gauss15_10,'k-','LineWidth',2); %高斯法平滑线,黑色实线,窗宽为15,标准差为10
plot(date,gauss30_20,'r--','LineWidth',2); %高斯法平滑线,红色虚线,窗宽为30,标准差为20
%指数法平滑
exp15 = smoothts(closePrice,'e',15); %窗宽为15的指数法平滑
exp30 = smoothts(closePrice,'e',30); %窗宽为30的指数法平滑
plot(date,exp15,'k-','LineWidth',2); %指数法平滑线,黑色实线,窗宽为15
plot(date,exp30,'r--','LineWidth',2); %指数法平滑线,红色虚线,窗宽为30
%图形设置
xlabel('日期');
ylabel('收盘价');
title('股票收盘价数据平滑处理');
legend('原始数据','盒子法15','盒子法30','高斯法15-10','高斯法30-20','指数法15','指数法30');
grid on;
box on;
代码说明
- 使用
xlsread函数读取'stockIndex.xls'文件中的数据,并提取日期数据和收盘价数据。 - 使用
plot函数绘制原始数据的散点图。 - 使用
smoothts函数进行平滑处理,分别使用'b'(盒子法)、'g'(高斯法)和'e'(指数法)参数进行平滑,并分别设置不同的窗宽和标准差。 - 使用
plot函数绘制不同平滑方法和窗宽下的平滑曲线。 - 使用
xlabel、ylabel和title函数设置坐标轴标签和标题。 - 使用
legend函数添加图例。 - 使用
grid on和box on函数添加网格线和边框。
结果分析
通过代码运行,我们可以得到一个包含原始数据散点图和三种平滑方法不同窗宽下的平滑曲线的图形。我们可以通过观察不同平滑方法和窗宽下的曲线变化,来选择最适合的平滑方法和窗宽,以更好地反映股票收盘价数据的趋势。
总结
本文介绍了使用MATLAB对股票收盘价数据进行平滑处理的方法,并使用smoothts函数分别使用盒子法、高斯法和指数法进行平滑处理。我们可以通过调整窗宽和标准差来选择最适合的平滑方法,以更好地分析股票收盘价数据。
原文地址: https://www.cveoy.top/t/topic/ofSF 著作权归作者所有。请勿转载和采集!