kernc / backtesting.py

:mag_right: :chart_with_upwards_trend: :snake: :moneybag: Backtest trading strategies in Python.
https://kernc.github.io/backtesting.py/
GNU Affero General Public License v3.0
5.55k stars 1.07k forks source link

BUG: Allow multiple names for vector indicators (#382) #980

Open ivaigult opened 1 year ago

ivaigult commented 1 year ago

Fixes https://github.com/kernc/backtesting.py/pull/382 Closes https://github.com/kernc/backtesting.py/pull/385

Previously we only allowed one name per vector indicator:

def _my_indicator(open, close):
    return tuple(
        _my_indicator_one(open, close),
         _my_indicator_two(open, close),
    )

self.I(
    _my_indicator,
    # One name is used to describe two values
    name="My Indicator",
    self.data.Open,
    self.data.Close
)

Now, the user can supply two (or more) names to annotate each value individually. The names will be shown in the plot legend. The following is now valid:

self.I(
    _my_indicator,
    name=["My Indicator One", "My Indicator Two"],
    self.data.Open,
    self.data.Close
)
ivaigult commented 1 year ago

Hi @kernc,

Thank you for the feedback! I think I addressed everything. Could you, please, resolve all conversations if it looks okay to you.

Thank you:slightly_smiling_face:

ivaigult commented 1 year ago

Hi @kernc,

I think it's all addressed, hope it's gtg now:crossed_fingers:

PS: similarly to #975, you need to approve workflow runs for me otherwise github won't run pylint and friends:slightly_smiling_face:

kernc commented 1 year ago

gtg

It is. The checks won't finish near green, though. Project docs build hinges on scikit-optimize being presently unmaintained and in a defunct state wrt other Python/numpy/sklearn stack. I'm not yet certain what to do about that.

romanbsd commented 1 year ago

include the scikit-optimize, you actually need just a few files as far as I remember.

ivaigult commented 1 year ago

Are there any obstacles that preventing merge of this?

scikit-optimize being presently unmaintained and in a defunct state

I understand it's an issue, but I appreciate this will be addressed separately in another PR?