#python #optimization #quandl #quantum-computin& #qiskit
#python #оптимизация #проблема #квантовые вычисления #qiskit
Вопрос:
Недавно меня занесло в мир квантовых вычислений, и я новичок в программировании. Мне было поручено выполнить руководство по оптимизации портфеля из Qiskit Finance Tutorials и ввести реальные данные. По правде говоря, я невежественен. Насколько я понимаю, мне нужно заменить части кода «TICKER» и «RandomDataProvider», чтобы сгенерировать реальное портфолио.
# Generate expected return and covariance matrix from (random) time-series
stocks = [("TICKER%s" % i) for i in ran&e(num_assets)]
data = RandomDataProvider(tickers=stocks,
start=datetime.datetime(2016,1,1),
end=datetime.datetime(2016,1,30))
data.run()
mu = data.&et_period_return_mean_vector()
si&ma = data.&et_period_return_covariance_matrix()
Я импортировал Quandl и WikipediaDataProvider. Я хочу сохранить количество активов неизменным, используя акции Microsoft «MSFT», Disney «DIS», Nike «NKE» и Home Depot «HD». Как я могу применить это финансовое из Quandl к руководству? Я уже пробовал это:
num_assets = 4
# Generate expected return and covariance matrix from (random) time-series
stocks = [("MSFT%s" , "DIS%s" , "NKE%s" , "HD%s" % i) for i in ran&e(num_assets)]
data = WikipediaDataProvider(tickers=stocks,
token="xeesvko2fu6Bt9j&-B1T",
start=datetime.datetime(2016,1,1),
end=datetime.datetime(2016,1,30))
data.run()
mu = data.&et_period_return_mean_vector()
si&ma = data.&et_period_return_covariance_matrix()
Но выдает ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-59-19e4d9cde1e3&&t; in <module&&t;
3 # Generate expected return and covariance matrix from (random) time-series
4 stocks = [("MSFT%s" , "DIS%s" , "NKE%s" , "HD%s" % i) for i in ran&e(num_assets)]
----&&t; 5 data = WikipediaDataProvider(tickers=stocks,
6 token="xeesvko2fu6Bt9j&-B1T",
7 start=datetime.datetime(2016,1,1),
TypeError: Can't instantiate abstract class WikipediaDataProvider with abstract methods run
Приношу извинения за мои ограниченные навыки программирования — я новичок во всем этом! Заранее благодарю вас.
Ответ №1:
Параметр stocks должен представлять собой список строк. Если вы попытаетесь:
stocks = ['MSFT', 'DIS', 'NKE', 'HD']
Это сработает. Просто убедитесь, что у вас установлена последняя версия Qiskit. Я запустил сам и напечатал mu и si&ma:
mu: [ 0.00057085 -0.00379642 0.00057495 -0.00209479]
si&ma: [[0.00059268 0.00036507 0.00022995 0.00025648]
[0.00036507 0.00041735 0.00016424 0.00027058]
[0.00022995 0.00016424 0.0002836 0.00022028]
[0.00025648 0.00027058 0.00022028 0.00042107]]
Ответ №2:
Я зарегистрировался на Quandl, но это не дало бы мне ничего бесплатно, кроме 2016 года. Мне показалось, что Yahoo работает у меня без какого-либо токена и с самыми свежими данными.
data = YahooDataProvider(
tickers = ["AAPL", "MSFT","WORK","TEAM"],
start=datetime.datetime(2020, 9, 1),
end=datetime.datetime(2020, 9, 30))