tdx_rs/tdx_model/data/
full_daily_data.rs1use 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}