股票高开是指当日股票的开盘价高于昨日的收盘价,为什么会这样?莫不是机构背着咱们搞交易?

股票开盘价由集合竞价产生,我们知道股市开盘时间为9:30-11:30~13:00-15:00,但集合竞价时间在9:15-9:30,这意味着有一股神秘力量夜观天象,提前进行交易。

今天,咱们来做个小实验,统计一下,如果股票高开,该股票后市上涨的概率有多少。


1. 我们先下载了2022-2-7至2022-5-16的盘口数据,保存为csv文件,代码和文件如下。

import akshare as ak
import datetimedate = datetime.datetime.now().strftime("%Y%m%d")
stock_zh_a_spot_em_df = ak.stock_zh_a_spot_em()
stock_zh_a_spot_em_df.to_csv('E:\\股票盘口信息\\{}.csv'.format(date), encoding='utf_8_sig')

2. 由于csv文件每次储存的股票是乱序的,为了方便操作,我们需要把csv格式的数据转成json。

import os
import pandas as pd
import jsondef csv2json(csv_path, json_path):json_dict = {}csv_data = pd.read_csv(csv_path, encoding='utf_8_sig')for i in range(0, csv_data.shape[0]-1):json_dict['{:0>6d}'.format(csv_data.loc[i]['代码'])] = {'名称': csv_data.loc[i]['名称'],'最新价': csv_data.loc[i]['最新价'],'涨跌幅': csv_data.loc[i]['涨跌幅'],'涨跌额': csv_data.loc[i]['涨跌额'],'成交量': csv_data.loc[i]['成交量'],'成交额': csv_data.loc[i]['成交额'],'振幅': csv_data.loc[i]['振幅'],'最高': csv_data.loc[i]['最高'],'最低': csv_data.loc[i]['最低'],'今开': csv_data.loc[i]['今开'],'昨收': csv_data.loc[i]['昨收'],'量比': csv_data.loc[i]['量比'],'换手率': csv_data.loc[i]['换手率'],'市盈率-动态': csv_data.loc[i]['市盈率-动态'],'市净率': csv_data.loc[i]['市净率']}json_data = json.dumps(json_dict)f = open(json_path, 'w')f.write(json_data)f.close()file_list = os.listdir('E:\\股票盘口信息')
for file in file_list:code = file.split('.')[0]csv_path = 'E:\\股票盘口信息\\' + code + '.csv'json_path = 'E:\\股票盘口信息\\' + code + '.json'csv2json(csv_path, json_path)print(code)

 (数据保存路径格式)

3. 我们加载这三个月的盘口数据,设定阈值为2%,即开盘价比昨日收盘价高2%就算高开。同时,以高开后五天为期限,设定4档概率,上涨5%以上,上涨0-5%,下跌0-5%,下跌5%以下,分别进行统计,代码如下。

import os
import json# bidding_list 所有时间段价格波动
# time_list 所有时间点
# td 阈值
def getTimes(bidding_list, time_list, td):list_len = len(bidding_list)res = []for i in range(list_len):if bidding_list[i] > td:res.append(time_list[i])return res# 根据日期,获取后五天股价涨幅
def after5(time, price_list, time_list):rises = 0count = 6for i in range(len(time_list)):if time_list[i] == time:count = 5if count <= 5:rises += price_list[i]count -= 1if count == 0:breakif count != 0:return -1return risesif __name__ == '__main__':dayu5 = 0dayu0 = 0xiaoyu0 = 0xiaoyu5 = 0# 获取所有时间段的数据all_data = {}date_list = os.listdir('E:\\股票盘口信息')for date in date_list:if date.find('csv') != -1:continuewith open('E:\\股票盘口信息\\' + date) as f:all_data[date] = json.load(f)# 遍历所有股票code_list = os.listdir('E:\\股票数据')for code in code_list:b_list = []t_list = []p_list = []date_list = os.listdir('E:\\股票盘口信息')for date in date_list:if date.find('csv') != -1:continuejson_data = all_data[date]if code in json_data:b_list.append((json_data[code]['今开']-json_data[code]['昨收'])/json_data[code]['昨收']*100)t_list.append(date)p_list.append(json_data[code]['涨跌幅'])times = getTimes(b_list, t_list, 2)for time in times:res = after5(time, p_list, t_list)if res == -1:continueif res > 5:dayu5 += 1elif res > 0:dayu0 += 1elif res > -5:xiaoyu0 += 1else:xiaoyu5 += 1total = dayu5+dayu0+xiaoyu0+xiaoyu5if total == 0:continueprint('股价涨5%:{}%,股价涨0%:{}%,股价跌0%:{}%,股价跌5%:{}%'.format(dayu5 / total * 100,dayu0 / total * 100,xiaoyu0 / total * 100,xiaoyu5 / total * 100))

(代码如有逻辑错误请尽快留言指出)

运行程序,我们得到了神奇的结果:


股价涨5%:38.07015011547344%

股价涨0%:22.10594688221709%

股价跌0%:20.30889145496536%

股价跌5%:19.51501154734411%


结果仿佛是在告诉我们:如果一个股票高开2%以上,咱们去追高,五天内有38%的概率再赚它5%以上,更有60%的概率不下跌。但是这个实验数据量太小,三个月的交易记录还说明不了本质问题。理论上来说,股票高开并不能决定后期走势,还得从其他层面来分析。

