AmirTrader commited on
Commit
a574103
·
verified ·
1 Parent(s): 13263c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +77 -3
app.py CHANGED
@@ -21,6 +21,7 @@ from utils import load_hf_dataset # ,upload_to_hf_dataset, download_from_hf_dat
21
 
22
  pn.extension("bokeh", template="bootstrap")
23
 
 
24
  def _extract_raw_data(ticker):
25
  df = yf.Ticker(ticker)
26
  return df.history(period="6mo", interval="1d").reset_index()
@@ -187,11 +188,13 @@ daily_marketbeat["MarketBeat"] = (
187
  ).astype(int)
188
 
189
  # Merging daily_marketbeat with Merged last one
190
- print(80*'&')
191
  print(DFmerge_tipranks_gurufocus.columns)
192
  print(daily_marketbeat.columns)
193
  # DFmerge_tipranks_gurufocus = DFmerge_tipranks_gurufocus.merge(daily_marketbeat)
194
- DFmerge_tipranks_gurufocus = DFmerge_tipranks_gurufocus.merge(daily_marketbeat, how='left', on='Ticker')
 
 
195
 
196
  if (
197
  "Price" in DFmerge_tipranks_gurufocus.columns
@@ -310,6 +313,7 @@ def get_DF_filter(
310
  "SmartScore>=@SmartScore[0] & SmartScore <= @SmartScore[1] & GFValuepercent>=@GFValuepercent & FinVizTargetpercent>@FinVizTargetpercent & Sector in @Sector & MarketCap>@MarketCap"
311
  )
312
 
 
313
  download_button_Filter = pn.widgets.FileDownload(
314
  filename=f"Filter_{current_datetime}.csv",
315
  callback=pn.bind(
@@ -376,7 +380,77 @@ def get_DF(
376
  )
377
  table1.disabled = True
378
  chart1 = make_candle_stick(ticker)
379
- return pn.Column(table1, chart1)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  else:
381
  if MarketBeat == "Above all Targets":
382
  tabulator = pn.widgets.Tabulator(
 
21
 
22
  pn.extension("bokeh", template="bootstrap")
23
 
24
+
25
  def _extract_raw_data(ticker):
26
  df = yf.Ticker(ticker)
27
  return df.history(period="6mo", interval="1d").reset_index()
 
188
  ).astype(int)
189
 
190
  # Merging daily_marketbeat with Merged last one
191
+ print(80 * "&")
192
  print(DFmerge_tipranks_gurufocus.columns)
193
  print(daily_marketbeat.columns)
194
  # DFmerge_tipranks_gurufocus = DFmerge_tipranks_gurufocus.merge(daily_marketbeat)
195
+ DFmerge_tipranks_gurufocus = DFmerge_tipranks_gurufocus.merge(
196
+ daily_marketbeat, how="left", on="Ticker"
197
+ )
198
 
199
  if (
200
  "Price" in DFmerge_tipranks_gurufocus.columns
 
313
  "SmartScore>=@SmartScore[0] & SmartScore <= @SmartScore[1] & GFValuepercent>=@GFValuepercent & FinVizTargetpercent>@FinVizTargetpercent & Sector in @Sector & MarketCap>@MarketCap"
314
  )
315
 
316
+
317
  download_button_Filter = pn.widgets.FileDownload(
318
  filename=f"Filter_{current_datetime}.csv",
319
  callback=pn.bind(
 
380
  )
381
  table1.disabled = True
382
  chart1 = make_candle_stick(ticker)
383
+
384
+ url_button_finviz = pn.widgets.Button(
385
+ name=f"{ticker} on FinViz", button_type="primary", width=200
386
+ )
387
+ url_button_finviz.js_on_click(
388
+ code=f"window.open('https://finviz.com/quote.ashx?t={ticker}&p=d#', '_blank')"
389
+ )
390
+
391
+ url_button_benzinga = pn.widgets.Button(
392
+ name=f"{ticker} on Benzinga", button_type="primary", width=200
393
+ )
394
+ url_button_benzinga.js_on_click(
395
+ code=f"window.open('https://www.benzinga.com/quote/{ticker}', '_blank')"
396
+ )
397
+
398
+ url_button_tipranks = pn.widgets.Button(
399
+ name=f"{ticker} on TipRanks", button_type="warning", width=200
400
+ )
401
+ url_button_tipranks.js_on_click(
402
+ code=f"window.open('https://www.tipranks.com/stocks/{ticker}/forecast', '_blank')"
403
+ )
404
+
405
+ url_button_gurufocus = pn.widgets.Button(
406
+ name=f"{ticker} on GuruFocus", button_type="warning", width=200
407
+ )
408
+ url_button_gurufocus.js_on_click(
409
+ code=f"window.open('https://gurufocus.com/stock/{ticker}', '_blank')"
410
+ )
411
+
412
+ url_button_barchart = pn.widgets.Button(
413
+ name=f"{ticker} on BarChart", button_type="success", width=200
414
+ )
415
+ url_button_barchart.js_on_click(
416
+ code=f"window.open('https://www.barchart.com/stocks/quotes/{ticker}/expected-move', '_blank')"
417
+ )
418
+
419
+ url_button_optionchart = pn.widgets.Button(
420
+ name=f"{ticker} on optionchart", button_type="danger", width=200
421
+ )
422
+ url_button_optionchart.js_on_click(
423
+ code=f"window.open('https://optioncharts.io/options/{ticker}', '_blank')"
424
+ )
425
+
426
+ url_button_tradingview = pn.widgets.Button(
427
+ name=f"{ticker} on tradingview", button_type="light", width=200
428
+ )
429
+ url_button_tradingview.js_on_click(
430
+ code=f"window.open('https://www.tradingview.com/symbols/NASDAQ-{ticker}/technicals/', '_blank')"
431
+ )
432
+
433
+ url_button_marketwatch = pn.widgets.Button(
434
+ name=f"{ticker} on marketwatch", button_type="danger", width=200
435
+ )
436
+ url_button_marketwatch.js_on_click(
437
+ code=f"window.open('https://www.marketwatch.com/investing/stock/{ticker}', '_blank')"
438
+ )
439
+
440
+ return pn.Column(
441
+ table1,
442
+ chart1,
443
+ pn.Row(
444
+ url_button_finviz,
445
+ url_button_benzinga,
446
+ url_button_gurufocus,
447
+ url_button_tipranks,
448
+ url_button_barchart,
449
+ url_button_optionchart,
450
+ url_button_tradingview,
451
+ url_button_marketwatch,
452
+ ),
453
+ )
454
  else:
455
  if MarketBeat == "Above all Targets":
456
  tabulator = pn.widgets.Tabulator(