扫地僧backtrader技术教程获取方法

===========================

看过我教程的同学都知道,backtrader中可以用重采样resample功能来将小粒度数据合成大粒度数据,比如将1分钟k线数据合成1小时k线数据。比如当10点到11点间所有1分钟k线都出来后,合成1根11点结束的1小时k线,在10点半时,如果要取1小时k线,只能去上一根,即10点结束的1小时k线。也就是说,在当一个整点小时完全结束时,才能合成新的1小时k线。

但是有些用户有一个需求,就是要求最新的1小时即使还没走完,也要动态合成1小时k线,比如10点开始,进来一个1分钟线,那么1小时线就只包含这一分钟数据,再进来一个一分钟线,更新一小时线包含这两分钟的数据。这样动态更新,直到11点,这根1小时线测底定型。这样在10点半时,如果你访问最新1小时线,实际是10点到10点半的半小时线。backtrader通过回放replay来实现这种功能,非常简单。例子代码如下:

class St(bt.Strategy):def start(self):self.counter = 0def next(self): # 没根分钟线触发一次self.counter += 1txt = []txt += ['{:04d}'.format(self.counter)]txt += ['{:04d}'.format(len(self))]txt += ['{:04d}'.format(len(self.data))] # 数据长度在整点开始的1小时内是不变的,txt += ['{}'.format(self.datetime.datetime().isoformat())]txt += ['{:.2f}'.format(self.data.close[0])]print(','.join(txt))if self.counter % 10:  # 每隔10根1分钟线,执行操作return# Enter with 1 or revers with twice the opposite (2 or -2)if self.position.size <= 0:print('-- ORDER BUY')self.buy(size=abs(self.position.size * 2) or 1)else:print('-- ORDER SELL')self.sell(size=-abs(self.position.size * 2) or -1)def notify_order(self, order):if order.status == order.Completed:print('-- BEGIN ORDER COMPLETED --')txt = []txt += ['{:04d}'.format(self.counter)]txt += ['{}'.format(self.datetime.datetime().isoformat())]txt += ['{:.2f}'.format(order.executed.price)]txt += ['{:2d}'.format(order.executed.size)]print(','.join(txt))print('-- END ORDER COMPLETED --')print('-- PORTFOLIO SIZE:', self.position.size)cerebro = bt.Cerebro()data = bt.feeds.BacktraderCSVData(  # 分钟线dataname='../../datas/2006-min-005.txt',timeframe=bt.TimeFrame.Minutes
)
cerebro.replaydata(data, timeframe=bt.TimeFrame.Days, compression=1) # 分钟线合成日线cerebro.addstrategy(St)
cerebro.run()

上述代码要点:

1 分钟线触发next,但是,在next中,len(self.data)长度在整点开始的1小时内是不变的。

2 在next中,self.data.close[0],在整点开始的一小时内,随着分钟线的进来,在不断变化(等于最新分钟线的收盘价)

3 在next中,self.data.close[-1]取得的是上个整点小时的收盘价,而不是上一分钟的收盘价。

以上功能在其他回测框架是很难甚至不能实现。

