Backtrader教程:经纪商

  |  

    经纪商仿真器

    该模拟支持不同的订单类型,根据当前现金检查提交的订单现金需求,跟踪每次反复运算的cerebro 现金和价值,并在不同数据上保持当前位置。

    现金在每次反复运算时进行调整,例如futures

    支持的订单类型:

    止损限价:如果看到给定的止损价格,则设置一个处于运动状态的限价订单

    止损 :如果看到给定的止损价格,则运行市价单

    限价 :如果在会话期间看到给定的限价,则运行

    Close : 用于以交易时段 last 柱的收盘价运行订单的日内

    市场 : 以下一根柱线的第 1 个价格变动(即 open 价格)运行

    由于代理是由Cerebro 实例化的,并且应该(大多数)没有理由替换代理,因此参数不是由实例的用户控制的。要更改此设置,有两个选项:

    使用set_xxx使用 cerebro.broker.set_xxx设置值,其中 \ xxx' 代表要设置的参数的名称

    使用所需的参数手动创建此类的实例,并使用 cerebro.broker = 实例将该实例设置为运行运行的代理

    cerebro.broker 是由 getbroker 和 setbroker 方法支持的 Cerebro

    参数:

  • cash (默认值: 10000):起始现金

  • commission (默认值: CommInfoBase(percabs=True))适用于所有资产的基本佣金计划

  • checksubmit (默认值: True)在接受订单进入系统之前检查保证金/现金

  • eosbar (默认值: False):对于日内柱,将与会话结束相同的 time 柱视为会话结束。通常情况并非如此,因为某些柱(最终拍卖)是由许多交易所在会议结束后的几分钟内为许多产品制作的。

  • eosbar (默认值: False):对于日内柱,将与会话结束相同的 time 柱视为会话结束。通常情况并非如此,因为某些柱(最终拍卖)是由许多交易所在会议结束后的几分钟内为许多产品制作的。

  • filler (默认值: None

    带有签名的可调用:callable(order, price, ago)

    • order:显然是运行中的订单。这提供了对数据(以及ohlc和 volume 值),运行类型,剩余大小(order.executed.remsize)等的访问。

      请查看文档和参考,Order 了解实例中 Order 可用的内容

    • price 订单将在柱中 ago 运行的价格

    • ago:用于提取 ohlc 和volume价格的指数order.data。在大多数情况下,这将是0,但在订单的Close角落情况下,这将是 -1

      为了获得柱 volume (例如)做:volume = order.data.voluume[ago]

    可调用对象必须返回运行的大小(值 >= 0)

    可调用的当然可以是与__call__ 上述签名匹配的对象

    使用默认None 订单将在一次射击中完全运行

  • slip_perc (默认值: 0.0)绝对期限(和正)中应该用于为买入/卖出订单上/下滑价格的百分比

    注意:

    • 0.011%

    • 0.0010.1%

  • slip_fixed (默认值: 0.0)应该用于买入/卖出订单价格上涨/下跌的单位百分比(和正数)

    注意:如果slip_perc 为非零,则优先于此。

  • slip_open (默认值: False)是否为订单运行而滑走价格,该订单将专门使用下一根柱线的开盘价。一个例子 Market 是使用下一个可用价格变动运行的订单,即:柱的开盘价。

    这也适用于其他一些运行,因为逻辑会尝试检测在移动到新柱时开盘价是否与请求的价格/运行类型匹配。

  • slip_match (默认值: True

    如果True 经纪人将通过限制 high/low 价格的滑点来提供匹配,以防万一它们被超过。

    如果False 经纪人不会将订单与当前价格匹配,并将在下一次反复运算中尝试运行

  • slip_limit (默认值: True

    Limit 给定所请求的完全匹配价格,订单也将匹配,即使 slip_matchFalse

    此选项控制该行为。

    如果True,则Limit订单将通过将价格上限与 / 价格high/low进行limit匹配

    如果False 和 滑点超过上限,则将没有匹配

  • slip_out (默认值: False

    即使价格超出 - low 范围,high也提供滑点。

  • coc (默认值: False

    作弊 -Close 将其设置为True激活set_coc

    matching a `Market` order to the closing price of the bar in which
    the order was issued. This is actually *cheating*, because the bar
    is *closed* and any order should first be matched against the prices
    in the next bar
    
  • coo (默认值: False

    作弊 -Open将其设置为True激活set_coo

    matching a `Market` order to the opening price, by for example
    using a timer with `cheat` set to `True`, because such a timer
    gets executed before the broker has evaluated
    
  • int2pnl (默认值: True

    将产生的利息(如果有)分配给减少头寸(无论是多头还是空头)的操作的利润和损失。在某些情况下,这可能是不希望的,因为不同的策略是相互竞争的,并且利益将在非确定的基础上分配给其中任何一个。

  • shortcash (默认值: True

    如果 True 则当股票资产做空时,现金将增加,资产的计算价值将为负。

    如果False 现金将被扣除为运营成本,并且计算值将为正,最终金额相同

  • fundstartval (默认值: 100.0

    该参数控制以类似基金的方式衡量业绩的起始值,即:可以增加现金和扣除增加股票数量。业绩不是用资产净值来衡量的,而是用基金的价值来衡量的。

  • fundmode (默认值: False

    如果将其设置为Trueanalyzers likeTimeReturn可以根据基金价值而不是总资产净值自动计算回报

推荐阅读

相关文章

Backtrader按日线交易

似乎在世界某个地方有一种权益(Interest)可以总结如下: 使用每日柱线引入订单,但使用开盘价 这来自工单#105订单执行逻辑与当前数据和#101动态投注计算中的对话 backtrader 尝试尽可能保持现实,并且在处理每日柱线时适用以下前提: 当每日柱被评估时,柱线已经结束 这是有道理的,

BacktraderPyFolio 集成

注意 2017年2月 pyfolio API 已更改,不再 create_full_tear_sheet 具有 gross_lev 作为命名参数的参数。

Backtrader教程:绘图 - 日期范围

该版本1.9.31.x 增加了制作部分绘图的功能。 使用策略实例中保存的完整时间戳数组的索引 或者使用实际datetime.date 或 datetime.datetime 实例来限制必须绘制的内容。 一切都超过标准cerebro.plot。

Backtrader混合时间帧

1.3.0.92版本带来了混合来自不同时间帧的数据(来自 data feeds 和/或指针)的可能性。 到版本:https://github.com/mementum/backtrader/发布/标签/1.3.0.92 背景:指示器是智能哑对象。 他们很聪明,因为他们可以进行复杂的计算。

Backtrader教程:日期时间 - 管理

在 1.5.0 版之前, backtrader 使用直接的方法来进行时间管理,因为数据源计算的任何日期时间都只是按面值使用。 对于任何用户输入也是如此,例如可以提供给任何数据源的参数fromdate (或 sessionstart)的情况 考虑到直接控制冻结的数据源以进行回溯测试,这种方法很好。

Backtrader蟒蛇隐藏的力量3

Last,但并非最不重要的一点是,在这个系列中,关于如何在 backtrader 中使用Python的隐藏功能是一些神奇变量是如何出现的。

Backtrader卡尔曼等

注意 对以下指令的支持从提交开始 发布1.9.30.x 将是包含它的第1个版本 。 backtrader的原始目标之一是成为纯python,即:仅使用标准发行版中可用的软件包。只有一个例外是matplotlib在没有重新发明轮子的情况下进行绘图。

Backtrader 多数据范例

社区中的几个主题似乎以如何跟踪订单为导向,特别是当几个data feeds在起作用时,还包括当多个订单一起工作时,

Backtrader信贷利息

在某些情况下,真实经纪人的现金金额可能会减少,因为资产操作包括利率。例子: 卖空股票 交易所买卖基金包括多头和空头 这意味着不仅交易构成了系统的盈利能力,因为信贷上的利息在帐户上佔有一席之地。 为了涵盖这种情况, backtrader 包括(从发佈1.8.8.96开始)功能来考虑这一点。

Backtrader终极振荡器

backtrader开发启动时的目标之一是使开发新的指针变得非常容易(至少对作者本人而言),以在数学和视觉上测试想法。 门票#102 是关于将 UltimateOscillator 添加到 backtrader 注意 它将在下一个版本中添加,同时可以使用下面的代码使用它。 票证中所示的参考: 以及: 无需在这里重复。