wnstnb commited on
Commit
dea9584
·
1 Parent(s): 6e08397

update app.py

Browse files
Files changed (2) hide show
  1. app.py +142 -24
  2. model_day.py +1 -1
app.py CHANGED
@@ -119,20 +119,36 @@ with st.form("choose_model"):
119
 
120
  with st.spinner("Getting new prediction..."):
121
 
122
- # Get last row
123
- new_pred = data.loc[final_row, ['BigNewsDay',
124
  'Quarter',
125
  'Perf5Day',
126
- 'Perf5Day_n1',
127
- 'DaysGreen',
128
- 'DaysRed',
129
  'CurrentGap',
130
  'RangePct',
131
  'RangePct_n1',
132
  'RangePct_n2',
133
  'OHLC4_VIX',
134
  'OHLC4_VIX_n1',
135
- 'OHLC4_VIX_n2']]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
 
137
  new_pred = pd.DataFrame(new_pred).T
138
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
@@ -153,6 +169,18 @@ with st.form("choose_model"):
153
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
154
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
155
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
 
 
 
 
 
 
 
 
 
 
 
 
156
 
157
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
158
 
@@ -176,25 +204,42 @@ with st.form("choose_model"):
176
 
177
  with st.spinner("Getting new prediction..."):
178
 
179
- # Get last row
180
- new_pred = data.loc[final_row, ['BigNewsDay',
181
  'Quarter',
182
  'Perf5Day',
183
- 'Perf5Day_n1',
184
- 'DaysGreen',
185
  'DaysRed',
186
  'CurrentHigh30toClose',
187
  'CurrentLow30toClose',
188
  'CurrentClose30toClose',
189
  'CurrentRange30',
190
- 'GapFill30',
191
  'CurrentGap',
192
  'RangePct',
193
  'RangePct_n1',
194
  'RangePct_n2',
195
  'OHLC4_VIX',
196
  'OHLC4_VIX_n1',
197
- 'OHLC4_VIX_n2']]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
 
199
  new_pred = pd.DataFrame(new_pred).T
200
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
@@ -220,6 +265,19 @@ with st.form("choose_model"):
220
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
221
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
222
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
 
 
 
 
 
 
 
 
 
 
 
 
 
223
 
224
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
225
 
@@ -243,25 +301,42 @@ with st.form("choose_model"):
243
 
244
  with st.spinner("Getting new prediction..."):
245
 
246
- # Get last row
247
- new_pred = data.loc[final_row, ['BigNewsDay',
248
  'Quarter',
249
  'Perf5Day',
250
- 'Perf5Day_n1',
251
- 'DaysGreen',
252
  'DaysRed',
253
  'CurrentHigh30toClose',
254
  'CurrentLow30toClose',
255
  'CurrentClose30toClose',
256
  'CurrentRange30',
257
- 'GapFill30',
258
  'CurrentGap',
259
  'RangePct',
260
  'RangePct_n1',
261
  'RangePct_n2',
262
  'OHLC4_VIX',
263
  'OHLC4_VIX_n1',
264
- 'OHLC4_VIX_n2']]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
 
266
  new_pred = pd.DataFrame(new_pred).T
267
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
@@ -287,6 +362,19 @@ with st.form("choose_model"):
287
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
288
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
289
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
 
 
 
 
 
 
 
 
 
 
 
 
 
290
 
291
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
292
 
@@ -310,25 +398,42 @@ with st.form("choose_model"):
310
 
311
  with st.spinner("Getting new prediction..."):
312
 
313
- # Get last row
314
- new_pred = data.loc[final_row, ['BigNewsDay',
315
  'Quarter',
316
  'Perf5Day',
317
- 'Perf5Day_n1',
318
- 'DaysGreen',
319
  'DaysRed',
320
  'CurrentHigh30toClose',
321
  'CurrentLow30toClose',
322
  'CurrentClose30toClose',
323
  'CurrentRange30',
324
- 'GapFill30',
325
  'CurrentGap',
326
  'RangePct',
327
  'RangePct_n1',
328
  'RangePct_n2',
329
  'OHLC4_VIX',
330
  'OHLC4_VIX_n1',
331
- 'OHLC4_VIX_n2']]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
 
