基于akshare查取每天五分钟成交额,35分钟成交额,1h成交额,并输出为cvs

基于akshare查取每天五分钟成交额,35分钟成交额,1h成交额,并输出为cvs

import os
#定义start,end
#数据格式为1997 01 01 06 30 00
import fun1
import pandas as pd
import numpy as np
start="20221207"
end='20230114'
best_ip = fun1.select_best_ip()
#AKshare获取数据部分

#需要建的变量,股票的本身数据,以及根据日期建立的dataframe格式
import akshare as ak
#获取当前正在交易的股票代码,以及今天的市场情况
stock_sh_a_spot_em_df = ak.stock_sh_a_spot_em()
stock_code_list=stock_sh_a_spot_em_df['代码']
print(stock_code_list)
total = pd.DataFrame(columns=['日期', '开盘', '收盘', '最高', '最低', '成交量', '成交额', '振幅', '涨跌幅', '涨跌额', '换手率',
       '涨跌幅_5', '涨跌额_5', '成交量_5', '成交额_5', '振幅_5', '涨跌幅_10', '涨跌额_10',
       '成交量_10', '成交额_10', '振幅_10', '涨跌幅_05', '涨跌额_05', '成交量_05', '成交额_05',
       '振幅_05', '涨跌幅_1h', '涨跌额_1h', '成交量_1h', '成交额_1h', '振幅_1h'])
k=0
#code=stock_code_list[1]
for code in stock_code_list:
    #单次返回指定沪深京 A 股上市公司、指定周期和指定日期间的历史行情日频率数据,采用后复权
    stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol=code, period="daily",start_date=start,end_date=end, adjust="hfq")
    #单次返回指定股票、频率、复权调整和时间区间的分时数据, 其中 1 分钟数据只返回近 5 个交易日数据且不复权,缺点是只能获取近些日期的
    if stock_zh_a_hist_df.empty == False:
        trade_days=stock_zh_a_hist_df['日期'].values
        df = pd.DataFrame(columns=['涨跌幅_5', '涨跌额_5', '成交量_5', '成交额_5', '振幅_5', '涨跌幅_10', '涨跌额_10',
               '成交量_10', '成交额_10', '振幅_10', '涨跌幅_05', '涨跌额_05', '成交量_05', '成交额_05',
               '振幅_05', '涨跌幅_1h', '涨跌额_1h', '成交量_1h', '成交额_1h', '振幅_1h'])
        for i in range(0,trade_days.size):
            trade_day=trade_days[i]
            jj = ak.stock_zh_a_hist_min_em(symbol=code, start_date=trade_day+' 09:30:00', end_date=trade_day+' 10:30:00', period='5', adjust='hfq')
            #提取关键数据
            data_all=jj.iloc[np.arange(0,12,1),[5,6,7,8,9,10]]
            sum=data_all.iloc[0,0:5]
            data_5=sum

            for j in np.arange(1,12,1):
                sum=data_all.iloc[j,0:5]+sum
                if j==5:
                    data_10=sum
                if j ==6:
                    data_05=sum
                if j==11:
                    data_1h=sum
                    data_5.index = data_5.index + '_5'
                    data_10.index=data_10.index+'_10'
                    data_05.index = data_05.index + '_05'
                    data_1h.index = data_1h.index + '_1h'
                    c=pd.concat([data_5, data_10,data_05, data_1h],axis=0,ignore_index=False)
                    df.loc[i]=c
                    del data_5, data_10,data_05, data_1h,sum
            #这个数据处理好后,加入stock_zh_a_hist_df 中,记录5min 10min 30min 35min的累计数据,以及,2.30, 2.35的数据,需要注意近些日期数据的获取,意味着部分过往数据无法获取
        stock_data=pd.concat([stock_zh_a_hist_df,df],axis=1,ignore_index=False)
        for i in range(0, trade_days.size):
            total.loc[k]=stock_data.iloc[i]
            k=k+1
    print('complete'+code)
outputpath = 'C:/Users/cbl/Downloads/result_test.csv'
total.to_csv(outputpath,sep=',',index=False,encoding = 'utf_8_sig',header=True)

采集到的数据上传在我的主页
后面基于采集到的数据,去除了大市值和小市值做了一些相关性分析,结果文件在我的主页,资源下载里面,自行下载

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值