有兴趣的朋友可以下载近几年的数据来统计一下,下载历史数据的接口是 stock_zh_a_hist ,前一篇博客有用到《使用Python获取股票解禁数据并绘制股价曲线》,记得把统计结果留言,爱你哟~

使用Python统计股票高开后的走势相关推荐

  1. 利用JanusGraph图数据库统计股票涨停板后的走势

    环境信息: 1. Java 8 2. JanusGraph 0.54 (使用Oracle Berkeley DB Java Edition作为底层存储) 3. Windows 10 一.股票数据源 注 ...

  2. Python预测股票走势

    最新代码:股票预测配套代码(jupyter版)-机器学习文档类资源-CSDN下载 视频:基于python进行股票趋势预测_哔哩哔哩_bilibili Python的功能可谓相当强大,在很多行业具有相当 ...

  3. python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...

    1 波士顿房价数据分析 安装好Python的Sklearn库后,在安装包下的路径中就能看到描述波士顿房价的csv文件,具体路径是"python安装路径\Lib\site-packages\s ...

  4. 如何利用python对股票的走势进行一个判断?

    如何利用python对股票的走势进行一个判断? 一.问题 当我们拿到沪深股票的所有股票的数据的时候,如何对所有股票的走势,做一个模糊的判断? 当然可以通过画出一个股票的走势图来进行判断.但是问题是,我 ...

  5. 利用Python进行股票交易分析(三):A股量化交易策略的验证及数据分析。

    鉴于近期空闲时间比较少,本篇文章采用不定时更新的方式来写,如大家有更好的思路也可以评论区一起讨论.... 目前进度: 2021-07-13 梳理.修改思路 2021-07-14 步骤1代码完成 背景 ...

  6. python分析股票数据 彤_Python数据分析:股票数据

    最近股市比较火,我7月初上车了,现在已经下了.中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着. 这篇文章我们就用它python 对股票数据做个简单的分析.数据集是从1999年到2016年 ...

  7. Python实现股票量化交易学习进阶(一)之基础库(知识准备)搭建

    股票量化交易学习第一篇之基础搭建 1.写在前面 1.1.Numpy库的安装 1.2.Pandas库的安装 1.3.金融数据获取 1.4.talib金融库的安装及文档链接 1.5.Matplotlib ...

  8. c++ 低位在前 高位在后_A股市场:如果股票涨停后第二天“高开低走”,你知道怎么操作才能利益最大化吗?...

    (本文由公众号越声策略(yslc188)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 如果你的股票涨停后第二天高开低走, 后市怎么操作? 简单来讲,高开低走就是开盘价高于上个 ...

  9. python股票数据分析_用Python浅析股票数据

    本文将使用Python来可视化股票数据,比如绘制K线图,并且探究各项指标的含义和关系,最后使用移动平均线方法初探投资策略. 数据导入 这里将股票数据存储在stockData.txt文本文件中,我们使用 ...

最新文章

  1. TF-IDF(term frequency–inverse document frequency)
  2. 使用kibana可视化报表实时监控你的应用程序
  3. 采用晶体管为基本元件的计算机发展阶段是,计算机应用基础知识点
  4. 前端学习(3023):vue+element今日头条管理-首页layont布局
  5. 解决: Client does not support authentication protocol requested by server; consider upgrading MySQL
  6. 一加7pro系统更新android10,一加OnePlus7T Pro官方安卓10.0稳定版出厂系统固件升级更新包...
  7. php修改隐藏域非法提交,PHP get、post变量放在表单隐藏域示例
  8. mysql 5.5 特性_MySQL5.5复制新特性
  9. 【java笔记】ArrayList类的使用
  10. POJ-1149(网络流)
  11. 打印机喷嘴清洗必杀武器
  12. 如何制作一个横版格斗过关游戏_AppStore限免推荐丨加油打工人 竞速+横版格斗2款游戏陪你过周末?_手机游戏...
  13. python新版个人所得税代码_python-计算个人所得税(示例代码)
  14. [jzoj 4246] 【五校联考6day2】san {spfa+dfs/spfa+拓扑排序+dp}
  15. extern 用法小结
  16. 【评测】SUPRAcap 100囊式深层过滤器 泽平科技一级代理
  17. 给微软免费的文本转语音网站添加下载按钮
  18. 达特茅斯计算机专业师资力量如何,达特茅斯学院计算机信息介绍 优势专业选到就是赚到...
  19. 卡尔曼滤波引出的RTS平滑
  20. 算法第十期——DFS(深度优先搜索)的剪枝优化

热门文章

  1. Excel PivotTable 使用心得手顺分享(二)
  2. StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践
  3. 使用Ubuntu自带Disks工具扩展(扩容 )Vmware中ubuntu 20.04的硬盘空间
  4. 致我们失去但美好回忆的青春
  5. php 条形码在线怎么生成,php实现在线生成条形码示例分享(条形码生成器)
  6. 胶体金纳米颗粒粒径为20~80 nm齐岳生物提供单分散,小粒径及不同粒径大小的金纳米粒子AuNPs
  7. Python分析薛之谦与李雨桐互撕微博
  8. 接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。
  9. 自由职业接单,大平台,有保障
  10. 读书笔记-深度学习入门之pytorch-第四章(含卷积神经网络实现手写数字识别)(详解)