python k线形态识别_python量化金融系列-K线分析、及形态捕捉

最近股市行情很好,新闻联播用一分钟来邀请散户入股市。

对于普通人来说,如何进行投资才能收益最高?

白酒作为股票市场的重要组成,通过绘制贵州茅台[600519]的K线,并且通过寻找特定的K线特征来选择买入和卖出的时机。

简单的金融知识

什么是K线?

简单来说,就是把股票的开盘价、最高价、最低价、收盘价这四个重要的因素表达在一张图上。来源于日本记录米市的行情波动,“罫”(日本音读kei),故叫K线。

同时,K线的形状比较像蜡烛,蜡烛有黑白之分,因而也叫阴阳线图表。红色表示阳线,绿色表示阴线。

简言之,K线=罫线=阴阳线,这三个都是表述一支股票的涨跌情况。

多种多样K线的形态

K线的形态有非常多,这里分析典型的具有投资意义的形态。

阴线

光头光脚阴线

光脚阴线

这两者说明空方力量充沛,如果两种线型中的任何一种出现在高价位区时, 说明上档抛压严重,行情疲软,股价有反转下跌的可能;如果出现在中价 位区的上升途中,则表明后市仍有上升空间。

阳线

光头光脚阳线

光头阳线

光脚阳线

前两者都是说明多方力量充沛,后续继续上涨可能性大,俗称追涨,第三个则 说明多方力量上升势头很强,但在高价位处多空双方有分歧,购买时应谨慎。

特殊线

十字星

吊顶线(锤子

倒锤线

第一种线型常称为变盘十字星,无论出现在高价位区或低价位区,都可视为 顶部或底部信号,预示大势即将改变原来的走向。后两者如果多次出现在低位则代表已经接近底部,开始出现反弹趋势。

早晨之星、乌云盖顶

早晨之星

早晨之星又称“黎明之星”,它是一种行情看涨的形态。==是一个非常好的买入时机。==

第一天,股价继续下跌,并且由于恐慌性的抛盘而出现一根巨大的阴线,大势不妙。

第二天,跳空下行,但跌幅不大,实体部分较短,形成星的主体部分。构成星的部分,既可以是阴线,也可以是阳线。

第三天,一根长阳线拔地而起,价格收复第一天的大部分失地,市场发出明显看涨信号。

乌云盖顶

乌云盖顶,经常发生在一段上升行情的顶部,==是一个看跌信号==。可能意味着很多新买家终于下定决心入市,踏上牛市的“船”,却联联看跌。==全民炒股,一定要注意这种乌云盖顶的形态。==

第一天是一根坚挺的阳线实体,第二天则为一根长阴线。

第二天的开市价超过第一天的最高价(这就是说超过了第一天的上影线的顶端),市场却收市在接近当日的最低价的水平,并且收市价明显地向下扎入到第一根阳线实体的内部。

捕捉K线形态

常见K线绘制

获取股票数据

或者股票数据的方式有很多种,推荐几种简单的方式:

八爪鱼软件,通过模板可以获取同花顺软件的股票数据。

网易财经,下载股票数据

这两种方式不需要编程,获取数据非常简单快捷。同时也可以高阶版,通过爬虫实时爬取股票数据、或者通过八爪鱼自定义模板来触发爬取任务。本文通过代码爬取股票数据,如果想通过八爪鱼可视化工具来触发爬取任务可以移步作者的前几篇文章。

import requests

from lxml import etree

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'

}

def parse_url(url):

response = requests.get(url,headers=headers)

if response.status_code == 200:

return etree.HTML(response.content)

return False

def get_date(response):

# 得到股票代码,开始和结束的日期

start_date = ''.join(response.xpath('//input[@name="date_start_type"]/@value')[0].split('-'))

end_date = ''.join(response.xpath('//input[@name="date_end_type"]/@value')[0].split('-'))

code = response.xpath('//h1[@class="name"]/span/a/text()')[0]

return code,start_date,end_date

def download(code,start_date, end_date):

###其中code的参数值为该股票所属沪市(0)或深市(1)的代码+股票代码,start参数为要下载的日期期间的开始值(默认为上市日),end参数为要下载的日期期间的截至值(默认为下载当天,即今日)。

download_url = "http://quotes.money.163.com/service/chddata.html?code=0"+code+"&start="+start_date+"&end="+end_date+\

"&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP"

print(download_url)

data = requests.get(download_url,headers=headers)

