【金融工程实验】【matlab】使用candle函数画日均k线图

2023-11-11

使用candle函数画日均k线图

本实验为课程设计需求

要求

下载一支股票2020年2月、3月的日线数据,并用MATLAB绘制日K线图,要求绘制5日均线和20日均线。

数据

使用海王星软件导出的股票数据,导出工商银行 (601398)在19.2.21到20.4.14的数据

数据读入

filename = '.\601398.txt';
[date,data1,data2,data3,data4] = textread(filename,'%s%f%f%f%f%*[^\n]','headerlines',3);

数据处理

因为要的是2020年2月和3月的数据,匹配字符串所表示的日期。

%% 处理数据
len = length(date) - 1;
data = [];

% data = [data1(1:len),data2(1:len),data3(1:len),data4(1:len)];
for i = 1:len
    t = strsplit(date{i},'/');
    if strcmp(t{1},'2020') && (strcmp(t{2},'02') || strcmp(t{2},'03'))
        data = [data; data1(i),data2(i),data3(i),data4(i)];
    end
end

参考博客http://blog.sina.com.cn/s/blog_6b15ec9e0101iqkn.html

为了用k线图表示开盘价与收盘价之间:升-“红色”、降-“蓝色”、平-“黑色”的关系,需要对数据进行预处理;并且考虑日均线、5日均线、10日均线的区别要处理日期带来的改变。单独写一个函数

function [data2, data3, data4] = daysPlot(data, day)
% 查找二维数组的鞍点(行中最大、列中最小的点)
% Inputs: 
%
% Optional Inputs:
%   	... ... ...
%
% Outputs:
%
% Example:
%   	... ... ...
%
% See also  ... ... ...
%
%   Copyright 2020-2020    ... ... ...
%   $Revision: 1.0.0.0 $   $Date: 2020/04/14 19:05:00 $ 
%
% 其它说明:... ... ...

if (nargin<1)
    error('需要指定参数:A');
end

if (nargin<2 || isempty(day))
    day = 1;
end

%% 
temp = [];
len = numel(data(:,1));
for i = 1:floor(len/day)
    j = 1;
    sumi = [0,0,0,0];
    while (i-1)*day+j <= len
        sumi = sumi + data((i-1)*day+j, :);
        j = j + 1;
    end
    temp = [temp; sumi/(j-1)];
end
data = temp;

%%
% 处理开盘高于收盘
data2=data;
data2(find(data(:,1)>data(:,4)),:)=0;

% 处理开盘低于收盘
data3=data;
data3(find(data(:,1)<data(:,4)),:)=0;

% 处理开盘等于收盘
data4=data;
data4(find(data(:,1)~=data(:,4)),:)=0;

end

显示图形

调用上一部的daysPlot函数

%% 作图
% candle(HI, LO, CL, OP)

% 日均线
[data2, data3, data4] = daysPlot(data, 1);

subplot(1,3,1);
candle(data2(:,2),data2(:,3),data2(:,4),data2(:,1),'b');
hold on
candle(data3(:,2),data3(:,3),data3(:,4),data3(:,1),'r');
hold on
candle(data4(:,2),data4(:,3),data4(:,4),data4(:,1),'k');

ylim([5,5.5]);

% 5日均线
[data2, data3, data4] = daysPlot(data, 5);

subplot(1,3,2);
candle(data2(:,2),data2(:,3),data2(:,4),data2(:,1),'b');
hold on
candle(data3(:,2),data3(:,3),data3(:,4),data3(:,1),'r');
hold on
candle(data4(:,2),data4(:,3),data4(:,4),data4(:,1),'k');

ylim([5,5.5]);
% 10日均线
[data2, data3, data4] = daysPlot(data, 10);

subplot(1,3,3);
candle(data2(:,2),data2(:,3),data2(:,4),data2(:,1),'b');
hold on
candle(data3(:,2),data3(:,3),data3(:,4),data3(:,1),'r');
hold on
candle(data4(:,2),data4(:,3),data4(:,4),data4(:,1),'k');

