自带函数效果预览图
可以看出K线图有基本的框架,但是和我们平常的习惯不同,还需要修改其颜色,使得更直观些
原始candle的使用方法
语法
candle(Data)
candle(Data,Color)
h = candle(ax___)
描述
-
例子
candle(Data)从证券的一系列开盘价、最高价、最低价和收盘价中绘制蜡烛形图。如果收盘价大于开盘价,则主体(开盘价和收盘价之间的区域)未填充;否则主体被填充。 -
例子
candle(Data,Color)添加Color的可选参数. -
例子
h = candle(ax___)为ax添加可选参数. 默认为gca,可选任意坐标轴
输入参数
-
Data=开盘价、最高价、最低价和收盘价数据
开盘价、最高价、最低价和收盘价的数据,指定为矩阵、表格或时间表。对于矩阵输入,Data 是存储在相应列中的开盘价、最高价、最低价和收盘价的M矩阵。
数据类型:double|table|timetable -
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 ------