Указание массивов для сравнения для создания Стратегии не удается, потому что массив не является DataFrame?

Я пытаюсь создать объект стратегии в bt, сравнивая два массива. Объект Strategy создается, но при запуске Strategy мой код выдает ошибку.

Основываясь на чтении документов здесь для SelectWhere() Метод, я думаю, моя проблема в том, что массив sma50 который используется для тестирования Стратегии, не передается при тестировании Стратегии (используя bt.run()). Как это исправить? Обратите внимание, что рабочий пример этой стратегии существует здесь

#http://pmorissette.github.io/bt/
#https://www.quantstart.com/articles/Research-Backtesting-Environments-in-Python-with-pandas
import bt
import pandas as pd

###################################################################################################
symbol='EUR=X'
data = bt.get(symbol, start='2016-01-01') #compares EUR to USD
print(data.head())

sma50 = data.rolling(50).mean()
sma200 = data.rolling(200).mean()

sma50=bt.Strategy('sma50',[bt.algos.SelectWhere(data>sma50),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
sma50_bt=bt.Backtest(sma50, data)

res = bt.run(sma50_bt)

res.plot()

0 ответов

Другие вопросы по тегам