有很多人建立了自己本地的行情数据库,希望能够从本地数据库将数据发到backtrader,供策略使用。一个通用的方法是将数据库的行情数据读到pandas dataframe里,然后将这个数据帧的数据传给backtrader的pandas feed数据对象,这样策略就能够使用了。
但是有些同学不想通过pandas dataframe中转,而是想直接从数据库将数据喂给backtrader的数据馈送对象,这就需要针对数据库开发专门的data feed类了。
以下就是backtrader社区提供的一个从MySQL数据库读取数据的feed类MySQLData,大家可以试一试。
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import datetime
from backtrader.feed import DataBase
from backtrader import date2num
from sqlalchemy import create_engine
class MySQLData(DataBase):
params = (
('dbHost', None),
('dbUser', None),
('dbPWD', None),
('dbName', None),
('ticker', 'ISL'),
('fromdate', datetime.datetime.min),
('todate', dateti