You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.7 KiB
65 lines
1.7 KiB
# -*- coding: utf-8 -*-
|
|
from dataclasses import dataclass
|
|
from typing import Dict, Any, Optional
|
|
|
|
|
|
@dataclass
|
|
class TrainMetrics:
|
|
"""训练集指标"""
|
|
sharpe_ratio: Optional[float] = None
|
|
annual_return: Optional[float] = None
|
|
max_drawdown: Optional[float] = None
|
|
turnover: Optional[float] = None
|
|
fitness: Optional[float] = None
|
|
pnl: Optional[float] = None
|
|
book_size: Optional[float] = None
|
|
long_count: Optional[float] = None
|
|
short_count: Optional[float] = None
|
|
margin: Optional[float] = None
|
|
|
|
|
|
@dataclass
|
|
class TestMetrics:
|
|
"""测试集指标"""
|
|
sharpe_ratio: Optional[float] = None
|
|
annual_return: Optional[float] = None
|
|
max_drawdown: Optional[float] = None
|
|
turnover: Optional[float] = None
|
|
fitness: Optional[float] = None
|
|
pnl: Optional[float] = None
|
|
|
|
|
|
@dataclass
|
|
class AlphaInfo:
|
|
"""Alpha基本信息"""
|
|
grade: Optional[str] = None
|
|
stage: Optional[str] = None
|
|
status: Optional[str] = None
|
|
date_created: Optional[str] = None
|
|
checks: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
@dataclass
|
|
class AlphaMetrics:
|
|
"""Alpha因子完整指标"""
|
|
train_metrics: TrainMetrics
|
|
is_metrics: TestMetrics
|
|
test_metrics: TestMetrics
|
|
alpha_info: AlphaInfo
|
|
alpha_id: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class SimulationResult:
|
|
"""模拟结果"""
|
|
expression: str
|
|
time_consuming: float
|
|
formatted_time: str
|
|
alpha_id: str
|
|
status: str # success, error, failed
|
|
description: str
|
|
simulation_timestamp: str
|
|
train_metrics: Optional[TrainMetrics] = None
|
|
is_metrics: Optional[TestMetrics] = None
|
|
test_metrics: Optional[TestMetrics] = None
|
|
alpha_info: Optional[AlphaInfo] = None |