333
  new_pred = pd.DataFrame(new_pred).T
334
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
@@ -354,6 +459,19 @@ with st.form("choose_model"):
354
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
355
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
356
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
 
 
 
 
 
 
 
 
 
 
 
 
 
357
 
358
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
359
 
 
119
 
120
  with st.spinner("Getting new prediction..."):
121
 
122
+ model_cols = [
123
+ 'BigNewsDay',
124
  'Quarter',
125
  'Perf5Day',
126
+ 'Perf5Day_n1',
127
+ 'DaysGreen',
128
+ 'DaysRed',
129
  'CurrentGap',
130
  'RangePct',
131
  'RangePct_n1',
132
  'RangePct_n2',
133
  'OHLC4_VIX',
134
  'OHLC4_VIX_n1',
135
+ 'OHLC4_VIX_n2',
136
+ 'OpenL1',
137
+ 'OpenL2',
138
+ 'OpenH1',
139
+ 'OpenH2',
140
+ 'L1TouchPct',
141
+ 'L2TouchPct',
142
+ 'H1TouchPct',
143
+ 'H2TouchPct',
144
+ 'L1BreakPct',
145
+ 'L2BreakPct',
146
+ 'H1BreakPct',
147
+ 'H2BreakPct'
148
+ ]
149
+
150
+ # Get last row
151
+ new_pred = data.loc[final_row, model_cols]
152
 
153
  new_pred = pd.DataFrame(new_pred).T
154
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
 
169
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
170
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
171
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
172
+ new_pred['OpenL1'] = new_pred['OpenL1'].astype(float)
173
+ new_pred['OpenL2'] = new_pred['OpenL2'].astype(float)
174
+ new_pred['OpenH1'] = new_pred['OpenH1'].astype(float)
175
+ new_pred['OpenH2'] = new_pred['OpenH2'].astype(float)
176
+ new_pred['L1TouchPct'] = new_pred['L1TouchPct'].astype(float)
177
+ new_pred['L2TouchPct'] = new_pred['L2TouchPct'].astype(float)
178
+ new_pred['H1TouchPct'] = new_pred['H1TouchPct'].astype(float)
179
+ new_pred['H2TouchPct'] = new_pred['H2TouchPct'].astype(float)
180
+ new_pred['L1BreakPct'] = new_pred['L1BreakPct'].astype(float)
181
+ new_pred['L2BreakPct'] = new_pred['L2BreakPct'].astype(float)
182
+ new_pred['H1BreakPct'] = new_pred['H1BreakPct'].astype(float)
183
+ new_pred['H2BreakPct'] = new_pred['H2BreakPct'].astype(float)
184
 
185
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
186
 
 
204
 
205
  with st.spinner("Getting new prediction..."):
206
 
207
+ model_cols = [
208
+ 'BigNewsDay',
209
  'Quarter',
210
  'Perf5Day',
211
+ 'Perf5Day_n1',
212
+ 'DaysGreen',
213
  'DaysRed',
214
  'CurrentHigh30toClose',
215
  'CurrentLow30toClose',
216
  'CurrentClose30toClose',
217
  'CurrentRange30',
218
+ 'GapFill30',
219
  'CurrentGap',
220
  'RangePct',
221
  'RangePct_n1',
222
  'RangePct_n2',
223
  'OHLC4_VIX',
224
  'OHLC4_VIX_n1',
225
+ 'OHLC4_VIX_n2',
226
+ 'OpenL1',
227
+ 'OpenL2',
228
+ 'OpenH1',
229
+ 'OpenH2',
230
+ 'L1TouchPct',
231
+ 'L2TouchPct',
232
+ 'H1TouchPct',
233
+ 'H2TouchPct',
234
+ 'L1BreakPct',
235
+ 'L2BreakPct',
236
+ 'H1BreakPct',
237
+ 'H2BreakPct',
238
+ 'GreenProbas'
239
+ ]
240
+
241
+ # Get last row
242
+ new_pred = data.loc[final_row, model_cols]
243
 
