Spaces:
Sleeping
Sleeping
update app.py
Browse files- app.py +142 -24
- 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 |
-
|
123 |
-
|
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 |
-
|
180 |
-
|
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 |
-
|
247 |
-
|
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 |
-
|
314 |
-
|
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].
|
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
|