大A为何频繁跳水,Python量化1200W条交易数据给你答案!| 邢不行

30 篇文章 7 订阅
20 篇文章 6 订阅

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

作者 | 邢不行、密斯锌硒

常看我文章的读者应该能发现,我介绍过的量化策略大多都会在开盘时买入

比如小市值策略散户反着买策略:

小市值策略文章

散户反着买策略

它们都会在每个周期的第一个交易日开盘买入相应的股票。

不知道大家有没有思考过,我们为什么会选择开盘而不是收盘盘中买入呢?

毕竟印象中大A经常高台跳水,开盘买入不就意味着亏损吗?

这其实和股市中的某个常见现象有关,了解这个现象,对做量化及手工交易都有启发,下文我们就来做相应的介绍。

01

A股低开效应

1、A股行情

一直以来A股都被戏称为国家一级跳水运动员,非著名速降自行车手3000点高地常备役守军

谁让我们遇到的行情总让人一言难尽:

尤其行情较差时,大家都习惯了大A低开,即使偶尔高开也会低走

我也问过有一定交易经验的朋友们,在他们印象中大多数时候大A都是低走的。

这样的感觉是否正确呢?A股是否真的存在低开效应呢?

我们是做量化交易的,不能只凭主观直觉去判断。
还是要找来A股历史数据,借助Python代码,去看A股是否真的频频低开。

这也恰好是决定策略是开盘买还是收盘买的关键所在。

2、“开”/“走”定义

要进行这样的验证,我们首先需要知道什么是低/高开、低/高走

具体定义我已帮大家列示如下,就不多加赘述了:

了解了相关定义,我们就可以找来上证指数交易数据、编写相应的Python代码,统计历史上大A的开盘表现。

02

A股开盘统计

1、上证指数开盘情况

程序运行结果如图所示:

2007年至今,上证指数共出现1751次高开2397次低开,另有2次平开。

从数据角度看,大盘确实以低开为主

2、A股指数开盘情况

我们还顺便统计了A股其他指数,发现也是低开居多,高开更少:

这类现象的成因较难解释。

有人认为和A股的T+1交易制度相关,但好像也不能完全说通。

我们先用其他T+0交易市场的指数来做个交叉验证

3、其他市场开盘统计

我们统计了恒生指数、标普500和纳斯达克指数的开盘情况:

和A股指数不同的是,上述指数高开的概率确实更高。

但不同市场低开/高开占比的差异,真的仅仅由T+1交易制度带来吗?

感兴趣的同学可以自己思考,我就不多着墨于此了。

4、上证走势

我们再进一步去探究A股每天的走势。

计算相对简单,只需在原有代码稍作修改即可,具体结果如图所示:

2007年至今上证指数在历史上共出现1292次低开高走,占比31%,与我们认为低开低走或高开低走出现最多的经验相悖。

5、失真指数

当然我们也不能只看上证指数,毕竟指数无法代表全部股票,尤其是上证指数这样一个失真的指数

因此我们还需要找出全部A股历史数据,编写相应的Python代码,去看个股低开还是高开更多,是否也存在低开高走现象

03

个股开/收盘统计

1、数据&代码

具体的数据我已经帮大家整理妥当,包含了所有股票(包括已退市的股票)上市至今每天的开高收低价格,甚至可以计算复权价,非常的完备。

有了数据我们就可以借助Python代码去做相应的计算:

如果你需要上述数据和代码的话,可以在评论区留言,都是可以分享给你的。

2、统计结果

统计结果如图所示:

2007年至今所有A股股票也都以低开为主

比较神奇的是在剔除了停牌的情况下,仍有168万平开,占比14.13%。

进一步挖掘当日走势,我们发现个股还是低开高走居多然后才是低开低走和高开低走

这与指数验证的结论是一致的,即A股整体以低开为主且低开高走的趋势最多

这也解释了为何实盘策略会倾向于开盘买入股票,因为在收盘时获得正收益的可能性更大。

而如果在前一天收盘买入,则有更高的可能面临开盘下跌的境地。

上述结论不单单能运用到量化交易中,手工操作也可以借鉴

比如原先准备当天收盘时买入股票的,就可以等到第二天开盘时再买入,这样相对而言会有系统性的优势,日积月累也会产生不错的收益。

3、深入探究

当然我们的研究也不会仅仅止步于此。

接下来我们将继续深入探索,看看A股的低开高走现象又有哪些更细分的规律

比如什么情况下股票低开更加容易高走?

04

个股低开研究

1、低开分组

我们把低开的幅度按照0%-1%、1%-2%一直到8%-9%进行分组共计9组。

低开9%以上涉及到跌停,这里就暂不讨论。

这9种不同程度的低开发生后,在未来1/2/3天及更多天的股价表现又会如何?

我们仍借助全部A股历史数据和Python代码来进行验证。

