九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
次新股開板投資攻略

次新股簡單粗暴的買入策略!

最近一段時(shí)間,次新股概念非?;?,市場關(guān)注度也非常高。前面盧威大神已經(jīng)發(fā)布了關(guān)于次新股投資研究的帖子:新股、次新股的投資機(jī)會(huì)研究 ,總結(jié)一下這里面的內(nèi)容,主要的觀點(diǎn)有:

  1. 行業(yè)對次新股影響比較大

  2. 市值較小的次新股往往會(huì)帶來更高的超額收益

  3. 需要和同行業(yè)的其他的股票進(jìn)行橫向?qū)Ρ?,一字板?shù)量要小于同行業(yè)的股票

最近發(fā)現(xiàn)國君也發(fā)了一篇關(guān)于次新股的研報(bào),主要觀點(diǎn)和上面會(huì)有一些不同,從另外的視角來篩選次新股,個(gè)人感覺也挺有借鑒意義,在這里簡單實(shí)現(xiàn)一下。

國君研報(bào)中選次新股的條件有4個(gè),股社區(qū)也做了相應(yīng)的總結(jié):

  1. 上市連續(xù)漲停<>

  2. 同一天開板新股>1個(gè)

  3. 無分析師覆蓋

  4. 牛熊分界處于熊市一側(cè)(可以替換為399678低于20日線)

其中同一天開板新股大于1個(gè),主要的觀點(diǎn)就是當(dāng)天有多只股票開板的話,可能不是個(gè)股的原因,而是因?yàn)榇蟊P的原因,被錯(cuò)殺了。第四個(gè)條件中牛熊分界處于熊市一側(cè)也是基于同樣的考量。

因?yàn)榈谌齻€(gè)條件沒有比較好的數(shù)據(jù)實(shí)現(xiàn),這里將其他3個(gè)選股條件都用上,分析一下最終的結(jié)果。

最近一段時(shí)間,次新股概念非?;穑袌鲫P(guān)注度也非常高。前面盧威大神已經(jīng)發(fā)布了關(guān)于次新股投資研究的帖子:新股、次新股的投資機(jī)會(huì)研究 ,總結(jié)一下這里面的內(nèi)容,主要的觀點(diǎn)有:

  1. 行業(yè)對次新股影響比較大

  2. 市值較小的次新股往往會(huì)帶來更高的超額收益

  3. 需要和同行業(yè)的其他的股票進(jìn)行橫向?qū)Ρ?,一字板?shù)量要小于同行業(yè)的股票

最近發(fā)現(xiàn)國君也發(fā)了一篇關(guān)于次新股的研報(bào),主要觀點(diǎn)和上面會(huì)有一些不同,從另外的視角來篩選次新股,個(gè)人感覺也挺有借鑒意義,在這里簡單實(shí)現(xiàn)一下。

國君研報(bào)中選次新股的條件有4個(gè),股社區(qū)也做了相應(yīng)的總結(jié):

  1. 上市連續(xù)漲停<>

  2. 同一天開板新股>1個(gè)

  3. 無分析師覆蓋

  4. 牛熊分界處于熊市一側(cè)(可以替換為399678低于20日線)

其中同一天開板新股大于1個(gè),主要的觀點(diǎn)就是當(dāng)天有多只股票開板的話,可能不是個(gè)股的原因,而是因?yàn)榇蟊P的原因,被錯(cuò)殺了。第四個(gè)條件中牛熊分界處于熊市一側(cè)也是基于同樣的考量。

因?yàn)榈谌齻€(gè)條件沒有比較好的數(shù)據(jù)實(shí)現(xiàn),這里將其他3個(gè)選股條件都用上,分析一下最終的結(jié)果。

6
1
import seaborn
2
from matplotlib import pylab
3
import matplotlib.pyplot as plt
4
from matplotlib.pyplot import *
5
from CAL.PyCAL import *    # CAL.PyCAL中包含font
6
from datetime import timedelta,datetime,date
查看全部

1. 獲取2014年6月以來的新上市的股票

1. 獲取2014年6月以來的新上市的股票

