很多朋友使用backtrader做A股的量化回测,往往忽视了一个问题,就是没注意对涨跌停的处理,导致回测结果严重失真。

backtrader中通过self.buy命令创建的市价买单将在下一个bar(次日)以开盘价执行,即使次日是全天涨停板,也会成交,而这并不符合实际,因为如果次日全天涨停板,那么买单通常会因买不到而无法执行。如果次日全天跌停板,那么卖单通常无法执行。

怎样才能模拟出次日涨停时买不进,跌停时卖不出这种场景呢?本教程提出两种解决方案。一种是利用带有效期的限价单来处理, 在策略的next方法中,核心代码如下:

upperprice是比次日涨停价稍低(低2分钱)的买单价格上限,订单有效截止期为下一个bar,注意截止期self.data.datetime[1]中的索引是1,表示下一个bar的日期时间(默认截止到该日晚上23点59分)。如果次日全天处于涨停状态,那么价格会始终在upperprice之上,导致无法成交,这样就模拟了无法以涨停价成交。若未成交,再往后推一天,该买单就失效了。跌停板的处理与此类似。

另一种更加好的方法是直接修改backtrader自己的经纪行broker定义,在bbroker.py文件里进行修改,具体方法可参考我们的视频课程。

backtrader最大的坑:没有内置处理涨跌停板相关推荐

  1. 微信这个坑**的内置浏览器--我很无语

    2019独角兽企业重金招聘Python工程师标准>>> 先来说一下微信的内置浏览器--qq浏览器x5内核,网上去查了一下它的评价,反正没有看到一篇是说它好的,看看知乎大神的评价,真的 ...

  2. api 微信内置浏览器js_多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序...

    前言 hello 小伙伴们,现在我已经正式入坑 uni-app 了.uni-app 已经发布好几个月了,期间也是踩坑无数,但是官方秉承着不抛弃不放弃的精神,积极解决开发者的各种简单的.复杂的问题,在此 ...

  3. backtrader源码解析_BackTrader 中文文档 内置指标参考

    https://www.backtrader.com/docu/indautoref/ AccelerationDecelerationOscillator 加速/减速技术指标(AC)测量当前驱动力的 ...

  4. 微信浏览器字体调整 PHP,微信h5禁止微信内置浏览器调整字体大小-爬坑

    微信webview内置了调整字体大小的功能,用户可以根据实际情况进行调整. image 1.ios 通过重写样式控制: body { /* IOS禁止微信调整字体大小 */ -webkit-text- ...

  5. 最全Python函数总结和应用(超详细+建议收藏),基本所有内置函数,心得都在这了,踩的坑也在里面了,最后还有函数的魂

    希望能帮助到你 前言 基础的函数了解 惊喜类 all() 和 any() lambda函数 sorted()函数 map()函数 filter()函数 reduce()函数 eval()函数 zip函 ...

  6. android微信网页视频播放器,安卓微信内置浏览器video的坑

    几个小时的探索,发现这是微信内置浏览器自身的问题. Q:我也有问题想问.我在做一个HTML5页面,其中使用video标签播放视频,但是这个video是总是表现在最顶层,无论怎样调节z-index属性都 ...

  7. 总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:歪头儿在帝都 cnblogs.com/sword-succe ...

  8. python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习

    Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...

  9. python学习笔记(装饰器、迭代器生成器、内置函数、软件目录开发规范)

    装饰器 定义:本质是函数,(功能:装饰其他函数):就是为其他函数添加附加功能 模拟场景一,在现有的函数中增加某个功能.现有的做法是定义新函数,并且加入函数中.需要修改源代码. def logger() ...

最新文章

  1. 告别视频通话“渣画质”,英伟达新算法最高压缩90%流量
  2. 如何提取cocos iOS应用程序APP与游戏安装包里的资源与文件
  3. python hook技术,python hook监听事件详解
  4. c语言趣味教学题目及答案,C语言趣味程序设计-题目百例.doc
  5. poj2079(一堆点找出最大的三角形)
  6. 带有谓词的Java中的功能样式-第1部分
  7. javascript实例——鼠标特效篇(包含2个实例)
  8. python判断文件是否打开_python如何判断一个文件是否处于打开状态?
  9. 计算机导论的知识,计算机导论课的认识
  10. @vue-cli的安装及vue项目创建
  11. 如何提升微服务的幸福感 | 凌云时刻
  12. as ssd测试软件得分少,【科普贴】如何读懂AS SSD的测试数据
  13. 资源分享 | 网易云课堂价值 399 的 office 三合一自学教程
  14. 《从零走向专业,面试产品经理岗位必须掌握的7个高效方法》
  15. 用于视力恢复的脑机接口综述(一)
  16. 笔试题6——幸福数字
  17. Audit login 与 Audit logout
  18. 最全面的微信小程序渲染图片的方式
  19. centos7虚拟机辅助DNS服务器
  20. STM32F767 (基础)CubeMX参数设置之RCC

热门文章

  1. Java 适配器模式详解
  2. mysql在线编辑器
  3. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统
  4. 手把手教你六类网线水晶头接法,超详细教程
  5. 如何退出python命令行
  6. 视频会议软件商Zoom为何可以出人头地?
  7. 同源策略的限制,没有同源策略会怎么样?
  8. Javafx顶级容器Stage(舞台)
  9. RK3399开发版android7.1双屏异触解决方法
  10. fprintf()函数的运用