美文网首页
python均线周期转换(日线->周线)

python均线周期转换(日线->周线)

作者: 路远处幽 | 来源:发表于2020-09-27 16:29 被阅读0次

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

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    # 数据从网易股票接口下载
    # http://quotes.money.163.com/service/chddata.html?code=0000002&start=20150101&end=20200925&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

    相关文章

      网友评论

          本文标题:python均线周期转换(日线->周线)

          本文链接:https://www.haomeiwen.com/subject/aanbpctx.html