1.
# -*- coding: utf-8 -*-
#今有部分股票交易数据表“trd_data”,字段名称为:
# Stkcd 、Trddt、开盘价、最高价、最低价、收盘价、交易量、交易金额
# 读取股票代码601668,2017-01-01至2018-01-01的交易数据,
# 计算收盘价5、10、20日移动平均价格,
# 返回计算结果,结果用一个数据框ma表示,第1-3列依次为5、10、20日移动平均价格
def return_values():
#1.读取数据
import pandas as pd
data=pd.read_excel('trd_data.xlsx')
d=data[data.iloc[:,0].values==601668]
d=d[d.iloc[:,1].values>='2017-01-01']
d=d[d.iloc[:,1].values<='2018-01-01']
d.index=range(len(d)) #索引重新排序
#2.移动平均线指标的计算
ma5=d['收盘价'].rolling(5).mean() #计算5日的移动平均
ma10=d['收盘价'].rolling(10).mean() #计算10日的移动平均
ma20=d['收盘价'].rolling(20).mean() #计算20日的移动平均
#3.合并数据并保存Excel表
ma={'MA5':ma5,'MA10':ma10,'MA20':ma20}
ma=pd.DataFrame(ma)
return ma
2.
# -*- coding: utf-8 -*-
#今有部分股票交易数据表“trd_data”,字段名称为:
# Stkcd 、Trddt、开盘价、最高价、最低价、收盘价、交易量、交易金额
# 读取股票代码601668,2017-01-01至2018-01-01的交易数据,
# 计算MACD指标,公式参考书本
# 返回计算结果,结果用一个数据框macd表示
def return_values():
#1.读取数据
import pandas as pd
data=pd.read_excel('trd_data.xlsx')
d=data[data.iloc[:,0].values==601668]
d=d[d.iloc[:,1].values>='2017-01-01']
d=d[d.iloc[:,1].values<='2018-01-01']
d.index=range(len(d)) #索引重新排序
#2.平滑异同平均线MACD指标值
import numpy as np
#指数平滑移动平均
ema12=pd.DataFrame.ewm(d['收盘价'],span=12).mean()
ema26=pd.DataFrame.ewm(d['收盘价'],span=26).mean()
dif=ema12-ema26
dea=np.zeros((len(dif))) #以dif为长度做全为0的数组
macd=np.zeros((len(dif)))
for t in range(len(dif)):
if t==0:
dea[t]=dif[t]
if t>0:
dea[t]=(2*dif[t]+8*dea[t-1])/10
macd[t]=2*(dif[t]-dea[t])
#3.合并数据并保存Excel表
macd={'MACD':macd}
macd=pd.DataFrame(macd)
return macd
3.
#今有部分股票交易数据表“trd_data”,字段名称为:
# Stkcd 、Trddt、开盘价、最高价、最低价、收盘价、交易量、交易金额
# 读取股票代码601668,2017-01-01至2018-01-01的交易数据,
# 计算KDJ指标,公式参考书本