数据分析编程从到:股票上涨分析

"数据结构和样例数据: [图片] 其中 sid 是股票代码,tdate 是交易日期,close 是收盘价。 1. 查找股价上穿中位数 T 日股价中位数是指从上市日收盘价到 T 日收盘价的中位数。 .."

数据结构和样例数据:

其中 sid 是股票代码,tdate 是交易日期,close 是收盘价。

T 日股价中位数是指从上市日收盘价到 T 日收盘价的中位数。

T 日股价上穿中位数是指 T 日收盘价大于 T 日股价中位数,T-1 日收盘价小于 T-1 日股价中位数,或者 T-1 日收盘价等于中位数但 T-2 日收盘价小于中位数,依此类推。

现在要查找 600036 这支股票满足股价上穿中位数的交易日期、收盘价和当日股价中位数。

以 Mysql 数据库为例写出 SQL:

有些数据库(如 Oracle)提供了 median 函数,SQL 会稍简单,但也需要四层子查询配合窗口函数完成计算:

要计算 T 日股价中位数,就要找到从上市日到 T 日收盘价的集合。无论是第一个 SQL 采用的连接计算,还是第二个 SQL 采用的子查询,都是比较绕的思路。

更自然的思路是:将这个股票的数据按交易日期排序,从第一条到 T 日(比如 2016 年 1 月 15 日)的 close 值组成的集合,就是 T 日对应的目标集合:

但是,SQL 的集合化不彻底,没有游离记录及其集合的表示方法,不能用原集合的成员构成新集合再进行计算,实现不了这种思路,只能用连接或者子查询来实现。

SPL 集合化更彻底,且支持有序集合,很容易实现这种思路:

A2:循环函数 derive 支持跨行引用,close[:0] 表示从 A1 第一行到当前行的 close 值构成的集合。这就是思路中的上市日到 T 日的全部收盘价,不需要使用连接或者子查询就可以得到。

而且,SPL 也提供了 median 函数,计算集合 close[:0] 的中位数很方便。

类似地,光标落在 A2 时,可以在右边面板中看到其计算结果:

A3 先过滤掉收盘价和中位数相等的记录,然后查找上穿中位数的记录,这里也使用了跨行引用,close[-1]<median[-1] 表示上一行的收盘价小于对应的中位数。

上升波段的计算需求:

输入参数是交易日的个数 W;

一个波段是指连续的多个交易日组成的区间;

某交易日是“W 个交易日新高”,是指这个交易日收盘价比前 W-1 个交易日都高。

某交易日是一个波段中的新低,是这个交易日收盘价比波段内更早日期的收盘价都低。

某交易日在 W 日内必创新高,是指这个交易日后(包括当日)W 日内,会出现至少一个“W 个交易日新高”。

上升波段须满足以下条件:

波段中至少有一个交易日在 W 个交易日内必创新高;

波段的起点价格最低,终点价格最高;

波段最短不低于 W 个交易日。

现在给定 W=5,要找出 300469 这支股票所有上升波段对应的起止日期。

这个计算要找到新高、新低、起点、终点等多个记录位置。如果用 SQL 的话,要反复造出序号再用条件选出,即使能实现,代码也会非常繁琐,这里就不写了。

查找上升波段的思路:将这支股票的数据按照交易日期排序并增加列 high1 和 high2 作为新高和必创新高的标志。第一次循环计算,如果当前交易日收盘价大于前四个交易日,就将 high1 置为 1,否则置为 0。第二次循环计算,如果当前交易日之后的 W-1 个交易日内出现 high1 为 1 的记录,则将 high2 置为 1,否则为 0。计算结果:

结果中 high2 连续为 1,且长度 >=W 的区间,就是 W 日内必有新高的波段,比如红框的部分。接下来就在这些波段中找目标波段。

如果其中某个波段没有出现新低,就是目标波段了。

如果波段有新低,我们可以在第一个新低之前找第一条 high1 为 1 的记录位置序号 y。如果 y>=W,那么这个波段的前 y 条记录就是目标波段。

然后用第一个新低之后的所有数据组成一个新的波段,再按照同样的方法继续寻找目标波段,以此类推。

