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 = {
|
2022-01-12 16:42:04 +00:00
|
|
|
"dukascopy": "https://data.deluxelau.com/api/v1.0/finance/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()),
|
2022-01-12 16:42:04 +00:00
|
|
|
"flat": "{}".format(str(flat).lower()),
|
|
|
|
"token": "token=6dc8797f-aa4b-4b8c-b137-cfe9a9ace5a1"
|
2021-06-09 02:29:35 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
r = requests.get(tmp_url, params=request_params, headers=request_header)
|
2022-01-12 16:42:04 +00:00
|
|
|
output_file = r.json()
|
2021-12-31 19:03:50 +00:00
|
|
|
return pd.json_normalize(output_file)
|
|
|
|
|
|
|
|
# example:
|
|
|
|
"""
|
2022-01-01 07:58:11 +00:00
|
|
|
df = dukascopy(instrument = "usdcnh",
|
|
|
|
startdate = "2014-01-01",
|
|
|
|
enddate = "2020-01-01",
|
2022-01-12 16:42:04 +00:00
|
|
|
timeframe = "m1",
|
2021-12-31 19:03:50 +00:00
|
|
|
pricetype = "bid",
|
|
|
|
utc = 0,
|
2022-01-01 07:58:11 +00:00
|
|
|
volume = False,
|
|
|
|
flat = False)
|
2021-12-31 19:03:50 +00:00
|
|
|
"""
|