virgo-modules 0.2.8__py3-none-any.whl → 0.2.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of virgo-modules might be problematic. Click here for more details.

@@ -1211,18 +1211,26 @@ class produce_plotly_plots:
1211
1211
  if self.return_figs:
1212
1212
  return fig, messages
1213
1213
 
1214
- def produce_forecasting_plot(self,predictions):
1214
+ def produce_forecasting_plot(self,predictions, window=30):
1215
1215
  """
1216
1216
  display forecasting plots
1217
1217
 
1218
1218
  Parameters
1219
1219
  ----------
1220
1220
  predictions (pd.DataFrame): asset predictions
1221
+ window (int): historical data to display
1221
1222
 
1222
1223
  Returns
1223
1224
  -------
1224
1225
  None
1225
1226
  """
1227
+ def qs(x):
1228
+ return x.quantile(0.05)
1229
+ def qm(x):
1230
+ return x.quantile(0.50)
1231
+ def ql(x):
1232
+ return x.quantile(0.95)
1233
+
1226
1234
  result_json_name = 'forecast_plot.json'
1227
1235
  hmm_n_clust = self.settings['settings']['hmm']['n_clusters']
1228
1236
  model_type = self.settings.get('model_type',False)
@@ -1238,8 +1246,6 @@ class produce_plotly_plots:
1238
1246
  [{"type": "scatter"}, {"type": "scatter"}]],
1239
1247
  subplot_titles = [f'asset returns {lags} lags', 'closing prices', 'hidden states']
1240
1248
  )
1241
-
1242
-
1243
1249
  predictions = predictions[predictions.StockCode == self.ticket_name]
1244
1250
  if len(predictions) > 1:
1245
1251
 
@@ -1255,12 +1261,18 @@ class produce_plotly_plots:
1255
1261
  last_exe_prediction_date = predictions.ExecutionDate.unique()
1256
1262
  last_date = max(last_exe_prediction_date)
1257
1263
 
1258
- history = predictions[(predictions.Type == 'History') & (predictions.ExecutionDate == last_date)]
1264
+ history = self.data_frame.sort_values('Date').iloc[-window:,:]
1259
1265
  cut_date = history.loc[history.iloc[-1:,:].index[0]:,'Date'].item()
1260
-
1261
1266
  prediction = predictions[predictions.Type == 'Prediction']
1262
1267
 
1263
1268
  ## log returns
1269
+ def add_intervals(data,feature,i,w=5):
1270
+ df_qs = data.sort_values('Date')[['Date',feature]].rolling(3,min_periods = 1,on='Date').apply(qs).groupby('Date',as_index=False)[feature].max()
1271
+ df_qm = data.sort_values('Date')[['Date',feature]].rolling(3,min_periods = 1,on='Date').apply(qm).groupby('Date',as_index=False)[feature].max()
1272
+ df_ql = data.sort_values('Date')[['Date',feature]].rolling(3,min_periods = 1,on='Date').apply(ql).groupby('Date',as_index=False)[feature].max()
1273
+ fig.add_trace(go.Scatter(x=df_qs.Date, y=df_qs[feature], mode='lines',marker_color ='#D0D0D0',showlegend=False,opacity=0.05),row=1, col=i)
1274
+ fig.add_trace(go.Scatter(x=df_qm.Date, y=df_qm[feature], mode='lines',marker_color ='#D0D0D0',showlegend=False,opacity=0.05, fill='tonexty'),row=1, col=i)
1275
+ fig.add_trace(go.Scatter(x=df_ql.Date, y=df_ql[feature], mode='lines',marker_color ='#D0D0D0',showlegend=False,opacity=0.05, fill='tonexty'),row=1, col=i)
1264
1276
 
1265
1277
  fig.add_trace(go.Scatter(x=history.Date, y=history.log_return, mode='lines',marker_color ='blue',showlegend=False),row=1, col=1)
1266
1278
 
@@ -1272,9 +1284,9 @@ class produce_plotly_plots:
1272
1284
  fig.add_trace(go.Scatter(x=df.Date, y=df.log_return, mode='lines',marker_color ='#ff7f0e',showlegend=False),row=1, col=1)
1273
1285
  fig.add_trace(go.Scatter(x=df.Date, y=df.log_return, mode='markers',marker_color ='#ff7f0e',showlegend=False),row=1, col=1)
