目前哪个国内量化回测平台最好?
本地行情数据库的优点如果只是偶尔简单的回测,那直接从tushare、yfinance等数据源获取数据就可以了。但如果每天要进行多次回测且对延迟以及数据处理有很多要求时,建立本地行情数据库就是非常有必要的了。
本地行情数据库的几个优点:
网络延迟小只有第一次行情数据需要从远程读取。在多次远程读取行情数据需要多花钱的情况下,可以减少费用支出可以将数据和策略隔离。多个数据源导入到数据库,backtrader只从数据库读取行情数据,不用关心数据是从tushare读取、还是从yfinance读取可方便扩展支持更多指标。除datetime(时间)、open(开盘价)、close(收盘价)、high(最高价)、low(最低价)、volume(成交量)这些常用指标外,其他指标可以很好的扩展方便数据备份恢复。 mysql的生态非常成熟,常见任务比如备份恢复可以很方便完成本地行情数据库可以是sqlite、mysql、postgresql等sql数据库,也可以是mongodb、leveldb、rocksdb、dolphindb等nosql数据库。本文以mysql为例进行说明,其他数据库请求原理类似,暂不单独说明。
本文介绍几种从本地行情数据库读取数据到backtrader的方法,供参考。示例代码关注微信公众号查看,公众号:诸葛说talk
方法1 — pandas read_sql直接读取pandas作为数据处理的瑞士军刀,可以直接支持从sql读取数据生成DataFrame,当然需要将数据库连接作为参数。生成DataFrame后将其传给backtrader的bt.feeds.PandasData()类创建pandas data对象,策略便能使用了。示例代码关注微信公众号查看,公众号:诸葛说talk
方法2 — 读取数据库,再将数据记录转成pandas dataframe从数据库读取行情数据后,通过DataFrame()函数手动将list数据转成pandas dataframe数据,然后将其传给backtrader的bt.feeds.PandasData()类创建pandas data对象,策略便能使用了。示例代码关注微信公众号查看,公众号:诸葛说talk
方法3—自定义DataFeed从数据库读取DataFeed 即 backtrader 中的数据源,任何数据进入backtrader策略回测前都要通过DataFeed。方法3就是增加一个基于mysql的DataFeed,示例代码参考官方论坛,如下所示。首先,自定义MySQLData类使其继承自backtrader的数据基类 DataBase,如果需要从外部传入所需股票数据的代码和其一定范围内的K线数据,需要提前定义params。在 cerebro.adddata(data) 的时候,cerebro会遍历Datafeed的所有数据,此时会调用_load函数,需要在_load()函数里面将数据库中提取的每列数据对应到lines上。示例代码关注微信公众号查看,公众号:诸葛说talk
此外,如果你有除了datetime(时间)、open(开盘价)、close(收盘价)、high(最高价)、low(最低价)、volume(成交量) 之外的指标。需要提前自定义对应的lines,如下新增了turnover lines:
lines = ( "turnover" ) 结论上述三种方法都可以实现目的,不过方法3更加自由一些,特别是需要自定义lines的时候。 我自己用的时候也是基于方法3来实现,但为了更好的兼容其他库,我没有直接使用sqlalchemy来请求mysql,而是使用peewee 来访问mysql。peewee是一个简单好用的orm,支持sqlite, mysql, postgresql 和cockroachdb。
交流欢迎关注微信公众号,最新最全的文章会优先发布在微信公众号上。
参考https://community.backtrader.com/topic/1103/mysql-datafeedhttps://pandas.pydata.org/docs/reference/api/pandas.read_sql.htmlhttp://docs.peewee-orm.com/en/latest/目前哪个国内量化回测平台最好?
本地行情数据库的优点如果只是偶尔简单的回测,那直接从tushare、yfinance等数据源获取数据就可以了。但如果每天要进行多次回测且对延迟以及数据处理有很多要求时,建立本地行情数据库就是非常有必要的了。
本地行情数据库的几个优点:
网络延迟小只有第一次行情数据需要从远程读取。在多次远程读取行情数据需要多花钱的情况下,可以减少费用支出可以将数据和策略隔离。多个数据源导入到数据库,backtrader只从数据库读取行情数据,不用关心数据是从tushare读取、还是从yfinance读取可方便扩展支持更多指标。除datetime(时间)、open(开盘价)、close(收盘价)、high(最高价)、low(最低价)、volume(成交量)这些常用指标外,其他指标可以很好的扩展方便数据备份恢复。 mysql的生态非常成熟,常见任务比如备份恢复可以很方便完成本地行情数据库可以是sqlite、mysql、postgresql等sql数据库,也可以是mongodb、leveldb、rocksdb、dolphindb等nosql数据库。本文以mysql为例进行说明,其他数据库请求原理类似,暂不单独说明。
本文介绍几种从本地行情数据库读取数据到backtrader的方法,供参考。示例代码关注微信公众号查看,公众号:诸葛说talk
方法1 — pandas read_sql直接读取pandas作为数据处理的瑞士军刀,可以直接支持从sql读取数据生成DataFrame,当然需要将数据库连接作为参数。生成DataFrame后将其传给backtrader的bt.feeds.PandasData()类创建pandas data对象,策略便能使用了。示例代码关注微信公众号查看,公众号:诸葛说talk
方法2 — 读取数据库,再将数据记录转成pandas dataframe从数据库读取行情数据后,通过DataFrame()函数手动将list数据转成pandas dataframe数据,然后将其传给backtrader的bt.feeds.PandasData()类创建pandas data对象,策略便能使用了。示例代码关注微信公众号查看,公众号:诸葛说talk
方法3—自定义DataFeed从数据库读取DataFeed 即 backtrader 中的数据源,任何数据进入backtrader策略回测前都要通过DataFeed。方法3就是增加一个基于mysql的DataFeed,示例代码参考官方论坛,如下所示。首先,自定义MySQLData类使其继承自backtrader的数据基类 DataBase,如果需要从外部传入所需股票数据的代码和其一定范围内的K线数据,需要提前定义params。在 cerebro.adddata(data) 的时候,cerebro会遍历Datafeed的所有数据,此时会调用_load函数,需要在_load()函数里面将数据库中提取的每列数据对应到lines上。示例代码关注微信公众号查看,公众号:诸葛说talk
此外,如果你有除了datetime(时间)、open(开盘价)、close(收盘价)、high(最高价)、low(最低价)、volume(成交量) 之外的指标。需要提前自定义对应的lines,如下新增了turnover lines:
lines = ( "turnover" ) 结论上述三种方法都可以实现目的,不过方法3更加自由一些,特别是需要自定义lines的时候。 我自己用的时候也是基于方法3来实现,但为了更好的兼容其他库,我没有直接使用sqlalchemy来请求mysql,而是使用peewee 来访问mysql。peewee是一个简单好用的orm,支持sqlite, mysql, postgresql 和cockroachdb。
交流欢迎关注微信公众号,最新最全的文章会优先发布在微信公众号上。
参考https://community.backtrader.com/topic/1103/mysql-datafeedhttps://pandas.pydata.org/docs/reference/api/pandas.read_sql.htmlhttp://docs.peewee-orm.com/en/latest/目前哪个国内量化回测平台最好?
常用的量化软件有python、matlab、java、C++。从开发的难度而言,python和matlab都比较容易,java和C++麻烦一些。从运行速度而言,C++、java要快于matlab和python。
对于大部分人而言,尤其是初学者,开发占用的时间远大于运行时间。如果追求运行速度的话,可以先把策略开发出来,再用C++重写。
从量化资源而言,python资源多于matlab,而且matlab是商业软件,python是免费开源的。因此推荐用python。
如果是编程零基础,入门量化的编程语言毋庸置疑是选择Python。
数据方面:提供近10年日/分钟/Tick级别股票数据,及财务、分红送配、行业、板块等数据。还提供股指期货、商品期货的连续数据。
研究方面:支持Python、Matlab、C、C++、C#语言,提供API接口。
回测方面:支持股票、期货等品种回测及其混合回测,支持日、分钟、Tick级回测。
模拟交易方面:支持股票、商品期货、股指期货等品种的日、分钟级别的模拟交易。
实盘交易方面:支持股票、期货、两融等量化实盘,实盘开通需要客户提交申请和平台人工审核,具有实盘交易权限后也可以手动交易。
社区活跃度还是较高的。
投研+交易的一站式量化投研系统,提供丰富的数据、多语言策略开发、tick级回测、仿真模拟、实盘交易、风控、绩效等专业量化服务。最重要的是,本地化终端运行无需上传策略,毕竟策略的安全性是用户的致命痛点。
完整的股市Leve1数据、上市公司财务数据、完整的停复权信息。实时更新行情数据,盘后更新财务数据。
此外还提供基金(包括ETF、LOF、分级A/B基金、货币基金)的行情和净值数据,金融期货数据、股票指数数据、行业板块数据、概念板块数据、宏观数据、行情数据等。
提供基于IPython Notebook的研究平台,支持Tick级数据,支持Python2、Python3。提供API(Application Programming Interface)。
回测方面:支持股票、基金、期货等品种的回测,支持日、分钟、Tick级回测。
模拟交易方面:支持股票、股指期货、商品期货、ETF等品种的日、分钟、Tick级别的模拟交易。
实盘交易方面:支持多种实盘交易,包括股票、场内基金、期货的自动化交易。
多平台、多语言选择
使 用 免 费
目前哪个国内量化回测平台最好?
常用的量化软件有python、matlab、java、C++。从开发的难度而言,python和matlab都比较容易,java和C++麻烦一些。从运行速度而言,C++、java要快于matlab和python。
对于大部分人而言,尤其是初学者,开发占用的时间远大于运行时间。如果追求运行速度的话,可以先把策略开发出来,再用C++重写。
从量化资源而言,python资源多于matlab,而且matlab是商业软件,python是免费开源的。因此推荐用python。
如果是编程零基础,入门量化的编程语言毋庸置疑是选择Python。
数据方面:提供近10年日/分钟/Tick级别股票数据,及财务、分红送配、行业、板块等数据。还提供股指期货、商品期货的连续数据。
研究方面:支持Python、Matlab、C、C++、C#语言,提供API接口。
回测方面:支持股票、期货等品种回测及其混合回测,支持日、分钟、Tick级回测。
模拟交易方面:支持股票、商品期货、股指期货等品种的日、分钟级别的模拟交易。
实盘交易方面:支持股票、期货、两融等量化实盘,实盘开通需要客户提交申请和平台人工审核,具有实盘交易权限后也可以手动交易。
社区活跃度还是较高的。
投研+交易的一站式量化投研系统,提供丰富的数据、多语言策略开发、tick级回测、仿真模拟、实盘交易、风控、绩效等专业量化服务。最重要的是,本地化终端运行无需上传策略,毕竟策略的安全性是用户的致命痛点。
完整的股市Leve1数据、上市公司财务数据、完整的停复权信息。实时更新行情数据,盘后更新财务数据。
此外还提供基金(包括ETF、LOF、分级A/B基金、货币基金)的行情和净值数据,金融期货数据、股票指数数据、行业板块数据、概念板块数据、宏观数据、行情数据等。
提供基于IPython Notebook的研究平台,支持Tick级数据,支持Python2、Python3。提供API(Application Programming Interface)。
回测方面:支持股票、基金、期货等品种的回测,支持日、分钟、Tick级回测。
模拟交易方面:支持股票、股指期货、商品期货、ETF等品种的日、分钟、Tick级别的模拟交易。
实盘交易方面:支持多种实盘交易,包括股票、场内基金、期货的自动化交易。
多平台、多语言选择
使 用 免 费
目前哪个国内量化回测平台最好?
一个投资策略是否有效果,必须通过充分的验证才能知晓。因此,回测功能必不可少。炒股挺多年的,我用过很多量化平台,总结下自己的经验吧,碰到过不同情况,帮大家避避坑。
1.有部分软件在评价某个买入模型的效果时,通常按照买入后持仓5日的收盘价,或者买入后5日内的最高价来统计这个买入模型的胜率与收益情况,这样做是失真的。
2.没有“独立账户”的概念,可能导致在某一日行情好时,选出多只股票时全部统计在内,然而实际在操作时由于资金有限,通常是不可能买入选出的全部股票的,这样就会造成与实际情况不符。
3.还有一部分软件在回测过程的买入是按发出买入信号的次日按照开盘价进行买入统计的。然而,在实际的量化交易过程中,通常是在发出交易信号的同时就进行相应的买入操作,这就会造成买入价格的的差异,导致整体的回测结果与真实交易过程产生比较大的差距。
我用的比较好的一款量化交易---DIY的,都是自己设置,试错,回测而来的。交流是彼此都有收获才行,很多人只会问,今天买啥?你这怎么弄的?能不能告诉我?这款软件大家看一看是不是值得。
领先一代,机器人炒股1.DIY炒股机器人采用全自动委托下单的功能,能够根据策略发出的买卖信号,自动执行股票买卖,这在目前的炒股软件市场还是相对比较领先的。
2.自动执行的好处一方面在于不需要人工实时盯盘,能够在股票满足策略时第一时间进行买入卖出,避免了股票快速上涨时买入成本过高,或者快速股价下跌时不能及时止损,这一点在短线交易时尤为重要;另一方面避免了主观情绪的干扰,能够忠实的去执行策略,最大化的发挥策略效果。
目前哪个国内量化回测平台最好?
一个投资策略是否有效果,必须通过充分的验证才能知晓。因此,回测功能必不可少。炒股挺多年的,我用过很多量化平台,总结下自己的经验吧,碰到过不同情况,帮大家避避坑。
1.有部分软件在评价某个买入模型的效果时,通常按照买入后持仓5日的收盘价,或者买入后5日内的最高价来统计这个买入模型的胜率与收益情况,这样做是失真的。
2.没有“独立账户”的概念,可能导致在某一日行情好时,选出多只股票时全部统计在内,然而实际在操作时由于资金有限,通常是不可能买入选出的全部股票的,这样就会造成与实际情况不符。
3.还有一部分软件在回测过程的买入是按发出买入信号的次日按照开盘价进行买入统计的。然而,在实际的量化交易过程中,通常是在发出交易信号的同时就进行相应的买入操作,这就会造成买入价格的的差异,导致整体的回测结果与真实交易过程产生比较大的差距。
我用的比较好的一款量化交易---DIY的,都是自己设置,试错,回测而来的。交流是彼此都有收获才行,很多人只会问,今天买啥?你这怎么弄的?能不能告诉我?这款软件大家看一看是不是值得。
领先一代,机器人炒股1.DIY炒股机器人采用全自动委托下单的功能,能够根据策略发出的买卖信号,自动执行股票买卖,这在目前的炒股软件市场还是相对比较领先的。
2.自动执行的好处一方面在于不需要人工实时盯盘,能够在股票满足策略时第一时间进行买入卖出,避免了股票快速上涨时买入成本过高,或者快速股价下跌时不能及时止损,这一点在短线交易时尤为重要;另一方面避免了主观情绪的干扰,能够忠实的去执行策略,最大化的发挥策略效果。
目前哪个国内量化回测平台最好?
谢邀。我用过很多量化平台,总结下自己的经验吧。
题目是没法回答的,太过于描述性,没有最好的量化回测平台,各家平台都有优势。每个人,在平台之间的选择,是从使用成本和易用性综合考虑的。
使用成本上,分为,是否免费以及收费多少。免费回测的平台,有很多,如商业型平台,金字塔,文华,交易开拓者,优矿,聚宽,米筐,万矿,掘金,mc,这些平台中,除了mc我没有怎么尝试过之外,其他都有用过,也有一些开源的平台,比如,zipline,backtrader,pyalgotrade,qauntaxis,qauntdigger。收费的,一般是针对机构提供服务的,一般收费很贵,你说了很多,好像没有提费用,所以,我理解为,你想找一个免费又好用的框架,对吗?
从易用性上来看,商业性平台,文华,tb,一般都比简单,上手很快,但是,考虑到你的需求,回测要考虑到基本面,报表相关的数据,最好是在聚宽,米筐,掘金里面选,掘金平台支持matlab和python(matlab收费,还可能被禁止使用,是在不是好工具,被python替代,是有原因的)。米筐是提供了一个开源的框架的,重点推荐下米筐。
最想推荐的还是完全开源框架,比如zipline或者backtrader,想要做好回测,有时候,是需要自己从数据,到交易的流程,都给捋一遍的,这样,回测出问题了,你很容易,知道是哪里出问题了,这个时候,开源就很重要。
如果你是大佬,希望有客服帮你处理问题,那么,就去找一个贵的平台吧,我猜,他们客服一定响应很及时。
目前哪个国内量化回测平台最好?
谢邀。我用过很多量化平台,总结下自己的经验吧。
题目是没法回答的,太过于描述性,没有最好的量化回测平台,各家平台都有优势。每个人,在平台之间的选择,是从使用成本和易用性综合考虑的。
使用成本上,分为,是否免费以及收费多少。免费回测的平台,有很多,如商业型平台,金字塔,文华,交易开拓者,优矿,聚宽,米筐,万矿,掘金,mc,这些平台中,除了mc我没有怎么尝试过之外,其他都有用过,也有一些开源的平台,比如,zipline,backtrader,pyalgotrade,qauntaxis,qauntdigger。收费的,一般是针对机构提供服务的,一般收费很贵,你说了很多,好像没有提费用,所以,我理解为,你想找一个免费又好用的框架,对吗?
从易用性上来看,商业性平台,文华,tb,一般都比简单,上手很快,但是,考虑到你的需求,回测要考虑到基本面,报表相关的数据,最好是在聚宽,米筐,掘金里面选,掘金平台支持matlab和python(matlab收费,还可能被禁止使用,是在不是好工具,被python替代,是有原因的)。米筐是提供了一个开源的框架的,重点推荐下米筐。
最想推荐的还是完全开源框架,比如zipline或者backtrader,想要做好回测,有时候,是需要自己从数据,到交易的流程,都给捋一遍的,这样,回测出问题了,你很容易,知道是哪里出问题了,这个时候,开源就很重要。
如果你是大佬,希望有客服帮你处理问题,那么,就去找一个贵的平台吧,我猜,他们客服一定响应很及时。