gapless-crypto-data 2.0.1__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gapless_crypto_data-2.0.2/.gitattributes +1 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/CHANGELOG.md +4 -4
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/PKG-INFO +2 -1
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/RELEASE_NOTES.md +8 -8
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-15m_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-1h_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-1m_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-2h_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-30m_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-3m_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-4h_20220910-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/binance_spot_SOLUSDT-5m_20220910-20250831_3.0y.csv +3 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/README.md +4 -10
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/gap_filling_example.py +1 -1
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/pyproject.toml +3 -2
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/__init__.py +1 -1
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/gap_filling/universal_gap_filler.py +3 -3
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240101_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240102_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20250831-20250831_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-4h_20250831-20250831_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20240801-20240801_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20250831-20250831_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-4h_20250831-20250831_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20220101-20220101_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20220901-20250831_3.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1m_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-2h_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-30m_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-3m_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-4h_20230320-20230328_0.0y.csv +3 -0
- gapless_crypto_data-2.0.2/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-5m_20230320-20230328_0.0y.csv +3 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/uv.lock +58 -1
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240101_0.0y.csv +0 -35
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240102_0.0y.csv +0 -59
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20250831-20250831_0.0y.csv +0 -35
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-4h_20250831-20250831_0.0y.csv +0 -17
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20240801-20240801_0.0y.csv +0 -35
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20250831-20250831_0.0y.csv +0 -35
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-4h_20250831-20250831_0.0y.csv +0 -17
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20220101-20220101_0.0y.csv +0 -107
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20230320-20230328_0.0y.csv +0 -875
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20220901-20250831_3.0y.csv +0 -26315
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20230320-20230328_0.0y.csv +0 -227
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1m_20230320-20230328_0.0y.csv +0 -12971
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-2h_20230320-20230328_0.0y.csv +0 -119
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-30m_20230320-20230328_0.0y.csv +0 -443
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-3m_20230320-20230328_0.0y.csv +0 -4331
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-4h_20230320-20230328_0.0y.csv +0 -65
- gapless_crypto_data-2.0.1/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-5m_20230320-20230328_0.0y.csv +0 -2603
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/.github/workflows/ci-cd.yml +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/.github/workflows/publish.yml +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/.gitignore +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/.python-version +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/LICENSE +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/README.md +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/docs/MILESTONE_v2.0.0.yaml +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/docs/MILESTONE_v2.0.1.yaml +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/docs/PUBLISHING.md +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/basic_data_collection.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/cli_usage_examples.sh +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/complete_workflow.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/examples/safe_data_collection.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/cli.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/collectors/__init__.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/collectors/binance_public_data_collector.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/exchanges/__init__.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/gap_filling/__init__.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/gap_filling/safe_file_operations.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240101_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240102_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20250831-20250831_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-4h_20250831-20250831_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20240801-20240801_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20250831-20250831_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-4h_20250831-20250831_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20220101-20220101_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-15m_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20220901-20250831_3.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1m_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-2h_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-30m_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-3m_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-4h_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-5m_20230320-20230328_0.0y.metadata.json +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/src/gapless_crypto_data/utils/__init__.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/tests/__init__.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/tests/test_binance_collector.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/tests/test_cli.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/tests/test_gap_filler.py +0 -0
- {gapless_crypto_data-2.0.1 → gapless_crypto_data-2.0.2}/tests/test_package.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*.csv filter=lfs diff=lfs merge=lfs -text
|
|
@@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
19
|
|
|
20
20
|
#### 🔧 API-First Gap Filling
|
|
21
21
|
- **Authentic data only** - Zero synthetic or estimated data in gap filling
|
|
22
|
-
- **API-first validation** - Uses Binance REST API
|
|
22
|
+
- **API-first validation** - Uses Binance REST API exclusively for authentic data
|
|
23
23
|
- **UTC-only timestamps** - Eliminated timezone conversion bugs for pure UTC handling
|
|
24
24
|
- **Monthly boundary fixes** - Resolved header detection issues for microsecond timestamps
|
|
25
25
|
|
|
@@ -61,10 +61,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
61
61
|
|
|
62
62
|
### ✨ Added
|
|
63
63
|
- **Ultra-fast data collection** - 22x faster than API calls via Binance public data repository
|
|
64
|
-
- **Zero gaps guarantee** -
|
|
64
|
+
- **Zero gaps guarantee** - Advanced gap detection and intelligent interpolation ensures complete datasets
|
|
65
65
|
- **Multi-timeframe support** - Collect data across 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h intervals
|
|
66
66
|
- **Intelligent gap detection** - Automatic analysis of timestamp sequences to identify missing data
|
|
67
|
-
- **Universal gap filler** - Seamless data filling using
|
|
67
|
+
- **Universal gap filler** - Seamless data filling using advanced interpolation with timezone alignment
|
|
68
68
|
- **Atomic file operations** - Corruption-proof CSV handling with atomic writes and backups
|
|
69
69
|
- **Production-grade CLI** - Complete command-line interface with comprehensive options
|
|
70
70
|
- **Python API** - Full programmatic access to all functionality
|
|
@@ -102,7 +102,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
102
102
|
```
|
|
103
103
|
Binance Public Repository → BinancePublicDataCollector → Local Storage
|
|
104
104
|
↓
|
|
105
|
-
Gap Detection → UniversalGapFiller →
|
|
105
|
+
Gap Detection → UniversalGapFiller → Intelligent Interpolation
|
|
106
106
|
↓
|
|
107
107
|
AtomicCSVOperations → Final Gapless Dataset
|
|
108
108
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gapless-crypto-data
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: Cryptocurrency data collection with complete Binance microstructure format - 11-column output including quote volume, trade counts, and taker buy data
|
|
5
5
|
Project-URL: Homepage, https://github.com/Eon-Labs/gapless-crypto-data
|
|
6
6
|
Project-URL: Documentation, https://github.com/Eon-Labs/gapless-crypto-data#readme
|
|
@@ -29,6 +29,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
29
29
|
Requires-Python: >=3.9
|
|
30
30
|
Requires-Dist: pandas>=2.0.0
|
|
31
31
|
Requires-Dist: requests>=2.25.0
|
|
32
|
+
Requires-Dist: rich>=14.1.0
|
|
32
33
|
Provides-Extra: dev
|
|
33
34
|
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
34
35
|
Requires-Dist: mypy>=1.5.0; extra == 'dev'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# 🚀 Gapless Crypto Data
|
|
1
|
+
# 🚀 Gapless Crypto Data v2.0.1 Release Notes
|
|
2
2
|
|
|
3
|
-
**Ultra-fast cryptocurrency data collection with
|
|
3
|
+
**Ultra-fast cryptocurrency data collection with automatic gap filling and 11-column microstructure format**
|
|
4
4
|
|
|
5
|
-
We're excited to announce
|
|
5
|
+
We're excited to announce gapless-crypto-data v2.0.1, featuring automatic gap filling, comprehensive microstructure data, and authentic Binance API-only data sources for maximum reliability.
|
|
6
6
|
|
|
7
7
|
## ⚡ Key Highlights
|
|
8
8
|
|
|
@@ -13,8 +13,8 @@ We're excited to announce the initial release of gapless-crypto-data, a producti
|
|
|
13
13
|
|
|
14
14
|
### 🔒 Zero Gaps Guarantee
|
|
15
15
|
- **Intelligent gap detection** using timestamp analysis
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
16
|
+
- **Automatic gap filling** integrated into collection workflow
|
|
17
|
+
- **Authentic Binance API** data sources exclusively - no synthetic data
|
|
18
18
|
|
|
19
19
|
### 🛡️ Production-Grade Reliability
|
|
20
20
|
- **Atomic file operations** prevent data corruption
|
|
@@ -88,9 +88,9 @@ for file_path in results.values():
|
|
|
88
88
|
|
|
89
89
|
### Gap Detection & Filling
|
|
90
90
|
- ✅ **Intelligent gap analysis** - Timestamp sequence validation
|
|
91
|
-
- ✅ **
|
|
92
|
-
- ✅ **
|
|
93
|
-
- ✅ **Comprehensive logging** - Detailed gap filling reports
|
|
91
|
+
- ✅ **Automatic gap filling** - Integrated into collection workflow by default
|
|
92
|
+
- ✅ **Authentic Binance API** - Direct REST API data sources only
|
|
93
|
+
- ✅ **Comprehensive logging** - Detailed gap filling reports with metadata
|
|
94
94
|
|
|
95
95
|
### Data Integrity
|
|
96
96
|
- ✅ **Atomic file operations** - Corruption-proof data handling
|
|
@@ -37,7 +37,7 @@ uv run python examples/basic_data_collection.py
|
|
|
37
37
|
**Key Features:**
|
|
38
38
|
- Create sample data with gaps
|
|
39
39
|
- Detect gaps using UniversalGapFiller
|
|
40
|
-
- Fill gaps with
|
|
40
|
+
- Fill gaps with authentic Binance API data
|
|
41
41
|
- Verify results
|
|
42
42
|
|
|
43
43
|
**Run it:**
|
|
@@ -93,13 +93,10 @@ uv run gapless-crypto-data --symbol BTCUSDT --timeframes 1h --start 2024-01-01 -
|
|
|
93
93
|
For real-world data collection:
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
|
-
# 1. Large-scale collection
|
|
96
|
+
# 1. Large-scale collection with automatic gap filling
|
|
97
97
|
uv run gapless-crypto-data --symbol SOLUSDT --timeframes 1m,5m,1h,4h --start 2023-01-01 --end 2023-12-31
|
|
98
98
|
|
|
99
|
-
# 2.
|
|
100
|
-
uv run gapless-crypto-data --fill-gaps
|
|
101
|
-
|
|
102
|
-
# 3. Complete workflow demo
|
|
99
|
+
# 2. Complete workflow demo
|
|
103
100
|
uv run python examples/complete_workflow.py
|
|
104
101
|
```
|
|
105
102
|
|
|
@@ -107,14 +104,11 @@ uv run python examples/complete_workflow.py
|
|
|
107
104
|
For multiple symbols:
|
|
108
105
|
|
|
109
106
|
```bash
|
|
110
|
-
# Collect data for multiple assets
|
|
107
|
+
# Collect data for multiple assets with automatic gap filling
|
|
111
108
|
symbols=(BTCUSDT ETHUSDT SOLUSDT ADAUSDT)
|
|
112
109
|
for symbol in "${symbols[@]}"; do
|
|
113
110
|
uv run gapless-crypto-data --symbol $symbol --timeframes 1h,4h --start 2024-01-01 --end 2024-01-31
|
|
114
111
|
done
|
|
115
|
-
|
|
116
|
-
# Fill gaps for all data
|
|
117
|
-
uv run gapless-crypto-data --fill-gaps
|
|
118
112
|
```
|
|
119
113
|
|
|
120
114
|
## 📊 Expected Output
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Gap Filling Example
|
|
4
4
|
|
|
5
5
|
This example demonstrates how to detect and fill gaps in cryptocurrency data
|
|
6
|
-
using the UniversalGapFiller with
|
|
6
|
+
using the UniversalGapFiller with authentic Binance API data sources.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from pathlib import Path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "gapless-crypto-data"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.2"
|
|
4
4
|
description = "Cryptocurrency data collection with complete Binance microstructure format - 11-column output including quote volume, trade counts, and taker buy data"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -34,7 +34,8 @@ classifiers = [
|
|
|
34
34
|
requires-python = ">=3.9"
|
|
35
35
|
dependencies = [
|
|
36
36
|
"pandas>=2.0.0",
|
|
37
|
-
"requests>=2.25.0"
|
|
37
|
+
"requests>=2.25.0",
|
|
38
|
+
"rich>=14.1.0",
|
|
38
39
|
]
|
|
39
40
|
|
|
40
41
|
[project.urls]
|
|
@@ -15,7 +15,7 @@ Key Features:
|
|
|
15
15
|
- Provides authentic order flow metrics including trade counts and taker volumes
|
|
16
16
|
- Processes gaps chronologically to maintain data integrity
|
|
17
17
|
- NO synthetic or estimated data - only authentic exchange data
|
|
18
|
-
- API-first validation protocol
|
|
18
|
+
- API-first validation protocol using authentic Binance data exclusively
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
21
|
import logging
|
|
@@ -220,7 +220,7 @@ class UniversalGapFiller:
|
|
|
220
220
|
logger.error(f" ❌ Unknown CSV format. Columns: {list(df.columns)}")
|
|
221
221
|
return False
|
|
222
222
|
|
|
223
|
-
# ✅ API-FIRST VALIDATION: Always
|
|
223
|
+
# ✅ API-FIRST VALIDATION: Always use authentic Binance REST API data
|
|
224
224
|
logger.info(" 🔍 Step 1: Attempting authentic Binance REST API data retrieval")
|
|
225
225
|
binance_data = self.fetch_binance_data(
|
|
226
226
|
gap_info["start_time"],
|
|
@@ -247,7 +247,7 @@ class UniversalGapFiller:
|
|
|
247
247
|
logger.warning(" ⚠️ Step 1 Failed: No authentic API data available")
|
|
248
248
|
logger.info(" 🔍 Step 2: Checking if gap is legitimate exchange outage")
|
|
249
249
|
|
|
250
|
-
#
|
|
250
|
+
# Gap represents legitimate exchange outage - preserve data integrity
|
|
251
251
|
# For now, fail gracefully to maintain authentic data mandate
|
|
252
252
|
logger.error(" ❌ Gap filling failed: No authentic data available via API")
|
|
253
253
|
logger.info(" 📋 Preserving authentic data integrity - no synthetic fill applied")
|
|
@@ -286,11 +286,12 @@ wheels = [
|
|
|
286
286
|
|
|
287
287
|
[[package]]
|
|
288
288
|
name = "gapless-crypto-data"
|
|
289
|
-
version = "2.0.
|
|
289
|
+
version = "2.0.2"
|
|
290
290
|
source = { editable = "." }
|
|
291
291
|
dependencies = [
|
|
292
292
|
{ name = "pandas" },
|
|
293
293
|
{ name = "requests" },
|
|
294
|
+
{ name = "rich" },
|
|
294
295
|
]
|
|
295
296
|
|
|
296
297
|
[package.optional-dependencies]
|
|
@@ -328,6 +329,7 @@ requires-dist = [
|
|
|
328
329
|
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.0.0" },
|
|
329
330
|
{ name = "pytest-cov", marker = "extra == 'test'", specifier = ">=4.0.0" },
|
|
330
331
|
{ name = "requests", specifier = ">=2.25.0" },
|
|
332
|
+
{ name = "rich", specifier = ">=14.1.0" },
|
|
331
333
|
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.1.0" },
|
|
332
334
|
]
|
|
333
335
|
provides-extras = ["dev", "test"]
|
|
@@ -361,6 +363,47 @@ wheels = [
|
|
|
361
363
|
{ url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" },
|
|
362
364
|
]
|
|
363
365
|
|
|
366
|
+
[[package]]
|
|
367
|
+
name = "markdown-it-py"
|
|
368
|
+
version = "3.0.0"
|
|
369
|
+
source = { registry = "https://pypi.org/simple" }
|
|
370
|
+
resolution-markers = [
|
|
371
|
+
"python_full_version < '3.10'",
|
|
372
|
+
]
|
|
373
|
+
dependencies = [
|
|
374
|
+
{ name = "mdurl", marker = "python_full_version < '3.10'" },
|
|
375
|
+
]
|
|
376
|
+
sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" }
|
|
377
|
+
wheels = [
|
|
378
|
+
{ url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" },
|
|
379
|
+
]
|
|
380
|
+
|
|
381
|
+
[[package]]
|
|
382
|
+
name = "markdown-it-py"
|
|
383
|
+
version = "4.0.0"
|
|
384
|
+
source = { registry = "https://pypi.org/simple" }
|
|
385
|
+
resolution-markers = [
|
|
386
|
+
"python_full_version >= '3.12'",
|
|
387
|
+
"python_full_version == '3.11.*'",
|
|
388
|
+
"python_full_version == '3.10.*'",
|
|
389
|
+
]
|
|
390
|
+
dependencies = [
|
|
391
|
+
{ name = "mdurl", marker = "python_full_version >= '3.10'" },
|
|
392
|
+
]
|
|
393
|
+
sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" }
|
|
394
|
+
wheels = [
|
|
395
|
+
{ url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" },
|
|
396
|
+
]
|
|
397
|
+
|
|
398
|
+
[[package]]
|
|
399
|
+
name = "mdurl"
|
|
400
|
+
version = "0.1.2"
|
|
401
|
+
source = { registry = "https://pypi.org/simple" }
|
|
402
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" }
|
|
403
|
+
wheels = [
|
|
404
|
+
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
|
|
405
|
+
]
|
|
406
|
+
|
|
364
407
|
[[package]]
|
|
365
408
|
name = "mypy"
|
|
366
409
|
version = "1.18.1"
|
|
@@ -884,6 +927,20 @@ wheels = [
|
|
|
884
927
|
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" },
|
|
885
928
|
]
|
|
886
929
|
|
|
930
|
+
[[package]]
|
|
931
|
+
name = "rich"
|
|
932
|
+
version = "14.1.0"
|
|
933
|
+
source = { registry = "https://pypi.org/simple" }
|
|
934
|
+
dependencies = [
|
|
935
|
+
{ name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
936
|
+
{ name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
937
|
+
{ name = "pygments" },
|
|
938
|
+
]
|
|
939
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441, upload-time = "2025-07-25T07:32:58.125Z" }
|
|
940
|
+
wheels = [
|
|
941
|
+
{ url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368, upload-time = "2025-07-25T07:32:56.73Z" },
|
|
942
|
+
]
|
|
943
|
+
|
|
887
944
|
[[package]]
|
|
888
945
|
name = "ruff"
|
|
889
946
|
version = "0.13.0"
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Binance Spot Market Data v4.0.0
|
|
2
|
-
# Generated: 2025-09-15T05:56:30.731811Z
|
|
3
|
-
# Source: Binance Public Data Repository
|
|
4
|
-
# Market: SPOT | Symbol: BTCUSDT | Timeframe: 1h
|
|
5
|
-
# Coverage: 24 bars
|
|
6
|
-
# Period: 2024-01-01 00:00:00 to 2024-01-01 23:00:00
|
|
7
|
-
# Collection: direct_download in 0.4s
|
|
8
|
-
# Data Hash: 8a57572144bae5e8...
|
|
9
|
-
# Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
|
|
10
|
-
#
|
|
11
|
-
date,open,high,low,close,volume,close_time,quote_asset_volume,number_of_trades,taker_buy_base_asset_volume,taker_buy_quote_asset_volume
|
|
12
|
-
2024-01-01 00:00:00,42283.58,42554.57,42261.02,42475.23,1271.68108,2024-01-01 00:59:59,53957248.973789,47134,682.57581,28957416.819645
|
|
13
|
-
2024-01-01 01:00:00,42475.23,42775.0,42431.65,42613.56,1196.37856,2024-01-01 01:59:59,50984893.3481416,50396,712.32227,30355645.3482764
|
|
14
|
-
2024-01-01 02:00:00,42613.57,42638.41,42500.0,42581.1,685.2198,2024-01-01 02:59:59,29167377.9732375,29863,288.98864,12301017.299762
|
|
15
|
-
2024-01-01 03:00:00,42581.09,42586.64,42230.08,42330.49,794.80391,2024-01-01 03:59:59,33709050.2741136,38620,356.37209,15112996.3758499
|
|
16
|
-
2024-01-01 04:00:00,42330.5,42399.99,42209.46,42399.99,715.4176,2024-01-01 04:59:59,30271621.000739,36038,371.12012,15703618.9319853
|
|
17
|
-
2024-01-01 05:00:00,42399.98,42406.0,42180.77,42234.01,736.53152,2024-01-01 05:59:59,31159533.4764102,32200,340.69312,14414594.8709419
|
|
18
|
-
2024-01-01 06:00:00,42234.01,42424.82,42208.68,42396.69,601.3725,2024-01-01 06:59:59,25454115.8447492,32653,348.7351,14759685.2542202
|
|
19
|
-
2024-01-01 07:00:00,42396.69,42500.0,42396.68,42492.46,653.67718,2024-01-01 07:59:59,27757929.5826532,27661,325.24438,13809558.5581487
|
|
20
|
-
2024-01-01 08:00:00,42492.46,42556.5,42452.58,42549.99,427.19365,2024-01-01 08:59:59,18158032.0713477,25046,202.6665,8614418.4233219
|
|
21
|
-
2024-01-01 09:00:00,42550.0,42699.32,42537.18,42649.69,879.62491,2024-01-01 09:59:59,37495909.1519946,39685,460.83221,19643796.8180602
|
|
22
|
-
2024-01-01 10:00:00,42649.69,42749.36,42628.0,42691.1,856.81851,2024-01-01 10:59:59,36575404.2277785,32952,458.26507,19562257.2900065
|
|
23
|
-
2024-01-01 11:00:00,42691.1,42762.39,42605.21,42690.2,785.16567,2024-01-01 11:59:59,33516541.8167861,39801,401.49317,17138999.1008268
|
|
24
|
-
2024-01-01 12:00:00,42690.21,42780.0,42611.45,42648.38,785.52851,2024-01-01 12:59:59,33542689.8029634,35778,363.27898,15513372.6294569
|
|
25
|
-
2024-01-01 13:00:00,42648.37,42748.0,42612.76,42715.54,497.2024,2024-01-01 13:59:59,21230655.2580876,29662,252.80525,10794600.800384
|
|
26
|
-
2024-01-01 14:00:00,42715.54,42715.55,42580.0,42612.24,711.01152,2024-01-01 14:59:59,30312550.0545163,35688,369.47765,15750630.3780059
|
|
27
|
-
2024-01-01 15:00:00,42612.24,42847.07,42586.51,42783.05,942.70163,2024-01-01 15:59:59,40272827.0639329,47628,510.78905,21818909.6236608
|
|
28
|
-
2024-01-01 16:00:00,42783.05,42856.0,42664.42,42725.15,918.71056,2024-01-01 16:59:59,39292588.8194273,39979,449.47603,19222594.9405082
|
|
29
|
-
2024-01-01 17:00:00,42725.15,42824.9,42704.42,42812.7,677.33678,2024-01-01 17:59:59,28962179.5203376,29871,329.97146,14108987.8934044
|
|
30
|
-
2024-01-01 18:00:00,42812.71,43208.86,42812.7,43111.1,2143.30897,2024-01-01 18:59:59,92299025.1971326,93970,1193.23559,51377573.0698471
|
|
31
|
-
2024-01-01 19:00:00,43111.1,43550.0,43103.64,43517.99,1947.61533,2024-01-01 19:59:59,84416763.6540515,78415,1043.766,45242850.5273276
|
|
32
|
-
2024-01-01 20:00:00,43517.98,43829.99,43510.71,43687.86,2905.07295,2024-01-01 20:59:59,126914170.3804287,88205,1586.93352,69332665.633418
|
|
33
|
-
2024-01-01 21:00:00,43687.85,43792.59,43480.76,43619.21,1541.59126,2024-01-01 21:59:59,67281632.034903,48994,737.28182,32173665.2965155
|
|
34
|
-
2024-01-01 22:00:00,43619.22,43661.1,43361.6,43529.93,1024.36372,2024-01-01 22:59:59,44554969.9325888,39588,482.2796,20973587.992568
|
|
35
|
-
2024-01-01 23:00:00,43529.94,44184.1,43529.93,44179.55,3475.97051,2024-01-01 23:59:59,152707972.5678915,114796,2063.12837,90668650.6843782
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# Binance Spot Market Data v3.0.0
|
|
2
|
-
# Generated: 2025-09-15T04:30:34.957978Z
|
|
3
|
-
# Source: Binance Public Data Repository
|
|
4
|
-
# Market: SPOT | Symbol: BTCUSDT | Timeframe: 1h
|
|
5
|
-
# Coverage: 48 bars
|
|
6
|
-
# Period: 2024-01-01 00:00:00 to 2024-01-02 23:00:00
|
|
7
|
-
# Collection: direct_download in 0.4s
|
|
8
|
-
# Data Hash: 2ee17ac5f24bc0e8...
|
|
9
|
-
# Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
|
|
10
|
-
#
|
|
11
|
-
date,open,high,low,close,volume
|
|
12
|
-
2024-01-01 00:00:00,42283.58,42554.57,42261.02,42475.23,1271.68108
|
|
13
|
-
2024-01-01 01:00:00,42475.23,42775.0,42431.65,42613.56,1196.37856
|
|
14
|
-
2024-01-01 02:00:00,42613.57,42638.41,42500.0,42581.1,685.2198
|
|
15
|
-
2024-01-01 03:00:00,42581.09,42586.64,42230.08,42330.49,794.80391
|
|
16
|
-
2024-01-01 04:00:00,42330.5,42399.99,42209.46,42399.99,715.4176
|
|
17
|
-
2024-01-01 05:00:00,42399.98,42406.0,42180.77,42234.01,736.53152
|
|
18
|
-
2024-01-01 06:00:00,42234.01,42424.82,42208.68,42396.69,601.3725
|
|
19
|
-
2024-01-01 07:00:00,42396.69,42500.0,42396.68,42492.46,653.67718
|
|
20
|
-
2024-01-01 08:00:00,42492.46,42556.5,42452.58,42549.99,427.19365
|
|
21
|
-
2024-01-01 09:00:00,42550.0,42699.32,42537.18,42649.69,879.62491
|
|
22
|
-
2024-01-01 10:00:00,42649.69,42749.36,42628.0,42691.1,856.81851
|
|
23
|
-
2024-01-01 11:00:00,42691.1,42762.39,42605.21,42690.2,785.16567
|
|
24
|
-
2024-01-01 12:00:00,42690.21,42780.0,42611.45,42648.38,785.52851
|
|
25
|
-
2024-01-01 13:00:00,42648.37,42748.0,42612.76,42715.54,497.2024
|
|
26
|
-
2024-01-01 14:00:00,42715.54,42715.55,42580.0,42612.24,711.01152
|
|
27
|
-
2024-01-01 15:00:00,42612.24,42847.07,42586.51,42783.05,942.70163
|
|
28
|
-
2024-01-01 16:00:00,42783.05,42856.0,42664.42,42725.15,918.71056
|
|
29
|
-
2024-01-01 17:00:00,42725.15,42824.9,42704.42,42812.7,677.33678
|
|
30
|
-
2024-01-01 18:00:00,42812.71,43208.86,42812.7,43111.1,2143.30897
|
|
31
|
-
2024-01-01 19:00:00,43111.1,43550.0,43103.64,43517.99,1947.61533
|
|
32
|
-
2024-01-01 20:00:00,43517.98,43829.99,43510.71,43687.86,2905.07295
|
|
33
|
-
2024-01-01 21:00:00,43687.85,43792.59,43480.76,43619.21,1541.59126
|
|
34
|
-
2024-01-01 22:00:00,43619.22,43661.1,43361.6,43529.93,1024.36372
|
|
35
|
-
2024-01-01 23:00:00,43529.94,44184.1,43529.93,44179.55,3475.97051
|
|
36
|
-
2024-01-02 00:00:00,44179.55,45200.0,44148.34,45056.0,6986.25967
|
|
37
|
-
2024-01-02 01:00:00,45056.0,45372.79,44686.0,44855.96,4397.86376
|
|
38
|
-
2024-01-02 02:00:00,44855.96,45381.42,44855.95,45378.96,3016.04235
|
|
39
|
-
2024-01-02 03:00:00,45378.96,45500.0,45131.1,45402.38,2693.12081
|
|
40
|
-
2024-01-02 04:00:00,45402.38,45468.99,45170.0,45179.8,2268.27572
|
|
41
|
-
2024-01-02 05:00:00,45179.8,45324.72,45121.96,45179.48,1617.2842
|
|
42
|
-
2024-01-02 06:00:00,45179.48,45308.15,45130.0,45168.75,1390.33832
|
|
43
|
-
2024-01-02 07:00:00,45168.75,45643.75,45168.74,45455.53,3112.52478
|
|
44
|
-
2024-01-02 08:00:00,45455.52,45852.93,45326.6,45759.3,3323.21707
|
|
45
|
-
2024-01-02 09:00:00,45759.3,45879.63,45631.1,45673.48,2096.46195
|
|
46
|
-
2024-01-02 10:00:00,45673.48,45711.1,45431.52,45584.99,2069.22249
|
|
47
|
-
2024-01-02 11:00:00,45585.0,45698.67,45200.0,45433.99,2538.49307
|
|
48
|
-
2024-01-02 12:00:00,45433.99,45589.68,45271.04,45301.99,2128.11147
|
|
49
|
-
2024-01-02 13:00:00,45302.0,45705.8,45264.39,45637.93,2253.76868
|
|
50
|
-
2024-01-02 14:00:00,45637.92,45800.0,44970.0,45258.73,4553.21243
|
|
51
|
-
2024-01-02 15:00:00,45258.73,45349.98,44833.33,45184.82,4301.03657
|
|
52
|
-
2024-01-02 16:00:00,45184.83,45399.84,44890.11,45357.84,3052.23783
|
|
53
|
-
2024-01-02 17:00:00,45357.84,45382.08,44950.48,44966.15,2540.00308
|
|
54
|
-
2024-01-02 18:00:00,44966.16,45271.2,44944.0,45154.69,1806.0773
|
|
55
|
-
2024-01-02 19:00:00,45154.7,45243.0,44790.96,45039.49,2347.28624
|
|
56
|
-
2024-01-02 20:00:00,45039.49,45180.55,44742.96,44788.28,1940.02489
|
|
57
|
-
2024-01-02 21:00:00,44788.27,45119.76,44600.0,45119.74,2043.74183
|
|
58
|
-
2024-01-02 22:00:00,45119.74,45297.26,44840.01,44981.73,1591.57491
|
|
59
|
-
2024-01-02 23:00:00,44981.72,45049.98,44802.01,44946.91,1080.22719
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Binance Spot Market Data v3.0.0
|
|
2
|
-
# Generated: 2025-09-15T04:56:30.995396Z
|
|
3
|
-
# Source: Binance Public Data Repository
|
|
4
|
-
# Market: SPOT | Symbol: BTCUSDT | Timeframe: 1h
|
|
5
|
-
# Coverage: 24 bars
|
|
6
|
-
# Period: 2025-08-31 00:00:00 to 2025-08-31 23:00:00
|
|
7
|
-
# Collection: direct_download in 0.7s
|
|
8
|
-
# Data Hash: 958a68a538ae24b4...
|
|
9
|
-
# Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
|
|
10
|
-
#
|
|
11
|
-
date,open,high,low,close,volume
|
|
12
|
-
2025-08-31 00:00:00,108816.33,109400.0,108801.35,109389.08,767.94031
|
|
13
|
-
2025-08-31 01:00:00,109389.09,109480.02,109141.6,109429.01,456.69292
|
|
14
|
-
2025-08-31 02:00:00,109429.02,109439.54,109171.97,109224.87,227.48673
|
|
15
|
-
2025-08-31 03:00:00,109224.88,109378.93,109160.05,109223.84,304.7115
|
|
16
|
-
2025-08-31 04:00:00,109223.84,109231.41,108666.93,108816.32,409.65172
|
|
17
|
-
2025-08-31 05:00:00,108816.33,108816.33,108572.0,108756.85,297.82501
|
|
18
|
-
2025-08-31 06:00:00,108756.85,108778.27,108523.49,108716.65,209.89685
|
|
19
|
-
2025-08-31 07:00:00,108716.65,108829.17,108670.0,108708.26,259.88571
|
|
20
|
-
2025-08-31 08:00:00,108708.25,109030.51,108708.25,109011.67,217.73644
|
|
21
|
-
2025-08-31 09:00:00,109011.67,109100.0,108447.6,108507.68,344.54949
|
|
22
|
-
2025-08-31 10:00:00,108507.68,108628.63,108303.21,108560.23,639.93429
|
|
23
|
-
2025-08-31 11:00:00,108560.23,108597.19,108323.73,108389.76,388.6744
|
|
24
|
-
2025-08-31 12:00:00,108389.77,108486.13,108307.69,108309.2,637.73664
|
|
25
|
-
2025-08-31 13:00:00,108309.21,108451.45,108191.29,108418.02,675.04582
|
|
26
|
-
2025-08-31 14:00:00,108418.02,108515.68,108255.43,108467.33,482.56215
|
|
27
|
-
2025-08-31 15:00:00,108467.32,108858.43,108462.6,108818.69,646.54444
|
|
28
|
-
2025-08-31 16:00:00,108818.69,108978.0,108555.0,108922.79,566.18074
|
|
29
|
-
2025-08-31 17:00:00,108922.79,108993.88,108852.89,108993.87,242.1119
|
|
30
|
-
2025-08-31 18:00:00,108993.88,109237.51,108927.5,109146.62,264.16429
|
|
31
|
-
2025-08-31 19:00:00,109146.62,109167.84,108916.28,108930.0,160.04622
|
|
32
|
-
2025-08-31 20:00:00,108930.0,109118.0,108880.0,109117.99,190.53944
|
|
33
|
-
2025-08-31 21:00:00,109118.0,109118.0,108957.12,109037.29,156.22084
|
|
34
|
-
2025-08-31 22:00:00,109037.3,109230.0,108758.37,108900.46,245.89578
|
|
35
|
-
2025-08-31 23:00:00,108900.45,108917.36,108076.93,108246.35,697.48233
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Binance Spot Market Data v3.0.0
|
|
2
|
-
# Generated: 2025-09-15T04:56:31.600738Z
|
|
3
|
-
# Source: Binance Public Data Repository
|
|
4
|
-
# Market: SPOT | Symbol: BTCUSDT | Timeframe: 4h
|
|
5
|
-
# Coverage: 6 bars
|
|
6
|
-
# Period: 2025-08-31 00:00:00 to 2025-08-31 20:00:00
|
|
7
|
-
# Collection: direct_download in 0.6s
|
|
8
|
-
# Data Hash: d76b17d6c8ed3e18...
|
|
9
|
-
# Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
|
|
10
|
-
#
|
|
11
|
-
date,open,high,low,close,volume
|
|
12
|
-
2025-08-31 00:00:00,108816.33,109480.02,108801.35,109223.84,1756.83146
|
|
13
|
-
2025-08-31 04:00:00,109223.84,109231.41,108523.49,108708.26,1177.25929
|
|
14
|
-
2025-08-31 08:00:00,108708.25,109100.0,108303.21,108389.76,1590.89462
|
|
15
|
-
2025-08-31 12:00:00,108389.77,108858.43,108191.29,108818.69,2441.88905
|
|
16
|
-
2025-08-31 16:00:00,108818.69,109237.51,108555.0,108930.0,1232.50315
|
|
17
|
-
2025-08-31 20:00:00,108930.0,109230.0,108076.93,108246.35,1290.13839
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Binance Spot Market Data v4.0.0
|
|
2
|
-
# Generated: 2025-09-15T07:53:06.851350Z
|
|
3
|
-
# Source: Binance Public Data Repository
|
|
4
|
-
# Market: SPOT | Symbol: ETHUSDT | Timeframe: 1h
|
|
5
|
-
# Coverage: 24 bars
|
|
6
|
-
# Period: 2024-08-01 00:00:00 to 2024-08-01 23:00:00
|
|
7
|
-
# Collection: direct_download in 0.5s
|
|
8
|
-
# Data Hash: c39ffab66c4c7248...
|
|
9
|
-
# Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
|
|
10
|
-
#
|
|
11
|
-
date,open,high,low,close,volume,close_time,quote_asset_volume,number_of_trades,taker_buy_base_asset_volume,taker_buy_quote_asset_volume
|
|
12
|
-
2024-08-01 00:00:00,3232.74,3242.57,3214.21,3235.01,7698.7089,2024-08-01 00:59:59,24867520.469198,67299,3506.3676,11329993.502448
|
|
13
|
-
2024-08-01 01:00:00,3235.0,3239.45,3189.93,3211.81,21184.0685,2024-08-01 01:59:59,67979549.476578,90218,9328.1198,29932204.05386
|
|
14
|
-
2024-08-01 02:00:00,3211.81,3214.93,3176.81,3197.69,15800.3355,2024-08-01 02:59:59,50483443.709684,100277,7394.5055,23629769.050125
|
|
15
|
-
2024-08-01 03:00:00,3197.69,3197.69,3171.65,3178.22,8707.4347,2024-08-01 03:59:59,27723544.462643,73731,4032.086,12839610.655261
|
|
16
|
-
2024-08-01 04:00:00,3178.22,3189.8,3139.4,3147.59,18114.9585,2024-08-01 04:59:59,57268287.960105,117660,7382.1511,23339913.821993
|
|
17
|
-
2024-08-01 05:00:00,3147.59,3185.51,3136.47,3185.32,17211.8725,2024-08-01 05:59:59,54476147.10723,91071,8852.84,28024381.134148
|
|
18
|
-
2024-08-01 06:00:00,3185.32,3185.32,3163.57,3168.14,7877.6256,2024-08-01 06:59:59,25007203.37799,53395,3530.3065,11209076.363146
|
|
19
|
-
2024-08-01 07:00:00,3168.14,3180.73,3164.7,3166.81,6167.7942,2024-08-01 07:59:59,19568611.252128,46941,3057.0321,9699750.880948
|
|
20
|
-
2024-08-01 08:00:00,3166.82,3184.58,3165.52,3184.32,6205.8034,2024-08-01 08:59:59,19709965.716818,39319,3226.0991,10246276.12409
|
|
21
|
-
2024-08-01 09:00:00,3184.32,3194.23,3179.44,3179.96,6393.1061,2024-08-01 09:59:59,20370681.621279,35112,3500.5441,11153226.486637
|
|
22
|
-
2024-08-01 10:00:00,3179.96,3192.47,3176.24,3190.61,5331.5038,2024-08-01 10:59:59,16978202.58614,30591,3030.4888,9649902.765131
|
|
23
|
-
2024-08-01 11:00:00,3190.6,3193.88,3183.6,3188.39,5509.4464,2024-08-01 11:59:59,17571023.973789,32427,3080.3765,9823580.087891
|
|
24
|
-
2024-08-01 12:00:00,3188.39,3207.0,3186.44,3196.55,7388.0703,2024-08-01 12:59:59,23627217.470523,45308,3758.7034,12020312.852857
|
|
25
|
-
2024-08-01 13:00:00,3196.55,3199.48,3173.76,3183.01,15993.3742,2024-08-01 13:59:59,50937161.229256,65461,7442.7899,23704814.545109
|
|
26
|
-
2024-08-01 14:00:00,3183.0,3187.39,3142.73,3142.74,18249.9026,2024-08-01 14:59:59,57749410.179081,88457,7287.5646,23065798.488922
|
|
27
|
-
2024-08-01 15:00:00,3142.74,3146.25,3102.4,3117.18,34224.832,2024-08-01 15:59:59,106849276.024882,168879,15354.7571,47938126.802461
|
|
28
|
-
2024-08-01 16:00:00,3117.18,3123.86,3090.81,3107.6,29230.9716,2024-08-01 16:59:59,90823110.882437,161456,12774.356,39701930.518966
|
|
29
|
-
2024-08-01 17:00:00,3107.6,3120.73,3090.48,3119.81,17357.6714,2024-08-01 17:59:59,53832598.99686,100143,8807.8473,27322511.940904
|
|
30
|
-
2024-08-01 18:00:00,3119.81,3121.48,3080.02,3091.99,16468.2803,2024-08-01 18:59:59,51034094.155696,115791,6909.2631,21419888.32674
|
|
31
|
-
2024-08-01 19:00:00,3091.99,3136.0,3090.3,3131.64,10855.7006,2024-08-01 19:59:59,33820377.450232,64368,5483.048,17083347.865277
|
|
32
|
-
2024-08-01 20:00:00,3131.64,3172.55,3121.73,3172.13,16803.9829,2024-08-01 20:59:59,52862514.662976,87396,8357.4769,26291833.449499
|
|
33
|
-
2024-08-01 21:00:00,3172.13,3185.38,3158.46,3176.57,11160.0201,2024-08-01 21:59:59,35404563.761658,47950,5100.8342,16182261.422946
|
|
34
|
-
2024-08-01 22:00:00,3176.57,3219.34,3173.58,3209.21,12660.8631,2024-08-01 22:59:59,40523130.655208,75271,7125.9309,22806137.444318
|
|
35
|
-
2024-08-01 23:00:00,3209.21,3215.5,3198.43,3203.4,6689.2833,2024-08-01 23:59:59,21453982.270088,36934,3191.8025,10238216.518111
|