Backtrader 文档学习-Order General

Backtrader 文档学习-Order General

Cerebro是backtrader中的关键控制系统,策略(子类)是最终用户的关键控制点,后者需要连接系统其他部分的方法,这就是订单扮演的关键角色。

Order将strategy的逻辑做出的决策转换为适合broker执行操作的消息。通过以下方式完成:

  • 创建 ,通过strategy 的方法:buy sell 和close 都可以返回Order的实例
  • 取消,通过strategy的方法:cancel 也可以产生Order实例
  • 通知,notify_order 的方法,也返回Order 实例
    订单还作为反馈给用户的通信方法,通知代理中的运行情况( 在strategy中也提及了)。

1.订单创建

通过 buy sell close 创建,带以下参数:

  • data (default: None) ,如果是None ,就是第一个加载cerebro的数据self.datas[0] or self.data0

  • size (default: None) ,每个订单的数量,正数。None,将使用通过getsizer检索的sizer实例来确定大小。默认就是1

  • price (default: None),指定下单的价格(如果实际格式不符合最小报价单位要求,实时broker会对其进行限制)。

    • None 对Market订单和平仓订单有效(市场决定价格,用市价操作)
    • 对于 Limit/ Stop /StopLimit 订单参数,订单该值决定触发点(在Limit的情况下,触发点显然是订单Limit设置的价格)
  • plimit (default: None),仅适用于StopLimit止损单。就是设置隐含限价单的价格,一旦止损被触发(使用该价格) 。

  • exectype (default: None)

    • Order.Market or None, 市价单将以下一个可用价格执行。在回测中它将是下一bar的开盘价
    • Order.Limit,只能以给定价格或更高价格执行的订单
    • Order.Stop,价格到达才能触发订单,产生一个Order.Market
    • Order.StopLimit,在价格上被触发的订单,价格由pricelimit的隐含限价订单执行
  • valid (default: None)

    • None: 生成一个不会过期的订单,一直保留在市场中,直到匹配或取消。在实际中broker会设定一个时间限制,通常是因为时间太久而没有到期
    • datetime.datetime or datetime.date ,该日期将用于生成在给定日期之前有效的订单(也称为有效截止日期)
    • Order.DAY or 0 or timedelta(),将生成一个有效期至会话结束的日期(也称为日订单)
    • numeric value,假设该值对应于matplotlib编码中的日期时间(backtrader使用的日期时间),在该时间之前有效的订单(有效截止日期)
  • tradeid (default: 0),是BT应用的内部值,用于跟踪同一资产的重叠交易。当通知订单状态发生变化时,该tradeid将被发送回策略。

  • **kwargs ,其他broker实现可能支持额外的参数。backtrader将把kwargs传递给创建的订单对象
    示例:如果backtrader直接支持的4种订单执行类型还不够,例如在交互式broker时,以下内容可以作为kwargs传递:

orderType='LIT', lmtPrice=10.0, auxPrice=9.8

重写BT创建的设置,并生成一个触及价格为9.8、限价为10.0的限价订单。
注意:
平仓方法将检查当前position ,并相应地使用买入或卖出来有效平仓。大小也将自动计算,除非参数是用户的输入,在这种情况下,可以实现部分关闭或反转 。

2.订单通知

.

.

.

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

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

相关文章

HTML中div内容垂直居中显示

HTML中要将 div 元素的内容垂直居中显示&#xff0c;你可以使用 CSS 的 flexbox 或者 grid 布局来实现。下面分别介绍两种方法。 方法一&#xff1a;使用 flexbox 布局 <!DOCTYPE html> <html><head><style>.container {display: flex;align-items: …

外观设计重要还是实用性重要?

外观设计和实用性在产品设计中都非常重要&#xff0c;二者并不是对立的关系&#xff0c;而是相辅相成的。以下是我对外观设计和实用性的看法&#xff1a; 首先&#xff0c;外观设计的重要性。产品的外观设计直接影响到产品的品牌形象、市场吸引力和用户体验。一个具有吸引力和…

SDL2 连续帧图像显示

QT使用SDL多窗口显示视频&#xff08;linux&#xff0c;ubuntu&#xff09;_linux qt sdl-CSDN博客 QT使用SDL播放YUV视频 - C - QT SDL调用OPENGL渲染图像 - C - 心得 C 使用SDL显示RGB图像数据_c sdl-CSDN博客 SDL库入门&#xff1a;掌握跨平台游戏开发和多媒体编程_sdl开…

解决:Cannot call sendError() after the response has been committed问题

问题&#xff1a;执行导出操作后台日志打印 Cannot call sendError() after the response has been committed 原因&#xff1a;执行了第一个输出后&#xff0c;开启了关闭流操作&#xff0c;且关闭流后面还有第二个输出&#xff0c;故报错 解决&#xff1a;将第二个输出操作…

亚马逊卖食品有什么具体要求?亚马逊卖食品好做吗?—站斧浏览器

亚马逊卖食品有什么具体要求&#xff1f; 首先&#xff0c;亚马逊要求卖家提供食品的详细信息&#xff0c;包括产品描述、成分表、营养信息和包装规格等。这些信息对于消费者来说至关重要&#xff0c;它们可以帮助消费者了解产品的特点和质量&#xff0c;并做出明智的购买决策…

