# Ehdtd - cryptoCurrency Exchange history data to database
This class retrieves historical data from exchanges and stores it in a database.
Example:
### Install
```bash
pip install ehdtd
```
### Use
```python
import time
from ehdtd import Ehdtd
exchange = 'binance'
symbol = 'BTC/USDT'
interval = '1m'
limit = 10
db_data = {
'db_type': 'postgresql', # postgresql, mysql
'db_name': 'ehdtd',
'db_user': 'ehdtd',
'db_pass': 'xxxxxxxxx',
'db_host': '127.0.0.1',
'db_port': '5432'
}
fetch_data = [
{
'symbol': symbol,
'interval': interval
}
]
ehd = Ehdtd(exchange, fetch_data, db_data) # Create an instance
ehd.start() # Start fetching data
time.sleep(900) # First time Wait for available data, for the data to be updated,
# you must wait between 90 minutes and 2.5 hours depending on the interval
for v in fetch_data:
symbol = v['symbol']
interval = v['interval']
start_from = 0
until_to = None
return_type = 'pandas'
data_db = ehd.get_data_from_db(symbol, interval, start_from, until_to, return_type)
print(data_db)
print('=========================================================================')
print('')
time.sleep(1)
ehd.stop() # Stop fetching data
```
# How It Works:
## For Binance:
1. Try to retrieve data from a file. Check this link:\
[Binance Public Data](https://github.com/binance/binance-public-data/#trades-1)
2. If the file is not available, try to retrieve data from the API.
3. Then get data from the WebSocket API using the Ccxw class.
## Database Columns:
- `open_time`, `open_date`, `open_price`, `close_time`, `close_date`, `close_price`, `low`,
`high`, `volume`, `exchange`, `symbol`, `interval`, `status`, `data`
- Column `data` is not used,\
and column `status` can have three values: `'__NON_CHECK__'`, `'__OK__'`, `'__ERROR__'`.
- If `status == '__OK__'`, the file has consistent data.
- If `status == '__ERROR__'`, the file has inconsistent data.
- If `status == '__NON_CHECK__'`, the file is not analyzed.
## Retrieving Data from Database:
Use the function `ehd.get_data_from_db(symbol, interval, start_from, until_to, return_type)`:
- If `return_type == 'pandas'`, it returns a Pandas DataFrame.
- If `return_type == 'list'`, it returns a list of dictionaries.
[View License](LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/rmalvarezkai/ehdtd",
"name": "ehdtd",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Ricardo Marcelo Alvarez",
"author_email": "rmalvarezkai@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/d8/59/bcb084f27d5f6874d0d98f4ac62f4d1da6659e8f56518bb68f073cc15090/ehdtd-0.2.8.tar.gz",
"platform": null,
"description": "# Ehdtd - cryptoCurrency Exchange history data to database\nThis class retrieves historical data from exchanges and stores it in a database.\n\nExample:\n### Install\n ```bash\n pip install ehdtd\n ```\n### Use\n\n ```python\n import time\n from ehdtd import Ehdtd\n\n exchange = 'binance'\n symbol = 'BTC/USDT'\n interval = '1m'\n limit = 10\n\n db_data = {\n 'db_type': 'postgresql', # postgresql, mysql\n 'db_name': 'ehdtd',\n 'db_user': 'ehdtd',\n 'db_pass': 'xxxxxxxxx',\n 'db_host': '127.0.0.1',\n 'db_port': '5432'\n }\n\n fetch_data = [\n {\n 'symbol': symbol,\n 'interval': interval\n }\n ]\n\n ehd = Ehdtd(exchange, fetch_data, db_data) # Create an instance\n ehd.start() # Start fetching data\n\n time.sleep(900) # First time Wait for available data, for the data to be updated,\n # you must wait between 90 minutes and 2.5 hours depending on the interval\n\n for v in fetch_data:\n symbol = v['symbol']\n interval = v['interval']\n start_from = 0\n until_to = None\n return_type = 'pandas'\n data_db = ehd.get_data_from_db(symbol, interval, start_from, until_to, return_type)\n print(data_db)\n print('=========================================================================')\n print('')\n time.sleep(1)\n\n ehd.stop() # Stop fetching data\n ```\n\n# How It Works:\n\n## For Binance:\n\n1. Try to retrieve data from a file. Check this link:\\\n [Binance Public Data](https://github.com/binance/binance-public-data/#trades-1)\n2. If the file is not available, try to retrieve data from the API.\n3. Then get data from the WebSocket API using the Ccxw class.\n\n## Database Columns:\n\n- `open_time`, `open_date`, `open_price`, `close_time`, `close_date`, `close_price`, `low`,\n `high`, `volume`, `exchange`, `symbol`, `interval`, `status`, `data`\n\n- Column `data` is not used,\\\n and column `status` can have three values: `'__NON_CHECK__'`, `'__OK__'`, `'__ERROR__'`.\n - If `status == '__OK__'`, the file has consistent data.\n - If `status == '__ERROR__'`, the file has inconsistent data.\n - If `status == '__NON_CHECK__'`, the file is not analyzed.\n\n## Retrieving Data from Database:\n\nUse the function `ehd.get_data_from_db(symbol, interval, start_from, until_to, return_type)`:\n- If `return_type == 'pandas'`, it returns a Pandas DataFrame.\n- If `return_type == 'list'`, it returns a list of dictionaries.\n\n[View License](LICENSE)\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Ehdtd - cryptoCurrency Exchange history data to database",
"version": "0.2.8",
"project_urls": {
"Homepage": "https://github.com/rmalvarezkai/ehdtd"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bc9b2314ee6b89fae9b6700a887ce6a75995ebaac3aa58f7574461be67a89b4b",
"md5": "9dbb4e581c03cfbc2017cc6071ff24e3",
"sha256": "87b3e8f470253b2490c34dd9beba64426a1073da38444bbf7b8dd9370c8d9e99"
},
"downloads": -1,
"filename": "ehdtd-0.2.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9dbb4e581c03cfbc2017cc6071ff24e3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 27418,
"upload_time": "2024-09-26T13:22:00",
"upload_time_iso_8601": "2024-09-26T13:22:00.549644Z",
"url": "https://files.pythonhosted.org/packages/bc/9b/2314ee6b89fae9b6700a887ce6a75995ebaac3aa58f7574461be67a89b4b/ehdtd-0.2.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d859bcb084f27d5f6874d0d98f4ac62f4d1da6659e8f56518bb68f073cc15090",
"md5": "98e963694da192c87a28cb7e49864073",
"sha256": "893fe6b331fba7fa6366ece23be011a136ad9f23555df459a656bc775b788595"
},
"downloads": -1,
"filename": "ehdtd-0.2.8.tar.gz",
"has_sig": false,
"md5_digest": "98e963694da192c87a28cb7e49864073",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 25961,
"upload_time": "2024-09-26T13:22:02",
"upload_time_iso_8601": "2024-09-26T13:22:02.203111Z",
"url": "https://files.pythonhosted.org/packages/d8/59/bcb084f27d5f6874d0d98f4ac62f4d1da6659e8f56518bb68f073cc15090/ehdtd-0.2.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-26 13:22:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rmalvarezkai",
"github_project": "ehdtd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ehdtd"
}