cryptoservice.interfaces.market_interfaces
cryptoservice.interfaces.market_interfaces
Classes
IMarketDataService
Bases: Protocol
市场数据服务接口
Functions
get_market_summary(interval: Freq = Freq.d1) -> dict[str, Any]
获取市场概况.
PARAMETER | DESCRIPTION |
---|---|
symbols
|
交易对列表
|
interval
|
数据间隔
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
dict[str, Any]
|
Dict[str, Any]: 市场概况数据 |
get_symbol_ticker(symbol: str | None = None) -> SymbolTicker | list[SymbolTicker]
abstractmethod
获取单个或多个交易币的行情数据.
PARAMETER | DESCRIPTION |
---|---|
symbol
|
交易对名称,如果为 None 则返回所有交易对数据
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
SymbolTicker | list[SymbolTicker]
|
|
SymbolTicker | list[SymbolTicker]
|
|
RAISES | DESCRIPTION |
---|---|
InvalidSymbolError
|
当指定的交易对不存在时 |
Source code in src/cryptoservice/interfaces/market_interfaces.py
get_historical_klines(symbol: str, start_time: str | datetime, end_time: str | datetime | None = None, interval: Freq = Freq.d1) -> list[KlineMarketTicker]
abstractmethod
获取历史行情数据.
PARAMETER | DESCRIPTION |
---|---|
symbol
|
交易对名称
TYPE:
|
start_time
|
开始时间
TYPE:
|
end_time
|
结束时间,默认为当前时间
TYPE:
|
interval
|
数据间隔,如 1m, 5m, 1h, 1d
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
list[KlineMarketTicker]
|
List[KlineMarketTicker]: 历史行情数据列表 |
Source code in src/cryptoservice/interfaces/market_interfaces.py
get_perpetual_data(symbols: list[str], start_time: str, db_path: Path | str, end_time: str | None = None, interval: Freq = Freq.h1, max_workers: int = 5, max_retries: int = 3, progress: Progress | None = None, request_delay: float = 0.5, retry_config: Optional[RetryConfig] = None, enable_integrity_check: bool = True) -> IntegrityReport
abstractmethod
获取永续合约历史数据, 并存储到指定数据库.
PARAMETER | DESCRIPTION |
---|---|
symbols
|
交易对列表
TYPE:
|
start_time
|
开始时间 (YYYYMMDD)
TYPE:
|
end_time
|
结束时间 (YYYYMMDD)
TYPE:
|
interval
|
数据频率 (1m, 1h, 4h, 1d等)
TYPE:
|
db_path
|
数据库文件路径
TYPE:
|
max_workers
|
并发线程数
TYPE:
|
max_retries
|
最大重试次数
TYPE:
|
progress
|
进度条
TYPE:
|
request_delay
|
每次请求间隔(秒)
TYPE:
|
Source code in src/cryptoservice/interfaces/market_interfaces.py
download_universe_data(universe_file: Path | str, db_path: Path | str, data_path: Path | str | None = None, interval: Freq = Freq.h1, max_workers: int = 4, max_retries: int = 3, include_buffer_days: int = 7, retry_config: Optional[RetryConfig] = None, request_delay: float = 0.5) -> None
abstractmethod
根据universe定义文件下载相应的历史数据到数据库.
PARAMETER | DESCRIPTION |
---|---|
universe_file
|
universe定义文件路径
TYPE:
|
db_path
|
数据库文件路径
TYPE:
|
data_path
|
数据文件存储路径 (可选)
TYPE:
|
interval
|
数据频率 (1m, 1h, 4h, 1d等)
TYPE:
|
max_workers
|
并发线程数
TYPE:
|
max_retries
|
最大重试次数
TYPE:
|
include_buffer_days
|
在数据期间前后增加的缓冲天数
TYPE:
|
request_delay
|
每次请求间隔(秒)
TYPE:
|
Source code in src/cryptoservice/interfaces/market_interfaces.py
define_universe(start_date: str, end_date: str, t1_months: int, t2_months: int, t3_months: int, output_path: Path | str, top_k: int | None = None, top_ratio: float | None = None, description: str | None = None, delay_days: int = 7, api_delay_seconds: float = 1.0, batch_delay_seconds: float = 3.0, batch_size: int = 5, quote_asset: str = 'USDT') -> UniverseDefinition
abstractmethod
定义universe并保存到文件.
PARAMETER | DESCRIPTION |
---|---|
start_date
|
开始日期 (YYYY-MM-DD 或 YYYYMMDD)
TYPE:
|
end_date
|
结束日期 (YYYY-MM-DD 或 YYYYMMDD)
TYPE:
|
t1_months
|
T1时间窗口(月),用于计算mean daily amount
TYPE:
|
t2_months
|
T2滚动频率(月),universe重新选择的频率
TYPE:
|
t3_months
|
T3合约最小创建时间(月),用于筛除新合约
TYPE:
|
output_path
|
universe输出文件路径 (必须指定)
TYPE:
|
top_k
|
选取的top合约数量 (与 top_ratio 二选一)
TYPE:
|
top_ratio
|
选取的top合约比率 (与 top_k 二选一)
TYPE:
|
description
|
描述信息
TYPE:
|
delay_days
|
在重新平衡日期前额外往前推的天数,默认7天
TYPE:
|
api_delay_seconds
|
每个API请求之间的延迟秒数,默认1.0秒
TYPE:
|
batch_delay_seconds
|
每批次请求之间的延迟秒数,默认3.0秒
TYPE:
|
batch_size
|
每批次的请求数量,默认5个
TYPE:
|
quote_asset
|
基准资产,默认为USDT,只筛选以该资产结尾的交易对
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
UniverseDefinition
|
定义的universe
TYPE:
|