import pandas as pd #导入需要用到的包
import numpy as np
import matplotlib.pyplot as plt
import tushare as ts
#pro=ts.pro_api('e4b96d472ce94a6fd8763c1deac5058ed3c365bd574b9ff24403ba67')
ts.set_token('e4b96d472ce94a6fd8763c1deac5058ed3c365bd574b9ff24403ba67')
df=pd.read_csv('C:\\Users\86666\Desktop\python文件处理\\a002094.csv')#从csv文件中读取dataframe数据
print('读取成功')
df
读取成功
Unnamed: 0 | ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 002094.SZ | 20200812 | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 |
1 | 1 | 002094.SZ | 20200811 | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 |
2 | 2 | 002094.SZ | 20200810 | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 |
3 | 3 | 002094.SZ | 20200807 | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 |
4 | 4 | 002094.SZ | 20200806 | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3087 | 3087 | 002094.SZ | 20061221 | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 |
3088 | 3088 | 002094.SZ | 20061220 | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 |
3089 | 3089 | 002094.SZ | 20061219 | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 |
3090 | 3090 | 002094.SZ | 20061218 | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 |
3091 | 3091 | 002094.SZ | 20061215 | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 |
3092 rows × 12 columns
df1=df.drop('Unnamed: 0',axis=1)#删除无用的Unnamed:0 列
df1
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 002094.SZ | 20200812 | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 |
1 | 002094.SZ | 20200811 | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 |
2 | 002094.SZ | 20200810 | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 |
3 | 002094.SZ | 20200807 | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 |
4 | 002094.SZ | 20200806 | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3087 | 002094.SZ | 20061221 | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 |
3088 | 002094.SZ | 20061220 | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 |
3089 | 002094.SZ | 20061219 | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 |
3090 | 002094.SZ | 20061218 | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 |
3091 | 002094.SZ | 20061215 | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 |
3092 rows × 11 columns
df1['trade_date']
0 20200812
1 20200811
2 20200810
3 20200807
4 20200806
...
3087 20061221
3088 20061220
3089 20061219
3090 20061218
3091 20061215
Name: trade_date, Length: 3092, dtype: int64
df1['trade_date']=pd.to_datetime(df1['trade_date'],format='%Y%m%d')#时间序列的转化
df1['trade_date']
0 2020-08-12
1 2020-08-11
2 2020-08-10
3 2020-08-07
4 2020-08-06
...
3087 2006-12-21
3088 2006-12-20
3089 2006-12-19
3090 2006-12-18
3091 2006-12-15
Name: trade_date, Length: 3092, dtype: datetime64[ns]
df1
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 002094.SZ | 2020-08-12 | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 |
1 | 002094.SZ | 2020-08-11 | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 |
2 | 002094.SZ | 2020-08-10 | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 |
3 | 002094.SZ | 2020-08-07 | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 |
4 | 002094.SZ | 2020-08-06 | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3087 | 002094.SZ | 2006-12-21 | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 |
3088 | 002094.SZ | 2006-12-20 | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 |
3089 | 002094.SZ | 2006-12-19 | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 |
3090 | 002094.SZ | 2006-12-18 | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 |
3091 | 002094.SZ | 2006-12-15 | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 |
3092 rows × 11 columns
df2=df1.set_index('trade_date')#将交易日转化为行索引
df2
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 |
2020-08-06 | 002094.SZ | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2006-12-21 | 002094.SZ | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 |
2006-12-20 | 002094.SZ | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 |
2006-12-19 | 002094.SZ | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 |
2006-12-18 | 002094.SZ | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 |
2006-12-15 | 002094.SZ | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 |
3092 rows × 10 columns
#将dataframe数句进行排序
df2=df2.sort_index()
df2
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | |
---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||
2006-12-15 | 002094.SZ | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 |
2006-12-18 | 002094.SZ | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 |
2006-12-19 | 002094.SZ | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 |
2006-12-20 | 002094.SZ | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 |
2006-12-21 | 002094.SZ | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2020-08-06 | 002094.SZ | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 |
3092 rows × 10 columns
五日均线前四日没有均值 30日均线前29天没有均值
#添加两列数据 用缺失值填充
df2['ma5']=np.nan
df2['ma30']=np.nan
df2
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma30 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||||
2006-12-15 | 002094.SZ | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 | NaN | NaN |
2006-12-18 | 002094.SZ | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 | NaN | NaN |
2006-12-19 | 002094.SZ | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 | NaN | NaN |
2006-12-20 | 002094.SZ | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 | NaN | NaN |
2006-12-21 | 002094.SZ | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 | NaN | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2020-08-06 | 002094.SZ | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 | NaN | NaN |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | NaN | NaN |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | NaN | NaN |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | NaN | NaN |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | NaN | NaN |
3092 rows × 12 columns
用dataframe的rolling()函数来计算均线
df2['ma5']=df2.rolling(5).mean()#计算五日均线并赋值到ma5里面面
df2['ma30']=df2.rolling(10).mean()
df2
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma30 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||||
2006-12-15 | 002094.SZ | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 | NaN | NaN |
2006-12-18 | 002094.SZ | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 | NaN | NaN |
2006-12-19 | 002094.SZ | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 | NaN | NaN |
2006-12-20 | 002094.SZ | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 | NaN | NaN |
2006-12-21 | 002094.SZ | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 | 13.698 | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2020-08-06 | 002094.SZ | 4.71 | 4.89 | 4.68 | 4.72 | 4.68 | 0.04 | 0.8547 | 319919.20 | 152489.2340 | 4.542 | 4.479 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | 4.612 | 4.497 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | 4.664 | 4.521 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | 4.712 | 4.563 |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | 4.706 | 4.595 |
3092 rows × 12 columns
用for循环来求五日和三十日均线
for i in range(4,len(df2)):
df2.loc[df2.index[i],‘ma5’]=df2[‘close’][i-4:i+1].mean()
for i in range(30,len(df2)):
df2.loc[df2.index[i],‘ma30’]=df2[‘close’][i-29:i+1].mean()
df2
通用行情接口获取股票的数据
#前复权
dfb=ts.pro_bar(ts_code='002094.SZ',asset='E',adj='qfq',freq='D',ma=[5,30])
dfb
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma_v_5 | ma30 | ma_v_30 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 002094.SZ | 20200813 | 4.7100 | 4.9500 | 4.6700 | 4.8200 | 4.6700 | 0.1500 | 3.2120 | 418954.22 | 201812.7100 | 4.7200 | 412576.290 | 4.5150 | 300147.1873 |
1 | 002094.SZ | 20200812 | 4.6600 | 4.7400 | 4.5200 | 4.6700 | 4.8400 | -0.1700 | -3.5124 | 498934.88 | 230502.0850 | 4.7000 | 392769.286 | 4.4917 | 290509.2700 |
2 | 002094.SZ | 20200811 | 4.7800 | 5.1600 | 4.7100 | 4.8400 | 4.6900 | 0.1500 | 3.1983 | 734090.75 | 368740.7140 | 4.7020 | 351562.666 | 4.4720 | 277569.8207 |
3 | 002094.SZ | 20200810 | 4.6600 | 4.8600 | 4.6200 | 4.6900 | 4.5800 | 0.1100 | 2.4017 | 198384.00 | 93422.6390 | 4.6680 | 284537.652 | 4.4477 | 255973.1023 |
4 | 002094.SZ | 20200807 | 4.7200 | 4.7200 | 4.5100 | 4.5800 | 4.7200 | -0.1400 | -2.9661 | 212517.60 | 97453.5920 | 4.6560 | 342421.688 | 4.4287 | 251703.9597 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3088 | 002094.SZ | 20061221 | 2.5132 | 2.5452 | 2.4698 | 2.4736 | 2.5170 | -0.0434 | -1.7243 | 27489.50 | 36622.3038 | 2.5513 | 72527.774 | NaN | NaN |
3089 | 002094.SZ | 20061220 | 2.5358 | 2.5452 | 2.4736 | 2.5170 | 2.5547 | -0.0377 | -1.4757 | 28936.27 | 38466.0406 | NaN | NaN | NaN | NaN |
3090 | 002094.SZ | 20061219 | 2.4793 | 2.5924 | 2.4566 | 2.5547 | 2.5151 | 0.0396 | 1.5745 | 46970.06 | 63095.9578 | NaN | NaN | NaN | NaN |
3091 | 002094.SZ | 20061218 | 2.6301 | 2.6301 | 2.4265 | 2.5151 | 2.6961 | -0.1810 | -6.7134 | 71580.75 | 94609.3316 | NaN | NaN | NaN | NaN |
3092 | 002094.SZ | 20061215 | 2.7545 | 2.9223 | 2.6395 | 2.6961 | 1.4498 | 1.2463 | 85.9636 | 187662.29 | 279062.9609 | NaN | NaN | NaN | NaN |
3093 rows × 15 columns
#通用行情接口获取股票的数据
#pro=ts.pro_api('7240fde9e07a9cc82db49161b8f85769186c321ca754a13ded7722f0')
dfa=ts.pro_bar(ts_code='002094.SZ',asset='E',freq='D',ma=[5,30,80,255])#未复权
dfa
ts_code | trade_date | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma_v_5 | ma30 | ma_v_30 | ma80 | ma_v_80 | ma255 | ma_v_255 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 002094.SZ | 20200813 | 4.71 | 4.95 | 4.67 | 4.82 | 4.67 | 0.15 | 3.2120 | 418954.22 | 201812.7100 | 4.720 | 412576.290 | 4.5150 | 300147.1873 | 4.2628 | 230130.6018 | 4.5637 | 178117.1263 |
1 | 002094.SZ | 20200812 | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | 4.700 | 392769.286 | 4.4917 | 290509.2700 | 4.2539 | 226857.3108 | 4.5645 | 176640.3976 |
2 | 002094.SZ | 20200811 | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | 4.702 | 351562.666 | 4.4720 | 277569.8207 | 4.2480 | 223185.0464 | 4.5661 | 174858.6661 |
3 | 002094.SZ | 20200810 | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | 4.668 | 284537.652 | 4.4477 | 255973.1023 | 4.2419 | 216076.2075 | 4.5669 | 172237.3755 |
4 | 002094.SZ | 20200807 | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | 4.656 | 342421.688 | 4.4287 | 251703.9597 | 4.2366 | 215140.6233 | 4.5680 | 171626.7182 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3088 | 002094.SZ | 20061221 | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 | 13.532 | 72527.774 | NaN | NaN | NaN | NaN | NaN | NaN |
3089 | 002094.SZ | 20061220 | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3090 | 002094.SZ | 20061219 | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3091 | 002094.SZ | 20061218 | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3092 | 002094.SZ | 20061215 | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3093 rows × 19 columns
print(dfa['trade_date'])
dfa['trade_date']=pd.to_datetime(dfa['trade_date'],format='%Y%m%d')#将trade_date转化为时间序列对象
0 20200813
1 20200812
2 20200811
3 20200810
4 20200807
...
3088 20061221
3089 20061220
3090 20061219
3091 20061218
3092 20061215
Name: trade_date, Length: 3093, dtype: object
dfa['trade_date']
0 2020-08-13
1 2020-08-12
2 2020-08-11
3 2020-08-10
4 2020-08-07
...
3088 2006-12-21
3089 2006-12-20
3090 2006-12-19
3091 2006-12-18
3092 2006-12-15
Name: trade_date, Length: 3093, dtype: datetime64[ns]
dfa=dfa.set_index('trade_date')#将trade_date列设置为行索引
dfa
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma_v_5 | ma30 | ma_v_30 | ma80 | ma_v_80 | ma255 | ma_v_255 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||||||||||
2020-08-13 | 002094.SZ | 4.71 | 4.95 | 4.67 | 4.82 | 4.67 | 0.15 | 3.2120 | 418954.22 | 201812.7100 | 4.720 | 412576.290 | 4.5150 | 300147.1873 | 4.2628 | 230130.6018 | 4.5637 | 178117.1263 |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | 4.700 | 392769.286 | 4.4917 | 290509.2700 | 4.2539 | 226857.3108 | 4.5645 | 176640.3976 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | 4.702 | 351562.666 | 4.4720 | 277569.8207 | 4.2480 | 223185.0464 | 4.5661 | 174858.6661 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | 4.668 | 284537.652 | 4.4477 | 255973.1023 | 4.2419 | 216076.2075 | 4.5669 | 172237.3755 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | 4.656 | 342421.688 | 4.4287 | 251703.9597 | 4.2366 | 215140.6233 | 4.5680 | 171626.7182 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2006-12-21 | 002094.SZ | 13.33 | 13.50 | 13.10 | 13.12 | 13.35 | -0.23 | -1.7200 | 27489.50 | 36622.3038 | 13.532 | 72527.774 | NaN | NaN | NaN | NaN | NaN | NaN |
2006-12-20 | 002094.SZ | 13.45 | 13.50 | 13.12 | 13.35 | 13.55 | -0.20 | -1.4800 | 28936.27 | 38466.0406 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2006-12-19 | 002094.SZ | 13.15 | 13.75 | 13.03 | 13.55 | 13.34 | 0.21 | 1.5700 | 46970.06 | 63095.9578 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2006-12-18 | 002094.SZ | 13.95 | 13.95 | 12.87 | 13.34 | 14.30 | -0.96 | -6.7100 | 71580.75 | 94609.3316 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2006-12-15 | 002094.SZ | 14.61 | 15.50 | 14.00 | 14.30 | 7.69 | 6.61 | 85.9600 | 187662.29 | 279062.9609 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3093 rows × 18 columns
dfa=dfa.dropna()#删除所有包含缺失值的行
dfa
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma_v_5 | ma30 | ma_v_30 | ma80 | ma_v_80 | ma255 | ma_v_255 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||||||||||
2020-08-13 | 002094.SZ | 4.71 | 4.95 | 4.67 | 4.82 | 4.67 | 0.15 | 3.2120 | 418954.22 | 201812.7100 | 4.720 | 412576.290 | 4.5150 | 300147.1873 | 4.2628 | 230130.6018 | 4.5637 | 178117.1263 |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | 4.700 | 392769.286 | 4.4917 | 290509.2700 | 4.2539 | 226857.3108 | 4.5645 | 176640.3976 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | 4.702 | 351562.666 | 4.4720 | 277569.8207 | 4.2480 | 223185.0464 | 4.5661 | 174858.6661 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | 4.668 | 284537.652 | 4.4477 | 255973.1023 | 4.2419 | 216076.2075 | 4.5669 | 172237.3755 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | 4.656 | 342421.688 | 4.4287 | 251703.9597 | 4.2366 | 215140.6233 | 4.5680 | 171626.7182 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2008-01-18 | 002094.SZ | 22.37 | 22.78 | 21.31 | 22.00 | 22.37 | -0.37 | -1.6500 | 7117.75 | 15626.5612 | 22.410 | 11176.288 | 20.1280 | 14591.4590 | 18.6705 | 10446.1029 | 19.2786 | 15113.6755 |
2008-01-17 | 002094.SZ | 22.83 | 23.60 | 21.71 | 22.37 | 22.95 | -0.58 | -2.5300 | 12843.00 | 29122.5679 | 22.464 | 11789.694 | 19.9713 | 14669.2713 | 18.6728 | 10440.1544 | 19.2447 | 15199.2383 |
2008-01-16 | 002094.SZ | 22.49 | 23.75 | 22.23 | 22.95 | 22.73 | 0.22 | 0.9700 | 16961.21 | 39352.0179 | 22.480 | 11688.748 | 19.7987 | 14734.2013 | 18.6803 | 10428.4375 | 19.2101 | 15333.0699 |
2008-01-15 | 002094.SZ | 22.00 | 22.87 | 21.81 | 22.73 | 22.00 | 0.73 | 3.3200 | 10131.17 | 22875.4656 | 22.380 | 11286.864 | 19.5857 | 14598.3543 | 18.6721 | 10328.7040 | 19.1724 | 15547.2642 |
2008-01-14 | 002094.SZ | 21.90 | 22.44 | 21.75 | 22.00 | 22.27 | -0.27 | -1.2100 | 8828.31 | 19441.6871 | 22.232 | 12640.078 | 19.3907 | 14789.4103 | 18.6669 | 10240.7640 | 19.1394 | 16243.4646 |
2839 rows × 18 columns
删除不需要的列数据
dfa=dfa.drop('ma_v_5',axis=1)
dfa=dfa.drop('ma_v_30',axis=1)
dfa=dfa.drop('ma_v_80',axis=1)
dfa=dfa.drop('ma_v_255',axis=1)
dfa
ts_code | open | high | low | close | pre_close | change | pct_chg | vol | amount | ma5 | ma30 | ma80 | ma255 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trade_date | ||||||||||||||
2020-08-13 | 002094.SZ | 4.71 | 4.95 | 4.67 | 4.82 | 4.67 | 0.15 | 3.2120 | 418954.22 | 201812.7100 | 4.720 | 4.5150 | 4.2628 | 4.5637 |
2020-08-12 | 002094.SZ | 4.66 | 4.74 | 4.52 | 4.67 | 4.84 | -0.17 | -3.5124 | 498934.88 | 230502.0850 | 4.700 | 4.4917 | 4.2539 | 4.5645 |
2020-08-11 | 002094.SZ | 4.78 | 5.16 | 4.71 | 4.84 | 4.69 | 0.15 | 3.1983 | 734090.75 | 368740.7140 | 4.702 | 4.4720 | 4.2480 | 4.5661 |
2020-08-10 | 002094.SZ | 4.66 | 4.86 | 4.62 | 4.69 | 4.58 | 0.11 | 2.4017 | 198384.00 | 93422.6390 | 4.668 | 4.4477 | 4.2419 | 4.5669 |
2020-08-07 | 002094.SZ | 4.72 | 4.72 | 4.51 | 4.58 | 4.72 | -0.14 | -2.9661 | 212517.60 | 97453.5920 | 4.656 | 4.4287 | 4.2366 | 4.5680 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2008-01-18 | 002094.SZ | 22.37 | 22.78 | 21.31 | 22.00 | 22.37 | -0.37 | -1.6500 | 7117.75 | 15626.5612 | 22.410 | 20.1280 | 18.6705 | 19.2786 |
2008-01-17 | 002094.SZ | 22.83 | 23.60 | 21.71 | 22.37 | 22.95 | -0.58 | -2.5300 | 12843.00 | 29122.5679 | 22.464 | 19.9713 | 18.6728 | 19.2447 |
2008-01-16 | 002094.SZ | 22.49 | 23.75 | 22.23 | 22.95 | 22.73 | 0.22 | 0.9700 | 16961.21 | 39352.0179 | 22.480 | 19.7987 | 18.6803 | 19.2101 |
2008-01-15 | 002094.SZ | 22.00 | 22.87 | 21.81 | 22.73 | 22.00 | 0.73 | 3.3200 | 10131.17 | 22875.4656 | 22.380 | 19.5857 | 18.6721 | 19.1724 |
2008-01-14 | 002094.SZ | 21.90 | 22.44 | 21.75 | 22.00 | 22.27 | -0.27 | -1.2100 | 8828.31 | 19441.6871 | 22.232 | 19.3907 | 18.6669 | 19.1394 |
2839 rows × 14 columns
dfa[['ma5','ma30','ma80','ma255']].plot()
plt.show()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-afO9Enpq-1597387434793)(output_23_0.png)]
找出所有金叉和死叉日期
#用循环找出金叉和死叉
jincha=[]
shicha=[]
for i in range(1,len(dfa)):
if dfa['ma5'][i] >= dfa['ma30'][i] and dfa['ma5'][i-1] < dfa['ma30'][i-1]:
jincha.append(str(dfa.index[i]))
if dfa['ma5'][i] <= dfa['ma30'][i] and dfa['ma5'][i-1] > dfa['ma30'][i-1]:
shicha.append(str(dfa.index[i]))
print(jincha)
print(shicha)
['2020-06-29 00:00:00', '2020-05-21 00:00:00', '2020-04-16 00:00:00', '2020-03-12 00:00:00', '2020-01-23 00:00:00', '2019-11-01 00:00:00', '2019-09-27 00:00:00', '2019-07-18 00:00:00', '2019-04-24 00:00:00', '2018-12-13 00:00:00', '2018-07-30 00:00:00', '2018-05-30 00:00:00', '2018-05-10 00:00:00', '2018-03-27 00:00:00', '2017-11-09 00:00:00', '2017-10-20 00:00:00', '2017-09-25 00:00:00', '2017-07-13 00:00:00', '2017-05-22 00:00:00', '2017-03-29 00:00:00', '2017-01-23 00:00:00', '2016-12-12 00:00:00', '2016-07-07 00:00:00', '2016-06-27 00:00:00', '2016-04-21 00:00:00', '2016-02-26 00:00:00', '2016-01-12 00:00:00', '2015-08-24 00:00:00', '2015-06-25 00:00:00', '2015-04-20 00:00:00', '2014-10-23 00:00:00', '2014-10-10 00:00:00', '2014-09-19 00:00:00', '2014-04-28 00:00:00', '2014-03-19 00:00:00', '2013-12-24 00:00:00', '2013-11-08 00:00:00', '2013-06-04 00:00:00', '2013-04-17 00:00:00', '2012-11-08 00:00:00', '2012-10-30 00:00:00', '2012-09-24 00:00:00', '2012-07-27 00:00:00', '2012-06-04 00:00:00', '2012-05-25 00:00:00', '2012-03-27 00:00:00', '2012-03-09 00:00:00', '2011-11-29 00:00:00', '2011-09-09 00:00:00', '2011-09-07 00:00:00', '2011-07-20 00:00:00', '2011-05-24 00:00:00', '2011-04-20 00:00:00', '2011-03-29 00:00:00', '2011-03-14 00:00:00', '2011-01-25 00:00:00', '2010-12-03 00:00:00', '2010-11-22 00:00:00', '2010-09-30 00:00:00', '2010-06-30 00:00:00', '2010-05-12 00:00:00', '2010-01-22 00:00:00', '2010-01-06 00:00:00', '2009-10-29 00:00:00', '2009-09-24 00:00:00', '2009-08-31 00:00:00', '2009-08-18 00:00:00', '2009-06-15 00:00:00', '2009-04-29 00:00:00', '2009-03-13 00:00:00', '2009-03-03 00:00:00', '2008-12-22 00:00:00', '2008-12-18 00:00:00', '2008-08-07 00:00:00', '2008-05-28 00:00:00', '2008-03-11 00:00:00', '2008-02-28 00:00:00', '2008-01-25 00:00:00']
['2020-07-06 00:00:00', '2020-06-02 00:00:00', '2020-05-15 00:00:00', '2020-03-30 00:00:00', '2020-03-06 00:00:00', '2019-12-17 00:00:00', '2019-10-09 00:00:00', '2019-08-27 00:00:00', '2019-07-02 00:00:00', '2019-02-15 00:00:00', '2018-11-09 00:00:00', '2018-07-19 00:00:00', '2018-05-18 00:00:00', '2018-04-03 00:00:00', '2018-01-05 00:00:00', '2017-10-23 00:00:00', '2017-10-11 00:00:00', '2017-08-17 00:00:00', '2017-07-04 00:00:00', '2017-05-05 00:00:00', '2017-03-07 00:00:00', '2016-12-27 00:00:00', '2016-11-04 00:00:00', '2016-07-01 00:00:00', '2016-05-03 00:00:00', '2016-03-18 00:00:00', '2016-02-17 00:00:00', '2015-12-14 00:00:00', '2015-08-13 00:00:00', '2015-05-13 00:00:00', '2015-01-19 00:00:00', '2014-10-15 00:00:00', '2014-10-08 00:00:00', '2014-06-03 00:00:00', '2014-04-03 00:00:00', '2014-01-24 00:00:00', '2013-12-11 00:00:00', '2013-08-30 00:00:00', '2013-05-13 00:00:00', '2012-12-19 00:00:00', '2012-11-06 00:00:00', '2012-10-19 00:00:00', '2012-08-03 00:00:00', '2012-07-25 00:00:00', '2012-05-29 00:00:00', '2012-05-14 00:00:00', '2012-03-14 00:00:00', '2012-02-07 00:00:00', '2011-10-31 00:00:00', '2011-09-08 00:00:00', '2011-08-15 00:00:00', '2011-06-09 00:00:00', '2011-05-11 00:00:00', '2011-03-31 00:00:00', '2011-03-28 00:00:00', '2011-01-31 00:00:00', '2011-01-11 00:00:00', '2010-11-24 00:00:00', '2010-11-09 00:00:00', '2010-07-09 00:00:00', '2010-05-31 00:00:00', '2010-01-26 00:00:00', '2010-01-14 00:00:00', '2009-11-04 00:00:00', '2009-10-16 00:00:00', '2009-09-17 00:00:00', '2009-08-21 00:00:00', '2009-06-19 00:00:00', '2009-05-05 00:00:00', '2009-03-20 00:00:00', '2009-03-05 00:00:00', '2009-01-20 00:00:00', '2008-12-19 00:00:00', '2008-10-21 00:00:00', '2008-07-22 00:00:00', '2008-04-30 00:00:00', '2008-03-04 00:00:00', '2008-02-04 00:00:00']
不用循环来找出金叉和死叉
dfa['ma5']>dfa['ma30']
trade_date
2020-08-13 True
2020-08-12 True
2020-08-11 True
2020-08-10 True
2020-08-07 True
...
2008-01-18 True
2008-01-17 True
2008-01-16 True
2008-01-15 True
2008-01-14 True
Length: 2839, dtype: bool