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

乐清建站公司男通网站哪个好用

乐清建站公司,男通网站哪个好用,怎么修改网站主页,萍乡网站开发公司1 引言目前基于Python的量化回测框架有很多#xff0c;开源框架有zipline、vnpy、pyalgotrader和backtrader等#xff0c;而量化平台有Quantopian#xff08;国外#xff09;、聚宽、万矿、优矿、米筐、掘金等#xff0c;这些量化框架或平台各有优劣。就个人而言#xff…1 引言目前基于Python的量化回测框架有很多开源框架有zipline、vnpy、pyalgotrader和backtrader等而量化平台有Quantopian国外、聚宽、万矿、优矿、米筐、掘金等这些量化框架或平台各有优劣。就个人而言比较偏好用backtrader因为它功能十分完善有完整的使用文档安装相对简单直接pip安装即可。优点是运行速度快支持pandas的矢量运算支持参数自动寻优运算内置了talib股票分析技术指标库支持多品种、多策略、多周期的回测和交易支持pyflio、empyrica分析模块库、alphalens多因子分析模块库等扩展灵活可以集成TensorFlow、PyTorch和Keras等机器学习、神经网络分析模块。而不足之处在于backtrader学习起来相对复杂编程过程中使用了大量的元编程类class如果Python编程基础不扎实尤其是类的操作学起来会感到吃力。本文作为backtrader的入门系列之一对其运行框架进行简要介绍并以实际案例展示量化回测的过程。 2 backtrader简介如果将backtrader包分解为核心组件主要包括以下组成部分1数据加载Data Feed将交易策略的数据加载到回测框架中。 2交易策略Strategy该模块是编程过程中最复杂的部分需要设计交易决策得出买入/卖出信号。 3回测框架设置 Cerebro需要设置i初始资金ii佣金iii数据馈送iv交易策略v交易头寸大小。 4运行回测运行Cerebro回测并打印出所有已执行的交易。 5评估性能Analyzers:以图形和风险收益等指标对交易策略的回测结果进行评价。“Lines”是backtrader回测的数据由一系列的点组成通常包括以下类别的数据Open开盘价, High最高价, Low最低价, Close收盘价, Volume成交量, OpenInterest无的话设置为0。Data Feeds数据加载、Indicators技术指标和Strategies策略都会生成 Lines。价格数据中的所有”Open” (开盘价)按时间组成一条 Line。所以一组含有以上6个类别的价格数据共有6条 Lines。如果算上“DateTime”时间可以看作是一组数据的主键一共有7条 Lines。当访问一条 Line 的数据时会默认指向下标为 0 的数据。最后一个数据通过下标 -1 来访问在-1之后是索引0用于访问当前时刻。因此在回测过程中无需知道已经处理了多少条/分钟/天/月”0”一直指向当前值下标 -1 来访问最后一个值。3 回测应用实例量化回测说白了是使用历史数据去验证交易策略的性能因此回测的第一步是搭建交易策略这也是backtrader要设置的最重要和复杂的部分策略设定好后其余部分的代码编写是手到擒来。01构建策略Strategy交易策略类代码包含重要的参数和用于执行策略的功能要定义的参数或函数名如下1params-全局参数可选更改交易策略中变量/参数的值可用于参数调优。 2log日志可选记录策略的执行日志可以打印出该函数提供的日期时间和txt变量。3 __init__用于初始化交易策略的类实例的代码。 4notify_order可选跟踪交易指令order的状态。order具有提交接受买入/卖出执行和价格已取消/拒绝等状态。 5notify_trade可选跟踪交易的状态任何已平仓的交易都将报告毛利和净利润。 6next必选制定交易策略的函数策略模块最核心的部分。下面以一个简单的单均线策略为例展示backtrader的使用过程即当收盘价上涨突破20日均线买入做多当收盘价下跌跌穿20日均线卖出做空。为简单起见不报告交易回测的日志因此log、notify_order和notify_trade函数省略不写。class my_strategy1(bt.Strategy):#全局设定交易策略的参数params((maperiod,20),)def __init__(self):#指定价格序列self.datacloseself.datas[0].close# 初始化交易指令、买卖价格和手续费self.order Noneself.buyprice Noneself.buycomm None#添加移动均线指标内置了talib模块self.sma bt.indicators.SimpleMovingAverage(self.datas[0], periodself.params.maperiod)def next(self):if self.order: # 检查是否有指令等待执行, return# 检查是否持仓 if not self.position: # 没有持仓#执行买入条件判断收盘价格上涨突破20日均线if self.dataclose[0] self.sma[0]:#执行买入self.order self.buy(size500) else:#执行卖出条件判断收盘价格跌破20日均线if self.dataclose[0] self.sma[0]:#执行卖出self.order self.sell(size500)02数据加载Data Feeds策略设计好后第二步是数据加载backtrader提供了很多数据接口包括quandl美股、yahoo、pandas格式数据等我们主要分析A股数据。mpl.rcParams[axes.unicode_minus]False#先引入后面可能用到的包package import pandas as pd from datetime import datetime import backtrader as bt import matplotlib.pyplot as plt %matplotlib inline #正常显示画图时出现的中文和负号 from pylab import mpl mpl.rcParams[font.sans-serif][SimHei]#使用tushare旧版接口获取数据 import tushare as ts def get_data(code,start2010-01-01,end2020-03-31):dfts.get_k_data(code,autypeqfq,startstart,endend)df.indexpd.to_datetime(df.date)df[openinterest]0dfdf[[open,high,low,close,volume,openinterest]]return df dataframeget_data(600000)#回测期间 startdatetime(2010, 3, 31) enddatetime(2020, 3, 31) # 加载数据 data bt.feeds.PandasData(datanamedataframe,fromdatestart,todateend)03 回测设置Cerebro回测设置主要包括几项回测系统初始化数据加载到回测系统添加交易策略 broker设置如交易资金和交易佣金头寸规模设置作为策略一部分的交易规模等最后显示执行交易策略时积累的总资金和净收益。 # 初始化cerebro回测系统设置 cerebro bt.Cerebro() #将数据传入回测系统 cerebro.adddata(data) # 将交易策略加载到回测系统中 cerebro.addstrategy(my_strategy1) # 设置初始资本为10,000 startcash 10000 cerebro.broker.setcash(startcash) # 设置交易手续费为 0.2% cerebro.broker.setcommission(commission0.002) 04 执行回测输出回测结果。print(f净收益: {round(pnl,2)})d1start.strftime(%Y%m%d) d2end.strftime(%Y%m%d) print(f初始资金: {startcash}n回测期间{d1}:{d2}) #运行回测系统 cerebro.run() #获取回测结束后的总资金 portvalue cerebro.broker.getvalue() pnl portvalue - startcash #打印结果 print(f总资金: {round(portvalue,2)})初始资金: 10000 回测期间20100331:20200331 总资金: 12065.36 净收益: 2065.3605可视化对上述结果进行可视化使用内置的matplotlib画图。至此简单的单均线回测就完成了。下面图形展示了浦发银行在回测期间的价格走势、买卖点和交易总资金的变化等。当然本文着重以最简化的例子展示backtrader的框架和运行过程要想更详细的展示回测过程和结果还需要加入其他函数和模块关于Analyzers分析模块的应用请留意下一篇推文。%matplotlib inline #在jupyter notebook上运行 cerebro.plot(stylecandlestick) 4 结语backtrader是目前功能最完善的Python量化回测框架之一单机版得到欧洲很多银行、基金等金融机构的青睐并应用于实盘交易中。作为入门序列之一本文简单介绍了backtrader框架的各个组成部分然后以20日单均线策略为例展示了回测系统的编程和运行。公众号接下来将以专题的形式为大家全面介绍backtrader的应用。学习没有捷径要想全面而深入地学习backtrader回测框架最好的方法是研读其官方文档。参考资料backtrader官方文档https://www.backtrader.com/docu/
http://wiki.neutronadmin.com/news/13082/

