Data exporter
Hmile provides the ability to export financial data to csv or elasticsearch.
CSVDataExporter
- class Hmile.DataExporter.CSVDataExporter(dataprovider: Union[DataProvider, DataTransformer], directory: str)
Export data to csv. The file name will be in the format {pair}-{interval}.csv
- Variables
dataprovider – Source of the data to export
directory – directory in with the csv will be saved
- export() None
Apply export and store result
- Raises
TypeError – if dataprovider is not a DataProvider or a DataTransformer
Example :
from Hmile.DataProvider import YahooDataProvider
from Hmile.DataExporter import CSVDataExporter
PAIR = "BTCUSD"
START = "2022-01-01"
END = "2022-01-03"
INTERVAL = "hour"
OUTPUT_DIR = "my/output/dir"
dp = YahooDataProvider([PAIR], START, END, interval=INTERVAL)
# We first need a source of data = a data provider
data_provider = YahooDataProvider()
# Create a CSVDataExporter object
csv_exporter = CSVDataExporter(data_provider, OUTPUT_DIR)
# Export data to csv
csv_exporter.export()
ElasticDataExporter
- class Hmile.DataExporter.ElasticDataExporter(dataprovider: DataProvider, es_url: str, es_user: str, es_pass: str)
Export data to ElasticSearch. The index name will be in the format f-{pair}-{interval
- Variables
dataprovider – Source of the data to export
es_url – ElasticSearch url
es_user – ElasticSearch user
es_pass – ElasticSearch password
- export() None
Apply export and store result
- Raises
TypeError – if dataprovider is not a DataProvider or a DataTransformer
Example :
from Hmile.DataProvider import YahooDataProvider
from Hmile.DataExporter import ElasticDataExporter
PAIR = "BTCUSD"
START = "2022-01-01"
END = "2022-01-03"
INTERVAL = "hour"
ELASTIC_URL = "https://myelastic.com:9200" # the port must be specified
ELASTIC_USER = "myuser"
ELASTIC_PASSWORD = "mypassword"
dp = ElasticDataExporter([PAIR], START, END, interval=INTERVAL)
# We first need a source of data = a data provider
data_provider = YahooDataProvider()
# Create a ElasticDataExporter object
csv_exporter = ElasticDataExporter(
data_provider,
ELASTIC_URL,
ELASTIC_USER,
ELASTIC_PASSWORD
)
# Export data to csv
csv_exporter.export()