命自我立,福自己求。一切祸福休咎皆自当人掌握,行善则积福,作恶则招祸。

文章目录

  • 什么是股价跳空缺口
  • 计算跳空值
  • 遍历股票数据获取跳空缺口
  • 绘制跳空缺口

什么是股价跳空缺口

跳空缺口存在与K线图之中,是指相邻的两根K线之间出现了没有交易的空白区间。当今日最低价与昨日最高价之间没有重合部分,称为向上缺口;当今日最高价与昨日最低价之间没有重叠部分,称为向下缺口。

理论上来说,当市场没有利好与利空消息之时,次日股价应该平开,但是如果前一日有利好出现,那么在当日集合竞价之时,多数投资者都会挂高价格进行买入,因为利好挂低价格可能买不到,这样就形成了一个向上的跳空高开。反之则是跳空低开。

这种留下的缺口对于判断后市的涨跌具有一定的参考价值。但需要注意的是,如果高开低走,跌倒昨日最高价之内,回补了这个空挡,只能叫跳空高开,不能叫缺口,缺口是指当日价格没有被反向回补。

不过,我们还需要注意,跳空缺口如果较小,可能对后市没有参考意义,而且在除权除息日也同样会出现跳空缺口,也不具有参考意义。当然,也有例外,比如比亚迪,如今也没回补50的缺口,单独看某个股票的单一数据是没有参考意义的,这一点需要额外的注意。

计算跳空值

前面我们都是以歌尔股份为例,分析各种股票的参数。今天,我们换一个股票,叫牧原股份,因为这个股票因为业绩的公布直接2个涨停到了99,如今又跌到了82,缺口很明显。

首先,我们来获取一下牧原股份近两个月的数据,具体代码如下:

df = ak.stock_zh_a_daily(symbol="sz002714", start_date="20201103", end_date="20210118",adjust="qfq")
df.to_excel("牧原股份.xlsx")

接着,我们定义一个计算跳空值的函数,代码如下:

def count_gap(cPriceUp, preLow, preHigh, low, high, threshold):jump_value = 0if (cPriceUp > 0) and (low - preHigh) > threshold:# 向上跳空jump_value = (low - preHigh) / thresholdelif (cPriceUp < 0) and (preLow - high) > threshold:# 向下跳空jump_value = (high - preLow) / thresholdreturn jump_value

函数的参含含义如下:

cPriceUp:收盘价的涨幅

preLow:昨日最低价

preHigh:昨日最高价

low:最低价

high:最高价

threshold:跳空阈值

这个函数翻译成文字意思如下:

(1)向上跳空:当涨幅cPriceUp为正,且今日最低价(low)减去昨日最高价(preHigh)大于跳空阈值。

(2)向下跳空:当涨幅cPriceUp为负,且昨日最低价(preLow)减去今日最高价(high)大于跳空阈值。

遍历股票数据获取跳空缺口

首先,我们需要自定义一个阈值用于判断是否符合跳空缺口,代码如下:

jump_threshold = df["close"].median() * 0.01

这里定义收盘价的中位数*0.01作为阈值。

接着,套用公式计算出上面方法中的参数,具体代码如下所示:

jump_threshold = df["close"].median() * 0.01
# 计算涨跌幅
df['changeRatio'] = df["close"].pct_change() * 100
# 增加昨日最低价序列
df["preLow"] = df["low"].shift(1)
# 增加昨日最高价序列
df['preHigh'] = df['high'].shift(1)
# 增加空白列jump
df = df.assign(jump=0)
# 计算所有跳空值
df['jump'] = df.apply(lambda row: count_gap(row['changeRatio'], row['preLow'], row['preHigh'], row['low'], row['high'], jump_threshold),axis=1)

注释已经非常详细了,就是获取该股票所有的跳空缺口,并且赋值给jump列,而没有跳空值的jump被赋值为0。这里我们得到了所有的跳空缺口,接下来我们需要区分是向上跳空还是向下跳空。

# 向上跳空
up_jump = df[(df["cPriceUp"] > 0) & (df["jump"] > 0)]
# 向下跳空
down_jump = df[(df["cPriceUp"] < 0) & (df["jump"] < 0)]

