Backtrader(九)- Observers观察者对象

基本使用

cerebro会自动加入三个观察者,即Broker、Trades、BuySell。 这样通过 cerebro.plot() 输出图形时,图形界面会输出三部分。
在这里插入图片描述

自定义观察者对象
# 取消自定义观察者
cerebro = bt.Cerebro(stdstats=False)
# 手动添加观察者
cerebro.addobserver(OrderObserver)

在策略中访问Observers

在策略类中访问观察者的方法是通过策略的属性 stats,比如:broker观察者含有两根线,value和cash

def next(self):
	value = self.stats.broker.value[0]
	cash = self.stats.broker.cash[0]

开发新的Observers

主要步骤:
1、继承Observer
2、声明所需的线和参数
3、使用内置属性self._owner(代表持有此观察者的策略实例)访问策略里其它对象的信息
4、当策略的next方法执行完成后,就会执行观察者的next方法,进行统计计算

关于 self._owner

相当于策略类中的self
常用:

self._owner.broker.getvalue()  # 获取市值
self._owner.broker.getcash()  # 获取现金

self._owner._orderspending  # 已创建的订单列表,broker已向策略发出相关事件

self._owner.tradespending  # 交易列表

self._owner.stats.XXX...  # 访问XXX观察者对象的信息
'''自定义Observer类'''

# 统一语法
from __future__ import (absolute_import, division, print_function, unicode_literals)

import datetime

import backtrader as bt
from logger import lg
from feed import feed
import backtrader.indicators as btind


class OrderObserver(bt.observers.Observer):
    lines = (
        'created',
        'expired'
    )

    plotinfo = dict(
        plot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值