引言:

邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。

【历史文章汇总】 请点击此处

这是邢不行第  64  期量化小讲堂的分享

作者 | 邢不行、助教林奇

记得小时候的某个暑假,一边吃西瓜,一边看港剧《大时代》。

《大时代》

里面炒股的场景给我留下了很深的印象,也为之后进入金融行业埋下了一个种子。

剧里有经典的一幕,一位投资大师为了让主人公帮其报仇,教他炒股。图中大师正使用香烟代表筹码,推演股价走势。大师给主人公讲解筹码分布

小时候的我只是记得这一幕但并不理解,之后回想才明白,他们在讲的应该是筹码分布理论。

有一定经验的A股投资者,应该都或多或少的听过筹码分布,本文我们就谈谈在量化投资中如何计算筹码分布,附有计算代码。

01

什么是筹码分布

我是08年左右开始炒股的,之前的市场没有亲历,不清楚筹码分布理论具体是什么时候引入中国市场。

只能通过查看资料,大致推测A股市场的筹码分布最早是由行情软件“指南针”在1997年提出的。《筹码分布》作者、指南针董事长陈浩

那么筹码分布到底是什么呢?

我们都知道一只股票在上市时会发行很多股份,那这每一股就代表了一个筹码。

而每一股在成交后都会有一个最近的成交价格,比如某只股票在13元成交1000股,14元成交500股,15元成交2000股。

分布就是指将筹码按照其最近成交价格进行分类,统计每个成交价格上筹码的数量。

我们把一只股票所有的筹码都按照最近一次成交价进行分类排列,就能得到筹码分布图:

筹码分布

一般的行情软件都会提供筹码分布图。以同花顺为例,在K线图的右侧就有筹码分布图,图中价格上的柱线代表了筹码分布的数量。

同花顺的筹码分布图

上图中45元左右集中了很多筹码,说明很多股票都是在45元附近成交的。

随着鼠标在K线上移动,筹码分布图也会跟着变动,这是一个随着每天的交易而变动的动态过程。

虽然筹码分布问世多年,但至今热度依旧不减。各种新闻上经常提到,也有很多同学加我问我筹码分布相关的问题。

大智慧

同花顺

东方财富

各类行情软件上的筹码分布图

基本上所有的行情软件也都提供筹码分布指标,这使得我们可以很方便的查到任意一只股票的筹码分布。

但我们做量化投资,光看这个图是没用的,一定要有最原始的数据。

只有有了筹码分布的具体数据,才能对此进行加工处理,构建各类量化交易策略。

02

筹码分布如何计算

行情软件上的筹码分布到底是如何计算的呢?

让我们回到股票发行的起点。

假设股票A以10元的价格发行1000股,那它发行时的筹码分布是这样的:

所有筹码的成本都是10元,其他价位上的筹码是0。

假设股票A开始上市交易,并且我们获取到了股票A的逐笔交易数据。股票A逐笔交易数据

第一笔交易以10.3的价格成交了300股,在这一笔交易结束之后,筹码分布会变成这样:

第一笔交易后的筹码分布

10元的筹码减少300股,10.3元的筹码增加300股。

第二笔交易以10.5的价格成交了200股,毫无疑问10.5元的筹码会增加200股,但关键问题是,这200股从哪里来呢?

这其实取决于这200股到底是从10元的价位卖出,还是从10.3元的价位卖出,亦或两者都有。

遗憾的是这个数据只有交易所知道,并且绝对不会对外公布。

所以我们从第二笔交易开始就已经算不清楚准确的筹码分布了,更何况之后更多的交易了。

所以理论上,经过以上简单的推理,我们根本画不出准确的筹码分布图。

03

行情软件上的筹码分布

既然我们都不知道筹码的准确来源,那行情软件是怎么画筹码分布图的呢?

其实方法非常简单粗暴,既然不知道卖出的筹码到底从哪个价格来,那么干脆一刀切,强制让所有价格的筹码都卖出相同的比例。

什么意思呢?比如刚刚第二笔交易以10.5元成交200股。

这200股占总股本的20%,我就从原来的所有价位都卖出20%。

经过第二笔交易后,10.3元的价位卖出20%变为240股,10元的价位也卖出20%变为560股。

第二笔交易后的筹码分布

知道第二笔交易怎么处理后,第三笔、第四笔可依此类推,只要有逐笔数据我们就能画出筹码分布图。

// 筹码分布的优化算法

有的行情软件算法会更高级一点,并不是所有价格档位都按照相同的比例卖出。

有的算法认为盈利越多的价格,越倾向于减仓。10元的盈利比10.3元高,所以10元的减仓比例高于10.3元。

而有的算法认为持有时间越长,越倾向于减仓。

当然,虽然这些算法在尝试逼近真实情况,但肯定还是有差距的。

// 筹码分布的简化算法

不过有的行情软件就没那么讲究了,会进一步偷懒。

什么意思呢?我们之前讲的算法是用逐笔数据近似的,数据量非常大。

有的行情软件为了偷懒,把一整天的交易数据合并成一笔交易数据,即当日的均价和总成交量。然后仅仅用这一笔数据,来计算筹码分布。

