涨停股第二天走势分析

博主: Simon Lin 创建于: Mar 27, 2019 更新于: Mar 28, 2019
分类: stock
标签: finance stock

概述

不想看全篇分析的,可以只收下以下两个结论:

每天买入涨停板,次日以收盘价卖出,平均化的收益率是2.43%,即一天收益2.43%!

今年以来,涨停次日有9%以上收益的比例是26.9%。

涨停次日吃-9%大跌的概率是3.31%。

推论:不要怕打板,长期打板会有稳定收益!

从一次失败的打板说起

话说3月26日,手头有60000多,每天看盘痒痒,结果就买了当天的涨停股:标准股份,买入价6.63,10000股。买入的想法很简单,就是第二天博一个上涨,立马出货。定下的策略是集合竞价后,开盘价上涨5%以上,拿住看看有没有涨停的机会,如果5%以下,赶紧出货走人。

3月27日,集合竞价到9.23分,刚刚好6.63。想了两秒,妈的,一个手续费都没挣回来,填了一个6.66卖出。9点25分开盘,6.63没错。想了两份钟,我不要开盘就跑,看看会不会开盘就上拉。撤回了6.66的卖出单。果然,开盘上拉了一下,一下到了6.74,可是立马往下掉,我的心也突然沉了下去,开盘3分钟,一下就跌到了6.38。才3分钟啊,净损失2500。开始后悔,撤什么单啊,没撤单的话就没损失,还挣300,手续费都有了。正后悔那会,又一阵下跌,到了6.2。那时候是没镜子啊,有镜子的话,镜子里我的脸一定是青的。先是定了策略没执行,又手贱,为了小钱亏了大钱。好吧,心态一下就崩了。关股票软件,找个角落哭一会儿。1个小时以后,回来看一眼,最低到了6.15,当前是6.30左右,狠狠心,不就损失吗?抛了,当给自己的心态上上课。6.28全部清空,1天时间损失3600。

下午,找了个地方冷静了一下,仔细分析了这次的操作,心态是最大的问题,操作失误是其次的问题,操盘还是要提前想清楚,不能临时想策略,盯盘最容易让自己产生临时的冲动,造成错误的操作。

以上是我的检讨,下次一定改正,请各位监督,如若再犯,听凭各位处罚。咳咳……,走偏了,走偏了,今天不是要写检讨书。之前一直觉得打板是一个很有挣钱机会的交易策略,偶然一次失败不能说明什么的,所以这次的失败后,立马掏出我最强的手段,量化分析一下如何打板才能挣到钱。

打板的理论来源

打板为什么会有效的原因,在于中国股市一个奇葩的设定————涨跌停板。这个制度人为的限制了一个交易日内的上涨下降幅度。当有一个非常大的利好时,股价会上涨,可因为涨跌停板的限制,不能在一个交易日内到达上涨目标的点位,所以,第二日的交易价格预期就是会继续上涨。所以,按照这个逻辑,在涨停当天买入股票,第二天继续上涨时抛出,就会有不错的预期收益。

打板的交易方案

根据理论上的分析,有几类的交易方案:

  1. 找到最可能涨停的股票,提前一天或几天潜伏
  2. 已经涨停的股票,突然打开涨停,抢筹反包回到涨停
  3. 收盘时找今日涨停个股,第二日买入,期待第二日继续涨停
  4. 刚涨停或即将涨停时,抢筹或涨停价挂单,等待第二天的收益

第一种情况是可遇不可求,能抓的准的都是神仙,我们不做讨论。
第二种是不是能成功反包不一定,可总比第一种可能性高些吧
第三种是市场主流的操作,即主要抓连续涨停股(至少要2个板)的收益
第四种主要考验眼疾手快,可也不失为一种比较可行的方案。一般大部分非一字涨停,比较常见发生在开盘时,集合竞价有一定的高开,然后一路上升到达涨停,可以在这个关键时间点,抢抓几个势头比较好的。

数据统计分析

分析细节比较的多,今天先讨论第四种比较简单的交易情况。即假设第一天抢筹成功,在涨停前买入。或者刚涨停就挂涨停价的单,然后运气好排队排上了。(这里的数据也会包含第一,第二种的情况)我们来分析一下,涨停股第二天走势情况的概率。

算法:

从量化分析的角度,这个设定比较容易找,即:第一天涨停股票,获取第二天的价格,包含开盘价,收盘价,最高,最低,收益率情况等
根据股票获取一段时间的价格
获取涨停的日期
获取涨停后一天的日期
获取涨停后一天的价格相关数据(排除停牌,排除最后一天涨停板等异常数据)
计算第二日收益率(以第二日收盘为准)及相关数据
按收益率进行分类分析

代码:

有需要代码的朋友,可以关注并私信我。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#涨停后,第二天收益分析
import pandas as pd
from jqdata import *
from datetime import datetime,date,timedelta
securities = get_all_securities(['stock'],date=datetime.now())

stocks = securities.index

def next_day_price(stock,end_date=None):
df = get_price(frequency='daily',fields=['open', 'close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit','low_limit', 'avg', 'pre_close', 'paused'], security=stock, skip_paused=False, fq='pre',count=100,end_date=end_date)#end_date=datetime.now().strftime('%Y-%m-%d'))
#取涨停的数据
dm = df[df['high_limit']==df['close']]
#排除停牌情况
dm = dm[dm['paused']==False]
#排除最后一天的涨停板
dm = dm[(dm.index<>end_date)]

