trade 交易

对于正常采用自由资金购买股票,不能做空的情况下。当针对某个行情数据对象下,一个订单使得仓位从0变为正值,则打开了一个交易,会触发 notify_trade();此后,当某个订单使仓位从正值变为0,则该交易关闭,会触发 notify_trade()

一个交易可以由多张订单组成
举个例子:
第一次下单,买100股,仓位从 0 变成 100。打开交易,触发notify_trade()
第二次下单,卖100股,仓位从 200 变成 100。不触发notify_trade()
第三次下单,买100股,仓位从 100 变成 0。关闭交易,触发notify_trade()

再加上可以做空的情况进行分析:
当仓位从0变成非0,则打开交易;此后仓位从非0,变为0,则关闭交易。

如果某个订单使得仓位从正值变到负值,或负值变到正值。则意味着两个动作,一个交易被关闭(非0->0),一个新的交易被打开(0->非0)。

打开交易,触发notify_trade,此时trade.status=1,open
关闭交易,触发notify_trade,此时trade.status=2,close

策略中 self.close():
不能做空的情况下,self.close()会一次性市价卖出全部仓位,关闭交易
可以做空的情况下,self.close()默认市价买回所有卖空仓位,关闭交易

trade对象的属性

ref:唯一交易标识符,int

data:交易涉及到行情数据对象

status:状态。0:Created、1:Open、2:Closed

tradeid:交易id,int,由创建订单时的参数tradeid设置, 如:self.buy(tradeid=1)。默认为0,用于区分不同类型的交易

size(int):交易当前的数量

price(float):交易的当前价格

value(float):交易的当前市值

commission(float):当前累计佣金

pnl(float):当前毛利或损失

pnlcomm(float):扣佣后的净利润

isclosed(boolen):交易是否关闭

isopen(boolen)::交易是否开放

justopened(boolen):交易是否刚刚打开

baropen(int):交易打开的bar

dtopen(float):交易打开的日期时间,使用方法open_datetime获取python的datetime.datetime,或使用backtrader提供的 num2date

barclose(int):交易关闭的bar

dtclose(float):交易关闭的日期时间

barlen(int):交易开放的bar数

historyon(boolen):是否记录交易历史

history(list):交易更新事件列表

trade对象的方法

getdataname(self,):获取涉及的行情数据对象名字

open_datetime(self, tz-None, naive=True):交易打开日期时间

close_datetime(self, tz-None, naive=True):交易关闭日期时间

update(self, order, size, price, value, commission, pnl, comminfo):更新当前交易

策略的 _trades 属性

作用:记录了发生过的交易trade列表
使用:

self._trades[self.data0][0]

含义:返回 与行情数据self.data0 相关的,tradeid为0 的trades列表

trade的history属性

一个记录每笔交易的详细历史。
使用:

首先创建cerebro时开启记录交易历史

cerebro = bt.Cerebro(tradehistory=True)

获取数据

def notify_trade(self, trade):for h in trade.history:

每个h中含有 status, event两个属性

h.status.status
h.status.dt
h.size
h.event.order
h.event.size
。。。

