24
24
from dimod import ConstrainedQuadraticModel , DiscreteQuadraticModel
25
25
from dwave .system import LeapHybridDQMSampler , LeapHybridCQMSampler
26
26
27
+ import yfinance as yf
28
+
27
29
28
30
class SinglePeriod :
29
31
"""Define and solve a single-period portfolio optimization problem.
@@ -134,8 +136,8 @@ def load_data(self, file_path='', dates=None, df=None, num=0):
134
136
self .stocks = random .sample (list (symbols_df .loc [:,'Symbol' ]), num )
135
137
136
138
# Read in daily data; resample to monthly
137
- panel_data = DataReader (self .stocks , 'yahoo' ,
138
- self .dates [0 ], self .dates [1 ])
139
+ panel_data = yf . download (self .stocks ,
140
+ start = self .dates [0 ], end = self .dates [1 ])
139
141
panel_data = panel_data .resample ('BM' ).last ()
140
142
self .df_all = pd .DataFrame (index = panel_data .index ,
141
143
columns = self .stocks )
@@ -152,14 +154,13 @@ def load_data(self, file_path='', dates=None, df=None, num=0):
152
154
self .stocks = list (self .df_all .columns )
153
155
154
156
# Read in baseline data; resample to monthly
155
- index_df = DataReader (self .baseline , 'yahoo' ,
156
- self .dates [0 ], self .dates [1 ])
157
+ index_df = yf . download (self .baseline ,
158
+ start = self .dates [0 ], end = self .dates [1 ])
157
159
index_df = index_df .resample ('BM' ).last ()
158
- self .df_baseline = pd .DataFrame (index = index_df .index ,
159
- columns = self .baseline )
160
-
160
+ self .df_baseline = pd .DataFrame (index = index_df .index )
161
+
161
162
for i in self .baseline :
162
- self .df_baseline [i ] = index_df [[('Adj Close' , i )]]
163
+ self .df_baseline [i ] = index_df [[('Adj Close' )]]
163
164
164
165
self .df = self .df_all
165
166
else :
0 commit comments