v0.1.2
This commit is contained in:
parent
fd49c41556
commit
f47db3fd09
|
@ -61,12 +61,12 @@ def forex(instrument = "eurusd", startdate = "2019-01-01", enddate = "2021-01-01
|
||||||
df = df.reset_index(drop = True)
|
df = df.reset_index(drop = True)
|
||||||
return df
|
return df
|
||||||
|
|
||||||
def index(instrument = "eurusd", startdate = "2019-01-01", enddate = "2021-01-01"):
|
def index(instrument = "vix", startdate = "2019-01-01", enddate = "2021-01-01"):
|
||||||
startdate = datetime.strptime(startdate, "%Y-%m-%d").strftime("%m/%d/%y")
|
startdate = datetime.strptime(startdate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
enddate = datetime.strptime(enddate, "%Y-%m-%d").strftime("%m/%d/%y")
|
enddate = datetime.strptime(enddate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
df = pd.DataFrame()
|
df = pd.DataFrame()
|
||||||
|
|
||||||
def _FX(instrument = "eurusd", startdate = "01/01/2020", enddate = "01/01/2021"):
|
def _index(instrument = "vix", startdate = "01/01/2020", enddate = "01/01/2021"):
|
||||||
"""
|
"""
|
||||||
https://www.marketwatch.com/investing/
|
https://www.marketwatch.com/investing/
|
||||||
"""
|
"""
|
||||||
|
@ -101,7 +101,7 @@ def index(instrument = "eurusd", startdate = "2019-01-01", enddate = "2021-01-01
|
||||||
else:
|
else:
|
||||||
tmp_enddate = "01/01/" + str(i+1) + " 00:00:00"
|
tmp_enddate = "01/01/" + str(i+1) + " 00:00:00"
|
||||||
|
|
||||||
tmp_df = _FX(instrument=instrument, startdate = tmp_startdate, enddate = tmp_enddate)
|
tmp_df = _index(instrument=instrument, startdate = tmp_startdate, enddate = tmp_enddate)
|
||||||
if i == int(startdate[6:10]):
|
if i == int(startdate[6:10]):
|
||||||
df = tmp_df
|
df = tmp_df
|
||||||
else:
|
else:
|
||||||
|
@ -110,8 +110,109 @@ def index(instrument = "eurusd", startdate = "2019-01-01", enddate = "2021-01-01
|
||||||
df = df.reset_index(drop = True)
|
df = df.reset_index(drop = True)
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
def crypto(instrument = "btcusd", startdate = "2019-01-01", enddate = "2021-01-01"):
|
||||||
|
startdate = datetime.strptime(startdate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
|
enddate = datetime.strptime(enddate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
|
df = pd.DataFrame()
|
||||||
|
|
||||||
|
def _crypto(instrument = "btcusd", startdate = "01/01/2020", enddate = "01/01/2021"):
|
||||||
|
"""
|
||||||
|
https://www.marketwatch.com/investing/
|
||||||
|
"""
|
||||||
|
tmp_url = url["moneywatch"] + "cryptocurrency/{}/downloaddatapartial".format(instrument)
|
||||||
|
ua = UserAgent(verify_ssl=False)
|
||||||
|
request_header = {"User-Agent": ua.random}
|
||||||
|
request_params = urlencode({
|
||||||
|
"startdate": r"{}".format(startdate),
|
||||||
|
"enddate": r"{}".format(enddate),
|
||||||
|
"daterange": "d30",
|
||||||
|
"frequency": "p1d",
|
||||||
|
"csvdownload": "true",
|
||||||
|
"downloadpartial": "false",
|
||||||
|
"newdates": "false"}, quote_via= quote)
|
||||||
|
r = requests.get(tmp_url, params=request_params.replace("%2F", "/").replace("%20", " ").replace("%3A", ":"), headers=request_header)
|
||||||
|
data_text = r.content
|
||||||
|
df = pd.read_csv(io.StringIO(data_text.decode('utf-8')))
|
||||||
|
Date = []
|
||||||
|
for i in range(0, len(df)):
|
||||||
|
Date.append(datetime.strptime(df["Date"][i], "%m/%d/%Y"))
|
||||||
|
|
||||||
|
df["Date"] = Date
|
||||||
|
return df
|
||||||
|
|
||||||
|
for i in range(int(startdate[6:10]), int(enddate[6:10])):
|
||||||
|
if i == int(startdate[6:10]):
|
||||||
|
tmp_startdate = startdate
|
||||||
|
else:
|
||||||
|
tmp_startdate = "01/01/" + str(i) + " 00:00:00"
|
||||||
|
if (i+1) == int(enddate[6:10]):
|
||||||
|
tmp_enddate = enddate
|
||||||
|
else:
|
||||||
|
tmp_enddate = "01/01/" + str(i+1) + " 00:00:00"
|
||||||
|
|
||||||
|
tmp_df = _crypto(instrument=instrument, startdate = tmp_startdate, enddate = tmp_enddate)
|
||||||
|
if i == int(startdate[6:10]):
|
||||||
|
df = tmp_df
|
||||||
|
else:
|
||||||
|
df = pd.concat([tmp_df, df], axis=0)
|
||||||
|
|
||||||
|
df = df.reset_index(drop = True)
|
||||||
|
return df
|
||||||
|
|
||||||
|
def stock(countrycode = "cn", instrument = "601988", startdate = "2019-01-01", enddate = "2021-01-01"):
|
||||||
|
startdate = datetime.strptime(startdate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
|
enddate = datetime.strptime(enddate, "%Y-%m-%d").strftime("%m/%d/%y")
|
||||||
|
df = pd.DataFrame()
|
||||||
|
|
||||||
|
def _stock(countrycode = "cn", instrument = "601988", startdate = "01/01/2020", enddate = "01/01/2021"):
|
||||||
|
"""
|
||||||
|
https://www.marketwatch.com/investing/
|
||||||
|
"""
|
||||||
|
tmp_url = url["moneywatch"] + "stock/{}/downloaddatapartial".format(instrument)
|
||||||
|
ua = UserAgent(verify_ssl=False)
|
||||||
|
request_header = {"User-Agent": ua.random}
|
||||||
|
request_params = urlencode({
|
||||||
|
"startdate": r"{}".format(startdate),
|
||||||
|
"enddate": r"{}".format(enddate),
|
||||||
|
"daterange": "d30",
|
||||||
|
"frequency": "p1d",
|
||||||
|
"csvdownload": "true",
|
||||||
|
"downloadpartial": "false",
|
||||||
|
"newdates": "false",
|
||||||
|
"countrycode": "{}".format(countrycode)}, quote_via= quote)
|
||||||
|
r = requests.get(tmp_url, params=request_params.replace("%2F", "/").replace("%20", " ").replace("%3A", ":"), headers=request_header)
|
||||||
|
data_text = r.content
|
||||||
|
df = pd.read_csv(io.StringIO(data_text.decode('utf-8')))
|
||||||
|
Date = []
|
||||||
|
for i in range(0, len(df)):
|
||||||
|
Date.append(datetime.strptime(df["Date"][i], "%m/%d/%Y"))
|
||||||
|
|
||||||
|
df["Date"] = Date
|
||||||
|
return df
|
||||||
|
|
||||||
|
for i in range(int(startdate[6:10]), int(enddate[6:10])):
|
||||||
|
if i == int(startdate[6:10]):
|
||||||
|
tmp_startdate = startdate
|
||||||
|
else:
|
||||||
|
tmp_startdate = "01/01/" + str(i) + " 00:00:00"
|
||||||
|
if (i+1) == int(enddate[6:10]):
|
||||||
|
tmp_enddate = enddate
|
||||||
|
else:
|
||||||
|
tmp_enddate = "01/01/" + str(i+1) + " 00:00:00"
|
||||||
|
|
||||||
|
if countrycode == "us":
|
||||||
|
countrycode = ""
|
||||||
|
tmp_df = _stock(countrycode = countrycode, instrument=instrument, startdate = tmp_startdate, enddate = tmp_enddate)
|
||||||
|
if i == int(startdate[6:10]):
|
||||||
|
df = tmp_df
|
||||||
|
else:
|
||||||
|
df = pd.concat([tmp_df, df], axis=0)
|
||||||
|
|
||||||
|
df = df.reset_index(drop = True)
|
||||||
|
return df
|
||||||
|
|
||||||
|
#https://www.marketwatch.com/investing/stock/googl/downloaddatapartial?startdate=05/05/2021 00:00:00&enddate=06/04/2021 23:59:59&daterange=d30&frequency=p1d&csvdownload=true&downloadpartial=false&newdates=false
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
data = FX()
|
data = FX()
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
__version__ = "0.1.1"
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
__version__ = "0.1.2"
|
||||||
__author__ = "Terence Lau"
|
__author__ = "Terence Lau"
|
||||||
|
|
||||||
import sys
|
__data_source__ = open(os.path.join(
|
||||||
|
os.path.dirname(__file__),
|
||||||
|
'source.md')).read()
|
||||||
|
|
||||||
if sys.version_info < (3, 6):
|
if sys.version_info < (3, 6):
|
||||||
print(f"CEDA {__version__} requires Python 3.6+")
|
print(f"CEDA {__version__} requires Python 3.6+")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
del sys
|
del sys
|
||||||
|
|
||||||
from CEDA import *
|
from CEDA import *
|
|
@ -0,0 +1,7 @@
|
||||||
|
(https://www.eastmoney.com)
|
||||||
|
(https://fred.stlouisfed.org/)
|
||||||
|
(https://www.chicagofed.org/)
|
||||||
|
(https://www.philadelphiafed.org/)
|
||||||
|
(https://ec.europa.eu/eurostat/cache/infographs/economy/desktop/index.html)
|
||||||
|
(https://www.ecb.europa.eu)
|
||||||
|
(https://www.marketwatch.com/)
|
|
@ -32,7 +32,7 @@ python -m pip install CEDApy
|
||||||
* Thanks [Philadelphia Federal Reserve Bank](https://www.philadelphiafed.org/)
|
* Thanks [Philadelphia Federal Reserve Bank](https://www.philadelphiafed.org/)
|
||||||
* Thanks [eurostat Economic Indicators](https://ec.europa.eu/eurostat/cache/infographs/economy/desktop/index.html)
|
* Thanks [eurostat Economic Indicators](https://ec.europa.eu/eurostat/cache/infographs/economy/desktop/index.html)
|
||||||
* Thanks [Europen Central Bank](https://www.ecb.europa.eu)
|
* Thanks [Europen Central Bank](https://www.ecb.europa.eu)
|
||||||
|
* Thanks [MarketWatch](https://www.marketwatch.com/)
|
||||||
|
|
||||||
## If you want to cite...
|
## If you want to cite...
|
||||||
|
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
||||||
import os
|
import os
|
||||||
setup(
|
setup(
|
||||||
name = "CEDApy",
|
name = "CEDApy",
|
||||||
version = "0.1.1",
|
version = "0.1.2",
|
||||||
keywords = "quantitative economic data",
|
keywords = "quantitative economic data",
|
||||||
long_description = open(
|
long_description = open(
|
||||||
os.path.join(
|
os.path.join(
|
||||||
|
|
Loading…
Reference in New Issue