Python Insider Trading Analysis — Step-by-Step Guide & Transcript

【邢不行】跟着公司高管买他家股票能赚钱吗:增持后股价怎么走(三)80000条大数据、原始数据整理、python数据分析

0h 22m video Published Apr 3, 2020 Transcribed Sep 14, 2026 量化投资邢不行啊 量化投资邢不行啊
400 views Recent velocity 0.0 views/hour View full performance history →
Intermediate 5 min read For: Data analysts and investors with basic Python skills who want to learn how to analyze insider trading data.
AI Trust Score 75/100
⚠️ Average / Some Fluff

"The title promises a data analysis tutorial, and the content delivers exactly that—a practical walkthrough of analyzing insider trading data with Python."

AI Summary

This video demonstrates how to analyze stock price data using Python, focusing on insider trading patterns. The creator walks through importing data, cleaning it, and running a loop to test various parameters, ultimately revealing that executive stake increases can predict outperformance.

[00:00:52]
Importing Data

Use pd.read_csv() with encoding, parse_dates, and nrows=1000 to load data efficiently.

[00:01:54]
Renaming Columns

Rename columns for clarity, such as converting 'change relative to index' to a meaningful label.

[00:17:20]
Key Finding

Executives increasing stake by >2% leads to 14% outperformance over 80 days.

[00:18:22]
Looping for Analysis

Use loops to test different parameters (e.g., shareholder type, percentage) and save results as images.

[00:21:06]
Conclusion

The main conclusion is that insider buying by executives is a strong signal, but data preparation is the hardest part.

Mentioned in this Video

Tutorial Checklist

1 00:00:52 Import data using pd.read_csv() with encoding, parse_dates, and nrows=1000.
2 00:01:54 Rename columns for clarity, such as converting 'change relative to index' to a meaningful label.
3 00:18:22 Run a loop to test different parameters (e.g., shareholder type, percentage) and save results as images.
4 00:19:52 Interpret the generated images to identify patterns, such as executive stake increases leading to outperformance.

💡 Key Takeaways

📊

Executives' stake increase leads to outperformance

This is a concrete, actionable finding that can directly inform investment strategies.

00:17:20
🔧

Using loops to test multiple parameters

This demonstrates an efficient way to explore various scenarios without manual effort.

00:18:22
💡

Data preparation is the real challenge

Highlights a common pitfall in data analysis that many overlook.

00:21:06

[00:00] 好那么再来我们就要看这个股价到底怎么走了 股价到底怎么走的话呢

[00:13] 我们就需要使用我们那个Python分析讲代码了 这个叫讲代码来处理 我们打开我们的Python Python应该开启了 大家可以看到我这边用的还是2018年版本的Python

[00:27] 就是你不要去乱更新 就是就一点没关系的 我们的代码和我们这个数据的样本 我到时候都是可以发给你们 你们之后可以加我微信和私信 问我这个数据都可以发给你 包括代码都是可以给你的

[00:40] 好吧 我们接下来就来讲 这个分析数据的一个程序 好吧 刚刚带大家看了这个数据 然后我们这个分析数据第一步 第一步就是要导入这个数据

[00:52] 导入这个数据很容易 我们用这个Panels里面的一行代码 这个pd.read.csv 这个方法就可以导入数据 然后这边 写我们这个数据的名称 对吧 然后它的一个encoding gdk就是它的一个编码

[01:04] 然后part state的话 就是我要把这个公告日期 这一列识别为日期的吧 然后这个unload这个参数 就是我一开始 只导入这个数据的1000行 前1000行 因为我们这个数据

[01:16] 它比较大对吧 我每次读入 全部读入的话 就会比较慢 所以我们一开始写代码的时候 我们就只导入前面的1000行 这样的话 我整个程序会跑起来快一点 特别是在我这台 这样比较破的情况下 对吧

[01:29] 这样的话我们把导入的数据给trim出来 大家看一下 好你看这个就是导入的一个数据 它只有前1000行