backtrader概念(二)Trade相关推荐

  1. 看《墨攻》理解IoC概念(二 )http://www.qqread.com/erp/3/j380307_3.html

    看<墨攻>理解IoC概念(二) 巧巧电脑网络 2007-11-07  IT168 陈雄华   收藏此文  大 中 小 分享到QQ空间人人网开心网豆瓣新浪微博腾讯微博更多0 上一页123下一 ...

  2. C#基础概念二十五问 【二】 [转]

    11.可以使用抽象函数重写基类中的虚函数吗? 答: 可以 需使用 new 修饰符显式声明,表示隐藏了基类中该函数的实现 或增加 override 修饰符,表示抽象重写了基类中该函数的实现 示例: cl ...

  3. C#面向对象 基础概念二十五个 (很基础,必须掌握的知识)

    1.静态成员和非静态成员的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用 ...

  4. C#基础概念二十五问[转]

    注:本文部份资料来自网络,如有侵权,请与我联系,我会在第一时间声明引用或将其删除! 当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了.这两天又全面的看了一下相关的基础知识(学而时习 ...

  5. GIS的基本概念二:大地水准面、旋转椭球体(椭球体)、大地基准面

    上一章粗略整理了一下坐标系的概念,基本理解如何用坐标来表示地理空间.面对现实的地球,还是有一个疑问.众所周知,我们的地球表面是一个凹凸不平的表面,对于地球测量而言,地表是一个无法用数学公式进行表达的曲 ...

  6. 基本电路概念(二)什么是电容?

    一.前言 我儿子对电路板有一种近乎疯狂的痴迷,每次周末加班的时候,他总是恳求我带他一起到公司,就是为了能够看一看电路板.看一看电路焊接过程.为了不影响工作,我只能是找一些废旧的电路板,加上从蜗窝同学那 ...

  7. 密码学基础概念(二)

    1.1密码学的基本概念 1.什么是密码学 密码学是保密学的一部分.保密学是研究密码系统或通信安全的科学,它实际上包含两个分支--密码学和密码分析学.密码学是对信息进行编码实现隐蔽信息的一门科学:而密码 ...

  8. C#基础概念二十五问

    注:本文部份资料来自网络,如有侵权,请与我联系,我会在第一时间声明引用或将其删除! 当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了.这两天又全面的看了一下相关的基础知识(学而时习 ...

  9. 新概念二册 Lesson 36 Across the Channel横渡海峡(非限定性定语从句)

    文章目录 1 课文 2 单词 2.1 record [ˈrekɔ:d] n. 纪录 2.2 strong [strɒŋ] adj.强壮的 2.3 swimmer [ˈswɪmə(r)] n.游泳运动员 ...

  10. 外显子和基因组基本概念(二)

    上接:外显子和基因组基本概念(一) (补)细胞周期(Cell cycle):含间期(Interphase)与分裂期(即M期:Mitosis有丝分裂:Meiosis减数分裂)两个阶段. 间期分为:DNA ...

最新文章

  1. 继承和多态 1.0 -- 继承概念(is-a、has-a,赋值兼容规则,隐藏重定义)
  2. gentoo下gnome的抓图功能
  3. Android开发者必备:推荐一款助力开发的开源APP
  4. Guru of the Week 条款01: 变量的初始化
  5. CentOS7 安装 Node.js
  6. 英语学习过程中的几点体会(1)
  7. asp 下拉框二级联动
  8. zabbix加vm虚拟服务器,zabbix监控vmware exsi主机的图文步骤
  9. Bootstrap3 工具提示插件的选项
  10. Java回文数的判断与生成
  11. Google Code 开源项目
  12. torch.nn.Module.named_buffers(prefix=‘‘, recurse=True)
  13. 端口(port)详解
  14. 哈工大2022计统大作业
  15. Handler消息机制介绍,流程梳理
  16. OLAP引擎 :CH Doris impala+kudu优缺点分析
  17. 详解train_test_split()函数(官方文档有点不说人话)
  18. 赛宝-亿能软件测试技术沙龙第1期 – 性能测试工程师职业规划与成长之路
  19. 500内部服务器错误。你查找的资源存在问题,因而无法显示
  20. 基于flowable的审批系统安装及部署

热门文章

  1. 滑雪总结 --- 双板滑雪
  2. js实现手机摇一摇以及震动功能
  3. 高德地图大头针功能_绘制点标记-在地图上绘制-开发指南-iOS 地图SDK | 高德地图API...
  4. 【批处理DOS-CMD命令-汇总和小结】-注册表编辑命令reg,如何用cmd命令打开注册表编辑器regedit
  5. 什么是hardcode编码
  6. 移动端开发兼容性处理整理
  7. mysql group by 配置_关于mysql group by 的设置
  8. 怎么把小米手机通讯录导入苹果手机
  9. SAP ABAP BDC调用
  10. oho,找工作有点难度