如上面代码所示,只需要根据前文向上跳空概念以及向下跳空概念进行判断即可。

绘制跳空缺口

经过上面的代码运算,我们已经得到了跳空缺口。下面,我们就可以根据这些值来绘制K线图,并标记出跳空缺口的位置。完整代码如下所示:

import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.ticker as ticker
import mpl_finance as mpfdef count_gap(cPriceUp, preLow, preHigh, low, high, threshold):jump_value = 0if (cPriceUp > 0) and ((low - preHigh) > threshold):# 向上跳空jump_value = (low - preHigh) / thresholdelif (cPriceUp < 0) and ((preLow - high) > threshold):# 向下跳空jump_value = (high - preLow) / thresholdreturn jump_valuedf = pd.read_excel("牧原股份.xlsx")
df['date'] = pd.to_datetime(df['date'])
df['date'] = df['date'].apply(lambda x: x.strftime('%Y-%m-%d'))
jump_threshold = df["close"].median() * 0.01
# 计算涨跌幅
df['cPriceUp'] = df["close"].pct_change() * 100
# 增加昨日最低价序列
df["preLow"] = df["low"].shift(1)
# 增加昨日最高价序列
df['preHigh'] = df['high'].shift(1)
# 增加空白列jump
df = df.assign(jump=0)
# 计算所有跳空值
df['jump'] = df.apply(lambda row: count_gap(row['cPriceUp'], row['preLow'], row['preHigh'], row['low'], row['high'], jump_threshold),axis=1)
# 向上跳空
up_jump = df[(df["cPriceUp"] > 0) & (df["jump"] > 0)]
# 向下跳空
down_jump = df[(df["cPriceUp"] < 0) & (df["jump"] < 0)]
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111)
plt.rcParams['font.sans-serif'] = ['SimHei']
#绘制K线图
mpf.candlestick2_ochl(ax, df["open"], df["close"], df["high"], df["low"], width=0.6, colorup='r',colordown='green',alpha=1.0)
#绘制向下跳空与向上跳空缺口指标
for key, val in df.items():for index, today in up_jump.iterrows():x_posit = df.index.get_loc(index)ax.annotate("{}\n{}".format("向上跳空", today["date"]), xy=(x_posit, today["preHigh"]),xytext=(-30, -up_jump["close"].mean() *0.5), xycoords="data",fontsize=18, textcoords="offset points", arrowprops=dict(arrowstyle="simple", color="r"))
for key, val in df.items():for index, today in down_jump.iterrows():x_posit = df.index.get_loc(index)ax.annotate("{}\n{}".format("向下跳空", today["date"]), xy=(x_posit, today["preLow"]),xytext=(-30, down_jump["close"].mean() *0.5), xycoords="data",fontsize=18, textcoords="offset points", arrowprops=dict(arrowstyle="simple", color="r"))
ax.xaxis.set_major_locator(ticker.MaxNLocator(20))
def format_date(x, pos=None):if x < 0 or x > len(df['date']) - 1:return ''return df['date'][int(x)]ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_date))
plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')

运行之后,得到的效果如下图所示:

前面我们提到了比亚迪,至今没有回补50的缺口,对于这样的股票怎么办呢?其实很简单,你设置一个筛选条件,上涨超过多少,忽略其跳空缺口。像比亚迪这种一般来说肯定回不去了,那么大于一定涨幅,就不要记录缺口了。

