Backtrader 文档学习- Broker - Fillers

2024-02-01 18:12

本文主要是介绍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的成交。

这篇关于Backtrader 文档学习- Broker - Fillers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668051

相关文章

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

Python自动化Office文档处理全攻略

《Python自动化Office文档处理全攻略》在日常办公中,处理Word、Excel和PDF等Office文档是再常见不过的任务,手动操作这些文档不仅耗时耗力,还容易出错,幸运的是,Python提供... 目录一、自动化处理Word文档1. 安装python-docx库2. 读取Word文档内容3. 修改

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert