trade_aggregation/candle_components/
mod.rs

1//! This module contains a bunch of ready to use 'CandleComponents'
2//! that can easily be combined to create a 'ModularCandle' using the 'Candle' macro.
3
4mod average_price;
5mod candle_component_trait;
6mod close;
7mod close_timestamp;
8mod directional_trade_ratio;
9mod directional_volume_ratio;
10mod entropy;
11mod high;
12mod low;
13mod median_price;
14mod num_trades;
15mod open;
16#[cfg(feature = "chrono")]
17mod open_datetime;
18mod open_timestamp;
19mod std_dev_prices;
20mod std_dev_sizes;
21mod time_velocity;
22mod trades;
23mod volume;
24mod volume_buys;
25mod volume_sells;
26mod vpin;
27mod weighted_price;
28
29pub use average_price::AveragePrice;
30pub use candle_component_trait::{CandleComponent, CandleComponentUpdate};
31pub use close::Close;
32pub use close_timestamp::CloseTimeStamp;
33pub use directional_trade_ratio::DirectionalTradeRatio;
34pub use directional_volume_ratio::DirectionalVolumeRatio;
35pub use entropy::Entropy;
36pub use high::High;
37pub use low::Low;
38pub use median_price::MedianPrice;
39pub use num_trades::NumTrades;
40pub use open::Open;
41#[cfg(feature = "chrono")]
42pub use open_datetime::OpenDateTime;
43pub use open_timestamp::OpenTimeStamp;
44pub use std_dev_prices::StdDevPrices;
45pub use std_dev_sizes::StdDevSizes;
46pub use time_velocity::TimeVelocity;
47pub use trades::Trades;
48pub use volume::Volume;
49pub use volume_buys::VolumeBuys;
50pub use volume_sells::VolumeSells;
51pub use vpin::Vpin;
52pub use weighted_price::WeightedPrice;
53
54#[cfg(test)]
55mod tests {
56    use crate::Trade;
57
58    pub const TRADES: [Trade; 10] = [
59        Trade {
60            timestamp: 1684677200_000,
61            price: 100.0,
62            size: 10.0,
63        },
64        Trade {
65            timestamp: 1684677210_000,
66            price: 101.0,
67            size: -10.0,
68        },
69        Trade {
70            timestamp: 1684677220_000,
71            price: 100.0,
72            size: 20.0,
73        },
74        Trade {
75            timestamp: 1684677230_000,
76            price: 102.0,
77            size: 10.0,
78        },
79        Trade {
80            timestamp: 1684677240_000,
81            price: 103.0,
82            size: 10.0,
83        },
84        Trade {
85            timestamp: 1684677250_000,
86            price: 104.0,
87            size: -20.0,
88        },
89        Trade {
90            timestamp: 1684677260_000,
91            price: 102.0,
92            size: -10.0,
93        },
94        Trade {
95            timestamp: 1684677270_000,
96            price: 101.0,
97            size: 10.0,
98        },
99        Trade {
100            timestamp: 1684677280_000,
101            price: 102.0,
102            size: 30.0,
103        },
104        Trade {
105            timestamp: 1684677290_000,
106            price: 105.0,
107            size: 10.0,
108        },
109    ];
110}