当前位置: 首页 > news >正文

flash网站导航条怎么做深圳市房地产信息系统平台

flash网站导航条怎么做,深圳市房地产信息系统平台,网站开发页面设计,网站的ico怎么做Backtrader 文档学习- Observers - Benchmarking 1.概述 backtrader包括两种不同类型的对象#xff0c;可以帮助跟踪#xff1a; Observers 观察者Analyzers 分析器 在分析器领域中#xff0c;已有TimeReturn对象#xff0c;用于跟踪整个组合价值#xff08;即包括现金…Backtrader 文档学习- Observers - Benchmarking 1.概述 backtrader包括两种不同类型的对象可以帮助跟踪 Observers 观察者Analyzers 分析器 在分析器领域中已有TimeReturn对象用于跟踪整个组合价值即包括现金的回报率的演变。 显然作为观察者在添加一些基准测试的同时还可做一些工作将观察者和分析器组合在一起跟踪相同的对象指标。 Observers 和 Analyzers 之间的主要区别 Observers 的lines特性它记录每个值更适合绘图和实时查询当然会消耗更多的内存。Analyzers 通过get_analysis方法返回一组结果实现可能不会在运行结束之前提供任何结果所以Analyzers记录最终结果内存消耗小。 2.Analyzers - Benchmarking 标准的TimeReturn分析器已扩展为支持跟踪数据源。涉及的两个主要参数 timeframe默认值None 如果为None则将报告整个回测期间的完整回报 传递TimeFrame.NoTimeFrame以考虑没有时间限制的整个数据集data默认值None 跟踪参考资产而不是组合价值。 注意 此数据必须已经使用addata、resampledata或replaydata将其添加到cerebro实例中 可以跟踪组合的年度回报率 import backtrader as btcerebro bt.Cerebro() #年度回报率 cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframebt.TimeFrame.Years)... # add datas, strategies ...results cerebro.run() strat0 results[0]# If no name has been specified, the name is the class name lowercased # 所有加载数据组合的分析结果 tret_analyzer strat0.analyzers.getbyname(timereturn) print(tret_analyzer.get_analysis())如果跟踪单一数据的回报率 import backtrader as btcerebro bt.Cerebro()data bt.feeds.OneOfTheFeeds(datanameabcde, ...) cerebro.adddata(data) # 分析器指定数据 cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframebt.TimeFrame.Years,datadata)... # add strategies ...results cerebro.run() strat0 results[0]# If no name has been specified, the name is the class name lowercased # 分析指定数据的分析结果 tret_analyzer strat0.analyzers.getbyname(timereturn) print(tret_analyzer.get_analysis())在这里插入代码片如果两者都要跟踪最好是给分析器指定名称 import backtrader as btcerebro bt.Cerebro()data bt.feeds.OneOfTheFeeds(datanameabcde, ...) cerebro.adddata(data) #跟踪单一数据的分析器 cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframebt.TimeFrame.Years,datadata, _namedatareturns) #跟踪组合数据的分析器 cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframebt.TimeFrame.Years)_nametimereturns)... # add strategies ...results cerebro.run() strat0 results[0]# If no name has been specified, the name is the class name lowercased #跟踪组合数据的分析结果 tret_analyzer strat0.analyzers.getbyname(timereturns) print(tret_analyzer.get_analysis()) #跟踪单一数据的分析结果 tdata_analyzer strat0.analyzers.getbyname(datareturns) print(tdata_analyzer.get_analysis())3.Observers - Benchmarking 可以参考前面分析器的基准对比看区别。 由于后台机制允许在观察器内部使用分析器增加了两个新的观察器: TimeReturnBenchmark observers和analyzers两者都使用 bt.analyzers.TimeReturn分析器来收集结果。 与上面的代码不同完整的示例运行展示它们的功能区别。 4.Observing TimeReturn python ./observer-benchmark.py --plot --timereturn --timeframe notimeframe注意选项 timereturn 告诉样本只做这件事timeframe notimeframe 告诉分析器考虑整个数据集而不考虑时间范围。 最后绘制的值为-0.26。 起始现金从图表中可以明显看出为50K货币单位该策略最终为36970货币单位因此价值下降了-26%。 与图示的回报率一致。 5.Observing Benchmarking 基准测试也将显示timereturn结果所以让我们在基准测试处于活动状态时运行相同的操作: python ./observer-benchmark.py --plot --timeframe notimeframe没有timereturn参数 策略优于资产:-0.26 vs -0.33 值得庆祝但至少清楚这个策略没有资产那么糟糕。 可惜上图的0.26 和 0.33 的图示重合了 不够清晰。 以年度为基础跟踪 python ./observer-benchmark.py --plot --timeframe years策略最后值从-0.26到-0.27变化很小 另一方面资产显示的最终值为-0.35与上面的-0.33相比 价值如此接近的原因是从2005年到2006年策略和基准资产几乎都处于2005年初的起步水平。 切换到较低的时间框架例如week整个情况就会发生变化 python ./observer-benchmark.py --plot --timeframe weeks现在 Benchmark观察者显示出紧张波动状态因为现在跟踪组合和数据的每周回报率数字上下波动由于去年的最后一周没有交易活动资产几乎没有变动因此最后显示的值为0.00最后一周之前的最后收盘价为25.54样本数据收盘价为25.55差异体现在第四个小数点上才能区分 6.Observing Benchmarking - Another data 示例使用不同的数据进行基准测试。默认情况下使用数据 benchdata1以Oracle公司为基准。考虑使用-time frame not time frame的整个数据集 。 python ./observer-benchmark.py --plot --timeframe notimeframe --benchdata1现在就很清楚没有庆祝的理由 原yahoo数据策略对于notimeframe没有改变仍然为-26%-0.26但对oracle数据进行基准测试时该数据在同一时期内增长了23%0.23 既可以改变策略也可以改变资产对象才能更好地进行交易。 可以理解为策略可能不适用于某个股票股票可能也不适用于某个策略 7.Concluding 现在有两种使用相同的基础代码/计算来跟踪TimeReturn和Benchmark的方法 Observers 观察者TimeReturn和BenchmarkAnalyzer分析器带有data参数的TimeReturn和TimeReturn 当然基准测试并不能保证盈利只是比较。 代码的Help usage: ipykernel_launcher.py [-h] [--data0 DATA0] [--data1 DATA1][--benchdata1] [--fromdate FROMDATE][--todate TODATE] [--printout] [--cash CASH][--period PERIOD] [--stake STAKE] [--timereturn][--timeframe {None,days,weeks,months,years,notimeframe}][--plot [kwargs]]Benchmark/TimeReturn Observers Sampleoptional arguments:-h, --help show this help message and exit--data0 DATA0 Data0 to be read in (default:./datas/yhoo-1996-2015.txt)--data1 DATA1 Data1 to be read in (default:./datas/orcl-1995-2014.txt)--benchdata1 Benchmark against data1 (default: False)--fromdate FROMDATE Starting date in YYYY-MM-DD format (default:2005-01-01)--todate TODATE Ending date in YYYY-MM-DD format (default: 2006-12-31)--printout Print data lines (default: False)--cash CASH Cash to start with (default: 50000)--period PERIOD Period for the crossover moving average (default: 30)--stake STAKE Stake to apply for the buy operations (default: 1000)--timereturn Use TimeReturn observer instead of Benchmark (default:None)--timeframe {None,days,weeks,months,years,notimeframe}TimeFrame to apply to the Observer (default: None)--plot [kwargs], -p [kwargs]Plot the read data applying any kwargs passed Forexample: --plot stylecandle (to plot candles)(default: None)8.代码 from __future__ import (absolute_import, division, print_function,unicode_literals)import argparse import datetime import randomimport backtrader as btclass St(bt.Strategy):params ((period, 10),(printout, False),(stake, 1000),)def __init__(self):sma bt.indicators.SMA(self.data, periodself.p.period)self.crossover bt.indicators.CrossOver(self.data, sma)def start(self):if self.p.printout:txtfields list()txtfields.append(Len)txtfields.append(Datetime)txtfields.append(Open)txtfields.append(High)txtfields.append(Low)txtfields.append(Close)txtfields.append(Volume)txtfields.append(OpenInterest)print(,.join(txtfields))def next(self):if self.p.printout:# Print only 1st data ... is just a check that things are runningtxtfields list()txtfields.append(%04d % len(self))txtfields.append(self.data.datetime.datetime(0).isoformat())txtfields.append(%.2f % self.data0.open[0])txtfields.append(%.2f % self.data0.high[0])txtfields.append(%.2f % self.data0.low[0])txtfields.append(%.2f % self.data0.close[0])txtfields.append(%.2f % self.data0.volume[0])txtfields.append(%.2f % self.data0.openinterest[0])print(,.join(txtfields))if self.position:if self.crossover 0.0:if self.p.printout:print(CLOSE {} %{}.format(size,self.data.close[0]))self.close()else:if self.crossover 0.0:self.buy(sizeself.p.stake)if self.p.printout:print(BUY {} %{}.format(self.p.stake,self.data.close[0]))TIMEFRAMES {None: None,days: bt.TimeFrame.Days,weeks: bt.TimeFrame.Weeks,months: bt.TimeFrame.Months,years: bt.TimeFrame.Years,notimeframe: bt.TimeFrame.NoTimeFrame, }def runstrat(argsNone):args parse_args(args)cerebro bt.Cerebro()cerebro.broker.set_cash(args.cash)dkwargs dict()if args.fromdate:fromdate datetime.datetime.strptime(args.fromdate, %Y-%m-%d)dkwargs[fromdate] fromdateif args.todate:todate datetime.datetime.strptime(args.todate, %Y-%m-%d)dkwargs[todate] todatedata0 bt.feeds.YahooFinanceCSVData(datanameargs.data0, **dkwargs)cerebro.adddata(data0, nameData0)cerebro.addstrategy(St,periodargs.period,stakeargs.stake,printoutargs.printout)if args.timereturn:cerebro.addobserver(bt.observers.TimeReturn,timeframeTIMEFRAMES[args.timeframe])else:benchdata data0if args.benchdata1:data1 bt.feeds.YahooFinanceCSVData(datanameargs.data1, **dkwargs)cerebro.adddata(data1, nameData1)benchdata data1cerebro.addobserver(bt.observers.Benchmark,databenchdata,timeframeTIMEFRAMES[args.timeframe])cerebro.run()if args.plot:pkwargs dict()if args.plot is not True: # evals to True but is not Truepkwargs eval(dict( args.plot )) # args were passedcerebro.plot(**pkwargs)def parse_args(pargsNone):parser argparse.ArgumentParser(formatter_classargparse.ArgumentDefaultsHelpFormatter,descriptionBenchmark/TimeReturn Observers Sample)parser.add_argument(--data0, requiredFalse,default../../datas/yhoo-1996-2015.txt,helpData0 to be read in)parser.add_argument(--data1, requiredFalse,default../../datas/orcl-1995-2014.txt,helpData1 to be read in)parser.add_argument(--benchdata1, requiredFalse, actionstore_true,help(Benchmark against data1))parser.add_argument(--fromdate, requiredFalse,default2005-01-01,helpStarting date in YYYY-MM-DD format)parser.add_argument(--todate, requiredFalse,default2006-12-31,helpEnding date in YYYY-MM-DD format)parser.add_argument(--printout, requiredFalse, actionstore_true,help(Print data lines))parser.add_argument(--cash, requiredFalse, actionstore,typefloat, default50000,help(Cash to start with))parser.add_argument(--period, requiredFalse, actionstore,typeint, default30,help(Period for the crossover moving average))parser.add_argument(--stake, requiredFalse, actionstore,typeint, default1000,help(Stake to apply for the buy operations))parser.add_argument(--timereturn, requiredFalse, actionstore_true,defaultNone,help(Use TimeReturn observer instead of Benchmark))parser.add_argument(--timeframe, requiredFalse, actionstore,defaultNone, choicesTIMEFRAMES.keys(),help(TimeFrame to apply to the Observer))# Plot optionsparser.add_argument(--plot, -p, nargs?, requiredFalse,metavarkwargs, constTrue,help(Plot the read data applying any kwargs passed\n\nFor example:\n\n --plot stylecandle (to plot candles)\n))if pargs:return parser.parse_args(pargs)return parser.parse_args()if __name__ __main__:runstrat()
http://www.pierceye.com/news/561646/

