Backtrader 文档学习- Broker - Fillers

Backtrader 文档学习- Broker - Fillers

1. 概述

当使用交易量进行订单执行时,backtrader的模拟broker具有默认策略:

  • 忽略交易量 (默认策略是broker忽略成交量)
    基于两个前提条件:
  • 在流动性充裕的市场中进行交易,以完全可以交易 买入/卖出订单
  • 真实的交易量匹配真实的世界

快速示例是Fill 或 Kill 订单。即使到了tick分辨率并且有足够交易量去 fill,backtrader broker无法知道在市场中有多少额外的参与者,以区分此类订单是否应匹配,确定订单 Fill 部分还是 订单被 Kill 。
但是broker可以接受Volume Fillers,filler确定在给定时间点上必须使用多少成交量进行订单匹配。

2.The fillers signature

backtrader生态系统中的filler可以是任何callable,其匹配以下签名:

callable(order, price, ago)

其中:

  • order 将要执行的订单是可以访问“data”对象
    该对象是操作的目标Data,创建 size/price ,执行 size/price/remain size 和其他详细信息
  • price订单将被执行的价格
  • ago 是在其中在order中查找成交量和价格值 中的data的索引
    在几乎所有情况下,这将是“0”(当前时间点),但在另一个情况下,为了覆盖Close订单,这可能是“-1”,前一天的数值 。

例如访问bar 的交易量,操作:

barvolume = order.data.volume[ago]

callable 是函数,也可以是支持__call__方法的类的实例,如:

 class MyFiller(object):def __call__(self, order, price, ago):pass

3.Adding a Filler to the broker

Adding a Filler to the broker

最直接的方法是使用“set_filler”:

import backtrader as btcerebro = Cerebro()
cerebro.broker.set_filler(bt.broker.fillers.FixedSize())

第二个选择是完全替换“broker”,尽管这可能只适用于重写了部分功能的“BrokerBack”的子类:

import backtrader as btcerebro = Cerebro()
filler = bt.broker.fillers.FixedSize()
newbroker = bt.broker.BrokerBack(filler=filler)
cerebro.broker = newbroker

示例
backtrader
源包含一个名为“volumefilling”的示例,该示例允许测试一些集成的“fillers”(最初全部)

参考
类backtrader.fillers.FixedSize()
返回给定订单的执行大小,使用条形图中的百分比。
百分比是使用参数perc设置的
参数:

  • size(默认值:无)最大可执行的size。 如果小于size ,则执行时间的实际bar的volume成交量也受限制。
    如果此参数的值设置为False,则整个bar的成交量将用于匹配订单

类 backtrader.fillers.FixedBarPerc()
返回给定订单的执行size,使用成交量中的百分比。
此百分比由参数perc设置
参数:

  • perc(默认值:100.0)(有效值:0.0-100.0)
    用于执行订单bar的成交量百分比

类 backtrader.fillers.BarPointPerc()
返回给定订单的执行size。 使用minmov进行分区,成交量将在高-低范围内均匀分布。
从给定价格的分配成交量中,将使用perc百分比
参数:

  • minmov(默认值:0.01)最小价格变动。用于划分高-低区间,在可能的价格之间按比例分配成交量
  • perc(默认值:100.0)(有效值:0.0-100.0)用于匹配的订单执行价格的分配成交量的百分比

小结:

当使用交易量进行订单执行时,backtrader的模拟broker具有默认策略: 忽略交易量 ,broker可以接受Volume Fillers,filler确定在给定时间点上必须使用多少成交量进行订单匹配,更符合实际操作时考虑的重要因素。

broker除了考虑价格因素外,还可以考虑volume成交量作为交易的依据,如果达到订单要求的成交量值或比例,才能够成交。

可惜是没有用例测试,演示通过成交量控制order的成交。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度强化学习(王树森)笔记11

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

HTML5的新特性

目录 一&#xff0c;新增语义化标签 二&#xff0c;新增的多媒体标签 三&#xff0c;新增input表单 四&#xff0c;新增的表单属性 一&#xff0c;新增语义化标签 二&#xff0c;新增的多媒体标签 1&#xff0c;音频&#xff1a;<audio>.。。用MP3 <audio src…

带自执行安装脚本的ROS包的生成

带自执行安装脚本的ROS包的生成 在打包和安装ROS包时, 会有一些固定的配置需要去人为实现, 比如网络配置, 设备树的管理等, 比较麻烦, 不如一次性解决掉, 所以查了相关文档 过程: # 使用bloom-generate rosdebian生成debian文件夹 bloom-generate rosdebian # 进入debian文件…

ICV:signoff_check_drc脚本

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 往期文章链接: ICV:metal fill insertion流程 ICV:metal fill insertion脚本

Windows XP x86 sp3 安装 Python3.4.4

1 下载 Python3.4.4&#xff0c;下载地址&#xff0c;点击红色部分。 Python Release Python 3.4.4 | Python.org 2 一路 Next&#xff0c;将 C:\Python34 和 C:\Python34\Scripts 加入环境变量。 3 python 查看版本&#xff0c;python -m pip list 查看安装的包。 4 其他(打…

