Name | ehdtd JSON |
Version |
0.2.29
JSON |
| download |
home_page | None |
Summary | Ehdtd - cryptoCurrency Exchange history data to database |
upload_time | 2025-01-21 18:58:47 |
maintainer | None |
docs_url | None |
author | Ricardo Marcelo Alvarez |
requires_python | <4.0,>=3.11 |
license | MIT |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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": null,
"name": "ehdtd",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Ricardo Marcelo Alvarez",
"author_email": "rmalvarezkai@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/80/6a/bbc78e10ebbe87e65e6ced6ef33ea49984cfbc947dfbf1d6c05557ed06c5/ehdtd-0.2.29.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.29",
"project_urls": {
"Homepage": "https://github.com/rmalvarezkai/ehdtd"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "32ce87e020644412e8778faff44df102defa7ccc81a2ac2f365942d2cdb67025",
"md5": "09ca570a198e8ffaef06ade3f40a1a20",
"sha256": "33615972339b29195b26ee0dc4ce205597221dba40a01692d67c54cdbab8be22"
},
"downloads": -1,
"filename": "ehdtd-0.2.29-py3-none-any.whl",
"has_sig": false,
"md5_digest": "09ca570a198e8ffaef06ade3f40a1a20",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 52755,
"upload_time": "2025-01-21T18:58:44",
"upload_time_iso_8601": "2025-01-21T18:58:44.730184Z",
"url": "https://files.pythonhosted.org/packages/32/ce/87e020644412e8778faff44df102defa7ccc81a2ac2f365942d2cdb67025/ehdtd-0.2.29-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "806abbc78e10ebbe87e65e6ced6ef33ea49984cfbc947dfbf1d6c05557ed06c5",
"md5": "4a1208edced2d8980e78964099941572",
"sha256": "ee775eb65c7b52e84a1378c45e33b2e547360d2bd3cfa74d3bae26da4c5d0479"
},
"downloads": -1,
"filename": "ehdtd-0.2.29.tar.gz",
"has_sig": false,
"md5_digest": "4a1208edced2d8980e78964099941572",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 36183,
"upload_time": "2025-01-21T18:58:47",
"upload_time_iso_8601": "2025-01-21T18:58:47.042516Z",
"url": "https://files.pythonhosted.org/packages/80/6a/bbc78e10ebbe87e65e6ced6ef33ea49984cfbc947dfbf1d6c05557ed06c5/ehdtd-0.2.29.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-21 18:58:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rmalvarezkai",
"github_project": "ehdtd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "ehdtd"
}