mirror of
https://github.com/kernc/backtesting.py.git
synced 2024-01-28 15:29:30 +03:00
DOC: Docstring updates
This commit is contained in:
@@ -87,7 +87,7 @@ class Strategy(metaclass=ABCMeta):
|
|||||||
`backtesting.backtesting.Strategy.data` is.
|
`backtesting.backtesting.Strategy.data` is.
|
||||||
Returns `np.ndarray` of indicator values.
|
Returns `np.ndarray` of indicator values.
|
||||||
|
|
||||||
`func` is a function that returns the indicator array of
|
`func` is a function that returns the indicator array(s) of
|
||||||
same length as `backtesting.backtesting.Strategy.data`.
|
same length as `backtesting.backtesting.Strategy.data`.
|
||||||
|
|
||||||
In the plot legend, the indicator is labeled with
|
In the plot legend, the indicator is labeled with
|
||||||
@@ -245,12 +245,12 @@ class Strategy(metaclass=ABCMeta):
|
|||||||
return self._data
|
return self._data
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def position(self):
|
def position(self) -> 'Position':
|
||||||
"""Instance of `backtesting.backtesting.Position`."""
|
"""Instance of `backtesting.backtesting.Position`."""
|
||||||
return self._broker.position
|
return self._broker.position
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def orders(self):
|
def orders(self) -> 'Orders':
|
||||||
"""Instance of `backtesting.backtesting.Orders`."""
|
"""Instance of `backtesting.backtesting.Orders`."""
|
||||||
return self._broker.orders
|
return self._broker.orders
|
||||||
|
|
||||||
@@ -459,11 +459,11 @@ class _Broker:
|
|||||||
return '<Broker: {:.0f}{:+.1f}>'.format(self._cash, self.position.pl)
|
return '<Broker: {:.0f}{:+.1f}>'.format(self._cash, self.position.pl)
|
||||||
|
|
||||||
def buy(self, price=None, sl=None, tp=None):
|
def buy(self, price=None, sl=None, tp=None):
|
||||||
assert (sl or -np.inf) <= (price or self.last_close) <= (tp or np.inf), (sl, price or self.last_close, tp) # noqa: E501
|
assert (sl or -np.inf) <= (price or self.last_close) <= (tp or np.inf), "For long orders should be: SL ({}) < BUY PRICE ({}) < TP ({})".format(sl, price or self.last_close, tp) # noqa: E501
|
||||||
self.orders._update(price, sl, tp)
|
self.orders._update(price, sl, tp)
|
||||||
|
|
||||||
def sell(self, price=None, sl=None, tp=None):
|
def sell(self, price=None, sl=None, tp=None):
|
||||||
assert (tp or -np.inf) <= (price or self.last_close) <= (sl or np.inf), (tp, price or self.last_close, sl) # noqa: E501
|
assert (tp or -np.inf) <= (price or self.last_close) <= (sl or np.inf), "For short orders should be: TP ({}) < BUY PRICE ({}) < SL ({})".format(tp, price or self.last_close, sl) # noqa: E501
|
||||||
self.orders._update(price, sl, tp, is_long=False)
|
self.orders._update(price, sl, tp, is_long=False)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
@@ -602,20 +602,20 @@ class Backtest:
|
|||||||
or a monotonic range index (i.e. a sequence of periods).
|
or a monotonic range index (i.e. a sequence of periods).
|
||||||
|
|
||||||
`strategy` is a `backtesting.backtesting.Strategy`
|
`strategy` is a `backtesting.backtesting.Strategy`
|
||||||
_subclass_ (not instance).
|
_subclass_ (not an instance).
|
||||||
|
|
||||||
`cash` is the initial cash to start with.
|
`cash` is the initial cash to start with.
|
||||||
|
|
||||||
`commission` is the commision ratio. E.g. if your broker's commission
|
`commission` is the commision ratio. E.g. if your broker's commission
|
||||||
is 1% of trade value, set commission to `0.01`. Note, if you wish to
|
is 1% of trade value, set commission to `0.01`. Note, if you wish to
|
||||||
account for bid-ask spread, you approximate doing so by increasing
|
account for bid-ask spread, you cam approximate doing so by increasing
|
||||||
the commission, e.g. set it to `0.0002` for commission-less forex
|
the commission, e.g. set it to `0.0002` for commission-less forex
|
||||||
trading where average spread is roughly 0.2‰ of asking price.
|
trading where the average spread is roughly 0.2‰ of asking price.
|
||||||
|
|
||||||
`margin` is the required margin (ratio) of a leveraged account.
|
`margin` is the required margin (ratio) of a leveraged account.
|
||||||
No difference is made between initial and maintenance margins.
|
No difference is made between initial and maintenance margins.
|
||||||
To run the backtest using e.g. 50:1 leverge your broker allows,
|
To run the backtest using e.g. 50:1 leverge that your broker allows,
|
||||||
set margin to `0.02`.
|
set margin to `0.02` (1 / leverage).
|
||||||
|
|
||||||
If `trade_on_close` is `True`, market orders will be executed
|
If `trade_on_close` is `True`, market orders will be executed
|
||||||
with respect to the current bar's closing price instead of the
|
with respect to the current bar's closing price instead of the
|
||||||
@@ -736,7 +736,8 @@ class Backtest:
|
|||||||
If `return_heatmap` is `True`, besides returning the result
|
If `return_heatmap` is `True`, besides returning the result
|
||||||
series, an additional `pd.Series` is returned with a multiindex
|
series, an additional `pd.Series` is returned with a multiindex
|
||||||
of all admissible parameter combinations, which can be further
|
of all admissible parameter combinations, which can be further
|
||||||
inspected or projected onto 2D to plot a heatmap.
|
inspected or projected onto 2D to plot a heatmap
|
||||||
|
(see `backtesting.backtesting.lib.plot_heatmaps()`).
|
||||||
|
|
||||||
Additional keyword arguments represent strategy arguments with
|
Additional keyword arguments represent strategy arguments with
|
||||||
list-like collections of possible values. For example, the following
|
list-like collections of possible values. For example, the following
|
||||||
|
|||||||
Reference in New Issue
Block a user