这样算出来的数据,是近似的近似,失真程度大家可以自己想象。

合并成一笔

04

用Python计算筹码分布

根据之前讲的原理,其实我们已经可以自己用python画出筹码分布了。

下图是我用python实现计算筹码分布的代码,代码就不逐行讲解了,如果有看不懂的地方欢迎和我沟通。筹码分布代码

筹码分布代码

我用浦发银行的数据作为案例计算其筹码分布的结果:

第一行数据代表,以126的价格(已经复权)成交的股票,占到所有股份的0.38%。

依据这张表画出来的图,能直观地表现出浦发银行的筹码分布:

上图中可以非常清楚地看到在116元附近分布了很多筹码,这个价格可能是一个重要的支撑或者阻力位。

上面的代码和数据,都可以跟我询问。

如果很多人感兴趣,之后也会讲一下基于筹码分布数据开发的量化策略,感兴趣的朋友可以直接留言。

推荐阅读

python历史性分布计算代码_量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]...相关推荐

  1. 下列可作为python变量名的是_以下选项中能用作Python程序变量名的是____________。(2.5分)_学小易找答案...

    [单选题]以下选项中能用作Python程序变量名的是____________.(2.5分) [其它]4.2.2.12 Packet Tracer - Configuring Extended ACLs ...

  2. python文件合法模式组合_以下选项中,不是Python文件二进制打开模式的合法组合是...

    以下选项中,不是Python文件二进制打开模式的合法组合是 答:\"x+\" 建立良好的谈判气氛主要是在( )阶段 答:开局 the ruling class had long b ...

  3. 贝叶斯网络python代码_贝叶斯网络,看完这篇我终于理解了(附代码)!

    1. 对概率图模型的理解 概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关的变量的联合概率分布.由图灵奖获得者Pearl开发出来. 如果用一个词来形容概率图 ...

  4. python股票自动下单软件_程序化交易之:使用python的baostock接口,实现股票自动盯盘...

    首先默认已经安装python,且版本是3.5或者以上.安装pandas: pip insall pandas安装numpy: pip install numpy安装baostock数据接口包:pip ...

  5. 量化交易中,如何使用Python计算「筹码分布」指标【附代码】 [量化小讲堂-64]

    这是邢不行第 64 期量化小讲堂的分享 作者 | 邢不行.助教林奇 本文内容也有视频版本,点击观看:量化交易中,筹码分布指标如何计算[邢不行] 记得小时候的某个暑假,一边吃西瓜,一边看港剧<大时 ...

  6. 移植 Python 量化交易 TA-Lib 库到函数计算

    TA-Lib,全称"Technical Analysis Library", 即技术分析库,是 Python 金融量化的高级库,涵盖了 150 多种股票.期货交易软件中常用的技术分 ...

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

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

  8. 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)(转)

    量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python) 原文地址:http://blog.csdn.net/u012234115/article/details/728300 ...

  9. 视频教程-python量化交易(1)-Python

    python量化交易(1) 毕业于清华大学,曾担任Google算法工程师,微软人工智能领域全球最具价值专家,微软Tech Ed 大会金牌讲师. 精通C/ C++,Python ,Go语言,Siciki ...

最新文章

  1. ptrace和wait的理解 (ptrace监控进程)
  2. linux 目录大小是12288,为什么有些目录数的引用超过3,为什么很多目录的大小都是4096...
  3. python mypy类型检查_Python中类型检查的详细介绍
  4. Larbin学习小结
  5. linux-ab压力测试
  6. TLV3501超高速电压比较器模块
  7. 微信群越来越多,我该如何科学地管理?
  8. amoeba-mysql主从复制配置
  9. JavaScript 对象 — 重学 JavaScript
  10. 格杰仁波切:修佛根本在修心…
  11. 2023 简单响应个人收款二维码源码 美化版
  12. 继微博之后,.fans建站成饭圈新宠
  13. pion ice项目源码分析
  14. 爱国html源码,鼠标点击网页爱国富强民主特效(附代码)
  15. Verilog 时钟分频
  16. 美团机器学习实践 密码_机器学习遇到密码学的地方
  17. error C4996: ‘strcpy‘: This function or variable may be unsafe. Consider using strcpy_s instead.
  18. 众昂矿业:萤石需求异军突起
  19. Java操作ElasticSearch,java程序设计教程第二版pdf
  20. 硕士论文页眉页脚设置

热门文章

  1. bowtie和bowtie2使用条件区别及用法
  2. Java基础之Map类
  3. 不再害怕面试问ArrayMap一文完全看懂Android ArrayMap源码解析
  4. canvas 画图
  5. 【Java SE 代码回顾】——day05_私有属性、公有方法、switch
  6. JAVA怎么批量更新mysql_java 关于批量更新操作的实现
  7. dotnetty java netty,DotNetty发送请求的最佳实践
  8. python 微信小程序签到系统_微信小程序签到功能
  9. 模拟卷Leetcode【普通】036. 有效的数独
  10. tp5点击事件显示弹窗