Add NASDAQ datalink retail trader dataset (#941)

Co-authored-by: James Maslek <james@macbook-pro.myfiosgateway.com>
This commit is contained in:
jmaslek
2021-11-14 01:34:19 -05:00
committed by GitHub
parent 675bf84651
commit 59cecedc47
5 changed files with 116 additions and 1 deletions

View File

@@ -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"""

View 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

View 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)

View 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: )
```

View File

@@ -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: