通用 CSV 数据加载馈送 – backtrader中文教程
通用 CSV 数据馈送
GenericCSVData的实现,它可用于解析不同的 CSV 格式。
GitHub 中的问题,问题 #6清楚地表明需要有一些东西可以实际处理任何传入的 CSV 数据馈送。
参数声明中:
class GenericCSVData(feed.CSVDataBase): params = ( ('nullvalue', float('NaN')), ('dtformat', '%Y-%m-%d %H:%M:%S'), ('tmformat', '%H:%M:%S'), ('datetime', 0), ('time', -1), ('open', 1), ('high', 2), ('low', 3), ('close', 4), ('volume', 5), ('openinterest', 6), )
因为该类继承自 CSVDataBase,所以可以使用一些标准参数:
fromdate
(采用 datetime 对象来限制开始日期)todate
(采用 datetime 对象)来限制结束日期)headers
(默认:True,表示 CSV 数据是否有标题行)separator
(默认值:“,”,分隔字段的字符)dataname
(具有 CSV 数据的文件或类似文件的对象的名称)
除非您打算执行重采样,否则一些其他参数(如name
,compression
和)只是提供信息。timeframe
当然更重要的是新定义的参数的含义:
datetime
(默认值:0)包含日期(或日期时间)字段的列time
(默认值:-1)如果与日期时间字段分开,则包含时间字段的列(-1 表示它不存在)open
(默认: 1),high
(默认: 2),low
(默认: 3),close
(默认: 4),volume
(默认: 5),openinterest
(默认: 6)包含相应字段的列的索引
如果传递负值(例如:-1),则表示该字段不存在于 CSV 数据中
nullvalue
(默认:浮动(’NaN’))如果缺少应该存在的值将使用的值(CSV 字段为空)
dtformat
(默认:%Y-%m-%d %H:%M:%S)用于解析日期时间 CSV 字段的格式
tmformat
(默认值:%H:%M:%S)如果“存在”,则用于解析时间 CSV 字段的格式(“时间”CSV 字段的默认值不存在)
这可能足以涵盖许多不同的 CSV 格式和缺少值。
涵盖以下要求的示例用法:
- 将输入限制在 2000 年
- HLOC 顺序而不是 OHLC
- 缺失值替换为零 (0.0)
- 提供每日条形图,日期时间只是日期,格式为 YYYY-MM-DD
- 不
openinterest
存在列
编码:
import datetime import backtrader as bt import backtrader.feeds as btfeed ... ... data = btfeed.GenericCSVData( dataname='mydata.csv', fromdate=datetime.datetime(2000, 1, 1), todate=datetime.datetime(2000, 12, 31), nullvalue=0.0, dtformat=('%Y-%m-%d'), datetime=0, high=1, low=2, open=3, close=4, volume=5, openinterest=-1 )
稍作修改的要求:
- 将输入限制在 2000 年
- HLOC 顺序而不是 OHLC
- 缺失值替换为零 (0.0)
- 提供日内柱,带有单独的日期和时间列
- 日期格式为 YYYY-MM-DD
- 时间格式为 HH.MM.SS
- 不存在列
openinterest
编码:
import datetime import backtrader as bt import backtrader.feeds as btfeed ... ... data = btfeed.GenericCSVData( dataname='mydata.csv', fromdate=datetime.datetime(2000, 1, 1), todate=datetime.datetime(2000, 12, 31), nullvalue=0.0, dtformat=('%Y-%m-%d'), tmformat=('%H.%M.%S'), datetime=0, time=1, high=2, low=3, open=4, close=5, volume=6, openinterest=-1 )
评论被关闭。