美文网首页
4.1 Strategy

4.1 Strategy

作者: wanggs66 | 来源:发表于2020-04-22 10:36 被阅读0次

    Strategy 是backtrader的核心,是策略逻辑实现部分。
    Strategy生命周期由methods构成:

    1. Conception: init
      Strategy初始化时调用该方法,indicators以及其他一些属性可以在此实现:
      Example:

      def init(self):
      self.sma = btind.SimpleMovingAverage(period=15)

    2. Birth: start
      Tells the strategy to start.

    3. Childhood: prenext
      在指标的构造过程中有一些限制(一定数量的数据),通常指标构造过程中存在一个最小期限的概念,如上面init中SimpleMovingAverage中设定的period
      当系统中的bars小于15时,会执行prenext方法(默认实现为不做任何操作)

    4. Adulthood: next
      一旦系统达到minum period,系统有足够的的缓存数据开始产生指标数据,strategy足够成熟开始执行。
      在从prenext 到next之间会执行nextstart 操作,用于标识切换过程,一般默认prenext就是next方法

    5. Reproduction None
      Strategies 通常不会真的重复运行,通常是在optimizing操作中设定不同的参数时起作用。

    6. Death: stop
      系统告诉strategy重置时间到,可以开始整理系统中的相关结果和数据,默认什么都不操作。

    一些提醒消息的方法:

    • be notified through notify_order(order) of any status change in an order
    • be notified through notify_trade(trade) of any opening/updating/closing trade
    • be notified through notify_cashvalue(cash, value) of the current cash and portfolio in the broker
    • be notified through notify_fund(cash, value, fundvalue, shares) of the current cash and portfolio in the broker and tradking of fundvalue and shares
    • Events (implementation specific) via notify_store(msg, *args, **kwargs)

    See Cerebro for an explanation on the store notifications. These will delivered to the strategy even if they have also been delivered to a cerebro instance (with an overriden notify_store method or via a callback)

    在next中一些下单函数:

    • the buy method to go long or reduce/close a short position

    • the sell method to go short or reduce/close a long position

    • the close method to obviously close an existing position

    • the cancel method to cancel a not yet executed order

    How to Buy/Sell/Close

    Buy 和 Sell 会产生orders,产生Order(或子类)的实例,该实例可以作为该订单的一个引用,ref是该订单的唯一标识。

    Parameters:

    • data(default: None)
      订单在那个数据中心被创建,None标识系统中的第一个数据self.datas[0]

    • size(default: None)
      订单中使用费的数据单位数
      None 标识使用sizer实例中的size。

    • price(default:None)
      price to use
      None : 用在Market

    相关文章

      网友评论

          本文标题:4.1 Strategy

          本文链接:https://www.haomeiwen.com/subject/aylvihtx.html