244
  new_pred = pd.DataFrame(new_pred).T
245
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
 
265
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
266
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
267
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
268
+ new_pred['OpenL1'] = new_pred['OpenL1'].astype(float)
269
+ new_pred['OpenL2'] = new_pred['OpenL2'].astype(float)
270
+ new_pred['OpenH1'] = new_pred['OpenH1'].astype(float)
271
+ new_pred['OpenH2'] = new_pred['OpenH2'].astype(float)
272
+ new_pred['L1TouchPct'] = new_pred['L1TouchPct'].astype(float)
273
+ new_pred['L2TouchPct'] = new_pred['L2TouchPct'].astype(float)
274
+ new_pred['H1TouchPct'] = new_pred['H1TouchPct'].astype(float)
275
+ new_pred['H2TouchPct'] = new_pred['H2TouchPct'].astype(float)
276
+ new_pred['L1BreakPct'] = new_pred['L1BreakPct'].astype(float)
277
+ new_pred['L2BreakPct'] = new_pred['L2BreakPct'].astype(float)
278
+ new_pred['H1BreakPct'] = new_pred['H1BreakPct'].astype(float)
279
+ new_pred['H2BreakPct'] = new_pred['H2BreakPct'].astype(float)
280
+ new_pred['GreenProbas'] = new_pred['GreenProbas'].astype(float)
281
 
282
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
283
 
 
301
 
302
  with st.spinner("Getting new prediction..."):
303
 
304
+ model_cols = [
305
+ 'BigNewsDay',
306
  'Quarter',
307
  'Perf5Day',
308
+ 'Perf5Day_n1',
309
+ 'DaysGreen',
310
  'DaysRed',
311
  'CurrentHigh30toClose',
312
  'CurrentLow30toClose',
313
  'CurrentClose30toClose',
314
  'CurrentRange30',
315
+ 'GapFill30',
316
  'CurrentGap',
317
  'RangePct',
318
  'RangePct_n1',
319
  'RangePct_n2',
320
  'OHLC4_VIX',
321
  'OHLC4_VIX_n1',
322
+ 'OHLC4_VIX_n2',
323
+ 'OpenL1',
324
+ 'OpenL2',
325
+ 'OpenH1',
326
+ 'OpenH2',
327
+ 'L1TouchPct',
328
+ 'L2TouchPct',
329
+ 'H1TouchPct',
330
+ 'H2TouchPct',
331
+ 'L1BreakPct',
332
+ 'L2BreakPct',
333
+ 'H1BreakPct',
334
+ 'H2BreakPct',
335
+ 'GreenProbas'
336
+ ]
337
+
338
+ # Get last row
339
+ new_pred = data.loc[final_row, model_cols]
340
 
341
  new_pred = pd.DataFrame(new_pred).T
342
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
 
362
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
363
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
364
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
365
+ new_pred['OpenL1'] = new_pred['OpenL1'].astype(float)
366
+ new_pred['OpenL2'] = new_pred['OpenL2'].astype(float)
367
+ new_pred['OpenH1'] = new_pred['OpenH1'].astype(float)
368
+ new_pred['OpenH2'] = new_pred['OpenH2'].astype(float)
369
+ new_pred['L1TouchPct'] = new_pred['L1TouchPct'].astype(float)
370
+ new_pred['L2TouchPct'] = new_pred['L2TouchPct'].astype(float)
371
+ new_pred['H1TouchPct'] = new_pred['H1TouchPct'].astype(float)
372
+ new_pred['H2TouchPct'] = new_pred['H2TouchPct'].astype(float)
373
+ new_pred['L1BreakPct'] = new_pred['L1BreakPct'].astype(float)
374
+ new_pred['L2BreakPct'] = new_pred['L2BreakPct'].astype(float)
375
+ new_pred['H1BreakPct'] = new_pred['H1BreakPct'].astype(float)
376
+ new_pred['H2BreakPct'] = new_pred['H2BreakPct'].astype(float)
377
+ new_pred['GreenProbas'] = new_pred['GreenProbas'].astype(float)
378
 