相关文章:

  • 网站做权重数据库用于网站建设哪个好
  • 爱站网主要功能网站程序开发技术
  • 英文网站建设平台怎么查询二级建造师注册情况
  • 网站建设咨询有客诚信网站建设咨询企业网站的宣传功能体现在哪里
  • 网站建设案例分析题单位外部网站建设价格
  • 做竞价网站 要注意什么东莞网站新站排名
  • 两学一做教育考试网站北京海大网智网站建设制作公司
  • 用dreamware做网站建始县城乡建设局网站
  • 建网站一般用什么工具微信上的网站怎么做
  • 海外 国内网站建设智慧团建官方登录
  • 河间市网站建设公司成都哪里有做网站的公司
  • 襄樊做网站seo公司 杭州
  • 在网站建设工作会议上的讲话帮人家做网站能赚多少钱
  • 上海建站网站软件界面设计工具下载
  • 工信部网站黑名单网站建设与网页设计 视频教程
  • 凤台做网站网站悬浮
  • 玻璃行业做的非常有设计感的网站wordpress主题切换不了
  • 关于网站建设的题目那种系统做网站比较好
  • 怎么做电影网站的app开发需要多少费用
  • 上海私人网站建设企业专属空间登录
  • 建设网站实施条件清远 网站建设
  • 给网站做引流多少钱手机网站营销页
  • 怎么做跳转不影响原网站排名莆田关键词优化报价
  • asp手机网站wap网站自动
  • 个人网站源代码抖音代运营美发
  • 泉州网站seo外包公司规划设计公司毛利
  • 苏州高端网站开发网站在线制作系统
  • 北京建站哪家好app store怎么切换地区
  • 做网站策划计划书泰安肥城建设局网站
  • 做化学式的网站电子商务网站的定义