ylim([5,5.5]);

图形如图所示,从左至右分别为日均线、5日均线、10日均线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【金融工程实验】【matlab】使用candle函数画日均k线图 的相关文章

  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • “Desort”向量(撤消排序)

    在Matlab中 sort返回排序后的向量和索引向量 显示哪个向量元素已移动到以下位置 v ix sort u Here v是一个包含所有元素的向量u 但已排序 ix是一个向量 显示每个元素的原始位置v in u 使用 Matlab 的语法
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标
  • 对数据进行分布拟合 - MATLAB

    我正在尝试对从显微镜图像中收集的一些数据进行分布 我们知道 152 左右的峰值是由于泊松过程造成的 我想将分布拟合到图像中心的大密度 同时忽略高强度数据 我知道如何将正态分布拟合到数据 红色曲线 但它不能很好地捕获右侧的重尾 尽管泊松分布应
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • 在不知道大小的情况下在Matlab中预分配空间?

    我正在构建一个向量X在 Matlab 中 通过将循环过程中每次迭代的结果连接起来 我现在正在做的是 X for j 1 N do something that delivers a vector A X X A end 不可能先验地预测 A
  • typeinfo、共享库和 dlopen()(不带 RTLD_GLOBAL)

    当使用加载时 我在跨共享库时遇到了一些异常无法正常运行的问题 或者至少 正如我所希望的 我知道这存在问题 dlopen 我在这里包含一些简化的示例代码 实际情况是myapp Matlab myext1 mexglx matlab 扩展 my
  • 在 MATLAB 2014b 及更高版本中使用画家渲染器进行三角形分割面片

    MATLAB 的新图形引擎 HG2 无法使用画家渲染器正确打印补丁 hist randn 1 1000 colorbar Location SouthOutside print test pdf dpdf 生成的补丁 无论是由hist or
  • 在 Matlab 中将变量命名为字符串 [重复]

    这个问题在这里已经有答案了 假设变量 FileName 包含一个字符串 例如 Name1 如何创建名称为 Name1 的变量 本页的示例 4 似乎很相似 但我无法让它工作 这是正确的做法吗 http se mathworks com hel
  • 高斯 RBM 在一个简单的例子上失败了

    我想对具有连续输入变量的受限玻尔兹曼机有一个具体的了解 我正在尝试设计一个最简单的示例 以便可以轻松跟踪行为 所以 就在这里 输入数据是二维的 每个数据点均取自两个对称正态分布 sigma 0 03 之一 其中心间隔良好 15 倍 sigm
  • 如何将 RGB 图像转换为灰度图像但保留一种颜色?

    我正在尝试创建类似的效果Sin City或其他电影 它们删除图像中除一种颜色之外的所有颜色 我有一个 RGB 图像 我想将其转换为灰度图像 但我想保留一种颜色 这是我的照片 我想保留红色 其余的应该是灰度的 这是我的代码到目前为止输出的内容
  • MATLAB 中的神经网络

    我在 MATLAB 中训练了异或神经网络并得到了这些权重 iw 2 162 2 1706 2 1565 2 1688 lw 3 9174 3 9183 b 1 2 001 2 0033 b 2 3 8093 出于好奇 我尝试编写 MATLA
  • 错误:超出了程序允许的最大变量大小。使用 sub2ind 时

    请建议如何解决这个问题 nNodes 50400 adj sparse nNodes nNodes adj sub2ind nNodes nNodes ind ind 1 1 ind is a vector of indices Maxim
  • Matlab 中“end”的语义是什么?

    常见的是使用end关键字作为在 Matlab 中访问或扩展数组的快捷方式 如 gt gt x 1 2 3 gt gt x 1 end 1 ans 1 2 gt gt x end 1 4 x 1 2 3 4 然而 我惊讶地发现以下也有效 gt
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN

随机推荐