返回列表 发布新帖

量化研究:涨停板进阶研究,提供源代码

1282 0
发表于 2024-10-20 10:08:20 | 显示全部楼层 阅读模式

对涨停板进行了研究,提供数据分析那个板概率比较高

涨停板市场情绪20231207

可以看历史的比如20231206

龙头进阶

可以看历史的比如昨天,前天

涨停板数合并分析源代码,代码来自网站框架

<pre class="public-DraftStyleDefault-pre" data-offset-key="9c2tf-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="9c2tf-0-0"><div data-offset-key="9c2tf-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="9c2tf-0-0"><span data-text="true">def get_ztbjj**aysis_models(self): ''' 涨停板进级分析 ''' trader_time_list=self.stock_data.get_trader_date_list() import numpy as np def select_data(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):] data_list=[] now_date=trader_time_list[-1] date2=''.join(str(now_date).split('-')) for date in trader_time_list[2:]: select_list=[] date1=date date=''.join(str(date).split('-')) pre_date=trader_time_list[trader_time_list.index(date1)-1] pre_date=''.join((pre_date).split('-')) pre_df=pd.read_excel(r'{}\当日涨停{}当日涨停.xlsx'.format(self.path,pre_date)) pre_df['几板']=pre_df['几天几板'].apply(select_data) now_df=pd.read_excel(r'{}\当日涨停{}当日涨停.xlsx'.format(self.path,date)) now_df['几板']=now_df['几天几板'].apply(select_data)

限制的最高板

        now_high=max(now_df['几板'].tolist())
        #昨天的最高板
        pre_high=max(pre_df['几板'].tolist())
        for  i in range(1,12):
            df1=now_df[now_df['几板']==i]
            select_list.append(df1.shape[0])
        data_list.append(select_list)
    data=pd.DataFrame(data_list)
    columns_list=[]
    for i in data.columns.to_list():
        columns_list.append('{}板数量'.format(str(i+1)))
    data.columns=columns_list
    for i in data.columns.tolist()[:-2]:
        data['{}板进阶比'.format(i.split('板')[0])]=round((data['{}板数量'.format(str(int(i.split('板')[0])+1))]/data['{}'.format(str(i))] .shift(1))*100,2)
    data['日期']=trader_time_list[-data.shape[0]:]
    data=data.fillna(0)
    data=data.replace(np.inf,0)
    data.to_excel(r'{}\涨停板进阶统计\{}涨停板进阶统计.xlsx'.format(self.path,date2))
    return data

</span></span></div></pre></pre>

合并出来数据

网页展示的分析结果

分析的展示结果读取数据

<pre class="public-DraftStyleDefault-pre" data-offset-key="ivdr-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="ivdr-0-0"><div data-offset-key="ivdr-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="ivdr-0-0"><span data-text="true">import pandas as pd import matplotlib.pyplot as plt import matplotlib.pyplot as plt

支持中文

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 df=pd.readexcel(r'C:\Users\Admin\Desktop\小果量化网页\apps\maker**ysis\涨停板进阶统计\20231207涨停板进阶统计.xlsx') del df['Unnamed: 0'] df</span></span></div></pre></pre>

<pre class="public-DraftStyleDefault-pre" data-offset-key="fmmct-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="fmmct-0-0"><div data-offset-key="fmmct-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="fmmct-0-0"><span data-text="true">#数量 columns_amount=['日期'] for i in range(1,10): columns_amount.append('{}板数量'.format(i)) df1=df[columns_amount] df1.plot(x='日期',figsize=(20,8)) plt.show()</span></span></div></pre></pre>

<pre class="public-DraftStyleDefault-pre" data-offset-key="bm6ho-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="bm6ho-0-0"><div data-offset-key="bm6ho-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="bm6ho-0-0"><span data-text="true">#进板 columns_amount=['日期'] for i in range(1,10): columns_amount.append('{}板进阶比'.format(i)) df1=df[columns_amount] df1.plot(x='日期',figsize=(20,8)) plt.show()</span></span></div></pre></pre>

<pre class="public-DraftStyleDefault-pre" data-offset-key="1ar2l-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="1ar2l-0-0"><div data-offset-key="1ar2l-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="1ar2l-0-0"><span data-text="true">count=df1[columns_amount[1:]] count count_des=count.describe() count_des count_t=count_des.T count_t</span></span></div></pre></pre>

<pre class="public-DraftStyleDefault-pre" data-offset-key="egq3e-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="egq3e-0-0"><div data-offset-key="egq3e-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="egq3e-0-0"><span data-text="true">fig=plt.figure(figsize=(16,8)) plt.bar(count_t.index,count_t['mean']) plt.show()</span></span></div></pre></pre>

我们发现2进3,3进4概率比较高

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

<pre class="public-DraftStyleDefault-pre" data-offset-key="8965c-0-0"><pre class="Editable-styled" data-block="true" data-editor="h4qc" data-offset-key="8965c-0-0"><div data-offset-key="8965c-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="8965c-0-0"><span data-text="true">#把等于0的去掉 columns=count.columns.to_list() data_list=[] for i in columns: df2=count[count[i]>0] mean=df2[i].mean() print(mean) data_list.append(mean) df3=pd.DataFrame() df3['名称']=columns df3['平均分']=data_list fig=plt.figure(figsize=(16,8)) plt.bar(df3['名称'],df3['平均分']) plt.show()</span></span></div></pre></pre>

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 蜀ICP备19002686号-2
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表