【数据结构】链表的一些面试题

简单不先于复杂&#xff0c;而是在复杂之后。 链表面试题 删除链表中等于给定值 val 的所有结点。OJ链接 //1.常规方法struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* cur head, *prev NULL;while(cur){if(cur->val val){//1.头删/…

Python使用分治算法作归并排序

对于分治算法的一个较为常规的应用中&#xff0c;归并排序是一个使用分治算法的排序方式。给定一个随机排序的数组&#xff0c;我们要将其元素按照升序或者降序的方式进行排序&#xff0c;可以设想到这样的一种算法&#xff0c;如果一个数组的上半部分和下半部分已经排好序&…

聚观早报 | 360 AI搜索App上线;岚图汽车与京东达成合作

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 1月30日消息 360 AI搜索App上线 岚图汽车与京东达成合作 三星电子在硅谷新设实验室 小米平板7系列参数曝光 Spa…

【全csdn最前沿LVGL9】基础对象lv_obj

文章目录 前言一、LVGL9的下载二、基础对象lv_obj2.1 概述2.2 布局2.3 lv_obj的使用创建一个lv_obj设置大小设置位置设置对齐父对象与子对象事件 总结 前言 LVGL&#xff08;LittlevGL&#xff09;是一个开源的嵌入式图形库&#xff0c;用于在嵌入式系统中创建用户界面。LVGL提…

故障诊断 | 一文解决,BiLSTM双向长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举

qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举 code review! 文章目录 qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举contains()isEmpty() 类似的其他函数列举通用容器类函数字符串特有函数 在Qt C开发中&#xff0c; contains() 和 isEmpty()…

【深度学习】全连接神经网络

全连接神经网络 全连接神经网络的结构 整体结构 神经网络:类似神经元,前一层可以不断地传递给下一层。 神经网络模型由多个单元结构组成。 单元结构 单元结构的数学公式: a = h ( w x + b ) a=h(wx+b) a=h(wx+b) h(x):激活函数 比如sigmoid就是激活函数之一隐藏层大多…

Sketch 99.5中文 优秀的网站和移动应用设计软件

Sketch for mac用于数字世界的图形设计。在一个屡获殊荣的软件包中提供强大的工具和优雅的界面。因为做美丽的事情应该是一种快乐&#xff0c;而不是负担。 软件下载&#xff1a;Sketch 99.5中文激活版下载 Sketch支持每层多个填充&#xff0c;边框和阴影&#xff1b;具有强大的…

数据结构day7

1.思维导图 1.二叉树递归创建 2.二叉树先中后序遍历 3.二叉树计算节点 4.二叉树计算深度。 5.编程实现快速排序降序

点云数据集标注的相关工具

点云数据标注是三维计算机视觉领域中重要的一环&#xff0c;专门用于为点云数据添加语义信息&#xff0c;以便进行后续的机器学习和深度学习处理。以下是一些用于点云数据标注的软件及其特点的详细介绍&#xff1a; 1. CloudCompare 描述&#xff1a;CloudCompare是一个开源软…

python中的josn方法相关介绍

如果需要在不同的编程语言之间传递对象&#xff0c;就必须把对象序列化为标准格式&#xff0c;比如XML&#xff0c;但更好的方法是序列化为JSON&#xff0c;因为JSON表示出来就是一个字符串&#xff0c;可以被所有语言读取&#xff0c;也可以方便地存储到磁盘或者通过网络传输。…

太美医疗冲刺港交所上市:融资“数据打架”,老虎基金提前退出

1月29日&#xff0c;浙江太美医疗科技股份有限公司&#xff08;下称“太美医疗”或“太美医疗科技”&#xff09;递交招股书&#xff0c;准备在港交所主板上市。特别说明的是&#xff0c;该公司曾于2021年12月29日在上海证券交易所科创板递交上市申请。 据贝多财经了解&#x…

2024前端面试总结—JS篇(文档持续更新中。。。)

1、Event Loop&#xff08;事件循环&#xff09;机制 JS是单线程的非阻塞语言 为什么是单线程&#xff08;如果js是多线程&#xff0c;那么两个线程同时对同一个Dom进行操作&#xff0c;一个增一个删&#xff0c;浏览器该如何执行&#xff1f;&#xff09; 非阻塞&#xff08;…

2024/1/30 备战蓝桥杯 3-1 栈

目录 小鱼的数字游戏 P1427 小鱼的数字游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 表达式括号匹配 P1739 表达式括号匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 【模板】栈 B3614 【模板】栈 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 小鱼的数字…

使用Neo4j做技术血缘管理

目录 一、neo4j介绍 二、windows安装启动neo4j 2.1下载neo4j 2.2 解压文件 2.3 启动neo4j 三、neo4j基础操作 3.1 创建结点和关系 3.2 查询 3.3 更改 3.4 删除 四、技术血缘Demo实现 4.1 构建节点对象 4.2 构建存储对象 4.3 创建有属性关联关系 4.4 最后是图结果…