相关文章:

  • 公司网站模板中英文苏州网站建设套餐
  • 威海外贸网站建设可拖拽html网页编辑器
  • 西乡塘网站建设企业vi形象设计是什么意思
  • 做服装到哪个网站拿货品质好广告软文小故事200字
  • 廊坊网站建设设计wordpress上传后如何访问
  • 禅城网站制作网站推广优化技巧大全
  • xampp做的网站能搜索吗广州外贸公司集中地
  • 茶网站建设网站的基础建设
  • 大型机械网站建设公司免费的cms视频网站
  • 杭州做网站哪家好在线设计平台都有哪些比较好用的
  • 内外网网站栏目建设方案专门做电容的网站
  • 一般网站字体多大有没有做公司网站的
  • 做国外进口衣服的网站好怎么推广公众号
  • 安县建设局网站网站建设分金手指排名一
  • 社区网站制作教程社交媒体营销
  • 云南省建设工程质量监督管理站网站房产网站推广
  • 做网站挣钱吗营销导向的企业网站建设步骤
  • 优化网站 优帮云网站是意识形态建设
  • 网站内容建设运维服务wordpress envato主题
  • 响应式网站的几种尺寸推广网站的几种方法
  • php 打开网站东莞网站建设网页推广
  • 正品海外购网站有哪些公司网站开发费用兴田德润在哪儿
  • 怎样做编辑发到网站自由建网站的网络程序
  • 网站开发 卡片cms建站系统 下载
  • 新浪门户网站是谁做的科技网站建设
  • 免费网站建设合同书山西网站建设企业
  • 网站建设空间什么意思学做网站什么语言合适
  • 网站开发的形式有( )友情链接英文
  • 帝国网站管理系统前台免费photoshop下载
  • 深圳一百讯网站建设wordpress汉化包