1274
1286
  fig.add_hline(y=0, line_width=2, line_dash="dash", line_color="grey",col = 1, row = 1)
1287
+ add_intervals(data=prediction,feature='log_return',i=1)
1275
1288
 
1276
1289
  ## closing prices
1277
-
1278
1290
  fig.add_trace(go.Scatter(x=history.Date, y=history.Close, mode='lines',marker_color ='blue',showlegend=False),row=1, col=2)
1279
1291
  for i,datex in enumerate([x for x in last_exe_prediction_date if x != last_date]):
1280
1292
  df = prediction[prediction.ExecutionDate == datex]
@@ -1284,6 +1296,7 @@ class produce_plotly_plots:
1284
1296
  fig.add_trace(go.Scatter(x=df.Date, y=df.Close, mode='lines',marker_color ='#ff7f0e',showlegend=False),row=1, col=2)
1285
1297
  fig.add_trace(go.Scatter(x=df.Date, y=df.Close, mode='markers',marker_color ='#ff7f0e',showlegend=False),row=1, col=2)
1286
1298
  fig.update_layout(height=height_plot, width=1600, title_text = f'forecasts: {self.ticket_name}')
1299
+ add_intervals(data=prediction,feature='Close',i=2)
1287
1300
  else:
1288
1301
  print('no forecasting history')
1289
1302
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: virgo-modules
3
- Version: 0.2.8
3
+ Version: 0.2.9
4
4
  Summary: data processing and statistical modeling using stock market data
5
5
  Home-page: https://github.com/miguelmayhem92/virgo_module
6
6
  Author: Miguel Mayhuire
@@ -5,11 +5,11 @@ virgo_modules/src/backtester.py,sha256=OhiWyzDX0PthXGuhChyWUmDN3cLkzVYe95zS4nGti
5
5
  virgo_modules/src/edge_utils.py,sha256=XN2oEOwADXF9IGNUGx0Ai8B1yDAiU2WDateLnEJh5FE,14243
6
6
  virgo_modules/src/hmm_utils.py,sha256=fFWxmh9q3rjiKRHnxNk9k7O4fDrxVxkmp3pbpLvktjc,21116
7
7
  virgo_modules/src/pull_artifacts.py,sha256=5OPrgR7pcMSdpbevDRhf0ebk7g7ZRjff4NpTIIWAKjE,1989
8
- virgo_modules/src/re_utils.py,sha256=3epzYRujEK7DZYd3ca8q9F-fWl8UAZjUuTfKuC1t2Hs,73485
8
+ virgo_modules/src/re_utils.py,sha256=PoHFqYiccUrKZJ2wvDbisrK1Uo9ekX8laAeGc2XxLxY,74852
9
9
  virgo_modules/src/ticketer_source.py,sha256=joJUoaga5M0OOAiOJ8TFR_sGd6eckbHlN1fxLIklXSM,98785
10
10
  virgo_modules/src/transformer_utils.py,sha256=LLwKYZRq5hrPVimnq3taD0Lh-q3Bq21fy1I4Icbnxi8,7677
11
- virgo_modules-0.2.8.dist-info/LICENSE,sha256=pNgFyCYgmimaw0o6V20JupZLROycAnOA_HDDh1tX2V4,1097
12
- virgo_modules-0.2.8.dist-info/METADATA,sha256=qt74JQ2qmy78BrVRmcNbYMyAGyet5sT_ccvlKnWImDA,1428
13
- virgo_modules-0.2.8.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
14
- virgo_modules-0.2.8.dist-info/top_level.txt,sha256=ZjI-qEkDtT-8mFwGAWnXfqPOKEGlIhWRW1es1VyXc60,14
15
- virgo_modules-0.2.8.dist-info/RECORD,,
11
+ virgo_modules-0.2.9.dist-info/LICENSE,sha256=pNgFyCYgmimaw0o6V20JupZLROycAnOA_HDDh1tX2V4,1097
12
+ virgo_modules-0.2.9.dist-info/METADATA,sha256=3ldgs_EMHB6fhrfWq2Z3AKk-BBz3jKIW83q24D7KlTc,1428
13
+ virgo_modules-0.2.9.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
14
+ virgo_modules-0.2.9.dist-info/top_level.txt,sha256=ZjI-qEkDtT-8mFwGAWnXfqPOKEGlIhWRW1es1VyXc60,14
15
+ virgo_modules-0.2.9.dist-info/RECORD,,