Usei o pandas_datareader para extrair informações de ações na internet.
Usei como fonte o Quandl pois, aparentemente, o google e o yahoo não estão funcionando direito. Se alguém souber uma fonte melhor para esses dados, por favor, me informe.
if __name__ == '__main__':
start = dt.datetime(2015,2,11);
end = dt.datetime(2017,6,16);
a = web.DataReader('WIKI/GOOGL', 'quandl', start, end)['AdjClose'];
b = web.DataReader('WIKI/YHOO', 'quandl', start, end)['AdjClose'];
c = web.DataReader('WIKI/FB', 'quandl', start, end)['AdjClose'];
d = web.DataReader('WIKI/AMZN', 'quandl', start, end)['AdjClose'];
a.sort_index(inplace = True);
b.sort_index(inplace = True);
c.sort_index(inplace = True);
d.sort_index(inplace = True);
A função DataReader do pandas_datareader recebe como parâmetros o nome da ação, a fonte dos dados, uma data início e uma fim. Selecionei apenas a coluna contendo os preços de fechamento do dia. Depois fiz um sort em cada uma delas para deixar em ordem crescente de data.
Com essas informações, criei os objetos do tipo Ativo.
yahoo = Ativo('YHOO', 'Yahoo', a);
google = Ativo('GOOGL', 'Google', b);
facebook = Ativo('FB', 'Facebook', c);
amazon = Ativo('AMZN', 'Amazon', d);
Testando algumas funções:
print(yahoo);
Yahoo: YHOO - último fechamento: 958
print(google.calcRetornoMedio());
0.0855504760014569
print(facebook.calcVariancia());
0.062243159274610056