Pyalgotrade SMA编码澄清



我已经开始学习和测试pyalgotrade,并且很难理解某些技术代码(例如SMA和RSI)的代码背后的某些逻辑。我了解self.info()函数将其用作变量的dataframe feed打印出来,但是,在SMA和RSI之后[-1]在下面发布的代码的最后一行之后,[-1]的作用是什么?

from pyalgotrade import strategy
from pyalgotrade.barfeed import yahoofeed
from pyalgotrade.technical import ma
from pyalgotrade.technical import rsi
class MyStrategy(strategy.BacktestingStrategy):
    def __init__(self, feed, instrument):
        strategy.BacktestingStrategy.__init__(self, feed)
        self.__rsi = rsi.RSI(feed[instrument].getCloseDataSeries(), 14)
        self.__sma = ma.SMA(self.__rsi, 15)
        self.__instrument = instrument
    def onBars(self, bars):
        bar = bars[self.__instrument]
        self.info("%s %s %s" %(bar.getClose(), self.__rsi[-1], self.__sma[-1]))

一个负索引简单含义是:您从数组的"后方"端计数。

换句话说:[-1]引用数组中的最后一个元素,[-2]到"几乎最后",依此类推。

最新更新