今天参考开盘啦,把涨停板市场赚钱效应计算出来了,同时也加入很多自己的算法


字典词语介绍
打板成功比例:剔除了一字板,第二天继续涨停的比例
赚钱效应:剔除了一字板,第二天涨跌幅大于0的比例
赚钱比例:剔除了一字板,第二天所以股票的平均收益
1板赚钱效应:打一板第二天的进板比例,其他的也一样
1板赚钱比例:打一板第二天的平均收益,其他的也一样

源代码
来自小果量化网页框架的源代码
<pre class="public-DraftStyleDefault-pre" data-offset-key="21d8v-0-0"><pre class="Editable-styled" data-block="true" data-editor="cbhoe" data-offset-key="21d8v-0-0"><div data-offset-key="21d8v-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="21d8v-0-0"><span data-text="true">def get_maker_money_ratio(self):
'''
涨停板市场赚钱效应
'''
trader_time_list=self.stock_data.get_trader_date_list()
import os
path=os.listdir()
import numpy as np
def select_data_amount(x):
x=str(x)
if x=='首板':
return 1
else:
try:
return int(x.split('天')[-1].split('板')[0])
except:
return 0
path_list=os.listdir(path='{}\涨停板赚钱效应'.format(self.path))
trader_time_list=trader_time_list[-len(path_list):]
now_date=trader_time_list[-1]
date2=''.join(str(now_date).split('-'))
今日涨停
daily_zt_list=[]
#打板成功了
cgl_ratio_list=[]
#市场赚钱效应
maker_money_list=[]
#赚钱比例
maker_money_ratio_list=[]
#1板赚钱效应
maker_money_1_list=[]
#1板赚钱比例
maker_money_ratio_1_list=[]
#2板赚钱效应
maker_money_2_list=[]
#2板赚钱比例
maker_money_ratio_2_list=[]
#3板赚钱效应
maker_money_3_list=[]
#3板赚钱比例
maker_money_ratio_3_list=[]
#4板赚钱效应
maker_money_4_list=[]
#4板赚钱比例
maker_money_ratio_4_list=[]
#5板赚钱效应
maker_money_5_list=[]
#5板赚钱比例
maker_money_ratio_5_list=[]
#6板赚钱效应
maker_money_6_list=[]
#6板赚钱比例
maker_money_ratio_6_list=[]
#7板赚钱效应
maker_money_7_list=[]
#7板赚钱比例
maker_money_ratio_7_list=[]
#8板赚钱效应
maker_money_8_list=[]
#3板赚钱比例
maker_money_ratio_8_list=[]
#9板赚钱效应
maker_money_9_list=[]
#9板赚钱比例
maker_money_ratio_9_list=[]
#10板赚钱效应
maker_money_10_list=[]
#10板赚钱比例
maker_money_ratio_10_list=[]
trader_time_list=trader_time_list[2:]
for date in trader_time_list:
date1=date
date=''.join(str(date).split('-'))
path='{}涨停板赚钱效应.xlsx'.format(date)
if path in path_list:
print(path,'已经存在')
else:
pre_date=trader_time_list[trader_time_list.index(date1)-1]
pre_date=''.join((pre_date).split('-'))
pre_count=pd.read_excel(r'{}\涨停板赚钱效应\{}涨停板赚钱效应.xlsx'.format(self.path,pre_date))
pre_df=pd.read_excel(r'{}\当日涨停\{}当日涨停.xlsx'.format(self.path,pre_date))
pre_df['几板']=pre_df['几天几板'].apply(select_data_amount)
#pre_df=pre_df[pre_df['涨停形态'] !='一字板']
now_df=pd.read_excel(r'{}\当日涨停\{}当日涨停.xlsx'.format(self.path,date))
#now_df['几板']=now_df['几天几板'].apply(select_data)
#now_df=now_df[now_df['涨停形态'] !='一字板']
daily_zt_list.append(now_df.shape[0])
now_stock_list=now_df['证券代码'].tolist()
def select_data(x):
if x in now_stock_list:
return '是'
else:
return '不是'
pre_df['选择']=pre_df['证券代码'].apply(select_data)
select_data_1=pre_df[pre_df['选择']=='是']
#打板进阶
cgl=(select_data_1.shape[0]/pre_df.shape[0])*100
cgl_ratio_list.append(round(cgl,2))
pre_df=pre_df[pre_df['涨停形态'] !='一字板']
#涨停板数量字典
pre_df['证券代码']=pre_df['证券代码'].apply(lambda x:'0'*(6-len(str(x)))+str(x))
amount_dict=dict(zip(pre_df['证券代码'].tolist(),pre_df['几板'].tolist()))
pre_stock_list=pre_df['证券代码'].tolist()
data=pd.DataFrame()
for stock in pre_stock_list:
try:
stock='0'*(6-len(str(stock)))+str(stock)
hist=self.data.get_hist_data_em(stock=stock,end_date=date)
hist['证券代码']=stock
hist['几板']=hist['证券代码'].apply(lambda x:amount_dict.get(x,0))
print(date,stock,'成功')
data=pd.concat([data,hist[-1:]])
except:
print(date,stock,'有问题')
hist=pd.DataFrame()
data=pd.concat([data,hist[-1:]])
if data.shape[0]>0:
data1=data[data['涨跌幅']>=0]
maker_money=(data1.shape[0]/data.shape[0])*100
maker_money_list.append(round(maker_money,2))
maker_money_ratio=data['涨跌幅'].mean()
maker_money_ratio_list.append(round(maker_money_ratio,2))
#1板
data_1=data[data['几板']==1]
if data_1.shape[0]>0:
data1=data_1[data_1['涨跌幅']>=0]
maker_money_1=round((data1.shape[0]/data_1.shape[0])*100,2)
maker_money_1_list.append(maker_money_1)
maker_money_ratio_1_list.append(round(data1['涨跌幅'].mean(),2))
else:
maker_money_1_list.append(0)
maker_money_ratio_1_list.append(0)
#2板
data_2=data[data['几板']==2]
if data_2.shape[0]>0:
data2=data_2[data_2['涨跌幅']>=0]
maker_money_2=round((data2.shape[0]/data_2.shape[0])*100,2)
maker_money_2_list.append(maker_money_2)
maker_money_ratio_2_list.append(round(data2['涨跌幅'].mean(),2))
else:
maker_money_2_list.append(0)
maker_money_ratio_2_list.append(0)
#3板
data_3=data[data['几板']==3]
if data_3.shape[0]>0:
data3=data_3[data_3['涨跌幅']>=0]
maker_money_3=round((data3.shape[0]/data_3.shape[0])*100,2)
maker_money_3_list.append(maker_money_3)
maker_money_ratio_3_list.append(round(data3['涨跌幅'].mean(),2))
else:
maker_money_3_list.append(0)
maker_money_ratio_3_list.append(0)
#4板
data_4=data[data['几板']==4]
if data_4.shape[0]>0:
data4=data_4[data_4['涨跌幅']>=0]
maker_money_4=round((data4.shape[0]/data_4.shape[0])*100,2)
maker_money_4_list.append(maker_money_4)
maker_money_ratio_4_list.append(round(data4['涨跌幅'].mean(),2))
else:
maker_money_4_list.append(0)
maker_money_ratio_4_list.append(0)
#5板
data_5=data[data['几板']==5]
if data_5.shape[0]>0:
data5=data_5[data_5['涨跌幅']>=0]
maker_money_5=round((data5.shape[0]/data_5.shape[0])*100,2)
maker_money_5_list.append(maker_money_5)
maker_money_ratio_5_list.append(round(data5['涨跌幅'].mean(),2))
else:
maker_money_5_list.append(0)
maker_money_ratio_5_list.append(0)
#6板
data_6=data[data['几板']==6]
if data_6.shape[0]>0:
data6=data_6[data_6['涨跌幅']>=0]
maker_money_6=round((data6.shape[0]/data_6.shape[0])*100,2)
maker_money_6_list.append(maker_money_6)
maker_money_ratio_6_list.append(round(data6['涨跌幅'].mean(),2))
else:
maker_money_6_list.append(0)
maker_money_ratio_6_list.append(0)
#7板
data_7=data[data['几板']==7]
if data_7.shape[0]>0:
data7=data_7[data_7['涨跌幅']>=0]
maker_money_7=round((data7.shape[0]/data_7.shape[0])*100,2)
maker_money_7_list.append(maker_money_7)
maker_money_ratio_7_list.append(round(data7['涨跌幅'].mean(),2))
else:
maker_money_7_list.append(0)
maker_money_ratio_7_list.append(0)
#8板
data_8=data[data['几板']==8]
if data_8.shape[0]>0:
data8=data_8[data_8['涨跌幅']>=0]
maker_money_8=round((data8.shape[0]/data_8.shape[0])*100,2)
maker_money_8_list.append(maker_money_8)
maker_money_ratio_8_list.append(round(data8['涨跌幅'].mean(),2))
else:
maker_money_8_list.append(0)
maker_money_ratio_8_list.append(0)
#9板
data_9=data[data['几板']==9]
if data_9.shape[0]>0:
data9=data_9[data_9['涨跌幅']>=0]
maker_money_9=round((data9.shape[0]/data_9.shape[0])*100,2)
maker_money_9_list.append(maker_money_9)
maker_money_ratio_9_list.append(round(data9['涨跌幅'].mean(),2))
else:
maker_money_9_list.append(0)
maker_money_ratio_9_list.append(0)
#10板
data_10=data[data['几板']==10]
if data_10.shape[0]>0:
data10=data_10[data_10['涨跌幅']>=0]
maker_money_10=round((data10.shape[0]/data_10.shape[0])*100,2)
maker_money_10_list.append(maker_money_10)
maker_money_ratio_10_list.append(round(data10['涨跌幅'].mean(),2))
else:
maker_money_10_list.append(0)
maker_money_ratio_10_list.append(0)
else:
maker_money_list.append(0)
maker_money_ratio_list.append(0)
result=pd.DataFrame()
result['今日涨停']=daily_zt_list
result['打板成功比例']=cgl_ratio_list
result['赚钱效应']=maker_money_list
result['赚钱比例']=maker_money_ratio_list
result['1板赚钱效应']=maker_money_1_list
result['2板赚钱效应']=maker_money_2_list
result['3板赚钱效应']=maker_money_3_list
result['4板赚钱效应']=maker_money_4_list
result['5板赚钱效应']=maker_money_5_list
result['6板赚钱效应']=maker_money_6_list
result['7板赚钱效应']=maker_money_7_list
result['8板赚钱效应']=maker_money_8_list
result['9板赚钱效应']=maker_money_10_list
result['10板赚钱效应']=maker_money_10_list
result['1板赚钱比例']=maker_money_ratio_1_list
result['2板赚钱比例']=maker_money_ratio_2_list
result['3板赚钱比例']=maker_money_ratio_3_list
result['4板赚钱比例']=maker_money_ratio_4_list
result['5板赚钱比例']=maker_money_ratio_5_list
result['6板赚钱比例']=maker_money_ratio_6_list
result['7板赚钱比例']=maker_money_ratio_7_list
result['8板赚钱比例']=maker_money_ratio_8_list
result['9板赚钱比例']=maker_money_ratio_9_list
result['10板赚钱比例']=maker_money_ratio_10_list
result['日期']=date
result=pd.concat([pre_count,result],ignore_index=True)
result=result.drop_duplicates()
try:
del result['Unnamed: 0']
except:
pass
print(result)
print(date,'计算完成','*******************************')
result.to_excel(r'{}\涨停板赚钱效应\{}涨停板赚钱效应.xlsx'.format(self.path,date))</span></span></div></pre></pre>
网页支持历史数据


支持数据下载
后面仔细分析一下这个数据,点击下载按钮就可以

下载的数据


源代码+交易模型领取、QMT开通、策略分享、问题答疑,评论区留言或私信。