Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -14,7 +14,7 @@ import hvplot.pandas
|
|
| 14 |
|
| 15 |
import yfinance as yf
|
| 16 |
|
| 17 |
-
|
| 18 |
|
| 19 |
# from datasets import load_dataset
|
| 20 |
from utils import load_hf_dataset # ,upload_to_hf_dataset, download_from_hf_dataset
|
|
@@ -24,7 +24,7 @@ pn.extension("bokeh", template="bootstrap")
|
|
| 24 |
|
| 25 |
def _extract_raw_data(ticker):
|
| 26 |
df = yf.Ticker(ticker)
|
| 27 |
-
return df.history(period="
|
| 28 |
|
| 29 |
|
| 30 |
def _transform_data(raw_data: pd.DataFrame):
|
|
@@ -95,7 +95,7 @@ def get_text(df):
|
|
| 95 |
|
| 96 |
|
| 97 |
# Load environment variables from .env file
|
| 98 |
-
|
| 99 |
|
| 100 |
# Get the Hugging Face API token from the environment; either set in .env file or in the environment directly in GitHub
|
| 101 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
|
@@ -448,10 +448,32 @@ def get_DF(
|
|
| 448 |
code=f"window.open('https://www.marketwatch.com/investing/stock/{ticker}', '_blank')"
|
| 449 |
)
|
| 450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 451 |
return pn.Column(
|
| 452 |
table1,
|
| 453 |
chart1,
|
| 454 |
-
pn.
|
|
|
|
| 455 |
url_button_finviz,
|
| 456 |
url_button_benzinga,
|
| 457 |
url_button_gurufocus,
|
|
@@ -461,6 +483,13 @@ def get_DF(
|
|
| 461 |
url_button_tradingview,
|
| 462 |
url_button_marketwatch,
|
| 463 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 464 |
)
|
| 465 |
else:
|
| 466 |
if MarketBeat == "Above all Targets":
|
|
|
|
| 14 |
|
| 15 |
import yfinance as yf
|
| 16 |
|
| 17 |
+
from dotenv import load_dotenv
|
| 18 |
|
| 19 |
# from datasets import load_dataset
|
| 20 |
from utils import load_hf_dataset # ,upload_to_hf_dataset, download_from_hf_dataset
|
|
|
|
| 24 |
|
| 25 |
def _extract_raw_data(ticker):
|
| 26 |
df = yf.Ticker(ticker)
|
| 27 |
+
return df.history(period="5y", interval="1d").reset_index()
|
| 28 |
|
| 29 |
|
| 30 |
def _transform_data(raw_data: pd.DataFrame):
|
|
|
|
| 95 |
|
| 96 |
|
| 97 |
# Load environment variables from .env file
|
| 98 |
+
load_dotenv()
|
| 99 |
|
| 100 |
# Get the Hugging Face API token from the environment; either set in .env file or in the environment directly in GitHub
|
| 101 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
|
|
|
| 448 |
code=f"window.open('https://www.marketwatch.com/investing/stock/{ticker}', '_blank')"
|
| 449 |
)
|
| 450 |
|
| 451 |
+
url_button_chartmill_TA = pn.widgets.Button(
|
| 452 |
+
name=f"{ticker} on ChartMill TA", button_type="danger", width=250
|
| 453 |
+
)
|
| 454 |
+
url_button_chartmill_TA.js_on_click(
|
| 455 |
+
code=f"window.open('https://www.chartmill.com/stock/quote/{ticker}/technical-analysis', '_blank')"
|
| 456 |
+
)
|
| 457 |
+
|
| 458 |
+
url_button_chartmill_FA = pn.widgets.Button(
|
| 459 |
+
name=f"{ticker} on ChartMill FA", button_type="danger", width=250
|
| 460 |
+
)
|
| 461 |
+
url_button_chartmill_FA.js_on_click(
|
| 462 |
+
code=f"window.open('https://www.chartmill.com/stock/quote/{ticker}/fundamental-analysis', '_blank')"
|
| 463 |
+
)
|
| 464 |
+
|
| 465 |
+
url_button_seekingalpha = pn.widgets.Button(
|
| 466 |
+
name=f"{ticker} on seekingalpha", button_type="light", width=250
|
| 467 |
+
)
|
| 468 |
+
url_button_seekingalpha.js_on_click(
|
| 469 |
+
code=f"window.open('https://seekingalpha.com/symbol/{ticker}', '_blank')"
|
| 470 |
+
)
|
| 471 |
+
|
| 472 |
return pn.Column(
|
| 473 |
table1,
|
| 474 |
chart1,
|
| 475 |
+
pn.Column(
|
| 476 |
+
pn.Row(
|
| 477 |
url_button_finviz,
|
| 478 |
url_button_benzinga,
|
| 479 |
url_button_gurufocus,
|
|
|
|
| 483 |
url_button_tradingview,
|
| 484 |
url_button_marketwatch,
|
| 485 |
),
|
| 486 |
+
pn.Row(
|
| 487 |
+
url_button_chartmill_TA,
|
| 488 |
+
url_button_chartmill_FA,
|
| 489 |
+
url_button_seekingalpha
|
| 490 |
+
|
| 491 |
+
)
|
| 492 |
+
)
|
| 493 |
)
|
| 494 |
else:
|
| 495 |
if MarketBeat == "Above all Targets":
|