[01:42] 只有前1000行对吧 我们刚刚所有的数据 它都一列一列导入了进来 什么 因为这个操作就是打入一次 对吧 我们打开那个刚刚WPS打开了这么慢 但我们这个程序独裁就是快

[01:54] 好吧 导入数据 导入数据之后呢 我要对我某些列进行重命名 就是比如说我刚刚的有一个什么 实在相对于指数的涨跌幅

[02:06] 这一列的数据 我们要进行重命名 我还把这个数据打开一下 我打开我们样本的数据 我把7万条数据 我抽了2000条做一个样本 这样的话打开的话就会快一点

[02:20] 这样看着这个样本 大家就好容易理解一点 就是我们刚刚讲的这边

[02:34] 不是有他一个那个 我们计算的收益码 对吧 其实我们关心的是 他相对于指数的一个涨跌幅 就是这个公司 他发了公告之后 他本身个股的涨跌幅

[02:46] 其实我是不关心的 我要看他到底是不是跑赢了大盘 对吧 他拿他跑 他拿他涨个50% 跟我也没关系 因为它如果同期大盘 如果我也想达到这50 它就等于没转了 对不对 所以我们要看的是 它的转幅减去指数的转幅的

[02:59] 这个相对的一个转幅 对吧 所以我关心的是这个相对转幅 我现在是对这个列进一重新名 它现在这个名字叫什么 50代相对指数转变幅 这个名字太长了 对吧 我就把它改成50 对吧

[03:11] 比如说10代的话 我就改成10 20代的话呢 就改成20 对吧 然后把这个所有都改一改名字 对吧 然后我这边通过这个 我们panel里面 Rename的方法 Rename就是重命名的方法

[03:24] 我把这个 我导入数据的里面的这一个 内几列 重命名一下 对吧 这样的话我们就看起来方便一点

[03:37] 你可以看到这个输出的结果 你看这个输出的结果 它这边就是10了 对不对 10 20 就是这样的一个列名 好吧 那么这样的话呢 就我们这样就要进行筛选了

[03:50] 对不对 我们先不筛选 我们针对所有的数据 我们导入的所有的数据 当然现在已经导入了1000行 对吧 我们考察的结果是这几列数据 对吧 我们考察的转换符

[04:02] 我们首先呢 要看一下它的一个数量 对吧 就是我把 我选中了这几列 我把我选中了这几列 我要看一下它的一个数量

[04:18] 这是我选中的那几列 对不对 然后呢 我想看它每一列里面 到底有多少行 对吧 那很简单 我就用一个 有个函数叫做count 有个函数叫做count 通过这个count的函数

[04:32] 我就能知道 我这里面到底有多少行 你看这边就是会出来它的函数 这个上面是我们要分析的一个数据

[04:46] 10 20 30 40 50 每一个数据都是 它那个公告之后的一个收益情况 并且是相对指数的收益情况 然后我们这边看了它有多少行 然后大部分都是1000行 因为我们只导入了1000行的数据 但是有些呢

[04:58] 也数会变成900多行 这是为什么 特别是最后200天 200天做的收益只有900多行 中间还少了八二几 这些数据去哪里了 这主要是因为 有些股票发了公告之后

[05:10] 它到今天为止 还没有满200天 对吧 这样的话呢 这个数据就是缺失的 就是空止 所以我们没有统计进来 然后呢 如果我想看这个公告之后

[05:22] 10天的一个收益的一个平均值是多少 对吧 平均值是多少也很简单 我们就只要 把这边的count改成另外一个乘数me就行me不就是英文里面的那个平均值吗对不对我就要这样算一算我就能知道我所有的这些数据

[05:39] 它的一个平均值是多少 对吧 就比如说我这里面的 就算出来一个平均值 对不对 我10天之后的平均的超额收益是0.01 这是多少 1% 对吧 这个其实已经不低了

