CatPtain commited on
Commit
e46085b
·
verified ·
1 Parent(s): dd64d53

Upload 17 files

Browse files
Files changed (17) hide show
  1. openbb_platform/providers/alpha_vantage/README.md +13 -0
  2. openbb_platform/providers/alpha_vantage/__init__.py +1 -0
  3. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py +26 -0
  4. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/__init__.py +1 -0
  5. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py +308 -0
  6. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/historical_eps.py +160 -0
  7. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/py.typed +0 -0
  8. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/__init__.py +1 -0
  9. openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py +99 -0
  10. openbb_platform/providers/alpha_vantage/poetry.lock +0 -0
  11. openbb_platform/providers/alpha_vantage/pyproject.toml +19 -0
  12. openbb_platform/providers/alpha_vantage/tests/__init__.py +1 -0
  13. openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher_urllib3_v1.yaml +316 -0
  14. openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher_urllib3_v2.yaml +316 -0
  15. openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_historical_eps_fetcher_urllib3_v1.yaml +193 -0
  16. openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_historical_eps_fetcher_urllib3_v2.yaml +195 -0
  17. openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py +48 -0
openbb_platform/providers/alpha_vantage/README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # OpenBB Alpha Vantage Provider
2
+
3
+ This extension integrates the [Alpha Vantage](https://www.alphavantage.co/) data provider into the OpenBB Platform.
4
+
5
+ ## Installation
6
+
7
+ To install the extension:
8
+
9
+ ```bash
10
+ pip install openbb-alpha-vantage
11
+ ```
12
+
13
+ Documentation available [here](https://docs.openbb.co/platform/developer_guide/contributing).
openbb_platform/providers/alpha_vantage/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Alpha Vantage Provider."""
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/__init__.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Alpha Vantage Provider module."""
2
+
3
+ from openbb_alpha_vantage.models.equity_historical import AVEquityHistoricalFetcher
4
+ from openbb_alpha_vantage.models.historical_eps import AVHistoricalEpsFetcher
5
+ from openbb_core.provider.abstract.provider import Provider
6
+
7
+ alpha_vantage_provider = Provider(
8
+ name="alpha_vantage",
9
+ website="https://www.alphavantage.co",
10
+ description="""Alpha Vantage provides realtime and historical
11
+ financial market data through a set of powerful and developer-friendly data APIs
12
+ and spreadsheets. From traditional asset classes (e.g., stocks, ETFs, mutual funds)
13
+ to economic indicators, from foreign exchange rates to commodities,
14
+ from fundamental data to technical indicators, Alpha Vantage
15
+ is your one-stop-shop for enterprise-grade global market data delivered through
16
+ cloud-based APIs, Excel, and Google Sheets. """,
17
+ credentials=["api_key"],
18
+ fetcher_dict={
19
+ "EquityHistorical": AVEquityHistoricalFetcher,
20
+ "HistoricalEps": AVHistoricalEpsFetcher,
21
+ "EtfHistorical": AVEquityHistoricalFetcher,
22
+ },
23
+ repr_name="Alpha Vantage",
24
+ deprecated_credentials={"API_KEY_ALPHAVANTAGE": "alpha_vantage_api_key"},
25
+ instructions='Go to: https://www.alphavantage.co/support/#api-key\n\n![AlphaVantage](https://user-images.githubusercontent.com/46355364/207820936-46c2ba00-81ff-4cd3-98a4-4fa44412996f.png)\n\nFill out the form, pass Captcha, and click on, "GET FREE API KEY".', # noqa: E501 pylint: disable=line-too-long
26
+ )
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Alpha Vantage models."""
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/equity_historical.py ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Alpha Vantage Equity Historical Price Model."""
2
+
3
+ # pylint: disable=unused-argument
4
+
5
+ from datetime import datetime
6
+ from typing import Any, Dict, List, Literal, Optional
7
+ from warnings import warn
8
+
9
+ from openbb_core.provider.abstract.fetcher import Fetcher
10
+ from openbb_core.provider.standard_models.equity_historical import (
11
+ EquityHistoricalData,
12
+ EquityHistoricalQueryParams,
13
+ )
14
+ from openbb_core.provider.utils.descriptions import (
15
+ DATA_DESCRIPTIONS,
16
+ QUERY_DESCRIPTIONS,
17
+ )
18
+ from pydantic import (
19
+ Field,
20
+ NonNegativeFloat,
21
+ PositiveFloat,
22
+ )
23
+
24
+
25
+ class AVEquityHistoricalQueryParams(EquityHistoricalQueryParams):
26
+ """Alpha Vantage Equity Historical Price Query.
27
+
28
+ Source: https://www.alphavantage.co/documentation/#time-series-data
29
+ """
30
+
31
+ __json_schema_extra__ = {
32
+ "symbol": {"multiple_items_allowed": True},
33
+ "interval": {"choices": ["1m", "5m", "15m", "30m", "60m", "1d", "1W", "1M"]},
34
+ }
35
+
36
+ interval: Literal["1m", "5m", "15m", "30m", "60m", "1d", "1W", "1M"] = Field(
37
+ default="1d",
38
+ description=QUERY_DESCRIPTIONS.get("interval", ""),
39
+ )
40
+ adjustment: Literal["splits_only", "splits_and_dividends", "unadjusted"] = Field(
41
+ description="The adjustment factor to apply. 'splits_only' is not supported for intraday data.",
42
+ default="splits_only",
43
+ )
44
+ extended_hours: bool = Field(
45
+ description="Include Pre and Post market data.",
46
+ default=False,
47
+ )
48
+
49
+
50
+ class AVEquityHistoricalData(EquityHistoricalData):
51
+ """Alpha Vantage Equity Historical Price Data."""
52
+
53
+ __alias_dict__ = {
54
+ "adj_close": "adjusted_close",
55
+ "dividend": "dividend_amount",
56
+ "split_ratio": "split_factor",
57
+ }
58
+
59
+ adj_close: Optional[PositiveFloat] = Field(
60
+ default=None, description=DATA_DESCRIPTIONS.get("adj_close", "")
61
+ )
62
+ dividend: Optional[NonNegativeFloat] = Field(
63
+ default=None,
64
+ description="Dividend amount, if a dividend was paid.",
65
+ )
66
+ split_ratio: Optional[NonNegativeFloat] = Field(
67
+ default=None,
68
+ description="Split coefficient, if a split occurred.",
69
+ )
70
+
71
+
72
+ class AVEquityHistoricalFetcher(
73
+ Fetcher[
74
+ AVEquityHistoricalQueryParams,
75
+ List[AVEquityHistoricalData],
76
+ ]
77
+ ):
78
+ """Transform the query, extract and transform the data from the AlphaVantage endpoints."""
79
+
80
+ @staticmethod
81
+ def transform_query(params: Dict[str, Any]) -> AVEquityHistoricalQueryParams:
82
+ """Transform the query."""
83
+ # pylint: disable=import-outside-toplevel
84
+ from dateutil.relativedelta import relativedelta
85
+
86
+ transformed_params = params
87
+
88
+ now = datetime.now().date()
89
+ if params.get("start_date") is None:
90
+ transformed_params["start_date"] = now - relativedelta(years=1)
91
+
92
+ if params.get("end_date") is None:
93
+ transformed_params["end_date"] = now
94
+
95
+ return AVEquityHistoricalQueryParams(**transformed_params)
96
+
97
+ @staticmethod
98
+ async def aextract_data(
99
+ query: AVEquityHistoricalQueryParams,
100
+ credentials: Optional[Dict[str, str]],
101
+ **kwargs: Any,
102
+ ) -> List[Dict]:
103
+ """Return the raw data from the Alpha Vantage endpoint."""
104
+ # pylint: disable=import-outside-toplevel
105
+ import asyncio # noqa
106
+ from io import BytesIO # noqa
107
+ from openbb_alpha_vantage.utils.helpers import ( # noqa
108
+ INTERVALS_DICT,
109
+ calculate_adjusted_prices,
110
+ get_interval,
111
+ )
112
+ from openbb_core.provider.utils.helpers import ( # noqa
113
+ amake_request,
114
+ amake_requests,
115
+ get_querystring,
116
+ )
117
+ from pandas import date_range, read_csv, to_datetime # noqa
118
+
119
+ api_key = credentials.get("alpha_vantage_api_key") if credentials else ""
120
+ intraday = False
121
+ interval = get_interval(query.interval)
122
+ query_str = get_querystring(
123
+ query.model_dump(by_alias=True),
124
+ [
125
+ "start_date",
126
+ "end_date",
127
+ "interval",
128
+ "symbol",
129
+ "adjustment",
130
+ "extended_hours",
131
+ ],
132
+ )
133
+
134
+ function = INTERVALS_DICT[query.interval[-1]]
135
+
136
+ if query.adjustment != "unadjusted":
137
+ function += "_ADJUSTED"
138
+ query_str += f"&function={function}&outputsize=full&datatype=csv"
139
+
140
+ if "INTRADAY" in function:
141
+ query_str += f"&interval={interval}&extended_hours={str(query.extended_hours).lower()}"
142
+ intraday = True
143
+
144
+ results = []
145
+
146
+ async def callback(response, _):
147
+ """Use callback function to process the response."""
148
+ try:
149
+ result = await response.json()
150
+ if "Information" in result:
151
+ warn(str(result.get("Information")))
152
+ except Exception as _:
153
+ # TODO: This is hacky, find a better solution.
154
+ return await response.read()
155
+ return await response.read()
156
+
157
+ async def intraday_callback(response, _):
158
+ """Use callback function to process the intraday response."""
159
+ symbol = response.url.query.get("symbol", None)
160
+ data = await response.read()
161
+ if data:
162
+ df = read_csv(BytesIO(data))
163
+ if len(df) > 0:
164
+ df.rename(
165
+ columns={
166
+ "timestamp": "date",
167
+ },
168
+ inplace=True,
169
+ )
170
+ if len(query.symbol.split(",")) > 1:
171
+ df.loc[:, "symbol"] = symbol
172
+ results.extend(df.to_dict("records"))
173
+ if not data:
174
+ warn(f"Symbol Error: No data found for {symbol}")
175
+ return results
176
+
177
+ async def get_one(symbol, intraday: bool = False):
178
+ """Get data for one symbol."""
179
+ if intraday is True:
180
+ adjusted = query.adjustment != "unadjusted"
181
+ if query.adjustment == "splits_only":
182
+ warn(
183
+ "Intraday does not support 'splits_only'. Using 'splits_and_dividends' instead."
184
+ )
185
+ url = (
186
+ f"https://www.alphavantage.co/query?{query_str.replace('_ADJUSTED', '')}"
187
+ f"&symbol={symbol}&adjusted={str(adjusted).lower()}"
188
+ )
189
+ dates = (
190
+ date_range(start=query.start_date, end=query.end_date)
191
+ .strftime("%Y-%m")
192
+ .unique()
193
+ .tolist()
194
+ )
195
+ urls = [f"{url}&month={date}&apikey={api_key}" for date in dates]
196
+ return await amake_requests(urls, response_callback=intraday_callback)
197
+
198
+ # We will resample the intervals ourselves to get the correct data.
199
+ url = (
200
+ f"https://www.alphavantage.co/query?{query_str.replace('MONTHLY', 'DAILY').replace('WEEKLY', 'DAILY')}"
201
+ f"&symbol={symbol}&apikey={api_key}"
202
+ )
203
+ result = await amake_request(url, response_callback=callback)
204
+ if not result:
205
+ warn(f"Symbol Error: No data found for {symbol}")
206
+ if result:
207
+ data = read_csv(BytesIO(result)) # type: ignore
208
+ if len(data) > 0:
209
+ data.rename(
210
+ columns={
211
+ "timestamp": "date",
212
+ "dividend_amount": "dividend",
213
+ "adjusted close": "adj_close",
214
+ "dividend amount": "dividend",
215
+ "adjusted_close": "adj_close",
216
+ "split_coefficient": "split_factor",
217
+ },
218
+ inplace=True,
219
+ )
220
+ if "date" in data.columns:
221
+ data["date"] = data["date"].apply(to_datetime)
222
+ data.set_index("date", inplace=True)
223
+ # The returned data when 'adjusted=true' from the API does not return a usable OHLCV data set.
224
+ # We need to calculate the adjusted prices manually.
225
+ if query.adjustment != "unadjusted":
226
+ temp = data.copy()
227
+ temp["dividend_factor"] = (
228
+ temp["close"] - temp["dividend"]
229
+ ) / temp["close"]
230
+ temp["volume_factor"] = temp["split_factor"]
231
+ temp["split_factor"] = 1 / temp["split_factor"]
232
+ adj_cols = ["open", "high", "low", "close", "volume"]
233
+ divs = query.adjustment == "splits_and_dividends"
234
+ for col in adj_cols:
235
+ divs = False if col == "volume" else divs
236
+ if col in temp.columns:
237
+ temp = calculate_adjusted_prices(temp, col, divs)
238
+ temp["adj_dividend"] = (
239
+ temp["adj_close"] * (1 - temp["dividend_factor"])
240
+ if query.adjustment == "splits_only"
241
+ else temp["close"] * (1 - temp["dividend_factor"])
242
+ )
243
+ data["open"] = round(temp["adj_open"], 4)
244
+ data["high"] = round(temp["adj_high"], 4)
245
+ data["low"] = round(temp["adj_low"], 4)
246
+ data["close"] = round(temp["adj_close"], 4)
247
+ data["volume"] = round(temp["adj_volume"]).astype(int)
248
+ data["dividend"] = round(temp["adj_dividend"], 4)
249
+ data.drop(columns=["adj_close"], inplace=True)
250
+ # Resample the daily data for the interval requested.
251
+ freq = ""
252
+ agg_dict = {
253
+ "open": "first",
254
+ "high": "max",
255
+ "low": "min",
256
+ "close": "last",
257
+ "volume": "sum",
258
+ "dividend": "sum",
259
+ "split_factor": "prod",
260
+ }
261
+ if query.adjustment == "unadjusted":
262
+ agg_dict.pop("dividend")
263
+ agg_dict.pop("split_factor")
264
+ if query.interval == "1M":
265
+ freq = "M"
266
+ if query.interval == "1W":
267
+ freq = "W-FRI"
268
+ if freq in ["M", "W-FRI"]:
269
+ data = data.resample(freq).agg({**agg_dict})
270
+ if len(query.symbol.split(",")) > 1:
271
+ data.loc[:, "symbol"] = symbol
272
+
273
+ data = data.reset_index()
274
+ if intraday is False:
275
+ data["date"] = data["date"].dt.date
276
+
277
+ results.extend(data.to_dict("records"))
278
+
279
+ return results
280
+
281
+ tasks = [get_one(symbol, intraday) for symbol in query.symbol.split(",")]
282
+ await asyncio.gather(*tasks)
283
+
284
+ return results
285
+
286
+ @staticmethod
287
+ def transform_data(
288
+ query: AVEquityHistoricalQueryParams, data: List[Dict], **kwargs: Any
289
+ ) -> List[AVEquityHistoricalData]:
290
+ """Transform the data to the standard format."""
291
+ # pylint: disable=import-outside-toplevel
292
+ from pandas import to_datetime
293
+
294
+ if data == []:
295
+ return []
296
+ if "{" in data[0]:
297
+ warn(str(data[0]["{"].strip()))
298
+ return []
299
+ return [
300
+ AVEquityHistoricalData.model_validate(d)
301
+ for d in sorted(
302
+ data,
303
+ key=(
304
+ lambda x: (x["date"], x["symbol"]) if "symbol" in x else x["date"]
305
+ ),
306
+ )
307
+ if query.start_date <= to_datetime(d["date"]).date() <= query.end_date
308
+ ]
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/models/historical_eps.py ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """AlphaVantage Historical EPS Model."""
2
+
3
+ # pylint: disable=unused-argument
4
+
5
+ from datetime import date as dateType
6
+ from typing import Any, Dict, List, Literal, Optional, Union
7
+ from warnings import warn
8
+
9
+ from openbb_core.provider.abstract.fetcher import Fetcher
10
+ from openbb_core.provider.standard_models.historical_eps import (
11
+ HistoricalEpsData,
12
+ HistoricalEpsQueryParams,
13
+ )
14
+ from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS
15
+ from openbb_core.provider.utils.errors import EmptyDataError
16
+ from pydantic import Field, field_validator
17
+
18
+
19
+ class AlphaVantageHistoricalEpsQueryParams(HistoricalEpsQueryParams):
20
+ """
21
+ AlphaVantage Historical EPS Query Params.
22
+
23
+ Source: https://www.alphavantage.co/documentation/#earnings
24
+ """
25
+
26
+ __json_schema_extra__ = {"symbol": {"multiple_items_allowed": True}}
27
+
28
+ period: Literal["annual", "quarter"] = Field(
29
+ default="quarter", description=QUERY_DESCRIPTIONS.get("period", "")
30
+ )
31
+ limit: Optional[int] = Field(
32
+ default=None, description=QUERY_DESCRIPTIONS.get("limit", "")
33
+ )
34
+
35
+
36
+ class AlphaVantageHistoricalEpsData(HistoricalEpsData):
37
+ """AlphaVantage Historical EPS Data."""
38
+
39
+ __alias_dict__ = {
40
+ "date": "fiscalDateEnding",
41
+ "eps_actual": "reportedEPS",
42
+ "eps_estimated": "estimatedEPS",
43
+ "surprise_percent": "surprisePercentage",
44
+ "reported_date": "reportedDate",
45
+ }
46
+
47
+ surprise: Optional[float] = Field(
48
+ default=None,
49
+ description="Surprise in EPS (Actual - Estimated).",
50
+ )
51
+ surprise_percent: Optional[Union[float, str]] = Field(
52
+ default=None,
53
+ description="EPS surprise as a normalized percent.",
54
+ json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
55
+ )
56
+ reported_date: Optional[dateType] = Field(
57
+ default=None,
58
+ description="Date of the earnings report.",
59
+ )
60
+
61
+ @field_validator(
62
+ "eps_estimated",
63
+ "eps_actual",
64
+ "surprise",
65
+ mode="before",
66
+ check_fields=False,
67
+ )
68
+ @classmethod
69
+ def validate_null(cls, v):
70
+ """Clean None returned as a string."""
71
+ return None if str(v).strip() == "None" or str(v) == "0" else v
72
+
73
+ @field_validator("surprise_percent", mode="before", check_fields=False)
74
+ @classmethod
75
+ def normalize_percent(cls, v):
76
+ """Normalize percent values."""
77
+ if isinstance(v, str) and v == "None" or str(v) == "0":
78
+ return None
79
+ return float(v) / 100
80
+
81
+
82
+ class AVHistoricalEpsFetcher(
83
+ Fetcher[AlphaVantageHistoricalEpsQueryParams, List[AlphaVantageHistoricalEpsData]]
84
+ ):
85
+ """AlphaVantage Historical EPS Fetcher."""
86
+
87
+ @staticmethod
88
+ def transform_query(params: Dict[str, Any]) -> AlphaVantageHistoricalEpsQueryParams:
89
+ """Transform the query params."""
90
+ return AlphaVantageHistoricalEpsQueryParams(**params)
91
+
92
+ @staticmethod
93
+ async def aextract_data(
94
+ query: AlphaVantageHistoricalEpsQueryParams,
95
+ credentials: Optional[Dict[str, str]],
96
+ **kwargs: Any,
97
+ ) -> List[Dict]:
98
+ """Return the raw data from the AlphaVantage endpoint."""
99
+ # pylint: disable=import-outside-toplevel
100
+ from openbb_core.provider.utils.helpers import (
101
+ ClientResponse,
102
+ ClientSession,
103
+ amake_requests,
104
+ )
105
+
106
+ api_key = credentials.get("alpha_vantage_api_key") if credentials else ""
107
+ BASE_URL = "https://www.alphavantage.co/query?function=EARNINGS&"
108
+ # We are allowing multiple symbols to be passed in the query, so we need to handle that.
109
+ symbols = query.symbol.split(",")
110
+ urls = [f"{BASE_URL}symbol={symbol}&apikey={api_key}" for symbol in symbols]
111
+ results: List = []
112
+ messages: List = []
113
+
114
+ # We need to make a custom callback function for this async request.
115
+ async def response_callback(response: ClientResponse, _: ClientSession):
116
+ """Response callback function."""
117
+ symbol = response.url.query.get("symbol", None)
118
+ data = await response.json()
119
+ target = (
120
+ "annualEarnings" if query.period == "annual" else "quarterlyEarnings"
121
+ )
122
+ message = data.get("Information", "") # type: ignore
123
+ if message:
124
+ messages.append(message)
125
+ warn(f"Symbol Error for {symbol}: {message}")
126
+ result: List = []
127
+ # If data is returned, append it to the results list.
128
+ if data:
129
+ result = [
130
+ {
131
+ "symbol": symbol,
132
+ **d,
133
+ }
134
+ for d in data.get(target, []) # type: ignore
135
+ ]
136
+ if query.limit is not None:
137
+ results.extend(result[: query.limit])
138
+ else:
139
+ results.extend(result)
140
+ # If no data is returned, raise a warning and move on to the next symbol.
141
+ if not data:
142
+ warn(f"Symbol Error: No data found for {symbol}")
143
+
144
+ await amake_requests(urls, response_callback, **kwargs) # type: ignore
145
+
146
+ if not results:
147
+ raise EmptyDataError(f"No data was returned -> \n{messages[-1]}")
148
+
149
+ return results
150
+
151
+ @staticmethod
152
+ def transform_data(
153
+ query: AlphaVantageHistoricalEpsQueryParams,
154
+ data: List[Dict],
155
+ **kwargs: Any,
156
+ ) -> List[AlphaVantageHistoricalEpsData]:
157
+ """Transform the raw data into the standard model."""
158
+ if not data:
159
+ raise EmptyDataError("No data found.")
160
+ return [AlphaVantageHistoricalEpsData.model_validate(d) for d in data]
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/py.typed ADDED
File without changes
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Alpha Vantage utilities."""
openbb_platform/providers/alpha_vantage/openbb_alpha_vantage/utils/helpers.py ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Alpha Vantage Helpers Module."""
2
+
3
+ from datetime import datetime
4
+ from typing import TYPE_CHECKING, Any, Dict, List
5
+
6
+ if TYPE_CHECKING:
7
+ from pandas import DataFrame
8
+
9
+ INTERVALS_DICT = {
10
+ "m": "TIME_SERIES_INTRADAY",
11
+ "d": "TIME_SERIES_DAILY",
12
+ "W": "TIME_SERIES_WEEKLY",
13
+ "M": "TIME_SERIES_MONTHLY",
14
+ }
15
+
16
+
17
+ def get_interval(value: str) -> str:
18
+ """Get the intervals for the Alpha Vantage API."""
19
+ intervals = {
20
+ "m": "min",
21
+ "d": "day",
22
+ "W": "week",
23
+ "M": "month",
24
+ }
25
+
26
+ return f"{value[:-1]}{intervals[value[-1]]}"
27
+
28
+
29
+ def extract_key_name(key):
30
+ """Extract the alphabetical part of the key using regex."""
31
+ # pylint: disable=import-outside-toplevel
32
+ import re
33
+
34
+ match = re.search(r"\d+\.\s+([a-z]+)", key, re.I)
35
+ return match.group(1) if match else key
36
+
37
+
38
+ def filter_by_dates(
39
+ data: List[Dict[str, Any]], start_date: datetime, end_date: datetime
40
+ ) -> List[Dict[str, Any]]:
41
+ """Filter the data by start and end dates."""
42
+ return list(
43
+ filter(
44
+ lambda x: start_date
45
+ <= datetime.strptime(x["date"], "%Y-%m-%d").date()
46
+ <= end_date,
47
+ data,
48
+ )
49
+ )
50
+
51
+
52
+ def calculate_adjusted_prices(
53
+ df: "DataFrame", column: str, dividends: bool = False
54
+ ) -> "DataFrame":
55
+ """Calculate the split-adjusted prices, or split and dividend adjusted prices.
56
+
57
+ Parameters
58
+ ----------
59
+ df: DataFrame
60
+ DataFrame with unadjusted OHLCV values + split_factor + dividend
61
+ column: str
62
+ The column name to adjust.
63
+ dividends: bool
64
+ Whether to adjust for both splits and dividends. Default is split-adjusted only.
65
+
66
+ Returns
67
+ -------
68
+ DataFrame
69
+ DataFrame with adjusted prices.
70
+ """
71
+ # pylint: disable=import-outside-toplevel
72
+ from numpy import zeros
73
+
74
+ df = df.copy()
75
+ adj_column = "adj_" + column
76
+
77
+ # Reverse the DataFrame order, sorting by date in descending order
78
+ df.sort_index(ascending=False, inplace=True)
79
+
80
+ price_col = df[column]
81
+ split_col = df["volume_factor"] if column == "volume" else df["split_factor"]
82
+ dividend_col = df["dividend"] if dividends else zeros(len(price_col))
83
+ adj_price_col = zeros(len(df.index))
84
+ adj_price_col[0] = price_col.iloc[0]
85
+
86
+ for i in range(1, len(price_col)):
87
+ adj_price_col[i] = adj_price_col[i - 1] + adj_price_col[i - 1] * (
88
+ (
89
+ (price_col.iloc[i] * split_col.iloc[i - 1])
90
+ - price_col.iloc[i - 1]
91
+ - dividend_col[i - 1]
92
+ )
93
+ / price_col.iloc[i - 1]
94
+ )
95
+ df[adj_column] = adj_price_col
96
+
97
+ # Change the DataFrame order back to dates ascending
98
+ df.sort_index(ascending=True, inplace=True)
99
+ return df
openbb_platform/providers/alpha_vantage/poetry.lock ADDED
The diff for this file is too large to render. See raw diff
 
openbb_platform/providers/alpha_vantage/pyproject.toml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [tool.poetry]
2
+ name = "openbb-alpha-vantage"
3
+ version = "1.4.1"
4
+ description = "Alpha Vantage extension for OpenBB"
5
+ authors = ["OpenBB Team <hello@openbb.co>"]
6
+ license = "AGPL-3.0-only"
7
+ readme = "README.md"
8
+ packages = [{ include = "openbb_alpha_vantage" }]
9
+
10
+ [tool.poetry.dependencies]
11
+ python = ">=3.9.21,<3.13"
12
+ openbb-core = "^1.4.6"
13
+
14
+ [build-system]
15
+ requires = ["poetry-core"]
16
+ build-backend = "poetry.core.masonry.api"
17
+
18
+ [tool.poetry.plugins."openbb_provider_extension"]
19
+ alpha_vantage = "openbb_alpha_vantage:alpha_vantage_provider"
openbb_platform/providers/alpha_vantage/tests/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Alpha Vantage tests."""
openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher_urllib3_v1.yaml ADDED
@@ -0,0 +1,316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ interactions:
2
+ - request:
3
+ body: null
4
+ headers:
5
+ Accept:
6
+ - application/json
7
+ Accept-Encoding:
8
+ - gzip, deflate
9
+ Connection:
10
+ - keep-alive
11
+ method: GET
12
+ uri: https://www.alphavantage.co/query?adjusted=true&apikey=MOCK_API_KEY&datatype=csv&extended_hours=false&function=TIME_SERIES_INTRADAY&interval=15min&month=2023-01&outputsize=full&symbol=AAPL
13
+ response:
14
+ body:
15
+ string: "timestamp,open,high,low,close,volume\r\n2023-01-31 15:45:00,142.4710,143.3640,142.1380,143.3200,6111148\r\n2023-01-31
16
+ 15:30:00,142.3220,142.6090,142.3120,142.4800,1466236\r\n2023-01-31 15:15:00,142.7790,142.7980,142.2770,142.3310,1409505\r\n2023-01-31
17
+ 15:00:00,142.8880,143.0660,142.6600,142.7730,1206452\r\n2023-01-31 14:45:00,142.9580,143.0260,142.8230,142.8830,852602\r\n2023-01-31
18
+ 14:30:00,142.8490,143.0160,142.8040,142.9720,856467\r\n2023-01-31 14:15:00,142.7340,142.9170,142.6250,142.8480,705206\r\n2023-01-31
19
+ 14:00:00,142.6450,142.9370,142.5450,142.7440,951014\r\n2023-01-31 13:45:00,142.4610,142.7680,142.4160,142.6540,909265\r\n2023-01-31
20
+ 13:30:00,142.4410,142.5590,142.3170,142.4650,611083\r\n2023-01-31 13:15:00,142.4560,142.4700,142.1780,142.4410,1006968\r\n2023-01-31
21
+ 13:00:00,142.5610,142.6360,142.3270,142.4550,655584\r\n2023-01-31 12:45:00,142.5460,142.6880,142.4560,142.5600,630828\r\n2023-01-31
22
+ 12:30:00,142.5410,142.6680,142.4160,142.5550,590808\r\n2023-01-31 12:15:00,142.3220,142.6680,142.2620,142.5600,974220\r\n2023-01-31
23
+ 12:00:00,142.2820,142.3950,141.9990,142.3070,929554\r\n2023-01-31 11:45:00,142.3520,142.5140,142.1780,142.2850,844479\r\n2023-01-31
24
+ 11:30:00,142.5560,142.6680,142.2970,142.3260,969895\r\n2023-01-31 11:15:00,142.2330,142.6190,142.1280,142.5500,1187882\r\n2023-01-31
25
+ 11:00:00,142.1930,142.4600,142.0090,142.2470,1107755\r\n2023-01-31 10:45:00,142.1600,142.3210,141.8200,142.1870,1388137\r\n2023-01-31
26
+ 10:30:00,142.2130,142.3800,141.9790,142.1670,1226566\r\n2023-01-31 10:15:00,142.1040,142.3700,141.6520,142.1970,1825953\r\n2023-01-31
27
+ 10:00:00,141.6770,142.2110,141.4330,142.1080,2150277\r\n2023-01-31 09:45:00,141.7070,142.7780,141.4030,141.6760,2822577\r\n2023-01-31
28
+ 09:30:00,141.7160,142.4800,141.3040,141.7110,4394928\r\n2023-01-30 15:45:00,142.4070,142.5490,141.8700,142.0580,4775426\r\n2023-01-30
29
+ 15:30:00,142.0840,142.4600,141.9990,142.4110,1792886\r\n2023-01-30 15:15:00,142.0840,142.1620,141.9490,142.0830,1765526\r\n2023-01-30
30
+ 15:00:00,142.2130,142.4900,142.0490,142.0780,1650201\r\n2023-01-30 14:45:00,142.2280,142.2810,141.9010,142.2170,1669205\r\n2023-01-30
31
+ 14:30:00,142.1780,142.5460,142.0890,142.2320,1432781\r\n2023-01-30 14:15:00,142.4070,142.4350,142.0490,142.1770,1464175\r\n2023-01-30
32
+ 14:00:00,142.3920,142.6190,142.2970,142.4110,998241\r\n2023-01-30 13:45:00,142.1930,142.4500,142.0790,142.4010,1198176\r\n2023-01-30
33
+ 13:30:00,142.5110,142.5190,142.0290,142.1970,1309283\r\n2023-01-30 13:15:00,142.5110,142.8470,142.4260,142.5230,1064570\r\n2023-01-30
34
+ 13:00:00,142.4310,142.6780,142.3270,142.5200,875111\r\n2023-01-30 12:45:00,142.6400,142.6490,142.1880,142.4410,1400651\r\n2023-01-30
35
+ 12:30:00,142.6950,142.8120,142.4960,142.6440,1181401\r\n2023-01-30 12:15:00,142.9780,142.9910,142.4910,142.6990,1609852\r\n2023-01-30
36
+ 12:00:00,143.1960,143.2840,142.1680,142.9820,1400170\r\n2023-01-30 11:45:00,142.8780,143.2150,142.5160,143.2090,1185883\r\n2023-01-30
37
+ 11:30:00,142.8880,143.2540,142.7840,142.8840,1110391\r\n2023-01-30 11:15:00,142.9680,143.3440,142.7240,142.9020,1375517\r\n2023-01-30
38
+ 11:00:00,143.0080,143.1850,142.7440,142.9770,1391660\r\n2023-01-30 10:45:00,142.6300,143.0560,142.5850,143.0170,1923936\r\n2023-01-30
39
+ 10:30:00,143.2060,143.2540,142.3860,142.6560,2033741\r\n2023-01-30 10:15:00,143.6230,143.6520,142.8630,143.2100,2312830\r\n2023-01-30
40
+ 10:00:00,144.1890,144.3670,143.5290,143.6180,1980967\r\n2023-01-30 09:45:00,143.7520,144.2870,143.1820,144.1990,2799333\r\n2023-01-30
41
+ 09:30:00,143.9660,144.5650,143.5190,143.7380,4153218\r\n2023-01-27 15:45:00,145.6890,145.7180,144.8000,144.9780,4867213\r\n2023-01-27
42
+ 15:30:00,145.9470,146.2340,145.6640,145.7230,2420991\r\n2023-01-27 15:15:00,145.8880,145.9760,145.6140,145.9620,1956807\r\n2023-01-27
43
+ 15:00:00,145.8930,146.1650,145.8130,145.8920,1674321\r\n2023-01-27 14:45:00,145.6790,146.0260,145.6350,145.9020,1811395\r\n2023-01-27
44
+ 14:30:00,145.7780,145.8470,145.5050,145.6830,1394494\r\n2023-01-27 14:15:00,145.5150,145.9560,145.5050,145.7740,1614957\r\n2023-01-27
45
+ 14:00:00,145.3510,145.5340,145.2470,145.5190,1092587\r\n2023-01-27 13:45:00,145.3610,145.4300,145.1870,145.3560,913236\r\n2023-01-27
46
+ 13:30:00,145.2020,145.5690,145.1570,145.3680,1454188\r\n2023-01-27 13:15:00,145.3170,145.3300,144.9880,145.1920,957452\r\n2023-01-27
47
+ 13:00:00,145.3610,145.4730,145.0930,145.3260,1005769\r\n2023-01-27 12:45:00,145.5600,145.6480,145.3420,145.3760,1052779\r\n2023-01-27
48
+ 12:30:00,145.3790,145.8320,145.1670,145.5560,1618834\r\n2023-01-27 12:15:00,145.3710,145.8960,145.3360,145.3680,2099327\r\n2023-01-27
49
+ 12:00:00,145.0530,145.4790,144.9190,145.3760,1804374\r\n2023-01-27 11:45:00,144.8910,145.2010,144.7600,145.0580,1691657\r\n2023-01-27
50
+ 11:30:00,144.2690,145.1020,144.1740,144.8990,2256364\r\n2023-01-27 11:15:00,143.9210,144.3670,143.9060,144.2630,1467439\r\n2023-01-27
51
+ 11:00:00,143.7130,144.1090,143.6180,143.9250,1730147\r\n2023-01-27 10:45:00,143.9460,143.9660,143.3900,143.6970,1896399\r\n2023-01-27
52
+ 10:30:00,144.4380,144.5410,143.8560,143.9450,1922267\r\n2023-01-27 10:15:00,144.1700,144.5160,143.8150,144.4420,2081938\r\n2023-01-27
53
+ 10:00:00,143.7230,144.4960,143.3990,144.1700,2810931\r\n2023-01-27 09:45:00,143.0670,144.2280,143.0620,143.7170,3425862\r\n2023-01-27
54
+ 09:30:00,142.2030,143.5720,142.0980,143.0810,3713990\r\n2023-01-26 15:45:00,142.4960,143.0660,142.3370,142.9420,4251294\r\n2023-01-26
55
+ 15:30:00,142.5360,142.6980,142.4360,142.4990,1378195\r\n2023-01-26 15:15:00,142.4530,142.7380,142.4060,142.5450,1175706\r\n2023-01-26
56
+ 15:00:00,142.5510,142.6190,142.2670,142.4550,962291\r\n2023-01-26 14:45:00,142.6000,142.7380,142.2970,142.5450,1092977\r\n2023-01-26
57
+ 14:30:00,142.5560,142.7880,142.4760,142.6000,1073885\r\n2023-01-26 14:15:00,142.4710,142.8600,142.3670,142.5550,1332790\r\n2023-01-26
58
+ 14:00:00,142.1730,142.5240,141.9490,142.4800,1239469\r\n2023-01-26 13:45:00,142.2530,142.4600,142.0390,142.1770,937106\r\n2023-01-26
59
+ 13:30:00,141.8950,142.3700,141.8900,142.2580,1131056\r\n2023-01-26 13:15:00,141.7460,141.9430,141.5720,141.8890,584464\r\n2023-01-26
60
+ 13:00:00,141.8450,142.0330,141.5130,141.7500,944902\r\n2023-01-26 12:45:00,141.7810,142.0530,141.6120,141.8400,985075\r\n2023-01-26
61
+ 12:30:00,141.8850,142.1120,141.7410,141.7800,744875\r\n2023-01-26 12:15:00,142.0240,142.0630,141.8300,141.8990,806807\r\n2023-01-26
62
+ 12:00:00,141.7060,142.3010,141.6810,142.0190,1289752\r\n2023-01-26 11:45:00,141.7360,141.7740,141.4980,141.7100,1008489\r\n2023-01-26
63
+ 11:30:00,141.3790,141.8240,141.2150,141.7400,1161425\r\n2023-01-26 11:15:00,141.6090,141.8940,140.9270,141.3930,1742592\r\n2023-01-26
64
+ 11:00:00,141.4180,141.7550,141.2440,141.6210,1386633\r\n2023-01-26 10:45:00,142.1950,142.4250,141.2840,141.4230,1650420\r\n2023-01-26
65
+ 10:30:00,142.5460,142.6780,141.9890,142.1870,1349288\r\n2023-01-26 10:15:00,142.1430,143.0160,142.1080,142.5500,2312979\r\n2023-01-26
66
+ 10:00:00,142.2820,142.4500,141.6910,142.1480,2328421\r\n2023-01-26 09:45:00,142.5410,142.8270,141.9490,142.2770,2821276\r\n2023-01-26
67
+ 09:30:00,142.1930,143.2740,141.8010,142.5540,4245796\r\n2023-01-25 15:45:00,140.6340,140.9200,140.3060,140.8860,3237880\r\n2023-01-25
68
+ 15:30:00,140.8680,140.9900,140.5490,140.6380,1771140\r\n2023-01-25 15:15:00,141.2690,141.3470,140.5590,140.8660,1936429\r\n2023-01-25
69
+ 15:00:00,140.8320,141.4670,140.8180,141.2690,2421977\r\n2023-01-25 14:45:00,140.6590,141.0100,140.5390,140.8270,1470841\r\n2023-01-25
70
+ 14:30:00,140.6340,140.7220,140.4000,140.6580,1164244\r\n2023-01-25 14:15:00,140.5690,141.0100,140.4900,140.6380,1611771\r\n2023-01-25
71
+ 14:00:00,140.1170,140.6120,139.9940,140.5680,1191679\r\n2023-01-25 13:45:00,140.0080,140.3720,139.9230,140.1210,1563186\r\n2023-01-25
72
+ 13:30:00,140.1170,140.2150,139.8840,140.0120,1159314\r\n2023-01-25 13:15:00,139.8730,140.1650,139.8440,140.1210,1254572\r\n2023-01-25
73
+ 13:00:00,139.4820,139.9170,139.4460,139.8830,1183834\r\n2023-01-25 12:45:00,139.5010,139.5600,139.3180,139.4860,627376\r\n2023-01-25
74
+ 12:30:00,139.2730,139.6790,139.1890,139.5060,851021\r\n2023-01-25 12:15:00,139.4020,139.5450,139.1690,139.2670,942255\r\n2023-01-25
75
+ 12:00:00,139.5230,139.7580,139.1590,139.4060,1523908\r\n2023-01-25 11:45:00,139.2090,139.8870,139.0590,139.5260,1828568\r\n2023-01-25
76
+ 11:30:00,139.1440,139.4800,138.9400,139.2080,1836959\r\n2023-01-25 11:15:00,138.8360,139.4800,138.6520,139.1480,2337626\r\n2023-01-25
77
+ 11:00:00,138.3640,138.8670,138.1950,138.8250,2253429\r\n2023-01-25 10:45:00,138.0370,138.5170,137.9170,138.3680,1814184\r\n2023-01-25
78
+ 10:30:00,138.8760,139.0530,137.8580,138.0380,2898756\r\n2023-01-25 10:15:00,138.7960,139.1520,138.5030,138.8700,1978515\r\n2023-01-25
79
+ 10:00:00,138.7670,139.5100,138.6720,138.8130,2455229\r\n2023-01-25 09:45:00,139.1540,139.8480,138.7420,138.7650,2785027\r\n2023-01-25
80
+ 09:30:00,139.9290,140.1360,138.5230,139.1680,5433804\r\n2023-01-24 15:45:00,141.1110,141.7550,140.9760,141.5320,3648415\r\n2023-01-24
81
+ 15:30:00,141.4580,141.4960,140.9320,141.1160,1630244\r\n2023-01-24 15:15:00,141.2730,141.5160,141.2290,141.4530,1194031\r\n2023-01-24
82
+ 15:00:00,141.4780,141.5960,141.2150,141.2840,1237871\r\n2023-01-24 14:45:00,141.5370,141.6450,141.3240,141.4770,1127294\r\n2023-01-24
83
+ 14:30:00,141.6970,141.8340,141.4930,141.5420,1114856\r\n2023-01-24 14:15:00,141.3870,141.7450,141.3440,141.6910,1147658\r\n2023-01-24
84
+ 14:00:00,141.6770,141.6950,141.2240,141.3890,1588811\r\n2023-01-24 13:45:00,142.1040,142.1720,141.6620,141.6860,1196879\r\n2023-01-24
85
+ 13:30:00,141.9450,142.1920,141.8020,142.1070,1808716\r\n2023-01-24 13:15:00,141.4530,141.9530,141.3340,141.9390,1330135\r\n2023-01-24
86
+ 13:00:00,141.4980,141.6160,141.0740,141.4520,1142190\r\n2023-01-24 12:45:00,141.3790,141.6840,141.3140,141.5020,946467\r\n2023-01-24
87
+ 12:30:00,141.7260,141.7350,141.3140,141.3930,1023572\r\n2023-01-24 12:15:00,141.5900,141.9040,141.5040,141.7350,1803709\r\n2023-01-24
88
+ 12:00:00,141.1250,141.6060,140.8370,141.5960,1393518\r\n2023-01-24 11:45:00,141.0810,141.2780,140.9760,141.1350,849995\r\n2023-01-24
89
+ 11:30:00,141.4880,141.5340,140.9360,141.0850,1372549\r\n2023-01-24 11:15:00,141.0410,141.5060,140.7880,141.4860,1584463\r\n2023-01-24
90
+ 11:00:00,141.2890,141.4370,140.9360,141.0450,1732817\r\n2023-01-24 10:45:00,140.7700,141.3470,140.6480,141.2880,1605822\r\n2023-01-24
91
+ 10:30:00,140.9370,141.2480,140.3160,140.7570,1972197\r\n2023-01-24 10:15:00,140.9220,141.3080,140.6580,140.9460,2067111\r\n2023-01-24
92
+ 10:00:00,140.4950,140.9800,140.1220,140.9510,2593950\r\n2023-01-24 09:45:00,140.8920,141.1690,140.4000,140.4840,2829536\r\n2023-01-24
93
+ 09:30:00,139.3480,140.9700,139.3380,140.9260,4358939\r\n2023-01-23 15:45:00,139.8190,140.3040,139.7350,140.1410,4645025\r\n2023-01-23
94
+ 15:30:00,139.6310,139.8960,139.4370,139.8240,1884649\r\n2023-01-23 15:15:00,139.7500,139.8620,139.3970,139.6300,1818166\r\n2023-01-23
95
+ 15:00:00,140.0180,140.0760,139.5260,139.7490,1990630\r\n2023-01-23 14:45:00,140.3450,140.3540,139.6490,140.0220,2453913\r\n2023-01-23
96
+ 14:30:00,140.8130,140.9900,140.2910,140.3450,1559522\r\n2023-01-23 14:15:00,140.8420,141.0200,140.6800,140.7970,1560035\r\n2023-01-23
97
+ 14:00:00,140.9910,141.0200,140.5390,140.8470,1642722\r\n2023-01-23 13:45:00,141.0860,141.3470,140.9070,140.9860,1484231\r\n2023-01-23
98
+ 13:30:00,141.2990,141.3670,141.0160,141.0880,1461935\r\n2023-01-23 13:15:00,141.1500,141.3970,141.1250,141.3030,1420401\r\n2023-01-23
99
+ 13:00:00,141.1800,141.5260,141.0260,141.1590,1908956\r\n2023-01-23 12:45:00,141.3990,141.5360,140.9660,141.1940,2187698\r\n2023-01-23
100
+ 12:30:00,141.4880,141.5560,141.2640,141.4080,1232067\r\n2023-01-23 12:15:00,141.3190,141.5960,141.2340,141.4850,1623032\r\n2023-01-23
101
+ 12:00:00,141.9250,141.9330,141.1850,141.3270,2063424\r\n2023-01-23 11:45:00,141.7060,142.3460,141.4630,141.9290,3303263\r\n2023-01-23
102
+ 11:30:00,141.3690,141.9040,141.2750,141.7010,2377490\r\n2023-01-23 11:15:00,141.1800,141.8340,141.0460,141.3730,3140109\r\n2023-01-23
103
+ 11:00:00,140.2460,141.4760,140.1520,141.1840,3848507\r\n2023-01-23 10:45:00,139.8890,140.5230,139.7890,140.2560,2573732\r\n2023-01-23
104
+ 10:30:00,139.5070,140.0810,139.5010,139.8930,2673807\r\n2023-01-23 10:15:00,138.7670,139.6890,138.7220,139.5130,2817622\r\n2023-01-23
105
+ 10:00:00,138.9260,139.3010,138.6130,138.7630,2921125\r\n2023-01-23 09:45:00,138.3790,139.0530,138.2450,138.9200,3265100\r\n2023-01-23
106
+ 09:30:00,137.1870,138.7000,136.9540,138.3730,5056958\r\n2023-01-20 15:45:00,136.5220,137.0860,136.3680,136.9030,6716655\r\n2023-01-20
107
+ 15:30:00,136.5420,136.6990,136.3190,136.5260,1999873\r\n2023-01-20 15:15:00,136.7900,136.9570,136.4180,136.5410,1923821\r\n2023-01-20
108
+ 15:00:00,136.2340,136.8380,136.1930,136.7940,1984953\r\n2023-01-20 14:45:00,136.3090,136.3320,135.9510,136.2380,1357015\r\n2023-01-20
109
+ 14:30:00,136.0110,136.3510,136.0010,136.3170,1573283\r\n2023-01-20 14:15:00,135.7180,136.0630,135.7130,136.0150,1156358\r\n2023-01-20
110
+ 14:00:00,135.9060,135.9640,135.7030,135.7200,1389922\r\n2023-01-20 13:45:00,135.2160,135.9240,135.2110,135.9000,1939879\r\n2023-01-20
111
+ 13:30:00,134.7740,135.3580,134.7640,135.2250,1584364\r\n2023-01-20 13:15:00,134.8830,134.9210,134.4510,134.7680,1119167\r\n2023-01-20
112
+ 13:00:00,134.8430,135.1400,134.5310,134.8820,1816572\r\n2023-01-20 12:45:00,134.7350,135.0300,134.7050,134.8480,1029414\r\n2023-01-20
113
+ 12:30:00,134.7170,134.9200,134.6500,134.7380,894106\r\n2023-01-20 12:15:00,134.5160,134.8420,134.5110,134.7230,1007840\r\n2023-01-20
114
+ 12:00:00,134.3870,134.6930,134.3770,134.5190,1156870\r\n2023-01-20 11:45:00,134.2130,134.5640,134.1730,134.3870,1349757\r\n2023-01-20
115
+ 11:30:00,134.6150,134.7540,134.1140,134.2120,1643713\r\n2023-01-20 11:15:00,134.5260,134.6530,134.2530,134.6190,1431922\r\n2023-01-20
116
+ 11:00:00,134.0990,134.6030,134.0740,134.5490,1798442\r\n2023-01-20 10:45:00,134.1970,134.4150,134.0440,134.0930,1654390\r\n2023-01-20
117
+ 10:30:00,134.1380,134.5730,134.0240,134.2020,2212750\r\n2023-01-20 10:15:00,133.8720,134.2850,133.6620,134.1320,2023685\r\n2023-01-20
118
+ 10:00:00,133.6920,134.1070,133.3990,133.8790,2329429\r\n2023-01-20 09:45:00,133.8900,134.2850,133.4510,133.6870,2681150\r\n2023-01-20
119
+ 09:30:00,134.3470,134.3750,133.2990,133.8920,8775063\r\n2023-01-19 15:45:00,134.6050,134.7820,134.1730,134.3630,3781028\r\n2023-01-19
120
+ 15:30:00,134.7840,134.9110,134.5380,134.6190,1423205\r\n2023-01-19 15:15:00,134.7140,134.9510,134.5800,134.7880,1394818\r\n2023-01-19
121
+ 15:00:00,135.0120,135.1300,134.6400,134.7130,1353232\r\n2023-01-19 14:45:00,135.1420,135.3280,134.8290,135.0010,1167922\r\n2023-01-19
122
+ 14:30:00,134.9530,135.3280,134.7390,135.1360,1746550\r\n2023-01-19 14:15:00,134.5700,135.1300,134.4860,134.9620,1472276\r\n2023-01-19
123
+ 14:00:00,134.3470,134.6330,134.1330,134.5690,1224657\r\n2023-01-19 13:45:00,134.3170,134.4150,134.0940,134.3610,1026564\r\n2023-01-19
124
+ 13:30:00,133.8400,134.6330,133.8360,134.3190,1605626\r\n2023-01-19 13:15:00,133.9700,134.1960,133.7060,133.8340,1227478\r\n2023-01-19
125
+ 13:00:00,133.6820,134.0770,133.6640,133.9740,1131186\r\n2023-01-19 12:45:00,133.5750,133.6900,133.4280,133.6840,776887\r\n2023-01-19
126
+ 12:30:00,133.5240,133.7390,133.3490,133.5860,848018\r\n2023-01-19 12:15:00,133.6720,133.9180,133.4280,133.5270,1023364\r\n2023-01-19
127
+ 12:00:00,133.4730,133.8190,133.4280,133.6770,1147155\r\n2023-01-19 11:45:00,133.4630,133.7690,133.3490,133.4870,1169913\r\n2023-01-19
128
+ 11:30:00,133.5620,133.6500,133.2690,133.4670,1339811\r\n2023-01-19 11:15:00,134.2530,134.2850,133.4680,133.5760,1994443\r\n2023-01-19
129
+ 11:00:00,133.1950,134.4740,133.1300,134.2580,2519967\r\n2023-01-19 10:45:00,133.5430,133.5500,132.8520,133.1890,1615427\r\n2023-01-19
130
+ 10:30:00,133.5590,133.7690,133.1700,133.5350,1652092\r\n2023-01-19 10:15:00,133.4930,134.1550,133.2510,133.5560,1873714\r\n2023-01-19
131
+ 10:00:00,134.1290,134.1360,133.3690,133.4960,2281444\r\n2023-01-19 09:45:00,133.5230,134.4100,133.0920,134.1420,2975242\r\n2023-01-19
132
+ 09:30:00,133.1750,134.2760,132.9420,133.5270,3892475\r\n2023-01-18 15:45:00,134.5260,134.6330,134.1040,134.2810,3752501\r\n2023-01-18
133
+ 15:30:00,134.8340,134.9010,134.4310,134.5250,1498963\r\n2023-01-18 15:15:00,134.9580,135.1100,134.7090,134.8390,1230618\r\n2023-01-18
134
+ 15:00:00,134.8730,135.1890,134.7440,134.9670,1312264\r\n2023-01-18 14:45:00,135.0320,135.1140,134.7890,134.8820,946124\r\n2023-01-18
135
+ 14:30:00,135.1320,135.2390,134.9280,135.0410,1066617\r\n2023-01-18 14:15:00,134.9970,135.1890,134.7190,135.1460,1014389\r\n2023-01-18
136
+ 14:00:00,135.1420,135.1640,134.7390,135.0130,1097723\r\n2023-01-18 13:45:00,134.7540,135.3480,134.7290,135.1360,1695408\r\n2023-01-18
137
+ 13:30:00,134.8040,134.8520,134.4510,134.7630,1103844\r\n2023-01-18 13:15:00,134.5260,134.8410,134.4020,134.7980,1099141\r\n2023-01-18
138
+ 13:00:00,134.7740,135.0400,134.4310,134.5300,1319586\r\n2023-01-18 12:45:00,134.6650,134.8910,134.6200,134.7780,1085836\r\n2023-01-18
139
+ 12:30:00,134.6550,134.9060,134.4910,134.6790,1143111\r\n2023-01-18 12:15:00,135.0120,135.2040,134.5110,134.6620,1499372\r\n2023-01-18
140
+ 12:00:00,135.2290,135.3580,134.5310,135.0060,1697851\r\n2023-01-18 11:45:00,135.0420,135.2890,134.8680,135.2310,1642756\r\n2023-01-18
141
+ 11:30:00,135.7470,135.8050,134.9780,135.0560,2083783\r\n2023-01-18 11:15:00,136.0060,136.0530,135.4640,135.7510,1994107\r\n2023-01-18
142
+ 11:00:00,136.1150,136.4410,135.6930,136.0100,1869131\r\n2023-01-18 10:45:00,135.9660,136.1810,135.6130,136.1240,2004550\r\n2023-01-18
143
+ 10:30:00,137.0480,137.0670,135.8910,135.9710,2364947\r\n2023-01-18 10:15:00,136.8360,137.1450,136.2690,137.0440,2611453\r\n2023-01-18
144
+ 10:00:00,137.0390,137.6720,136.6760,136.8340,4058899\r\n2023-01-18 09:45:00,136.2340,137.0670,136.0600,137.0430,3768402\r\n2023-01-18
145
+ 09:30:00,135.8860,136.6590,135.7420,136.2510,5413109\r\n2023-01-17 15:45:00,134.8140,135.0800,134.6800,135.0060,3661056\r\n2023-01-17
146
+ 15:30:00,134.7690,135.0200,134.7390,134.8180,1396688\r\n2023-01-17 15:15:00,134.8540,134.9210,134.6700,134.7830,1085677\r\n2023-01-17
147
+ 15:00:00,134.9680,135.1600,134.7790,134.8530,1015091\r\n2023-01-17 14:45:00,135.1120,135.1490,134.8580,134.9840,847545\r\n2023-01-17
148
+ 14:30:00,134.7390,135.1600,134.7340,135.1260,1158455\r\n2023-01-17 14:15:00,134.7440,134.8520,134.4710,134.7390,1141209\r\n2023-01-17
149
+ 14:00:00,135.1320,135.1690,134.5710,134.7480,1023901\r\n2023-01-17 13:45:00,135.3880,135.4770,135.0670,135.1310,820502\r\n2023-01-17
150
+ 13:30:00,135.1320,135.4180,134.9980,135.3940,823247\r\n2023-01-17 13:15:00,135.0570,135.2190,134.9970,135.1260,830634\r\n2023-01-17
151
+ 13:00:00,135.3100,135.3880,134.9780,135.0610,1181279\r\n2023-01-17 12:45:00,134.8580,135.3580,134.7690,135.3240,1478105\r\n2023-01-17
152
+ 12:30:00,134.6650,135.0300,134.6300,134.8630,942795\r\n2023-01-17 12:15:00,134.6450,134.7310,134.3820,134.6690,1127715\r\n2023-01-17
153
+ 12:00:00,134.9430,135.0400,134.6200,134.6490,1002075\r\n2023-01-17 11:45:00,134.9810,135.1890,134.7690,134.9370,909778\r\n2023-01-17
154
+ 11:30:00,134.4660,135.2190,134.4320,134.9870,1983101\r\n2023-01-17 11:15:00,133.9050,134.6030,133.8960,134.4750,1919804\r\n2023-01-17
155
+ 11:00:00,134.6100,134.7520,133.7560,133.9040,2282180\r\n2023-01-17 10:45:00,134.7440,134.9910,134.4120,134.6190,2035772\r\n2023-01-17
156
+ 10:30:00,135.7670,135.8750,134.4910,134.7480,2918185\r\n2023-01-17 10:15:00,135.3300,136.3610,135.2310,135.7610,3519018\r\n2023-01-17
157
+ 10:00:00,134.2680,135.6360,134.2630,135.3390,3639677\r\n2023-01-17 09:45:00,133.9550,134.6930,133.9500,134.2710,2644061\r\n2023-01-17
158
+ 09:30:00,133.9100,134.6130,133.2100,133.9540,5496289\r\n2023-01-13 15:45:00,133.8950,133.9180,133.5380,133.7850,3746397\r\n2023-01-13
159
+ 15:30:00,133.6870,134.0070,133.6120,133.9090,2118978\r\n2023-01-13 15:15:00,133.3830,133.6990,133.3590,133.6900,1403037\r\n2023-01-13
160
+ 15:00:00,133.2250,133.4810,133.1500,133.3830,1302750\r\n2023-01-13 14:45:00,133.2150,133.3420,133.1200,133.2200,1038935\r\n2023-01-13
161
+ 14:30:00,133.3340,133.5110,133.1900,133.2290,1223800\r\n2023-01-13 14:15:00,133.1550,133.3720,133.0310,133.3340,1228248\r\n2023-01-13
162
+ 14:00:00,133.2250,133.3220,132.9710,133.1500,1205640\r\n2023-01-13 13:45:00,133.2550,133.4710,133.1400,133.2250,1246043\r\n2023-01-13
163
+ 13:30:00,132.7480,133.4210,132.7130,133.2630,1761614\r\n2023-01-13 13:15:00,132.5690,132.8060,132.4250,132.7370,1035880\r\n2023-01-13
164
+ 13:00:00,132.6290,132.7060,132.3860,132.5680,852197\r\n2023-01-13 12:45:00,132.5100,132.6960,132.3760,132.6320,1047491\r\n2023-01-13
165
+ 12:30:00,132.6090,132.6270,132.2470,132.5140,911447\r\n2023-01-13 12:15:00,132.3810,132.6960,132.2860,132.6030,900112\r\n2023-01-13
166
+ 12:00:00,132.3010,132.4780,132.2170,132.3940,926455\r\n2023-01-13 11:45:00,132.1820,132.3490,131.8440,132.3080,1375165\r\n2023-01-13
167
+ 11:30:00,132.1320,132.2690,131.8700,132.1910,1106358\r\n2023-01-13 11:15:00,132.5340,132.5670,132.0580,132.1360,1778202\r\n2023-01-13
168
+ 11:00:00,132.8370,133.0540,132.4650,132.5380,1838158\r\n2023-01-13 10:45:00,132.7480,133.0490,132.5740,132.8410,1750994\r\n2023-01-13
169
+ 10:30:00,132.5990,133.0640,132.3260,132.7370,2121920\r\n2023-01-13 10:15:00,132.4000,132.6470,132.0880,132.6030,2077111\r\n2023-01-13
170
+ 10:00:00,131.6360,132.5570,131.4920,132.3990,2886214\r\n2023-01-13 09:45:00,131.2730,131.7920,131.0250,131.6640,2642394\r\n2023-01-13
171
+ 09:30:00,131.0500,132.0340,130.7570,131.2820,4253768\r\n2023-01-12 15:45:00,132.2220,132.6570,131.8590,132.4790,3432538\r\n2023-01-12
172
+ 15:30:00,132.2810,132.5270,132.1680,132.2250,1620731\r\n2023-01-12 15:15:00,132.0630,132.4830,131.9190,132.2800,1587928\r\n2023-01-12
173
+ 15:00:00,132.4450,132.5270,131.9980,132.0740,1307882\r\n2023-01-12 14:45:00,132.4600,132.6560,132.1070,132.4440,1363280\r\n2023-01-12
174
+ 14:30:00,132.2890,132.6170,132.0980,132.4630,1472133\r\n2023-01-12 14:15:00,132.7880,132.8450,132.2270,132.2930,1239464\r\n2023-01-12
175
+ 14:00:00,133.1060,133.2030,132.6650,132.7970,1375847\r\n2023-01-12 13:45:00,132.7130,133.2820,132.6640,133.1140,1518268\r\n2023-01-12
176
+ 13:30:00,131.8940,132.7660,131.5120,132.7220,2435122\r\n2023-01-12 13:15:00,132.8030,133.0640,131.8490,131.9080,1607829\r\n2023-01-12
177
+ 13:00:00,132.8030,133.0440,132.4850,132.8110,1395646\r\n2023-01-12 12:45:00,133.0260,133.2130,132.7930,132.8110,1155360\r\n2023-01-12
178
+ 12:30:00,133.0960,133.3120,132.9320,133.0400,1572799\r\n2023-01-12 12:15:00,132.3810,133.1780,132.3460,133.0990,1890439\r\n2023-01-12
179
+ 12:00:00,132.1720,132.5570,131.9040,132.3850,1373934\r\n2023-01-12 11:45:00,131.9340,132.2700,131.6110,132.1760,1321383\r\n2023-01-12
180
+ 11:30:00,131.5160,132.0210,131.1640,131.9470,1416688\r\n2023-01-12 11:15:00,131.8440,131.8820,131.2630,131.5150,1249922\r\n2023-01-12
181
+ 11:00:00,131.5460,131.8420,131.0850,131.8380,1809483\r\n2023-01-12 10:45:00,131.7050,132.0470,131.4620,131.5450,1951060\r\n2023-01-12
182
+ 10:30:00,132.0730,132.5270,131.5910,131.6990,2217902\r\n2023-01-12 10:15:00,132.4550,132.8900,131.9290,132.0670,2758195\r\n2023-01-12
183
+ 10:00:00,131.3970,132.7460,131.2430,132.4540,3312376\r\n2023-01-12 09:45:00,131.2500,131.6240,130.5380,131.4010,3848820\r\n2023-01-12
184
+ 09:30:00,132.9370,133.3520,131.2240,131.2320,5781275\r\n2023-01-11 15:45:00,132.0230,132.6070,131.8690,132.5730,5987351\r\n2023-01-11
185
+ 15:30:00,132.0230,132.0610,131.7500,132.0320,1705148\r\n2023-01-11 15:15:00,131.8990,132.1600,131.8890,132.0190,1463953\r\n2023-01-11
186
+ 15:00:00,131.6260,132.0210,131.5860,131.9080,1612124\r\n2023-01-11 14:45:00,131.8980,131.9220,131.4920,131.6290,1128502\r\n2023-01-11
187
+ 14:30:00,131.5050,131.9710,131.4120,131.8990,1342064\r\n2023-01-11 14:15:00,131.4770,131.7530,131.4420,131.5050,1185374\r\n2023-01-11
188
+ 14:00:00,131.5070,131.5540,131.2580,131.4760,1155058\r\n2023-01-11 13:45:00,131.5660,131.6040,131.3030,131.5010,1085825\r\n2023-01-11
189
+ 13:30:00,131.9020,131.9760,131.5310,131.5700,1208250\r\n2023-01-11 13:15:00,132.1770,132.2000,131.5020,131.8980,1413961\r\n2023-01-11
190
+ 13:00:00,131.8540,132.3390,131.8260,132.1730,1760838\r\n2023-01-11 12:45:00,131.6900,132.0310,131.6700,131.8480,1149297\r\n2023-01-11
191
+ 12:30:00,131.8940,132.0210,131.6010,131.6990,1778715\r\n2023-01-11 12:15:00,131.6650,131.9610,131.5760,131.8980,1762701\r\n2023-01-11
192
+ 12:00:00,131.3970,131.7330,131.3220,131.6690,1552365\r\n2023-01-11 11:45:00,131.1390,131.4750,131.0750,131.3910,1619366\r\n2023-01-11
193
+ 11:30:00,130.7820,131.1760,130.5680,131.1380,1610293\r\n2023-01-11 11:15:00,130.7390,130.8990,130.6970,130.7900,1310190\r\n2023-01-11
194
+ 11:00:00,130.5830,130.7990,130.4740,130.7440,1602640\r\n2023-01-11 10:45:00,130.3840,130.8190,130.3300,130.5820,2102564\r\n2023-01-11
195
+ 10:30:00,131.1190,131.1770,130.1910,130.3980,2607748\r\n2023-01-11 10:15:00,130.4740,131.2150,130.2700,131.1230,3144073\r\n2023-01-11
196
+ 10:00:00,130.0020,130.6010,129.5950,130.4680,2645272\r\n2023-01-11 09:45:00,129.9770,130.6400,129.6740,129.9890,2976233\r\n2023-01-11
197
+ 09:30:00,130.3450,130.7000,129.5650,129.9910,4522200\r\n2023-01-10 15:45:00,129.2120,129.8660,129.1410,129.8620,3453530\r\n2023-01-10
198
+ 15:30:00,129.2520,129.4880,129.1180,129.2160,1458131\r\n2023-01-10 15:15:00,129.1330,129.3690,129.1080,129.2660,1355369\r\n2023-01-10
199
+ 15:00:00,129.2270,129.2550,128.8700,129.1420,1511889\r\n2023-01-10 14:45:00,129.2170,129.3190,129.0880,129.2310,1185254\r\n2023-01-10
200
+ 14:30:00,129.4800,129.5380,129.1580,129.2210,1117021\r\n2023-01-10 14:15:00,129.5450,129.6520,129.2870,129.4750,1402732\r\n2023-01-10
201
+ 14:00:00,129.3410,129.8060,129.3370,129.5540,1898998\r\n2023-01-10 13:45:00,128.9190,129.3890,128.9050,129.3400,1924753\r\n2023-01-10
202
+ 13:30:00,128.7650,129.1310,128.6810,128.9280,1215419\r\n2023-01-10 13:15:00,128.7750,128.9020,128.5320,128.7790,1378739\r\n2023-01-10
203
+ 13:00:00,128.8450,129.1210,128.7210,128.7840,1838773\r\n2023-01-10 12:45:00,128.6860,128.9820,128.5820,128.8490,1003492\r\n2023-01-10
204
+ 12:30:00,128.2290,128.9420,128.1660,128.7000,1493521\r\n2023-01-10 12:15:00,128.2690,128.3660,128.0850,128.2430,1271746\r\n2023-01-10
205
+ 12:00:00,127.9910,128.3660,127.5690,128.2820,1736393\r\n2023-01-10 11:45:00,128.0400,128.2070,127.7770,128.0040,1613180\r\n2023-01-10
206
+ 11:30:00,128.1400,128.3160,127.8870,128.0490,1312371\r\n2023-01-10 11:15:00,128.1500,128.3560,127.8470,128.1530,1892243\r\n2023-01-10
207
+ 11:00:00,128.2190,128.3260,127.9160,128.1430,1987704\r\n2023-01-10 10:45:00,127.3450,128.3260,127.2410,128.2130,2569791\r\n2023-01-10
208
+ 10:30:00,128.5170,128.5250,127.3520,127.3600,2983706\r\n2023-01-10 10:15:00,129.4520,129.9520,128.4430,128.5310,2795482\r\n2023-01-10
209
+ 10:00:00,129.1030,129.7870,128.7210,129.4540,2942621\r\n2023-01-10 09:45:00,129.2070,129.5280,128.6220,129.1070,3409102\r\n2023-01-10
210
+ 09:30:00,129.3910,130.3760,128.9050,129.2160,4395905\r\n2023-01-09 15:45:00,129.6190,129.6370,128.9990,129.3050,3582553\r\n2023-01-09
211
+ 15:30:00,129.5600,129.6870,129.2670,129.6130,1778658\r\n2023-01-09 15:15:00,129.4770,129.8160,129.4460,129.5590,1566557\r\n2023-01-09
212
+ 15:00:00,129.7880,129.9350,129.4660,129.4840,1533054\r\n2023-01-09 14:45:00,130.1960,130.2730,129.6940,129.7820,1401037\r\n2023-01-09
213
+ 14:30:00,130.5930,130.6770,130.0520,130.1990,1517874\r\n2023-01-09 14:15:00,130.5680,130.7690,130.3990,130.6020,1619617\r\n2023-01-09
214
+ 14:00:00,130.4930,130.8350,130.3410,130.5770,2115867\r\n2023-01-09 13:45:00,130.7220,130.7350,130.2900,130.5020,1882895\r\n2023-01-09
215
+ 13:30:00,131.5910,131.6140,130.6670,130.7260,1901786\r\n2023-01-09 13:15:00,131.5170,131.6720,131.4420,131.5950,1053537\r\n2023-01-09
216
+ 13:00:00,131.5560,131.7430,131.3530,131.5200,1217802\r\n2023-01-09 12:45:00,131.3580,131.6340,131.3480,131.5590,1062284\r\n2023-01-09
217
+ 12:30:00,131.8340,131.9320,131.3430,131.3610,1151819\r\n2023-01-09 12:15:00,131.9040,131.9430,131.6900,131.8430,1207244\r\n2023-01-09
218
+ 12:00:00,132.0330,132.0560,131.6610,131.9180,1424082\r\n2023-01-09 11:45:00,132.0610,132.2200,131.8990,132.0420,1413133\r\n2023-01-09
219
+ 11:30:00,132.1820,132.2790,131.8890,132.0670,1784388\r\n2023-01-09 11:15:00,132.3210,132.5080,132.0580,132.1810,2077028\r\n2023-01-09
220
+ 11:00:00,131.8340,132.4380,131.7600,132.3050,2311810\r\n2023-01-09 10:45:00,131.8240,132.2390,131.7500,131.8380,2441800\r\n2023-01-09
221
+ 10:30:00,131.6700,131.9390,131.5550,131.8330,2233026\r\n2023-01-09 10:15:00,131.2430,131.8370,131.0550,131.6640,3068089\r\n2023-01-09
222
+ 10:00:00,131.1090,131.7330,131.0660,131.2320,3445151\r\n2023-01-09 09:45:00,130.1560,131.1670,130.1470,131.1180,3518419\r\n2023-01-09
223
+ 09:30:00,129.5900,130.5510,129.5700,130.1600,5025104\r\n2023-01-06 15:45:00,128.9140,129.0910,128.4530,128.6200,6354069\r\n2023-01-06
224
+ 15:30:00,128.9290,129.1700,128.8650,128.9180,2525589\r\n2023-01-06 15:15:00,129.1130,129.2350,128.8100,128.9280,2147402\r\n2023-01-06
225
+ 15:00:00,128.9640,129.4090,128.9190,129.1120,2938553\r\n2023-01-06 14:45:00,128.8940,129.1110,128.7210,128.9670,2026129\r\n2023-01-06
226
+ 14:30:00,128.4570,128.9820,128.4180,128.8880,2234996\r\n2023-01-06 14:15:00,128.2790,128.6740,128.2290,128.4560,2248827\r\n2023-01-06
227
+ 14:00:00,127.9710,128.3660,127.9000,128.2810,1971350\r\n2023-01-06 13:45:00,127.7470,128.0080,127.6480,127.9700,1230499\r\n2023-01-06
228
+ 13:30:00,127.3650,127.8890,127.3600,127.7560,1691721\r\n2023-01-06 13:15:00,127.3100,127.5310,127.1810,127.3790,1132078\r\n2023-01-06
229
+ 13:00:00,127.0870,127.4320,127.0130,127.3180,1332157\r\n2023-01-06 12:45:00,127.2250,127.3330,126.9030,127.0910,1294385\r\n2023-01-06
230
+ 12:30:00,127.4460,127.5220,127.1520,127.2250,1443007\r\n2023-01-06 12:15:00,127.3100,127.6110,127.1320,127.4580,1651090\r\n2023-01-06
231
+ 12:00:00,127.0170,127.4920,127.0030,127.3090,1931796\r\n2023-01-06 11:45:00,126.4910,127.1540,126.4370,127.0110,2060642\r\n2023-01-06
232
+ 11:30:00,126.3820,126.8260,126.1390,126.4850,2155018\r\n2023-01-06 11:15:00,126.5160,126.7830,126.2880,126.3800,1787798\r\n2023-01-06
233
+ 11:00:00,126.5750,127.1740,126.4370,126.5150,2734482\r\n2023-01-06 10:45:00,126.1930,126.6470,126.1640,126.5440,2136941\r\n2023-01-06
234
+ 10:30:00,125.5130,126.6380,125.4730,126.1870,2610878\r\n2023-01-06 10:15:00,125.9250,126.4890,125.3840,125.5160,2660372\r\n2023-01-06
235
+ 10:00:00,124.9420,126.3890,124.9370,125.9240,4373930\r\n2023-01-06 09:45:00,124.1070,125.8330,124.0630,124.9450,3777542\r\n2023-01-06
236
+ 09:30:00,125.1400,126.3300,124.0330,124.1210,6070023\r\n2023-01-05 15:45:00,124.2270,124.4230,123.9040,124.1810,5635648\r\n2023-01-05
237
+ 15:30:00,124.3160,124.4520,124.1420,124.2250,2448840\r\n2023-01-05 15:15:00,124.3090,124.5120,124.1720,124.3100,2082922\r\n2023-01-05
238
+ 15:00:00,124.6290,124.6810,124.1720,124.3150,2384281\r\n2023-01-05 14:45:00,125.0610,125.2870,124.6140,124.6270,2445827\r\n2023-01-05
239
+ 14:30:00,125.0310,125.5250,125.0160,125.0740,1644570\r\n2023-01-05 14:15:00,125.2000,125.3660,124.9470,125.0330,1147697\r\n2023-01-05
240
+ 14:00:00,125.4180,125.6150,125.1550,125.1940,1344445\r\n2023-01-05 13:45:00,125.6670,125.7040,125.3140,125.4120,1195432\r\n2023-01-05
241
+ 13:30:00,125.6270,126.1810,125.5830,125.6620,1881027\r\n2023-01-05 13:15:00,124.9520,126.0120,124.9370,125.6210,2540822\r\n2023-01-05
242
+ 13:00:00,125.3840,125.4140,124.9470,124.9630,1339449\r\n2023-01-05 12:45:00,125.4880,125.6190,125.3140,125.3900,931652\r\n2023-01-05
243
+ 12:30:00,125.6370,125.9420,125.4340,125.4920,1089572\r\n2023-01-05 12:15:00,125.6960,125.7730,125.3340,125.6440,1292385\r\n2023-01-05
244
+ 12:00:00,125.8160,126.0960,125.6320,125.7000,1352333\r\n2023-01-05 11:45:00,126.0490,126.2200,125.7510,125.8190,1653343\r\n2023-01-05
245
+ 11:30:00,125.6870,126.0910,125.5630,126.0530,2128183\r\n2023-01-05 11:15:00,125.9350,126.0810,125.4530,125.7000,1723457\r\n2023-01-05
246
+ 11:00:00,125.5570,126.1410,125.2850,125.9340,2088956\r\n2023-01-05 10:45:00,126.0140,126.1710,125.4140,125.5610,2108908\r\n2023-01-05
247
+ 10:30:00,125.9050,126.0910,125.2950,126.0180,2943035\r\n2023-01-05 10:15:00,126.2230,126.3400,125.7710,125.8990,2681010\r\n2023-01-05
248
+ 10:00:00,126.5010,126.9060,126.0390,126.2460,3669287\r\n2023-01-05 09:45:00,124.9910,126.6270,124.5990,126.5150,4995536\r\n2023-01-05
249
+ 09:30:00,126.2630,126.3000,124.4600,125.0050,5613002\r\n2023-01-04 15:45:00,124.5150,125.6240,124.4210,125.5210,4882683\r\n2023-01-04
250
+ 15:30:00,124.9610,125.0880,124.4210,124.5180,2596098\r\n2023-01-04 15:15:00,125.4880,125.6840,124.9570,124.9850,2132671\r\n2023-01-04
251
+ 15:00:00,125.6070,125.9920,125.3740,125.4950,1965013\r\n2023-01-04 14:45:00,124.9520,125.6540,124.8380,125.6140,2090591\r\n2023-01-04
252
+ 14:30:00,124.8620,125.2470,124.5200,124.9470,2788347\r\n2023-01-04 14:15:00,125.8450,126.4790,124.7580,124.8710,3016051\r\n2023-01-04
253
+ 14:00:00,126.3020,127.0050,125.4140,125.8590,3477195\r\n2023-01-04 13:45:00,126.5410,126.6180,126.1980,126.3270,1069981\r\n2023-01-04
254
+ 13:30:00,126.3970,126.6260,126.3570,126.5510,964507\r\n2023-01-04 13:15:00,126.3520,126.6380,126.3080,126.3950,1030293\r\n2023-01-04
255
+ 13:00:00,126.3670,126.4390,126.0590,126.3560,1376606\r\n2023-01-04 12:45:00,127.0460,127.0540,126.3570,126.3660,1270344\r\n2023-01-04
256
+ 12:30:00,127.2010,127.3530,126.8840,127.0510,1124897\r\n2023-01-04 12:15:00,127.2160,127.7850,127.1520,127.1950,1844230\r\n2023-01-04
257
+ 12:00:00,126.8980,127.3030,126.8440,127.2160,1512221\r\n2023-01-04 11:45:00,127.2460,127.2730,126.8640,126.9020,1749357\r\n2023-01-04
258
+ 11:30:00,126.5210,127.5710,126.5060,127.2500,3407396\r\n2023-01-04 11:15:00,126.2230,126.6380,126.0990,126.5150,2253557\r\n2023-01-04
259
+ 11:00:00,126.0940,126.2550,125.6320,126.2230,2088713\r\n2023-01-04 10:45:00,125.7350,126.1610,125.7170,126.1270,2471002\r\n2023-01-04
260
+ 10:30:00,125.1300,125.8830,124.4740,125.7400,2750473\r\n2023-01-04 10:15:00,124.8820,125.1480,124.6090,125.1420,2828869\r\n2023-01-04
261
+ 10:00:00,125.7760,126.4790,124.2220,124.8660,5121969\r\n2023-01-04 09:45:00,125.3040,125.9990,125.0760,125.7990,4056481\r\n2023-01-04
262
+ 09:30:00,126.0240,126.6920,125.2650,125.3070,8179169\r\n2023-01-03 15:45:00,124.1370,124.5720,123.9540,124.2000,6493878\r\n2023-01-03
263
+ 15:30:00,123.7800,124.1540,123.7700,124.1310,2933961\r\n2023-01-03 15:15:00,123.8590,124.1840,123.6860,123.7730,2645981\r\n2023-01-03
264
+ 15:00:00,123.7800,123.9760,123.5470,123.8530,2165456\r\n2023-01-03 14:45:00,123.9680,124.4820,123.5860,123.7820,3196386\r\n2023-01-03
265
+ 14:30:00,123.7280,124.0150,123.3180,123.9620,2152954\r\n2023-01-03 14:15:00,123.8190,123.9760,123.5660,123.7240,1509326\r\n2023-01-03
266
+ 14:00:00,123.9680,124.1540,123.7650,123.8230,1688964\r\n2023-01-03 13:45:00,123.7600,123.9960,123.3380,123.9670,2134910\r\n2023-01-03
267
+ 13:30:00,123.8190,123.9860,123.6560,123.7730,1525935\r\n2023-01-03 13:15:00,123.4420,123.8960,123.3380,123.8030,1892722\r\n2023-01-03
268
+ 13:00:00,123.7500,123.9160,123.3580,123.4410,1700993\r\n2023-01-03 12:45:00,123.8040,123.8560,123.4970,123.7440,1995756\r\n2023-01-03
269
+ 12:30:00,123.8090,124.0950,123.7060,123.8130,1632983\r\n2023-01-03 12:15:00,124.1270,124.1400,123.4960,123.8130,2260197\r\n2023-01-03
270
+ 12:00:00,123.8990,124.2090,123.8350,124.1310,2027857\r\n2023-01-03 11:45:00,124.1070,124.1450,123.6360,123.8950,3044469\r\n2023-01-03
271
+ 11:30:00,124.4950,124.5220,123.9740,124.1170,2546604\r\n2023-01-03 11:15:00,123.9780,124.6110,123.9050,124.4930,2773011\r\n2023-01-03
272
+ 11:00:00,124.7380,125.0190,123.8740,123.9790,4858972\r\n2023-01-03 10:45:00,124.5140,124.8750,124.3710,124.7420,3326033\r\n2023-01-03
273
+ 10:30:00,124.6040,124.9290,124.1920,124.4980,4825857\r\n2023-01-03 10:15:00,125.0610,125.2020,124.3710,124.6080,4607743\r\n2023-01-03
274
+ 10:00:00,126.0740,126.4390,124.9170,125.0590,4751302\r\n2023-01-03 09:45:00,128.9940,129.2500,126.0100,126.0710,6031150\r\n2023-01-03
275
+ 09:30:00,129.3610,130.0150,128.5520,129.0030,7092582\r\n"
276
+ headers:
277
+ Allow:
278
+ - GET, HEAD, OPTIONS
279
+ CF-Cache-Status:
280
+ - DYNAMIC
281
+ CF-RAY:
282
+ - 85ce38b1794b2db9-YVR
283
+ Connection:
284
+ - keep-alive
285
+ Content-Disposition:
286
+ - attachment; filename=intraday_15min_AAPL.csv
287
+ Content-Length:
288
+ - '33793'
289
+ Content-Type:
290
+ - application/x-download
291
+ Cross-Origin-Opener-Policy:
292
+ - same-origin
293
+ Date:
294
+ - Thu, 29 Feb 2024 04:39:11 GMT
295
+ Nel:
296
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
297
+ Referrer-Policy:
298
+ - same-origin
299
+ Report-To:
300
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1709181545&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=981PZd8mTWGiCra0E4yBSk28yyW4n2S%2FVCrZT0YNQm8%3D"}]}'
301
+ Reporting-Endpoints:
302
+ - heroku-nel=https://nel.heroku.com/reports?ts=1709181545&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=981PZd8mTWGiCra0E4yBSk28yyW4n2S%2FVCrZT0YNQm8%3D
303
+ Server:
304
+ - cloudflare
305
+ Vary:
306
+ - Cookie, Origin
307
+ Via:
308
+ - 1.1 vegur
309
+ X-Content-Type-Options:
310
+ - nosniff
311
+ X-Frame-Options:
312
+ - DENY
313
+ status:
314
+ code: 200
315
+ message: OK
316
+ version: 1
openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_equity_historical_fetcher_urllib3_v2.yaml ADDED
@@ -0,0 +1,316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ interactions:
2
+ - request:
3
+ body: null
4
+ headers:
5
+ Accept:
6
+ - application/json
7
+ Accept-Encoding:
8
+ - gzip, deflate
9
+ Connection:
10
+ - keep-alive
11
+ method: GET
12
+ uri: https://www.alphavantage.co/query?adjusted=true&apikey=MOCK_API_KEY&datatype=csv&extended_hours=false&function=TIME_SERIES_INTRADAY&interval=15min&month=2023-01&outputsize=full&symbol=AAPL
13
+ response:
14
+ body:
15
+ string: "timestamp,open,high,low,close,volume\r\n2023-01-31 15:45:00,142.4710,143.3640,142.1380,143.3200,6111148\r\n2023-01-31
16
+ 15:30:00,142.3220,142.6090,142.3120,142.4800,1466236\r\n2023-01-31 15:15:00,142.7790,142.7980,142.2770,142.3310,1409505\r\n2023-01-31
17
+ 15:00:00,142.8880,143.0660,142.6600,142.7730,1206452\r\n2023-01-31 14:45:00,142.9580,143.0260,142.8230,142.8830,852602\r\n2023-01-31
18
+ 14:30:00,142.8490,143.0160,142.8040,142.9720,856467\r\n2023-01-31 14:15:00,142.7340,142.9170,142.6250,142.8480,705206\r\n2023-01-31
19
+ 14:00:00,142.6450,142.9370,142.5450,142.7440,951014\r\n2023-01-31 13:45:00,142.4610,142.7680,142.4160,142.6540,909265\r\n2023-01-31
20
+ 13:30:00,142.4410,142.5590,142.3170,142.4650,611083\r\n2023-01-31 13:15:00,142.4560,142.4700,142.1780,142.4410,1006968\r\n2023-01-31
21
+ 13:00:00,142.5610,142.6360,142.3270,142.4550,655584\r\n2023-01-31 12:45:00,142.5460,142.6880,142.4560,142.5600,630828\r\n2023-01-31
22
+ 12:30:00,142.5410,142.6680,142.4160,142.5550,590808\r\n2023-01-31 12:15:00,142.3220,142.6680,142.2620,142.5600,974220\r\n2023-01-31
23
+ 12:00:00,142.2820,142.3950,141.9990,142.3070,929554\r\n2023-01-31 11:45:00,142.3520,142.5140,142.1780,142.2850,844479\r\n2023-01-31
24
+ 11:30:00,142.5560,142.6680,142.2970,142.3260,969895\r\n2023-01-31 11:15:00,142.2330,142.6190,142.1280,142.5500,1187882\r\n2023-01-31
25
+ 11:00:00,142.1930,142.4600,142.0090,142.2470,1107755\r\n2023-01-31 10:45:00,142.1600,142.3210,141.8200,142.1870,1388137\r\n2023-01-31
26
+ 10:30:00,142.2130,142.3800,141.9790,142.1670,1226566\r\n2023-01-31 10:15:00,142.1040,142.3700,141.6520,142.1970,1825953\r\n2023-01-31
27
+ 10:00:00,141.6770,142.2110,141.4330,142.1080,2150277\r\n2023-01-31 09:45:00,141.7070,142.7780,141.4030,141.6760,2822577\r\n2023-01-31
28
+ 09:30:00,141.7160,142.4800,141.3040,141.7110,4394928\r\n2023-01-30 15:45:00,142.4070,142.5490,141.8700,142.0580,4775426\r\n2023-01-30
29
+ 15:30:00,142.0840,142.4600,141.9990,142.4110,1792886\r\n2023-01-30 15:15:00,142.0840,142.1620,141.9490,142.0830,1765526\r\n2023-01-30
30
+ 15:00:00,142.2130,142.4900,142.0490,142.0780,1650201\r\n2023-01-30 14:45:00,142.2280,142.2810,141.9010,142.2170,1669205\r\n2023-01-30
31
+ 14:30:00,142.1780,142.5460,142.0890,142.2320,1432781\r\n2023-01-30 14:15:00,142.4070,142.4350,142.0490,142.1770,1464175\r\n2023-01-30
32
+ 14:00:00,142.3920,142.6190,142.2970,142.4110,998241\r\n2023-01-30 13:45:00,142.1930,142.4500,142.0790,142.4010,1198176\r\n2023-01-30
33
+ 13:30:00,142.5110,142.5190,142.0290,142.1970,1309283\r\n2023-01-30 13:15:00,142.5110,142.8470,142.4260,142.5230,1064570\r\n2023-01-30
34
+ 13:00:00,142.4310,142.6780,142.3270,142.5200,875111\r\n2023-01-30 12:45:00,142.6400,142.6490,142.1880,142.4410,1400651\r\n2023-01-30
35
+ 12:30:00,142.6950,142.8120,142.4960,142.6440,1181401\r\n2023-01-30 12:15:00,142.9780,142.9910,142.4910,142.6990,1609852\r\n2023-01-30
36
+ 12:00:00,143.1960,143.2840,142.1680,142.9820,1400170\r\n2023-01-30 11:45:00,142.8780,143.2150,142.5160,143.2090,1185883\r\n2023-01-30
37
+ 11:30:00,142.8880,143.2540,142.7840,142.8840,1110391\r\n2023-01-30 11:15:00,142.9680,143.3440,142.7240,142.9020,1375517\r\n2023-01-30
38
+ 11:00:00,143.0080,143.1850,142.7440,142.9770,1391660\r\n2023-01-30 10:45:00,142.6300,143.0560,142.5850,143.0170,1923936\r\n2023-01-30
39
+ 10:30:00,143.2060,143.2540,142.3860,142.6560,2033741\r\n2023-01-30 10:15:00,143.6230,143.6520,142.8630,143.2100,2312830\r\n2023-01-30
40
+ 10:00:00,144.1890,144.3670,143.5290,143.6180,1980967\r\n2023-01-30 09:45:00,143.7520,144.2870,143.1820,144.1990,2799333\r\n2023-01-30
41
+ 09:30:00,143.9660,144.5650,143.5190,143.7380,4153218\r\n2023-01-27 15:45:00,145.6890,145.7180,144.8000,144.9780,4867213\r\n2023-01-27
42
+ 15:30:00,145.9470,146.2340,145.6640,145.7230,2420991\r\n2023-01-27 15:15:00,145.8880,145.9760,145.6140,145.9620,1956807\r\n2023-01-27
43
+ 15:00:00,145.8930,146.1650,145.8130,145.8920,1674321\r\n2023-01-27 14:45:00,145.6790,146.0260,145.6350,145.9020,1811395\r\n2023-01-27
44
+ 14:30:00,145.7780,145.8470,145.5050,145.6830,1394494\r\n2023-01-27 14:15:00,145.5150,145.9560,145.5050,145.7740,1614957\r\n2023-01-27
45
+ 14:00:00,145.3510,145.5340,145.2470,145.5190,1092587\r\n2023-01-27 13:45:00,145.3610,145.4300,145.1870,145.3560,913236\r\n2023-01-27
46
+ 13:30:00,145.2020,145.5690,145.1570,145.3680,1454188\r\n2023-01-27 13:15:00,145.3170,145.3300,144.9880,145.1920,957452\r\n2023-01-27
47
+ 13:00:00,145.3610,145.4730,145.0930,145.3260,1005769\r\n2023-01-27 12:45:00,145.5600,145.6480,145.3420,145.3760,1052779\r\n2023-01-27
48
+ 12:30:00,145.3790,145.8320,145.1670,145.5560,1618834\r\n2023-01-27 12:15:00,145.3710,145.8960,145.3360,145.3680,2099327\r\n2023-01-27
49
+ 12:00:00,145.0530,145.4790,144.9190,145.3760,1804374\r\n2023-01-27 11:45:00,144.8910,145.2010,144.7600,145.0580,1691657\r\n2023-01-27
50
+ 11:30:00,144.2690,145.1020,144.1740,144.8990,2256364\r\n2023-01-27 11:15:00,143.9210,144.3670,143.9060,144.2630,1467439\r\n2023-01-27
51
+ 11:00:00,143.7130,144.1090,143.6180,143.9250,1730147\r\n2023-01-27 10:45:00,143.9460,143.9660,143.3900,143.6970,1896399\r\n2023-01-27
52
+ 10:30:00,144.4380,144.5410,143.8560,143.9450,1922267\r\n2023-01-27 10:15:00,144.1700,144.5160,143.8150,144.4420,2081938\r\n2023-01-27
53
+ 10:00:00,143.7230,144.4960,143.3990,144.1700,2810931\r\n2023-01-27 09:45:00,143.0670,144.2280,143.0620,143.7170,3425862\r\n2023-01-27
54
+ 09:30:00,142.2030,143.5720,142.0980,143.0810,3713990\r\n2023-01-26 15:45:00,142.4960,143.0660,142.3370,142.9420,4251294\r\n2023-01-26
55
+ 15:30:00,142.5360,142.6980,142.4360,142.4990,1378195\r\n2023-01-26 15:15:00,142.4530,142.7380,142.4060,142.5450,1175706\r\n2023-01-26
56
+ 15:00:00,142.5510,142.6190,142.2670,142.4550,962291\r\n2023-01-26 14:45:00,142.6000,142.7380,142.2970,142.5450,1092977\r\n2023-01-26
57
+ 14:30:00,142.5560,142.7880,142.4760,142.6000,1073885\r\n2023-01-26 14:15:00,142.4710,142.8600,142.3670,142.5550,1332790\r\n2023-01-26
58
+ 14:00:00,142.1730,142.5240,141.9490,142.4800,1239469\r\n2023-01-26 13:45:00,142.2530,142.4600,142.0390,142.1770,937106\r\n2023-01-26
59
+ 13:30:00,141.8950,142.3700,141.8900,142.2580,1131056\r\n2023-01-26 13:15:00,141.7460,141.9430,141.5720,141.8890,584464\r\n2023-01-26
60
+ 13:00:00,141.8450,142.0330,141.5130,141.7500,944902\r\n2023-01-26 12:45:00,141.7810,142.0530,141.6120,141.8400,985075\r\n2023-01-26
61
+ 12:30:00,141.8850,142.1120,141.7410,141.7800,744875\r\n2023-01-26 12:15:00,142.0240,142.0630,141.8300,141.8990,806807\r\n2023-01-26
62
+ 12:00:00,141.7060,142.3010,141.6810,142.0190,1289752\r\n2023-01-26 11:45:00,141.7360,141.7740,141.4980,141.7100,1008489\r\n2023-01-26
63
+ 11:30:00,141.3790,141.8240,141.2150,141.7400,1161425\r\n2023-01-26 11:15:00,141.6090,141.8940,140.9270,141.3930,1742592\r\n2023-01-26
64
+ 11:00:00,141.4180,141.7550,141.2440,141.6210,1386633\r\n2023-01-26 10:45:00,142.1950,142.4250,141.2840,141.4230,1650420\r\n2023-01-26
65
+ 10:30:00,142.5460,142.6780,141.9890,142.1870,1349288\r\n2023-01-26 10:15:00,142.1430,143.0160,142.1080,142.5500,2312979\r\n2023-01-26
66
+ 10:00:00,142.2820,142.4500,141.6910,142.1480,2328421\r\n2023-01-26 09:45:00,142.5410,142.8270,141.9490,142.2770,2821276\r\n2023-01-26
67
+ 09:30:00,142.1930,143.2740,141.8010,142.5540,4245796\r\n2023-01-25 15:45:00,140.6340,140.9200,140.3060,140.8860,3237880\r\n2023-01-25
68
+ 15:30:00,140.8680,140.9900,140.5490,140.6380,1771140\r\n2023-01-25 15:15:00,141.2690,141.3470,140.5590,140.8660,1936429\r\n2023-01-25
69
+ 15:00:00,140.8320,141.4670,140.8180,141.2690,2421977\r\n2023-01-25 14:45:00,140.6590,141.0100,140.5390,140.8270,1470841\r\n2023-01-25
70
+ 14:30:00,140.6340,140.7220,140.4000,140.6580,1164244\r\n2023-01-25 14:15:00,140.5690,141.0100,140.4900,140.6380,1611771\r\n2023-01-25
71
+ 14:00:00,140.1170,140.6120,139.9940,140.5680,1191679\r\n2023-01-25 13:45:00,140.0080,140.3720,139.9230,140.1210,1563186\r\n2023-01-25
72
+ 13:30:00,140.1170,140.2150,139.8840,140.0120,1159314\r\n2023-01-25 13:15:00,139.8730,140.1650,139.8440,140.1210,1254572\r\n2023-01-25
73
+ 13:00:00,139.4820,139.9170,139.4460,139.8830,1183834\r\n2023-01-25 12:45:00,139.5010,139.5600,139.3180,139.4860,627376\r\n2023-01-25
74
+ 12:30:00,139.2730,139.6790,139.1890,139.5060,851021\r\n2023-01-25 12:15:00,139.4020,139.5450,139.1690,139.2670,942255\r\n2023-01-25
75
+ 12:00:00,139.5230,139.7580,139.1590,139.4060,1523908\r\n2023-01-25 11:45:00,139.2090,139.8870,139.0590,139.5260,1828568\r\n2023-01-25
76
+ 11:30:00,139.1440,139.4800,138.9400,139.2080,1836959\r\n2023-01-25 11:15:00,138.8360,139.4800,138.6520,139.1480,2337626\r\n2023-01-25
77
+ 11:00:00,138.3640,138.8670,138.1950,138.8250,2253429\r\n2023-01-25 10:45:00,138.0370,138.5170,137.9170,138.3680,1814184\r\n2023-01-25
78
+ 10:30:00,138.8760,139.0530,137.8580,138.0380,2898756\r\n2023-01-25 10:15:00,138.7960,139.1520,138.5030,138.8700,1978515\r\n2023-01-25
79
+ 10:00:00,138.7670,139.5100,138.6720,138.8130,2455229\r\n2023-01-25 09:45:00,139.1540,139.8480,138.7420,138.7650,2785027\r\n2023-01-25
80
+ 09:30:00,139.9290,140.1360,138.5230,139.1680,5433804\r\n2023-01-24 15:45:00,141.1110,141.7550,140.9760,141.5320,3648415\r\n2023-01-24
81
+ 15:30:00,141.4580,141.4960,140.9320,141.1160,1630244\r\n2023-01-24 15:15:00,141.2730,141.5160,141.2290,141.4530,1194031\r\n2023-01-24
82
+ 15:00:00,141.4780,141.5960,141.2150,141.2840,1237871\r\n2023-01-24 14:45:00,141.5370,141.6450,141.3240,141.4770,1127294\r\n2023-01-24
83
+ 14:30:00,141.6970,141.8340,141.4930,141.5420,1114856\r\n2023-01-24 14:15:00,141.3870,141.7450,141.3440,141.6910,1147658\r\n2023-01-24
84
+ 14:00:00,141.6770,141.6950,141.2240,141.3890,1588811\r\n2023-01-24 13:45:00,142.1040,142.1720,141.6620,141.6860,1196879\r\n2023-01-24
85
+ 13:30:00,141.9450,142.1920,141.8020,142.1070,1808716\r\n2023-01-24 13:15:00,141.4530,141.9530,141.3340,141.9390,1330135\r\n2023-01-24
86
+ 13:00:00,141.4980,141.6160,141.0740,141.4520,1142190\r\n2023-01-24 12:45:00,141.3790,141.6840,141.3140,141.5020,946467\r\n2023-01-24
87
+ 12:30:00,141.7260,141.7350,141.3140,141.3930,1023572\r\n2023-01-24 12:15:00,141.5900,141.9040,141.5040,141.7350,1803709\r\n2023-01-24
88
+ 12:00:00,141.1250,141.6060,140.8370,141.5960,1393518\r\n2023-01-24 11:45:00,141.0810,141.2780,140.9760,141.1350,849995\r\n2023-01-24
89
+ 11:30:00,141.4880,141.5340,140.9360,141.0850,1372549\r\n2023-01-24 11:15:00,141.0410,141.5060,140.7880,141.4860,1584463\r\n2023-01-24
90
+ 11:00:00,141.2890,141.4370,140.9360,141.0450,1732817\r\n2023-01-24 10:45:00,140.7700,141.3470,140.6480,141.2880,1605822\r\n2023-01-24
91
+ 10:30:00,140.9370,141.2480,140.3160,140.7570,1972197\r\n2023-01-24 10:15:00,140.9220,141.3080,140.6580,140.9460,2067111\r\n2023-01-24
92
+ 10:00:00,140.4950,140.9800,140.1220,140.9510,2593950\r\n2023-01-24 09:45:00,140.8920,141.1690,140.4000,140.4840,2829536\r\n2023-01-24
93
+ 09:30:00,139.3480,140.9700,139.3380,140.9260,4358939\r\n2023-01-23 15:45:00,139.8190,140.3040,139.7350,140.1410,4645025\r\n2023-01-23
94
+ 15:30:00,139.6310,139.8960,139.4370,139.8240,1884649\r\n2023-01-23 15:15:00,139.7500,139.8620,139.3970,139.6300,1818166\r\n2023-01-23
95
+ 15:00:00,140.0180,140.0760,139.5260,139.7490,1990630\r\n2023-01-23 14:45:00,140.3450,140.3540,139.6490,140.0220,2453913\r\n2023-01-23
96
+ 14:30:00,140.8130,140.9900,140.2910,140.3450,1559522\r\n2023-01-23 14:15:00,140.8420,141.0200,140.6800,140.7970,1560035\r\n2023-01-23
97
+ 14:00:00,140.9910,141.0200,140.5390,140.8470,1642722\r\n2023-01-23 13:45:00,141.0860,141.3470,140.9070,140.9860,1484231\r\n2023-01-23
98
+ 13:30:00,141.2990,141.3670,141.0160,141.0880,1461935\r\n2023-01-23 13:15:00,141.1500,141.3970,141.1250,141.3030,1420401\r\n2023-01-23
99
+ 13:00:00,141.1800,141.5260,141.0260,141.1590,1908956\r\n2023-01-23 12:45:00,141.3990,141.5360,140.9660,141.1940,2187698\r\n2023-01-23
100
+ 12:30:00,141.4880,141.5560,141.2640,141.4080,1232067\r\n2023-01-23 12:15:00,141.3190,141.5960,141.2340,141.4850,1623032\r\n2023-01-23
101
+ 12:00:00,141.9250,141.9330,141.1850,141.3270,2063424\r\n2023-01-23 11:45:00,141.7060,142.3460,141.4630,141.9290,3303263\r\n2023-01-23
102
+ 11:30:00,141.3690,141.9040,141.2750,141.7010,2377490\r\n2023-01-23 11:15:00,141.1800,141.8340,141.0460,141.3730,3140109\r\n2023-01-23
103
+ 11:00:00,140.2460,141.4760,140.1520,141.1840,3848507\r\n2023-01-23 10:45:00,139.8890,140.5230,139.7890,140.2560,2573732\r\n2023-01-23
104
+ 10:30:00,139.5070,140.0810,139.5010,139.8930,2673807\r\n2023-01-23 10:15:00,138.7670,139.6890,138.7220,139.5130,2817622\r\n2023-01-23
105
+ 10:00:00,138.9260,139.3010,138.6130,138.7630,2921125\r\n2023-01-23 09:45:00,138.3790,139.0530,138.2450,138.9200,3265100\r\n2023-01-23
106
+ 09:30:00,137.1870,138.7000,136.9540,138.3730,5056958\r\n2023-01-20 15:45:00,136.5220,137.0860,136.3680,136.9030,6716655\r\n2023-01-20
107
+ 15:30:00,136.5420,136.6990,136.3190,136.5260,1999873\r\n2023-01-20 15:15:00,136.7900,136.9570,136.4180,136.5410,1923821\r\n2023-01-20
108
+ 15:00:00,136.2340,136.8380,136.1930,136.7940,1984953\r\n2023-01-20 14:45:00,136.3090,136.3320,135.9510,136.2380,1357015\r\n2023-01-20
109
+ 14:30:00,136.0110,136.3510,136.0010,136.3170,1573283\r\n2023-01-20 14:15:00,135.7180,136.0630,135.7130,136.0150,1156358\r\n2023-01-20
110
+ 14:00:00,135.9060,135.9640,135.7030,135.7200,1389922\r\n2023-01-20 13:45:00,135.2160,135.9240,135.2110,135.9000,1939879\r\n2023-01-20
111
+ 13:30:00,134.7740,135.3580,134.7640,135.2250,1584364\r\n2023-01-20 13:15:00,134.8830,134.9210,134.4510,134.7680,1119167\r\n2023-01-20
112
+ 13:00:00,134.8430,135.1400,134.5310,134.8820,1816572\r\n2023-01-20 12:45:00,134.7350,135.0300,134.7050,134.8480,1029414\r\n2023-01-20
113
+ 12:30:00,134.7170,134.9200,134.6500,134.7380,894106\r\n2023-01-20 12:15:00,134.5160,134.8420,134.5110,134.7230,1007840\r\n2023-01-20
114
+ 12:00:00,134.3870,134.6930,134.3770,134.5190,1156870\r\n2023-01-20 11:45:00,134.2130,134.5640,134.1730,134.3870,1349757\r\n2023-01-20
115
+ 11:30:00,134.6150,134.7540,134.1140,134.2120,1643713\r\n2023-01-20 11:15:00,134.5260,134.6530,134.2530,134.6190,1431922\r\n2023-01-20
116
+ 11:00:00,134.0990,134.6030,134.0740,134.5490,1798442\r\n2023-01-20 10:45:00,134.1970,134.4150,134.0440,134.0930,1654390\r\n2023-01-20
117
+ 10:30:00,134.1380,134.5730,134.0240,134.2020,2212750\r\n2023-01-20 10:15:00,133.8720,134.2850,133.6620,134.1320,2023685\r\n2023-01-20
118
+ 10:00:00,133.6920,134.1070,133.3990,133.8790,2329429\r\n2023-01-20 09:45:00,133.8900,134.2850,133.4510,133.6870,2681150\r\n2023-01-20
119
+ 09:30:00,134.3470,134.3750,133.2990,133.8920,8775063\r\n2023-01-19 15:45:00,134.6050,134.7820,134.1730,134.3630,3781028\r\n2023-01-19
120
+ 15:30:00,134.7840,134.9110,134.5380,134.6190,1423205\r\n2023-01-19 15:15:00,134.7140,134.9510,134.5800,134.7880,1394818\r\n2023-01-19
121
+ 15:00:00,135.0120,135.1300,134.6400,134.7130,1353232\r\n2023-01-19 14:45:00,135.1420,135.3280,134.8290,135.0010,1167922\r\n2023-01-19
122
+ 14:30:00,134.9530,135.3280,134.7390,135.1360,1746550\r\n2023-01-19 14:15:00,134.5700,135.1300,134.4860,134.9620,1472276\r\n2023-01-19
123
+ 14:00:00,134.3470,134.6330,134.1330,134.5690,1224657\r\n2023-01-19 13:45:00,134.3170,134.4150,134.0940,134.3610,1026564\r\n2023-01-19
124
+ 13:30:00,133.8400,134.6330,133.8360,134.3190,1605626\r\n2023-01-19 13:15:00,133.9700,134.1960,133.7060,133.8340,1227478\r\n2023-01-19
125
+ 13:00:00,133.6820,134.0770,133.6640,133.9740,1131186\r\n2023-01-19 12:45:00,133.5750,133.6900,133.4280,133.6840,776887\r\n2023-01-19
126
+ 12:30:00,133.5240,133.7390,133.3490,133.5860,848018\r\n2023-01-19 12:15:00,133.6720,133.9180,133.4280,133.5270,1023364\r\n2023-01-19
127
+ 12:00:00,133.4730,133.8190,133.4280,133.6770,1147155\r\n2023-01-19 11:45:00,133.4630,133.7690,133.3490,133.4870,1169913\r\n2023-01-19
128
+ 11:30:00,133.5620,133.6500,133.2690,133.4670,1339811\r\n2023-01-19 11:15:00,134.2530,134.2850,133.4680,133.5760,1994443\r\n2023-01-19
129
+ 11:00:00,133.1950,134.4740,133.1300,134.2580,2519967\r\n2023-01-19 10:45:00,133.5430,133.5500,132.8520,133.1890,1615427\r\n2023-01-19
130
+ 10:30:00,133.5590,133.7690,133.1700,133.5350,1652092\r\n2023-01-19 10:15:00,133.4930,134.1550,133.2510,133.5560,1873714\r\n2023-01-19
131
+ 10:00:00,134.1290,134.1360,133.3690,133.4960,2281444\r\n2023-01-19 09:45:00,133.5230,134.4100,133.0920,134.1420,2975242\r\n2023-01-19
132
+ 09:30:00,133.1750,134.2760,132.9420,133.5270,3892475\r\n2023-01-18 15:45:00,134.5260,134.6330,134.1040,134.2810,3752501\r\n2023-01-18
133
+ 15:30:00,134.8340,134.9010,134.4310,134.5250,1498963\r\n2023-01-18 15:15:00,134.9580,135.1100,134.7090,134.8390,1230618\r\n2023-01-18
134
+ 15:00:00,134.8730,135.1890,134.7440,134.9670,1312264\r\n2023-01-18 14:45:00,135.0320,135.1140,134.7890,134.8820,946124\r\n2023-01-18
135
+ 14:30:00,135.1320,135.2390,134.9280,135.0410,1066617\r\n2023-01-18 14:15:00,134.9970,135.1890,134.7190,135.1460,1014389\r\n2023-01-18
136
+ 14:00:00,135.1420,135.1640,134.7390,135.0130,1097723\r\n2023-01-18 13:45:00,134.7540,135.3480,134.7290,135.1360,1695408\r\n2023-01-18
137
+ 13:30:00,134.8040,134.8520,134.4510,134.7630,1103844\r\n2023-01-18 13:15:00,134.5260,134.8410,134.4020,134.7980,1099141\r\n2023-01-18
138
+ 13:00:00,134.7740,135.0400,134.4310,134.5300,1319586\r\n2023-01-18 12:45:00,134.6650,134.8910,134.6200,134.7780,1085836\r\n2023-01-18
139
+ 12:30:00,134.6550,134.9060,134.4910,134.6790,1143111\r\n2023-01-18 12:15:00,135.0120,135.2040,134.5110,134.6620,1499372\r\n2023-01-18
140
+ 12:00:00,135.2290,135.3580,134.5310,135.0060,1697851\r\n2023-01-18 11:45:00,135.0420,135.2890,134.8680,135.2310,1642756\r\n2023-01-18
141
+ 11:30:00,135.7470,135.8050,134.9780,135.0560,2083783\r\n2023-01-18 11:15:00,136.0060,136.0530,135.4640,135.7510,1994107\r\n2023-01-18
142
+ 11:00:00,136.1150,136.4410,135.6930,136.0100,1869131\r\n2023-01-18 10:45:00,135.9660,136.1810,135.6130,136.1240,2004550\r\n2023-01-18
143
+ 10:30:00,137.0480,137.0670,135.8910,135.9710,2364947\r\n2023-01-18 10:15:00,136.8360,137.1450,136.2690,137.0440,2611453\r\n2023-01-18
144
+ 10:00:00,137.0390,137.6720,136.6760,136.8340,4058899\r\n2023-01-18 09:45:00,136.2340,137.0670,136.0600,137.0430,3768402\r\n2023-01-18
145
+ 09:30:00,135.8860,136.6590,135.7420,136.2510,5413109\r\n2023-01-17 15:45:00,134.8140,135.0800,134.6800,135.0060,3661056\r\n2023-01-17
146
+ 15:30:00,134.7690,135.0200,134.7390,134.8180,1396688\r\n2023-01-17 15:15:00,134.8540,134.9210,134.6700,134.7830,1085677\r\n2023-01-17
147
+ 15:00:00,134.9680,135.1600,134.7790,134.8530,1015091\r\n2023-01-17 14:45:00,135.1120,135.1490,134.8580,134.9840,847545\r\n2023-01-17
148
+ 14:30:00,134.7390,135.1600,134.7340,135.1260,1158455\r\n2023-01-17 14:15:00,134.7440,134.8520,134.4710,134.7390,1141209\r\n2023-01-17
149
+ 14:00:00,135.1320,135.1690,134.5710,134.7480,1023901\r\n2023-01-17 13:45:00,135.3880,135.4770,135.0670,135.1310,820502\r\n2023-01-17
150
+ 13:30:00,135.1320,135.4180,134.9980,135.3940,823247\r\n2023-01-17 13:15:00,135.0570,135.2190,134.9970,135.1260,830634\r\n2023-01-17
151
+ 13:00:00,135.3100,135.3880,134.9780,135.0610,1181279\r\n2023-01-17 12:45:00,134.8580,135.3580,134.7690,135.3240,1478105\r\n2023-01-17
152
+ 12:30:00,134.6650,135.0300,134.6300,134.8630,942795\r\n2023-01-17 12:15:00,134.6450,134.7310,134.3820,134.6690,1127715\r\n2023-01-17
153
+ 12:00:00,134.9430,135.0400,134.6200,134.6490,1002075\r\n2023-01-17 11:45:00,134.9810,135.1890,134.7690,134.9370,909778\r\n2023-01-17
154
+ 11:30:00,134.4660,135.2190,134.4320,134.9870,1983101\r\n2023-01-17 11:15:00,133.9050,134.6030,133.8960,134.4750,1919804\r\n2023-01-17
155
+ 11:00:00,134.6100,134.7520,133.7560,133.9040,2282180\r\n2023-01-17 10:45:00,134.7440,134.9910,134.4120,134.6190,2035772\r\n2023-01-17
156
+ 10:30:00,135.7670,135.8750,134.4910,134.7480,2918185\r\n2023-01-17 10:15:00,135.3300,136.3610,135.2310,135.7610,3519018\r\n2023-01-17
157
+ 10:00:00,134.2680,135.6360,134.2630,135.3390,3639677\r\n2023-01-17 09:45:00,133.9550,134.6930,133.9500,134.2710,2644061\r\n2023-01-17
158
+ 09:30:00,133.9100,134.6130,133.2100,133.9540,5496289\r\n2023-01-13 15:45:00,133.8950,133.9180,133.5380,133.7850,3746397\r\n2023-01-13
159
+ 15:30:00,133.6870,134.0070,133.6120,133.9090,2118978\r\n2023-01-13 15:15:00,133.3830,133.6990,133.3590,133.6900,1403037\r\n2023-01-13
160
+ 15:00:00,133.2250,133.4810,133.1500,133.3830,1302750\r\n2023-01-13 14:45:00,133.2150,133.3420,133.1200,133.2200,1038935\r\n2023-01-13
161
+ 14:30:00,133.3340,133.5110,133.1900,133.2290,1223800\r\n2023-01-13 14:15:00,133.1550,133.3720,133.0310,133.3340,1228248\r\n2023-01-13
162
+ 14:00:00,133.2250,133.3220,132.9710,133.1500,1205640\r\n2023-01-13 13:45:00,133.2550,133.4710,133.1400,133.2250,1246043\r\n2023-01-13
163
+ 13:30:00,132.7480,133.4210,132.7130,133.2630,1761614\r\n2023-01-13 13:15:00,132.5690,132.8060,132.4250,132.7370,1035880\r\n2023-01-13
164
+ 13:00:00,132.6290,132.7060,132.3860,132.5680,852197\r\n2023-01-13 12:45:00,132.5100,132.6960,132.3760,132.6320,1047491\r\n2023-01-13
165
+ 12:30:00,132.6090,132.6270,132.2470,132.5140,911447\r\n2023-01-13 12:15:00,132.3810,132.6960,132.2860,132.6030,900112\r\n2023-01-13
166
+ 12:00:00,132.3010,132.4780,132.2170,132.3940,926455\r\n2023-01-13 11:45:00,132.1820,132.3490,131.8440,132.3080,1375165\r\n2023-01-13
167
+ 11:30:00,132.1320,132.2690,131.8700,132.1910,1106358\r\n2023-01-13 11:15:00,132.5340,132.5670,132.0580,132.1360,1778202\r\n2023-01-13
168
+ 11:00:00,132.8370,133.0540,132.4650,132.5380,1838158\r\n2023-01-13 10:45:00,132.7480,133.0490,132.5740,132.8410,1750994\r\n2023-01-13
169
+ 10:30:00,132.5990,133.0640,132.3260,132.7370,2121920\r\n2023-01-13 10:15:00,132.4000,132.6470,132.0880,132.6030,2077111\r\n2023-01-13
170
+ 10:00:00,131.6360,132.5570,131.4920,132.3990,2886214\r\n2023-01-13 09:45:00,131.2730,131.7920,131.0250,131.6640,2642394\r\n2023-01-13
171
+ 09:30:00,131.0500,132.0340,130.7570,131.2820,4253768\r\n2023-01-12 15:45:00,132.2220,132.6570,131.8590,132.4790,3432538\r\n2023-01-12
172
+ 15:30:00,132.2810,132.5270,132.1680,132.2250,1620731\r\n2023-01-12 15:15:00,132.0630,132.4830,131.9190,132.2800,1587928\r\n2023-01-12
173
+ 15:00:00,132.4450,132.5270,131.9980,132.0740,1307882\r\n2023-01-12 14:45:00,132.4600,132.6560,132.1070,132.4440,1363280\r\n2023-01-12
174
+ 14:30:00,132.2890,132.6170,132.0980,132.4630,1472133\r\n2023-01-12 14:15:00,132.7880,132.8450,132.2270,132.2930,1239464\r\n2023-01-12
175
+ 14:00:00,133.1060,133.2030,132.6650,132.7970,1375847\r\n2023-01-12 13:45:00,132.7130,133.2820,132.6640,133.1140,1518268\r\n2023-01-12
176
+ 13:30:00,131.8940,132.7660,131.5120,132.7220,2435122\r\n2023-01-12 13:15:00,132.8030,133.0640,131.8490,131.9080,1607829\r\n2023-01-12
177
+ 13:00:00,132.8030,133.0440,132.4850,132.8110,1395646\r\n2023-01-12 12:45:00,133.0260,133.2130,132.7930,132.8110,1155360\r\n2023-01-12
178
+ 12:30:00,133.0960,133.3120,132.9320,133.0400,1572799\r\n2023-01-12 12:15:00,132.3810,133.1780,132.3460,133.0990,1890439\r\n2023-01-12
179
+ 12:00:00,132.1720,132.5570,131.9040,132.3850,1373934\r\n2023-01-12 11:45:00,131.9340,132.2700,131.6110,132.1760,1321383\r\n2023-01-12
180
+ 11:30:00,131.5160,132.0210,131.1640,131.9470,1416688\r\n2023-01-12 11:15:00,131.8440,131.8820,131.2630,131.5150,1249922\r\n2023-01-12
181
+ 11:00:00,131.5460,131.8420,131.0850,131.8380,1809483\r\n2023-01-12 10:45:00,131.7050,132.0470,131.4620,131.5450,1951060\r\n2023-01-12
182
+ 10:30:00,132.0730,132.5270,131.5910,131.6990,2217902\r\n2023-01-12 10:15:00,132.4550,132.8900,131.9290,132.0670,2758195\r\n2023-01-12
183
+ 10:00:00,131.3970,132.7460,131.2430,132.4540,3312376\r\n2023-01-12 09:45:00,131.2500,131.6240,130.5380,131.4010,3848820\r\n2023-01-12
184
+ 09:30:00,132.9370,133.3520,131.2240,131.2320,5781275\r\n2023-01-11 15:45:00,132.0230,132.6070,131.8690,132.5730,5987351\r\n2023-01-11
185
+ 15:30:00,132.0230,132.0610,131.7500,132.0320,1705148\r\n2023-01-11 15:15:00,131.8990,132.1600,131.8890,132.0190,1463953\r\n2023-01-11
186
+ 15:00:00,131.6260,132.0210,131.5860,131.9080,1612124\r\n2023-01-11 14:45:00,131.8980,131.9220,131.4920,131.6290,1128502\r\n2023-01-11
187
+ 14:30:00,131.5050,131.9710,131.4120,131.8990,1342064\r\n2023-01-11 14:15:00,131.4770,131.7530,131.4420,131.5050,1185374\r\n2023-01-11
188
+ 14:00:00,131.5070,131.5540,131.2580,131.4760,1155058\r\n2023-01-11 13:45:00,131.5660,131.6040,131.3030,131.5010,1085825\r\n2023-01-11
189
+ 13:30:00,131.9020,131.9760,131.5310,131.5700,1208250\r\n2023-01-11 13:15:00,132.1770,132.2000,131.5020,131.8980,1413961\r\n2023-01-11
190
+ 13:00:00,131.8540,132.3390,131.8260,132.1730,1760838\r\n2023-01-11 12:45:00,131.6900,132.0310,131.6700,131.8480,1149297\r\n2023-01-11
191
+ 12:30:00,131.8940,132.0210,131.6010,131.6990,1778715\r\n2023-01-11 12:15:00,131.6650,131.9610,131.5760,131.8980,1762701\r\n2023-01-11
192
+ 12:00:00,131.3970,131.7330,131.3220,131.6690,1552365\r\n2023-01-11 11:45:00,131.1390,131.4750,131.0750,131.3910,1619366\r\n2023-01-11
193
+ 11:30:00,130.7820,131.1760,130.5680,131.1380,1610293\r\n2023-01-11 11:15:00,130.7390,130.8990,130.6970,130.7900,1310190\r\n2023-01-11
194
+ 11:00:00,130.5830,130.7990,130.4740,130.7440,1602640\r\n2023-01-11 10:45:00,130.3840,130.8190,130.3300,130.5820,2102564\r\n2023-01-11
195
+ 10:30:00,131.1190,131.1770,130.1910,130.3980,2607748\r\n2023-01-11 10:15:00,130.4740,131.2150,130.2700,131.1230,3144073\r\n2023-01-11
196
+ 10:00:00,130.0020,130.6010,129.5950,130.4680,2645272\r\n2023-01-11 09:45:00,129.9770,130.6400,129.6740,129.9890,2976233\r\n2023-01-11
197
+ 09:30:00,130.3450,130.7000,129.5650,129.9910,4522200\r\n2023-01-10 15:45:00,129.2120,129.8660,129.1410,129.8620,3453530\r\n2023-01-10
198
+ 15:30:00,129.2520,129.4880,129.1180,129.2160,1458131\r\n2023-01-10 15:15:00,129.1330,129.3690,129.1080,129.2660,1355369\r\n2023-01-10
199
+ 15:00:00,129.2270,129.2550,128.8700,129.1420,1511889\r\n2023-01-10 14:45:00,129.2170,129.3190,129.0880,129.2310,1185254\r\n2023-01-10
200
+ 14:30:00,129.4800,129.5380,129.1580,129.2210,1117021\r\n2023-01-10 14:15:00,129.5450,129.6520,129.2870,129.4750,1402732\r\n2023-01-10
201
+ 14:00:00,129.3410,129.8060,129.3370,129.5540,1898998\r\n2023-01-10 13:45:00,128.9190,129.3890,128.9050,129.3400,1924753\r\n2023-01-10
202
+ 13:30:00,128.7650,129.1310,128.6810,128.9280,1215419\r\n2023-01-10 13:15:00,128.7750,128.9020,128.5320,128.7790,1378739\r\n2023-01-10
203
+ 13:00:00,128.8450,129.1210,128.7210,128.7840,1838773\r\n2023-01-10 12:45:00,128.6860,128.9820,128.5820,128.8490,1003492\r\n2023-01-10
204
+ 12:30:00,128.2290,128.9420,128.1660,128.7000,1493521\r\n2023-01-10 12:15:00,128.2690,128.3660,128.0850,128.2430,1271746\r\n2023-01-10
205
+ 12:00:00,127.9910,128.3660,127.5690,128.2820,1736393\r\n2023-01-10 11:45:00,128.0400,128.2070,127.7770,128.0040,1613180\r\n2023-01-10
206
+ 11:30:00,128.1400,128.3160,127.8870,128.0490,1312371\r\n2023-01-10 11:15:00,128.1500,128.3560,127.8470,128.1530,1892243\r\n2023-01-10
207
+ 11:00:00,128.2190,128.3260,127.9160,128.1430,1987704\r\n2023-01-10 10:45:00,127.3450,128.3260,127.2410,128.2130,2569791\r\n2023-01-10
208
+ 10:30:00,128.5170,128.5250,127.3520,127.3600,2983706\r\n2023-01-10 10:15:00,129.4520,129.9520,128.4430,128.5310,2795482\r\n2023-01-10
209
+ 10:00:00,129.1030,129.7870,128.7210,129.4540,2942621\r\n2023-01-10 09:45:00,129.2070,129.5280,128.6220,129.1070,3409102\r\n2023-01-10
210
+ 09:30:00,129.3910,130.3760,128.9050,129.2160,4395905\r\n2023-01-09 15:45:00,129.6190,129.6370,128.9990,129.3050,3582553\r\n2023-01-09
211
+ 15:30:00,129.5600,129.6870,129.2670,129.6130,1778658\r\n2023-01-09 15:15:00,129.4770,129.8160,129.4460,129.5590,1566557\r\n2023-01-09
212
+ 15:00:00,129.7880,129.9350,129.4660,129.4840,1533054\r\n2023-01-09 14:45:00,130.1960,130.2730,129.6940,129.7820,1401037\r\n2023-01-09
213
+ 14:30:00,130.5930,130.6770,130.0520,130.1990,1517874\r\n2023-01-09 14:15:00,130.5680,130.7690,130.3990,130.6020,1619617\r\n2023-01-09
214
+ 14:00:00,130.4930,130.8350,130.3410,130.5770,2115867\r\n2023-01-09 13:45:00,130.7220,130.7350,130.2900,130.5020,1882895\r\n2023-01-09
215
+ 13:30:00,131.5910,131.6140,130.6670,130.7260,1901786\r\n2023-01-09 13:15:00,131.5170,131.6720,131.4420,131.5950,1053537\r\n2023-01-09
216
+ 13:00:00,131.5560,131.7430,131.3530,131.5200,1217802\r\n2023-01-09 12:45:00,131.3580,131.6340,131.3480,131.5590,1062284\r\n2023-01-09
217
+ 12:30:00,131.8340,131.9320,131.3430,131.3610,1151819\r\n2023-01-09 12:15:00,131.9040,131.9430,131.6900,131.8430,1207244\r\n2023-01-09
218
+ 12:00:00,132.0330,132.0560,131.6610,131.9180,1424082\r\n2023-01-09 11:45:00,132.0610,132.2200,131.8990,132.0420,1413133\r\n2023-01-09
219
+ 11:30:00,132.1820,132.2790,131.8890,132.0670,1784388\r\n2023-01-09 11:15:00,132.3210,132.5080,132.0580,132.1810,2077028\r\n2023-01-09
220
+ 11:00:00,131.8340,132.4380,131.7600,132.3050,2311810\r\n2023-01-09 10:45:00,131.8240,132.2390,131.7500,131.8380,2441800\r\n2023-01-09
221
+ 10:30:00,131.6700,131.9390,131.5550,131.8330,2233026\r\n2023-01-09 10:15:00,131.2430,131.8370,131.0550,131.6640,3068089\r\n2023-01-09
222
+ 10:00:00,131.1090,131.7330,131.0660,131.2320,3445151\r\n2023-01-09 09:45:00,130.1560,131.1670,130.1470,131.1180,3518419\r\n2023-01-09
223
+ 09:30:00,129.5900,130.5510,129.5700,130.1600,5025104\r\n2023-01-06 15:45:00,128.9140,129.0910,128.4530,128.6200,6354069\r\n2023-01-06
224
+ 15:30:00,128.9290,129.1700,128.8650,128.9180,2525589\r\n2023-01-06 15:15:00,129.1130,129.2350,128.8100,128.9280,2147402\r\n2023-01-06
225
+ 15:00:00,128.9640,129.4090,128.9190,129.1120,2938553\r\n2023-01-06 14:45:00,128.8940,129.1110,128.7210,128.9670,2026129\r\n2023-01-06
226
+ 14:30:00,128.4570,128.9820,128.4180,128.8880,2234996\r\n2023-01-06 14:15:00,128.2790,128.6740,128.2290,128.4560,2248827\r\n2023-01-06
227
+ 14:00:00,127.9710,128.3660,127.9000,128.2810,1971350\r\n2023-01-06 13:45:00,127.7470,128.0080,127.6480,127.9700,1230499\r\n2023-01-06
228
+ 13:30:00,127.3650,127.8890,127.3600,127.7560,1691721\r\n2023-01-06 13:15:00,127.3100,127.5310,127.1810,127.3790,1132078\r\n2023-01-06
229
+ 13:00:00,127.0870,127.4320,127.0130,127.3180,1332157\r\n2023-01-06 12:45:00,127.2250,127.3330,126.9030,127.0910,1294385\r\n2023-01-06
230
+ 12:30:00,127.4460,127.5220,127.1520,127.2250,1443007\r\n2023-01-06 12:15:00,127.3100,127.6110,127.1320,127.4580,1651090\r\n2023-01-06
231
+ 12:00:00,127.0170,127.4920,127.0030,127.3090,1931796\r\n2023-01-06 11:45:00,126.4910,127.1540,126.4370,127.0110,2060642\r\n2023-01-06
232
+ 11:30:00,126.3820,126.8260,126.1390,126.4850,2155018\r\n2023-01-06 11:15:00,126.5160,126.7830,126.2880,126.3800,1787798\r\n2023-01-06
233
+ 11:00:00,126.5750,127.1740,126.4370,126.5150,2734482\r\n2023-01-06 10:45:00,126.1930,126.6470,126.1640,126.5440,2136941\r\n2023-01-06
234
+ 10:30:00,125.5130,126.6380,125.4730,126.1870,2610878\r\n2023-01-06 10:15:00,125.9250,126.4890,125.3840,125.5160,2660372\r\n2023-01-06
235
+ 10:00:00,124.9420,126.3890,124.9370,125.9240,4373930\r\n2023-01-06 09:45:00,124.1070,125.8330,124.0630,124.9450,3777542\r\n2023-01-06
236
+ 09:30:00,125.1400,126.3300,124.0330,124.1210,6070023\r\n2023-01-05 15:45:00,124.2270,124.4230,123.9040,124.1810,5635648\r\n2023-01-05
237
+ 15:30:00,124.3160,124.4520,124.1420,124.2250,2448840\r\n2023-01-05 15:15:00,124.3090,124.5120,124.1720,124.3100,2082922\r\n2023-01-05
238
+ 15:00:00,124.6290,124.6810,124.1720,124.3150,2384281\r\n2023-01-05 14:45:00,125.0610,125.2870,124.6140,124.6270,2445827\r\n2023-01-05
239
+ 14:30:00,125.0310,125.5250,125.0160,125.0740,1644570\r\n2023-01-05 14:15:00,125.2000,125.3660,124.9470,125.0330,1147697\r\n2023-01-05
240
+ 14:00:00,125.4180,125.6150,125.1550,125.1940,1344445\r\n2023-01-05 13:45:00,125.6670,125.7040,125.3140,125.4120,1195432\r\n2023-01-05
241
+ 13:30:00,125.6270,126.1810,125.5830,125.6620,1881027\r\n2023-01-05 13:15:00,124.9520,126.0120,124.9370,125.6210,2540822\r\n2023-01-05
242
+ 13:00:00,125.3840,125.4140,124.9470,124.9630,1339449\r\n2023-01-05 12:45:00,125.4880,125.6190,125.3140,125.3900,931652\r\n2023-01-05
243
+ 12:30:00,125.6370,125.9420,125.4340,125.4920,1089572\r\n2023-01-05 12:15:00,125.6960,125.7730,125.3340,125.6440,1292385\r\n2023-01-05
244
+ 12:00:00,125.8160,126.0960,125.6320,125.7000,1352333\r\n2023-01-05 11:45:00,126.0490,126.2200,125.7510,125.8190,1653343\r\n2023-01-05
245
+ 11:30:00,125.6870,126.0910,125.5630,126.0530,2128183\r\n2023-01-05 11:15:00,125.9350,126.0810,125.4530,125.7000,1723457\r\n2023-01-05
246
+ 11:00:00,125.5570,126.1410,125.2850,125.9340,2088956\r\n2023-01-05 10:45:00,126.0140,126.1710,125.4140,125.5610,2108908\r\n2023-01-05
247
+ 10:30:00,125.9050,126.0910,125.2950,126.0180,2943035\r\n2023-01-05 10:15:00,126.2230,126.3400,125.7710,125.8990,2681010\r\n2023-01-05
248
+ 10:00:00,126.5010,126.9060,126.0390,126.2460,3669287\r\n2023-01-05 09:45:00,124.9910,126.6270,124.5990,126.5150,4995536\r\n2023-01-05
249
+ 09:30:00,126.2630,126.3000,124.4600,125.0050,5613002\r\n2023-01-04 15:45:00,124.5150,125.6240,124.4210,125.5210,4882683\r\n2023-01-04
250
+ 15:30:00,124.9610,125.0880,124.4210,124.5180,2596098\r\n2023-01-04 15:15:00,125.4880,125.6840,124.9570,124.9850,2132671\r\n2023-01-04
251
+ 15:00:00,125.6070,125.9920,125.3740,125.4950,1965013\r\n2023-01-04 14:45:00,124.9520,125.6540,124.8380,125.6140,2090591\r\n2023-01-04
252
+ 14:30:00,124.8620,125.2470,124.5200,124.9470,2788347\r\n2023-01-04 14:15:00,125.8450,126.4790,124.7580,124.8710,3016051\r\n2023-01-04
253
+ 14:00:00,126.3020,127.0050,125.4140,125.8590,3477195\r\n2023-01-04 13:45:00,126.5410,126.6180,126.1980,126.3270,1069981\r\n2023-01-04
254
+ 13:30:00,126.3970,126.6260,126.3570,126.5510,964507\r\n2023-01-04 13:15:00,126.3520,126.6380,126.3080,126.3950,1030293\r\n2023-01-04
255
+ 13:00:00,126.3670,126.4390,126.0590,126.3560,1376606\r\n2023-01-04 12:45:00,127.0460,127.0540,126.3570,126.3660,1270344\r\n2023-01-04
256
+ 12:30:00,127.2010,127.3530,126.8840,127.0510,1124897\r\n2023-01-04 12:15:00,127.2160,127.7850,127.1520,127.1950,1844230\r\n2023-01-04
257
+ 12:00:00,126.8980,127.3030,126.8440,127.2160,1512221\r\n2023-01-04 11:45:00,127.2460,127.2730,126.8640,126.9020,1749357\r\n2023-01-04
258
+ 11:30:00,126.5210,127.5710,126.5060,127.2500,3407396\r\n2023-01-04 11:15:00,126.2230,126.6380,126.0990,126.5150,2253557\r\n2023-01-04
259
+ 11:00:00,126.0940,126.2550,125.6320,126.2230,2088713\r\n2023-01-04 10:45:00,125.7350,126.1610,125.7170,126.1270,2471002\r\n2023-01-04
260
+ 10:30:00,125.1300,125.8830,124.4740,125.7400,2750473\r\n2023-01-04 10:15:00,124.8820,125.1480,124.6090,125.1420,2828869\r\n2023-01-04
261
+ 10:00:00,125.7760,126.4790,124.2220,124.8660,5121969\r\n2023-01-04 09:45:00,125.3040,125.9990,125.0760,125.7990,4056481\r\n2023-01-04
262
+ 09:30:00,126.0240,126.6920,125.2650,125.3070,8179169\r\n2023-01-03 15:45:00,124.1370,124.5720,123.9540,124.2000,6493878\r\n2023-01-03
263
+ 15:30:00,123.7800,124.1540,123.7700,124.1310,2933961\r\n2023-01-03 15:15:00,123.8590,124.1840,123.6860,123.7730,2645981\r\n2023-01-03
264
+ 15:00:00,123.7800,123.9760,123.5470,123.8530,2165456\r\n2023-01-03 14:45:00,123.9680,124.4820,123.5860,123.7820,3196386\r\n2023-01-03
265
+ 14:30:00,123.7280,124.0150,123.3180,123.9620,2152954\r\n2023-01-03 14:15:00,123.8190,123.9760,123.5660,123.7240,1509326\r\n2023-01-03
266
+ 14:00:00,123.9680,124.1540,123.7650,123.8230,1688964\r\n2023-01-03 13:45:00,123.7600,123.9960,123.3380,123.9670,2134910\r\n2023-01-03
267
+ 13:30:00,123.8190,123.9860,123.6560,123.7730,1525935\r\n2023-01-03 13:15:00,123.4420,123.8960,123.3380,123.8030,1892722\r\n2023-01-03
268
+ 13:00:00,123.7500,123.9160,123.3580,123.4410,1700993\r\n2023-01-03 12:45:00,123.8040,123.8560,123.4970,123.7440,1995756\r\n2023-01-03
269
+ 12:30:00,123.8090,124.0950,123.7060,123.8130,1632983\r\n2023-01-03 12:15:00,124.1270,124.1400,123.4960,123.8130,2260197\r\n2023-01-03
270
+ 12:00:00,123.8990,124.2090,123.8350,124.1310,2027857\r\n2023-01-03 11:45:00,124.1070,124.1450,123.6360,123.8950,3044469\r\n2023-01-03
271
+ 11:30:00,124.4950,124.5220,123.9740,124.1170,2546604\r\n2023-01-03 11:15:00,123.9780,124.6110,123.9050,124.4930,2773011\r\n2023-01-03
272
+ 11:00:00,124.7380,125.0190,123.8740,123.9790,4858972\r\n2023-01-03 10:45:00,124.5140,124.8750,124.3710,124.7420,3326033\r\n2023-01-03
273
+ 10:30:00,124.6040,124.9290,124.1920,124.4980,4825857\r\n2023-01-03 10:15:00,125.0610,125.2020,124.3710,124.6080,4607743\r\n2023-01-03
274
+ 10:00:00,126.0740,126.4390,124.9170,125.0590,4751302\r\n2023-01-03 09:45:00,128.9940,129.2500,126.0100,126.0710,6031150\r\n2023-01-03
275
+ 09:30:00,129.3610,130.0150,128.5520,129.0030,7092582\r\n"
276
+ headers:
277
+ Allow:
278
+ - GET, HEAD, OPTIONS
279
+ CF-Cache-Status:
280
+ - DYNAMIC
281
+ CF-RAY:
282
+ - 89a4a7dcad090b38-AMS
283
+ Connection:
284
+ - keep-alive
285
+ Content-Disposition:
286
+ - attachment; filename=intraday_15min_AAPL.csv
287
+ Content-Length:
288
+ - '33793'
289
+ Content-Type:
290
+ - application/x-download
291
+ Cross-Origin-Opener-Policy:
292
+ - same-origin
293
+ Date:
294
+ - Thu, 27 Jun 2024 10:11:55 GMT
295
+ Nel:
296
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
297
+ Referrer-Policy:
298
+ - same-origin
299
+ Report-To:
300
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1719483115&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=I%2Fdorp9afZLGsHjST0hUutGGulH8RfOo3mqJP0ca6cw%3D"}]}'
301
+ Reporting-Endpoints:
302
+ - heroku-nel=https://nel.heroku.com/reports?ts=1719483115&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=I%2Fdorp9afZLGsHjST0hUutGGulH8RfOo3mqJP0ca6cw%3D
303
+ Server:
304
+ - cloudflare
305
+ Vary:
306
+ - Cookie, Origin
307
+ Via:
308
+ - 1.1 vegur
309
+ X-Content-Type-Options:
310
+ - nosniff
311
+ X-Frame-Options:
312
+ - DENY
313
+ status:
314
+ code: 200
315
+ message: OK
316
+ version: 1
openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_historical_eps_fetcher_urllib3_v1.yaml ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ interactions:
2
+ - request:
3
+ body: null
4
+ headers:
5
+ Accept:
6
+ - application/json
7
+ Accept-Encoding:
8
+ - gzip, deflate
9
+ Connection:
10
+ - keep-alive
11
+ method: GET
12
+ uri: https://www.alphavantage.co/query?apikey=MOCK_API_KEY&function=EARNINGS&symbol=AAPL
13
+ response:
14
+ body:
15
+ string: !!binary |
16
+ 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
56
+ headers:
57
+ Allow:
58
+ - GET, HEAD, OPTIONS
59
+ CF-Cache-Status:
60
+ - DYNAMIC
61
+ CF-RAY:
62
+ - 85d74473ed9d137e-YVR
63
+ Connection:
64
+ - keep-alive
65
+ Content-Encoding:
66
+ - gzip
67
+ Content-Type:
68
+ - application/json
69
+ Cross-Origin-Opener-Policy:
70
+ - same-origin
71
+ Date:
72
+ - Fri, 01 Mar 2024 06:59:58 GMT
73
+ Nel:
74
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
75
+ Referrer-Policy:
76
+ - same-origin
77
+ Report-To:
78
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1709276398&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=HYLkepa3xuJf8ZP93wYuVeE7fHXoMnoAaRfYOuePI1s%3D"}]}'
79
+ Reporting-Endpoints:
80
+ - heroku-nel=https://nel.heroku.com/reports?ts=1709276398&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=HYLkepa3xuJf8ZP93wYuVeE7fHXoMnoAaRfYOuePI1s%3D
81
+ Server:
82
+ - cloudflare
83
+ Transfer-Encoding:
84
+ - chunked
85
+ Vary:
86
+ - Cookie, Origin
87
+ Via:
88
+ - 1.1 vegur
89
+ X-Content-Type-Options:
90
+ - nosniff
91
+ X-Frame-Options:
92
+ - DENY
93
+ status:
94
+ code: 200
95
+ message: OK
96
+ - request:
97
+ body: null
98
+ headers:
99
+ Accept:
100
+ - application/json
101
+ Accept-Encoding:
102
+ - gzip, deflate
103
+ Connection:
104
+ - keep-alive
105
+ method: GET
106
+ uri: https://www.alphavantage.co/query?apikey=MOCK_API_KEY&function=EARNINGS&symbol=MSFT
107
+ response:
108
+ body:
109
+ string: !!binary |
110
+ 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
152
+ AAA=
153
+ headers:
154
+ Allow:
155
+ - GET, HEAD, OPTIONS
156
+ CF-Cache-Status:
157
+ - DYNAMIC
158
+ CF-RAY:
159
+ - 85d74473e8ad8453-YVR
160
+ Connection:
161
+ - keep-alive
162
+ Content-Encoding:
163
+ - gzip
164
+ Content-Type:
165
+ - application/json
166
+ Cross-Origin-Opener-Policy:
167
+ - same-origin
168
+ Date:
169
+ - Fri, 01 Mar 2024 06:59:58 GMT
170
+ Nel:
171
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
172
+ Referrer-Policy:
173
+ - same-origin
174
+ Report-To:
175
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1709276398&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=HYLkepa3xuJf8ZP93wYuVeE7fHXoMnoAaRfYOuePI1s%3D"}]}'
176
+ Reporting-Endpoints:
177
+ - heroku-nel=https://nel.heroku.com/reports?ts=1709276398&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=HYLkepa3xuJf8ZP93wYuVeE7fHXoMnoAaRfYOuePI1s%3D
178
+ Server:
179
+ - cloudflare
180
+ Transfer-Encoding:
181
+ - chunked
182
+ Vary:
183
+ - Cookie, Origin
184
+ Via:
185
+ - 1.1 vegur
186
+ X-Content-Type-Options:
187
+ - nosniff
188
+ X-Frame-Options:
189
+ - DENY
190
+ status:
191
+ code: 200
192
+ message: OK
193
+ version: 1
openbb_platform/providers/alpha_vantage/tests/record/http/test_alpha_vantage_fetchers/test_av_historical_eps_fetcher_urllib3_v2.yaml ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ interactions:
2
+ - request:
3
+ body: null
4
+ headers:
5
+ Accept:
6
+ - application/json
7
+ Accept-Encoding:
8
+ - gzip, deflate
9
+ Connection:
10
+ - keep-alive
11
+ method: GET
12
+ uri: https://www.alphavantage.co/query?apikey=MOCK_API_KEY&function=EARNINGS&symbol=AAPL
13
+ response:
14
+ body:
15
+ string: !!binary |
16
+ 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
57
+ mObT8/J6AwAA//8DAMRmGsH/jQAA
58
+ headers:
59
+ Allow:
60
+ - GET, HEAD, OPTIONS
61
+ CF-Cache-Status:
62
+ - DYNAMIC
63
+ CF-RAY:
64
+ - 89a4a7e3dd980e10-AMS
65
+ Connection:
66
+ - keep-alive
67
+ Content-Encoding:
68
+ - gzip
69
+ Content-Type:
70
+ - application/json
71
+ Cross-Origin-Opener-Policy:
72
+ - same-origin
73
+ Date:
74
+ - Thu, 27 Jun 2024 10:11:56 GMT
75
+ Nel:
76
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
77
+ Referrer-Policy:
78
+ - same-origin
79
+ Report-To:
80
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1719483116&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=VvE1FMSjgc8ZK9stjN0j9fAim74NZBpZJko2Ddrcx%2BM%3D"}]}'
81
+ Reporting-Endpoints:
82
+ - heroku-nel=https://nel.heroku.com/reports?ts=1719483116&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=VvE1FMSjgc8ZK9stjN0j9fAim74NZBpZJko2Ddrcx%2BM%3D
83
+ Server:
84
+ - cloudflare
85
+ Transfer-Encoding:
86
+ - chunked
87
+ Vary:
88
+ - Cookie, Origin
89
+ Via:
90
+ - 1.1 vegur
91
+ X-Content-Type-Options:
92
+ - nosniff
93
+ X-Frame-Options:
94
+ - DENY
95
+ status:
96
+ code: 200
97
+ message: OK
98
+ - request:
99
+ body: null
100
+ headers:
101
+ Accept:
102
+ - application/json
103
+ Accept-Encoding:
104
+ - gzip, deflate
105
+ Connection:
106
+ - keep-alive
107
+ method: GET
108
+ uri: https://www.alphavantage.co/query?apikey=MOCK_API_KEY&function=EARNINGS&symbol=MSFT
109
+ response:
110
+ body:
111
+ string: !!binary |
112
+ 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
154
+ /7p+XD/98dvf/wAAAP//AwCb9eTasI0AAA==
155
+ headers:
156
+ Allow:
157
+ - GET, HEAD, OPTIONS
158
+ CF-Cache-Status:
159
+ - DYNAMIC
160
+ CF-RAY:
161
+ - 89a4a7e3df059fa0-AMS
162
+ Connection:
163
+ - keep-alive
164
+ Content-Encoding:
165
+ - gzip
166
+ Content-Type:
167
+ - application/json
168
+ Cross-Origin-Opener-Policy:
169
+ - same-origin
170
+ Date:
171
+ - Thu, 27 Jun 2024 10:11:56 GMT
172
+ Nel:
173
+ - '{"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}'
174
+ Referrer-Policy:
175
+ - same-origin
176
+ Report-To:
177
+ - '{"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1719483116&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=VvE1FMSjgc8ZK9stjN0j9fAim74NZBpZJko2Ddrcx%2BM%3D"}]}'
178
+ Reporting-Endpoints:
179
+ - heroku-nel=https://nel.heroku.com/reports?ts=1719483116&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=VvE1FMSjgc8ZK9stjN0j9fAim74NZBpZJko2Ddrcx%2BM%3D
180
+ Server:
181
+ - cloudflare
182
+ Transfer-Encoding:
183
+ - chunked
184
+ Vary:
185
+ - Cookie, Origin
186
+ Via:
187
+ - 1.1 vegur
188
+ X-Content-Type-Options:
189
+ - nosniff
190
+ X-Frame-Options:
191
+ - DENY
192
+ status:
193
+ code: 200
194
+ message: OK
195
+ version: 1
openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Test the Alpha Vantage fetchers."""
2
+
3
+ from datetime import date
4
+
5
+ import pytest
6
+ from openbb_alpha_vantage.models.equity_historical import AVEquityHistoricalFetcher
7
+ from openbb_alpha_vantage.models.historical_eps import AVHistoricalEpsFetcher
8
+ from openbb_core.app.service.user_service import UserService
9
+
10
+ test_credentials = UserService().default_user_settings.credentials.model_dump(
11
+ mode="json"
12
+ )
13
+
14
+
15
+ @pytest.fixture(scope="module")
16
+ def vcr_config():
17
+ """VCR configuration."""
18
+ return {
19
+ "filter_headers": [("User-Agent", None)],
20
+ "filter_query_parameters": [
21
+ ("apikey", "MOCK_API_KEY"),
22
+ ],
23
+ }
24
+
25
+
26
+ @pytest.mark.record_http
27
+ def test_av_equity_historical_fetcher(credentials=test_credentials):
28
+ """Test the Alpha Vantage Equity Historical fetcher."""
29
+ params = {
30
+ "symbol": "AAPL",
31
+ "start_date": date(2023, 1, 1),
32
+ "end_date": date(2023, 1, 10),
33
+ "interval": "15m",
34
+ }
35
+
36
+ fetcher = AVEquityHistoricalFetcher()
37
+ result = fetcher.test(params, credentials)
38
+ assert result is None
39
+
40
+
41
+ @pytest.mark.record_http
42
+ def test_av_historical_eps_fetcher(credentials=test_credentials):
43
+ """Test the Alpha Vantage Historical Earnings fetcher."""
44
+ params = {"symbol": "AAPL,MSFT", "period": "quarter", "limit": 4}
45
+
46
+ fetcher = AVHistoricalEpsFetcher()
47
+ result = fetcher.test(params, credentials)
48
+ assert result is None