美文网首页
K线开发之绘制蜡烛图

K线开发之绘制蜡烛图

作者: nethanhan | 来源:发表于2017-10-14 14:17 被阅读0次

补充知识

K线虽然看上去复杂,但仔细观察就会知道几乎所有的k线无非由以下几种组成:

(1)蜡烛

蜡烛

(2)OHLC

OHLC

(3)线段

线段

(4)带状

带状

(5)圆形

圆形

除此之外还有其他的,都是比较少见的。

蜡烛绘制

补充了一点知识后,我们来进入主题。绘制上述所说的第一种,蜡烛。如果不懂什么是蜡烛,点这里补一下基础知识。

首先来分解蜡烛,其实它是由一个长方形加上两根线段(如果长方形是非空心的话,就是一根)。长方形是由开盘价坐标点、收盘价坐标点计算生成,线段是由最高价坐标点、最低价坐标点连接而成。

所以代码逻辑也就很简单了:

  • 绘制一个长方形(实心)
  • 然后再绘制一条线段

OK!上代码:

/**
 生成蜡烛Layer

 @param model 蜡烛坐标模型
 @return 返回layer
 */
+ (CAShapeLayer *)getCandleLayerWithPointModel:(YKCandlePointModel *)model
{
    //判断是否为涨跌
    BOOL isRed = model.oPoint.y >= model.cPoint.y ? YES : NO;
    
    //生成柱子的rect
    CGRect candleFrame = CGRectMake(isRed ? model.cPoint.x - 6 : model.oPoint.x-6,isRed ? model.cPoint.y : model.oPoint.y,12,ABS(model.oPoint.y - model.cPoint.y));
    
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:candleFrame];
    
    //绘制上下影线
    [path moveToPoint:model.lPoint];
    [path addLineToPoint:model.hPoint];
    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path.CGPath;
    
    //判断涨跌来设置颜色
    if (isRed)
    {
        //涨,设置红色
        layer.strokeColor = [UIColor redColor].CGColor;
        layer.fillColor = [UIColor redColor].CGColor;
        
    } else
    {
        //跌,设置绿色
        layer.strokeColor = [UIColor greenColor].CGColor;
        layer.fillColor = [UIColor greenColor].CGColor;
    }
    
    return layer;
}

代码效果如下:

蜡烛

剩下的几个图形,我们会再下一篇中进行介绍,点这里传送。

最后把Demo献上,点击下载。

相关文章

网友评论

      本文标题:K线开发之绘制蜡烛图

      本文链接:https://www.haomeiwen.com/subject/sewxuxtx.html