一,目标确定
利用大盘的成交量,红盘个股个数,同时结合南北资金的流动情况,可以大致观察到近期的市场热度,同时从技术层面来看,结合K线均线,也可以了解到目前的市场趋势。个股的运行,离不到行业的趋势,也离不开所在指数板块的趋势。指数的共振,造成了市场的综合走势。
通过分析以上的数据,得出近期市场的应对策略。
二,数据获取
数据获取,主要通过tushare获取。获取的包括南北向资金的数据、大盘基础数据还有相关指数的数据。下载后,为了更方便快捷地提取数据,也可以保存在本地。由于tushare其获取的数据为DataFrame模式为主,可以方便地进行相关的运算,期间会产生很多中间变量,所以不对所有数据进行保存,不然工作量相对较大,同时意义并不太大。其最终获取的数据,汇总主要如下:
三,数据清洗
在本次处理中,数据清洗主要围绕数据的格式进行,对于缺失数据,我们为了保持时间序列的连续性和真实性,并不做替代处理。比如,如果获取的是港股通的数据,由于不同的节假日,可能会造成数据缺失,但不代表其是坏数据。如果盲目删除,是不恰当的。部分数据清洗及格式转换的代码如下:
#市场热度的构建
#近期时间取值
now=datetime.now()
st=now-6*Day()
Endtime=now
Endtime=Endtime.strftime("%Y%m%d")
dates=pd.date_range(st,periods=7)
date_str=dates.strftime('%Y%m%d')
date_str
EarningEffect_arr=[EarningEffect1,EarningEffect2,EarningEffect3,EarningEffect4,EarningEffect5,EarningEffect6,EarningEffect7]
EarningEffect_arr.reverse()
EarningEffect_arr=np.nan_to_num(EarningEffect_arr) #此处把NAN值置于为0,方便后面绘图。
EarningEffect_arr=np.round(EarningEffect_arr,1)
EarningEffect_arr
四,数据整理与分析
第一部分:赚钱效应的分析
这部分主要通过近期成交量和红盘(即今日收盘价大于昨日收盘价 )家数进行分析 。通过可视化的手段,反映趋势。由于代码相对较多,主要提取核心部分进行分析:
#导入相关的库,用于构建系统时利用。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime
from pandas.tseries.offsets import Day
import seaborn as sns
from pyecharts import Bar,Line,Grid,Overlap,Gauge
from pyecharts import online
online() # needed for online viewing
#以下解决方案是针对可视化时,用pyecharts
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
#把提取的7天的行情数据保存起来。
df_dailys=[]
for i in range(0,7):
df_dailys_temp=pro.daily(trade_date=date_str[i])
df_dailys.append(df_dailys_temp)
同时,我们需要对行情数据进行保存,共中倒数第7天的实现代码给出,其他天数的类似可得,我们把每天的赚钱效应,定义一个数组保存起来。
#倒7天的赚钱效应
D7_red_count=D7[D7.close>D7.pre_close].count().ts_code
D7_count=D7.ts_code.count()
EarningEffect7=(D7_red_count/D7_count*100)
#EarningEffect7=('%.2f' % (D7_red_count/D7_count