Функция Backtrader cerebro.plot() не возвращает графики в SpyderPython

Программы на Python
Ответить
Anonymous
 Функция Backtrader cerebro.plot() не возвращает графики в Spyder

Сообщение Anonymous »

Я взял пример кода, который загружает данные об акциях и запускает их через торговую стратегию с помощью функции cerebro Backtrader. Когда я запускаю функцию cerebro.plot(), диаграмма не возвращается (ни в строке, ни в виде всплывающего окна). Код для этого приведен ниже:

Код: Выделить всё

import backtrader as bt

# Define a simple moving average crossover strategy
class SMACrossOver(bt.Strategy):
params = (('short_period', 10), ('long_period', 30))

def __init__(self):
self.short_ma = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.short_period)
self.long_ma = bt.indicators.SimpleMovingAverage(
self.data.close, period=self.params.long_period)

def next(self):
if self.short_ma > self.long_ma:
self.buy()
elif self.short_ma < self.long_ma:
self.sell()

# Create a cerebro engine
cerebro = bt.Cerebro()

data = yf.download('AAPL', start='2020-01-01', end='2022-01-01')

# Convert data to backtrader format
data_bt = bt.feeds.PandasData(dataname=data)

cerebro.adddata(data_bt)

# Add strategy
cerebro.addstrategy(SMACrossOver)

# Add a broker with a cash fund for the initial capital
cerebro.broker.set_cash(100000)

# Add commission - This is for illustrative purposes and can be modified as needed
cerebro.broker.setcommission(commission=0.001)

# Add the analyzers
cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe')
cerebro.addanalyzer(bt.analyzers.DrawDown, _name='drawdown')

# Run the backtest
strategies = cerebro.run()

# Print the results
strat = strategies[0]
print('Sharpe Ratio:', strat.analyzers.sharpe.get_analysis()['sharperatio'])
print('Max Drawdown:', strat.analyzers.drawdown.get_analysis()['max']['drawdown'])

# Plot the results
cerebro.plot()
Ниже показан единственный вывод консоли:

Код: Выделить всё

[*********************100%***********************]  1 of 1 completed
Sharpe Ratio: 1.545255702414604
Max Drawdown: 3.1184551599840895



[[]]
Будем очень благодарны за любую помощь!
Попробовали построить график с параметром iline, установленным на True и False, никакой разницы. Не могу найти больше информации по этому вопросу.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -in-spyder
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»