如何用matlab画股市K线,修改内置candle函数

自带函数效果预览图

Alt
可以看出K线图有基本的框架,但是和我们平常的习惯不同,还需要修改其颜色,使得更直观些

原始candle的使用方法

语法

candle(Data)
candle(Data,Color)
h = candle(ax___)

描述
  1. 例子
    candle(Data)从证券的一系列开盘价、最高价、最低价和收盘价中绘制蜡烛形图。如果收盘价大于开盘价,则主体(开盘价和收盘价之间的区域)未填充;否则主体被填充。

  2. 例子
    candle(Data,Color)添加Color的可选参数.

  3. 例子
    h = candle(ax___)为ax添加可选参数. 默认为gca,可选任意坐标轴

输入参数
  1. Data=开盘价、最高价、最低价和收盘价数据
    开盘价、最高价、最低价和收盘价的数据,指定为矩阵、表格或时间表。对于矩阵输入,Data 是存储在相应列中的开盘价、最高价、最低价和收盘价的M矩阵。
    数据类型:double|table|timetable

  2. color= (可选) 三个元素颜色矢量
    图形窗口的背景颜色(默认) |颜色矢量[R G B] |字符串
    三个元素颜色矢量,指定为[R G B]颜色矢量或指定颜色名称的字符串。默认颜色因图形窗口的背景颜色而异。
    数据类型:double|string

修改源代码

原始代码
function varargout = candle(varargin)

%--------------------------- Parsing/Validation --------------------------%
try
    narginchk(1,Inf);
    [ax,args] = internal.finance.axesparser(varargin{
   
   :});
    if ~isempty(ax) && ~isscalar(ax)
        error(message('finance:internal:finance:axesparser:ScalarAxes'))
    end
    
    output = internal.finance.ftseriesInputParser(args, ...
        4,{
   
   'open','high','low','close'},{
   
   },{
   
   },{
   
   'Color'},{
   
   ''},{
   
   @(x)1,@ischar},1);
catch ME
    throwAsCaller(ME)
end

[data,optional,dates,~] = output{
   
   :};
op = data(:,1);
hi = data(:,2);
lo = data(:,3);
cl = data(:,4);

% Validation work will be left to child functions.
color = optional.Color;

%------------------------------ Data Preparation -------------------------%

% Need to pad all inputs with NaN's to leave spaces between day data
% Vertical High/Low lines data preparation.
numObs = length(hi(:));

hiloVertical = [hi lo NaN(numObs, 1)]';
indexVertical = repmat(dates',3,1);

% Boxes data preparation
if isdatetime(dates) && length(dates) > 1
    %If using datetimes, make the box width one half of the smallest
    %distance between dates
    inc = 1/4 * min(diff(dates));
else
    inc = 0.25;
end
indexLeft = dates - inc;
indexRight = dates + inc;

%------------------------------- Plot ------
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆拾伍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值