1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python不同时间周期k线_python均线周期转换(日线-周线)

python不同时间周期k线_python均线周期转换(日线-周线)

时间:2023-11-06 07:21:00

相关推荐

python不同时间周期k线_python均线周期转换(日线-周线)

开发工具jupyter,使用的版本基于python3.8

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

# 数据从网易股票接口下载

# http://quotes./service/chddata.html?code=0000002&start=0101&end=2025&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP

# 下载后,通过笔记本程序另存为utf8格式

stock_data = pd.read_csv("D:\\temp\\robot\\000002.csv")

# 对数据进行重排序(下载数据是按照日期降序的,因此需要重新进行升序排列)

stock_data.sort_values(by="日期",inplace=True,ascending=True)

# 设定转换的周期:周'W',月'M',季度'Q',五分钟'5min',12天'12D'

period_type = 'W'

# 设置索引为DatetimeIndex, TimedeltaIndex or PeriodIndex类型

stock_data.set_index('日期', inplace=True)

# 把普通索引转换成时间索引,resample函数只支持时间索引

stock_data.index = pd.to_datetime(stock_data.index)

# 将日线数据转换成周线数据

# 1.进行转换,用一周中最后一个交易日的变量值,赋值给周线每个变量值

# 2.周线的【涨跌额】等于一周中每日【涨跌额】相加

# 3.周线的【涨跌幅】等于一周中每日【涨跌幅】相乘

# 4.周线的【开盘价】等于一周中第一个交易日的【开盘价】

# 5.周线的【最高价】等于一周中【最高价】的最大值

# 6.周线的【最低价】等于一周中【最低价】的最小值

# 7.周线的【成交量】等于一周中【成交量】相加

# 8.周线的【成交额】等于一周中【成交额】想加

period_stock_data = stock_data.resample(period_type).last()

period_stock_data['涨跌额'] = stock_data['涨跌额'].resample(period_type).sum()

period_stock_data['涨跌幅'] = stock_data['涨跌幅'].resample(period_type).apply(lambda x:(x/100+1.0).prod() - 1.0)*100

period_stock_data['开盘价'] = stock_data['开盘价'].resample(period_type).first()

period_stock_data['最高价'] = stock_data['最高价'].resample(period_type).max()

period_stock_data['最低价'] = stock_data['最低价'].resample(period_type).min()

period_stock_data['成交量'] = stock_data['成交量'].resample(period_type).sum()

period_stock_data['成交金额'] = stock_data['成交金额'].resample(period_type).sum()

# 删除那些一周都没有交易数据的

period_stock_data = period_stock_data[period_stock_data['股票代码'].notnull()]

period_stock_data.reset_index(inplace=True)

# period_stock_data

# 画周线均线图

period_stock_data['MA5'] = period_stock_data.收盘价.rolling(5).mean()

period_stock_data['MA10'] = period_stock_data.收盘价.rolling(10).mean()

period_stock_data['MA20'] = period_stock_data.收盘价.rolling(20).mean()

#period_stock_data['EMA5'] = period_stock_data.收盘价.ewm(span = 5).mean()

#period_stock_data['EMA10'] = period_stock_data.收盘价.ewm(span = 10).mean()

#period_stock_data['EMA20'] = period_stock_data.收盘价.ewm(span = 20).mean()

#period_stock_data[['收盘价', 'MA5', 'MA10', 'MA20']].plot(subplots = False, figsize = (12,8))

period_stock_data[['MA5', 'MA10', 'MA20']].plot(subplots = False, figsize = (12,8))

下面是运行效果:

image.png

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。