很明显,这样的过程需要采用递归函数计算,简单的 SQL 递归语句无法实现,借助存储过程也会非常困难,这里就放弃了。

SPL 有序号定位机制,也支持函数的递归调用,很容易实现这种思路:

>W=5

=create(start,end)

for A4

=stockFunc(A5)

func stockFunc(stockSet)

=[]

if B9

10

11

else

12

return B8

A3: 利用循环函数中的跨行引用机制,简单用两个表达式就能按照上述思路计算出 W 日新高的标志 high1、 W 日内有新高的标志 high2。

A4 中的 group@o 是相邻记录分组,相当于按照原来的顺序,合并 high2 相同相邻记录。然后过滤出 high2 为 1,且长度 >=W 的分组,也就是 W 日内必有新高的波段。

A5 循环处理 A4 的这些波段,调用子程序 stockFunc 继续寻找上升波段,子程序的参数是 A5 当前成员。C5 把子程序返回的结果写到 B4 的结果集中。

SPL IDE 支持进入子程序单步执行,光标在调用子程序的格子 B5 时,点击菜单栏上的“单步进入”按钮即可:

在子程序 stockFunc 中,B8 利用跨行引用机制,查找 stockSet 集合中收盘价新低的位置。

C9 中 x、y 是临时变量。x 是新低以前的记录集合(包括新低),y 是 x 中第一条 high1 为 1 的记录位置。按照前述思路,如果 y>=W,那么 stockSet 中前 y 条记录就是符合要求的波段,加入结果 B7。

子程序中同样可以在预览窗口观察计算结果:

C10: 按照前述思路,用新低以后的数据组成新的波段,作为参数调用 stockFunc 继续查找目标波段。这是对 stockFunc 子程序的递归调用。

C11: 若没有新低且长度 >W,则整个集合是一个目标波段,加入结果。