379
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
380
 
 
398
 
399
  with st.spinner("Getting new prediction..."):
400
 
401
+ model_cols = [
402
+ 'BigNewsDay',
403
  'Quarter',
404
  'Perf5Day',
405
+ 'Perf5Day_n1',
406
+ 'DaysGreen',
407
  'DaysRed',
408
  'CurrentHigh30toClose',
409
  'CurrentLow30toClose',
410
  'CurrentClose30toClose',
411
  'CurrentRange30',
412
+ 'GapFill30',
413
  'CurrentGap',
414
  'RangePct',
415
  'RangePct_n1',
416
  'RangePct_n2',
417
  'OHLC4_VIX',
418
  'OHLC4_VIX_n1',
419
+ 'OHLC4_VIX_n2',
420
+ 'OpenL1',
421
+ 'OpenL2',
422
+ 'OpenH1',
423
+ 'OpenH2',
424
+ 'L1TouchPct',
425
+ 'L2TouchPct',
426
+ 'H1TouchPct',
427
+ 'H2TouchPct',
428
+ 'L1BreakPct',
429
+ 'L2BreakPct',
430
+ 'H1BreakPct',
431
+ 'H2BreakPct',
432
+ 'GreenProbas'
433
+ ]
434
+
435
+ # Get last row
436
+ new_pred = data.loc[final_row, model_cols]
437
 
438
  new_pred = pd.DataFrame(new_pred).T
439
  # new_pred_show = pd.DataFrame(index=[new_pred.columns], columns=[new_pred.index], data=[[v] for v in new_pred.values])
 
459
  new_pred['OHLC4_VIX'] = new_pred['OHLC4_VIX'].astype(float)
460
  new_pred['OHLC4_VIX_n1'] = new_pred['OHLC4_VIX_n1'].astype(float)
461
  new_pred['OHLC4_VIX_n2'] = new_pred['OHLC4_VIX_n2'].astype(float)
462
+ new_pred['OpenL1'] = new_pred['OpenL1'].astype(float)
463
+ new_pred['OpenL2'] = new_pred['OpenL2'].astype(float)
464
+ new_pred['OpenH1'] = new_pred['OpenH1'].astype(float)
465
+ new_pred['OpenH2'] = new_pred['OpenH2'].astype(float)
466
+ new_pred['L1TouchPct'] = new_pred['L1TouchPct'].astype(float)
467
+ new_pred['L2TouchPct'] = new_pred['L2TouchPct'].astype(float)
468
+ new_pred['H1TouchPct'] = new_pred['H1TouchPct'].astype(float)
469
+ new_pred['H2TouchPct'] = new_pred['H2TouchPct'].astype(float)
470
+ new_pred['L1BreakPct'] = new_pred['L1BreakPct'].astype(float)
471
+ new_pred['L2BreakPct'] = new_pred['L2BreakPct'].astype(float)
472
+ new_pred['H1BreakPct'] = new_pred['H1BreakPct'].astype(float)
473
+ new_pred['H2BreakPct'] = new_pred['H2BreakPct'].astype(float)
474
+ new_pred['GreenProbas'] = new_pred['GreenProbas'].astype(float)
475
 
476
  seq_proba = seq_predict_proba(new_pred, xgbr, seq2)
477
 
model_day.py CHANGED
@@ -317,7 +317,7 @@ def get_data():
317
  ]
318
 
319
  for col in level_cols:
320
- data[col+'Pct'] = data[col].expanding().sum() / data[col].expanding().apply(len)
321
 
322
  # Target -- the next day's low
323
  data['Target'] = (data['OHLC4'] / data['PrevClose']) - 1
 
317
  ]
318
 
319
  for col in level_cols:
320
+ data[col+'Pct'] = data[col].rolling(100).mean()
321
 
322
  # Target -- the next day's low
323
  data['Target'] = (data['OHLC4'] / data['PrevClose']) - 1