7
1
security_listDate = DataAPI.EquGet(equTypeCD=u'A',secID=u'',ticker=u'',listStatusCD=u'',field=u'secID,ticker,secShortName,ListDate',pandas='1')
2
new_equity = security_listDate[(security_listDate['listDate'] > '2014-06-01') &
3
                              (security_listDate['listDate'] '2017-02-20')].reset_index(drop='False')
4
new_equity['month'] = new_equity['listDate'].apply(lambda x : int(x[0:4] + x[5:7]))  # 轉(zhuǎn)換時(shí)間格式,方便統(tǒng)計(jì)每個(gè)月上市的股票
5
new_equity_se = new_equity.groupby('month').size()
6
print new_equity.head()
7
?
查看全部
secID ticker secShortName listDate month0 000166.XSHE 000166 申萬宏源 2015-01-26 2015011 001979.XSHE 001979 招商蛇口 2015-12-30 2015122 002724.XSHE 002724 海洋王 2014-11-04 2014113 002726.XSHE 002726 龍大肉食 2014-06-26 2014064 002727.XSHE 002727 一心堂 2014-07-02 201407

2. 每個(gè)月上市的股票的數(shù)量統(tǒng)計(jì)

2. 每個(gè)月上市的股票的數(shù)量統(tǒng)計(jì)

12
1
#下面代碼為畫圖的邏輯: 次新股數(shù)量統(tǒng)計(jì)
2
fig = plt.figure(figsize=(12, 6))
3
ax1 = fig.add_subplot(111)
4
ax1.bar(range(len(new_equity_se)), new_equity_se.values, align='center',  width=0.5)
5
ax1.set_xlim(-1, len(new_equity_se))
6
?
7
ax1.set_xticks(range(len(new_equity_se)))
8
ax1.set_xticklabels([str(i) for i in new_equity_se.index], fontproperties=font, fontsize=14)
9
plt.setp(plt.gca().get_xticklabels(), rotation=45)
10
ax1.set_title(u'新股上市數(shù)量', fontproperties=font, fontsize=16)
11
?
12
?
查看全部

從上圖可以看到,2015年股災(zāi)結(jié)束后,新股發(fā)行的速度已經(jīng)恢復(fù)常態(tài)。按照這個(gè)發(fā)行速度,現(xiàn)在還有700多家公司在排隊(duì)IPO,未來的新股供給量應(yīng)該會(huì)非常充足。

從上圖可以看到,2015年股災(zāi)結(jié)束后,新股發(fā)行的速度已經(jīng)恢復(fù)常態(tài)。按照這個(gè)發(fā)行速度,現(xiàn)在還有700多家公司在排隊(duì)IPO,未來的新股供給量應(yīng)該會(huì)非常充足。

3. 統(tǒng)計(jì)新股上市的行業(yè)信息

3. 統(tǒng)計(jì)新股上市的行業(yè)信息

12
1
def get_industry(secID, day):
2
   '''獲取行業(yè)分類信息'''
3
   industry_df = DataAPI.EquIndustryGet(industryVersionCD=u'010303',secID=secID,ticker=u'',intoDate=day,
4
                          field=u'secID,ticker,secShortName,industryName1,isNew',pandas='1')
5
   industry_df = industry_df[industry_df['isNew']==1]
6
   return industry_df['industryName1'].head(1)
7
?
8
today = date.today().strftime('%Y%m%d')  
9
?
10
# 如果使用上市日期來查詢股票行業(yè)分類,會(huì)有NaN值出現(xiàn)
11
new_equity['industy_name'] = new_equity.apply(lambda x: get_industry(x['secID'], today), axis=1)
12
?
查看全部
14
1
#下面代碼為畫圖的邏輯: 畫圖展示行業(yè)信息
2
?
3
new_equity_industry_se = new_equity.groupby('industy_name').size()
4
?
5
fig = plt.figure(figsize=(12, 6))
6
ax1 = fig.add_subplot(111)
7
ax1.bar(range(len(new_equity_industry_se)), new_equity_industry_se.values, align='center',  width=0.5)
8
ax1.set_xlim(-1, len(new_equity_se))
9
?
10
ax1.set_xticks(range(len(new_equity_industry_se)))
11
ax1.set_xticklabels([i.decode('utf-8') for i in new_equity_industry_se.index], fontproperties=font, fontsize=14)
12
plt.setp(plt.gca().get_xticklabels(), rotation=90)
13
ax1.set_title(u'新股行業(yè)分布', fontproperties=font, fontsize=16)
14
?
查看全部

