1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//! # Dukascopy Data Provider Connector
//!
//! Category: forex
//! Type: Data Provider (historical tick data)
//!
//! ## Features
//! - REST API: No (uses direct binary file downloads)
//! - WebSocket: No (official - uses binary downloads only)
//! - Authentication: None required (public datafeed)
//! - Free tier: Yes (unlimited historical tick data)
//!
//! ## Data Types
//! - Price data: Yes (tick-level bid/ask)
//! - Historical data: Yes (2003+ for major forex pairs)
//! - Derivatives data: No
//! - Fundamentals: No
//! - On-chain: No
//! - Macro data: No
//!
//! ## Data Access Method
//!
//! Dukascopy provides free historical tick data via **binary file downloads** (.bi5 format):
//! - URL pattern: `https://datafeed.dukascopy.com/datafeed/{SYMBOL}/{YYYY}/{MM}/{DD}/{HH}h_ticks.bi5`
//! - Format: LZMA-compressed binary (20 bytes per tick)
//! - Granularity: Tick-level (every price change)
//! - Historical depth: 2003+ for major forex pairs
//! - No authentication required
//! - Free unlimited access
//!
//! ## Limitations
//!
//! - **Trading**: Not supported (data provider only)
//! - **Real-time data**: Not available via this connector (use JForex SDK for live data)
//! - **Account operations**: Not supported
//! - **WebSocket**: Not implemented (binary downloads only)
//!
//! ## Usage
//!
//! ```ignore
//! use connectors_v5::forex::dukascopy::DukascopyConnector;
//! use connectors_v5::core::types::*;
//!
//! let connector = DukascopyConnector::new();
//!
//! // Get historical tick data
//! let symbol = Symbol {
//! base: "EUR".to_string(),
//! quote: "USD".to_string(),
//! };
//!
//! // Get klines (constructed from tick data)
//! let klines = connector.get_klines(
//! symbol,
//! "1h",
//! Some(24),
//! AccountType::Spot
//! ).await?;
//! ```
pub use ;
pub use DukascopyAuth;
pub use DukascopyParser;
pub use DukascopyConnector;