iOS,K線圖

一、什么是K線圖

1、K線圖的定義:

K線(Candlestick chart)又稱“陰陽燭”,是反映價格走勢的一種圖線,其特色在于一個線段內記錄了多項訊息,相當易讀易懂且實用有效,廣泛用于股票期貨貴金屬數字貨幣等行情的技術分析,稱為K線分析

2、K線圖相關的專業術語

K線可分“陽線”、“陰線”和“中立線”三種

陽線代表收盤價大于開盤價

陰線代表開盤價大于收盤價

中立線則代表開盤價等于收盤價。

3、K線圖的表示

最早陽線以紅色表示,陰線則以黑色表示,但由于彩色印刷成本高,所以后來陽線常改以白色空心方塊表示。在亞洲國家(或大中華經濟圈),多半配合傳統習慣,陽線以紅色表示,陰線以綠色表示,即是紅升綠跌。至于中立線的顏色則不一而足,難以卒論,但以異于其他兩線為原則。在歐美,習慣則正好相反,陰線以紅色表示,陽線以綠色表示。香港跟歐美相同,采用綠升紅跌。

二、怎么畫K線圖

首先我們找到該日或某一周期的最高和最低價,垂直地連成一條直線;然后再找出當日或某一周期的開市和收市價,把這二個價位連接成一條狹長的長方柱體。假如當日或某一周期的收市價較開市價為高(即低開高收),我們便以紅色來表示,或是在柱體上留白,這種柱體就稱之為"陽線"。如果當日或某一周期的收市價較開市價為低(即高開低收),我們則以綠色表示,又或是在柱上涂黑色,這柱體就是"陰線"了。

分時圖是大盤和個股的實時(即時)分時走向圖,其在實戰研判中的地位極其重要,是即時把握多空力量轉化即市場變化直接的根本所在。

K線圖分類:

分時K線圖,分時K線圖實際上就是一個折線圖

標準K線圖,一般畫成陰陽燭的樣式

1、折線圖畫法

計算坐標

先計算出單位數值所占的Y軸的高度:diviceHeight = ?SizeHeight/(MaxNumber-MinNumber)

計算出當前Y軸的坐標:總高度減去當前值所占的高度currentY = Height - ? (nowNumber *diviceHeight);

開始畫圖

重寫drawRect方法

- (void)drawRect:(CGRect)rect {

if (self.pointsArray) {

//畫連接線

CGContextRef context = UIGraphicsGetCurrentContext();//獲取繪圖上下文

CGContextSetLineWidth(context, _lineWidth);//設置線寬

CGContextSetShouldAntialias(context, YES);//設置反鋸齒邊緣

UIColor *color = _lineColor?_lineColor:_defaultColor;

CGContextSetStrokeColorWithColor(context, [color CGColor]);//設置線的顏色

//定義多個點,畫多點連線

for (id item in self.pointsArray) {

CGPoint currentPoint = CGPointFromString(item);

if ((int)currentPoint.y<=(int)self.frame.size.height && currentPoint.y>=0) {

if ([self.pointsArray indexOfObject:item]==0) {

CGContextMoveToPoint(context, currentPoint.x, currentPoint.y);//這個是起始點

continue;

}

CGContextAddLineToPoint(context, currentPoint.x, currentPoint.y);

CGContextStrokePath(context); //開始畫線

if ([self.pointsArray indexOfObject:item]

CGContextMoveToPoint(context, currentPoint.x, currentPoint.y);

}

}

}

}

}

2、陰陽燭圖,該圖需要4個坐標點,開盤,關盤,最大值,最小值

計算坐標

坐標計算方法同折線圖

畫圖

首先,要確定線的顏色,收盤值-開盤值>0紅線,收盤值-開盤值<0綠線,開盤值-收盤值=0白線;

第二,在最高值和次高值之間畫一條線(線寬是陰線的寬度)

第三,在開盤值和收盤值之間畫一條寬線(燭線寬,畫線時不繪制端點)

第四,特殊情況,開盤值、收盤值、最高值和最低值都相等的,繪制的是橫線,線寬是1,線長是燭線寬,繪制起始點是(oldX-(燭線寬/2),oldY),結束(oldX-(燭線寬/2),oldY)

#pragma mark畫一根K線

-(void)drawKWithContext:(CGContextRef)context height:(CGPoint)heightPoint Low:(CGPoint)lowPoint open:(CGPoint)openPoint close:(CGPoint)closePoint width:(CGFloat)width{

CGContextSetShouldAntialias(context, NO);

//首先判斷是綠的還是紅的,根據開盤價和收盤價的坐標來計算

BOOL isKong = NO;

UIColor *color = [UIColor colorWithHexString:@"#FF0000"withAlpha:1];//設置默認紅色

//如果開盤價坐標在收盤價坐標上方則為綠色即空

if (openPoint.y

isKong = YES;

color = [UIColor colorWithHexString:@"#00FFFF"withAlpha:1];//設置為綠色

}

//設置顏色

CGContextSetStrokeColorWithColor(context, [color CGColor]);

//首先畫一個垂直的線包含上影線和下影線

//定義兩個點畫兩點連線

CGContextSetLineWidth(context, KLineWidth);

const CGPoint points[] = {heightPoint,lowPoint};

CGContextStrokeLineSegments(context, points, 2);//繪制線段(默認不繪制端點)

//再畫中間的實體

CGFloat halfWidth = 0;

//糾正實體的中心點為當前坐標

openPoint = CGPointMake(openPoint.x-halfWidth, openPoint.y);

closePoint = CGPointMake(closePoint.x-halfWidth, closePoint.y);

//開始畫實體

CGContextSetLineWidth(context, width); //改變線的寬度

const CGPoint point[] = {openPoint,closePoint};

CGContextStrokeLineSegments(context, point, 2);//繪制線段(默認不繪制端點)

//CGContextSetLineCap(context, kCGLineCapSquare) ;//設置線段的端點形狀,方形

//開盤價格和收盤價格一樣,畫一條橫線

if ((openPoint.y-closePoint.y<=1) && (closePoint.y-openPoint.y<=1) ) {

//這里設置開盤價和收盤價一樣時候的顏色CGContextSetStrokeColorWithColor(context, [color CGColor]);

CGPoint pointLeft = CGPointMake(openPoint.x-KCandleWidth/2, openPoint.y);

CGPoint pointRight = CGPointMake(openPoint.x+KCandleWidth/2, openPoint.y);

CGContextSetLineWidth(context, 1); //改變線的寬度

const CGPoint point[] = {pointLeft,pointRight};

CGContextStrokeLineSegments(context, point, 2);//繪制線段(默認不繪制端點)

}

}

最后,上代碼K線圖demo

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容