python股票量化交易(5)---股价跳空缺口相关推荐

  1. python股票量化交易接口是应用到股票上吗?

    python股票量化交易接口是应用到股票上吗?当然可以,而且是任何交易者都可以使用量化交易技术,股票交易数据是很容版易采集的,就是分析起来比权较麻烦,如果题主是职业散户,美股研究社更建议使用一些软件炒 ...

  2. 《Python股票量化交易从入门到实践》随书赠送“回测框架”的使用帮助

    点击:QTYX最新版本使用指南[文字版] 点击:QTYX最新版本使用指南[视频版] 点击: QTYX历史版本更新说明 赠送"回测框架"的目的 为了帮助读者再建立一座从书本知识到实战 ...

  3. python股票量化交易(1)---K线图、均线与成交量绘制

    远思扬祖宗之德,近思盖父母之愆:上思报国之恩,下思造家之福:外思济人之急,内思闲己之邪. 本文目录 前言 获取股票的数据 绘制K线图 均线图 成交量 前言 都说2020年是牛市的起点,很显然对于数据来 ...

  4. python股票量化交易(8)---K线图:锤头,射击之星,早晨之星

    人之有志,如树之有根,立定此志,须念念谦虚,尘尘方便,自然感动天地,而造福由我. 目录 锤头 倒锤头 射击之星 早晨之星 锤头 本篇接着上篇介绍K线形态. 首先,我们今天介绍的第一个K线形态是锤头,T ...

  5. python股票量化交易入门到实践_量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》...

    我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. ...

  6. python股票量化交易(7)---K线图:乌鸦、乌云压顶、十字星

    随缘济众,其类至繁,约言其纲,大约有十:第一,与人为善;第二,爱敬存心;第三,成人之美;第四,劝人为善;第五,救人危急;第六,兴建大利;第七,舍财作福;第八,护持正法;第九,敬重尊长;第十,爱惜物命. ...

  7. python股票量化交易(12)---使用pyqt5构建股票交易软件主页

    目录 实时股票数据 每笔交易详情数据 绘制股票走势图与买卖盘数据 实时股票数据 接着上篇博文的内容,今天我们来实现获取与绘制实时的股票行情数据.首先,我们需要通过akshare库获取某一天的实时交易数 ...

  8. python股票量化交易(9)---使用TA-Lib库实现股价走势对比图

    凡天将发斯人也,未发其福,先发其慧;此慧一发,则浮者自实,肆者自敛;建所温良若此,天启之矣. 目录 前言 计算各类指标 绘图 前言 在众多的市场股票交易软件中,每个界面并不仅仅只显示一个指标图,往往股 ...

  9. python股票量化交易(3)---趋势类指标MACD

    虚心屈己,受福之基.彼气盈者,必非远器,纵发亦无受用. 文章目录 什么是MACD MACD指标的计算 绘制MACD图 什么是MACD MACD全称为Moving Average Convergence ...

最新文章

  1. c语言中空格字符怎么表示_漫画:腾讯面试题,请实现把字符串中的空格替换为“%20”...
  2. VS2005的Command Window 调试命令的总结(转载)
  3. 20162318 2018-2019-2《网络对抗技术》Exp1 PC平台逆向破解
  4. 注解@resource的作用_Bean基于Annotation(注解)的装配方式
  5. 删除win7多余的系统还原点_【Win7封装教程2019版】系列(二)必要的系统调整
  6. python 动态规划 回溯_回溯算法 - 全排列算法实现(pythondart)
  7. 戴尔网站的服务器,PowerEdge 11G R610机架式服务器
  8. mysql 忘记密码处理方式
  9. InDesign教程,如何对齐和调整对象位置?
  10. 九宫格c语言实验报告,9X9,九宫格测试,C编程。
  11. 奥哲徐平俊:乘风、冒险与未来
  12. 鸟哥的Linux私房菜服务器架设篇 第三版
  13. 软件工程 超市库存管理系统 UML模型
  14. AD9833产生DDS调试总结
  15. 数控编程之刀具点位的全套知识
  16. 电脑磁盘数据错误(循环冗余检查)的原因以及解决办法
  17. 域控制器升级的先决条件失败之解决方式
  18. 完美解决IDEA 中Maven插件报红详细攻略(含阿里云镜像下载失败),差点泪崩...冲冲冲
  19. 教师公开课教学课件PPT模板
  20. VideoProc for Mac(全能影片处理软件)

热门文章

  1. 开源项目推荐:金山卫士源码
  2. Android 动画之ScaleAnimation应用具体解释
  3. [go] 360安全卫士六 --漂亮的波浪球
  4. ArduPilot代码学习--模式切换
  5. Ardupilot飞控Mavlink代码学习
  6. java中利用三种循环对一到一百之间六的倍数出现多少次的代码
  7. arcengine 开发经典帖(转)
  8. 安卓学习第14课——GridView(简单图片浏览器1)
  9. JAVA学习(1天) #来源:异步图书
  10. 用c语言写一个贪吃蛇游戏代码