zoukankan      html  css  js  c++  java
  • Backtrader中文笔记之Sizers Reference

    Sizers Reference

    FixedSize

    class backtrader.sizers.FixedSize()

    This sizer simply returns a fixed size for any operation. Size can be controlled by number of tranches that a system wishes to use to scale into trades by specifying the tranches parameter.

    此sizer只返回任何操作的固定大小。大小可以通过指定tranches参数,由系统希望用来扩展到交易中的份额数量来控制。

    Params:

    * `stake` (default: `1`)
    
    * `tranches` (default: `1`)

    # 部分源码
    params = (('stake', 1),
                  ('tranches', 1))
    
        def _getsizing(self, comminfo, cash, data, isbuy):
            if self.p.tranches > 1:
                return abs(int(self.p.stake / self.p.tranches))
            else:
                return self.p.stake
    

    FixedReverser

    class backtrader.sizers.FixedReverser()

    This sizer returns the needes fixed size to reverse an open position or the fixed size to open one

    这个sizer返回需要的固定大小来反转打开的位置,或者返回固定的大小来开仓

    • To open a position: return the param stake

    • To reverse a position: return 2 * stake

    Params:

    * `stake` (default: `1`)
    params = (('stake', 1),)
    
        def _getsizing(self, comminfo, cash, data, isbuy):
            position = self.strategy.getposition(data)
            size = self.p.stake * (1 + (position.size != 0))
            return size
    

    PercentSizer

    class backtrader.sizers.PercentSizer()

    This sizer return percents of available cash

    这个sizer将返回现金可用百分比购买

    Params:

    * `percents` (default: `20`)
    
        params = (
            ('percents', 20),
            ('retint', False),  # return an int size or rather the float value
        )
    
        def __init__(self):
            pass
    
        def _getsizing(self, comminfo, cash, data, isbuy):
            position = self.broker.getposition(data)
            if not position:
                size = cash / data.close[0] * (self.params.percents / 100)
            else:
                size = position.size
    
            if self.p.retint:
                size = int(size)
    
            return size
    

    AllInSizer

    class backtrader.sizers.AllInSizer()

    This sizer return all available cash of broker

    100%购买的方式

    Params:

    * `percents` (default: `100`)
    class AllInSizer(PercentSizer):
        '''This sizer return all available cash of broker
    
         Params:
           - ``percents`` (default: ``100``)
         '''
        params = (
            ('percents', 100),
        )
    


    PercentSizerInt

    class backtrader.sizers.PercentSizerInt()

    This sizer return percents of available cash in form of size truncated to an int

    Params:

    * `percents` (default: `20`)
    
    class PercentSizerInt(PercentSizer):
        '''This sizer return percents of available cash in form of size truncated
        to an int
    
        Params:
          - ``percents`` (default: ``20``)
        '''
    
        params = (
            ('retint', True),  # return an int size or rather the float value
        )
    

    AllInSizerInt

    class backtrader.sizers.AllInSizerInt()

    This sizer return all available cash of broker with the size truncated to an int

    Params:

    * `percents` (default: `100`)

    class AllInSizerInt(PercentSizerInt):
        '''This sizer return all available cash of broker with the
        size truncated to an int
    
         Params:
           - ``percents`` (default: ``100``)
         '''
        params = (
            ('percents', 100),
        )
    

     该类属性params只要里面的内容不重名,现在来看类属性应该是继承的

  • 相关阅读:
    CentOS 7 修改时区
    flink与kafka结合
    Kafka 原理和实战
    kafka单机多节点部署
    使用yumdownloadonly下载RPM包及依赖包
    使用Onvif协议进行设备发现以及指定设备信息探测
    kafka相关脚本操作
    Python入门篇-基础语法
    Python入门篇-pyenv安装及应用
    zabbix Server 4.0监控Flume关键参数
  • 原文地址:https://www.cnblogs.com/sidianok/p/13709499.html
Copyright © 2011-2022 走看看