相关数据和代码已经准备好了,如果你需要的话,可以在评论区留言,都是可以分享给你的。

2、统计结果

代码运行结果如图所示:

2007年至今低开1%以内的情况最多,共409万次,而低开8%-9%的情况则只出现过5914次。

显而易见低开幅度越大,出现次数越少

3、1日后表现

再从低开后1天的表现来看,低开8%-9%的区间更易走高,高走概率达到56.21%盈亏比也高达3.65

这意味着每一次高走的收益,相当于3.6次低走的收益

再进一步去看,我们发现股票低开的幅度越大,当天平均收益也越高,最高的甚至有2.82%

但需要注意的是,在实操中我们无法在当天卖出这些股票,即无法赚到这2.82%。

但不管怎样,长期来看低开股票未来收益都不错,只有低开幅度在4%-7%区间的股票仍会面临亏损

4、相应策略

至此我们对A股的低开现象做了深入分析,那是否可以据此构建一个相应的量化策略呢?

本期只是得出了一个结论,从结论转化到可以执行的交易策略还有很多步骤。

篇幅有限,就不在本文多做讲解。

大家感兴趣的话可以多多点赞,点赞破100,我们就聊聊该如何设计相应的量化策略

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python跳水比赛打分程序可以通过以下方法实现: 1. 定义一个函数,命名为`calculate_score`,该函数接受一个列表作为参数,用来存储裁判给出的分数。 2. 在`calculate_score`函数中,首先判断列表长度是否符合要求,如果不符合要求则输出错误信息并返回。 3. 对于符合要求的情况,可以采用以下两种方式计算最后的得分: a. 去掉最高分和最低分,然后计算剩余分数的平均值。也可以根据需要设定去掉的分数数量。 b. 计算所有分数的平均值,不排除最高分和最低分。 4. 在计算最终得分后,输出最终得分作为函数的返回值。 以下是一个简单实现的代码示例: ```python def calculate_score(scores): if len(scores) != 7: print("错误:分数数量不正确!") return scores.sort() scores = scores[1:6] # 去掉最高分和最低分 total_score = sum(scores) average_score = total_score / 5 return average_score # 测试代码 scores = [6.5, 7.5, 8.0, 7.0, 9.0, 7.5, 8.5] final_score = calculate_score(scores) print("最终得分为:", final_score) ``` 注意,上述代码仅为一个简单示例,实际打分程序中可能需要根据比赛规则进行更加复杂的计算和判断。 ### 回答2: Python跳水比赛打分程序主要是用来计算跳水选手在比赛中的得分。通过输入选手的跳水动作和难度系数,程序能够自动计算出选手每个动作的成绩,并最终给出总分。 程序的实现可以分为以下几个步骤: 1. 首先,程序需要从用户那里获取选手的跳水动作和难度系数。可以通过输入函数来实现,用户需要按照一定格式输入选手的动作和难度系数的值。 2. 接下来,程序需要计算出选手每个动作的成绩。可以根据跳水动作的难度系数和裁判对选手动作的评分来计算出每个动作的得分。一般来说,如果选手的动作越难,那么得分也会相应地更高。 3. 然后,程序需要将每个动作的得分累加起来,得到选手的总分。可以使用一个变量来存储总分,并在每次计算完一个动作的得分后将其加到总分上。 4. 最后,程序可以输出选手的每个动作的成绩以及总分。可以使用打印函数来实现,将每个动作的得分和总分显示在屏幕上。 总体来说,Python跳水比赛打分程序可以帮助裁判快速而准确地计算出选手的得分,并为选手提供参考和比较依据。程序的实现可以根据具体需求进行扩展和改进,例如可以添加保存选手得分记录、比较不同选手得分等功能。 ### 回答3: Python跳水比赛打分程序是一个用Python语言编写的计算机程序,用于计算和记录跳水比赛选手的得分。 该程序首先会要求用户输入选手的姓名和跳水难度系数,然后根据指定的评分规则对选手的每一次跳水进行评分。评分规则常用的是根据跳水动作的难度和执行的完美程度来评判得分。 程序会要求用户输入每一次跳水的评委数量,然后根据评委人数循环询问每个评委给出的分数。通常来说,排除最高和最低分数,计算其余评委给出的分数的平均值作为选手该次跳水的得分。 程序会累计每次跳水的得分,并在比赛结束后,计算所有跳水的总得分,并输出选手的最终得分。得分可以按照一定的格式进行输出,以使得结果更清晰明了。 在程序编写过程中,可以使用Python的内置函数和模块来完成各种计算和操作。比如,可以使用循环语句来实现对评委分数的输入和计算平均值的操作,可以使用件判断语句来排除最高和最低分数,还可以使用字符串格式化来输出结果。 总而言之,Python跳水比赛打分程序可以帮助裁判和观众更方便地记录和计算选手的得分,提高比赛的效率和公正性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值