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 bt

cerebro = Cerebro()
cerebro.broker.set_filler(bt.broker.fillers.FixedSize())

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

import backtrader as bt

cerebro = 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的成交。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值