CEDApy/CEDA/market/duka.py

55 lines
1.5 KiB
Python
Raw Normal View History

2021-06-09 02:29:35 +00:00
import re
import io
import requests
import demjson
import pandas as pd
from bs4 import BeautifulSoup
from datetime import datetime
from urllib.parse import quote, urlencode
from fake_useragent import UserAgent
url = {
2021-12-31 19:03:50 +00:00
"dukascopy": "http://data.deluxelau.com/forex/api/v1.0/getdata?"
2021-06-09 02:29:35 +00:00
}
2021-12-31 19:03:50 +00:00
#?instrument=usdcnh&startdate=2014-01-01&enddate=2014-12-31&timeframe=d1&pricetype=ask&utc=0&volume=false&flat=false
2021-06-09 02:29:35 +00:00
def dukascopy(
instrument: str,
startdate: str,
enddate: str,
timeframe: str,
pricetype: str,
2021-12-31 19:03:50 +00:00
utc: int,
2021-06-09 02:29:35 +00:00
volume: bool,
flat: bool):
tmp_url = url["dukascopy"]
ua = UserAgent(verify_ssl=False)
request_header = {"User-Agent": ua.random}
request_params = {
"instrument": "{}".format(instrument),
"startdate": "{}".format(startdate),
"enddate": "{}".format(enddate),
"timeframe": "{}".format(timeframe),
2021-12-31 19:03:50 +00:00
"utc": "{}".format(utc),
2021-06-09 02:29:35 +00:00
"pricetype": "{}".format(pricetype),
2021-12-31 19:03:50 +00:00
"volume": "{}".format(str(volume).lower()),
"flat": "{}".format(str(flat).lower())
2021-06-09 02:29:35 +00:00
}
r = requests.get(tmp_url, params=request_params, headers=request_header)
data_text = r.text
2021-12-31 19:03:50 +00:00
output_file = demjson.decode(data_text)
return pd.json_normalize(output_file)
# example:
"""
df = dukascopy(instrument = "btcusd",
startdate = "2020-01-01",
enddate = "2021-01-01",
timeframe = "d1",
pricetype = "bid",
utc = 0,
volume = True,
flat = True)
"""