python程序化 k线指定时间更新_python3数据处理 —— K线周期处理

简介

原始素材为1分钟周期的k线数据——开高低收量时间

目标是将1分钟周期的K线数据转化为n分钟周期的K线数据

关键步骤

指标处理 → 归纳 → 整理

核心函数pandas.to_datetime

DataFrame.resample

DataFrame.agg

核心步骤说明

k线中的日期数据全部转化为时间格式(timestamp)优点:从txt等文件导入数据后,时间是字符串格式,形式多样,需要统一化

时间格式支持加减运算和布尔运算

时间格式转化日期,小时,星期等数据方便

案例代码

import pandas as pd

# 原始数据 data —— DataFrame格式 其中,timestamp为字符串日期格式 如'2020-05-06 22:21'

# 参数 interval -- str格式,指目标数据的周期,如'5min'

# 参数准备

columns_list = ['open', 'high', 'low', 'close', 'volume']

fun = ['first', 'max', 'min', 'last', 'sum']

sinceTime = '2020-01-04T00:00:00.000Z'

endTime = '2020-05-04T00:00:00.000Z'

# 标准化日期指标

data['timestamp'] = pd.to_datatime(data['timestamp']

# 归纳整理

data_interval = data.resample(rule=interval, on = 'timestamp', base=0, label='left', closed='left').\

agg(dict(zip(columns_list,fun)))

# 规范化处理

data_interval.reset_index(inplace=True)

data_interval.fillna(method='ffill') # 如果是期货数据,则删除非交易时间段数据

# 筛选时间

sinceTime_ = pd.to_datetime(sinceTime, '%Y-%m-%dT%H:%M:%S.%fZ', utc=True)

endTime_ = pd.to_datetime(endTime, '%Y-%m-%dT%H:%M:%S.%fZ', utc=True)

data_interval = data_interval[(data_interval['timestamp'] >= sinceTime_) & (data_interval['timestamp'] <= endTime_)]

附注:三个核心函数介绍

pandas.to_datetime

pandas.to_datetime(arg, errors='raise', utc=None, format=None, unit=None)

# 参数解释

errors: 'raise' 无效的解析将引发异常

'coerce'无效解析将被设置为NaT

'ignore'无效解析将返回输入值

utc: 布尔值,返回utc即协调世界时

format: 字符串格式

unit: 默认值为'ns',精确到微妙,'s'为秒

扩展功能

# 转化为字符串

df['time_str'] = df.timestamp.dt.strftime('%d%m%y %H:%M')

df['month'] = df.timestamp.dt.month

df['year'] = df.timestamp.dt.year

df['hour'] = df.timestamp.dt.hour

df['minute'] = df.timestamp.dt.minute

DataFrame.resample

DataFrame.resample(rule, how=None, on=None, axis=0, fill_method=None, closed=None, label=None, convention='start', kind=None, loffset=None, limit=None, base=0)

# 参数解释

rule: 重采样频率,如'M', '5min', Second(15)

on: 用于采样的数据轴

how: 聚合的方法,例如’mean', 'ohlc', 'np.max'

axis: 采样的坐标轴,横向采样还是纵向采样

fill_method: 如何差值,例如‘ffill', 'bfill'等

closed: 采样时闭合的一端,’right' 或 ‘left'

label: 索引采用左边的时间还是右边的时间

loffset: 标签的时间矫正值(这在切换时区很有用)

limit: 向前或向后填充时,允许填充的最大时期数

kind: 聚合到时期(’period‘)或时间戳(’timestamp),默认聚合到时间序列的索引类型

convention:重采样从低频到高频采用的约定,‘start’ 或者 ‘end’

DataFrame.agg

DataFrame.agg(func, axis=0, *args, **kwargs)

# 参数说明

func:function, str, list 或者 dict

axis:在行或者列上面做聚合

# 举例

df = pd.DataFrame([[1,2,3],

[4,5,6],

[7.8.9],

[np.nan, np.nan, np.nan]],

columns=['A', 'B', 'C'])

df.agg(['sum', 'min'])

df.agg({'A':['sum', 'min'], 'B':['min', 'max']})

df.agg('mean', axis=1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python编写股票分析程序的一般步骤: 1. 获取并处理数据 首先,需要获取股票数据。可以使用Python中的第三方库,如pandas、tushare等,从互联网上获取实时或历史股票数据。获取到数据后,需要进行数据清洗、转换、填充等处理,以便后续分析。 2. 数据分析 在数据处理完成后,需要进行数据分析。可以使用Python中的第三方库,如numpy、scipy、statsmodels、sklearn等,对数据进行统计分析、回归分析、时间序列分析、机器学习等分析方法。分析结果可以用于制定投资策略、风险控制等。 3. 可视化展示 数据分析完成后,还需要将分析结果进行可视化展示。可以使用Python中的第三方库,如matplotlib、seaborn等,绘制股票走势图、K线图、散点图、柱状图等图表,以便更直观地展示分析结果。 4. 代码封装 将以上步骤的代码进行封装,以便后续可以方便地调用。可以使用Python中的函数、类等方法进行封装,也可以使用第三方库,如pandas、tushare提供的API进行封装。将代码封装好后,可以方便地进行股票分析,也可以将程序发布到各种平台,供其他投资者使用。 总之,使用Python编写股票分析程序需要具备一定的编程能力和股票分析知识,还需要了解相关的第三方库和API。同时,需要注意数据的准确性和保密性,以避免数据泄露和损失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值