[05:51] 百分之1不低了 就相当于是我把insider里面的 这一列数据 这一列数据 我求他的整体的一个平均值 对吧 整体的一个平均值 对吧 我发现是1% 就是说只要你发布公告之后

[06:04] 这个股票在10天之内 他的涨跌数是超过大的1% 对吧 然后呢 我们还可以去看一下他的一个胜率 胜率

[06:16] 就是我到底在我10天之后 对吧 我10天之后 有多少天股票是上涨的 是跑赢大盘了 对吧 多少天的股票是没有跑成代码

[06:28] 我看一下一个胜率 然后胜率这个代码计算起来稍微有点复杂 我这边就不去讲了 大概是四五行代码 但反正也不是那么复杂 你自己去看代码 可能你看了懂 但我这边就不讲了 然后我们把胜率

[06:40] 什么数量 以及N天后的平均涨跌幅 放到统计结果里面去 我们大家看一下统计结果 然后这边就是一个统计的结果

[06:55] 就是比如说我有一千行的真实检测的数据 然后这一千行 他在N天之后 一个十天之后 他的平均涨幅是1% 然后N天后的胜率是53% 对不对 然后20天的收益是这么多

[07:09] 然后20天的胜率是这么多 当然这个只是一个初步的统计分析 还没到策略的一个部分 然后我们也可以把这个图给画出来 我们把这个平均涨幅的一个图给画出来 然后你看这就是一个平均涨幅的一个图

[07:28] 它的横轴就是不同的天数 10天20天 然后200天 纵轴就是它的一个平均的一个涨幅 对吧 就是我在发出公告之后 10天之内的平均的一个涨幅

[07:41] 比如这边是0.1什么的 但这个图你看没有什么规律 对不对 因为我们数据 我们只取了前面的1000行 对不对 我们只取前面1000号数 因为没有参数是n nrho 等于1800

[07:53] 这个去掉 这样的话 我们就读取全部的行数 就所有的表里面的行数 我们可以来看它的一个结果 好了 我们一开始只是到统计分一这一层面

[08:08] 之后才会设计到策略 因为你就开始了 初步的统计 你才会知道后面的一个结果 你看这个就是一个它统计的结果 这统计结果就是说 我只要发布公告 我就买入这个股票 对吧

[08:20] 然后在10天之后 它的转接幅是多少 对吧 10天之后是0.5% 对吧 然后是这样的一个图形 你可以看动作 动作这个最高 也就是到2%左右 然后其实不是那么明显的

[08:33] 一个情况 好吧 那么下来我们就要去 进一些筛选了 对不对 因为我们刚刚是 把所有的数据都放进去了 那么我想看增持和减持的 对不对 比如说我在这边 我要增加筛选条件

[08:46] 那我就可以 对我这个数据进行筛选 我通过这样一行代码 就是我这边买卖方向这一列 这是我这边的买卖方向这一列 对吧 我只让它等于增持的情况下

[08:59] 我给你direction 我只让它等于增持 对吧 只有它等于增持的时候 我才会去统计它的结果 那么这个时候 我们来看一下方向的结果 好 大家看这个就是输出结果

[09:11] 你看这个就是增持的一个结果 真实的结果就明显比刚刚要好很多 你看就是我们真实 首先这边有个数据是

[09:23] 大概真实出现的次数 大概是两万三万次左右 对吧 三万次左右 然后这个图是这样的 你可以看到 它比如说在真实公告出来之后 我买入股的大概70天左右

[09:36] 它的收益超额收益 而且是超过大盘的收益 有3%左右 那么这个其实是非常多的 一个超额收益了 已经有3% 就是我只要70天的交易

[09:48] 大概是两个半月 我就可以跑赢大盘3% 是吧 那你可以算一下 全年我能够跑赢大盘多少 这其实是一个非常高的收益 然后到今天是最高的 然后就是就会往下降 然后再慢慢的上升 是这样的一个趋势