THE END
0.python数据分析Pandas案例之股票分析pandas股票python数据分析Pandas案例之股票分析 本案例总结涉及Pandas重要知识点如下: 需求如下: 1.使用tushare包获取某股票的历史行情数据。 2.输出该股票所有收盘比开盘上涨3%以上的日期。 3.输出该股票所有开盘比前日收盘跌幅超过2%的日期。 4.收益计算 5.双均线策略制定 必备概念 要求如下: 1.计算该股票历史数据的5日均线和30日jvzquC41dnuh0lxfp0tfv8Rcikijcwdnkw5bt}neng5eg}fknu5269:47988
1.京东美股盘前涨超3%京东美股盘前涨超3%。 文章来源:东方财富Choice数据 责任编辑:98 郑重声明:东方财富发布此内容旨在传播更多信息,与本站立场无关,不构成投资建议。据此操作北交所顶格打新居然只能中碎股 湾芯展开幕式暨半导体产业发展峰会 一键关注财经大咖 热点推荐 央行:前十个月社会融资规模增量累计为30.9万亿元 人民币贷款jvzquC41hktbplj0gcyuoxsg{0ipo8f142863:6557<48=95474ivvq
2.#读取股票代码601668,20170101至201801从股票交易数据表trd_data中读取股票代码为601668,时间在2017-01-01至2018-01-01的交易数据。 将读取的数据按日期升序排序(从早到晚)。 计算涨跌趋势指标:对于每一天,用下一日的收盘价减去当日的收盘价,如果大于0则标记为1(上涨),否则标记为-1(下跌)。 jvzquC41ygtlw7hufp4og}4cpu}ft8}2je86py{|
3.近期呈现强势上涨趋势,近20日股价从5.96元快速拉升至15.2元,累计$海峡创新(300300)$近期呈现强势上涨趋势,近20日股价从5.96元快速拉升至15.2元,累计涨幅超155%,期间多次出现单日10%以上涨幅,显示强劲多头动能。价格已突破前期高点12.97元,当前阻力位上看16元附近,短期支撑位位于13.3元(11月13日收盘价)。K线组合显示连续阳线伴随跳空缺口,短期均线呈多头排列,技术形态偏强。鉴于近期jvzquC41ecogwqfq0ggtvvtpg{4dqv4pgyy0497733764<9246697<955;6
4.条件选股今日股票涨幅大于3%小于5%; 不要ST股及不要退市股; 量比大于1;换手率大于5%小于10%; 流通市值介于50亿-200亿 4.00% 11022 总市值大于等于30亿小于等于100亿;归母净利润>0;扣非净利润>0;连涨天数大于等于1天小于等于20天;每股净资产>0 1.64% jvzquC41zwgoi~3gcuznqwj{0eun1
5.双轮驱动的历史性交汇点。12只股票收获“20cm”涨停板今日(11截至收盘,今日共12只股票收获“20cm”的涨停板,包括红相股份、中富通、江龙船艇、容百科技、中孚信息、海峡创新、博睿数据、宣亚国际等。 最早封住涨停的是中富通(300560),该股早间开盘即涨停,开盘后股价有所回落,在9:34很快封住涨停。至此,该股已连续录得2个涨停板,最新收盘价创近3年来新高。 jvzquC41zwkrk~3eqo572A>2358488883;977A;Aawmda|twtek>wphdckjvejwf
6.0603练习题小猿取经林海峰老师1、使用tushare包获取某股票的历史行情数据。2、输出该股票所有收盘比开盘上涨3%以上的日期。3、输出该股票所有开盘比前日收盘跌幅超过2%的日期。4、假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何? 答案: Copy importnumpyasnpimportpandasaspdjvzquC41yy}/ewgnqiy/exr1zkgp{~fpswpjpp4r13776@>3;0nuou
7.#量化投资股票分析、双均线策略、人口分析项目、消费记录分析 数据分析项目案例股票分析小结: 需求:使用tushare包获取某股票的历史行情数据。输出该股票所有收盘比开盘上涨3%以上的日期。输出该股票所有开盘比前日收盘跌幅超过2%的日期。# 需求四:假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出jvzquC41dnuh0>6evq4dqv4vqrod1uncpinvc}tw|k7/j}rn
8.百度美股盘前涨3%百度美股盘前涨3% 专业金融数据,下一代智能终端 每经AI快讯,11月18日,百度美股盘前涨3%,三季度,百度首次披露AI业务收入,显示同比增长超50%。jvzquC41hktbplj0gcyuoxsg{0ipo8f142863:6:57<88<=:634ivvq
9.数据港11月13日快速上涨  11月13日,数据港盘中快速上涨,5分钟内涨幅超过2%,截至14点35分,报30.88元,成交3.73亿元,换手率1.72%。 注:以上信息仅供参考,不对您构成任何投资建议。 文章来源:东方财富Choice数据 郑重声明:本信息来源于东方财富Choice数据,相关数据仅供参考,不构成投资建议。东方财富网力求但不保证数据的完全准确,如有jvzquC41hktbplj0gcyuoxsg{0ipo8f142863:6557<46?<:;24ivvq
10.全球要闻:美股齐反弹芯片股跑赢大盘获美银逆市看好苹果涨超3%美东时间周四(1月19日),受科技股普涨推动,美股三大股指集体收涨,纳指涨超1%抹平年内跌幅,纳指100指数首创历史新高。 截至收盘,道指上涨201.94点,涨幅为0.54%,报37468.61点。纳指上涨200.03点,涨幅为1.35%,报15055.65点。标普500小幅上涨41.73点,涨幅为0.88%,报4780.94点。 jvzquC41uvudm762lsqb0lto0et0w|xvqeq04976237:1l;764;68=80ujznn
11.002309股票分析重点简报日期:2025年11月13日|当前价:4.22元当前在东方财富看资讯行情,选东方财富证券一站式开户交易>> 002309股票分析重点简报 日期:2025年11月13日 | 当前价:4.22元 图表使用说明: 1. 实时监控:将图表中的关键价位(如4.50元、4.00元、3.85元)设为股价预警。 2. 按图操作:当价格触发某个条件时,直接参照对应路径下的指令行动,避免情绪干扰。 3. 核心:本策略的关键在于纪律,尤其是在下jvzquC41ecogwqfq0ggtvvtpg{4dqv4pgyy0497733744<7;72<8;=89:66
12.红利量化策略的优化1.前言昨天写《我的投资实盘20250622》中按照每月最后一个交易日来调仓,而调仓测算的价格是收盘价。 这是一个理想化的数据回测,假设最后一个交易日快收盘时计算并快速调仓。 实际操作中,我往往是在每月初第一个交易日开盘时进行调仓,虽说跟前一交易日收盘价会有一定的出入,但考虑到这么多只股票、这么多次操作,因此长期而言影响几乎可以忽略。 jvzquC41zwkrk~3eqo582A86;:=35885;8;49A9
13.R汇车1(400245)股票价格行情全球股市 上证:- - - -(涨:- 平:- 跌:-)深证:- - - -(涨:- 平:- 跌:-) 数据中心 新股申购新股日历资金流向AH股比价主力排名板块资金个股研报行业研报盈利预测千股千评年报季报龙虎榜单限售解禁大宗交易期指持仓融资融券 jvzquC41swuug7jcuvsppn~0eqs0s85062636>3jvor
14.HarbourVestGlobal(HVPD)股票历史数据:历史行情,价格,走势图表历史数据 拆股历史 所属股指 HVPD历史数据 时间范围 1日 下载 2025-10-14 - 2025-11-14 日期 收盘 开盘 高 低 交易量 涨跌幅 2025年11月14日 37.90 38.20 38.10 37.90 0.46K -2.45% 2025年11月13日 38.85 38.70 38.85 38.65 0.58K -0.77% 2025年11月12日 39.15 39.30 39.30 38.85 0.16K -0.06% jvzquC41ep4jpjuvkth0lto1gwvk}ngu1nbtktwtxktv6lnqdgm/ywkxczf/nvwkv.jrxvqtodcu2fcvg@eri?33773=5
15.【红相股份:股票连续三个交易日收盘价格涨幅偏离值累计超过30%【红相股份:股票连续三个交易日收盘价格涨幅偏离值累计超过30%】金十数据11月18日讯,红相股份公告,公司股票连续三个交易日内收盘价格涨幅偏离值累计超过30%。经核实,公司2025年前三季度营业收入为1.91亿元,比上年同期增长78.65%;2025年前三季度归属于上市公司股东的净jvzquC41hngtj7okp36/exr1fgzbku4424;23:=3:7>6597::26
16.BankofKhyber(BOK)股票历史数据:历史行情,价格,走势图表历史数据 拆股历史 所属股指 BOK历史数据 时间范围 1日 下载 2025-10-13 - 2025-11-12 日期 收盘 开盘 高 低 交易量 涨跌幅 2025年11月11日 33.17 33.91 33.91 33.01 8.49K -1.10% 2025年11月10日 33.54 33.00 33.99 33.00 18.25K +0.12% 2025年11月07日 33.50 33.99 33.99 31.52 18.23K -0.42% jvzquC41ep4jpjuvkth0lto1gwvk}ngu1hbpt2qh/qi{kjt/jotvxwkecr.fjyc
17.帝科股份(300842)股票历史数据:历史行情,价格,走势图表历史数据 拆股历史 所属股指 300842历史数据 时间范围 1日 下载 2025-10-13 - 2025-11-12 日期 收盘 开盘 高 低 交易量 涨跌幅 2025年11月12日 67.21 66.66 69.50 65.50 9.87M -0.74% 2025年11月11日 67.71 66.90 70.99 66.00 13.16M +1.29% 2025年11月10日 66.85 63.01 70.23 63.01 15.80M +10.95jvzquC41ep4jpjuvkth0lto1gwvk}ngu1}vzr2fm/kmglytqpod/vfvgtobn|2eq/ruf6mkuvusklfn/fguc
18.数据分析实战②——股票买卖收益分析df.info()#查看数据的基本信息 df['date'] = pd.to_datetime(df['date'])#将字符串转换为时间类型 print(df.head(10))#查看前10行 df.set_index("date",inplace=True)#设置索引 inplace=True表示在原数据上修改 print(df.head(10)) #输出该股票所有收盘比开盘上涨3%以上的日期 jvzquC41dnuh0lxfp0tfv87523e8::>7;2>0c{ykenk0fnyckny03<897586;