f = open(code + '.csv', 'wb')

for chunk in data.iter_content(chunk_size=10000):

if chunk:

f.write(chunk)

print('股票---',code,'历史数据正在下载')

url = 'http://quotes.money.163.com/trade/lsjysj_600519.html'

response = parse_url(url)

code,start_date,end_date = get_date(response)

download(code,start_date, end_date)

数据格式如下:

绘制K线

import pandas as pd

from matplotlib.dates import DateFormatter, WeekdayLocator,\

DayLocator, MONDAY,date2num

from datetime import datetime

gzmt  = pd.read_csv('E:/share/600519.csv',usecols=[0,1,2,3,4,5,6,11],encoding='gbk')

#选取30天的数据

gzmt = gzmt.iloc[:30,:]

gzmt=gzmt[["日期","开盘价","最高价","最低价","收盘价","成交量"]]

#将日期转化为datetime的格式

gzmt.日期=[date2num(datetime.strptime(date,"%Y-%m-%d"))\

for date in gzmt.日期]

###正式开始画图######

plt.figure(figsize=(14,6))  #设定画布大小

ax= plt.subplot()

mondays = WeekdayLocator(MONDAY)

weekFormatter = DateFormatter('%y %b %d')

ax.xaxis.set_major_locator(mondays)

ax.xaxis.set_minor_locator(DayLocator() )

ax.xaxis.set_major_formatter(weekFormatter)  #设定工作日作为时间轴

plt.rcParams['font.sans-serif'] = ['SimHei']  #设定字体 显示中文

plt.rcParams['axes.unicode_minus'] = False

ax.set_title("贵州茅台近1个月K线图")

candlestick_ohlc(ax, gzmtlist, width=0.7,colorup='r', colordown='g')  #绘制蜡烛图

plt.setp(plt.gca().get_xticklabels(),rotation=50, horizontalalignment='center')

plt.show()

K线如图:

捕获早晨之星

形态解析

第一天,股价继续下跌,并且由于恐慌性的抛盘而出现一根巨大的绿色蜡烛,大势不妙。

第二天,跳空下行,但跌幅不大,实体部分较短,形成星的主体部分。构成星的部分,既可以是阴线,也可以是阳线。一般为十字线,或者长度很小的红色蜡烛。

第三天,一根红色蜡烛线拔地而起,价格收复第一天的大部分失地,市场发出明显看涨信号。具体算法如下:

条件1. 第一天的收盘价低于开盘价,即蜡烛绿色阴线,第二天的收盘价和开盘价大致相等,第三天蜡烛实体的红色收盘价高于开盘价,两者的差价要大于第一天差价的一半以上。

条件2. 关于第二天的十字星,要求开盘价和收盘价同时小于第一天的收盘价和第三天的开盘价。

条件3. 前期为下跌趋势

代码实现

进行数据处理,并且计算收盘与开票价差

准备条件1

准备条件2 准备条件3

通过条件,找到2019-03-11 00:00:00为早晨之星的形态

策略验证 通过pyecharts画出3月的K线,可以看到早晨之星后股票为涨势,是较好的买入点。

捕获乌云盖顶

形态解析

第一天,出现一根坚挺的红色蜡烛,承接前期上涨行情,显示多方完全掌握着主动权。

第二天,高开低走,收在当日最低价附近,出现一个绿色蜡烛。

具体算法如下:

条件1 第一个红色蜡烛实体收盘价高于开盘价 , 第二个绿色蜡烛 收盘价低于开盘价

条件2 第二天开盘价高于第一天的收盘价,第二天收盘价位于第一天实体的下半部分(第二天收盘价低于第一天开盘和收盘价之和的一半)并且大于第一天的开盘价。

条件3 前期为上升趋势

代码实现

进行数据处理,并且计算收盘与开票价差

准备条件

通过条件,找到2019-01-17、2019-01-28、2019-04-11为乌云之星的形态

通过条件,找到2019-01-17、2019-01-28、2019-04-11为乌云之星的形态

策略验证

通过pyecharts画出4月的K线,可以看到乌云盖顶后股票为大跌趋势,需要避开这个买入点。但是由于白酒大环境比较好,可看到4月后期仍有上涨。所以股市有风险,投资需谨慎。

写在最后的安利,其实有非常好的量化平台,类似聚宽。可以自定义一些策略来验证收益,非常适合代码比较薄弱的同学~~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值