m0_75147459 2023-05-04 14:12 采纳率: 33.3%
浏览 28
已结题

量化交易,如何合并分钟k线,实现k线按时间等分切片?

股票期货行情软件里的多分钟周期k线,都是不跨天的。
比如:软件里显示的160分钟k线,是一根160分钟,一根是80分钟,循环。180分钟k线,是一根180分钟,一根60分钟,循环。
行情软件中的90分钟,100 110 130;140 150;160 170 180、190 200 210 220、230,这些周期,都不是按照时间等分切片的k线。

如何才能得到以上这些周期,按照时间等分切片的k线?并且把新得到的k线装进“交易师”这个软件里显示在主图上?让主图指标可以应用在新建的k线上?

下面两个图,是举例的,160分钟k线,180分钟k线的时间切分方式。文华,通达信,交易师都是用的第一种切分方式。第二种是按时间等分切片。

img

img

  • 写回答

1条回答 默认 最新

  • 风雨同流 2023-05-04 16:19
    关注

    要得到按照时间等分切片的k线,可以使用Python中的pandas库进行处理。具体步骤如下:

    1. 读取原始数据

    使用pandas中的read_csv函数读取原始数据,并将数据的日期时间列作为datetime类型转换。

    import pandas as pd
    df = pd.read_csv('file.csv', parse_dates=['datetime'])
    
    1. 重采样

    使用pandas中的resample函数将原数据按照需要的周期进行重采样,然后使用聚合函数(如OHLC)对每个时间段内的数据进行聚合。

    period = '160min'
    resampled_df = df.resample(period, on='datetime').agg({'open': 'first',
                                                            'high': 'max',
                                                            'low': 'min',
                                                            'close': 'last'})
    
    1. 重新设置索引

    使用reset_index函数将时间列变为普通列,并添加一个新的时间列作为重采样后的时间点。

    resampled_df.reset_index(inplace=True)
    resampled_df.rename(columns={'datetime': 'new_datetime'}, inplace=True)
    
    1. 导出数据

    可以使用pandas中的to_csv函数将新数据导出为csv文件。

    resampled_df.to_csv('resampled_file.csv', index=False)
    
    1. 在交易师中显示新数据

    将导出的csv文件导入交易师,然后在主图上添加指标即可应用于新建的k线数据上。

    以上是一种基本的思路,具体实现方式可能会因数据格式、所使用的周期等因素而有所不同,需要具体问题具体分析。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 创建了问题 5月4日