[10:01] 你就对这个图 大概有一个印象 这个是我们程序 自己跑出来的图了 这个图的代码 我就不讲了 因为说实话 我这个代码 我也不怎么会会会写 我都是让同事帮我写好 我自己抄抄改改 就就这样了

[10:13] 我做图的代码 我是不怎么会写的 好吧 然后我们继续来分析 我们的思路 对吧 我们刚刚看了增持 我们再来看一下减持 对吧 增持是这样 那减持是不是 它的平均收益会跌呢

[10:26] 对吧 我们把这个direction 减持 这样的话呢 我们跑出来的结果 就是减持的一个结果 好吧 我们来看下结果 好 我们首先看到 这个减持的数量 它你看 有四万多次 满足条件数

[10:38] 四万多次 那减持的数量是这样子 是吧 那这样的话 这个图你就其实和我们的预期的 有点不大一样 你看我们预期的减持 是这个股票跌的 但是你发现这个股票好像

[10:51] 一开始30天的时候是跌的 对吧 但是跌的也不多 是很小很小的一个值 跌了0.25% 对吧 跑出大盘0.25但是往后就是涨的对吧所以你通过这个数据就知道就知道减持至少不一定是坏事对吧

[11:11] 他对股价的影响没有那么大 所以我们之前举的那个案例 就是减持之后 他股价跌这么多 其实不一定是对的 好吧 这个就是减持的一个情况

[11:23] 那么我们刚刚看了真实减持 对吧 还有什么途径 我可以看股东的类型 对吧 我们数据里面不是有这个 股东持有人类型 分别为一二三 一的话是代表个人公司股东

[11:36] 比如他是创始人 或者这个是一个大散户 他买了一个公司 很多的股票 或者说公司的机构 公司和机构 比如说家公司自己本身 持有他自己的股票 他可以通过这些代词 以及一些机构

[11:49] 比如说我一些基金公司 他买了家公司 很多的股票 他就是也是大股东 那么还有就是公司高管 公司高管是编号是三 公司高管 那么我们来看看这些人 他的真实和简直对我们的情况有没有什么影响

[12:04] 比如说我们就来看一 我们看一是个人大股东 对于这个真实的一个情况 好吧 个人大股东真实股票之后 他的表现会怎么样 好 你看这是一个结果

[12:16] 首先看数量数量大概是四千二左右 这个数量不是很多 就个人大股东真实公司的情况不是很多 你看这个结果好像不是那么明显 对不对

[12:28] 好像不是那么明显 你可以自己去到时候自己去看 这个代码都是给你的 然后我们可以再来看二 二的话就是机构 我们看看机构有没有什么 给我们惊喜 机构的话数量就比较多

[12:41] 有一万多次 然后你看它这个机构 好像也不怎么样 它涨的时候也没涨多少 最多的是涨了1% 超了1% 但是后面就开始往下走了 但这个具体原因其实我不知道 我对这个图没有办法解释

[12:54] 你要去解释的话 你必须得去看原始的数据 比如说你得把这个机构的 那个案例得找出来去 一个一个的分析 多看几个案例 这种东西才能解释 我目前没办法解释 这个图为什么会这个样子 它跟我们直观理解不一样

[13:07] 是吧 然后我们再来看 比如说我一和二 是吧 我一和二 它就是一是个人股东 又是公司股东 对吧 反正它是股东 对吧 我就看这个 只要你是股东

[13:19] 真实解释会怎么样 真实 这边是真实 好 我们看到这样一个案例 好像也没有什么特殊的一个一个规律啊

[13:31] 对因为那个机构的比较多 所以他这个更像是一个机构的一个趋势 那么就来看三三的话是公司高管 公司高管增持一家公司会怎么样 好这个结果就不错啊

[13:46] 这个结果就不错 大家看这样的一个结果 你看公司高管增持 首先看出现的次数啊 出现次数首先不少 有一万多次对吧 然后你看这个结果是非常好的一个结果

