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()