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只要里面的内容不重名,现在来看类属性应该是继承的
浙公网安备 33010602011771号