tdx_rs/tdx_model/data/
full_daily_data.rs

1use serde::{Deserialize, Serialize};
2
3use super::{CombinedIndicator, DailyData};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct FullDailyData {
7    pub date: u32,
8    pub open: f64,
9    pub high: f64,
10    pub low: f64,
11    pub close: f64,
12    pub dif: f64,
13    pub dea: f64,
14    pub macd: f64,
15    pub dif_2: f64,
16    pub dea_2: f64,
17    pub macd_2: f64,
18}
19
20impl From<(DailyData, CombinedIndicator)> for FullDailyData {
21    fn from(value: (DailyData, CombinedIndicator)) -> Self {
22        let (daily_data, combined_indicator) = value;
23
24        let (daily_date, open, high, low, close) = daily_data.into();
25        let (indicator_date, dif, dea, macd, dif_2, dea_2, macd_2) = combined_indicator.into();
26        assert_eq!(daily_date, indicator_date);
27
28        FullDailyData {
29            date: daily_date,
30            open,
31            high,
32            low,
33            close,
34            dif,
35            dea,
36            macd,
37            dif_2,
38            dea_2,
39            macd_2,
40        }
41    }
42}