图解基础排序算法(冒泡、插入、选择)(山东大学实验二)

目录 ⚽前言&#xff1a; &#x1f3d0; 冒泡排序&#xff1a; 设定&#xff1a; 分类&#xff1a; 起源&#xff1a; 图解冒泡&#xff1a; 图中绿色&#xff1a; 图中橙色&#xff1a; 整体思路&#xff1a; 交换思路&#xff1a; 核心代码&#xff1a; &#x…

竹永康在科锐待岗第3天工作总结

今日研读了《高性能MySQL》一书中的第 7.10 章节&#xff1a;MySQL高级特性之全文索引&#xff0c;从中学习到了一些专业技能知识。总结如下。 文章目录 全文索引MyISAM全文索引自然语言的全文索引布尔全文索引全文索引的限制和替代方案全文索引的配置和优化 全文索引 全文索…

玻尔兹曼常数

参考&#xff1a; https://vibaike.com/216369/ 萨尔茨曼常数&#xff08;kB 或 k&#xff09;是将气体中粒子的平均相对动能与气体的热力学温度相关联的比例因子。 它出现在开尔文和气体常数的定义中&#xff0c;出现在普朗克黑体辐射定律和玻尔兹曼熵公式中&#xff0c;并用…

3D视觉专用名词概念解释,深度图、点云图、IR图、RGB图像

&#x1f31e;欢迎来到深度学习的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff…

【PyTorch】PyTorch之Tensors属性篇

文章目录 前言一、Tensors1、is_tensor2、is_storage3、is_complex4、is_conj5、is_floating_point6、is_nonzero7、set_default_dtype8、get_default_dtype9、set_default_device10、set_default_tensor_type11、torch.numel12、set_printoptions13、set_flush_denormal 前言 …

JAVA电商平台 免 费 搭 建 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城

涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

Debian系统写Mysql时中文出现乱码无法定入的问题解决方案

原因是操作系统可能精简安装&#xff0c;没有GBK字符集&#xff0c;只有UTF8在转换或使用的时候有问题。 使用locale -a查看系统支持的字符集。正常的比较全的字符集的操作系统如下&#xff1a; 有问题的操作系统字符集如下&#xff1a; 解决方案&#xff1a; 步骤1&#…

智能小车(八)ros实现将智能小车数据通过TCP/IP发送到上位机网关

ros实现将智能小车数据通过TCP/IP发送到上位机网关 这里主要注意: 将浮点型数据*1000转换成int型数据然后分字节储存&#xff08;另取一个字节作为符号位&#xff09;。没有用struct.pack进行字节流打包&#xff0c;原因是不同平台&#xff0c;字节流的打包浮点型数据不一样&am…

力扣(leetcode)第830题较大分组的位置(Python)

830.较大分组的位置 题目链接&#xff1a;830.较大分组的位置 在一个由小写字母构成的字符串 s 中&#xff0c;包含由一些连续的相同字符所构成的分组。 例如&#xff0c;在字符串 s “abbxxxxzyy” 中&#xff0c;就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的…

C++ //练习 2.11 指出下面的语句是声明还是定义:

C Primer&#xff08;第5版&#xff09; 练习 2.11 练习 2.11 指出下面的语句是声明还是定义&#xff1a; ( a ) extern int ix 1024; ( b ) int iy; ( c ) extern int iz; 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释 ( …

time-to-event数据的参考资料

目录 一、书籍推荐 二、方法论文章 Introductory/Overview Articles Censoring Non-parametric survival methods Semi-parametric survival methods Parametric survival methods Time-Varying Covariates Competing risk analysis Analysis of clustered data and fra…

基于Java+SSM框架的智慧医疗问诊管理系统【附源码】

基于JavaSSM框架的智慧医疗问诊管理系统详细设计和实现【附源码】 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各…

高效视频剪辑:视频合并让视频焕然一新,添加背景音乐更动听

随着社交媒体和数字内容的普及&#xff0c;视频剪辑已成为一项常用的技能。除了基本的剪辑技巧外&#xff0c;添加合适的背景音乐也是提升视频质量的方法。下面来看云炫AI智剪的高效视频剪辑技巧——如何批量合并视频&#xff0c;添加动听的背景音乐。 视频合并后的效果展示&a…

Interface 接口

/* * 语法1&#xff1a;使用interface关键字定义 * 语法2&#xff1a;接口中&#xff0c;允许定义“抽象方法”&#xff0c;public 和 abstract关键字可以省略 * 语法3&#xff1a;接口中&#xff0c;允许定义“默认方法” * 语法4&#xff1a;实现类通过implements关键字实现接…

What is `@Repository` does?

Repository 是Spring注解&#xff0c;标识数据访问层组件&#xff08;DAO, Data Access Object&#xff09; 当一个类被标记为 Repository 时&#xff1a; 1、组件扫描与自动代理&#xff1a; Spring通过组件扫描&#xff08;Component Scan&#xff09;机制发现带有 Reposit…