mirror of
https://gitlab.com/simple-stock-bots/simple-stock-bot.git
synced 2025-06-16 15:17:28 +00:00
Closes #35
This commit is contained in:
parent
dc2d1648ac
commit
2016fba6b9
17
functions.py
17
functions.py
@ -45,7 +45,12 @@ Market data is provided by [IEX Cloud](https://iexcloud.io)
|
|||||||
def __init__(self, IEX_TOKEN: str):
|
def __init__(self, IEX_TOKEN: str):
|
||||||
self.IEX_TOKEN = IEX_TOKEN
|
self.IEX_TOKEN = IEX_TOKEN
|
||||||
self.get_symbol_list()
|
self.get_symbol_list()
|
||||||
|
self.charts = {}
|
||||||
schedule.every().monday.do(self.get_symbol_list)
|
schedule.every().monday.do(self.get_symbol_list)
|
||||||
|
schedule.every().day.do(self.clear_charts)
|
||||||
|
|
||||||
|
def clear_charts(self):
|
||||||
|
self.charts = {}
|
||||||
|
|
||||||
def get_symbol_list(self, return_df=False):
|
def get_symbol_list(self, return_df=False):
|
||||||
"""
|
"""
|
||||||
@ -240,17 +245,25 @@ Market data is provided by [IEX Cloud](https://iexcloud.io)
|
|||||||
return df
|
return df
|
||||||
|
|
||||||
def chart_reply(self, symbol: str):
|
def chart_reply(self, symbol: str):
|
||||||
|
schedule.run_pending()
|
||||||
|
|
||||||
if symbol.upper() not in list(self.symbol_list["symbol"]):
|
if symbol.upper() not in list(self.symbol_list["symbol"]):
|
||||||
return pd.DataFrame()
|
return pd.DataFrame()
|
||||||
|
|
||||||
IEXurl = f"https://cloud.iexapis.com/stable/stock/{symbol}/chart/1mm?token={self.IEX_TOKEN}&chartInterval=3&includeToday=true"
|
try: # https://stackoverflow.com/a/3845776/8774114
|
||||||
print(IEXurl)
|
return self.charts[symbol.upper()]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
IEXurl = f"https://cloud.iexapis.com/stable/stock/{symbol}/chart/1mm?token={self.IEX_TOKEN}&chartInterval=3&includeToday=false"
|
||||||
response = r.get(IEXurl)
|
response = r.get(IEXurl)
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
df = pd.DataFrame(response.json())
|
df = pd.DataFrame(response.json())
|
||||||
df.dropna(inplace=True, subset=["date", "minute", "high", "low", "volume"])
|
df.dropna(inplace=True, subset=["date", "minute", "high", "low", "volume"])
|
||||||
df["DT"] = pd.to_datetime(df["date"] + "T" + df["minute"])
|
df["DT"] = pd.to_datetime(df["date"] + "T" + df["minute"])
|
||||||
df = df.set_index("DT")
|
df = df.set_index("DT")
|
||||||
|
self.charts[symbol.upper()] = df
|
||||||
return df
|
return df
|
||||||
|
|
||||||
def stat_reply(self, symbols: list):
|
def stat_reply(self, symbols: list):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user