從上圖可以看到,化工,機(jī)械設(shè)備,醫(yī)藥生物還有計(jì)算行業(yè)的新股比較多,這也吻合這幾個(gè)行業(yè)自身成份股數(shù)量較多的特點(diǎn)

從上圖可以看到,化工,機(jī)械設(shè)備,醫(yī)藥生物還有計(jì)算行業(yè)的新股比較多,這也吻合這幾個(gè)行業(yè)自身成份股數(shù)量較多的特點(diǎn)

4. 獲取股票的上市時(shí)的漲停板的個(gè)數(shù)

優(yōu)礦提供了一個(gè)API,可以獲取新股上市后的漲停板的個(gè)數(shù),這個(gè)太方便了,自己要是做還是比較麻煩的:MktIpoConTraddaysGet。利用這個(gè)API,首先獲取每個(gè)股票上市有多少個(gè)漲停板。

我們需要將一字板大于10天的剔除,這種股票的后續(xù)潛力已經(jīng)很小了。

4. 獲取股票的上市時(shí)的漲停板的個(gè)數(shù)

優(yōu)礦提供了一個(gè)API,可以獲取新股上市后的漲停板的個(gè)數(shù),這個(gè)太方便了,自己要是做還是比較麻煩的:MktIpoConTraddaysGet。利用這個(gè)API,首先獲取每個(gè)股票上市有多少個(gè)漲停板。

我們需要將一字板大于10天的剔除,這種股票的后續(xù)潛力已經(jīng)很小了。

7
1
def get_uplimt_num(secID):
2
   '''獲取新股連續(xù)漲停的天數(shù)'''
3
   df = DataAPI.MktIpoConTraddaysGet(secID=secID,field=u'continiousTradDays',pandas='1')
4
   return df['continiousTradDays'].head(1)
5
?
6
new_equity['uplimit_num'] = new_equity.apply(lambda x: get_uplimt_num(x['secID']), axis=1)
7
?
查看全部
1
1
print new_equity[new_equity['uplimit_num']1].to_html()
查看全部
secID ticker secShortName listDate month industy_name uplimit_num
0 000166.XSHE 000166 申萬宏源 2015-01-26 201501 非銀金融 0.0
1 001979.XSHE 001979 招商蛇口 2015-12-30 201512 房地產(chǎn) 0.0
232 300498.XSHE 300498 溫氏股份 2015-11-02 201511 農(nóng)林牧漁 0.0
355 601155.XSHG 601155 新城控股 2015-12-04 201512 房地產(chǎn) 0.0
605 603998.XSHG 603998 方盛制藥 2014-12-05 201412 醫(yī)藥生物 0.0

從上面的統(tǒng)計(jì)信息可以看出,有些股票上市第一天就是破板了,這種情況在前一篇帖子已經(jīng)分析過了,主要原因是因?yàn)檫@些股票不是純正的新股,這種股票也要剔除。

從上面的統(tǒng)計(jì)信息可以看出,有些股票上市第一天就是破板了,這種情況在前一篇帖子已經(jīng)分析過了,主要原因是因?yàn)檫@些股票不是純正的新股,這種股票也要剔除。

1
1
new_equity = new_equity[(new_equity['uplimit_num']>0)&(new_equity['uplimit_num']10)]
查看全部

5. 找到新股開板的那一天

前面有上市的時(shí)間,還有連續(xù)漲停的時(shí)間,那么將上市的時(shí)間加上連續(xù)漲停的天數(shù),即可獲取開板的那一天

5. 找到新股開板的那一天

前面有上市的時(shí)間,還有連續(xù)漲停的時(shí)間,那么將上市的時(shí)間加上連續(xù)漲停的天數(shù),即可獲取開板的那一天

27
1
def get_specific_trading_day(date_str='2016-01-04', window=20, direction='forward'):
2
   '''給定日期,可以通過這個(gè)函數(shù)獲取前后N天的那個(gè)交易日'''
3
   date = datetime.strptime(date_str, '%Y-%m-%d')
4
   if direction=='back':
5
       begin_day = date - (window+5) * 4 * timedelta(days=1)   # 可以獲取冗余的交易日,防止最終取不到有效數(shù)據(jù)
6
       end_day = date
7
   elif direction=='forward':
8
       begin_day = date
9
       end_day = date + (window+5)  * 4 * timedelta(days=1)
10
       
11
   begin_day_str = begin_day.strftime('%Y-%m-%d')
12
   end_day_str = end_day.strftime('%Y-%m-%d')
13
       
14
   cal_dates = DataAPI.TradeCalGet(exchangeCD=u'XSHG', beginDate=begin_day_str, endDate=end_day_str, field='calendarDate,isOpen')
15
   trading_days = cal_dates[cal_dates['isOpen']==1]['calendarDate'].tolist()
16
   # trading_days = [day[0:4] + day[5:7] + day[8:] for day in trading_days] # 更改日期的格式,將'2014-01-03'轉(zhuǎn)化為'20140103'
17
   try:
18
       if direction=='back':
19
           return trading_days[-window]
20
       return trading_days[window]
21
   except:
22
       print date_str,window,direction
23
       
24
       
25
#開板的那天
26
new_equity['un_limit_day'] = new_equity.apply(lambda x: get_specific_trading_day(x['listDate'], int(x['uplimit_num'])), axis=1)
27
new_equity = new_equity[new_equity['un_limit_day']'2017-02-20'] #加上相應(yīng)的日期后,可能會(huì)有越界的情況
查看全部

6.找到同一天開板的股票數(shù)量大于1的股票

6.找到同一天開板的股票數(shù)量大于1的股票

5
1
# 找到同一天開板的股票數(shù)量大于1的股票
2
?
3
day_count = new_equity.groupby('un_limit_day').size()
4
more_than_one_stock_unlimit = day_count[day_count>1].index # 當(dāng)天不止一只股票開板的日期
5
new_equity = new_equity[new_equity['un_limit_day'].isin(more_than_one_stock_unlimit)]
查看全部

7. 找到牛熊分界處于熊市一側(cè)的股票

股社區(qū)覺得可以替換為399678低于20日線,這個(gè)是深次新股指數(shù)。這里面要用到優(yōu)礦的指數(shù)因子的API,相當(dāng)方便啊

7. 找到牛熊分界處于熊市一側(cè)的股票

股社區(qū)覺得可以替換為399678低于20日線,這個(gè)是深次新股指數(shù)。這里面要用到優(yōu)礦的指數(shù)因子的API,相當(dāng)方便啊

10
1
def get_bear_flag(day):
2
   '''判斷是否是熊市一側(cè),如果399678低于20日線,即可簡單認(rèn)為是熊市'''
3
   day = day.replace('-','')
4
   df = DataAPI.MktIdxFactorOneDayGet(tradeDate=day,secID=u'',ticker=u'399678',field=u'Close,MA20',pandas='1')
5
   if len(df[df['Close'] df['MA20']])>0:
6
       return True
7
   return False
8
?
9
new_equity['is_bear'] = new_equity.apply(lambda x:get_bear_flag(x['un_limit_day']), axis=1)
10
new_equity = new_equity[new_equity['is_bear']]
查看全部

8. 分析超額收益

經(jīng)過上面幾步的篩選,已經(jīng)得到我們需要的股票池。按照研報(bào)的中思路,我們在開板后買入,持有20天,相較于中證500,有24.3%的超額收益!

8. 分析超額收益

經(jīng)過上面幾步的篩選,已經(jīng)得到我們需要的股票池。按照研報(bào)的中思路,我們在開板后買入,持有20天,相較于中證500,有24.3%的超額收益!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
巴菲特研習(xí)社|2013年巴菲特致股東的信 Day2
Morningstar Equity Analyst 必讀書單
Backtrader量化平臺(tái)教程
python量化之路:獲取歷史某一時(shí)刻滬深上市公司股票代碼及上市時(shí)間
如何用Python中Tushare包輕松完成股票篩選(詳細(xì)流程操作)
策略常用函數(shù)庫
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服