[14:00] 在70天 就两个多月的时候 超额收益7% 接近于7% 这个是非常高的一个数字啊 就是我只要公司的高管 我去买这家公司的股票

[14:13] 平均持有70天之后 他能够涨7% 对吧 那这个数据就是非常好的一个数据 我们之后就可以基于这样一个统计 来构建相关的一个策略 对吧 那么我们也可以再来看看高管减持

[14:26] 会怎么样 是吧 高管增持效果的话 那么高管减持 会不会有反向的效果 反向效果明显度 也是很不错的 OK 你看 是吧 说明也不错

[14:41] 高管减持 这个公司股价确实跌了 但是有一个不好的地方 就是它跌的不多 是吧 你看它跌的最多的 可能有只有跌1% 就是超跌1% 大盘跌1% 比刚刚的那个涨7%

[14:54] 就差得远了 所以就是高管减持的话 会有点效果 但没有我们想象中的预期度那么好 就那么好 那么接下来我们刚刚看的是增持减持 以及股东类型

[15:07] 我们还可以看什么 我们还可以看的是变动的比例 就是你一个高管 或者一家一个股东 你增持和减持 你买多少是不一样的 有的人可能只买几百股 有的人买很多钱

[15:20] 那这个算法做的信息是不一样的 那么这个时候我们就可以进一步筛选 比如说我们对于公司高管增持的情况 对吧 我们来看一下这个股市 那个他的变动的比例

[15:32] 对吧 比如说他大于0.0%的情况下 就是他买入的股票 大于流通股0.0%的情况下 我看这种情况下 他会不会有额外的更好的表现

[15:45] 我们来看这明明 这个大概有6000多次 6000多次 好我们来看这个结果 这个结果好像跟刚刚不加这个条件 没有什么差别 最高都是0.7左右 对吧 最高都是0.7左右

[15:57] 好 那么我们就继续提高这个值 比如说我提高成0.05 对吧 就0.05% 我们看看会不会有进步提高 0.05的话 有大概3600多次

[16:10] 次数也不少 然后你看这个图 比刚刚好一点 超过了0.7 但其实好像也还没有太大的提高 对吧 那么我们再来夸张一点 我们1%

[16:22] 高管持股 增持超过1%的情况 我们看它的平均收益多少 这个时候你会发现 它的那个次数就会比较少了 只有200次 然后这个结果就会比刚刚好很多最高的话基本上到了0.9左右对吧到了0.9左右你不要小看这1%的增长其实是一个很大的一个增长

[16:44] 很大的增长 对吧 那我们再再夸张一点 我们2% 好了 我们来2% 就是我们现在只是处于

[16:56] 对这个数据的统计分析的状态 拿到一个数据 我们需要去初步的一个统计分析 你可以看这个结果 2%的话呢 出现了75次 历史上出现的次数非常少

[17:08] 但是正因为他少 他的结果非常好 你看像最多的时候 达到了接近14% 是吧 就说明这个高管 他增持一家股票的股份

[17:20] 超过2%的时候 我去买这家股票 他能够在接下来的80天 基本上也就是 大概4个月的时间内 它可以跑赢大盘

[17:33] 百分之十四 是吧 这是一个非常非常好的一个数据 那有了这样的统计结果 我们之后构建策略 就可以往这个方向走了 对不对 好 那么当然我这边

[17:45] 你可以自己去尝试 其他的一个值 你可以去尝试其他的一个值 你可以去试一下 然后呢 并且有的同学他想说 他想说什么呢 我们刚刚只是试了 比如说高管增值减值

[17:58] 对不对 但我没有试过什么公司股东的增持减持 对吧 我也没有试过公司股东的 这个什么大于2%的 这个增持减持情况到底怎么样 对不对 这些都有可能 比如说可能比高管更好

[18:10] 对不对 那么这个时候 我如果自己一个一个去试 就就有点傻了 就因为这个情况非常多 我不可能自己改个参数 然后去跑 对吧 那么这种时候呢 我们就可以借助我们的程序 我们可以写个循环

