You are here:  Home » 量化交易与机器学习 » backtrader » Fillers- backtrader中文教程

Fillers

Thebacktrader经纪人模拟有一个默认的策略,当谈到使用量为订单执行:

  • 忽略volume

This是基于2个前提:

  • 贸易市场足够的液体在一个充分吸收buy/sell订单go
  • Real体积匹配需要真实wolrd

    A简单的例子是一个Fill or Kill顺序。甚至下降到了tick分辨率和足够量的fillbacktrader经纪人不知道额外的演员有多少碰巧在市场上鉴别如果这样的命令将是或将不匹配粘该Fill部分或者顺序应该是Kill

但是broker可以接受Volume Fillers这确定有多少的在给定时间点体积具有用于order matching.

填料signature

Afillerbacktrader的生态系统可以是任何callable它匹配以下签名:

callable(order, price, ago)

在哪里:

  • order是将是executed

    This对象为了使访问的data对象,它是的目标操作,创建尺寸/价格,执行价格/尺寸/剩余大小和其他details

  • price在该命令将被executed
  • ago是该指数的dataorder在其中寻找量价elements

    在几乎所有情况下,这都将是0(当前时间点),但是在涉及Close订单的特殊情况下,这可能是-1

    例如,要访问棒体积,请执行以下操作:

    barvolume = order.data.volume[ago]
    

可调用对象可以是函数或例如支持该__call__方法的类的实例,例如:

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

加入填料到broker

The最直接的方法是使用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

的sample

Thebacktrader源包含名为样品volumefilling这使得测试一些的集成fillers(最初所有)

Reference

class backtrader.fillers.FixedSize()

返回给定的执行尺寸为了使用percentage的在一个bar.

This百分比音量设置与参数perc

PARAMS:

  • size(默认值:None)时要执行的最大大小。实际上在执行时杆的体积也是一个限制,如果比小size

    如果这个参数的值计算为False,整个卷的条将被用于匹配order

class backtrader.fillers.FixedBarPerc()

使用了percentage的返回执行尺寸为给定的顺序在一个bar.

This百分比音量设置与参数perc

PARAMS:

  • perc(默认值:100.0)(valied值:0.0 - 100.0

    音量条的百分比使用以执行order

class backtrader.fillers.BarPointPerc()

返回给定的顺序执行的大小。该卷将是在范围均匀分布的highlow使用minmov到partition.

针对给定的价格已分配量中,perc比例会是used

Params:

  • minmov(默认值:0.01

    最低价格运动。使用范围highlow划分到比例地分配之间可能prices

  • perc体积(默认值:100.0)(valied值:0.0 - 100.0

    的体积的百分比分配给所述顺序执行价格使用对于matching