date=[]
for d in dm.index:
dd = get_trade_days(start_date=d)
if dd.size>1:
date.append(dd[1])
dk = df.loc[date,]
dk['close_profit'] = dk['close']-dk['pre_close']
dk['open_profit'] = dk['open']-dk['pre_close']
dk['profit_percent'] = (dk['close']/dk['pre_close']-1)*100
return dk

res=pd.DataFrame()
#stocks = ['002653.XSHE']
for s in stocks:
#print s
df = next_day_price(s,end_date = '2019-3-27')
df['stock'] = s
res = pd.concat([res,df],axis=0).dropna()


res

相关数据输出类似上图,例如603999读者传媒在2018-12-05和2019-02-25涨停,输出了2条记录在2018-12-06和2019-02-26的走势。OK,验证了一下数据,基本没问题就可以下一步了。

按收益率输出的代码,输出的数字为在次日某个收益率的次数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
print res[(res['profit_percent']<=-9)].index.size
print res[(res['profit_percent']>-9) & (res['profit_percent']<=-8)].index.size
print res[(res['profit_percent']>-8) & (res['profit_percent']<=-7)].index.size
print res[(res['profit_percent']>-7) & (res['profit_percent']<=-6)].index.size
print res[(res['profit_percent']>-6) & (res['profit_percent']<=-5)].index.size
print res[(res['profit_percent']>-5) & (res['profit_percent']<=-4)].index.size
print res[(res['profit_percent']>-4) & (res['profit_percent']<=-3)].index.size
print res[(res['profit_percent']>-3) & (res['profit_percent']<=-2)].index.size
print res[(res['profit_percent']>-2) & (res['profit_percent']<=-1)].index.size
print res[(res['profit_percent']>-1) & (res['profit_percent']<0)].index.size
print '-----'
print res[(res['profit_percent']==0)].index.size
print '-----'
print res[(res['profit_percent']>0) & (res['profit_percent']<=1)].index.size
print res[(res['profit_percent']>1) & (res['profit_percent']<=2)].index.size
print res[(res['profit_percent']>2) & (res['profit_percent']<=3)].index.size
print res[(res['profit_percent']>3) & (res['profit_percent']<=4)].index.size
print res[(res['profit_percent']>4) & (res['profit_percent']<=5)].index.size
print res[(res['profit_percent']>5) & (res['profit_percent']<=6)].index.size
print res[(res['profit_percent']>6) & (res['profit_percent']<=7)].index.size
print res[(res['profit_percent']>7) & (res['profit_percent']<=8)].index.size
print res[(res['profit_percent']>8) & (res['profit_percent']<=9)].index.size
print res[(res['profit_percent']>9)].index.size
res.index.size

数据结果

请注意:以下推算的概率都是以2019-3-27日之前的100个交易日所有的涨停板数据的统计,以其他时间段的数据统计会略有不同。
左边数字表示收益率区间,右边表示次数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<=-9:243
<=-8:60
<=-7:68
<=-6:124
<=-5:214
<=-4:306
<=-3:372
<=-2:460
<=-1:487
<0:386
-----
==0:103
-----
>0:413
>1:398
>2:413
>3:353
>4:422
>5:314
>6:115
>7:66
>8:39
>9:1975
总数7331

中间的103表示次日无收益,可能为停盘或者正好和前一日收盘相同价格。
第一个数小于-9表示涨停后次日几乎跌停的次数,大概的概率是:3.31%
最后一个1975是最大的,即大于9%收益率(接近连板的概率)占总量的26.9%,说明大约有超过1/4的概率,会发生连板。

8%,9%附近的次数是比较少的,同样的-8%,-9%也是比较少,说明涨跌停板有吸附效应,就是说,都8%,9%了,一般人预期这个股票会涨停,抛出的会少,买入的会多,容易变成涨停。

将所有负收益次数相加共2720,将所有负的收益求和为:-10142.095648
将所有正收益次数相加共4508,将所有正的收益求和为:27990.9508917
正负的次数的比值,即为胜负比:
正负的收益的比值,即为损益比:
总次数共7331次,总的收益和为17848,相除结果为2.43%。含义是基本上每次买到涨停股票后的平均收益率是2.43%。这个收益是一天时间的资金收益,如果算成年化,按200交易日计算,那就是400%以上的暴利了。如果每天把所有资金买入一只涨停股,次日卖出,再立刻买入新的一个涨停股,如此往复,即每个交易日按2.43%的复利计算,天呀,不敢想……

之后的详细分析

第二日走势的收盘价来作为概率统计毕竟还是太晚,可以对第二日开盘价及开盘后的走势做一个详尽分析,给出相关的概率情况,例如,第二日高开多少,涨停的概率高等等的,有利于实战操作

去除新股连续上涨的异常数据:新股是一个奇特的存在,一般都会连续的涨停很多天,可是成交量基本上非常非常的小,基本买不到。所以,相关的数据分析需要去除后讨论。

不同时间获取胜率比与损益比,构筑一个变化曲线,并和大盘进行相关度的分析

代码已有,之后可以每天给出前一天的涨停后次日报表,看看胜率和损益比,可以参照上面的变化曲线进行大盘趋势的分析

结论

积极参与涨停股的操作,从概率上说,是比较容易挣钱的。这就是这么多人喜欢打板的原因吧。好,喜欢量化分析,喜欢通过数据来看清很多交易本质的话,欢迎关注我,不定时提供各类量化分析思路,策略,数据和各种讲解。


打赏 支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者