1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//! Aggregates (bars) endpoint implementations
use cratePolygon;
use crateQuery;
use crateRequest;
/// Get aggregate bars for a stock over a given date range
///
/// # Arguments
///
/// * `client` - Reference to the Polygon client
/// * `ticker` - The ticker symbol
/// * `multiplier` - The size of the timespan multiplier (e.g., 1)
/// * `timespan` - The size of the time window (e.g., "minute", "hour", "day", "week", "month", "quarter", "year")
/// * `from` - The start of the aggregate time window (YYYY-MM-DD or Unix MS timestamp)
/// * `to` - The end of the aggregate time window (YYYY-MM-DD or Unix MS timestamp)
/// * `adjusted` - Whether results are adjusted for splits (default: true)
/// * `sort` - Sort order: "asc" or "desc" (default: "asc")
/// * `limit` - Limit the number of results (max 50000, default 5000)
///
/// # Example
///
/// ```no_run
/// use polygon::Polygon;
/// use polygon::rest::raw::aggs;
/// use polygon::query::Execute as _;
///
/// # #[tokio::main]
/// # async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let client = Polygon::default().with_key("your_api_key");
/// let data = aggs::aggregates(&client, "AAPL", 1, "day", "2023-01-01", "2023-01-31").get().await?;
/// # Ok(())
/// # }
/// ```
/// Get the previous day's open, high, low, and close (OHLC) for a stock
///
/// # Arguments
///
/// * `client` - Reference to the Polygon client
/// * `ticker` - The ticker symbol
///
/// # Example
///
/// ```no_run
/// use polygon::Polygon;
/// use polygon::rest::raw::aggs;
/// use polygon::query::Execute as _;
///
/// # #[tokio::main]
/// # async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let client = Polygon::default().with_key("your_api_key");
/// let data = aggs::previous_close(&client, "AAPL").get().await?;
/// # Ok(())
/// # }
/// ```
/// Get the daily open, high, low, and close (OHLC) for the entire market
///
/// # Arguments
///
/// * `client` - Reference to the Polygon client
/// * `date` - The date for the aggregate window (YYYY-MM-DD)
///
/// # Example
///
/// ```no_run
/// use polygon::Polygon;
/// use polygon::rest::raw::aggs;
/// use polygon::query::Execute as _;
///
/// # #[tokio::main]
/// # async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let client = Polygon::default().with_key("your_api_key");
/// let data = aggs::grouped_daily(&client, "2023-01-09").get().await?;
/// # Ok(())
/// # }
/// ```
/// Get the open, close, and afterhours prices of a stock on a specific date
///
/// # Arguments
///
/// * `client` - Reference to the Polygon client
/// * `ticker` - The ticker symbol
/// * `date` - The date (YYYY-MM-DD)
///
/// # Example
///
/// ```no_run
/// use polygon::Polygon;
/// use polygon::rest::raw::aggs;
/// use polygon::query::Execute as _;
///
/// # #[tokio::main]
/// # async fn main() -> Result<(), Box<dyn std::error::Error>> {
/// let client = Polygon::default().with_key("your_api_key");
/// let data = aggs::daily_open_close(&client, "AAPL", "2023-01-09").get().await?;
/// # Ok(())
/// # }
/// ```