mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-02 23:41:27 +00:00
Add NASDAQ datalink retail trader dataset (#941)
Co-authored-by: James Maslek <james@macbook-pro.myfiosgateway.com>
This commit is contained in:
@@ -10,7 +10,7 @@ from matplotlib import pyplot as plt
|
||||
from prompt_toolkit.completion import NestedCompleter
|
||||
|
||||
from gamestonk_terminal import feature_flags as gtff
|
||||
from gamestonk_terminal.helper_funcs import get_flair
|
||||
from gamestonk_terminal.helper_funcs import EXPORT_ONLY_RAW_DATA_ALLOWED, get_flair
|
||||
from gamestonk_terminal.helper_funcs import (
|
||||
parse_known_args_and_warn,
|
||||
check_non_negative,
|
||||
@@ -30,6 +30,7 @@ from gamestonk_terminal.stocks.discovery import (
|
||||
finnhub_view,
|
||||
geekofwallstreet_view,
|
||||
financedatabase_view,
|
||||
nasdaq_view,
|
||||
)
|
||||
|
||||
|
||||
@@ -64,6 +65,7 @@ class DiscoveryController:
|
||||
"rtearn",
|
||||
"fds",
|
||||
"cnews",
|
||||
"rtat",
|
||||
]
|
||||
|
||||
CHOICES += CHOICES_COMMANDS
|
||||
@@ -113,6 +115,8 @@ pennystockflow.com
|
||||
hotpenny today's hot penny stocks
|
||||
Finance Database:
|
||||
fds advanced Equities search based on country, sector, industry, name and/or description
|
||||
NASDAQ Data Link (Formerly Quandl):
|
||||
rtat top 10 retail traded stocks per day
|
||||
"""
|
||||
print(help_text)
|
||||
|
||||
@@ -1008,6 +1012,35 @@ Finance Database:
|
||||
options=ns_parser.options,
|
||||
)
|
||||
|
||||
@try_except
|
||||
def call_rtat(self, other_args: List[str]):
|
||||
"""Process fds command"""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="rtat",
|
||||
description="""
|
||||
Tracking over $30B USD/day of individual investors trades,
|
||||
RTAT gives a daily view into retail activity and sentiment for over 9,500 US traded stocks,
|
||||
ADRs, and ETPs
|
||||
""",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-n",
|
||||
"--num",
|
||||
dest="n_days",
|
||||
help="Number of days to show",
|
||||
default=3,
|
||||
type=check_positive,
|
||||
)
|
||||
|
||||
ns_parser = parse_known_args_and_warn(
|
||||
parser, other_args, export_allowed=EXPORT_ONLY_RAW_DATA_ALLOWED
|
||||
)
|
||||
if not ns_parser:
|
||||
return
|
||||
nasdaq_view.display_top_retail(n_days=ns_parser.n_days, export=ns_parser.export)
|
||||
|
||||
|
||||
def menu():
|
||||
"""Discovery Menu"""
|
||||
|
||||
25
gamestonk_terminal/stocks/discovery/nasdaq_model.py
Normal file
25
gamestonk_terminal/stocks/discovery/nasdaq_model.py
Normal file
@@ -0,0 +1,25 @@
|
||||
"""NASDAQ DataLink Model"""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import pandas as pd
|
||||
import requests
|
||||
import gamestonk_terminal.config_terminal as cfg
|
||||
|
||||
|
||||
def get_retail_tickers() -> pd.DataFrame:
|
||||
"""Gets the top 10 retail stocks per day
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
Dataframe of tickers
|
||||
"""
|
||||
r = requests.get(
|
||||
f"https://data.nasdaq.com/api/v3/datatables/NDAQ/RTAT10/?api_key={cfg.API_KEY_QUANDL}"
|
||||
)
|
||||
if r.status_code != 200:
|
||||
return pd.DataFrame()
|
||||
|
||||
df = pd.DataFrame(r.json()["datatable"]["data"])
|
||||
df.columns = ["Date", "Ticker", "Activity", "Sentiment"]
|
||||
return df
|
||||
41
gamestonk_terminal/stocks/discovery/nasdaq_view.py
Normal file
41
gamestonk_terminal/stocks/discovery/nasdaq_view.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""NASDAQ DataLink View"""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import os
|
||||
|
||||
from colorama import Style
|
||||
from tabulate import tabulate
|
||||
|
||||
from gamestonk_terminal.helper_funcs import export_data
|
||||
from gamestonk_terminal.stocks.discovery import nasdaq_model
|
||||
import gamestonk_terminal.feature_flags as gtff
|
||||
|
||||
|
||||
def display_top_retail(n_days: int = 3, export: str = ""):
|
||||
"""Display the top 10 retail traded stocks for last days
|
||||
|
||||
Parameters
|
||||
----------
|
||||
n_days : int, optional
|
||||
Number of days to show by default 3
|
||||
export : str, optional
|
||||
Format to export data, by default ""
|
||||
"""
|
||||
retails = nasdaq_model.get_retail_tickers()
|
||||
for date, df in retails.head(n_days * 10).groupby("Date"):
|
||||
print(f"{Style.BRIGHT}{date} Top Retail:{Style.RESET_ALL}")
|
||||
df = df.drop(columns=["Date"])
|
||||
if gtff.USE_TABULATE_DF:
|
||||
print(
|
||||
tabulate(
|
||||
df.reset_index(drop=True),
|
||||
headers=df.columns[1:],
|
||||
showindex=False,
|
||||
tablefmt="fancy_grid",
|
||||
)
|
||||
)
|
||||
else:
|
||||
print(df.reset_index(drop=True).to_string(index=False))
|
||||
|
||||
print("")
|
||||
export_data(export, os.path.dirname(os.path.abspath(__file__)), "rtat", retails)
|
||||
14
website/content/stocks/discovery/rtat/_index.md
vendored
Normal file
14
website/content/stocks/discovery/rtat/_index.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
```
|
||||
usage: rtat [-n N_DAYS] [-h] [--export {csv,json,xlsx}]
|
||||
```
|
||||
|
||||
Tracking over $30B USD/day of individual investors trades, RTAT gives a daily view into retail activity and sentiment for over 9,500 US traded stocks, ADRs, and ETPs
|
||||
|
||||
```
|
||||
optional arguments:
|
||||
-n N_DAYS, --num N_DAYS
|
||||
Number of days to show (default: 3)
|
||||
-h, --help show this help message (default: False)
|
||||
--export {csv,json,xlsx}
|
||||
Export raw data into csv, json, xlsx (default: )
|
||||
```
|
||||
2
website/data/menu/main.yml
vendored
2
website/data/menu/main.yml
vendored
@@ -50,6 +50,8 @@ main:
|
||||
ref: "/stocks/discovery/hotpenny"
|
||||
- name: fds
|
||||
ref: "/stocks/discovery/fds"
|
||||
- name: rtat
|
||||
ref: "/stocks/discovery/rtat"
|
||||
- name: dark pool shorts
|
||||
ref: "/stocks/dark_pool_shorts"
|
||||
sub:
|
||||
|
||||
Reference in New Issue
Block a user