backtrader概念(二)Trade

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
。。。
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Backtrader分析器是一种用于对交易策略进行评估和分析的工具。在Backtrader中,可以使用各种分析器来计算和显示交易策略的各种指标和统计数据。其中一个常用的分析器是MFE/MAE分析器,它可以计算每个交易的最大利润和最大亏损。你可以在\[1\]中找到关于MFE/MAE分析器的更多信息。 除了MFE/MAE分析器,Backtrader还提供了其他一些常用的分析器,如夏普比率分析器(Sharpe Ratio Analyzer),用于衡量交易策略的风险调整回报率。你可以在\[3\]的代码示例中看到如何使用Sharpe Ratio分析器。 Backtrader的官方文档也提供了关于分析器的详细说明和使用示例。你可以在\[2\]中找到官方文档的中文翻译,其中包含了关于分析器的详细介绍和用法示例。 总之,Backtrader分析器是一种用于评估和分析交易策略的工具,可以帮助你了解交易策略的表现和风险。你可以根据自己的需求选择适合的分析器,并根据官方文档中的示例来使用它们。 \[1\] 订单分析器:https://community.backtrader.com/topic/1274/closed-trade-list-including-mfe-mae-analyzer/2 \[2\] backtrader官方文档:中文翻译 \[3\] 代码示例来源:backtrader官方文档中的示例代码 #### 引用[.reference_title] - *1* [backtrader 自定义分析器,解决多股回测难分析困难问题](https://blog.csdn.net/laoshuiqiang/article/details/131269410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Backtrader官方中文文档:第十章Analyzers分析器](https://blog.csdn.net/windanchaos/article/details/131143184)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值