backtrader利用小时间粒度数据动态合成大时间粒度数据:replay功能相关推荐

  1. 用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+智能web端高保真大数据动态可视化大屏看板+中国动态地图+智慧电商实时动态数据大屏看板

    作品内容:用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+web端高保真大数据动态可视化大屏看板+中国动态地图+电商实时动态数据大屏看板 ...

  2. 动态阈值_如何设置数据看板(大屏)数据异常报警的动态阈值

    当数据看板的数据来自基于多个异构数据源,而且需要根据细粒度数据做统计计算时,由于网络.服务器.数据库.传感器等影响,会出现数据更新中断及数据不完整情况.这种情况如果不及时处理,显示的异常数据会耽误或误 ...

  3. 2017大数据产业链的大变化:数据应用仍在奋斗 淘金路上见曙光

    文 | 中关村老李 (本文为作者独家投稿36大数据) 2017年已过去大半,是时候该回顾一下大数据在半年中的发展了.只有清楚了现在的位置,清楚行业发展的环境,才好对未来的决策做出准确的判断.(本文是针 ...

  4. 张晴晴:对话数据推动AIGC——大模型底层数据探索

    "Training data is technology" . 数据即科技,OpenAI的联合创始人IlyaSutskever在与知名科技媒体The Verge访谈中提到.Chat ...

  5. 大数据可视化之大屏实时数据监测设计及实现

    上周接到一个来自院长的需求,需求描述很简单:要实时监测医院的运营情况. 拿到一个需求,大家首先要做的是进行需求调研与分析,但由于我这个需求提出者跟需求描述比较特殊:首先,提出者是院长,他事务繁忙,基本 ...

  6. 作死之旅: 数据动态可视化

    关于数据可视化的一次艰难尝试 前言 自从接触了Python后,被它丰富的扩展库所倾倒,于是奋不顾身地投入到科学计算这个大坑.浸淫大概1个半月后,开始尝试一开就非常感兴趣的数据动态可视化,即把数据以动画 ...

  7. 火爆到把服务器搞瘫痪,一款小游戏,合成大西瓜

    点击"开发者技术前线",选择"星标????"让一部分开发者看到未来"  昨晚有一款小游戏非常火爆都冲上热搜了.我玩了一会,比刷抖音还容易上瘾.昨天用户 ...

  8. 太火爆了!这一款小游戏火到把服务器搞瘫痪,合成大西瓜

    点击上方"码农突围",马上关注这里是码农充电第一站,回复"666",获取一份专属大礼包真爱,请设置"星标"或点个"在看" ...

  9. 火到服务器瘫痪了,这款小游戏太火爆了,合成大西瓜

    点击上方"Github中文社区",关注看遍Github好玩的项目 大家好,我是huber! 昨晚有一款小游戏非常火爆都冲上热搜了.我玩了一会,比刷抖音还容易上瘾. 今天周末,在这里 ...

最新文章

  1. 机器学习-降维之主成分分析PCA算法原理及实战
  2. java 按钮组_java中创建一个按钮组,有10个按钮,分别写着0,1,2,,3。。。。9
  3. 函数式编程:如何高效简洁地对数据查询与变换
  4. c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...
  5. MVC +EF+linq 多表联查
  6. mathtype7.x与基本使用
  7. 几个支持SCORM的免费平台
  8. 图像处理库 FreeImage的简述
  9. JsBarcode条形码组件封装
  10. 移动CPU异步多核和大小核的那些事
  11. 【反思】写在腾讯电话面试之后
  12. 聚观早报|中国将是ChatGPT主要对手;​iPhone 15将使用USB-C接口
  13. 在Unity实现Canny边缘检测
  14. 【重识云原生】计算第2.2节——主流虚拟化技术之VMare ESXi
  15. 绍兴市第十六届计算机复赛试题,绍兴市第十七届少儿信息学竞赛复赛试题
  16. 功能实现_实现指北针(UI图片)效果
  17. 这次经济危机的一些看法
  18. Flink project java篇
  19. 使用nw.js将vue项目打包为可在xp系统运行的桌面程序
  20. 一个非常简单的flash制作工具

热门文章

  1. oracle uv,【赵强老师】Oracle数据库的内存结构
  2. 免费推广B2C独立站的技巧
  3. 官宣:3月27日的PMP考试,确定延期至6月、7月
  4. Jenkins定时构建:一分钟构建一次
  5. js 毫秒转天时分秒
  6. Sharding Proxy 实战
  7. python【解密犯罪时间】警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如“HH:MM”表示的时刻。
  8. 人工智能 | ShowMeAI资讯日报 #2022.06.10
  9. C# txt文本文件导入到dataGridView1 索引超出数组限定
  10. [生存志] 第133节 常忆西汉贤名录