Невозможно получить доступ к переменным экземпляра класса
У меня есть следующий базовый класс (он наследует от класса в платформе PyAlgoTrade):
В методе init я инициализирую переменную экземпляра класса self.__instrument.
class BaseStrategy(strategy.BacktestingStrategy):
def __init__(self, feed, instrument, cash):
feed = DataFrameBarFeed(feed, instrument, barfeed.Frequency.DAY)
super(BaseStrategy, self).__init__(feed, cash)
self.__position = None
self.__instrument = instrument
def onEnterOk(self, position):
execInfo = position.getEntryOrder().getExectionInfo()
self.info("BUYING @ {}".format(execInfo.getPrice()))
def onEnterCanceled(self, position):
self.__position = None
def onExitOk(self, position):
execInfo = position.getExitOrder().getExectutionInfo()
self.info("SELL @ {}".format(execInfo.getPrice()))
self.__position = None
def onExitCanceled(self, position):
self.__position.exitMarket()
def onBars(self, bars):
"""
Please provide an implementation for this method
:param bars:
:return:
"""
Я пытаюсь реализовать следующий метод путем наследования от класса BaseStrategy:
class Strat(BaseStrategy):
def onBars(self, bars):
print self.__instrument
Затем я создаю объект Strat и затем запускаю его:
def main():
tickers = ["V"]
portfolio = {ticker : pull_daily_stock_data(ticker, 'google', start_date='2010-01-01', end_date='2017-11-2')
for ticker in tickers}
strategy = Strat(portfolio["V"], "V", cash=10000)
strategy.run()
Однако, когда я пытаюсь получить доступ к self._instrument в моей реализации, я получаю ошибку атрибута. Я не понимаю, почему я не могу получить доступ к self._instrument, когда я инициализирую его в родительском классе BaseStrategy. Есть ли способ получить доступ к этой переменной экземпляра из родительского класса?
Любая помощь приветствуется, спасибо.