Just found this platform and would like to "test" some trading ideas using only the 11 S&P500 sectors.  From the Sample Library I found this code:

for symbol in self.symbols:
            self.AddEquity(symbol, Resolution.Daily)
            self.data[symbol] = self.MOM(symbol, period, Resolution.Daily)

What kind of structure does the self.MOM create?  Is self.data a python series with the symbol being the index?

Also: what does "kvp" do in the following loop (its not defined anywhere in the example):

for kvp in self.Portfolio:

  security_hold = kvp.Value

Appreciate all comments to explain what is happening.  Thanks ...

Mike