[18:22] 我们可以写个循环 然后呢 前面代码是一样的 它都是导入这个数据 导入这个数据 然后我循环 我用增持减持 然后这个

[18:34] 12 12 12 还有3 就是各种类型 对吧 然后这个 我增持的比例 我有这种各种可能性 对不对 我每个都给它 给它便利一遍 对吧 我每个都给它便利一遍

[18:46] 后面代码基本上是一样的 然后后面呢 我就 我就不输出这个图片了 我不把这个图片输出来 我把它保存下来 我把它保存成图片 这样我可以方便人看 你通过这个 这个这个size的方法 这个版就刚做的图片

[18:59] 就保存到这上面去 好吧 我们直接来运行 你看他就这样一个一个的运行 程序运行是非常快的 然后你可以看到 我们这个文件夹里面

[19:11] 咱看他这个图片就在增加 对吧 他跑一个跑完一个 就加一个图片 跑完一个加一个图片 和我们这边是对应起来的 然后你看我们这个图片的名称 就是我们相应的一些参数

[19:24] 比如说你看这张图片 对吧 它就是增持 然后11的话就是个人股东 对吧 0.01就说明我是买入1%的 0.01%的股票 然后2654就说明它出现的数量是2654次

[19:38] 对吧 所以这个图片名称就是代表了它的参数 对吧 然后我们这个程序运行完了 它总共出现了多少个图片 我看一下 它总共出现了大概40个图片

[19:52] 对吧 40个图片 然后呢 我们可以稍微看一看啊 就是试着图片 是吧 你可以从头到尾去看一眼 看看哪一最好 效果到底怎么样 真实简直好 还是什么什么好

[20:04] 对吧 你通过这些图片 你就能够发现明确的规律 然后发现了这些规律呢 我们就可以基于这些规律 去构建我们后面的策略 对吧 这个这边我就不详细讲了 到时候我可以把这些图片发给你

[20:16] 你可以自己去看一下 有什么规律啊 你可以自己看有什么规律 然后 我们大打部分就这么多 大打部分是比较简单的 我们接下来就讲我们的这个结论

[20:28] 首先主要结论就是说 真实总体上确实是有超额收益的 就是真实总体上确实是有超额收益的 我们刚刚看了对不对 然后呢我们高管的行为

[20:41] 不管是真实还是简直 相比于其他另外两个股东都非常非常的有效 并且高管我真实的股份越多 它的效果就越显著 对吧 这会我们刚刚得出来的结论

[20:54] 对吧 然后呢 并且你可能就是你看我刚刚那个编程的过程 你可能觉得这个代码也不难 对吧 这个代码其实说实话真的不难 你那个可能你在一个事项里面 自己就能就能就能操作 对吧 但难的是什么呢

[21:06] 难的是你得把你的数据整理成我这个原数据的样子 对不对 你得把这个后面这样掌握的这个数据给整出来 这个是比较难的 这个是需要写代码的 我这边就不展示了 对吧 更难的是什么呢 更难的是你有这个原数据

[21:18] 对吧 没有这个原数据 什么都买单 好吧 这边好像在在秀什么东西啊 其实不是这个意思 好行 那么这样的话呢 我们就讲完了

[21:31] 对于这个数据分析的一个结论啊 并且并且他也也有一些主要的结论 然后我接下来要讲的就是 我原本不准备在直播里面讲的

[21:43] 但是因为那个昨天昨天放了个歌子嘛 所以今天就就会额外的讲一讲 就是我给大家提供更多的分析 这个增减值数据的一些思路啊

[21:55] 除了我们刚刚说的那个增持减值 什么买卖方向 持有人类型 以及变动数量占比 什么之类的这些简单东西 它其实还有很多的思路 这些思路都可以帮你去构建策略

More from 量化投资邢不行啊

View all

⚡ Saved you 0h 22m reading this? Transcribe any YouTube video for free — no signup needed.