Compare commits

...

158 Commits

Author SHA1 Message Date
ValueRaider
6f0f408880 Disable setting user-agent, curl_cffi does that 2025-05-06 19:28:17 +01:00
ValueRaider
2608f3660c Merge pull request #2445 from R5dan/contributing
Fix contributing.md
2025-05-05 14:19:47 +01:00
R5dan
e614e6b8ff Fix contributing.md 2025-05-04 19:39:24 +01:00
ValueRaider
4c609b42c6 fix typo in setup.py 2025-05-03 12:14:48 +01:00
ValueRaider
8ad7b89a9a fix ruff 2025-05-03 11:19:43 +01:00
ValueRaider
615db18a96 Merge branch 'dev' into main 2025-05-03 11:18:20 +01:00
ValueRaider
537dd468f2 Version 0.2.58 2025-05-02 23:18:26 +01:00
ValueRaider
5fd0d0f66f Merge pull request #2430 from bretsky/fix/curl-cffi-cookies
Incorporate curl_cffi to avoid rate limiting and cookie errors
2025-05-02 22:47:14 +01:00
ValueRaider
fcecf2aa59 Merge pull request #2433 from R5dan/contributing
Contributing
2025-05-02 21:40:41 +01:00
ValueRaider
ad33ab9b77 Reduce curl_cffi min version 2025-05-02 21:36:07 +01:00
bretsky
5a3ab9c044 Use curl_cffi impersonate for requests 2025-05-02 21:28:58 +01:00
R5dan
7db2572799 Update docs url 2025-05-02 19:30:43 +01:00
R5dan
11ef919e88 Add how to run 2025-05-02 10:18:40 +01:00
R5dan
0e5fb9614f Contributing 2025-05-02 10:10:54 +01:00
ValueRaider
af87fbbd53 Merge pull request #2425 from R5dan/fix-screener
Fix Screener
2025-05-01 22:52:53 +01:00
R5dan
d07e2061a3 Fix screener size/count for predefined. 2025-05-01 22:51:38 +01:00
ValueRaider
40aa002867 Version 0.2.57 2025-04-28 21:54:13 +01:00
ValueRaider
71e692a268 Merge pull request #2418 from ranaroussi/hotfix/proxy-deprecation-msg
Fix 'proxy deprecation' msg
2025-04-28 21:49:14 +01:00
ValueRaider
45e8d6f6f7 Also fix Tickers proxy pass-thru 2025-04-28 21:11:09 +01:00
ValueRaider
1fcf8ad57e Fix 'proxy deprecation' msg 2025-04-28 20:16:24 +01:00
ValueRaider
2c93db3a79 Merge pull request #2201 from dhruvan2006/feature/websocket
Feature: WebSocket Client for Live Data Streaming
2025-04-27 21:36:56 +01:00
Dhruvan Gnanadhandayuthapani
fc5d29558b Add WebSocket support 2025-04-27 20:39:20 +02:00
Dhruvan Gnanadhandayuthapani
290bf9b7cf Add protobuf files 2025-04-27 20:35:05 +02:00
ValueRaider
13b26a99d0 README: fix docs url 2025-04-23 22:31:56 +01:00
ValueRaider
c399feabe6 Version 0.2.56 2025-04-23 22:20:32 +01:00
ValueRaider
e0fdd5823f Merge pull request #2410 from ranaroussi/dev
sync dev -> main
2025-04-23 22:18:43 +01:00
ValueRaider
1ed7c39e94 Prices fix: improve handling empty data 2025-04-23 21:48:40 +01:00
ValueRaider
fee9af07ce Fix tests and a typo 2025-04-23 21:46:36 +01:00
ValueRaider
d64777c6e7 Add new config to RST docs 2025-04-23 19:15:35 +01:00
ValueRaider
cfc7142c56 Merge pull request #2391 from ranaroussi/feature/config
Config
2025-04-01 19:36:44 +01:00
ValueRaider
89f1934bd6 Config 1st version: just proxy 2025-03-31 19:06:43 +01:00
ValueRaider
07651ed2f4 Merge pull request #2389 from ranaroussi/fix/prices-live-combine
Fix fix_Yahoo_returning_live_separate()
2025-03-31 19:06:06 +01:00
ValueRaider
b1bb75113c Merge pull request #2364 from dhruvan2006/feature/lookup
Feature: Ticker lookups
2025-03-30 21:26:57 +01:00
ValueRaider
a358c8848f Merge pull request #2388 from JanMkl/fix-issue-2301
Fixes issues 2301 and 2383 AttributeError: module 'requests.cookies' has no attribute 'update'
2025-03-30 21:20:05 +01:00
ValueRaider
fbe9f8f119 Fix fix_Yahoo_returning_live_separate()
Was not handling live row on/just-after New Years.
Also fixed prepost interval being merged, incorrectly.
2025-03-30 20:38:11 +01:00
Jan Melen
00fec80f63 Merge branch 'dev' into fix-issue-2301 2025-03-30 09:02:59 +03:00
Jan Melen
81c6b2d2e6 Fixes issues 2301 and 2383 AttributeError
- In utils.py line 165 if the session is None then _requests is
  mistakenly passed to as session to data.py which causes attribute
  error: module 'requests.cookies' has no attribute 'update'
- The above condition happens only when searching tickers with ISIN
  numbers
- Added tests with ISIN numbers
- Added tickerBase to raise an ValueError if an empty tickername is
  passed or isin search results in to empty ticker. This is to have
  consistent behaviour with utils.get_all_by_isin()
- Corrected ruff check failures
- Rebasing to latest upstream/dev
- Updated the value error to contain the ISIN number that wasn't found
2025-03-26 23:57:00 +02:00
ValueRaider
29162bdd01 Merge pull request #2382 from JanMkl/fix-issue-2343
Fixes issue 2343 and 2363 Empty result and QuoteResponse
2025-03-26 21:03:02 +00:00
Jan Melen
587fdd032b Fixes issue 2343 and 2363 Empty result and QuoteResponse
- Check that if result from _fetch was None and either update the result
  with additional info or set the result as the additional info.
- Added test_empty_info test case to protect if the behavior in Yahoo
  changes.
- Fixed typo on line 1024
2025-03-26 06:26:28 +02:00
ValueRaider
8cc002ecbf Merge pull request #2378 from ranaroussi/fix/prices-end
Fix converting end epoch to localized dt
2025-03-23 16:08:16 +00:00
ValueRaider
092a0c8193 Fix converting end epoch to localized dt 2025-03-23 16:07:22 +00:00
Dhruvan Gnanadhandayuthapani
8908724f3c Add Lookup module documentation and examples 2025-03-23 15:06:17 +01:00
Ran Aroussi
4ecd6a67cf Updated link 2025-03-22 13:21:44 +00:00
ValueRaider
f3f6739153 README: fix docs link 2025-03-22 11:09:55 +00:00
ValueRaider
9c9f305b0a Merge pull request #2375 from ranaroussi/main
sync main -> dev
2025-03-20 20:44:18 +00:00
ValueRaider
509a33b71d Merge pull request #2374 from ranaroussi/dev-documented
sync Sphinx docs -> dev
2025-03-20 20:42:20 +00:00
ValueRaider
6af17db77d Merge pull request #2373 from ranaroussi/dev
sync dev -> Sphinx docs
2025-03-20 20:39:07 +00:00
ValueRaider
5cc1197c5f Version 0.2.55 2025-03-20 20:31:28 +00:00
ValueRaider
21a80ec719 Merge pull request #2372 from ranaroussi/dev
sync dev -> main
2025-03-20 20:27:45 +00:00
ValueRaider
ca011b0738 Merge pull request #2369 from ranaroussi/fix/prices-tz-fetch-backup
In very rare case _fetch_ticker_tz() fails, get TZ from info
2025-03-19 21:15:39 +00:00
ValueRaider
f26b436e0a In very rare case _fetch_ticker_tz() fails, get TZ from info 2025-03-19 21:11:59 +00:00
ValueRaider
f208f09336 Merge pull request #2345 from dhruvan2006/fix/history-cache
Fix: History caching
2025-03-19 19:49:32 +00:00
Dhruvan Gnanadhandayuthapani
f831ac2c1b Fix history caching and allow period in data retrieval 2025-03-19 12:54:30 +01:00
ValueRaider
e195f2c6c5 Merge pull request #2368 from ranaroussi/fix/price-repair-various
Price repair tweaks & fixes
2025-03-17 21:41:19 +00:00
ValueRaider
db5d0c9207 Price repair tweaks & fixes
Div repair
- new check for div-too-big AND adjust-too-small
- improve handling div_too_big_and_pre_split

_fix_prices_sudden_change
- fix divide-by-zero error
- special handling for comparing 'relativedelta' with another

Tests
- remove delisted tickers
- update intraday test data so fetches work
- fix intraday div-merge tests
2025-03-17 21:40:29 +00:00
ValueRaider
918eb31583 Merge pull request #2366 from ranaroussi/fix/earnings-dates-tz
Fix earnings dates tz
2025-03-17 21:37:24 +00:00
ValueRaider
390422fe6b Yahoo now returning earnings dates in UTC, stop assuming it's in exchange TZ 2025-03-16 15:55:40 +00:00
Dhruvan Gnanadhandayuthapani
3a7b802b20 Add unit tests for Lookup functionality 2025-03-16 03:07:57 +01:00
Dhruvan Gnanadhandayuthapani
287536ad15 Add Lookup class for Yahoo Finance ticker lookups 2025-03-16 02:57:27 +01:00
ValueRaider
25035a0ff3 Merge pull request #2354 from JanMkl/fix-issue-2343
Fixes issue 2343
2025-03-12 18:29:02 +00:00
Jan Melen
383b60d349 Fixes issue 2343
- Check that result is not zero length before appending it to query_info
2025-03-12 06:31:02 +02:00
ValueRaider
f28284a42d Merge pull request #2321 from JanMkl/dev
Direct TTM Financial Data Retrieval Feature
2025-03-02 19:38:10 +00:00
ValueRaider
fa3094daed Bug report formatting 2025-03-01 18:02:38 +00:00
Jan Melen
102e266eab Direct TTM Financial Data Retrieval Feature
- Fetches the TTM values for cash flow and income statement from Yahoo.
- Added tests test_ttm_income_statement and test_ttm_cash_flow.
- When trailing 12 months income statement is fetched Yahoo returns
  income statement for last 5 quarters out of which only the latest is
  fully populated. Rest have NaN values and can be ignored.
- get_financials_time_series when called with timescale trailing removes
  from data frame the extra columns.
- Added quarterly_income_stmt to financials documentation
- Added ttm_income_stmt to financials documentation
- Added quarterly_cashflow to financials documentation
- Added ttm_cashflow to financials documentation
2025-02-27 18:33:32 +02:00
ValueRaider
31cc2439f7 Merge pull request #2326 from dhruvan2006/refactor/log-user-agent
Log user agent
2025-02-24 19:54:03 +00:00
Dhruvan Gnanadhandayuthapani
9b74b4e11f Add debug log for user-agent header 2025-02-24 20:40:49 +01:00
Ran Aroussi
41426f6678 added star history :) 2025-02-23 21:33:26 +00:00
Ran Aroussi
f09bc07ecc Update conf.py with logo 2025-02-22 22:35:52 +00:00
Ran Aroussi
dba0cba00b yfinance logos 2025-02-22 22:34:35 +00:00
Ran Aroussi
eeb2d483d3 Update conf.py 2025-02-22 22:21:27 +00:00
Ran Aroussi
9a6f147de5 Update conf.py 2025-02-22 22:17:21 +00:00
Ran Aroussi
7be3069b6f Added docs logo 2025-02-22 22:16:13 +00:00
Ran Aroussi
70c84a3482 Set docs domain to yfinance-python.org 2025-02-22 22:10:50 +00:00
Ran Aroussi
ae8720f007 Delete .DS_Store 2025-02-22 19:26:14 +00:00
Ran Aroussi
c388ca73e8 Minor design changes to readme file 2025-02-22 19:25:06 +00:00
Ran Aroussi
7709bc6ae3 yfinance "logo" 2025-02-22 19:06:11 +00:00
Ran Aroussi
9b33910a98 yfinance "logo" 2025-02-22 18:57:12 +00:00
ValueRaider
0ed941c2f5 Merge pull request #2268 from sshcli/PR1
Update README.md
2025-02-22 17:23:44 +00:00
ValueRaider
f2a8d01a13 Merge pull request #2313 from ranaroussi/main
sync main -> dev
2025-02-22 13:02:49 +00:00
ValueRaider
403607c721 Version 0.2.54 2025-02-18 22:16:14 +00:00
ValueRaider
604f74ea5e Merge pull request #2277 from dhruvan2006/fix/user-agent
Fix: Change user-agent headers to resolve yfinance download issues
2025-02-18 22:14:43 +00:00
Dhruvan Gnanadhandayuthapani
95b59a7d53 Randomly pick User-Agent header on startup 2025-02-18 23:07:04 +01:00
sshcli
0b8ae726cb Update README.md 2025-02-17 01:16:52 +00:00
ValueRaider
1ddc38c04f Version 0.2.53 2025-02-15 18:16:37 +00:00
ValueRaider
fcab4ea37e Merge pull request #2264 from ranaroussi/dev
sync dev -> main
2025-02-15 18:14:44 +00:00
ValueRaider
90053ab7c3 Merge pull request #2265 from ranaroussi/dev
sync dev -> Sphinx docs
2025-02-15 18:14:33 +00:00
ValueRaider
d40ad6282a Merge pull request #2260 from ranaroussi/fix/price-div-repair-tweaks
Improve prices div repair
2025-02-15 17:25:21 +00:00
ValueRaider
c95c02fdfc Improve prices div repair
Extend div-repair to intraday
Increase lookbacks for 'div date wrong' and 'phantom div'
Slightly loosen default 'false threshold' for cluster of mixed False/True
Fix bugs in:
- detect 'phantom div'
- handle div-too-big-and-missing-split

Stop checking for down-changes after negative adj-close
Handle avg-volume=0%
2025-02-15 17:10:07 +00:00
ValueRaider
5fb9cab817 Disable pytest.yml, need to mock all GETs to restore 2025-02-15 17:00:38 +00:00
ValueRaider
1c39ca4762 Merge pull request #2256 from dhruvan2006/fix/multi-bugs
Fix: Interval check and error message formatting in `multi.py`
2025-02-02 17:32:47 +00:00
Dhruvan Gnanadhandayuthapani
27868a4677 Fix interval check and error message formatting in multi.py 2025-02-02 14:15:50 +01:00
ValueRaider
0da75493dc Merge pull request #2233 from dhruvan2006/fix/tests
Add GitHub Actions workflow and fix failing tests
2025-02-01 14:59:14 +00:00
ValueRaider
14c6d05854 Merge pull request #2253 from dhruvan2006/fix/doc-see-also-links
Fix: Broken "See also" links in documentation
2025-02-01 13:31:23 +00:00
ValueRaider
8e369a2736 Merge pull request #2250 from R5dan/fix-market-doc
Fix Market Docs
2025-02-01 13:25:38 +00:00
R5dan
e09f77eb06 Fix 2025-01-31 22:45:08 +00:00
R5dan
7db798e900 Fix docs 2025-01-31 22:45:08 +00:00
ValueRaider
3b7758b3ab Version 0.2.52 2025-01-31 22:42:19 +00:00
Dhruvan Gnanadhandayuthapani
b729bcb1df Fix broken 'See also' links in docs 2025-01-31 15:12:36 +01:00
ValueRaider
6d7c5b6f4c Merge pull request #2249 from ranaroussi/fix/cookie-csrf-exception
Stop CSRF-cookie-fetch fail killing yfinance
2025-01-30 20:25:32 +00:00
ValueRaider
45568fd765 Stop CSRF-cookie-fetch fail killing yfinance 2025-01-30 20:20:43 +00:00
ValueRaider
fc020d953a Merge pull request #2247 from dhruvan2006/refactor/earnings-dates
Refactor: Earnings Dates – Switch to API Fetching
2025-01-29 21:55:27 +00:00
Dhruvan Gnanadhandayuthapani
bc645bb7dd Refactor earnings dates to use API instead of HTML 2025-01-29 21:53:58 +01:00
Dhruvan Gnanadhandayuthapani
74198aeed4 Add new test workflow 2025-01-27 23:53:36 +01:00
Dhruvan Gnanadhandayuthapani
890922f68b Fix tests 2025-01-27 23:53:29 +01:00
ValueRaider
44ef4a73ac Merge pull request #2244 from dhruvan2006/fix/holders-bad-data
Fix: Bad data in Holders
2025-01-26 21:23:19 +00:00
ValueRaider
c745df183a Merge pull request #2212 from ocp1006/ocp1006/fix_pre_post_fetch
Add pre- / post-stock prices (and other useful information)
2025-01-26 21:19:54 +00:00
Dhruvan Gnanadhandayuthapani
0e069dbbff Fix bad data in Holders 2025-01-26 21:27:43 +01:00
ValueRaider
25144351a4 Merge pull request #2230 from ranaroussi/feature/download-warn-autoadjust
Warn user when use download() without specifying auto_adjust
2025-01-25 20:59:14 +00:00
ValueRaider
3dd7e40df2 Merge pull request #2234 from dhruvan2006/fix/holders
Fix: Failed to parse holders JSON data
2025-01-22 21:50:05 +00:00
Dhruvan Gnanadhandayuthapani
5bbcedfe2e Fix failed to parse holders JSON data 2025-01-22 19:31:16 +01:00
ValueRaider
fc049e1e0d Warn user when use download() without specifying auto_adjust 2025-01-19 20:30:35 +00:00
ValueRaider
92c3b9066a Merge pull request #2229 from ranaroussi/dev
sync dev -> Sphinx docs #3
2025-01-18 16:29:12 +00:00
ValueRaider
00a44a8132 Fix dead links in docs API index.rst 2025-01-18 16:28:23 +00:00
ValueRaider
4ec93d90f1 Version 0.2.52 2025-01-18 16:14:36 +00:00
ValueRaider
1081f1e809 Merge pull request #2226 from ranaroussi/dev
sync dev -> main
2025-01-18 16:09:49 +00:00
ValueRaider
94327906df Merge pull request #2228 from ranaroussi/dev
sync dev -> Sphinx docs #2
2025-01-18 16:09:40 +00:00
ValueRaider
fed35b175f Fix typo in screener RST doc file 2025-01-18 16:08:48 +00:00
ValueRaider
07474123a2 Merge pull request #2227 from ranaroussi/dev
sync dev -> Sphinx docs
2025-01-18 16:01:19 +00:00
ValueRaider
3f6a46d77d Merge pull request #2207 from ranaroussi/feature/improve-screener-docs
Improve Screener docs
2025-01-18 11:02:35 +00:00
ValueRaider
dee9a55e43 Simplify Screener & improve its docs
- screener now just a function, not a class
- add 'FundQuery' query class
- add 'IS-IN' operator
- fix 'GTE' & 'LTE' operators
- more exchanges
Predefined tweaks:
- convert predefined query strings to use EquityQuery (better docs)
- send predefined queries to Yahoo's predefined endpoint
- expose PREDEFINED_SCREENER_QUERIES via __init__.py
- screen() argument defaults don't apply to predefineds
2025-01-17 22:15:18 +00:00
ValueRaider
20b3b438e2 Merge pull request #2211 from dhruvan2006/fix/custom-period
Fix: Restore dev branch regression with Ticker.history()
2025-01-11 20:57:26 +00:00
ocp1006
0be2ce1fd5 Add pre- / post-stock prices (and other useful information) 2025-01-08 20:11:26 +02:00
Dhruvan Gnanadhandayuthapani
2d60f9ad2a Fix custom periods 2025-01-07 13:54:50 +01:00
Dhruvan Gnanadhandayuthapani
2919ccb732 Add utils method for validating period 2025-01-07 13:52:40 +01:00
ValueRaider
ffa697cea1 Merge pull request #2202 from dhruvan2006/fix/search-quotes
Fix: Extra key in Search quotes
2025-01-05 15:09:31 +00:00
Dhruvan Gnanadhandayuthapani
e3aae8a8ba Expand Search test suite 2025-01-03 00:35:53 +01:00
Dhruvan Gnanadhandayuthapani
4ded15740e Fix extra row in search quotes 2025-01-03 00:33:50 +01:00
ValueRaider
506f792772 Merge pull request #2199 from dhruvan2006/fix/requirements
Added missing extra dependencies to requirements.txt
2025-01-02 21:23:27 +00:00
Dhruvan Gnanadhandayuthapani
5a342cf8b0 Add missing dependencies to requirements.txt 2025-01-02 15:06:22 +01:00
ValueRaider
52f6462d20 Merge pull request #2194 from dhruvan2006/fix/eps-revisions
Fix: Remove hardcoded keys in Analysis
2025-01-01 21:00:33 +00:00
ValueRaider
508afcae23 Analysis: refactor some fetchers, fix tests
Refactor some fetch functions (duplicate logic).
Fix failing unit tests.
2025-01-01 20:57:55 +00:00
Dhruvan Gnanadhandayuthapani
a9859e2f9f Remove hardcoded keys in Analysis 2024-12-31 17:42:03 +01:00
ValueRaider
d0e59203cc Merge pull request #2191 from R5dan/Update-Search
Update Search class to allow more options
2024-12-30 15:09:08 +00:00
R5dan
b94173bddf Update Search class to allow more options 2024-12-30 15:08:19 +00:00
ValueRaider
a928eb45fd Merge pull request #2192 from R5dan/custom-period
Custom period
2024-12-30 15:03:54 +00:00
R5dan
60c7477a03 Custom period 2024-12-30 15:02:37 +00:00
ValueRaider
42d946cee1 Fix TZ-fetch hiding 429 rate-limit error 2024-12-29 18:34:41 +00:00
ValueRaider
24958d5442 Merge pull request #2175 from R5dan/market-summary-v2
Add market Summary
2024-12-29 17:49:05 +00:00
R5dan
966473f7c7 Add Market summary & status 2024-12-29 17:33:51 +00:00
ValueRaider
ae7f371ada Merge pull request #2180 from dhruvan2006/rate-limit-exception
Raise Exception if Rate Limited
2024-12-22 13:12:11 +00:00
Dhruvan Gnanadhandayuthapani
af7806640f Raise error if rate limited 2024-12-22 11:12:19 +01:00
ValueRaider
64b4726c4e Merge pull request #2184 from ranaroussi/main
sync main -> dev
2024-12-20 21:39:14 +00:00
ValueRaider
5adddf3e88 Version 0.2.51 2024-12-19 22:46:16 +00:00
ValueRaider
5bbe358ad7 Merge pull request #2182 from ranaroussi/dev
dev -> main
2024-12-19 22:42:48 +00:00
ValueRaider
38c1323313 Merge pull request #2169 from hjlgood/main
Fix get_earnings_dates method
2024-12-19 22:42:36 +00:00
ValueRaider
70243657a7 Earnings dates: fix time-shift, remove 'add_cokies' 2024-12-18 21:07:30 +00:00
jeong
e242617237 Fix Ticker.earnings_dates 2024-12-18 21:04:21 +00:00
ValueRaider
59d0974773 Merge pull request #2173 from dhruvan2006/feature/full-news
Feature: Fetch upto 200 news articles
2024-12-14 22:05:59 +00:00
Dhruvan Gnanadhandayuthapani
5bc3ec01d0 Refactor get_news() to fetch more articles 2024-12-14 18:21:15 +01:00
ValueRaider
3f911745c4 Merge pull request #2171 from R5dan/remove-mkdocs
Remove mkdocs
2024-12-08 18:23:22 +00:00
R5dan
f95eef6489 Remove mkdocs 2024-12-08 17:28:41 +00:00
ValueRaider
2fc0907217 Merge pull request #2170 from ranaroussi/dev
trigger doc update
2024-12-08 11:13:28 +00:00
ValueRaider
3ac85397cb Merge pull request #2160 from dhruvan2006/feature/search
Feature: Add search feature
2024-12-06 19:44:02 +00:00
Dhruvan Gnanadhandayuthapani
873ab0f574 Added new search feature
Refactor Search

Added unittest for Search

Documentation for Search

Fix unused import
2024-12-05 23:53:33 +01:00
ValueRaider
f5264649b9 Merge pull request #2168 from ericpien/screener_return_self
Update Screener
2024-12-05 22:36:20 +00:00
Eric Pien
90731511ed Update Screener
- Setting Body to Screener returns the Screener Object to enable method chaining. (i.e. `r = yf.Screener().set_predefined_body("day_gainers").response`)
- Limit query size to 250 and raise error if larger. This also avoids unnecessary network calls and makes the issue clearer.
2024-12-04 12:45:14 -08:00
ValueRaider
a8f0998ab8 Merge pull request #2147 from dhruvan2006/fix/price-auto-adjust
Default yf.download() to auto adjust prices
2024-11-23 19:57:22 +00:00
Dhruvan Gnanadhandayuthapani
02785d61a1 Default yf.download() to auto adjust prices 2024-11-23 19:50:51 +01:00
86 changed files with 4759 additions and 5330 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -54,7 +54,7 @@ body:
- type: textarea
id: debug-log
attributes:
label: "Debug log"
label: "Debug log from yf.enable_debug_mode()"
description: "Run code with debug logging enabled - `yf.enable_debug_mode()` - and post the full output. Context: https://github.com/ranaroussi/yfinance/tree/main#logging"
validations:
required: true
@@ -63,7 +63,7 @@ body:
id: bad-data-proof
attributes:
label: "Bad data proof"
description: "If `yfinance` returning bad data, show proof here. Best is screenshot of finance.yahoo.com"
description: "If `yfinance` returning bad data, show proof of good data here. Best proof is screenshot of finance.yahoo.com"
validations:
required: false

View File

@@ -1,18 +0,0 @@
name: ci
on:
push:
branches:
- master
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: pip install -r requirements.txt
- run: pip install mkdocstrings==0.14.0
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force

35
.github/workflows/pytest.yml.disabled vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Pytest
on:
pull_request:
branches:
- master
- main
- dev
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt pytest
- name: Run non-cache tests
run: pytest tests/ --ignore tests/test_cache.py --ignore tests/test_price_repair.py
- name: Run cache tests
run: |
pytest tests/test_cache.py::TestCache
pytest tests/test_cache.py::TestCacheNoPermission

View File

@@ -1,6 +1,83 @@
Change Log
===========
0.2.58
------
Fix false rate-limit problem #2430
Fix predefined screen size/count #2425
0.2.57
------
Fix proxy msg & pass-thru #2418
0.2.56
------
Features:
- Ticker lookups #2364
- Config #2391
Fixes:
- converting end epoch to localized dt #2378
- info IndexError #2382
- AttributeError: module 'requests.cookies' has no attribute 'update' #2388
- fix_Yahoo_returning_live_separate() #2389
0.2.55
------
Features
- TTM financials #2321
Fixes
- info IndexError #2354
- earnings dates TZ #2366
- price repair tweaks & fixes #2368
- history caching #2345
- backup fetch TZ from info #2369
Maintenance
- log user agent #2326
0.2.54
------
Hotfix user-agent #2277
0.2.53
------
Fixes:
- Fix: Failed to parse holders JSON data #2234
- Fix: Bad data in Holders #2244
- Stop CSRF-cookie-fetch fail killing yfinance #2249
- Fix Market Docs #2250
- Fix: Broken "See also" links in documentation #2253
- Fix: Interval check and error message formatting in multi.py #2256
Improve:
- Add pre- / post-stock prices (and other useful information) #2212
- Warn user when use download() without specifying auto_adjust #2230
- Refactor: Earnings Dates Switch to API Fetching #2247
- Improve prices div repair #2260
Maintenance:
- Add GitHub Actions workflow and fix failing tests #2233
0.2.52
------
Features:
- Improve Screener & docs #2207
- Add Market summary & status #2175
- Support custom period in Ticker.history() #2192
- raise YfRateLimitError if rate limited #2108
- add more options to Search #2191
Fixes:
- remove hardcoded keys in Analysis #2194
- handle Yahoo changed Search response #2202
Maintenance:
- add optional dependencies to requirements.txt #2199
0.2.51
------
Features:
- Screener tweaks #2168
- Search #2160
- get_news() expose count #2173
Fixes:
- earnings_dates #2169
0.2.50
------
Fixes:

77
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,77 @@
# Contributing
> [!NOTE]
> This is a brief guide to contributing to yfinance.
> For more information See the [Developer Guide](https://ranaroussi.github.io/yfinance/development) for more information.
## Changes
The list of changes can be found in the [Changelog](https://github.com/ranaroussi/yfinance/blob/main/CHANGELOG.rst)
## Running a branch
```bash
pip install git+ranaroussi/yfinance.git@dev # dev branch
```
For more information, see the [Developer Guide](https://ranaroussi.github.io/yfinance/development/running.html).
## Branches
YFinance uses a two-layer branch model:
* **dev**: new features & some bug-fixes merged here, tested together, conflicts fixed, etc.
* **main**: stable branch where PIP releases are created.
> [!NOTE]
> By default, branches target **main**, but most contributions should target **dev**.
> Direct merges to **main** are allowed if:
> * `yfinance` is massively broken
> * Part of `yfinance` is broken, and the fix is simple and isolated
> * Not updating the code (e.g. docs)
> [!NOTE]
> For more information, see the [Developer Guide](https://ranaroussi.github.io/yfinance/development/branches.html).
### I'm a GitHub newbie, how do I contribute code?
1. Fork this project. If already forked, remember to `Sync fork`
2. Implement your change in your fork, ideally in a specific branch
3. Create a Pull Request, from your fork to this project. If addressing an Issue, link to it
> [!NOTE]
> See the [Developer Guide](https://ranaroussi.github.io/yfinance/development/contributing.html) for more information.
### [How to download & run a GitHub version of yfinance](#Running-a-branch)
## Documentation website
The new docs website [ranaroussi.github.io/yfinance/index.html](https://ranaroussi.github.io/yfinance/index.html) is generated automatically from code.
> [!NOTE]
> See the [Developer Guide](https://ranaroussi.github.io/yfinance/development/documentation.html) for more information
> Including how to build and run the docs locally.
## Unit tests
Tests have been written using the built-in Python module `unittest`. Examples:
#### Run all tests: `python -m unittest discover -s tests`
> [!NOTE]
>
> See the [Developer Guide](https://ranaroussi.github.io/yfinance/development/testing.html) for more information.
## Git stuff
### commits
To keep the Git commit history and [network graph](https://github.com/ranaroussi/yfinance/network) compact please follow these two rules:
* For long commit messages use this: `git commit -m "short sentence summary" -m "full commit message"`
* `squash` tiny/negligible commits back with meaningful commits, or to combine successive related commits
> [!NOTE]
> See the [Developer Guide](https://ranaroussi.github.io/yfinance/development/contributing.html#GIT-STUFF) for more information.

View File

@@ -1,49 +1,50 @@
<img src="./doc/yfinance-gh-logo-dark.webp#gh-dark-mode-only" height="100">
<img src="./doc/yfinance-gh-logo-light.webp#gh-light-mode-only" height="100">
# Download market data from Yahoo! Finance's API
<table border=1 cellpadding=10><tr><td>
#### \*\*\* IMPORTANT LEGAL DISCLAIMER \*\*\*
---
**Yahoo!, Y!Finance, and Yahoo! finance are registered trademarks of
Yahoo, Inc.**
yfinance is **not** affiliated, endorsed, or vetted by Yahoo, Inc. It's
an open-source tool that uses Yahoo's publicly available APIs, and is
intended for research and educational purposes.
**You should refer to Yahoo!'s terms of use**
([here](https://policies.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/index.htm),
[here](https://legal.yahoo.com/us/en/yahoo/terms/otos/index.html), and
[here](https://policies.yahoo.com/us/en/yahoo/terms/index.htm)) **for
details on your rights to use the actual data downloaded. Remember - the
Yahoo! finance API is intended for personal use only.**
</td></tr></table>
---
<a target="new" href="https://pypi.python.org/pypi/yfinance"><img border=0 src="https://img.shields.io/badge/python-2.7,%203.6+-blue.svg?style=flat" alt="Python version"></a>
<a target="new" href="https://pypi.python.org/pypi/yfinance"><img border=0 src="https://img.shields.io/pypi/v/yfinance.svg?maxAge=60%" alt="PyPi version"></a>
<a target="new" href="https://pypi.python.org/pypi/yfinance"><img border=0 src="https://img.shields.io/pypi/status/yfinance.svg?maxAge=60" alt="PyPi status"></a>
<a target="new" href="https://pypi.python.org/pypi/yfinance"><img border=0 src="https://img.shields.io/pypi/dm/yfinance.svg?maxAge=2592000&label=installs&color=%2327B1FF" alt="PyPi downloads"></a>
<a target="new" href="https://www.codefactor.io/repository/github/ranaroussi/yfinance"><img border=0 src="https://www.codefactor.io/repository/github/ranaroussi/yfinance/badge" alt="CodeFactor"></a>
<a target="new" href="https://github.com/ranaroussi/yfinance"><img border=0 src="https://img.shields.io/github/stars/ranaroussi/yfinance.svg?style=social&label=Star&maxAge=60" alt="Star this repo"></a>
<a target="new" href="https://twitter.com/aroussi"><img border=0 src="https://img.shields.io/twitter/follow/aroussi.svg?style=social&label=Follow&maxAge=60" alt="Follow me on twitter"></a>
<a target="new" href="https://x.com/intent/follow?screen_name=aroussi"><img border=0 src="https://img.shields.io/twitter/follow/aroussi.svg?style=social&label=Follow&maxAge=60" alt="Follow me on twitter"></a>
**yfinance** offers a Pythonic way to fetch financial & market data from [Yahoo!Ⓡ finance](https://finance.yahoo.com).
---
> [!IMPORTANT]
> **Yahoo!, Y!Finance, and Yahoo! finance are registered trademarks of Yahoo, Inc.**
>
> yfinance is **not** affiliated, endorsed, or vetted by Yahoo, Inc. It's an open-source tool that uses Yahoo's publicly available APIs, and is intended for research and educational purposes.
>
> **You should refer to Yahoo!'s terms of use** ([here](https://policies.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/index.htm), [here](https://legal.yahoo.com/us/en/yahoo/terms/otos/index.html), and [here](https://policies.yahoo.com/us/en/yahoo/terms/index.htm)) **for details on your rights to use the actual data downloaded.
>
> Remember - the Yahoo! finance API is intended for personal use only.**
---
> [!TIP]
> THE NEW DOCUMENTATION WEBSITE IS NOW LIVE! 🤘
>
> Visit [**ranaroussi.github.io/yfinance**](https://ranaroussi.github.io/yfinance)
---
## Main components
- `Ticker`: single ticker data
- `Tickers`: multiple tickers' data
- `download`: download market data for multiple tickers
- `Market`: get information about a market
- `WebSocket` and `AsyncWebSocket`: live streaming data
- `Search`: quotes and news from search
- `Sector` and `Industry`: sector and industry information
- `EquityQuery` and `Screener`: build query to screen market
## **NEW DOCUMENTATION WEBSITE**: [ranaroussi.github.io/yfinance](https://ranaroussi.github.io/yfinance/index.html)
## Installation
Install `yfinance` from PYPI using `pip`:
@@ -52,11 +53,9 @@ Install `yfinance` from PYPI using `pip`:
$ pip install yfinance
```
The list of changes can be found in the [Changelog](https://github.com/ranaroussi/yfinance/blob/main/CHANGELOG.rst)
---
## Developers: want to contribute?
`yfinance` relies on community to investigate bugs, review code, and contribute code. Developer guide: https://github.com/ranaroussi/yfinance/discussions/1084
![Star History Chart](https://api.star-history.com/svg?repos=ranaroussi/yfinance)
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,15 @@
******
Config
******
`yfinance` has a new global config for sharing common values.
Proxy
-----
Set proxy once in config, affects all yfinance data fetches.
.. code-block:: python
import yfinance as yf
yf.set_config(proxy="PROXY_SERVER")

View File

@@ -6,6 +6,6 @@ Advanced
:maxdepth: 2
logging
proxy
config
caching
multi_level_columns

View File

@@ -1,11 +0,0 @@
************
Proxy Server
************
You can download data via a proxy:
.. code-block:: python
msft = yf.Ticker("MSFT")
msft.history(..., proxy="PROXY_SERVER")

View File

@@ -10,8 +10,8 @@ sys.path.insert(0, os.path.abspath('../..'))
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'yfinance - market data downloader'
copyright = '2017-2019 Ran Aroussi'
project = 'yfinance / Pythonic access to market data'
copyright = '2017-2025 Ran Aroussi'
author = 'Ran Aroussi'
# -- General configuration ---------------------------------------------------
@@ -29,7 +29,8 @@ exclude_patterns = []
autoclass_content = 'both'
autosummary_generate = True
autodoc_default_options = {
'exclude-members': '__init__'
'exclude-members': '__init__',
'members': True,
}
# -- Options for HTML output -------------------------------------------------
@@ -39,7 +40,11 @@ html_title = 'yfinance'
html_theme = 'pydata_sphinx_theme'
html_theme_options = {
"github_url": "https://github.com/ranaroussi/yfinance",
"navbar_align": "left"
"navbar_align": "left",
"logo": {
"image_light": "_static/logo-light.webp",
"image_dark": "_static/logo-dark.webp"
}
}
html_static_path = ['_static']
html_css_files = ['yfinance.css']

View File

@@ -0,0 +1,40 @@
Branches
---------
To support rapid development without breaking stable versions, this project uses a two-layer branch model:
.. image:: assets/branches.png
:alt: Branching Model
`Inspiration <https://miro.medium.com/max/700/1*2YagIpX6LuauC3ASpwHekg.png>`_
- **dev**: New features and some bug fixes are merged here. This branch allows collective testing, conflict resolution, and further stabilization before merging into the stable branch.
- **main**: Stable branch where PIP releases are created.
By default, branches target **main**, but most contributions should target **dev**.
**Exceptions**:
Direct merges to **main** are allowed if:
- `yfinance` is massively broken
- Part of `yfinance` is broken, and the fix is simple and isolated
- Not updating the code (e.g. docs)
Rebasing
--------
If asked to move your branch from **main** to **dev**:
1. Ensure all relevant branches are pulled.
2. Run:
.. code-block:: bash
git checkout {branch}
git rebase --onto dev main {brach}
git push --force-with-lease origin {branch}
Running a branch
----------------
Please see `this page </development/running>`_.

View File

@@ -1,109 +1,61 @@
********************************
Contributiong to yfinance
Contributing to yfinance
********************************
`yfinance` relies on the community to investigate bugs and contribute code. Heres how you can help:
`yfinance` relies on the community to investigate bugs and contribute code. Here&apos;s how you can help:
Contributing
------------
1. Fork the repository on GitHub.
1. Fork the repository on GitHub. If already forked, remember to `Sync fork`
2. Clone your forked repository:
.. code-block:: bash
git clone https://github.com/your-username/yfinance.git
git clone https://github.com/{user}/{repo}.git
3. Create a new branch for your feature or bug fix:
.. code-block:: bash
git checkout -b feature-branch-name
git checkout -b {branch}
4. Make your changes, commit them, and push your branch to GitHub. To keep the commit history and `network graph <https://github.com/ranaroussi/yfinance/network>`_ compact:
Use short summaries for commits
.. code-block:: shell
.. code-block:: bash
git commit -m "short summary" -m "full commit message"
**Squash** tiny or negligible commits with meaningful ones.
.. code-block:: shell
.. code-block:: bash
git rebase -i HEAD~2
git push --force-with-lease origin <branch-name>
git push --force-with-lease origin {branch}
5. Open a pull request on the `yfinance` GitHub page.
5. Open a pull request on the `yfinance` `Github <https://github.com/ranaroussi/yfinance/pulls>`_ page.
For more information, see the `Developer Guide <https://github.com/ranaroussi/yfinance/discussions/1084>`_.
Branches
Git stuff
---------
To support rapid development without breaking stable versions, this project uses a two-layer branch model:
To keep the Git commit history and [network graph](https://github.com/ranaroussi/yfinance/network) compact please follow these two rules:
.. image:: assets/branches.png
:alt: Branching Model
- For long commit messages use this: `git commit -m "short sentence summary" -m "full commit message"`
`Inspiration <https://miro.medium.com/max/700/1*2YagIpX6LuauC3ASpwHekg.png>`_
- `squash` tiny/negligible commits back with meaningful commits, or to combine successive related commits. [Guide](https://docs.gitlab.com/ee/topics/git/git_rebase.html#interactive-rebase) but basically it's:
- **dev**: New features and some bug fixes are merged here. This branch allows collective testing, conflict resolution, and further stabilization before merging into the stable branch.
- **main**: Stable branch where PIP releases are created.
.. code-block:: bash
git rebase -i HEAD~2
git push --force-with-lease origin {branch}
By default, branches target **main**, but most contributions should target **dev**.
**Exceptions**:
Direct merges to **main** are allowed if:
### rebase
You might be asked to move your branch from `main` to `dev`. Make sure you have pulled **all** relevant branches then run:
- `yfinance` is massively broken
- Part of `yfinance` is broken, and the fix is simple and isolated
Unit Tests
----------
Tests are written using Pythons `unittest` module. Here are some ways to run tests:
- **Run all price tests**:
.. code-block:: shell
python -m unittest tests.test_prices
- **Run a subset of price tests**:
.. code-block:: shell
python -m unittest tests.test_prices.TestPriceRepair
- **Run a specific test**:
.. code-block:: shell
python -m unittest tests.test_prices.TestPriceRepair.test_ticker_missing
- **Run all tests**:
.. code-block:: shell
python -m unittest discover -s tests
Rebasing
--------------
If asked to move your branch from **main** to **dev**:
1. Ensure all relevant branches are pulled.
2. Run:
.. code-block:: shell
git checkout <your-branch>
git rebase --onto dev main <branch-name>
git push --force-with-lease origin <branch-name>
Running the GitHub Version of yfinance
--------------------------------------
To download and run a GitHub version of `yfinance`, refer to `GitHub discussion <https://github.com/ranaroussi/yfinance/discussions/1080>`_
.. code-block:: bash
git checkout {branch}
git rebase --onto dev main {brach}
git push --force-with-lease origin {branch}

View File

@@ -6,10 +6,10 @@ Contribution to the documentation
:local:
About documentation
------------------------
-------------------
* yfinance documentation is written in reStructuredText (rst) and built using Sphinx.
* The documentation file is in `doc/source/..`.
* Most of the notes under API References read from class and methods docstrings. These documentations, found in `doc/source/reference/api` is autogenerated by Sphinx and not included in git.
* The documentation file is in ``doc/source/..``.
* Most of the notes under API References read from class and methods docstrings. These documentations, found in ``doc/source/reference/api`` is autogenerated by Sphinx and not included in git.
Building documentation locally
-------------------------------
@@ -17,30 +17,35 @@ To build the documentation locally, follow these steps:
1. **Install Required Dependencies**:
* Make sure `Sphinx` and any other dependencies are installed. If a `requirements.txt` file is available, you can install dependencies by running:
.. code-block:: console
* Make sure ``Sphinx`` and any other dependencies are installed. If a ``requirements.txt`` file is available, you can install dependencies by running:
.. code-block:: bash
pip install -r requirements.txt
pip install Sphinx==8.0.2 pydata-sphinx-theme==0.15.4 Jinja2==3.1.4 sphinx-copybutton==0.5.2
2. **Build with Sphinx**:
* After dependencies are installed, use the sphinx-build command to generate HTML documentation.
* Go to `doc/` directory Run:
* Go to ``doc/`` directory Run:
.. code-block:: console
.. code-block:: bash
make clean && make html
sphinx-build -b html doc/source doc/_build/html
3. **View Documentation Locally**:
* Open `doc/build/html/index.html` in the browser to view the generated documentation.
..code-block:: bash
python -m http.server -d ./doc/_build/html
Building documentation on main
-------------------------------
The documentation updates are built on merge to `main` branch. This is done via GitHub Actions workflow based on `/yfinance/.github/workflows/deploy_doc.yml`.
Then open "localhost:8000" in browser
1. Reivew the changes locally and push to `dev`.
2. When `dev` gets merged to `main`, GitHub Actions workflow is automated to build documentation.
Building documentation on main
------------------------------
The documentation updates are built on merge to ``main`` branch. This is done via GitHub Actions workflow based on ``/yfinance/.github/workflows/deploy_doc.yml``.
1. Review the changes locally and push to ``dev``.
2. When ``dev`` gets merged to ``main``, GitHub Actions workflow is automated to build documentation.

View File

@@ -7,4 +7,7 @@ Development
contributing
documentation
reporting_bug
reporting_bug
branches
testing
running

View File

@@ -0,0 +1,60 @@
Running a branch
================
With PIP
--------
.. code-block:: bash
pip install git+https://github.com/{user}/{repo}.git@{branch}
E.g.:
.. code-block:: bash
pip install git+https://github.com/ranaroussi/yfinance.git@feature/name
With Git
--------
1: Download from GitHub:
.. code-block:: bash
git clone https://github.com/{user}/{repo}.git
pip install -r ./yfinance/requirements.txt
Or if a specific branch:
.. code-block:: bash
git clone -b {branch} https://github.com/{user}/{repo}.git
pip install -r ./yfinance/requirements.txt
.. NOTE::
Only do the next part if you are installing globally
If you are installing for 1 specific project, then you can skip this step
and just `git clone` in the project directory
2. Add download location to Python search path
Two different ways, choose one:
1) Add path to ``PYTHONPATH`` environment variable
2) Add to top of Python file:
.. code-block:: python
import sys
sys.path.insert(0, "path/to/downloaded/yfinance")
3: Verify
.. code-block:: python
import yfinance
print(yfinance)
Output should be:
`<module 'yfinance' from 'path/to/downloaded/yfinance/yfinance/__init__.py'>`
If output looks like this then you did step 2 wrong
`<module 'yfinance' from '.../lib/python3.10/site-packages/yfinance/__init__.py'>`

View File

@@ -0,0 +1,50 @@
Unit Tests
----------
Tests are written using Python&apos;s `unittest` module. Here are some ways to run tests:
- **Run all price tests**:
.. code-block:: bash
python -m unittest tests.test_prices
- **Run a subset of price tests**:
.. code-block:: bash
python -m unittest tests.test_prices.TestPriceRepair
- **Run a specific test**:
.. code-block:: bash
python -m unittest tests.test_prices_repair.TestPriceRepair.test_ticker_missing
- **General command**:
..code-block:: bash
python -m unittest tests.{file}.{class}.{method}
- **Run all tests**:
.. code-block:: bash
python -m unittest discover -s tests
.. note::
The tests are currently failing already
Standard result:
**Failures:** 11
**Errors:** 93
**Skipped:** 1
.. seealso::
See the ` ``unittest`` module <https://docs.python.org/3/library/unittest.html>`_ for more information.

View File

@@ -0,0 +1,23 @@
import asyncio
import yfinance as yf
# define your message callback
def message_handler(message):
print("Received message:", message)
async def main():
# =======================
# With Context Manager
# =======================
async with yf.AsyncWebSocket() as ws:
await ws.subscribe(["AAPL", "BTC-USD"])
await ws.listen()
# =======================
# Without Context Manager
# =======================
ws = yf.AsyncWebSocket()
await ws.subscribe(["AAPL", "BTC-USD"])
await ws.listen()
asyncio.run(main())

View File

@@ -0,0 +1,19 @@
import yfinance as yf
# define your message callback
def message_handler(message):
print("Received message:", message)
# =======================
# With Context Manager
# =======================
with yf.WebSocket() as ws:
ws.subscribe(["AAPL", "BTC-USD"])
ws.listen(message_handler)
# =======================
# Without Context Manager
# =======================
ws = yf.WebSocket()
ws.subscribe(["AAPL", "BTC-USD"])
ws.listen(message_handler)

View File

@@ -0,0 +1,33 @@
import yfinance as yf
# Get All
all = yf.Lookup("AAPL").all
all = yf.Lookup("AAPL").get_all(count=100)
# Get Stocks
stock = yf.Lookup("AAPL").stock
stock = yf.Lookup("AAPL").get_stock(count=100)
# Get Mutual Funds
mutualfund = yf.Lookup("AAPL").mutualfund
mutualfund = yf.Lookup("AAPL").get_mutualfund(count=100)
# Get ETFs
etf = yf.Lookup("AAPL").etf
etf = yf.Lookup("AAPL").get_etf(count=100)
# Get Indices
index = yf.Lookup("AAPL").index
index = yf.Lookup("AAPL").get_index(count=100)
# Get Futures
future = yf.Lookup("AAPL").future
future = yf.Lookup("AAPL").get_future(count=100)
# Get Currencies
currency = yf.Lookup("AAPL").currency
currency = yf.Lookup("AAPL").get_currency(count=100)
# Get Cryptocurrencies
cryptocurrency = yf.Lookup("AAPL").cryptocurrency
cryptocurrency = yf.Lookup("AAPL").get_cryptocurrency(count=100)

View File

@@ -0,0 +1,6 @@
import yfinance as yf
EUROPE = yf.Market("EUROPE")
status = EUROPE.status
summary = EUROPE.summary

View File

@@ -0,0 +1,10 @@
import yfinance as yf
# get list of quotes
quotes = yf.Search("AAPL", max_results=10).quotes
# get list of news
news = yf.Search("Google", news_count=10).news
# get list of related research
research = yf.Search("apple", include_research=True).research

View File

@@ -20,3 +20,6 @@ dat.info
# analysis
dat.analyst_price_targets
# websocket
dat.live()

View File

@@ -5,4 +5,7 @@ tickers = yf.Tickers('msft aapl goog')
# access each ticker using (example)
tickers.tickers['MSFT'].info
tickers.tickers['AAPL'].history(period="1mo")
tickers.tickers['GOOG'].actions
tickers.tickers['GOOG'].actions
# websocket
tickers.live()

View File

@@ -15,11 +15,18 @@ The following are the publicly available classes, and functions exposed by the `
- :attr:`Ticker <yfinance.Ticker>`: Class for accessing single ticker data.
- :attr:`Tickers <yfinance.Tickers>`: Class for handling multiple tickers.
- :attr:`Market <yfinance.Market>`: Class for accessing market summary.
- :attr:`download <yfinance.download>`: Function to download market data for multiple tickers.
- :attr:`Search <yfinance.Search>`: Class for accessing search results.
- :attr:`Lookup <yfinance.Lookup>`: Class for looking up tickers.
- :class:`WebSocket <yfinance.WebSocket>`: Class for synchronously streaming live market data.
- :class:`AsyncWebSocket <yfinance.AsyncWebSocket>`: Class for asynchronously streaming live market data.
- :attr:`Sector <yfinance.Sector>`: Domain class for accessing sector information.
- :attr:`Industry <yfinance.Industry>`: Domain class for accessing industry information.
- :attr:`download <yfinance.download>`: Function to download market data for multiple tickers.
- :attr:`EquityQuery <yfinance.EquityQuery>`: Class to build equity market query.
- :attr:`Screener <yfinance.Screener>`: Class to screen the market using defined query.
- :attr:`Market <yfinance.Market>`: Class for accessing market status & summary.
- :attr:`EquityQuery <yfinance.EquityQuery>`: Class to build equity query filters.
- :attr:`FundQuery <yfinance.FundQuery>`: Class to build fund query filters.
- :attr:`screen <yfinance.screen>`: Run equity/fund queries.
- :attr:`enable_debug_mode <yfinance.enable_debug_mode>`: Function to enable debug mode for logging.
- :attr:`set_tz_cache_location <yfinance.set_tz_cache_location>`: Function to set the timezone cache location.
@@ -30,9 +37,15 @@ The following are the publicly available classes, and functions exposed by the `
yfinance.ticker_tickers
yfinance.stock
yfinance.market
yfinance.financials
yfinance.analysis
yfinance.market
yfinance.search
yfinance.lookup
yfinance.websocket
yfinance.sector_industry
yfinance.screener
yfinance.functions
yfinance.funds_data

View File

@@ -10,12 +10,16 @@ Financials
get_income_stmt
income_stmt
quarterly_income_stmt
ttm_income_stmt
get_balance_sheet
balance_sheet
get_cashflow
cashflow
quarterly_cashflow
ttm_cashflow
get_earnings
earnings

View File

@@ -13,25 +13,6 @@ The `download` function allows you to retrieve market data for multiple tickers
download
Query Market Data
~~~~~~~~~~~~~~~~~~~~~
The `Sector` and `Industry` modules allow you to access the sector and industry information.
.. autosummary::
:toctree: api/
EquityQuery
Screener
.. seealso::
:attr:`EquityQuery.valid_operand_fields <yfinance.EquityQuery.valid_operand_fields>`
supported operand values for query
:attr:`EquityQuery.valid_eq_operand_map <yfinance.EquityQuery.valid_eq_operand_map>`
supported `EQ query operand parameters`
:attr:`Screener.predefined_bodies <yfinance.Screener.predefined_bodies>`
supported predefined screens
Enable Debug Mode
~~~~~~~~~~~~~~~~~
Enables logging of debug information for the `yfinance` package.

View File

@@ -0,0 +1,41 @@
=====================
Market
=====================
.. currentmodule:: yfinance
Class
------------
The `Market` class, allows you to access market data in a Pythonic way.
.. autosummary::
:toctree: api/
Market
Market Sample Code
------------------
.. literalinclude:: examples/market.py
:language: python
Markets
------------
There are 8 different markets available in Yahoo Finance.
* US
* GB
\
* ASIA
* EUROPE
\
* RATES
* COMMODITIES
* CURRENCIES
* CRYPTOCURRENCIES

View File

@@ -0,0 +1,27 @@
=========================
Screener & Query
=========================
.. currentmodule:: yfinance
Query Market Data
~~~~~~~~~~~~~~~~~~~~~
The `Sector` and `Industry` modules allow you to access the sector and industry information.
.. autosummary::
:toctree: api/
EquityQuery
FundQuery
screen
.. seealso::
:attr:`EquityQuery.valid_fields <yfinance.EquityQuery.valid_fields>`
supported operand values for query
:attr:`EquityQuery.valid_values <yfinance.EquityQuery.valid_values>`
supported `EQ query operand parameters`
:attr:`FundQuery.valid_fields <yfinance.FundQuery.valid_fields>`
supported operand values for query
:attr:`FundQuery.valid_values <yfinance.FundQuery.valid_values>`
supported `EQ query operand parameters`

View File

@@ -0,0 +1,34 @@
=====================
Search & Lookup
=====================
.. currentmodule:: yfinance
Class
------------
The `Search` module, allows you to access search data in a Pythonic way.
.. autosummary::
:toctree: api/
Search
The `Lookup` module, allows you to look up tickers in a Pythonic way.
.. autosummary::
:toctree: api/
Lookup
Sample Code
------------------
The `Search` module, allows you to access search data in a Pythonic way.
.. literalinclude:: examples/search.py
:language: python
The `Lookup` module, allows you to look up tickers in a Pythonic way.
.. literalinclude:: examples/lookup.py
:language: python

View File

@@ -0,0 +1,46 @@
=====================
WebSocket
=====================
.. currentmodule:: yfinance
The `WebSocket` module allows you to stream live price data from Yahoo Finance using both synchronous and asynchronous clients.
Classes
------------
.. autosummary::
:toctree: api/
WebSocket
AsyncWebSocket
Synchronous WebSocket
----------------------
The `WebSocket` class provides a synchronous interface for subscribing to price updates.
Sample Code:
.. literalinclude:: examples/live_sync.py
:language: python
Asynchronous WebSocket
-----------------------
The `AsyncWebSocket` class provides an asynchronous interface for subscribing to price updates.
Sample Code:
.. literalinclude:: examples/live_async.py
:language: python
.. note::
If you're running asynchronous code in a Jupyter notebook, you may encounter issues with event loops. To resolve this, you need to import and apply `nest_asyncio` to allow nested event loops.
Add the following code before running asynchronous operations:
.. code-block:: python
import nest_asyncio
nest_asyncio.apply()

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -1,5 +1,5 @@
{% set name = "yfinance" %}
{% set version = "0.2.50" %}
{% set version = "0.2.58" %}
package:
name: "{{ name|lower }}"
@@ -26,8 +26,8 @@ requirements:
- frozendict >=2.3.4
- beautifulsoup4 >=4.11.1
- html5lib >=1.1
- curl_cffi >=0.7
- peewee >=3.16.2
# - pycryptodome >=3.6.6
- pip
- python
@@ -42,8 +42,8 @@ requirements:
- frozendict >=2.3.4
- beautifulsoup4 >=4.11.1
- html5lib >=1.1
- curl_cffi >=0.7
- peewee >=3.16.2
# - pycryptodome >=3.6.6
- python
test:

View File

@@ -1,19 +0,0 @@
# site_name: My Docs
# # mkdocs.yml
# theme:
# name: "material"
# plugins:
# - search
# - mkdocstrings
# nav:
# - Introduction: 'index.md'
# - Installation: 'installation.md'
# - Quick Start: 'quickstart.md'
# # - Ticker: 'Ticker.md'
# - TickerBase: 'TickerBase.md'
# # - Tickers: 'Tickers.md'
# - utils: 'utils.md'
# - multi: 'multi.md'

View File

@@ -2,10 +2,14 @@ pandas>=1.3.0
numpy>=1.16.5
requests>=2.31
multitasking>=0.0.7
lxml>=4.9.1
platformdirs>=2.0.0
pytz>=2022.5
frozendict>=2.3.4
beautifulsoup4>=4.11.1
html5lib>=1.1
peewee>=3.16.2
peewee>=3.16.2
requests_cache>=1.0
requests_ratelimiter>=0.3.1
scipy>=1.6.3
curl_cffi>=0.7
protobuf>=5.29.0,<6
websockets>=11.0

View File

@@ -61,13 +61,19 @@ setup(
packages=find_packages(exclude=['contrib', 'docs', 'tests', 'examples']),
install_requires=['pandas>=1.3.0', 'numpy>=1.16.5',
'requests>=2.31', 'multitasking>=0.0.7',
'lxml>=4.9.1', 'platformdirs>=2.0.0', 'pytz>=2022.5',
'platformdirs>=2.0.0', 'pytz>=2022.5',
'frozendict>=2.3.4', 'peewee>=3.16.2',
'beautifulsoup4>=4.11.1', 'html5lib>=1.1'],
'beautifulsoup4>=4.11.1', 'curl_cffi>=0.7',
'protobuf>=5.29.0,<6', 'websockets>=11.0'],
extras_require={
'nospam': ['requests_cache>=1.0', 'requests_ratelimiter>=0.3.1'],
'repair': ['scipy>=1.6.3'],
},
# Include protobuf files for websocket support
package_data={
'yfinance': ['pricing.proto', 'pricing_pb2.py'],
},
include_package_data=True,
# Note: Pandas.read_html() needs html5lib & beautifulsoup4
entry_points={
'console_scripts': [

View File

@@ -5,9 +5,7 @@ import datetime as _dt
import sys
import os
import yfinance
from requests import Session
from requests_cache import CacheMixin, SQLiteCache
from requests_ratelimiter import LimiterMixin, MemoryQueueBucket
from requests_ratelimiter import LimiterSession
from pyrate_limiter import Duration, RequestRate, Limiter
_parent_dp = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
@@ -27,19 +25,21 @@ if os.path.isdir(testing_cache_dirpath):
import shutil
shutil.rmtree(testing_cache_dirpath)
# Setup a session to rate-limit and cache persistently:
class CachedLimiterSession(CacheMixin, LimiterMixin, Session):
pass
history_rate = RequestRate(1, Duration.SECOND*2)
# Setup a session to only rate-limit
history_rate = RequestRate(1, Duration.SECOND)
limiter = Limiter(history_rate)
cache_fp = os.path.join(testing_cache_dirpath, "unittests-cache")
session_gbl = CachedLimiterSession(
limiter=limiter,
bucket_class=MemoryQueueBucket,
backend=SQLiteCache(cache_fp, expire_after=_dt.timedelta(hours=1)),
)
# Use this instead if only want rate-limiting:
# from requests_ratelimiter import LimiterSession
# session_gbl = LimiterSession(limiter=limiter)
session_gbl = LimiterSession(limiter=limiter)
# Use this instead if you also want caching:
# from requests_cache import CacheMixin, SQLiteCache
# from requests_ratelimiter import LimiterMixin
# from requests import Session
# from pyrate_limiter import MemoryQueueBucket
# class CachedLimiterSession(CacheMixin, LimiterMixin, Session):
# pass
# cache_fp = os.path.join(testing_cache_dirpath, "unittests-cache")
# session_gbl = CachedLimiterSession(
# limiter=limiter,
# bucket_class=MemoryQueueBucket,
# backend=SQLiteCache(cache_fp, expire_after=_dt.timedelta(hours=1)),
# )

View File

@@ -1,725 +0,0 @@
Datetime,Open,High,Low,Close,Adj Close,Volume,Dividends,Stock Splits,Repaired?
2022-01-04 00:00:00+00:00,29.46,29.98,28.52,28.66,20.53276113953462,169521.0,0.0,0.0,True
2022-01-05 00:00:00+00:00,30.0,30.0,28.46,28.900000000000002,20.70470257643437,128698.0,0.0,0.0,True
2022-01-06 00:00:00+00:00,28.2,28.560000000000002,27.5,27.82,19.930963478279654,374659.0,0.0,0.0,True
2022-01-07 00:00:00+00:00,28.3,28.3,27.400000000000002,27.46,19.67305220029865,80410.0,0.0,0.0,True
2022-01-10 00:00:00+00:00,28.16,28.240000000000002,26.2,26.580000000000002,19.042597925349927,135881.0,0.0,0.0,True
2022-01-11 00:00:00+00:00,25.92,27.060000000000002,25.92,26.72,19.142895195909453,71414.0,0.0,0.0,True
2022-01-12 00:00:00+00:00,26.72,26.96,26.060000000000002,26.8,19.200210178034187,68611.0,0.0,0.0,True
2022-01-13 00:00:00+00:00,26.72,27.3239990234375,26.6,27.2,19.486779824446177,155917.0,0.0,0.0,True
2022-01-14 00:00:00+00:00,27.52,27.52,26.36,26.560000000000002,19.028270495871666,66402.0,0.0,0.0,True
2022-01-17 00:00:00+00:00,27.02,27.22,26.28,27.22,19.50111251813613,60092.0,0.0,0.0,True
2022-01-18 00:00:00+00:00,27.66,27.66,26.0,26.86,19.243195975943426,128385.0,0.0,0.0,True
2022-01-19 00:00:00+00:00,27.0,27.46,26.7,27.2,19.486779824446177,75141.0,0.0,0.0,True
2022-01-20 00:00:00+00:00,26.900000000000002,27.7,26.81172119140625,27.54,19.730365427686156,99304.0,0.0,0.0,True
2022-01-21 00:00:00+00:00,27.26,27.88,26.214208984375002,26.38,18.89931310214393,123570.0,0.0,0.0,True
2022-01-24 00:00:00+00:00,26.14,26.261599121093752,24.72,24.88,17.824671663887276,148794.0,0.0,0.0,True
2022-01-25 00:00:00+00:00,24.92,25.2,24.580000000000002,24.580000000000002,17.609746183815513,94318.0,0.0,0.0,True
2022-01-26 00:00:00+00:00,25.52,25.52,24.400000000000002,24.66,17.667057656465794,265198.0,0.0,0.0,True
2022-01-27 00:00:00+00:00,24.66,25.12669921875,24.400000000000002,24.82,17.78168762071526,248811.0,0.0,0.0,True
2022-01-28 00:00:00+00:00,24.7,24.88,24.1,24.32,17.4234773174375,146209.0,0.0,0.0,True
2022-01-31 00:00:00+00:00,25.3,25.46,24.3,25.2,18.05392983764899,495745.0,0.0,0.0,True
2022-02-01 00:00:00+00:00,25.580000000000002,26.78,25.580000000000002,26.7,19.128567766431193,426366.0,0.0,0.0,True
2022-02-02 00:00:00+00:00,25.5,27.28,25.5,26.38,18.89931310214393,134118.0,0.0,0.0,True
2022-02-03 00:00:00+00:00,26.28,26.3639990234375,24.82,24.88,17.824671663887276,168782.0,0.0,0.0,True
2022-02-04 00:00:00+00:00,24.6,25.14,24.400000000000002,24.76,17.738701822806014,110543.0,0.0,0.0,True
2022-02-07 00:00:00+00:00,25.04,25.04,24.54,24.54,17.581089570121758,163853.0,0.0,0.0,True
2022-02-08 00:00:00+00:00,24.64,24.64,23.8,24.12,17.280188984757043,146007.0,0.0,0.0,True
2022-02-09 00:00:00+00:00,24.5,24.98,24.3,24.7,17.695716024896768,130747.0,0.0,0.0,True
2022-02-10 00:00:00+00:00,24.52,24.7,24.080000000000002,24.46,17.523774587997018,113862.0,0.0,0.0,True
2022-02-11 00:00:00+00:00,24.5,24.72,24.1,24.42,17.49511797430327,87108.0,0.0,0.0,True
2022-02-14 00:00:00+00:00,24.42,24.42,23.34,23.98,17.179889959460297,79188.0,0.0,0.0,True
2022-02-15 00:00:00+00:00,23.86,24.560000000000002,23.54,24.22,17.35183139636004,175846.0,0.0,0.0,True
2022-02-16 00:00:00+00:00,24.580000000000002,24.580000000000002,23.76,23.98,17.179889959460297,62392.0,0.0,0.0,True
2022-02-17 00:00:00+00:00,24.78,24.78,23.86,23.86,17.09392011837903,111791.0,0.0,0.0,True
2022-02-18 00:00:00+00:00,23.84,23.94760009765625,23.36,23.48,16.821676146708075,61467.0,0.0,0.0,True
2022-02-21 00:00:00+00:00,23.46,23.64919921875,22.82,23.080000000000002,16.53510474555885,71820.0,0.0,0.0,True
2022-02-22 00:00:00+00:00,24.18,24.18,22.54,23.38,16.75003373510507,75721.0,0.0,0.0,True
2022-02-23 00:00:00+00:00,23.78,24.04,23.02,23.02,16.492122457124065,122317.0,0.0,0.0,True
2022-02-24 00:00:00+00:00,23.3,23.3,21.96,22.52,16.133908644371843,241118.0,0.0,0.0,True
2022-02-25 00:00:00+00:00,23.0,23.56,22.66,23.32,16.70704969193306,147148.0,0.0,0.0,True
2022-02-28 00:00:00+00:00,22.36,24.14,22.36,24.14,17.29451641423531,226698.0,0.0,0.0,True
2022-03-01 00:00:00+00:00,24.080000000000002,24.22,23.5,23.5,16.836007085660796,218356.0,0.0,0.0,True
2022-03-02 00:00:00+00:00,23.7,23.900000000000002,23.26,23.62,16.921978681479285,87219.0,0.0,0.0,True
2022-03-03 00:00:00+00:00,23.26,23.8,22.14,22.14,15.861666427438118,137377.0,0.0,0.0,True
2022-03-04 00:00:00+00:00,22.3,22.92,20.740000000000002,20.740000000000002,14.858670910258917,173972.0,0.0,0.0,True
2022-03-07 00:00:00+00:00,20.740000000000002,21.14,19.5,20.3,14.54344201804733,282380.0,0.0,0.0,True
2022-03-08 00:00:00+00:00,20.3,20.82,19.52,19.52,13.984631032070219,268763.0,0.0,0.0,True
2022-03-09 00:00:00+00:00,20.0,21.02,19.73,21.02,15.059270715589653,624876.0,0.0,0.0,True
2022-03-10 00:00:00+00:00,21.22,21.22,20.38,20.44,14.643742798081307,266261.0,0.0,0.0,True
2022-03-11 00:00:00+00:00,20.66,21.52,20.46,20.900000000000002,14.97329911977116,139879.0,0.0,0.0,True
2022-03-14 00:00:00+00:00,21.5,21.88,21.1,21.580000000000002,15.460468571513879,87051.0,0.0,0.0,True
2022-03-15 00:00:00+00:00,20.72,21.48,20.72,20.96,15.016284917680403,86783.0,0.0,0.0,True
2022-03-16 00:00:00+00:00,21.580000000000002,22.72,21.36,22.48,16.10525378541532,118783.0,0.0,0.0,True
2022-03-17 00:00:00+00:00,21.68,22.7,21.68,22.46,16.090922846462604,86717.0,0.0,0.0,True
2022-03-18 00:00:00+00:00,21.76,23.32,21.76,23.18,16.60675066663631,147084.0,0.0,0.0,True
2022-03-21 00:00:00+00:00,23.400000000000002,23.400000000000002,22.26,22.62,16.205551055974844,290436.0,0.0,0.0,True
2022-03-22 00:00:00+00:00,23.22,23.22,21.94,22.0,15.761365647404139,89172.0,0.0,0.0,True
2022-03-23 00:00:00+00:00,21.68,22.7,21.68,22.56,16.162565258065598,83842.0,0.0,0.0,True
2022-03-24 00:00:00+00:00,21.42,22.64,21.400000000000002,22.400000000000002,16.047938803290588,121267.0,0.0,0.0,True
2022-03-25 00:00:00+00:00,22.5,23.1,21.92,22.66,16.234207669668603,192618.0,0.0,0.0,True
2022-03-28 00:00:00+01:00,22.14,23.32,22.14,22.86,16.37749424761182,109333.0,0.0,0.0,True
2022-03-29 00:00:00+01:00,23.02,23.511201171875,22.8360009765625,23.38,16.75003373510507,85895.0,0.0,0.0,True
2022-03-30 00:00:00+01:00,23.82,25.740000000000002,23.82,25.740000000000002,18.440800264094957,571137.0,0.0,0.0,True
2022-03-31 00:00:00+01:00,25.68,26.2,25.0,26.2,18.77035219894174,458165.0,0.0,0.0,True
2022-04-01 00:00:00+01:00,26.32,26.34,25.580000000000002,25.580000000000002,18.32617029984549,206616.0,0.0,0.0,True
2022-04-04 00:00:00+01:00,26.400000000000002,26.400000000000002,25.2,25.92,18.569757657822695,150039.0,0.0,0.0,True
2022-04-05 00:00:00+01:00,25.94,26.92,25.900000000000002,26.46,18.956626329531442,2241719.0,0.0,0.0,True
2022-04-06 00:00:00+01:00,26.62,26.98,26.32,26.52,18.99961212744068,178598.0,0.0,0.0,True
2022-04-07 00:00:00+01:00,26.86,27.62,26.44,27.18,19.472452394967913,191304.0,0.0,0.0,True
2022-04-08 00:00:00+01:00,27.52,27.72489990234375,26.52,26.62,19.071256293780912,131026.0,0.0,0.0,True
2022-04-11 00:00:00+01:00,26.560000000000002,26.692480468750002,25.88,26.0,18.6270708852102,106445.0,0.0,0.0,True
2022-04-12 00:00:00+01:00,26.0,26.580000000000002,26.0,26.28,18.827668935803704,134222.0,0.0,0.0,True
2022-04-13 00:00:00+01:00,26.62,26.62,25.92,26.3,18.8419981200192,151567.0,0.0,0.0,True
2022-04-14 00:00:00+01:00,26.240000000000002,26.52,25.79534912109375,26.0,18.6270708852102,203268.0,0.0,0.0,True
2022-04-19 00:00:00+01:00,25.8,26.060000000000002,24.96,25.54,18.29751368615174,202763.0,0.0,0.0,True
2022-04-20 00:00:00+01:00,25.740000000000002,25.740000000000002,25.12,25.12,17.996616610261484,133972.0,0.0,0.0,True
2022-04-21 00:00:00+01:00,25.22,25.62,25.1,25.2,18.05392983764899,134423.0,0.0,0.0,True
2022-04-22 00:00:00+01:00,24.62,25.38,24.62,25.02,17.924972443921252,148749.0,0.0,0.0,True
2022-04-25 00:00:00+01:00,24.38,24.86,24.18,24.400000000000002,17.480788790087782,283575.0,0.0,0.0,True
2022-04-26 00:00:00+01:00,24.3,24.82,24.22,24.3,17.409144623747547,271554.0,0.0,0.0,True
2022-04-27 00:00:00+01:00,24.0,24.94,23.2,23.46,16.807348717229807,147954.0,0.0,0.0,True
2022-04-28 00:00:00+01:00,23.48,23.90139892578125,23.42,23.76,17.022275952038804,98816.0,0.0,0.0,True
2022-04-29 00:00:00+01:00,23.22,24.16,23.2,24.04,17.222875757369536,139578.0,0.0,0.0,True
2022-05-03 00:00:00+01:00,23.6,24.3,23.18,23.48,16.821676146708075,181511.0,0.0,0.0,True
2022-05-04 00:00:00+01:00,23.16,23.26,22.24698974609375,22.44,16.07659541698434,199215.0,0.0,0.0,True
2022-05-05 00:00:00+01:00,23.52,23.52,22.18,22.26,15.947638023256607,468283.0,0.0,0.0,True
2022-05-06 00:00:00+01:00,21.900000000000002,22.06,21.5,22.0,15.761365647404139,119246.0,0.0,0.0,True
2022-05-09 00:00:00+01:00,21.88,21.89320068359375,20.8,21.14,15.145240556670908,216918.0,0.0,0.0,True
2022-05-10 00:00:00+01:00,21.3,22.02,21.14,21.52,15.417482773604641,175912.0,0.0,0.0,True
2022-05-11 00:00:00+01:00,22.080000000000002,22.6,21.48,21.92,15.704052420016632,161619.0,0.0,0.0,True
2022-05-12 00:00:00+01:00,21.54,22.0,21.0,21.96,15.732709033710387,162789.0,0.0,0.0,True
2022-05-13 00:00:00+01:00,22.0,22.580000000000002,21.88,22.400000000000002,16.047938803290588,136027.0,0.0,0.0,True
2022-05-16 00:00:00+01:00,22.28,22.32,21.66,21.88,15.675395806322873,169593.0,0.0,0.0,True
2022-05-17 00:00:00+01:00,21.94,22.1,21.580000000000002,21.8,15.6180843336726,230442.0,0.0,0.0,True
2022-05-18 00:00:00+01:00,22.76,22.76,21.34,21.36,15.302854564092398,218130.0,0.0,0.0,True
2022-05-19 00:00:00+01:00,21.56,21.900000000000002,20.82,21.82,15.63241176315086,161985.0,0.0,0.0,True
2022-05-20 00:00:00+01:00,21.88,22.5,21.7,21.76,15.589424210504394,108143.0,0.0,0.0,True
2022-05-23 00:00:00+01:00,21.7,22.26,21.68,21.84,15.646737437891897,114671.0,0.0,0.0,True
2022-05-24 00:00:00+01:00,22.0,22.0,21.22,21.34,15.288527134614132,80311.0,0.0,0.0,True
2022-05-25 00:00:00+01:00,21.44,22.240000000000002,21.3510009765625,21.94,15.718381604232118,108379.0,0.0,0.0,True
2022-05-26 00:00:00+01:00,22.240000000000002,22.240000000000002,21.66,22.080000000000002,15.818681213374894,54302.0,0.0,0.0,True
2022-05-27 00:00:00+01:00,22.14,22.68,22.04,22.5,16.119582880836756,84161.0,0.0,0.0,True
2022-05-30 00:00:00+01:00,22.8,23.1,22.5,22.68,16.248539235253762,92952.0,0.0,0.0,True
2022-05-31 00:00:00+01:00,22.0,23.56,22.0,23.42,16.778693136745915,260541.0,0.0,0.0,True
2022-06-01 00:00:00+01:00,23.52,23.76,22.96,23.48,16.82167858821825,169299.0,0.0,0.0,True
2022-06-06 00:00:00+01:00,23.52,23.76,23.080000000000002,23.56,16.878994277092456,62642.0,0.0,0.0,True
2022-06-07 00:00:00+01:00,22.62,23.92,22.62,23.8,17.050936082981796,131089.0,0.0,0.0,True
2022-06-08 00:00:00+01:00,23.88,24.22,23.88,24.060000000000002,17.237204619117506,144324.0,0.0,0.0,True
2022-06-09 00:00:00+01:00,23.72,24.740000000000002,23.48300048828125,24.32,17.423476662408714,197024.0,0.0,0.0,True
2022-06-10 00:00:00+01:00,24.18,24.5,23.68,23.900000000000002,17.122578502102364,391211.0,0.0,0.0,True
2022-06-13 00:00:00+01:00,23.78,24.0,22.88,23.2,17.789308885513787,389306.0,1.45,0.0,True
2022-06-14 00:00:00+01:00,23.18,23.34,22.92,23.04,17.66662428140854,168973.0,0.0,0.0,True
2022-06-15 00:00:00+01:00,22.6,23.18,21.580000000000002,22.26,17.068536836395484,159033.0,0.0,0.0,True
2022-06-16 00:00:00+01:00,22.54,22.54,21.82,21.92,16.80783017584214,154582.0,0.0,0.0,True
2022-06-17 00:00:00+01:00,22.02,22.62,22.0,22.56,17.29857046909282,162701.0,0.0,0.0,True
2022-06-20 00:00:00+01:00,22.54,22.7643994140625,22.3,22.46,17.221890714697334,48492.0,0.0,0.0,True
2022-06-21 00:00:00+01:00,22.52,23.1,22.34,22.740000000000002,17.436590648711217,131960.0,0.0,0.0,True
2022-06-22 00:00:00+01:00,22.94,23.12,22.03,22.96,17.60528197935593,67403.0,0.0,0.0,True
2022-06-23 00:00:00+01:00,23.5,23.5,21.88,22.240000000000002,17.053197507222922,191595.0,0.0,0.0,True
2022-06-24 00:00:00+01:00,22.8,23.34,22.580000000000002,23.1,17.712632884777715,186503.0,0.0,0.0,True
2022-06-27 00:00:00+01:00,23.080000000000002,23.34,22.78,22.900000000000002,17.559273375986756,75108.0,0.0,0.0,True
2022-06-28 00:00:00+01:00,22.84,23.14,22.42,22.6,17.32923974328942,95713.0,0.0,0.0,True
2022-06-29 00:00:00+01:00,22.44,22.580000000000002,21.76,21.8,16.715816722763208,143179.0,0.0,0.0,True
2022-06-30 00:00:00+01:00,21.38,22.0,21.38,21.94,16.823165751355294,143371.0,0.0,0.0,True
2022-07-01 00:00:00+01:00,21.0,22.3,21.0,22.14,16.97652150648685,151912.0,0.0,0.0,True
2022-07-04 00:00:00+01:00,22.96,23.12,21.76,21.86,16.761825326132374,163031.0,0.0,0.0,True
2022-07-05 00:00:00+01:00,21.8,22.26,21.1,21.54,16.516450487432774,87873.0,0.0,0.0,True
2022-07-06 00:00:00+01:00,21.8,22.54,21.8,22.5,17.25256374255335,192002.0,0.0,0.0,True
2022-07-07 00:00:00+01:00,22.740000000000002,22.86,22.44739990234375,22.68,17.39058392217175,44045.0,0.0,0.0,True
2022-07-08 00:00:00+01:00,22.7,23.1,22.38,23.0,17.63595125355253,54169.0,0.0,0.0,True
2022-07-11 00:00:00+01:00,23.0,23.240000000000002,22.68,23.02,17.651288705895393,28404.0,0.0,0.0,True
2022-07-12 00:00:00+01:00,23.48,23.48,22.38,22.400000000000002,17.175885864987574,58069.0,0.0,0.0,True
2022-07-13 00:00:00+01:00,21.98,22.42,21.54,22.2,17.022528233026314,171315.0,0.0,0.0,True
2022-07-14 00:00:00+01:00,21.6,22.28739990234375,21.42,21.8,16.715816722763208,69105.0,0.0,0.0,True
2022-07-15 00:00:00+01:00,22.240000000000002,22.46,21.42,22.38,17.160548412644715,37962.0,0.0,0.0,True
2022-07-18 00:00:00+01:00,22.52,23.26,22.52,23.1,17.712632884777715,57375.0,0.0,0.0,True
2022-07-19 00:00:00+01:00,22.86,23.240000000000002,22.86,23.080000000000002,17.697293555605157,111888.0,0.0,0.0,True
2022-07-20 00:00:00+01:00,23.32,23.7,23.27,23.64,18.126693423632915,101102.0,0.0,0.0,True
2022-07-21 00:00:00+01:00,23.6,24.3,23.52,24.3,18.63276741556704,94675.0,0.0,0.0,True
2022-07-22 00:00:00+01:00,24.22,24.66,24.14,24.28,18.617431840053886,106841.0,0.0,0.0,True
2022-07-25 00:00:00+01:00,24.26,24.42,23.96,24.04,18.433404933896025,156132.0,0.0,0.0,True
2022-07-26 00:00:00+01:00,24.1,24.1,23.56,23.56,18.065351121580292,100895.0,0.0,0.0,True
2022-07-27 00:00:00+01:00,23.48,23.94,23.44,23.580000000000002,18.080686697093444,147619.0,0.0,0.0,True
2022-07-28 00:00:00+01:00,24.32,24.400000000000002,23.84,24.400000000000002,18.709447169962523,68667.0,0.0,0.0,True
2022-07-29 00:00:00+01:00,24.28,25.48,24.26,25.14,19.27686346394928,215529.0,0.0,0.0,True
2022-08-01 00:00:00+01:00,26.0,26.0,24.6,24.900000000000002,19.092834680961705,67096.0,0.0,0.0,True
2022-08-02 00:00:00+01:00,24.86,24.900000000000002,24.3,24.52,18.801460623041454,44575.0,0.0,0.0,True
2022-08-03 00:00:00+01:00,25.400000000000002,27.664499511718752,24.740000000000002,27.0,20.703077617161842,363560.0,0.0,0.0,True
2022-08-04 00:00:00+01:00,26.96,27.06300048828125,25.98,26.42,20.258342173620928,390933.0,0.0,0.0,True
2022-08-05 00:00:00+01:00,26.28,27.1,26.22,26.54,20.35035562669986,281941.0,0.0,0.0,True
2022-08-08 00:00:00+01:00,26.26,26.84,25.740000000000002,26.02,19.95163066335782,119579.0,0.0,0.0,True
2022-08-09 00:00:00+01:00,26.0,26.12,25.400000000000002,25.42,19.491561521133452,81157.0,0.0,0.0,True
2022-08-10 00:00:00+01:00,26.0,26.361459960937502,24.84,26.240000000000002,20.120323870832234,236333.0,0.0,0.0,True
2022-08-11 00:00:00+01:00,26.22,26.52,25.94,26.26,20.135657569515683,202521.0,0.0,0.0,True
2022-08-12 00:00:00+01:00,26.740000000000002,26.76,26.12,26.68,20.45770465529195,94373.0,0.0,0.0,True
2022-08-15 00:00:00+01:00,26.0,26.92,25.66,26.68,20.45770465529195,130154.0,0.0,0.0,True
2022-08-16 00:00:00+01:00,26.1,26.86,25.34,25.580000000000002,19.6142480020684,220905.0,0.0,0.0,True
2022-08-17 00:00:00+01:00,25.66,26.2,25.32,25.740000000000002,19.73693072934394,194549.0,0.0,0.0,True
2022-08-18 00:00:00+01:00,25.740000000000002,25.8,25.42,25.8,19.782937455883403,73907.0,0.0,0.0,True
2022-08-19 00:00:00+01:00,25.64,25.7,24.38,24.38,18.694109717619664,161331.0,0.0,0.0,True
2022-08-22 00:00:00+01:00,24.2,24.42,23.84,24.14,18.510080934632093,309805.0,0.0,0.0,True
2022-08-23 00:00:00+01:00,24.2,24.2,23.34,23.42,17.9580002161585,169026.0,0.0,0.0,True
2022-08-24 00:00:00+01:00,24.44,24.44,23.240000000000002,24.080000000000002,18.464076084922333,213735.0,0.0,0.0,True
2022-08-25 00:00:00+01:00,24.34,24.76,24.14,24.560000000000002,18.832129897238065,103565.0,0.0,0.0,True
2022-08-26 00:00:00+01:00,24.68,25.84,24.418798828125002,24.48,18.770789472015146,111767.0,0.0,0.0,True
2022-08-30 00:00:00+01:00,25.0,25.32,24.28,24.64,18.893472199290684,114667.0,0.0,0.0,True
2022-08-31 00:00:00+01:00,24.3,25.14,24.26,24.86,19.062165406765097,159278.0,0.0,0.0,True
2022-09-01 00:00:00+01:00,24.84,24.84,23.28,23.5,18.019344395040825,75741.0,0.0,0.0,True
2022-09-02 00:00:00+01:00,23.8,23.900000000000002,23.32,23.86,18.29538663110733,161878.0,0.0,0.0,True
2022-09-05 00:00:00+01:00,23.54,24.04,23.19093994140625,23.5,18.019344395040825,89772.0,0.0,0.0,True
2022-09-06 00:00:00+01:00,23.54,24.02,23.31,23.580000000000002,18.080686697093444,71477.0,0.0,0.0,True
2022-09-07 00:00:00+01:00,23.0,23.72,23.0,23.48,18.004006942697963,97993.0,0.0,0.0,True
2022-09-08 00:00:00+01:00,23.400000000000002,23.86,23.12,23.86,18.29538663110733,192900.0,0.0,0.0,True
2022-09-09 00:00:00+01:00,23.7,24.240000000000002,23.67845947265625,24.16,18.52542026380466,59221.0,0.0,0.0,True
2022-09-12 00:00:00+01:00,24.400000000000002,24.400000000000002,23.82,24.04,18.433404933896025,76307.0,0.0,0.0,True
2022-09-13 00:00:00+01:00,24.0,24.76,23.66,23.66,18.142027122316367,155869.0,0.0,0.0,True
2022-09-14 00:00:00+01:00,23.66,24.34,23.54,23.84,18.280047301934765,120233.0,0.0,0.0,True
2022-09-15 00:00:00+01:00,23.22,23.88,23.18,23.34,17.896657914105877,297665.0,0.0,0.0,True
2022-09-16 00:00:00+01:00,23.26,23.32,22.900000000000002,22.92,17.574610828329615,144960.0,0.0,0.0,True
2022-09-20 00:00:00+01:00,22.94,24.04,22.6,23.5,18.019344395040825,317042.0,0.0,0.0,True
2022-09-21 00:00:00+01:00,23.84,24.36,21.86,23.12,17.72796658346117,273104.0,0.0,0.0,True
2022-09-22 00:00:00+01:00,23.02,23.46,22.8,23.240000000000002,17.819981913369805,330760.0,0.0,0.0,True
2022-09-23 00:00:00+01:00,23.02,23.14,21.900000000000002,22.56,17.29857046909282,152226.0,0.0,0.0,True
2022-09-26 00:00:00+01:00,22.1,22.98,22.1,22.68,17.39058392217175,160292.0,0.0,0.0,True
2022-09-27 00:00:00+01:00,22.92,23.52,22.82,22.82,17.497931073934133,170562.0,0.0,0.0,True
2022-09-28 00:00:00+01:00,22.1,23.06,21.98,22.86,17.528604101790147,115333.0,0.0,0.0,True
2022-09-29 00:00:00+01:00,22.84,22.900000000000002,22.04,22.36,17.14521283713156,131444.0,0.0,0.0,True
2022-09-30 00:00:00+01:00,22.7,23.18,22.0,22.98,17.62061755486908,721076.0,0.0,0.0,True
2022-10-03 00:00:00+01:00,22.0,23.740000000000002,22.0,23.6,18.0960203957769,411048.0,0.0,0.0,True
2022-10-04 00:00:00+01:00,23.14,24.82,23.14,24.48,18.770789472015146,359955.0,0.0,0.0,True
2022-10-05 00:00:00+01:00,24.6,24.6,23.38,23.66,18.142027122316367,787207.0,0.0,0.0,True
2022-10-06 00:00:00+01:00,23.3,24.36,23.3,24.16,19.148596560732347,179826.0,0.77,0.0,True
2022-10-07 00:00:00+01:00,24.32,24.32,23.12,23.28,18.451130936862427,182711.0,0.0,0.0,True
2022-10-10 00:00:00+01:00,23.0,23.28,22.240000000000002,22.44,17.78536759068367,138462.0,0.0,0.0,True
2022-10-11 00:00:00+01:00,22.38,22.72,22.1,22.18,17.5792979373585,148515.0,0.0,0.0,True
2022-10-12 00:00:00+01:00,23.12,23.12,21.88,22.16,17.563445828846387,162450.0,0.0,0.0,True
2022-10-13 00:00:00+01:00,22.740000000000002,22.740000000000002,21.12,21.900000000000002,17.357378114854292,326778.0,0.0,0.0,True
2022-10-14 00:00:00+01:00,22.0,22.76,21.82,22.5,17.83292197688693,161983.0,0.0,0.0,True
2022-10-17 00:00:00+01:00,22.86,23.01260009765625,22.2,22.94,18.18165478882189,116551.0,0.0,0.0,True
2022-10-18 00:00:00+01:00,22.26,23.38,22.26,23.12,18.32431794743168,141461.0,0.0,0.0,True
2022-10-19 00:00:00+01:00,23.0,23.16,22.240000000000002,22.36,17.72196109596829,104562.0,0.0,0.0,True
2022-10-20 00:00:00+01:00,22.38,22.72,21.82,22.5,17.83292197688693,152158.0,0.0,0.0,True
2022-10-21 00:00:00+01:00,22.5,23.1,22.28,23.0,18.229207235692083,104972.0,0.0,0.0,True
2022-10-24 00:00:00+01:00,23.02,23.900000000000002,23.0,23.38,18.53038566142378,159898.0,0.0,0.0,True
2022-10-25 00:00:00+01:00,23.72,24.46,23.42,24.16,19.148596560732347,85381.0,0.0,0.0,True
2022-10-26 00:00:00+01:00,24.16,24.2,23.66,24.14,19.132742512887166,117490.0,0.0,0.0,True
2022-10-27 00:00:00+01:00,24.080000000000002,24.54,23.88,24.34,19.291259719342143,238792.0,0.0,0.0,True
2022-10-28 00:00:00+01:00,24.1,24.22,23.719599609375,24.080000000000002,19.085190066016974,122712.0,0.0,0.0,True
2022-10-31 00:00:00+00:00,24.26,24.46,23.66,24.1,19.101040235196017,102273.0,0.0,0.0,True
2022-11-01 00:00:00+00:00,24.5,24.94,24.02,24.22,19.19614900760254,72028.0,0.0,0.0,True
2022-11-02 00:00:00+00:00,24.1,25.0,23.92,24.64,19.52902971102539,145464.0,0.0,0.0,True
2022-11-03 00:00:00+00:00,24.28,24.72,23.88,24.04,19.053485848992747,73546.0,0.0,0.0,True
2022-11-04 00:00:00+00:00,24.240000000000002,25.080000000000002,23.60639892578125,24.28,19.24370339380581,69077.0,0.0,0.0,True
2022-11-07 00:00:00+00:00,24.22,25.080000000000002,24.02,24.900000000000002,19.735099364350557,124283.0,0.0,0.0,True
2022-11-08 00:00:00+00:00,24.580000000000002,25.22,24.580000000000002,25.22,19.988723403878986,153287.0,0.0,0.0,True
2022-11-09 00:00:00+00:00,24.98,25.22,24.88,24.98,19.798505859065934,100019.0,0.0,0.0,True
2022-11-10 00:00:00+00:00,24.82,26.54,24.64,26.2,20.76544763097639,132777.0,0.0,0.0,True
2022-11-11 00:00:00+00:00,26.36,26.86,26.16,26.580000000000002,21.066624117375014,219220.0,0.0,0.0,True
2022-11-14 00:00:00+00:00,26.3,27.1,26.26,26.96,21.36780254310671,128692.0,0.0,0.0,True
2022-11-15 00:00:00+00:00,26.48,27.16,26.14,26.92,21.336100265415556,186824.0,0.0,0.0,True
2022-11-16 00:00:00+00:00,27.02,27.04,26.38,26.52,21.01906973117175,107714.0,0.0,0.0,True
2022-11-17 00:00:00+00:00,26.76,26.76,25.8,26.7,21.16173482911461,111413.0,0.0,0.0,True
2022-11-18 00:00:00+00:00,26.88,27.1,26.32,27.1,21.47876342402535,127583.0,0.0,0.0,True
2022-11-21 00:00:00+00:00,27.96,29.15199951171875,27.43699951171875,27.740000000000002,21.986009563749136,517109.0,0.0,0.0,True
2022-11-22 00:00:00+00:00,28.0,28.0,26.86,27.66,21.922605008366833,209083.0,0.0,0.0,True
2022-11-23 00:00:00+00:00,27.6,28.34,27.5,28.34,22.461555365114847,458322.0,0.0,0.0,True
2022-11-24 00:00:00+00:00,29.0,29.26,27.6,28.8,22.826138346228845,189652.0,0.0,0.0,True
2022-11-25 00:00:00+00:00,28.400000000000002,29.03300048828125,28.400000000000002,28.900000000000002,22.905396949456335,146017.0,0.0,0.0,True
2022-11-28 00:00:00+00:00,28.7,29.1,28.0,29.1,23.063912216578238,255817.0,0.0,0.0,True
2022-11-29 00:00:00+00:00,29.080000000000002,29.14,28.8,28.900000000000002,22.905396949456335,204232.0,0.0,0.0,True
2022-11-30 00:00:00+00:00,28.76,29.62,28.76,29.5,23.380940811488976,538520.0,0.0,0.0,True
2022-12-01 00:00:00+00:00,29.68,29.900000000000002,29.060000000000002,29.76,23.58701240414721,188618.0,0.0,0.0,True
2022-12-02 00:00:00+00:00,29.88,30.560000000000002,29.3,29.48,23.365090642309934,384388.0,0.0,0.0,True
2022-12-05 00:00:00+00:00,29.36,29.92,28.26,28.28,22.414000978911588,225089.0,0.0,0.0,True
2022-12-06 00:00:00+00:00,28.1,28.48,27.78,27.94,22.144526770204113,320011.0,0.0,0.0,True
2022-12-07 00:00:00+00:00,27.92,28.2,27.64,27.94,22.144526770204113,341034.0,0.0,0.0,True
2022-12-08 00:00:00+00:00,27.78,28.080000000000002,27.72,27.92,22.128676601025074,219670.0,0.0,0.0,True
2022-12-09 00:00:00+00:00,27.400000000000002,28.0,27.400000000000002,28.0,22.19208115640738,138547.0,0.0,0.0,True
2022-12-12 00:00:00+00:00,28.400000000000002,28.76300048828125,27.72,28.240000000000002,22.38229870122043,128168.0,0.0,0.0,True
2022-12-13 00:00:00+00:00,28.34,29.1,27.86,28.38,22.49325958213907,263580.0,0.0,0.0,True
2022-12-14 00:00:00+00:00,28.0,28.36,27.86,28.22,22.36644659270832,62627.0,0.0,0.0,True
2022-12-15 00:00:00+00:00,27.900000000000002,28.18,27.54,27.54,21.827496235960307,256065.0,0.0,0.0,True
2022-12-16 00:00:00+00:00,27.5,27.96,27.080000000000002,27.400000000000002,21.71653729437474,147966.0,0.0,0.0,True
2022-12-19 00:00:00+00:00,27.52,27.9739990234375,27.38,27.52,21.811644127448197,62241.0,0.0,0.0,True
2022-12-20 00:00:00+00:00,27.5,27.62,26.8,27.38,21.700685185862625,116737.0,0.0,0.0,True
2022-12-21 00:00:00+00:00,27.64,28.1,27.24030029296875,27.86,22.08112027548874,47330.0,0.0,0.0,True
2022-12-22 00:00:00+00:00,27.86,28.26,27.3,27.48,21.779943789090108,59975.0,0.0,0.0,True
2022-12-23 00:00:00+00:00,28.26,28.26,27.240000000000002,27.46,21.764091680578,37424.0,0.0,0.0,True
2022-12-28 00:00:00+00:00,27.44,27.7,27.22,27.42,21.732387463553778,39217.0,0.0,0.0,True
2022-12-29 00:00:00+00:00,27.04,27.66,27.02,27.62,21.890902730675684,96876.0,0.0,0.0,True
2022-12-30 00:00:00+00:00,26.96,27.66,26.96,27.240000000000002,21.589724304943985,23796.0,0.0,0.0,True
2023-01-03 00:00:00+00:00,27.2,28.22,26.64,27.66,21.922605008366833,68033.0,0.0,0.0,True
2023-01-04 00:00:00+00:00,27.54,27.98,27.1572998046875,27.88,22.096972384000846,68241.0,0.0,0.0,True
2023-01-05 00:00:00+00:00,27.76,28.3,27.562900390625,28.04,22.22378343409853,99643.0,0.0,0.0,True
2023-01-06 00:00:00+00:00,27.68,28.72,27.68,28.6,22.667626957773088,132308.0,0.0,0.0,True
2023-01-09 00:00:00+00:00,27.0,28.72,26.529279785156252,28.0,22.19208115640738,144894.0,0.0,0.0,True
2023-01-10 00:00:00+00:00,29.0,29.0,27.42,27.560000000000002,21.843346405139346,108914.0,0.0,0.0,True
2023-01-11 00:00:00+00:00,28.8,28.8,27.36,28.32,22.445705195935805,117605.0,0.0,0.0,True
2023-01-12 00:00:00+00:00,28.0,28.16,26.67,26.98,21.38365271228575,394851.0,0.0,0.0,True
2023-01-13 00:00:00+00:00,26.76,27.0839990234375,25.400000000000002,25.6,20.28990182961068,356966.0,0.0,0.0,True
2023-01-16 00:00:00+00:00,25.0,26.080000000000002,24.86,25.18,19.95702112618783,336471.0,0.0,0.0,True
2023-01-17 00:00:00+00:00,25.22,25.400000000000002,24.92,25.3,20.05212795926129,221386.0,0.0,0.0,True
2023-01-18 00:00:00+00:00,25.66,26.78,25.37659912109375,26.240000000000002,20.79715184800061,1025972.0,0.0,0.0,True
2023-01-19 00:00:00+00:00,27.0,27.0,25.98,26.62,21.098328334399234,102617.0,0.0,0.0,True
2023-01-20 00:00:00+00:00,26.72,27.0,26.34,26.44,20.955663236456374,192758.0,0.0,0.0,True
2023-01-23 00:00:00+00:00,26.48,26.650000000000002,25.86,26.12,20.702041136261013,159375.0,0.0,0.0,True
2023-01-24 00:00:00+00:00,26.3,26.44,25.88,26.060000000000002,20.654486750057753,285494.0,0.0,0.0,True
2023-01-25 00:00:00+00:00,26.5,28.04,26.18,27.740000000000002,21.986009563749136,379047.0,0.0,0.0,True
2023-01-26 00:00:00+00:00,27.86,28.26,27.66,27.740000000000002,21.986009563749136,234863.0,0.0,0.0,True
2023-01-27 00:00:00+00:00,27.900000000000002,28.48,27.44,28.44,22.540812029009263,96625.0,0.0,0.0,True
2023-01-30 00:00:00+00:00,28.14,28.68,27.88,28.16,22.318892206505055,169732.0,0.0,0.0,True
2023-01-31 00:00:00+00:00,28.060000000000002,28.400000000000002,27.84,28.400000000000002,22.509109751318114,250688.0,0.0,0.0,True
2023-02-01 00:00:00+00:00,28.2,28.72,27.400000000000002,28.34,22.461555365114847,97416.0,0.0,0.0,True
2023-02-02 00:00:00+00:00,28.68,29.560000000000002,28.1,29.2,23.143168880472654,245261.0,0.0,0.0,True
2023-02-03 00:00:00+00:00,29.66,29.7,28.8,29.28,23.20657343585496,211695.0,0.0,0.0,True
2023-02-06 00:00:00+00:00,29.02,29.48,28.92597900390625,29.04,23.016357830374975,78978.0,0.0,0.0,True
2023-02-07 00:00:00+00:00,28.2,28.98,27.7,28.26,22.39814887039947,327488.0,0.0,0.0,True
2023-02-08 00:00:00+00:00,28.7,28.7,28.0,28.36,22.477405534293887,88715.0,0.0,0.0,True
2023-02-09 00:00:00+00:00,29.0,29.0,28.44,28.7,22.74688168233443,113023.0,0.0,0.0,True
2023-02-10 00:00:00+00:00,28.8,28.89,28.02,28.02,22.20793326491949,169490.0,0.0,0.0,True
2023-02-13 00:00:00+00:00,27.900000000000002,28.38,27.36,28.38,22.49325958213907,140602.0,0.0,0.0,True
2023-02-14 00:00:00+00:00,27.060000000000002,28.560000000000002,27.060000000000002,28.0,22.19208115640738,107333.0,0.0,0.0,True
2023-02-15 00:00:00+00:00,28.18,28.900000000000002,27.724599609375,28.84,22.85784256325307,129853.0,0.0,0.0,True
2023-02-16 00:00:00+00:00,27.3,29.240000000000002,27.3,29.12,23.07976432509035,63977.0,0.0,0.0,True
2023-02-17 00:00:00+00:00,29.96,29.96,28.5,28.5,22.588368354545597,75842.0,0.0,0.0,True
2023-02-20 00:00:00+00:00,28.400000000000002,28.92,28.3,28.900000000000002,22.905396949456335,44533.0,0.0,0.0,True
2023-02-21 00:00:00+00:00,28.580000000000002,29.14,28.580000000000002,28.8,22.826138346228845,176561.0,0.0,0.0,True
2023-02-22 00:00:00+00:00,28.900000000000002,28.900000000000002,28.48,28.76,22.794438007870767,146264.0,0.0,0.0,True
2023-02-23 00:00:00+00:00,28.82,29.34,28.66,28.88,22.88954484094422,86655.0,0.0,0.0,True
2023-02-24 00:00:00+00:00,28.98,28.98,28.240000000000002,28.42,22.524961859830224,69783.0,0.0,0.0,True
2023-02-27 00:00:00+00:00,28.68,29.060000000000002,28.1,28.84,22.85784256325307,78772.0,0.0,0.0,True
2023-02-28 00:00:00+00:00,28.62,29.1,28.580000000000002,28.92,22.921249057968446,386853.0,0.0,0.0,True
2023-03-01 00:00:00+00:00,28.92,29.72,28.86,29.36,23.269979930570333,106416.0,0.0,0.0,True
2023-03-02 00:00:00+00:00,29.8,29.82,28.92,29.62,23.47605152322857,60874.0,0.0,0.0,True
2023-03-03 00:00:00+00:00,29.8,29.92,29.22,29.44,23.33338836461878,59389.0,0.0,0.0,True
2023-03-06 00:00:00+00:00,29.46,29.54,29.02,29.240000000000002,23.174873097496874,68220.0,0.0,0.0,True
2023-03-07 00:00:00+00:00,28.5,29.6,28.5,29.400000000000002,23.301684147594557,69588.0,0.0,0.0,True
2023-03-08 00:00:00+00:00,28.92,29.900000000000002,28.68280029296875,29.64,23.491901692407613,57394.0,0.0,0.0,True
2023-03-09 00:00:00+00:00,29.400000000000002,30.0,29.283999023437502,29.92,23.713823454244892,85081.0,0.0,0.0,True
2023-03-10 00:00:00+00:00,30.0,30.0,29.0,29.560000000000002,23.428497137025307,121079.0,0.0,0.0,True
2023-03-13 00:00:00+00:00,29.26,29.48,28.48,28.48,22.572516246033487,451156.0,0.0,0.0,True
2023-03-14 00:00:00+00:00,28.5,29.02,28.28,29.02,23.000505721862865,173562.0,0.0,0.0,True
2023-03-15 00:00:00+00:00,28.900000000000002,28.9418505859375,25.46,26.46,20.97151728430156,646146.0,0.0,0.0,True
2023-03-16 00:00:00+00:00,26.14,26.88,26.14,26.48,20.987367453480598,240692.0,0.0,0.0,True
2023-03-17 00:00:00+00:00,26.72,27.580000000000002,26.42,26.42,20.93981306727734,145813.0,0.0,0.0,True
2023-03-20 00:00:00+00:00,26.02,27.28,25.82,26.88,21.304397987724403,156224.0,0.0,0.0,True
2023-03-21 00:00:00+00:00,27.12,27.26,26.6,27.2,21.55802008791976,101085.0,0.0,0.0,True
2023-03-22 00:00:00+00:00,27.04,27.28,26.68,27.060000000000002,21.44705920700112,61646.0,0.0,0.0,True
2023-03-23 00:00:00+00:00,27.46,27.84,27.0,27.76,22.001863611594324,238904.0,0.0,0.0,True
2023-03-24 00:00:00+00:00,27.66,27.8639990234375,27.18,27.7,21.954309225391057,151064.0,0.0,0.0,True
2023-03-27 00:00:00+01:00,27.98,28.14,27.0,27.060000000000002,21.44705920700112,242115.0,0.0,0.0,True
2023-03-28 00:00:00+01:00,27.12,27.12,26.34,26.6,21.082476225887127,162045.0,0.0,0.0,True
2023-03-29 00:00:00+01:00,26.64,27.46,26.38,27.240000000000002,21.589724304943985,219929.0,0.0,0.0,True
2023-03-30 00:00:00+01:00,27.76,29.080000000000002,27.650000000000002,28.080000000000002,22.255487651122753,285091.0,0.0,0.0,True
2023-03-31 00:00:00+01:00,28.1,28.14,27.400000000000002,27.580000000000002,21.85919851365146,143041.0,0.0,0.0,True
2023-04-03 00:00:00+01:00,27.580000000000002,27.580000000000002,27.14,27.26,21.6055764134561,100038.0,0.0,0.0,True
2023-04-04 00:00:00+01:00,27.14,27.5535400390625,27.04,27.14,21.5104657017165,89315.0,0.0,0.0,True
2023-04-05 00:00:00+01:00,27.6,27.8,25.48,25.5,20.21064516571627,174325.0,0.0,0.0,True
2023-04-06 00:00:00+01:00,25.6,26.03199951171875,25.46,26.0,20.606932363854487,163437.0,0.0,0.0,True
2023-04-11 00:00:00+01:00,26.0,26.580000000000002,25.86,26.22,20.781297800155432,148621.0,0.0,0.0,True
2023-04-12 00:00:00+01:00,26.68,27.0,26.02,26.64,21.114180442911348,118071.0,0.0,0.0,True
2023-04-13 00:00:00+01:00,26.96,27.400000000000002,26.68,27.18,21.542169918740722,338659.0,0.0,0.0,True
2023-04-14 00:00:00+01:00,27.5,27.86,26.72,26.72,21.177584998293653,188709.0,0.0,0.0,True
2023-04-17 00:00:00+01:00,26.78,27.060000000000002,26.0356005859375,26.98,21.38365271228575,260010.0,0.0,0.0,True
2023-04-18 00:00:00+01:00,28.0,28.0,26.86,27.2,21.55802008791976,110566.0,0.0,0.0,True
2023-04-19 00:00:00+01:00,26.8,27.38,26.72,27.240000000000002,21.589724304943985,238055.0,0.0,0.0,True
2023-04-20 00:00:00+01:00,27.78,27.78,26.66,26.66,21.130030612090387,136925.0,0.0,0.0,True
2023-04-21 00:00:00+01:00,26.5,27.400000000000002,26.48,27.02,21.415356929309976,102818.0,0.0,0.0,True
2023-04-24 00:00:00+01:00,26.400000000000002,27.36,26.400000000000002,27.0,21.399506760130933,53770.0,0.0,0.0,True
2023-04-25 00:00:00+01:00,26.78,27.34,26.7,26.96,21.36780254310671,584252.0,0.0,0.0,True
2023-04-26 00:00:00+01:00,26.78,26.82,26.32,26.64,21.114180442911348,82215.0,0.0,0.0,True
2023-04-27 00:00:00+01:00,26.14,26.78,26.14,26.76,21.209289215317877,72994.0,0.0,0.0,True
2023-04-28 00:00:00+01:00,27.18,27.18,26.62,27.0,21.399506760130933,63114.0,0.0,0.0,True
2023-05-02 00:00:00+01:00,26.400000000000002,27.095419921875,26.34,26.34,20.87640657256196,142978.0,0.0,0.0,True
2023-05-03 00:00:00+01:00,26.42,26.5,24.96,25.1,19.893616570805527,350646.0,0.0,0.0,True
2023-05-04 00:00:00+01:00,25.0,25.080000000000002,22.68,22.68,17.975585135496722,1493890.0,0.0,0.0,True
2023-05-05 00:00:00+01:00,22.6,22.7,21.92,22.0,17.43663477874871,582476.0,0.0,0.0,True
2023-05-09 00:00:00+01:00,22.5,22.84,21.75010009765625,22.5,17.83292197688693,529565.0,0.0,0.0,True
2023-05-10 00:00:00+01:00,22.5,22.8,21.78,21.8,17.27811951162681,315844.0,0.0,0.0,True
2023-05-11 00:00:00+01:00,21.7,23.38,21.7,23.06,18.276763561228417,489035.0,0.0,0.0,True
2023-05-12 00:00:00+01:00,23.34,23.38,22.72,23.38,18.53038566142378,283610.0,0.0,0.0,True
2023-05-15 00:00:00+01:00,23.04,23.62,23.04,23.5,18.625496373163376,388932.0,0.0,0.0,True
2023-05-16 00:00:00+01:00,23.36,23.54,23.02,23.3,18.466981106041473,395998.0,0.0,0.0,True
2023-05-17 00:00:00+01:00,23.56,23.580000000000002,22.68,22.84,18.102396185594404,423318.0,0.0,0.0,True
2023-05-18 00:00:00+01:00,22.96,23.240000000000002,22.42,22.72,18.007289352520946,319457.0,0.0,0.0,True
2023-05-19 00:00:00+01:00,22.5,22.9019091796875,22.04,22.46,17.80121775986271,421569.0,0.0,0.0,True
2023-05-22 00:00:00+01:00,22.78,22.84,22.38,22.8,18.07069390790325,166747.0,0.0,0.0,True
2023-05-23 00:00:00+01:00,23.2,23.22,22.38,22.38,17.737811265147336,309329.0,0.0,0.0,True
2023-05-24 00:00:00+01:00,22.02,22.33969970703125,20.56,20.94,16.59650793560207,512827.0,0.0,0.0,True
2023-05-25 00:00:00+01:00,20.52,21.0,20.32,20.32,16.10511002572425,729567.0,0.0,0.0,True
2023-05-26 00:00:00+01:00,20.88,20.88,19.72,19.78,15.677119580228338,492367.0,0.0,0.0,True
2023-05-30 00:00:00+01:00,19.92,20.0152001953125,19.35,19.41,15.383867208752699,690501.0,0.0,0.0,True
2023-05-31 00:00:00+01:00,20.2,20.2,19.19,19.45,15.415570456110391,317942.0,0.0,0.0,True
2023-06-01 00:00:00+01:00,19.66,19.740000000000002,19.150000000000002,19.47,15.431421942440583,304732.0,0.0,0.0,True
2023-06-02 00:00:00+01:00,20.22,20.22,19.37,19.82,15.708823639936469,278304.0,0.0,0.0,True
2023-06-05 00:00:00+01:00,19.62,19.72,17.92,18.17,15.690483393097194,461315.0,1.6,0.0,True
2023-06-06 00:00:00+01:00,18.07,18.18,17.29,17.45,15.06873653968668,828912.0,0.0,0.0,True
2023-06-07 00:00:00+01:00,17.73,18.41,17.73,18.32,15.820013943573676,554274.0,0.0,0.0,True
2023-06-08 00:00:00+01:00,17.61,18.6747998046875,17.61,18.22,15.733660243256018,270247.0,0.0,0.0,True
2023-06-09 00:00:00+01:00,18.330000000000002,18.63,17.93,18.52,15.992722399826066,341997.0,0.0,0.0,True
2023-06-12 00:00:00+01:00,18.19,19.12,18.143199462890625,19.12,16.51084354611489,357760.0,0.0,0.0,True
2023-06-13 00:00:00+01:00,19.2,19.77,18.94,19.400000000000002,16.75263475149799,648503.0,0.0,0.0,True
2023-06-14 00:00:00+01:00,19.740000000000002,19.92,19.27,19.6,16.925343207750384,362355.0,0.0,0.0,True
2023-06-15 00:00:00+01:00,19.6,19.775000000000002,18.96,19.18,16.56265639967574,437837.0,0.0,0.0,True
2023-06-16 00:00:00+01:00,19.87,19.87,19.065,19.41,16.76126969928292,635867.0,0.0,0.0,True
2023-06-19 00:00:00+01:00,19.37,19.37,18.93,18.95,16.364043100068553,343892.0,0.0,0.0,True
2023-06-20 00:00:00+01:00,19.39,19.39,18.61,18.67,16.12225189468546,240994.0,0.0,0.0,True
2023-06-21 00:00:00+01:00,19.45,19.469520263671875,18.36,18.91,16.329501197694658,276880.0,0.0,0.0,True
2023-06-22 00:00:00+01:00,18.95,19.162230224609374,18.37,18.8,16.234512549592075,186330.0,0.0,0.0,True
2023-06-23 00:00:00+01:00,18.6,19.04,18.6,18.87,16.294959295320766,189003.0,0.0,0.0,True
2023-06-26 00:00:00+01:00,19.0,19.04719970703125,18.32,18.57,16.035899249984894,411820.0,0.0,0.0,True
2023-06-27 00:00:00+01:00,18.650000000000002,18.77,17.669100341796874,18.03,15.569588846022732,538190.0,0.0,0.0,True
2023-06-28 00:00:00+01:00,18.0,18.2,17.92,18.2,15.716389292069072,210732.0,0.0,0.0,True
2023-06-29 00:00:00+01:00,18.7,18.7,17.54,17.59,15.189631086761139,253575.0,0.0,0.0,True
2023-06-30 00:00:00+01:00,17.67,18.11,17.43,18.1,15.63003559175142,150826.0,0.0,0.0,True
2023-07-03 00:00:00+01:00,17.900000000000002,18.36,17.88,18.330000000000002,15.8286488913586,791780.0,0.0,0.0,True
2023-07-04 00:00:00+01:00,18.400000000000002,18.522430419921875,18.12,18.42,15.906367643891324,287173.0,0.0,0.0,True
2023-07-05 00:00:00+01:00,18.56,18.580000000000002,18.255999755859374,18.36,15.85455479033048,160679.0,0.0,0.0,True
2023-07-06 00:00:00+01:00,18.5,18.54,17.240000000000002,17.51,15.120548337630435,281127.0,0.0,0.0,True
2023-07-07 00:00:00+01:00,17.51,17.51,16.69,17.1,14.766497532957805,290241.0,0.0,0.0,True
2023-07-10 00:00:00+01:00,17.240000000000002,17.77,16.87,16.95,14.636966982481328,339775.0,0.0,0.0,True
2023-07-11 00:00:00+01:00,17.5,17.5,16.12,16.14,13.93750137653809,371758.0,0.0,0.0,True
2023-07-12 00:00:00+01:00,16.15,17.14,16.12,16.88,14.576519181135554,494734.0,0.0,0.0,True
2023-07-13 00:00:00+01:00,17.0,17.330000000000002,16.85,16.89,14.585155184537573,155535.0,0.0,0.0,True
2023-07-14 00:00:00+01:00,16.8,17.55,16.62,17.12,14.783768484144755,208870.0,0.0,0.0,True
2023-07-17 00:00:00+01:00,17.0,17.17,16.740000000000002,16.9,14.593790132322503,155692.0,0.0,0.0,True
2023-07-18 00:00:00+01:00,17.72,17.72,16.64,16.68,14.403811780500247,132785.0,0.0,0.0,True
2023-07-19 00:00:00+01:00,17.1,17.62,16.87530029296875,17.62,15.215536985733017,396633.0,0.0,0.0,True
2023-07-20 00:00:00+01:00,17.82,17.97,17.59,17.63,15.224172989135036,372626.0,0.0,0.0,True
2023-07-21 00:00:00+01:00,17.86,18.063800048828124,17.6,17.88,15.44005723992917,257740.0,0.0,0.0,True
2023-07-24 00:00:00+01:00,17.6,18.041500244140625,17.48,17.71,15.29325573826574,360104.0,0.0,0.0,True
2023-07-25 00:00:00+01:00,17.740000000000002,18.22,17.57154052734375,17.86,15.422786288742218,209875.0,0.0,0.0,True
2023-07-26 00:00:00+01:00,17.77,18.13,17.71,17.78,15.353704595228603,282136.0,0.0,0.0,True
2023-07-27 00:00:00+01:00,17.78,18.19,17.7,18.06,15.595493689377525,198157.0,0.0,0.0,True
2023-07-28 00:00:00+01:00,18.25,18.25,17.900000000000002,18.0,15.543681891433767,134365.0,0.0,0.0,True
2023-07-31 00:00:00+01:00,17.990000000000002,18.0,17.448499755859377,17.62,15.215536985733017,266973.0,0.0,0.0,True
2023-08-01 00:00:00+01:00,17.44,17.44,14.77,15.8,13.643898373211236,1707985.0,0.0,0.0,True
2023-08-02 00:00:00+01:00,15.700000000000001,16.15,15.700000000000001,15.860000000000001,13.695711226772081,597276.0,0.0,0.0,True
2023-08-03 00:00:00+01:00,15.700000000000001,15.875,15.56,15.66,13.523003826136776,720097.0,0.0,0.0,True
2023-08-04 00:00:00+01:00,15.89,15.89,15.2875,15.450000000000001,13.341660422099453,130835.0,0.0,0.0,True
2023-08-07 00:00:00+01:00,15.23,15.73,14.88,14.98,12.935797819483069,133228.0,0.0,0.0,True
2023-08-08 00:00:00+01:00,14.8,15.18,14.65,14.93,12.892619913707154,187614.0,0.0,0.0,True
2023-08-09 00:00:00+01:00,15.72,15.9,14.955999755859375,15.06,13.004880568613773,384876.0,0.0,0.0,True
2023-08-10 00:00:00+01:00,15.06,15.11,14.450000000000001,14.5,12.521299213464665,509873.0,0.0,0.0,True
2023-08-11 00:00:00+01:00,15.0,15.07,14.6,14.75,12.737183464258797,498841.0,0.0,0.0,True
2023-08-14 00:00:00+01:00,14.75,15.32,14.75,15.11,13.0480574187726,202173.0,0.0,0.0,True
2023-08-15 00:00:00+01:00,15.120000000000001,15.18,14.68,14.84,12.81490221679152,167723.0,0.0,0.0,True
2023-08-16 00:00:00+01:00,14.89,15.08,14.51,14.790000000000001,12.771725366632696,172976.0,0.0,0.0,True
2023-08-17 00:00:00+01:00,14.790000000000001,15.32,14.47,14.950000000000001,12.909890864894102,145057.0,0.0,0.0,True
2023-08-18 00:00:00+01:00,14.4,14.96,14.4,14.85,12.823538220193539,246954.0,0.0,0.0,True
2023-08-21 00:00:00+01:00,15.16,15.16,14.73,14.85,12.823538220193539,208997.0,0.0,0.0,True
2023-08-22 00:00:00+01:00,14.82,15.17,14.75,14.85,12.823538220193539,89056.0,0.0,0.0,True
2023-08-23 00:00:00+01:00,14.56,15.05,14.56,14.71,12.702641561884901,494801.0,0.0,0.0,True
2023-08-24 00:00:00+01:00,14.98,14.993909912109375,14.71,14.71,12.702641561884901,102654.0,0.0,0.0,True
2023-08-25 00:00:00+01:00,15.44,15.44,14.700000000000001,14.77,12.754454415445746,136975.0,0.0,0.0,True
2023-08-29 00:00:00+01:00,14.96,15.52,14.85,15.49,13.376201268856262,146752.0,0.0,0.0,True
2023-08-30 00:00:00+01:00,15.49,15.624000244140625,15.18,15.38,13.28121262075368,259486.0,0.0,0.0,True
2023-08-31 00:00:00+01:00,15.35,15.51,15.18,15.25,13.168953021464148,312027.0,0.0,0.0,True
2023-09-01 00:00:00+01:00,15.38,15.41,14.950000000000001,14.99,12.944432767268001,122627.0,0.0,0.0,True
2023-09-04 00:00:00+01:00,14.99,15.1,14.83,14.83,12.80626726900659,138450.0,0.0,0.0,True
2023-09-05 00:00:00+01:00,14.8,14.83199951171875,14.42,14.66,12.659464711726075,173206.0,0.0,0.0,True
2023-09-06 00:00:00+01:00,15.0,15.040000000000001,14.44,14.81,12.788996317819642,194887.0,0.0,0.0,True
2023-09-07 00:00:00+01:00,14.83,15.6,14.46,15.530000000000001,13.410743171230159,243553.0,0.0,0.0,True
2023-09-08 00:00:00+01:00,15.0,15.89,15.0,15.89,13.721617125743958,339473.0,0.0,0.0,True
2023-09-11 00:00:00+01:00,16.22,16.32,14.68,14.73,12.719912513071849,274162.0,0.0,0.0,True
2023-09-12 00:00:00+01:00,14.4,14.55,12.620000000000001,14.05,12.13270756203523,695308.0,0.0,0.0,True
2023-09-13 00:00:00+01:00,14.09,15.47,13.790000000000001,15.44,13.333024418697434,359608.0,0.0,0.0,True
2023-09-14 00:00:00+01:00,15.5,16.126199951171877,15.5,16.07,13.877053575192315,818615.0,0.0,0.0,True
2023-09-15 00:00:00+01:00,16.31,16.32,15.57,15.63,13.497097927164898,470826.0,0.0,0.0,True
2023-09-18 00:00:00+01:00,15.44,15.85,15.169410400390625,15.22,13.143046066875181,388020.0,0.0,0.0,True
2023-09-19 00:00:00+01:00,15.11,15.58,14.9039599609375,15.32,13.229400822809922,244500.0,0.0,0.0,True
2023-09-20 00:00:00+01:00,15.44,16.02,15.44,15.88,13.712982177959029,260949.0,0.0,0.0,True
2023-09-21 00:00:00+01:00,15.610000000000001,15.83,15.0,15.19,13.117140167903305,380456.0,0.0,0.0,True
2023-09-22 00:00:00+01:00,15.1,15.48,15.1,15.35,13.255306721781801,144967.0,0.0,0.0,True
2023-09-25 00:00:00+01:00,15.35,15.6,14.960999755859376,15.19,13.117140167903305,326513.0,0.0,0.0,True
2023-09-26 00:00:00+01:00,15.58,15.58,14.58,14.63,12.633558812754195,139051.0,0.0,0.0,True
2023-09-27 00:00:00+01:00,14.58,15.34,14.48,15.13,13.065328369959548,140879.0,0.0,0.0,True
2023-09-28 00:00:00+01:00,15.120000000000001,15.19,14.83,15.0,12.953067715052928,345116.0,0.0,0.0,True
2023-09-29 00:00:00+01:00,15.0,15.610000000000001,15.0,15.47,13.358930317669312,256397.0,0.0,0.0,True
2023-10-02 00:00:00+01:00,15.46,15.67,14.870000000000001,15.040000000000001,12.987609617426825,291241.0,0.0,0.0,True
2023-10-03 00:00:00+01:00,14.71,14.89,14.0,14.05,12.13270756203523,179006.0,0.0,0.0,True
2023-10-04 00:00:00+01:00,13.83,14.290000000000001,13.77,13.81,11.925458259026028,237634.0,0.0,0.0,True
2023-10-05 00:00:00+01:00,13.92,14.17,13.85,13.85,11.9599997746206,180284.0,0.0,0.0,True
2023-10-06 00:00:00+01:00,14.450000000000001,14.450000000000001,13.55,13.99,12.080894818697017,116485.0,0.0,0.0,True
2023-10-09 00:00:00+01:00,13.52,14.030000000000001,13.41,13.620000000000001,11.761386337214,136545.0,0.0,0.0,True
2023-10-10 00:00:00+01:00,13.89,14.55,13.72,14.55,12.564476049970086,245926.0,0.0,0.0,True
2023-10-11 00:00:00+01:00,14.32,14.52,13.450000000000001,13.52,12.438399456418825,134243.0,0.85,0.0,True
2023-10-12 00:00:00+01:00,14.0,14.0,13.38,13.51,12.429199958107466,112363.0,0.0,0.0,True
2023-10-13 00:00:00+01:00,13.46,13.75,13.1,13.1,12.052000296313045,264982.0,0.0,0.0,True
2023-10-16 00:00:00+01:00,13.1,13.42699951171875,12.69,13.31,12.245199876365936,142869.0,0.0,0.0,True
2023-10-17 00:00:00+01:00,13.21,13.479949951171875,13.09300048828125,13.370000000000001,12.300400238072205,103846.0,0.0,0.0,True
2023-10-18 00:00:00+01:00,13.5,13.5,12.69,12.75,11.729999872278858,586500.0,0.0,0.0,True
2023-10-19 00:00:00+01:00,12.52,13.213499755859376,12.52,13.11,12.061199794624404,200672.0,0.0,0.0,True
2023-10-20 00:00:00+01:00,13.07,13.41,12.83,13.18,12.125599654642036,592696.0,0.0,0.0,True
2023-10-23 00:00:00+01:00,13.25,13.4,13.0,13.33,12.263599996934692,121413.0,0.0,0.0,True
2023-10-24 00:00:00+01:00,13.42,13.64,13.0,13.1,12.052000296313045,173527.0,0.0,0.0,True
2023-10-25 00:00:00+01:00,13.09,13.34,12.96,13.14,12.088799413504523,113657.0,0.0,0.0,True
2023-10-26 00:00:00+01:00,13.0,13.280000000000001,12.96,13.1,12.052000296313045,162088.0,0.0,0.0,True
2023-10-27 00:00:00+01:00,13.1,13.16,12.85,13.0,11.959999693469262,172121.0,0.0,0.0,True
2023-10-30 00:00:00+00:00,13.09,13.200000000000001,12.99,13.06,12.015200055175532,351486.0,0.0,0.0,True
2023-10-31 00:00:00+00:00,13.01,13.3,13.0,13.05,12.005999432918136,380834.0,0.0,0.0,True
2023-11-01 00:00:00+00:00,12.950000000000001,13.120000000000001,12.77843994140625,13.02,11.978399814038019,199402.0,0.0,0.0,True
2023-11-02 00:00:00+00:00,13.1,13.46,13.040000000000001,13.34,12.272799495246051,414055.0,0.0,0.0,True
2023-11-03 00:00:00+00:00,13.6,14.415000000000001,13.52384033203125,14.0,12.880000102176911,348357.0,0.0,0.0,True
2023-11-06 00:00:00+00:00,14.13,14.48,13.530000000000001,13.66,12.56720030040012,95127.0,0.0,0.0,True
2023-11-07 00:00:00+00:00,13.5,13.93,13.5,13.84,12.732800261572894,164937.0,0.0,0.0,True
2023-11-08 00:00:00+00:00,13.74,14.0456005859375,13.69,13.8,12.696000020435381,275526.0,0.0,0.0,True
2023-11-09 00:00:00+00:00,13.950000000000001,14.19,13.71550048828125,13.85,12.741999759884255,308199.0,0.0,0.0,True
2023-11-10 00:00:00+00:00,13.73,13.834399414062501,13.22,13.620000000000001,12.530400059262607,211940.0,0.0,0.0,True
2023-11-13 00:00:00+00:00,13.5,13.72,13.4,13.55,12.466000199244979,206951.0,0.0,0.0,True
2023-11-14 00:00:00+00:00,13.5,14.41,13.42,14.14,13.008799822212172,714971.0,0.0,0.0,True
2023-11-15 00:00:00+00:00,14.290000000000001,14.99,14.030000000000001,14.52,13.358399865126476,430958.0,0.0,0.0,True
2023-11-16 00:00:00+00:00,14.08,14.505,14.08,14.23,13.091599802798559,193252.0,0.0,0.0,True
2023-11-17 00:00:00+00:00,14.11,14.99,14.11,14.82,13.63439942576575,474070.0,0.0,0.0,True
2023-11-20 00:00:00+00:00,14.77,15.120000000000001,14.77,14.98,13.781600390315806,127160.0,0.0,0.0,True
2023-11-21 00:00:00+00:00,14.98,15.31,14.85,14.88,13.689599787472021,312023.0,0.0,0.0,True
2023-11-22 00:00:00+00:00,14.84,15.19,14.8,14.94,13.744800149178293,93813.0,0.0,0.0,True
2023-11-23 00:00:00+00:00,14.96,15.055,14.67,14.88,13.689599787472021,89248.0,0.0,0.0,True
2023-11-24 00:00:00+00:00,14.76,14.9,14.67,14.85,13.662000168591906,118893.0,0.0,0.0,True
2023-11-27 00:00:00+00:00,14.530000000000001,14.86,13.98,13.98,12.861599981608155,129900.0,0.0,0.0,True
2023-11-28 00:00:00+00:00,13.84,14.14,13.19,13.34,12.272799495246051,377366.0,0.0,0.0,True
2023-11-29 00:00:00+00:00,13.200000000000001,14.35,13.200000000000001,13.950000000000001,12.834000362728037,471577.0,0.0,0.0,True
2023-11-30 00:00:00+00:00,13.8,14.11800048828125,13.44,13.68,12.585600420968879,348127.0,0.0,0.0,True
2023-12-01 00:00:00+00:00,13.700000000000001,13.84,13.576400146484374,13.73,12.631600160417753,352771.0,0.0,0.0,True
2023-12-04 00:00:00+00:00,14.0,14.0,13.120000000000001,13.16,12.107199534073278,104065.0,0.0,0.0,True
2023-12-05 00:00:00+00:00,13.07,13.200000000000001,12.6,13.0,11.959999693469262,303748.0,0.0,0.0,True
2023-12-06 00:00:00+00:00,12.9,13.26,12.9,13.02,11.978399814038019,681974.0,0.0,0.0,True
2023-12-07 00:00:00+00:00,13.4,13.4,12.56,12.82,11.794399732296489,193151.0,0.0,0.0,True
2023-12-08 00:00:00+00:00,12.85,12.98,12.64,12.76,11.73919937059022,169002.0,0.0,0.0,True
2023-12-11 00:00:00+00:00,12.700000000000001,13.530000000000001,12.700000000000001,13.36,12.291199615814808,316496.0,0.0,0.0,True
2023-12-12 00:00:00+00:00,13.33,13.36,12.948399658203126,13.26,12.199200136917062,279752.0,0.0,0.0,True
2023-12-13 00:00:00+00:00,13.4,13.48,13.16,13.41,12.337199355263682,223452.0,0.0,0.0,True
2023-12-14 00:00:00+00:00,13.8,14.59,13.74,14.3,13.155999662816189,258358.0,0.0,0.0,True
2023-12-15 00:00:00+00:00,13.71,14.31,13.71,14.13,12.999600323900811,433550.0,0.0,0.0,True
2023-12-18 00:00:00+00:00,14.38,15.33740966796875,13.89,15.290000000000001,14.06679944926644,256957.0,0.0,0.0,True
2023-12-19 00:00:00+00:00,15.290000000000001,15.700000000000001,15.040000000000001,15.46,14.223199912127853,152997.0,0.0,0.0,True
2023-12-20 00:00:00+00:00,15.75,15.92,15.33,15.83,14.563599332784761,258981.0,0.0,0.0,True
2023-12-21 00:00:00+00:00,15.73,16.03,15.34,16.02,14.73839991621493,160788.0,0.0,0.0,True
2023-12-22 00:00:00+00:00,16.0,16.543089599609374,15.73,16.35,15.042000219680359,183509.0,0.0,0.0,True
2023-12-27 00:00:00+00:00,16.1,16.95,16.0,16.69,15.354800021457152,332319.0,0.0,0.0,True
2023-12-28 00:00:00+00:00,16.29,16.95,16.0,16.6,15.272000040870765,129658.0,0.0,0.0,True
2023-12-29 00:00:00+00:00,16.66,16.77678955078125,16.606290283203126,16.62,15.29040016143952,54474.0,0.0,0.0,True
2024-01-02 00:00:00+00:00,16.9,16.93,15.950000000000001,15.98,14.701599675077418,433331.0,0.0,0.0,True
2024-01-03 00:00:00+00:00,16.45,16.45,15.583499755859375,15.8,14.535999713904644,212305.0,0.0,0.0,True
2024-01-04 00:00:00+00:00,16.18,16.2,15.32,15.5,14.260000153265366,145849.0,0.0,0.0,True
2024-01-05 00:00:00+00:00,15.43,15.63,14.84,15.34,14.112800312661351,178331.0,0.0,0.0,True
2024-01-08 00:00:00+00:00,15.200000000000001,15.88,15.08,15.3,14.076000071523838,93619.0,0.0,0.0,True
2024-01-09 00:00:00+00:00,15.450000000000001,15.32,15.21,15.280000000000001,14.05759995095508,236053.0,0.0,0.0,True
2024-01-10 00:00:00+00:00,15.21,15.51,15.120000000000001,15.16,13.947200351488577,203338.0,0.0,0.0,True
2024-01-11 00:00:00+00:00,15.21,15.44,14.73,14.73,13.551599445179363,128350.0,0.0,0.0,True
2024-01-12 00:00:00+00:00,14.81,15.3,14.81,15.280000000000001,14.05759995095508,126422.0,0.0,0.0,True
2024-01-15 00:00:00+00:00,15.085,15.32,14.86,14.86,13.671199666903265,86831.0,0.0,0.0,True
2024-01-16 00:00:00+00:00,15.08,15.66,14.91,15.39,14.158800052110225,253055.0,0.0,0.0,True
2024-01-17 00:00:00+00:00,15.040000000000001,15.5,14.450000000000001,14.540000000000001,13.37679998569523,114336.0,0.0,0.0,True
2024-01-18 00:00:00+00:00,14.9,15.22,14.59,15.22,14.002399589248812,175262.0,0.0,0.0,True
2024-01-19 00:00:00+00:00,15.450000000000001,15.450000000000001,14.89,14.89,13.698800409729419,93241.0,0.0,0.0,True
2024-01-22 00:00:00+00:00,15.11,15.15,14.835,15.05,13.846000250333434,92117.0,0.0,0.0,True
2024-01-23 00:00:00+00:00,14.51,15.63,14.51,15.3,14.076000071523838,96389.0,0.0,0.0,True
2024-01-24 00:00:00+00:00,15.530000000000001,15.74,15.200000000000001,15.74,14.480799352198373,278489.0,0.0,0.0,True
2024-01-25 00:00:00+00:00,15.32,15.84550048828125,15.030000000000001,15.55,14.30599989271424,476735.0,0.0,0.0,True
2024-01-26 00:00:00+00:00,15.66,16.11,15.26,15.99,14.710800297334815,417225.0,0.0,0.0,True
2024-01-29 00:00:00+00:00,15.91,16.240000000000002,15.69,16.240000000000002,14.940800118525216,112434.0,0.0,0.0,True
2024-01-30 00:00:00+00:00,16.1,16.740000000000002,16.080000000000002,16.65,15.317999780319637,156730.0,0.0,0.0,True
2024-01-31 00:00:00+00:00,15.99,16.84,15.99,16.6,15.272000040870765,249055.0,0.0,0.0,True
2024-02-01 00:00:00+00:00,16.55,16.89,16.44,16.78,15.437600002043538,230759.0,0.0,0.0,True
2024-02-02 00:00:00+00:00,16.69,17.0,16.46,16.46,15.143200320835506,170565.0,0.0,0.0,True
2024-02-05 00:00:00+00:00,16.26,16.79,16.175,16.31,15.005199978542848,130266.0,0.0,0.0,True
2024-02-06 00:00:00+00:00,16.4,17.07,16.38,16.78,15.437600002043538,391036.0,0.0,0.0,True
2024-02-07 00:00:00+00:00,16.7,17.16,16.55,17.09,15.72280018494021,215847.0,0.0,0.0,True
2024-02-08 00:00:00+00:00,17.150000000000002,17.91,17.150000000000002,17.44,16.04479948502836,450151.0,0.0,0.0,True
2024-02-09 00:00:00+00:00,17.46,17.80198974609375,17.07,17.18,15.805600165526597,242803.0,0.0,0.0,True
2024-02-12 00:00:00+00:00,17.25,17.84,16.96,16.990000000000002,15.630799582096428,563881.0,0.0,0.0,True
2024-02-13 00:00:00+00:00,16.85,16.885140380859376,16.330000000000002,16.51,15.189200060284378,68119.0,0.0,0.0,True
2024-02-14 00:00:00+00:00,16.37,17.17,16.18530029296875,17.03,15.667599823233939,98220.0,0.0,0.0,True
2024-02-15 00:00:00+00:00,16.51,17.39,16.51,16.96,15.603199963216312,102797.0,0.0,0.0,True
2024-02-16 00:00:00+00:00,16.990000000000002,17.330000000000002,16.990000000000002,17.07,15.704400064371454,47249.0,0.0,0.0,True
2024-02-19 00:00:00+00:00,17.07,17.271500244140626,16.82,17.14,15.768799924389086,465791.0,0.0,0.0,True
2024-02-20 00:00:00+00:00,17.0,17.0,16.12,16.12,14.830399395112678,117840.0,0.0,0.0,True
2024-02-21 00:00:00+00:00,16.44,16.52,16.09,16.18,14.885599756818946,616655.0,0.0,0.0,True
2024-02-22 00:00:00+00:00,15.99,16.69,15.5,16.59,15.262799418613366,71029.0,0.0,0.0,True
2024-02-23 00:00:00+00:00,16.61,16.66,15.9,16.2,14.903999877387704,616927.0,0.0,0.0,True
2024-02-26 00:00:00+00:00,15.9,16.24449951171875,15.56,15.700000000000001,14.444000235006898,125089.0,0.0,0.0,True
2024-02-27 00:00:00+00:00,15.5,15.88,15.34,15.57,14.324400013282999,506414.0,0.0,0.0,True
2024-02-28 00:00:00+00:00,15.0,15.6,13.540000000000001,14.46,13.303199503420204,1617451.0,0.0,0.0,True
2024-02-29 00:00:00+00:00,14.700000000000001,14.99,14.27,14.34,13.192799903953702,131744.0,0.0,0.0,True
2024-03-01 00:00:00+00:00,14.52,14.83,14.0,14.68,13.505599705730491,710016.0,0.0,0.0,True
2024-03-04 00:00:00+00:00,14.3,14.790000000000001,14.3,14.450000000000001,13.294000005108844,128631.0,0.0,0.0,True
2024-03-05 00:00:00+00:00,14.43,14.5,14.13,14.3,13.155999662816189,226847.0,0.0,0.0,True
2024-03-06 00:00:00+00:00,14.35,14.6,14.13,14.13,12.999600323900811,245345.0,0.0,0.0,True
2024-03-07 00:00:00+00:00,14.36,14.36,13.55,13.55,12.466000199244979,169908.0,0.0,0.0,True
2024-03-08 00:00:00+00:00,13.55,13.84,13.26,13.3,12.236000378054575,591778.0,0.0,0.0,True
2024-03-11 00:00:00+00:00,13.450000000000001,13.6,13.15,13.25,12.189999514659664,537344.0,0.0,0.0,True
2024-03-12 00:00:00+00:00,13.0,13.74,13.0,13.700000000000001,12.603999417591599,652597.0,0.0,0.0,True
2024-03-13 00:00:00+00:00,14.5,15.65,13.521639404296875,13.72,12.622399538160355,1195682.0,0.0,0.0,True
2024-03-14 00:00:00+00:00,13.82,14.59,13.34,14.32,13.174399783384944,1126694.0,0.0,0.0,True
2024-03-15 00:00:00+00:00,14.3,14.56,14.02,14.26,13.119199421678676,1525658.0,0.0,0.0,True
2024-03-18 00:00:00+00:00,14.34,14.620000000000001,14.02,14.24,13.100800425055956,462513.0,0.0,0.0,True
2024-03-19 00:00:00+00:00,14.24,14.48,13.81,13.81,12.705199518746742,496898.0,0.0,0.0,True
2024-03-20 00:00:00+00:00,13.83,14.02,12.780000000000001,13.33,12.263599996934692,340715.0,0.0,0.0,True
2024-03-21 00:00:00+00:00,13.48,13.809000244140625,13.23,13.34,12.272799495246051,276189.0,0.0,0.0,True
2024-03-22 00:00:00+00:00,13.44,13.58,13.120000000000001,13.13,12.079599915193162,477630.0,0.0,0.0,True
2024-03-25 00:00:00+00:00,13.5,13.5,12.64,12.64,11.628799771123717,437124.0,0.0,0.0,True
2024-03-26 00:00:00+00:00,12.64,13.0,12.410699462890625,12.56,11.555200412794726,1102700.0,0.0,0.0,True
2024-03-27 00:00:00+00:00,12.5,12.77,12.38,12.58,11.573599409417445,1158042.0,0.0,0.0,True
2024-03-28 00:00:00+00:00,12.68,13.32,12.455,13.02,11.978399814038019,672275.0,0.0,0.0,True
2024-04-02 00:00:00+01:00,12.9,13.13,12.38,12.46,11.463199809950943,420287.0,0.0,0.0,True
2024-04-03 00:00:00+01:00,12.280000000000001,12.49,11.99,12.22,11.2423994870719,460217.0,0.0,0.0,True
2024-04-04 00:00:00+01:00,12.200000000000001,12.17,12.0,12.0,11.040000408707648,293870.0,0.0,0.0,True
2024-04-05 00:00:00+01:00,11.98,12.037879638671875,11.6,11.65,10.717999984673462,395059.0,0.0,0.0,True
2024-04-08 00:00:00+01:00,11.61,12.120000000000001,11.495000000000001,12.06,11.095199646467881,810772.0,0.0,0.0,True
2024-04-09 00:00:00+01:00,12.0,12.15,11.790000000000001,11.91,10.957200428121261,413918.0,0.0,0.0,True
2024-04-10 00:00:00+01:00,11.950000000000001,12.33,11.8725,12.01,11.049199907019009,680979.0,0.0,0.0,True
2024-04-11 00:00:00+01:00,12.08,12.31,11.868509521484375,11.94,10.984800047001379,280220.0,0.0,0.0,True
2024-04-12 00:00:00+01:00,12.06,12.290000000000001,11.4,11.450000000000001,10.533999902931932,359653.0,0.0,0.0,True
2024-04-15 00:00:00+01:00,11.41,11.57,11.01,11.4,10.488000163483058,489256.0,0.0,0.0,True
2024-04-16 00:00:00+01:00,11.200000000000001,11.78,11.07,11.51,10.589200264638203,294117.0,0.0,0.0,True
2024-04-17 00:00:00+01:00,11.5,11.81050048828125,11.4,11.620000000000001,10.690400365793346,446216.0,0.0,0.0,True
2024-04-18 00:00:00+01:00,11.43,11.83,11.43,11.71,10.773200346379733,280345.0,0.0,0.0,True
2024-04-19 00:00:00+01:00,11.8,11.8,11.56,11.68,10.745599603553579,187448.0,0.0,0.0,True
2024-04-22 00:00:00+01:00,11.5,12.06,11.5,11.72,10.782399844691094,233273.0,0.0,0.0,True
2024-04-23 00:00:00+01:00,11.870000000000001,11.89,11.72,11.72,10.782399844691094,164436.0,0.0,0.0,True
2024-04-24 00:00:00+01:00,12.08,12.08,11.370000000000001,11.51,10.589200264638203,185184.0,0.0,0.0,True
2024-04-25 00:00:00+01:00,11.700000000000001,11.700000000000001,11.1,11.36,10.451199922345545,295818.0,0.0,0.0,True
2024-04-26 00:00:00+01:00,11.31,11.64,11.230880126953124,11.39,10.478799541225662,144819.0,0.0,0.0,True
2024-04-29 00:00:00+01:00,11.15,11.82,11.15,11.82,10.874400447534875,119071.0,0.0,0.0,True
2024-04-30 00:00:00+01:00,11.98,11.99,11.42,11.5,10.579999642380805,199939.0,0.0,0.0,True
2024-05-01 00:00:00+01:00,12.01,12.01,11.32,11.59,10.662799622967192,165171.0,0.0,0.0,True
2024-05-02 00:00:00+01:00,11.57,11.66,11.3,11.66,10.727199482984823,305855.0,0.0,0.0,True
2024-05-03 00:00:00+01:00,11.85,11.96,11.6,11.75,10.80999946357121,158727.0,0.0,0.0,True
2024-05-07 00:00:00+01:00,12.13,12.19,11.57,11.790000000000001,10.846799704708722,116963.0,0.0,0.0,True
2024-05-08 00:00:00+01:00,12.15,12.804000244140624,11.99,12.67,11.656399390003832,362985.0,0.0,0.0,True
2024-05-09 00:00:00+01:00,12.65,12.71,12.18,12.66,11.647199891692471,261229.0,0.0,0.0,True
2024-05-10 00:00:00+01:00,12.47,12.97,12.47,12.89,11.858799592314119,187666.0,0.0,0.0,True
2024-05-13 00:00:00+01:00,12.8,13.120000000000001,12.58,12.8,11.775999611727732,164449.0,0.0,0.0,True
2024-05-14 00:00:00+01:00,12.6,13.237950439453126,12.6,13.08,12.033600175744288,166908.0,0.0,0.0,True
2024-05-15 00:00:00+01:00,13.36,13.48,13.030000000000001,13.450000000000001,12.373999596401195,178857.0,0.0,0.0,True
2024-05-16 00:00:00+01:00,13.450000000000001,14.0,13.450000000000001,14.0,12.880000102176911,314200.0,0.0,0.0,True
2024-05-17 00:00:00+01:00,14.13,14.8,13.780000000000001,14.700000000000001,13.523999826299248,558689.0,0.0,0.0,True
2024-05-20 00:00:00+01:00,24.5,24.98,22.82,22.82,20.994399323588837,8292215.0,0.0,0.0,True
2024-05-21 00:00:00+01:00,23.02,23.44,22.400000000000002,22.56,20.755198880141037,1407097.0,0.0,0.0,True
2024-05-22 00:00:00+01:00,22.46,22.64,22.0,22.0,20.24,723017.0,0.0,0.0,True
2024-05-23 00:00:00+01:00,21.98,22.47597900390625,21.62,22.3,22.3,1522184.0,1.76,0.0,False
2024-05-24 00:00:00+01:00,22.240000000000002,22.3,21.68,22.14,22.14,644971.0,0.0,0.0,False
2024-05-28 00:00:00+01:00,22.2,22.6,22.06,22.5,22.5,311246.0,0.0,0.0,False
2024-05-29 00:00:00+01:00,22.48,22.6010009765625,22.16,22.3,22.3,1482854.0,0.0,0.0,False
2024-05-30 00:00:00+01:00,22.5,22.62,22.3,22.32,22.32,138373.0,0.0,0.0,False
2024-05-31 00:00:00+01:00,22.0,22.48,22.0,22.34,22.34,695505.0,0.0,0.0,False
2024-06-03 00:00:00+01:00,22.2,22.48,22.1,22.36,22.36,148218.0,0.0,0.0,False
2024-06-04 00:00:00+01:00,22.36,22.36,21.75,22.0,22.0,1289764.0,0.0,0.0,False
2024-06-05 00:00:00+01:00,22.36,22.36,21.8,22.02,22.02,295325.0,0.0,0.0,False
2024-06-06 00:00:00+01:00,22.02,22.145700683593752,21.78,22.04,22.04,463598.0,0.0,0.0,False
2024-06-07 00:00:00+01:00,22.1,22.2,21.740000000000002,21.98,21.98,799873.0,0.0,0.0,False
2024-06-10 00:00:00+01:00,21.900000000000002,22.02,21.64,21.64,21.64,588812.0,0.0,0.0,False
2024-06-11 00:00:00+01:00,21.84,22.1,21.400000000000002,21.42,21.42,323278.0,0.0,0.0,False
2024-06-12 00:00:00+01:00,21.72,21.72,21.2,21.5,21.5,961776.0,0.0,0.0,False
2024-06-13 00:00:00+01:00,21.7,21.7,21.0,21.36,21.36,731949.0,0.0,0.0,False
2024-06-14 00:00:00+01:00,21.72,22.62,21.435,22.62,22.62,1564845.0,0.0,0.0,False
2024-06-17 00:00:00+01:00,22.42,22.60555908203125,22.05300048828125,22.3,22.3,543001.0,0.0,0.0,False
2024-06-18 00:00:00+01:00,22.5,22.5,22.011999511718752,22.28,22.28,302283.0,0.0,0.0,False
2024-06-19 00:00:00+01:00,22.0,22.36,21.94,22.0,22.0,261639.0,0.0,0.0,False
2024-06-20 00:00:00+01:00,22.5,22.5,21.900000000000002,22.400000000000002,22.400000000000002,298140.0,0.0,0.0,False
2024-06-21 00:00:00+01:00,22.5,22.900000000000002,22.22,22.38,22.38,374718.0,0.0,0.0,False
2024-06-24 00:00:00+01:00,22.400000000000002,22.62,22.2,22.38,22.38,182607.0,0.0,0.0,False
2024-06-25 00:00:00+01:00,22.3,22.32,21.32049072265625,21.92,21.92,1156786.0,0.0,0.0,False
2024-06-26 00:00:00+01:00,22.0,22.0,21.44,21.740000000000002,21.740000000000002,1321707.0,0.0,0.0,False
2024-06-27 00:00:00+01:00,21.86,21.92,21.6,21.78,21.78,1192605.0,0.0,0.0,False
2024-06-28 00:00:00+01:00,23.1,23.21093994140625,22.88800048828125,23.12,23.12,5166863.0,0.0,0.0,False
2024-07-01 00:00:00+01:00,23.26,23.26,23.06,23.080000000000002,23.080000000000002,904708.0,0.0,0.0,False
2024-07-02 00:00:00+01:00,23.080000000000002,23.240000000000002,23.06,23.18,23.18,800296.0,0.0,0.0,False
2024-07-03 00:00:00+01:00,23.84,23.900000000000002,23.78333984375,23.900000000000002,23.900000000000002,8961383.0,0.0,0.0,False
2024-07-04 00:00:00+01:00,23.92,23.94,23.83340087890625,23.86,23.86,1175939.0,0.0,0.0,False
2024-07-05 00:00:00+01:00,23.900000000000002,23.96,23.86,23.88,23.88,969052.0,0.0,0.0,False
2024-07-08 00:00:00+01:00,23.88,24.060000000000002,23.88,23.88,23.88,420214.0,0.0,0.0,False
2024-07-09 00:00:00+01:00,23.92,23.96,23.86,23.900000000000002,23.900000000000002,1264139.0,0.0,0.0,False
2024-07-10 00:00:00+01:00,23.88,23.94,23.88,23.900000000000002,23.900000000000002,371085.0,0.0,0.0,False
2024-07-11 00:00:00+01:00,23.84,23.92,23.82,23.82,23.82,458586.0,0.0,0.0,False
2024-07-12 00:00:00+01:00,23.82,23.88,23.82,23.88,23.88,681277.0,0.0,0.0,False
2024-07-15 00:00:00+01:00,23.84,23.88,23.84,23.86,23.86,739304.0,0.0,0.0,False
2024-07-16 00:00:00+01:00,23.88,23.883859863281252,23.84,23.86,23.86,1130090.0,0.0,0.0,False
2024-07-17 00:00:00+01:00,23.88,23.88,23.86,23.86,23.86,755831.0,0.0,0.0,False
2024-07-18 00:00:00+01:00,23.88,23.900000000000002,23.86,23.900000000000002,23.900000000000002,960170.0,0.0,0.0,False
2024-07-19 00:00:00+01:00,23.900000000000002,23.94,23.86,23.94,23.94,195271.0,0.0,0.0,False
2024-07-22 00:00:00+01:00,23.88,23.92,23.8,23.84,23.84,3036352.0,0.0,0.0,False
2024-07-23 00:00:00+01:00,23.82,23.86,23.8,23.82,23.82,1083480.0,0.0,0.0,False
2024-07-24 00:00:00+01:00,23.84,23.88,23.8,23.8,23.8,1445489.0,0.0,0.0,False
2024-07-25 00:00:00+01:00,23.84,23.900000000000002,23.8,23.8,23.8,582850.0,0.0,0.0,False
2024-07-26 00:00:00+01:00,23.96,23.96,23.8,23.8,23.8,675264.0,0.0,0.0,False
2024-07-29 00:00:00+01:00,23.84,23.88,23.5783203125,23.84,23.84,1403210.0,0.0,0.0,False
2024-07-30 00:00:00+01:00,23.84,23.88,23.82,23.84,23.84,1286201.0,0.0,0.0,False
2024-07-31 00:00:00+01:00,23.86,23.88,23.82,23.88,23.88,308556.0,0.0,0.0,False
2024-08-01 00:00:00+01:00,23.900000000000002,23.900000000000002,23.84,23.84,23.84,139383.0,0.0,0.0,False
2024-08-02 00:00:00+01:00,24.2,24.2,23.84,23.84,23.84,402227.0,0.0,0.0,False
2024-08-05 00:00:00+01:00,23.84,23.88,23.8,23.88,23.88,2543161.0,0.0,0.0,False
2024-08-06 00:00:00+01:00,23.900000000000002,24.060000000000002,23.82,23.88,23.88,805371.0,0.0,0.0,False
2024-08-07 00:00:00+01:00,23.900000000000002,23.92,23.84,23.86,23.86,1753790.0,0.0,0.0,False
2024-08-08 00:00:00+01:00,23.86,23.92,23.86,23.88,23.88,191998.0,0.0,0.0,False
2024-08-09 00:00:00+01:00,23.900000000000002,23.98,23.86,23.98,23.98,289215.0,0.0,0.0,False
2024-08-12 00:00:00+01:00,23.96,24.0,23.92,24.0,24.0,513766.0,0.0,0.0,False
2024-08-13 00:00:00+01:00,24.0,24.04,23.94,24.04,24.04,185320.0,0.0,0.0,False
2024-08-14 00:00:00+01:00,24.0,24.3,23.96,24.3,24.3,300442.0,0.0,0.0,False
2024-08-15 00:00:00+01:00,24.1,24.12,24.0,24.02,24.02,222740.0,0.0,0.0,False
2024-08-16 00:00:00+01:00,24.1,24.1,23.98,23.98,23.98,255770.0,0.0,0.0,False
2024-08-19 00:00:00+01:00,24.080000000000002,24.080000000000002,23.96,24.0,24.0,229725.0,0.0,0.0,False
2024-08-20 00:00:00+01:00,24.0,24.04,23.98,24.0,24.0,261084.0,0.0,0.0,False
2024-08-21 00:00:00+01:00,24.080000000000002,24.080000000000002,23.98,24.060000000000002,24.060000000000002,1086506.0,0.0,0.0,False
2024-08-22 00:00:00+01:00,24.080000000000002,24.080000000000002,24.02,24.060000000000002,24.060000000000002,163317.0,0.0,0.0,False
2024-08-23 00:00:00+01:00,24.080000000000002,24.080000000000002,24.0,24.080000000000002,24.080000000000002,202364.0,0.0,0.0,False
2024-08-27 00:00:00+01:00,24.060000000000002,24.18,24.02,24.060000000000002,24.060000000000002,245203.0,0.0,0.0,False
2024-08-28 00:00:00+01:00,24.02,24.12,24.02,24.04,24.04,349423.0,0.0,0.0,False
2024-08-29 00:00:00+01:00,24.04,24.12,24.04,24.060000000000002,24.060000000000002,187436.0,0.0,0.0,False
2024-08-30 00:00:00+01:00,24.16,24.3,24.02,24.26,24.26,1493472.0,0.0,0.0,False
2024-09-02 00:00:00+01:00,24.240000000000002,24.28,24.22,24.240000000000002,24.240000000000002,397048.0,0.0,0.0,False
2024-09-03 00:00:00+01:00,24.240000000000002,24.28,24.22,24.22,24.22,526456.0,0.0,0.0,False
2024-09-04 00:00:00+01:00,24.240000000000002,24.33919921875,24.22,24.240000000000002,24.240000000000002,830622.0,0.0,0.0,False
2024-09-05 00:00:00+01:00,24.26,24.28,24.240000000000002,24.240000000000002,24.240000000000002,2561655.0,0.0,0.0,False
2024-09-06 00:00:00+01:00,24.240000000000002,24.3,24.240000000000002,24.240000000000002,24.240000000000002,2621382.0,0.0,0.0,False
2024-09-09 00:00:00+01:00,24.240000000000002,24.333601074218752,24.240000000000002,24.26,24.26,946993.0,0.0,0.0,False
2024-09-10 00:00:00+01:00,24.28,24.38,24.240000000000002,24.28,24.28,1955248.0,0.0,0.0,False
2024-09-11 00:00:00+01:00,24.28,24.3,24.255720214843752,24.26,24.26,3357431.0,0.0,0.0,False
2024-09-12 00:00:00+01:00,24.28,24.32,24.26,24.3,24.3,1396090.0,0.0,0.0,False
2024-09-13 00:00:00+01:00,24.26,24.3,24.26,24.26,24.26,539753.0,0.0,0.0,False
2024-09-16 00:00:00+01:00,24.28,24.3,24.26,24.28,24.28,3548116.0,0.0,0.0,False
2024-09-17 00:00:00+01:00,24.3,24.3143994140625,24.28,24.28,24.28,6116775.0,0.0,0.0,False
2024-09-18 00:00:00+01:00,24.28,24.3,24.26,24.28,24.28,1315109.0,0.0,0.0,False
2024-09-19 00:00:00+01:00,24.28,24.307199707031252,24.28,24.28,24.28,3447049.0,0.0,0.0,False
2024-09-20 00:00:00+01:00,24.28,24.301000976562502,24.28,24.3,24.3,949712.0,0.0,0.0,False
2024-09-23 00:00:00+01:00,24.3,24.34,24.28,24.28,24.28,1165867.0,0.0,0.0,False
2024-09-24 00:00:00+01:00,24.3,24.34,24.29,24.3,24.3,417334.0,0.0,0.0,False
2024-09-25 00:00:00+01:00,24.32,24.356000976562502,24.28,24.32,24.32,1311755.0,0.0,0.0,False
2024-09-26 00:00:00+01:00,24.3,24.36,24.3,24.32,24.32,2165924.0,0.0,0.0,False
2024-09-27 00:00:00+01:00,24.34,24.385,24.32,24.34,24.34,191057.0,0.0,0.0,False
2024-09-30 00:00:00+01:00,24.36,24.36,24.3,24.36,24.36,418219.0,0.0,0.0,False
2024-10-01 00:00:00+01:00,24.36,24.38,24.34,24.34,24.34,834978.0,0.0,0.0,False
2024-10-02 00:00:00+01:00,24.34,24.38,24.34,24.36,24.36,321113.0,0.0,0.0,False
2024-10-03 00:00:00+01:00,24.36,24.400000000000002,24.36,24.36,24.36,119311.0,0.0,0.0,False
2024-10-04 00:00:00+01:00,24.400000000000002,24.400000000000002,24.355380859375,24.38,24.38,408506.0,0.0,0.0,False
2024-10-07 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.400000000000002,24.400000000000002,934866.0,0.0,0.0,False
2024-10-08 00:00:00+01:00,24.38,24.400000000000002,24.36,24.38,24.38,351909.0,0.0,0.0,False
2024-10-09 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.36,24.36,373356.0,0.0,0.0,False
2024-10-10 00:00:00+01:00,24.36,24.400000000000002,24.36,24.38,24.38,566301.0,0.0,0.0,False
2024-10-11 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.38,24.38,88197.0,0.0,0.0,False
2024-10-14 00:00:00+01:00,24.42,24.42,24.36,24.36,24.36,2859472.0,0.0,0.0,False
2024-10-15 00:00:00+01:00,24.38,24.42,24.38,24.400000000000002,24.400000000000002,1387949.0,0.0,0.0,False
2024-10-16 00:00:00+01:00,24.42,24.42,24.38,24.38,24.38,518018.0,0.0,0.0,False
2024-10-17 00:00:00+01:00,24.42,24.42,24.378291015625,24.38,24.38,1199504.0,0.0,0.0,False
2024-10-18 00:00:00+01:00,24.400000000000002,24.52,24.38,24.400000000000002,24.400000000000002,612904.0,0.0,0.0,False
2024-10-21 00:00:00+01:00,24.42,24.46,24.42,24.44,24.44,937999.0,0.0,0.0,False
2024-10-22 00:00:00+01:00,24.46,24.48,24.44,24.46,24.46,9890907.0,0.0,0.0,False
2024-10-23 00:00:00+01:00,24.46,24.46,24.46,24.46,24.46,0.0,0.0,0.0,False
2024-10-24 00:00:00+01:00,,,,,,,0.0,0.0,False
2024-10-25 00:00:00+01:00,,,,,,,0.0,0.0,False
2024-10-28 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-10-29 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-10-30 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-10-31 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-01 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-04 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-05 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-06 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-07 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-08 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-11 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-12 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-13 00:00:00+00:00,,,,,,,0.0,0.0,False
2024-11-14 00:00:00+00:00,,,,,,,0.0,0.0,False
1 Datetime Open High Low Close Adj Close Volume Dividends Stock Splits Repaired?
2 2022-01-04 00:00:00+00:00 29.46 29.98 28.52 28.66 20.53276113953462 169521.0 0.0 0.0 True
3 2022-01-05 00:00:00+00:00 30.0 30.0 28.46 28.900000000000002 20.70470257643437 128698.0 0.0 0.0 True
4 2022-01-06 00:00:00+00:00 28.2 28.560000000000002 27.5 27.82 19.930963478279654 374659.0 0.0 0.0 True
5 2022-01-07 00:00:00+00:00 28.3 28.3 27.400000000000002 27.46 19.67305220029865 80410.0 0.0 0.0 True
6 2022-01-10 00:00:00+00:00 28.16 28.240000000000002 26.2 26.580000000000002 19.042597925349927 135881.0 0.0 0.0 True
7 2022-01-11 00:00:00+00:00 25.92 27.060000000000002 25.92 26.72 19.142895195909453 71414.0 0.0 0.0 True
8 2022-01-12 00:00:00+00:00 26.72 26.96 26.060000000000002 26.8 19.200210178034187 68611.0 0.0 0.0 True
9 2022-01-13 00:00:00+00:00 26.72 27.3239990234375 26.6 27.2 19.486779824446177 155917.0 0.0 0.0 True
10 2022-01-14 00:00:00+00:00 27.52 27.52 26.36 26.560000000000002 19.028270495871666 66402.0 0.0 0.0 True
11 2022-01-17 00:00:00+00:00 27.02 27.22 26.28 27.22 19.50111251813613 60092.0 0.0 0.0 True
12 2022-01-18 00:00:00+00:00 27.66 27.66 26.0 26.86 19.243195975943426 128385.0 0.0 0.0 True
13 2022-01-19 00:00:00+00:00 27.0 27.46 26.7 27.2 19.486779824446177 75141.0 0.0 0.0 True
14 2022-01-20 00:00:00+00:00 26.900000000000002 27.7 26.81172119140625 27.54 19.730365427686156 99304.0 0.0 0.0 True
15 2022-01-21 00:00:00+00:00 27.26 27.88 26.214208984375002 26.38 18.89931310214393 123570.0 0.0 0.0 True
16 2022-01-24 00:00:00+00:00 26.14 26.261599121093752 24.72 24.88 17.824671663887276 148794.0 0.0 0.0 True
17 2022-01-25 00:00:00+00:00 24.92 25.2 24.580000000000002 24.580000000000002 17.609746183815513 94318.0 0.0 0.0 True
18 2022-01-26 00:00:00+00:00 25.52 25.52 24.400000000000002 24.66 17.667057656465794 265198.0 0.0 0.0 True
19 2022-01-27 00:00:00+00:00 24.66 25.12669921875 24.400000000000002 24.82 17.78168762071526 248811.0 0.0 0.0 True
20 2022-01-28 00:00:00+00:00 24.7 24.88 24.1 24.32 17.4234773174375 146209.0 0.0 0.0 True
21 2022-01-31 00:00:00+00:00 25.3 25.46 24.3 25.2 18.05392983764899 495745.0 0.0 0.0 True
22 2022-02-01 00:00:00+00:00 25.580000000000002 26.78 25.580000000000002 26.7 19.128567766431193 426366.0 0.0 0.0 True
23 2022-02-02 00:00:00+00:00 25.5 27.28 25.5 26.38 18.89931310214393 134118.0 0.0 0.0 True
24 2022-02-03 00:00:00+00:00 26.28 26.3639990234375 24.82 24.88 17.824671663887276 168782.0 0.0 0.0 True
25 2022-02-04 00:00:00+00:00 24.6 25.14 24.400000000000002 24.76 17.738701822806014 110543.0 0.0 0.0 True
26 2022-02-07 00:00:00+00:00 25.04 25.04 24.54 24.54 17.581089570121758 163853.0 0.0 0.0 True
27 2022-02-08 00:00:00+00:00 24.64 24.64 23.8 24.12 17.280188984757043 146007.0 0.0 0.0 True
28 2022-02-09 00:00:00+00:00 24.5 24.98 24.3 24.7 17.695716024896768 130747.0 0.0 0.0 True
29 2022-02-10 00:00:00+00:00 24.52 24.7 24.080000000000002 24.46 17.523774587997018 113862.0 0.0 0.0 True
30 2022-02-11 00:00:00+00:00 24.5 24.72 24.1 24.42 17.49511797430327 87108.0 0.0 0.0 True
31 2022-02-14 00:00:00+00:00 24.42 24.42 23.34 23.98 17.179889959460297 79188.0 0.0 0.0 True
32 2022-02-15 00:00:00+00:00 23.86 24.560000000000002 23.54 24.22 17.35183139636004 175846.0 0.0 0.0 True
33 2022-02-16 00:00:00+00:00 24.580000000000002 24.580000000000002 23.76 23.98 17.179889959460297 62392.0 0.0 0.0 True
34 2022-02-17 00:00:00+00:00 24.78 24.78 23.86 23.86 17.09392011837903 111791.0 0.0 0.0 True
35 2022-02-18 00:00:00+00:00 23.84 23.94760009765625 23.36 23.48 16.821676146708075 61467.0 0.0 0.0 True
36 2022-02-21 00:00:00+00:00 23.46 23.64919921875 22.82 23.080000000000002 16.53510474555885 71820.0 0.0 0.0 True
37 2022-02-22 00:00:00+00:00 24.18 24.18 22.54 23.38 16.75003373510507 75721.0 0.0 0.0 True
38 2022-02-23 00:00:00+00:00 23.78 24.04 23.02 23.02 16.492122457124065 122317.0 0.0 0.0 True
39 2022-02-24 00:00:00+00:00 23.3 23.3 21.96 22.52 16.133908644371843 241118.0 0.0 0.0 True
40 2022-02-25 00:00:00+00:00 23.0 23.56 22.66 23.32 16.70704969193306 147148.0 0.0 0.0 True
41 2022-02-28 00:00:00+00:00 22.36 24.14 22.36 24.14 17.29451641423531 226698.0 0.0 0.0 True
42 2022-03-01 00:00:00+00:00 24.080000000000002 24.22 23.5 23.5 16.836007085660796 218356.0 0.0 0.0 True
43 2022-03-02 00:00:00+00:00 23.7 23.900000000000002 23.26 23.62 16.921978681479285 87219.0 0.0 0.0 True
44 2022-03-03 00:00:00+00:00 23.26 23.8 22.14 22.14 15.861666427438118 137377.0 0.0 0.0 True
45 2022-03-04 00:00:00+00:00 22.3 22.92 20.740000000000002 20.740000000000002 14.858670910258917 173972.0 0.0 0.0 True
46 2022-03-07 00:00:00+00:00 20.740000000000002 21.14 19.5 20.3 14.54344201804733 282380.0 0.0 0.0 True
47 2022-03-08 00:00:00+00:00 20.3 20.82 19.52 19.52 13.984631032070219 268763.0 0.0 0.0 True
48 2022-03-09 00:00:00+00:00 20.0 21.02 19.73 21.02 15.059270715589653 624876.0 0.0 0.0 True
49 2022-03-10 00:00:00+00:00 21.22 21.22 20.38 20.44 14.643742798081307 266261.0 0.0 0.0 True
50 2022-03-11 00:00:00+00:00 20.66 21.52 20.46 20.900000000000002 14.97329911977116 139879.0 0.0 0.0 True
51 2022-03-14 00:00:00+00:00 21.5 21.88 21.1 21.580000000000002 15.460468571513879 87051.0 0.0 0.0 True
52 2022-03-15 00:00:00+00:00 20.72 21.48 20.72 20.96 15.016284917680403 86783.0 0.0 0.0 True
53 2022-03-16 00:00:00+00:00 21.580000000000002 22.72 21.36 22.48 16.10525378541532 118783.0 0.0 0.0 True
54 2022-03-17 00:00:00+00:00 21.68 22.7 21.68 22.46 16.090922846462604 86717.0 0.0 0.0 True
55 2022-03-18 00:00:00+00:00 21.76 23.32 21.76 23.18 16.60675066663631 147084.0 0.0 0.0 True
56 2022-03-21 00:00:00+00:00 23.400000000000002 23.400000000000002 22.26 22.62 16.205551055974844 290436.0 0.0 0.0 True
57 2022-03-22 00:00:00+00:00 23.22 23.22 21.94 22.0 15.761365647404139 89172.0 0.0 0.0 True
58 2022-03-23 00:00:00+00:00 21.68 22.7 21.68 22.56 16.162565258065598 83842.0 0.0 0.0 True
59 2022-03-24 00:00:00+00:00 21.42 22.64 21.400000000000002 22.400000000000002 16.047938803290588 121267.0 0.0 0.0 True
60 2022-03-25 00:00:00+00:00 22.5 23.1 21.92 22.66 16.234207669668603 192618.0 0.0 0.0 True
61 2022-03-28 00:00:00+01:00 22.14 23.32 22.14 22.86 16.37749424761182 109333.0 0.0 0.0 True
62 2022-03-29 00:00:00+01:00 23.02 23.511201171875 22.8360009765625 23.38 16.75003373510507 85895.0 0.0 0.0 True
63 2022-03-30 00:00:00+01:00 23.82 25.740000000000002 23.82 25.740000000000002 18.440800264094957 571137.0 0.0 0.0 True
64 2022-03-31 00:00:00+01:00 25.68 26.2 25.0 26.2 18.77035219894174 458165.0 0.0 0.0 True
65 2022-04-01 00:00:00+01:00 26.32 26.34 25.580000000000002 25.580000000000002 18.32617029984549 206616.0 0.0 0.0 True
66 2022-04-04 00:00:00+01:00 26.400000000000002 26.400000000000002 25.2 25.92 18.569757657822695 150039.0 0.0 0.0 True
67 2022-04-05 00:00:00+01:00 25.94 26.92 25.900000000000002 26.46 18.956626329531442 2241719.0 0.0 0.0 True
68 2022-04-06 00:00:00+01:00 26.62 26.98 26.32 26.52 18.99961212744068 178598.0 0.0 0.0 True
69 2022-04-07 00:00:00+01:00 26.86 27.62 26.44 27.18 19.472452394967913 191304.0 0.0 0.0 True
70 2022-04-08 00:00:00+01:00 27.52 27.72489990234375 26.52 26.62 19.071256293780912 131026.0 0.0 0.0 True
71 2022-04-11 00:00:00+01:00 26.560000000000002 26.692480468750002 25.88 26.0 18.6270708852102 106445.0 0.0 0.0 True
72 2022-04-12 00:00:00+01:00 26.0 26.580000000000002 26.0 26.28 18.827668935803704 134222.0 0.0 0.0 True
73 2022-04-13 00:00:00+01:00 26.62 26.62 25.92 26.3 18.8419981200192 151567.0 0.0 0.0 True
74 2022-04-14 00:00:00+01:00 26.240000000000002 26.52 25.79534912109375 26.0 18.6270708852102 203268.0 0.0 0.0 True
75 2022-04-19 00:00:00+01:00 25.8 26.060000000000002 24.96 25.54 18.29751368615174 202763.0 0.0 0.0 True
76 2022-04-20 00:00:00+01:00 25.740000000000002 25.740000000000002 25.12 25.12 17.996616610261484 133972.0 0.0 0.0 True
77 2022-04-21 00:00:00+01:00 25.22 25.62 25.1 25.2 18.05392983764899 134423.0 0.0 0.0 True
78 2022-04-22 00:00:00+01:00 24.62 25.38 24.62 25.02 17.924972443921252 148749.0 0.0 0.0 True
79 2022-04-25 00:00:00+01:00 24.38 24.86 24.18 24.400000000000002 17.480788790087782 283575.0 0.0 0.0 True
80 2022-04-26 00:00:00+01:00 24.3 24.82 24.22 24.3 17.409144623747547 271554.0 0.0 0.0 True
81 2022-04-27 00:00:00+01:00 24.0 24.94 23.2 23.46 16.807348717229807 147954.0 0.0 0.0 True
82 2022-04-28 00:00:00+01:00 23.48 23.90139892578125 23.42 23.76 17.022275952038804 98816.0 0.0 0.0 True
83 2022-04-29 00:00:00+01:00 23.22 24.16 23.2 24.04 17.222875757369536 139578.0 0.0 0.0 True
84 2022-05-03 00:00:00+01:00 23.6 24.3 23.18 23.48 16.821676146708075 181511.0 0.0 0.0 True
85 2022-05-04 00:00:00+01:00 23.16 23.26 22.24698974609375 22.44 16.07659541698434 199215.0 0.0 0.0 True
86 2022-05-05 00:00:00+01:00 23.52 23.52 22.18 22.26 15.947638023256607 468283.0 0.0 0.0 True
87 2022-05-06 00:00:00+01:00 21.900000000000002 22.06 21.5 22.0 15.761365647404139 119246.0 0.0 0.0 True
88 2022-05-09 00:00:00+01:00 21.88 21.89320068359375 20.8 21.14 15.145240556670908 216918.0 0.0 0.0 True
89 2022-05-10 00:00:00+01:00 21.3 22.02 21.14 21.52 15.417482773604641 175912.0 0.0 0.0 True
90 2022-05-11 00:00:00+01:00 22.080000000000002 22.6 21.48 21.92 15.704052420016632 161619.0 0.0 0.0 True
91 2022-05-12 00:00:00+01:00 21.54 22.0 21.0 21.96 15.732709033710387 162789.0 0.0 0.0 True
92 2022-05-13 00:00:00+01:00 22.0 22.580000000000002 21.88 22.400000000000002 16.047938803290588 136027.0 0.0 0.0 True
93 2022-05-16 00:00:00+01:00 22.28 22.32 21.66 21.88 15.675395806322873 169593.0 0.0 0.0 True
94 2022-05-17 00:00:00+01:00 21.94 22.1 21.580000000000002 21.8 15.6180843336726 230442.0 0.0 0.0 True
95 2022-05-18 00:00:00+01:00 22.76 22.76 21.34 21.36 15.302854564092398 218130.0 0.0 0.0 True
96 2022-05-19 00:00:00+01:00 21.56 21.900000000000002 20.82 21.82 15.63241176315086 161985.0 0.0 0.0 True
97 2022-05-20 00:00:00+01:00 21.88 22.5 21.7 21.76 15.589424210504394 108143.0 0.0 0.0 True
98 2022-05-23 00:00:00+01:00 21.7 22.26 21.68 21.84 15.646737437891897 114671.0 0.0 0.0 True
99 2022-05-24 00:00:00+01:00 22.0 22.0 21.22 21.34 15.288527134614132 80311.0 0.0 0.0 True
100 2022-05-25 00:00:00+01:00 21.44 22.240000000000002 21.3510009765625 21.94 15.718381604232118 108379.0 0.0 0.0 True
101 2022-05-26 00:00:00+01:00 22.240000000000002 22.240000000000002 21.66 22.080000000000002 15.818681213374894 54302.0 0.0 0.0 True
102 2022-05-27 00:00:00+01:00 22.14 22.68 22.04 22.5 16.119582880836756 84161.0 0.0 0.0 True
103 2022-05-30 00:00:00+01:00 22.8 23.1 22.5 22.68 16.248539235253762 92952.0 0.0 0.0 True
104 2022-05-31 00:00:00+01:00 22.0 23.56 22.0 23.42 16.778693136745915 260541.0 0.0 0.0 True
105 2022-06-01 00:00:00+01:00 23.52 23.76 22.96 23.48 16.82167858821825 169299.0 0.0 0.0 True
106 2022-06-06 00:00:00+01:00 23.52 23.76 23.080000000000002 23.56 16.878994277092456 62642.0 0.0 0.0 True
107 2022-06-07 00:00:00+01:00 22.62 23.92 22.62 23.8 17.050936082981796 131089.0 0.0 0.0 True
108 2022-06-08 00:00:00+01:00 23.88 24.22 23.88 24.060000000000002 17.237204619117506 144324.0 0.0 0.0 True
109 2022-06-09 00:00:00+01:00 23.72 24.740000000000002 23.48300048828125 24.32 17.423476662408714 197024.0 0.0 0.0 True
110 2022-06-10 00:00:00+01:00 24.18 24.5 23.68 23.900000000000002 17.122578502102364 391211.0 0.0 0.0 True
111 2022-06-13 00:00:00+01:00 23.78 24.0 22.88 23.2 17.789308885513787 389306.0 1.45 0.0 True
112 2022-06-14 00:00:00+01:00 23.18 23.34 22.92 23.04 17.66662428140854 168973.0 0.0 0.0 True
113 2022-06-15 00:00:00+01:00 22.6 23.18 21.580000000000002 22.26 17.068536836395484 159033.0 0.0 0.0 True
114 2022-06-16 00:00:00+01:00 22.54 22.54 21.82 21.92 16.80783017584214 154582.0 0.0 0.0 True
115 2022-06-17 00:00:00+01:00 22.02 22.62 22.0 22.56 17.29857046909282 162701.0 0.0 0.0 True
116 2022-06-20 00:00:00+01:00 22.54 22.7643994140625 22.3 22.46 17.221890714697334 48492.0 0.0 0.0 True
117 2022-06-21 00:00:00+01:00 22.52 23.1 22.34 22.740000000000002 17.436590648711217 131960.0 0.0 0.0 True
118 2022-06-22 00:00:00+01:00 22.94 23.12 22.03 22.96 17.60528197935593 67403.0 0.0 0.0 True
119 2022-06-23 00:00:00+01:00 23.5 23.5 21.88 22.240000000000002 17.053197507222922 191595.0 0.0 0.0 True
120 2022-06-24 00:00:00+01:00 22.8 23.34 22.580000000000002 23.1 17.712632884777715 186503.0 0.0 0.0 True
121 2022-06-27 00:00:00+01:00 23.080000000000002 23.34 22.78 22.900000000000002 17.559273375986756 75108.0 0.0 0.0 True
122 2022-06-28 00:00:00+01:00 22.84 23.14 22.42 22.6 17.32923974328942 95713.0 0.0 0.0 True
123 2022-06-29 00:00:00+01:00 22.44 22.580000000000002 21.76 21.8 16.715816722763208 143179.0 0.0 0.0 True
124 2022-06-30 00:00:00+01:00 21.38 22.0 21.38 21.94 16.823165751355294 143371.0 0.0 0.0 True
125 2022-07-01 00:00:00+01:00 21.0 22.3 21.0 22.14 16.97652150648685 151912.0 0.0 0.0 True
126 2022-07-04 00:00:00+01:00 22.96 23.12 21.76 21.86 16.761825326132374 163031.0 0.0 0.0 True
127 2022-07-05 00:00:00+01:00 21.8 22.26 21.1 21.54 16.516450487432774 87873.0 0.0 0.0 True
128 2022-07-06 00:00:00+01:00 21.8 22.54 21.8 22.5 17.25256374255335 192002.0 0.0 0.0 True
129 2022-07-07 00:00:00+01:00 22.740000000000002 22.86 22.44739990234375 22.68 17.39058392217175 44045.0 0.0 0.0 True
130 2022-07-08 00:00:00+01:00 22.7 23.1 22.38 23.0 17.63595125355253 54169.0 0.0 0.0 True
131 2022-07-11 00:00:00+01:00 23.0 23.240000000000002 22.68 23.02 17.651288705895393 28404.0 0.0 0.0 True
132 2022-07-12 00:00:00+01:00 23.48 23.48 22.38 22.400000000000002 17.175885864987574 58069.0 0.0 0.0 True
133 2022-07-13 00:00:00+01:00 21.98 22.42 21.54 22.2 17.022528233026314 171315.0 0.0 0.0 True
134 2022-07-14 00:00:00+01:00 21.6 22.28739990234375 21.42 21.8 16.715816722763208 69105.0 0.0 0.0 True
135 2022-07-15 00:00:00+01:00 22.240000000000002 22.46 21.42 22.38 17.160548412644715 37962.0 0.0 0.0 True
136 2022-07-18 00:00:00+01:00 22.52 23.26 22.52 23.1 17.712632884777715 57375.0 0.0 0.0 True
137 2022-07-19 00:00:00+01:00 22.86 23.240000000000002 22.86 23.080000000000002 17.697293555605157 111888.0 0.0 0.0 True
138 2022-07-20 00:00:00+01:00 23.32 23.7 23.27 23.64 18.126693423632915 101102.0 0.0 0.0 True
139 2022-07-21 00:00:00+01:00 23.6 24.3 23.52 24.3 18.63276741556704 94675.0 0.0 0.0 True
140 2022-07-22 00:00:00+01:00 24.22 24.66 24.14 24.28 18.617431840053886 106841.0 0.0 0.0 True
141 2022-07-25 00:00:00+01:00 24.26 24.42 23.96 24.04 18.433404933896025 156132.0 0.0 0.0 True
142 2022-07-26 00:00:00+01:00 24.1 24.1 23.56 23.56 18.065351121580292 100895.0 0.0 0.0 True
143 2022-07-27 00:00:00+01:00 23.48 23.94 23.44 23.580000000000002 18.080686697093444 147619.0 0.0 0.0 True
144 2022-07-28 00:00:00+01:00 24.32 24.400000000000002 23.84 24.400000000000002 18.709447169962523 68667.0 0.0 0.0 True
145 2022-07-29 00:00:00+01:00 24.28 25.48 24.26 25.14 19.27686346394928 215529.0 0.0 0.0 True
146 2022-08-01 00:00:00+01:00 26.0 26.0 24.6 24.900000000000002 19.092834680961705 67096.0 0.0 0.0 True
147 2022-08-02 00:00:00+01:00 24.86 24.900000000000002 24.3 24.52 18.801460623041454 44575.0 0.0 0.0 True
148 2022-08-03 00:00:00+01:00 25.400000000000002 27.664499511718752 24.740000000000002 27.0 20.703077617161842 363560.0 0.0 0.0 True
149 2022-08-04 00:00:00+01:00 26.96 27.06300048828125 25.98 26.42 20.258342173620928 390933.0 0.0 0.0 True
150 2022-08-05 00:00:00+01:00 26.28 27.1 26.22 26.54 20.35035562669986 281941.0 0.0 0.0 True
151 2022-08-08 00:00:00+01:00 26.26 26.84 25.740000000000002 26.02 19.95163066335782 119579.0 0.0 0.0 True
152 2022-08-09 00:00:00+01:00 26.0 26.12 25.400000000000002 25.42 19.491561521133452 81157.0 0.0 0.0 True
153 2022-08-10 00:00:00+01:00 26.0 26.361459960937502 24.84 26.240000000000002 20.120323870832234 236333.0 0.0 0.0 True
154 2022-08-11 00:00:00+01:00 26.22 26.52 25.94 26.26 20.135657569515683 202521.0 0.0 0.0 True
155 2022-08-12 00:00:00+01:00 26.740000000000002 26.76 26.12 26.68 20.45770465529195 94373.0 0.0 0.0 True
156 2022-08-15 00:00:00+01:00 26.0 26.92 25.66 26.68 20.45770465529195 130154.0 0.0 0.0 True
157 2022-08-16 00:00:00+01:00 26.1 26.86 25.34 25.580000000000002 19.6142480020684 220905.0 0.0 0.0 True
158 2022-08-17 00:00:00+01:00 25.66 26.2 25.32 25.740000000000002 19.73693072934394 194549.0 0.0 0.0 True
159 2022-08-18 00:00:00+01:00 25.740000000000002 25.8 25.42 25.8 19.782937455883403 73907.0 0.0 0.0 True
160 2022-08-19 00:00:00+01:00 25.64 25.7 24.38 24.38 18.694109717619664 161331.0 0.0 0.0 True
161 2022-08-22 00:00:00+01:00 24.2 24.42 23.84 24.14 18.510080934632093 309805.0 0.0 0.0 True
162 2022-08-23 00:00:00+01:00 24.2 24.2 23.34 23.42 17.9580002161585 169026.0 0.0 0.0 True
163 2022-08-24 00:00:00+01:00 24.44 24.44 23.240000000000002 24.080000000000002 18.464076084922333 213735.0 0.0 0.0 True
164 2022-08-25 00:00:00+01:00 24.34 24.76 24.14 24.560000000000002 18.832129897238065 103565.0 0.0 0.0 True
165 2022-08-26 00:00:00+01:00 24.68 25.84 24.418798828125002 24.48 18.770789472015146 111767.0 0.0 0.0 True
166 2022-08-30 00:00:00+01:00 25.0 25.32 24.28 24.64 18.893472199290684 114667.0 0.0 0.0 True
167 2022-08-31 00:00:00+01:00 24.3 25.14 24.26 24.86 19.062165406765097 159278.0 0.0 0.0 True
168 2022-09-01 00:00:00+01:00 24.84 24.84 23.28 23.5 18.019344395040825 75741.0 0.0 0.0 True
169 2022-09-02 00:00:00+01:00 23.8 23.900000000000002 23.32 23.86 18.29538663110733 161878.0 0.0 0.0 True
170 2022-09-05 00:00:00+01:00 23.54 24.04 23.19093994140625 23.5 18.019344395040825 89772.0 0.0 0.0 True
171 2022-09-06 00:00:00+01:00 23.54 24.02 23.31 23.580000000000002 18.080686697093444 71477.0 0.0 0.0 True
172 2022-09-07 00:00:00+01:00 23.0 23.72 23.0 23.48 18.004006942697963 97993.0 0.0 0.0 True
173 2022-09-08 00:00:00+01:00 23.400000000000002 23.86 23.12 23.86 18.29538663110733 192900.0 0.0 0.0 True
174 2022-09-09 00:00:00+01:00 23.7 24.240000000000002 23.67845947265625 24.16 18.52542026380466 59221.0 0.0 0.0 True
175 2022-09-12 00:00:00+01:00 24.400000000000002 24.400000000000002 23.82 24.04 18.433404933896025 76307.0 0.0 0.0 True
176 2022-09-13 00:00:00+01:00 24.0 24.76 23.66 23.66 18.142027122316367 155869.0 0.0 0.0 True
177 2022-09-14 00:00:00+01:00 23.66 24.34 23.54 23.84 18.280047301934765 120233.0 0.0 0.0 True
178 2022-09-15 00:00:00+01:00 23.22 23.88 23.18 23.34 17.896657914105877 297665.0 0.0 0.0 True
179 2022-09-16 00:00:00+01:00 23.26 23.32 22.900000000000002 22.92 17.574610828329615 144960.0 0.0 0.0 True
180 2022-09-20 00:00:00+01:00 22.94 24.04 22.6 23.5 18.019344395040825 317042.0 0.0 0.0 True
181 2022-09-21 00:00:00+01:00 23.84 24.36 21.86 23.12 17.72796658346117 273104.0 0.0 0.0 True
182 2022-09-22 00:00:00+01:00 23.02 23.46 22.8 23.240000000000002 17.819981913369805 330760.0 0.0 0.0 True
183 2022-09-23 00:00:00+01:00 23.02 23.14 21.900000000000002 22.56 17.29857046909282 152226.0 0.0 0.0 True
184 2022-09-26 00:00:00+01:00 22.1 22.98 22.1 22.68 17.39058392217175 160292.0 0.0 0.0 True
185 2022-09-27 00:00:00+01:00 22.92 23.52 22.82 22.82 17.497931073934133 170562.0 0.0 0.0 True
186 2022-09-28 00:00:00+01:00 22.1 23.06 21.98 22.86 17.528604101790147 115333.0 0.0 0.0 True
187 2022-09-29 00:00:00+01:00 22.84 22.900000000000002 22.04 22.36 17.14521283713156 131444.0 0.0 0.0 True
188 2022-09-30 00:00:00+01:00 22.7 23.18 22.0 22.98 17.62061755486908 721076.0 0.0 0.0 True
189 2022-10-03 00:00:00+01:00 22.0 23.740000000000002 22.0 23.6 18.0960203957769 411048.0 0.0 0.0 True
190 2022-10-04 00:00:00+01:00 23.14 24.82 23.14 24.48 18.770789472015146 359955.0 0.0 0.0 True
191 2022-10-05 00:00:00+01:00 24.6 24.6 23.38 23.66 18.142027122316367 787207.0 0.0 0.0 True
192 2022-10-06 00:00:00+01:00 23.3 24.36 23.3 24.16 19.148596560732347 179826.0 0.77 0.0 True
193 2022-10-07 00:00:00+01:00 24.32 24.32 23.12 23.28 18.451130936862427 182711.0 0.0 0.0 True
194 2022-10-10 00:00:00+01:00 23.0 23.28 22.240000000000002 22.44 17.78536759068367 138462.0 0.0 0.0 True
195 2022-10-11 00:00:00+01:00 22.38 22.72 22.1 22.18 17.5792979373585 148515.0 0.0 0.0 True
196 2022-10-12 00:00:00+01:00 23.12 23.12 21.88 22.16 17.563445828846387 162450.0 0.0 0.0 True
197 2022-10-13 00:00:00+01:00 22.740000000000002 22.740000000000002 21.12 21.900000000000002 17.357378114854292 326778.0 0.0 0.0 True
198 2022-10-14 00:00:00+01:00 22.0 22.76 21.82 22.5 17.83292197688693 161983.0 0.0 0.0 True
199 2022-10-17 00:00:00+01:00 22.86 23.01260009765625 22.2 22.94 18.18165478882189 116551.0 0.0 0.0 True
200 2022-10-18 00:00:00+01:00 22.26 23.38 22.26 23.12 18.32431794743168 141461.0 0.0 0.0 True
201 2022-10-19 00:00:00+01:00 23.0 23.16 22.240000000000002 22.36 17.72196109596829 104562.0 0.0 0.0 True
202 2022-10-20 00:00:00+01:00 22.38 22.72 21.82 22.5 17.83292197688693 152158.0 0.0 0.0 True
203 2022-10-21 00:00:00+01:00 22.5 23.1 22.28 23.0 18.229207235692083 104972.0 0.0 0.0 True
204 2022-10-24 00:00:00+01:00 23.02 23.900000000000002 23.0 23.38 18.53038566142378 159898.0 0.0 0.0 True
205 2022-10-25 00:00:00+01:00 23.72 24.46 23.42 24.16 19.148596560732347 85381.0 0.0 0.0 True
206 2022-10-26 00:00:00+01:00 24.16 24.2 23.66 24.14 19.132742512887166 117490.0 0.0 0.0 True
207 2022-10-27 00:00:00+01:00 24.080000000000002 24.54 23.88 24.34 19.291259719342143 238792.0 0.0 0.0 True
208 2022-10-28 00:00:00+01:00 24.1 24.22 23.719599609375 24.080000000000002 19.085190066016974 122712.0 0.0 0.0 True
209 2022-10-31 00:00:00+00:00 24.26 24.46 23.66 24.1 19.101040235196017 102273.0 0.0 0.0 True
210 2022-11-01 00:00:00+00:00 24.5 24.94 24.02 24.22 19.19614900760254 72028.0 0.0 0.0 True
211 2022-11-02 00:00:00+00:00 24.1 25.0 23.92 24.64 19.52902971102539 145464.0 0.0 0.0 True
212 2022-11-03 00:00:00+00:00 24.28 24.72 23.88 24.04 19.053485848992747 73546.0 0.0 0.0 True
213 2022-11-04 00:00:00+00:00 24.240000000000002 25.080000000000002 23.60639892578125 24.28 19.24370339380581 69077.0 0.0 0.0 True
214 2022-11-07 00:00:00+00:00 24.22 25.080000000000002 24.02 24.900000000000002 19.735099364350557 124283.0 0.0 0.0 True
215 2022-11-08 00:00:00+00:00 24.580000000000002 25.22 24.580000000000002 25.22 19.988723403878986 153287.0 0.0 0.0 True
216 2022-11-09 00:00:00+00:00 24.98 25.22 24.88 24.98 19.798505859065934 100019.0 0.0 0.0 True
217 2022-11-10 00:00:00+00:00 24.82 26.54 24.64 26.2 20.76544763097639 132777.0 0.0 0.0 True
218 2022-11-11 00:00:00+00:00 26.36 26.86 26.16 26.580000000000002 21.066624117375014 219220.0 0.0 0.0 True
219 2022-11-14 00:00:00+00:00 26.3 27.1 26.26 26.96 21.36780254310671 128692.0 0.0 0.0 True
220 2022-11-15 00:00:00+00:00 26.48 27.16 26.14 26.92 21.336100265415556 186824.0 0.0 0.0 True
221 2022-11-16 00:00:00+00:00 27.02 27.04 26.38 26.52 21.01906973117175 107714.0 0.0 0.0 True
222 2022-11-17 00:00:00+00:00 26.76 26.76 25.8 26.7 21.16173482911461 111413.0 0.0 0.0 True
223 2022-11-18 00:00:00+00:00 26.88 27.1 26.32 27.1 21.47876342402535 127583.0 0.0 0.0 True
224 2022-11-21 00:00:00+00:00 27.96 29.15199951171875 27.43699951171875 27.740000000000002 21.986009563749136 517109.0 0.0 0.0 True
225 2022-11-22 00:00:00+00:00 28.0 28.0 26.86 27.66 21.922605008366833 209083.0 0.0 0.0 True
226 2022-11-23 00:00:00+00:00 27.6 28.34 27.5 28.34 22.461555365114847 458322.0 0.0 0.0 True
227 2022-11-24 00:00:00+00:00 29.0 29.26 27.6 28.8 22.826138346228845 189652.0 0.0 0.0 True
228 2022-11-25 00:00:00+00:00 28.400000000000002 29.03300048828125 28.400000000000002 28.900000000000002 22.905396949456335 146017.0 0.0 0.0 True
229 2022-11-28 00:00:00+00:00 28.7 29.1 28.0 29.1 23.063912216578238 255817.0 0.0 0.0 True
230 2022-11-29 00:00:00+00:00 29.080000000000002 29.14 28.8 28.900000000000002 22.905396949456335 204232.0 0.0 0.0 True
231 2022-11-30 00:00:00+00:00 28.76 29.62 28.76 29.5 23.380940811488976 538520.0 0.0 0.0 True
232 2022-12-01 00:00:00+00:00 29.68 29.900000000000002 29.060000000000002 29.76 23.58701240414721 188618.0 0.0 0.0 True
233 2022-12-02 00:00:00+00:00 29.88 30.560000000000002 29.3 29.48 23.365090642309934 384388.0 0.0 0.0 True
234 2022-12-05 00:00:00+00:00 29.36 29.92 28.26 28.28 22.414000978911588 225089.0 0.0 0.0 True
235 2022-12-06 00:00:00+00:00 28.1 28.48 27.78 27.94 22.144526770204113 320011.0 0.0 0.0 True
236 2022-12-07 00:00:00+00:00 27.92 28.2 27.64 27.94 22.144526770204113 341034.0 0.0 0.0 True
237 2022-12-08 00:00:00+00:00 27.78 28.080000000000002 27.72 27.92 22.128676601025074 219670.0 0.0 0.0 True
238 2022-12-09 00:00:00+00:00 27.400000000000002 28.0 27.400000000000002 28.0 22.19208115640738 138547.0 0.0 0.0 True
239 2022-12-12 00:00:00+00:00 28.400000000000002 28.76300048828125 27.72 28.240000000000002 22.38229870122043 128168.0 0.0 0.0 True
240 2022-12-13 00:00:00+00:00 28.34 29.1 27.86 28.38 22.49325958213907 263580.0 0.0 0.0 True
241 2022-12-14 00:00:00+00:00 28.0 28.36 27.86 28.22 22.36644659270832 62627.0 0.0 0.0 True
242 2022-12-15 00:00:00+00:00 27.900000000000002 28.18 27.54 27.54 21.827496235960307 256065.0 0.0 0.0 True
243 2022-12-16 00:00:00+00:00 27.5 27.96 27.080000000000002 27.400000000000002 21.71653729437474 147966.0 0.0 0.0 True
244 2022-12-19 00:00:00+00:00 27.52 27.9739990234375 27.38 27.52 21.811644127448197 62241.0 0.0 0.0 True
245 2022-12-20 00:00:00+00:00 27.5 27.62 26.8 27.38 21.700685185862625 116737.0 0.0 0.0 True
246 2022-12-21 00:00:00+00:00 27.64 28.1 27.24030029296875 27.86 22.08112027548874 47330.0 0.0 0.0 True
247 2022-12-22 00:00:00+00:00 27.86 28.26 27.3 27.48 21.779943789090108 59975.0 0.0 0.0 True
248 2022-12-23 00:00:00+00:00 28.26 28.26 27.240000000000002 27.46 21.764091680578 37424.0 0.0 0.0 True
249 2022-12-28 00:00:00+00:00 27.44 27.7 27.22 27.42 21.732387463553778 39217.0 0.0 0.0 True
250 2022-12-29 00:00:00+00:00 27.04 27.66 27.02 27.62 21.890902730675684 96876.0 0.0 0.0 True
251 2022-12-30 00:00:00+00:00 26.96 27.66 26.96 27.240000000000002 21.589724304943985 23796.0 0.0 0.0 True
252 2023-01-03 00:00:00+00:00 27.2 28.22 26.64 27.66 21.922605008366833 68033.0 0.0 0.0 True
253 2023-01-04 00:00:00+00:00 27.54 27.98 27.1572998046875 27.88 22.096972384000846 68241.0 0.0 0.0 True
254 2023-01-05 00:00:00+00:00 27.76 28.3 27.562900390625 28.04 22.22378343409853 99643.0 0.0 0.0 True
255 2023-01-06 00:00:00+00:00 27.68 28.72 27.68 28.6 22.667626957773088 132308.0 0.0 0.0 True
256 2023-01-09 00:00:00+00:00 27.0 28.72 26.529279785156252 28.0 22.19208115640738 144894.0 0.0 0.0 True
257 2023-01-10 00:00:00+00:00 29.0 29.0 27.42 27.560000000000002 21.843346405139346 108914.0 0.0 0.0 True
258 2023-01-11 00:00:00+00:00 28.8 28.8 27.36 28.32 22.445705195935805 117605.0 0.0 0.0 True
259 2023-01-12 00:00:00+00:00 28.0 28.16 26.67 26.98 21.38365271228575 394851.0 0.0 0.0 True
260 2023-01-13 00:00:00+00:00 26.76 27.0839990234375 25.400000000000002 25.6 20.28990182961068 356966.0 0.0 0.0 True
261 2023-01-16 00:00:00+00:00 25.0 26.080000000000002 24.86 25.18 19.95702112618783 336471.0 0.0 0.0 True
262 2023-01-17 00:00:00+00:00 25.22 25.400000000000002 24.92 25.3 20.05212795926129 221386.0 0.0 0.0 True
263 2023-01-18 00:00:00+00:00 25.66 26.78 25.37659912109375 26.240000000000002 20.79715184800061 1025972.0 0.0 0.0 True
264 2023-01-19 00:00:00+00:00 27.0 27.0 25.98 26.62 21.098328334399234 102617.0 0.0 0.0 True
265 2023-01-20 00:00:00+00:00 26.72 27.0 26.34 26.44 20.955663236456374 192758.0 0.0 0.0 True
266 2023-01-23 00:00:00+00:00 26.48 26.650000000000002 25.86 26.12 20.702041136261013 159375.0 0.0 0.0 True
267 2023-01-24 00:00:00+00:00 26.3 26.44 25.88 26.060000000000002 20.654486750057753 285494.0 0.0 0.0 True
268 2023-01-25 00:00:00+00:00 26.5 28.04 26.18 27.740000000000002 21.986009563749136 379047.0 0.0 0.0 True
269 2023-01-26 00:00:00+00:00 27.86 28.26 27.66 27.740000000000002 21.986009563749136 234863.0 0.0 0.0 True
270 2023-01-27 00:00:00+00:00 27.900000000000002 28.48 27.44 28.44 22.540812029009263 96625.0 0.0 0.0 True
271 2023-01-30 00:00:00+00:00 28.14 28.68 27.88 28.16 22.318892206505055 169732.0 0.0 0.0 True
272 2023-01-31 00:00:00+00:00 28.060000000000002 28.400000000000002 27.84 28.400000000000002 22.509109751318114 250688.0 0.0 0.0 True
273 2023-02-01 00:00:00+00:00 28.2 28.72 27.400000000000002 28.34 22.461555365114847 97416.0 0.0 0.0 True
274 2023-02-02 00:00:00+00:00 28.68 29.560000000000002 28.1 29.2 23.143168880472654 245261.0 0.0 0.0 True
275 2023-02-03 00:00:00+00:00 29.66 29.7 28.8 29.28 23.20657343585496 211695.0 0.0 0.0 True
276 2023-02-06 00:00:00+00:00 29.02 29.48 28.92597900390625 29.04 23.016357830374975 78978.0 0.0 0.0 True
277 2023-02-07 00:00:00+00:00 28.2 28.98 27.7 28.26 22.39814887039947 327488.0 0.0 0.0 True
278 2023-02-08 00:00:00+00:00 28.7 28.7 28.0 28.36 22.477405534293887 88715.0 0.0 0.0 True
279 2023-02-09 00:00:00+00:00 29.0 29.0 28.44 28.7 22.74688168233443 113023.0 0.0 0.0 True
280 2023-02-10 00:00:00+00:00 28.8 28.89 28.02 28.02 22.20793326491949 169490.0 0.0 0.0 True
281 2023-02-13 00:00:00+00:00 27.900000000000002 28.38 27.36 28.38 22.49325958213907 140602.0 0.0 0.0 True
282 2023-02-14 00:00:00+00:00 27.060000000000002 28.560000000000002 27.060000000000002 28.0 22.19208115640738 107333.0 0.0 0.0 True
283 2023-02-15 00:00:00+00:00 28.18 28.900000000000002 27.724599609375 28.84 22.85784256325307 129853.0 0.0 0.0 True
284 2023-02-16 00:00:00+00:00 27.3 29.240000000000002 27.3 29.12 23.07976432509035 63977.0 0.0 0.0 True
285 2023-02-17 00:00:00+00:00 29.96 29.96 28.5 28.5 22.588368354545597 75842.0 0.0 0.0 True
286 2023-02-20 00:00:00+00:00 28.400000000000002 28.92 28.3 28.900000000000002 22.905396949456335 44533.0 0.0 0.0 True
287 2023-02-21 00:00:00+00:00 28.580000000000002 29.14 28.580000000000002 28.8 22.826138346228845 176561.0 0.0 0.0 True
288 2023-02-22 00:00:00+00:00 28.900000000000002 28.900000000000002 28.48 28.76 22.794438007870767 146264.0 0.0 0.0 True
289 2023-02-23 00:00:00+00:00 28.82 29.34 28.66 28.88 22.88954484094422 86655.0 0.0 0.0 True
290 2023-02-24 00:00:00+00:00 28.98 28.98 28.240000000000002 28.42 22.524961859830224 69783.0 0.0 0.0 True
291 2023-02-27 00:00:00+00:00 28.68 29.060000000000002 28.1 28.84 22.85784256325307 78772.0 0.0 0.0 True
292 2023-02-28 00:00:00+00:00 28.62 29.1 28.580000000000002 28.92 22.921249057968446 386853.0 0.0 0.0 True
293 2023-03-01 00:00:00+00:00 28.92 29.72 28.86 29.36 23.269979930570333 106416.0 0.0 0.0 True
294 2023-03-02 00:00:00+00:00 29.8 29.82 28.92 29.62 23.47605152322857 60874.0 0.0 0.0 True
295 2023-03-03 00:00:00+00:00 29.8 29.92 29.22 29.44 23.33338836461878 59389.0 0.0 0.0 True
296 2023-03-06 00:00:00+00:00 29.46 29.54 29.02 29.240000000000002 23.174873097496874 68220.0 0.0 0.0 True
297 2023-03-07 00:00:00+00:00 28.5 29.6 28.5 29.400000000000002 23.301684147594557 69588.0 0.0 0.0 True
298 2023-03-08 00:00:00+00:00 28.92 29.900000000000002 28.68280029296875 29.64 23.491901692407613 57394.0 0.0 0.0 True
299 2023-03-09 00:00:00+00:00 29.400000000000002 30.0 29.283999023437502 29.92 23.713823454244892 85081.0 0.0 0.0 True
300 2023-03-10 00:00:00+00:00 30.0 30.0 29.0 29.560000000000002 23.428497137025307 121079.0 0.0 0.0 True
301 2023-03-13 00:00:00+00:00 29.26 29.48 28.48 28.48 22.572516246033487 451156.0 0.0 0.0 True
302 2023-03-14 00:00:00+00:00 28.5 29.02 28.28 29.02 23.000505721862865 173562.0 0.0 0.0 True
303 2023-03-15 00:00:00+00:00 28.900000000000002 28.9418505859375 25.46 26.46 20.97151728430156 646146.0 0.0 0.0 True
304 2023-03-16 00:00:00+00:00 26.14 26.88 26.14 26.48 20.987367453480598 240692.0 0.0 0.0 True
305 2023-03-17 00:00:00+00:00 26.72 27.580000000000002 26.42 26.42 20.93981306727734 145813.0 0.0 0.0 True
306 2023-03-20 00:00:00+00:00 26.02 27.28 25.82 26.88 21.304397987724403 156224.0 0.0 0.0 True
307 2023-03-21 00:00:00+00:00 27.12 27.26 26.6 27.2 21.55802008791976 101085.0 0.0 0.0 True
308 2023-03-22 00:00:00+00:00 27.04 27.28 26.68 27.060000000000002 21.44705920700112 61646.0 0.0 0.0 True
309 2023-03-23 00:00:00+00:00 27.46 27.84 27.0 27.76 22.001863611594324 238904.0 0.0 0.0 True
310 2023-03-24 00:00:00+00:00 27.66 27.8639990234375 27.18 27.7 21.954309225391057 151064.0 0.0 0.0 True
311 2023-03-27 00:00:00+01:00 27.98 28.14 27.0 27.060000000000002 21.44705920700112 242115.0 0.0 0.0 True
312 2023-03-28 00:00:00+01:00 27.12 27.12 26.34 26.6 21.082476225887127 162045.0 0.0 0.0 True
313 2023-03-29 00:00:00+01:00 26.64 27.46 26.38 27.240000000000002 21.589724304943985 219929.0 0.0 0.0 True
314 2023-03-30 00:00:00+01:00 27.76 29.080000000000002 27.650000000000002 28.080000000000002 22.255487651122753 285091.0 0.0 0.0 True
315 2023-03-31 00:00:00+01:00 28.1 28.14 27.400000000000002 27.580000000000002 21.85919851365146 143041.0 0.0 0.0 True
316 2023-04-03 00:00:00+01:00 27.580000000000002 27.580000000000002 27.14 27.26 21.6055764134561 100038.0 0.0 0.0 True
317 2023-04-04 00:00:00+01:00 27.14 27.5535400390625 27.04 27.14 21.5104657017165 89315.0 0.0 0.0 True
318 2023-04-05 00:00:00+01:00 27.6 27.8 25.48 25.5 20.21064516571627 174325.0 0.0 0.0 True
319 2023-04-06 00:00:00+01:00 25.6 26.03199951171875 25.46 26.0 20.606932363854487 163437.0 0.0 0.0 True
320 2023-04-11 00:00:00+01:00 26.0 26.580000000000002 25.86 26.22 20.781297800155432 148621.0 0.0 0.0 True
321 2023-04-12 00:00:00+01:00 26.68 27.0 26.02 26.64 21.114180442911348 118071.0 0.0 0.0 True
322 2023-04-13 00:00:00+01:00 26.96 27.400000000000002 26.68 27.18 21.542169918740722 338659.0 0.0 0.0 True
323 2023-04-14 00:00:00+01:00 27.5 27.86 26.72 26.72 21.177584998293653 188709.0 0.0 0.0 True
324 2023-04-17 00:00:00+01:00 26.78 27.060000000000002 26.0356005859375 26.98 21.38365271228575 260010.0 0.0 0.0 True
325 2023-04-18 00:00:00+01:00 28.0 28.0 26.86 27.2 21.55802008791976 110566.0 0.0 0.0 True
326 2023-04-19 00:00:00+01:00 26.8 27.38 26.72 27.240000000000002 21.589724304943985 238055.0 0.0 0.0 True
327 2023-04-20 00:00:00+01:00 27.78 27.78 26.66 26.66 21.130030612090387 136925.0 0.0 0.0 True
328 2023-04-21 00:00:00+01:00 26.5 27.400000000000002 26.48 27.02 21.415356929309976 102818.0 0.0 0.0 True
329 2023-04-24 00:00:00+01:00 26.400000000000002 27.36 26.400000000000002 27.0 21.399506760130933 53770.0 0.0 0.0 True
330 2023-04-25 00:00:00+01:00 26.78 27.34 26.7 26.96 21.36780254310671 584252.0 0.0 0.0 True
331 2023-04-26 00:00:00+01:00 26.78 26.82 26.32 26.64 21.114180442911348 82215.0 0.0 0.0 True
332 2023-04-27 00:00:00+01:00 26.14 26.78 26.14 26.76 21.209289215317877 72994.0 0.0 0.0 True
333 2023-04-28 00:00:00+01:00 27.18 27.18 26.62 27.0 21.399506760130933 63114.0 0.0 0.0 True
334 2023-05-02 00:00:00+01:00 26.400000000000002 27.095419921875 26.34 26.34 20.87640657256196 142978.0 0.0 0.0 True
335 2023-05-03 00:00:00+01:00 26.42 26.5 24.96 25.1 19.893616570805527 350646.0 0.0 0.0 True
336 2023-05-04 00:00:00+01:00 25.0 25.080000000000002 22.68 22.68 17.975585135496722 1493890.0 0.0 0.0 True
337 2023-05-05 00:00:00+01:00 22.6 22.7 21.92 22.0 17.43663477874871 582476.0 0.0 0.0 True
338 2023-05-09 00:00:00+01:00 22.5 22.84 21.75010009765625 22.5 17.83292197688693 529565.0 0.0 0.0 True
339 2023-05-10 00:00:00+01:00 22.5 22.8 21.78 21.8 17.27811951162681 315844.0 0.0 0.0 True
340 2023-05-11 00:00:00+01:00 21.7 23.38 21.7 23.06 18.276763561228417 489035.0 0.0 0.0 True
341 2023-05-12 00:00:00+01:00 23.34 23.38 22.72 23.38 18.53038566142378 283610.0 0.0 0.0 True
342 2023-05-15 00:00:00+01:00 23.04 23.62 23.04 23.5 18.625496373163376 388932.0 0.0 0.0 True
343 2023-05-16 00:00:00+01:00 23.36 23.54 23.02 23.3 18.466981106041473 395998.0 0.0 0.0 True
344 2023-05-17 00:00:00+01:00 23.56 23.580000000000002 22.68 22.84 18.102396185594404 423318.0 0.0 0.0 True
345 2023-05-18 00:00:00+01:00 22.96 23.240000000000002 22.42 22.72 18.007289352520946 319457.0 0.0 0.0 True
346 2023-05-19 00:00:00+01:00 22.5 22.9019091796875 22.04 22.46 17.80121775986271 421569.0 0.0 0.0 True
347 2023-05-22 00:00:00+01:00 22.78 22.84 22.38 22.8 18.07069390790325 166747.0 0.0 0.0 True
348 2023-05-23 00:00:00+01:00 23.2 23.22 22.38 22.38 17.737811265147336 309329.0 0.0 0.0 True
349 2023-05-24 00:00:00+01:00 22.02 22.33969970703125 20.56 20.94 16.59650793560207 512827.0 0.0 0.0 True
350 2023-05-25 00:00:00+01:00 20.52 21.0 20.32 20.32 16.10511002572425 729567.0 0.0 0.0 True
351 2023-05-26 00:00:00+01:00 20.88 20.88 19.72 19.78 15.677119580228338 492367.0 0.0 0.0 True
352 2023-05-30 00:00:00+01:00 19.92 20.0152001953125 19.35 19.41 15.383867208752699 690501.0 0.0 0.0 True
353 2023-05-31 00:00:00+01:00 20.2 20.2 19.19 19.45 15.415570456110391 317942.0 0.0 0.0 True
354 2023-06-01 00:00:00+01:00 19.66 19.740000000000002 19.150000000000002 19.47 15.431421942440583 304732.0 0.0 0.0 True
355 2023-06-02 00:00:00+01:00 20.22 20.22 19.37 19.82 15.708823639936469 278304.0 0.0 0.0 True
356 2023-06-05 00:00:00+01:00 19.62 19.72 17.92 18.17 15.690483393097194 461315.0 1.6 0.0 True
357 2023-06-06 00:00:00+01:00 18.07 18.18 17.29 17.45 15.06873653968668 828912.0 0.0 0.0 True
358 2023-06-07 00:00:00+01:00 17.73 18.41 17.73 18.32 15.820013943573676 554274.0 0.0 0.0 True
359 2023-06-08 00:00:00+01:00 17.61 18.6747998046875 17.61 18.22 15.733660243256018 270247.0 0.0 0.0 True
360 2023-06-09 00:00:00+01:00 18.330000000000002 18.63 17.93 18.52 15.992722399826066 341997.0 0.0 0.0 True
361 2023-06-12 00:00:00+01:00 18.19 19.12 18.143199462890625 19.12 16.51084354611489 357760.0 0.0 0.0 True
362 2023-06-13 00:00:00+01:00 19.2 19.77 18.94 19.400000000000002 16.75263475149799 648503.0 0.0 0.0 True
363 2023-06-14 00:00:00+01:00 19.740000000000002 19.92 19.27 19.6 16.925343207750384 362355.0 0.0 0.0 True
364 2023-06-15 00:00:00+01:00 19.6 19.775000000000002 18.96 19.18 16.56265639967574 437837.0 0.0 0.0 True
365 2023-06-16 00:00:00+01:00 19.87 19.87 19.065 19.41 16.76126969928292 635867.0 0.0 0.0 True
366 2023-06-19 00:00:00+01:00 19.37 19.37 18.93 18.95 16.364043100068553 343892.0 0.0 0.0 True
367 2023-06-20 00:00:00+01:00 19.39 19.39 18.61 18.67 16.12225189468546 240994.0 0.0 0.0 True
368 2023-06-21 00:00:00+01:00 19.45 19.469520263671875 18.36 18.91 16.329501197694658 276880.0 0.0 0.0 True
369 2023-06-22 00:00:00+01:00 18.95 19.162230224609374 18.37 18.8 16.234512549592075 186330.0 0.0 0.0 True
370 2023-06-23 00:00:00+01:00 18.6 19.04 18.6 18.87 16.294959295320766 189003.0 0.0 0.0 True
371 2023-06-26 00:00:00+01:00 19.0 19.04719970703125 18.32 18.57 16.035899249984894 411820.0 0.0 0.0 True
372 2023-06-27 00:00:00+01:00 18.650000000000002 18.77 17.669100341796874 18.03 15.569588846022732 538190.0 0.0 0.0 True
373 2023-06-28 00:00:00+01:00 18.0 18.2 17.92 18.2 15.716389292069072 210732.0 0.0 0.0 True
374 2023-06-29 00:00:00+01:00 18.7 18.7 17.54 17.59 15.189631086761139 253575.0 0.0 0.0 True
375 2023-06-30 00:00:00+01:00 17.67 18.11 17.43 18.1 15.63003559175142 150826.0 0.0 0.0 True
376 2023-07-03 00:00:00+01:00 17.900000000000002 18.36 17.88 18.330000000000002 15.8286488913586 791780.0 0.0 0.0 True
377 2023-07-04 00:00:00+01:00 18.400000000000002 18.522430419921875 18.12 18.42 15.906367643891324 287173.0 0.0 0.0 True
378 2023-07-05 00:00:00+01:00 18.56 18.580000000000002 18.255999755859374 18.36 15.85455479033048 160679.0 0.0 0.0 True
379 2023-07-06 00:00:00+01:00 18.5 18.54 17.240000000000002 17.51 15.120548337630435 281127.0 0.0 0.0 True
380 2023-07-07 00:00:00+01:00 17.51 17.51 16.69 17.1 14.766497532957805 290241.0 0.0 0.0 True
381 2023-07-10 00:00:00+01:00 17.240000000000002 17.77 16.87 16.95 14.636966982481328 339775.0 0.0 0.0 True
382 2023-07-11 00:00:00+01:00 17.5 17.5 16.12 16.14 13.93750137653809 371758.0 0.0 0.0 True
383 2023-07-12 00:00:00+01:00 16.15 17.14 16.12 16.88 14.576519181135554 494734.0 0.0 0.0 True
384 2023-07-13 00:00:00+01:00 17.0 17.330000000000002 16.85 16.89 14.585155184537573 155535.0 0.0 0.0 True
385 2023-07-14 00:00:00+01:00 16.8 17.55 16.62 17.12 14.783768484144755 208870.0 0.0 0.0 True
386 2023-07-17 00:00:00+01:00 17.0 17.17 16.740000000000002 16.9 14.593790132322503 155692.0 0.0 0.0 True
387 2023-07-18 00:00:00+01:00 17.72 17.72 16.64 16.68 14.403811780500247 132785.0 0.0 0.0 True
388 2023-07-19 00:00:00+01:00 17.1 17.62 16.87530029296875 17.62 15.215536985733017 396633.0 0.0 0.0 True
389 2023-07-20 00:00:00+01:00 17.82 17.97 17.59 17.63 15.224172989135036 372626.0 0.0 0.0 True
390 2023-07-21 00:00:00+01:00 17.86 18.063800048828124 17.6 17.88 15.44005723992917 257740.0 0.0 0.0 True
391 2023-07-24 00:00:00+01:00 17.6 18.041500244140625 17.48 17.71 15.29325573826574 360104.0 0.0 0.0 True
392 2023-07-25 00:00:00+01:00 17.740000000000002 18.22 17.57154052734375 17.86 15.422786288742218 209875.0 0.0 0.0 True
393 2023-07-26 00:00:00+01:00 17.77 18.13 17.71 17.78 15.353704595228603 282136.0 0.0 0.0 True
394 2023-07-27 00:00:00+01:00 17.78 18.19 17.7 18.06 15.595493689377525 198157.0 0.0 0.0 True
395 2023-07-28 00:00:00+01:00 18.25 18.25 17.900000000000002 18.0 15.543681891433767 134365.0 0.0 0.0 True
396 2023-07-31 00:00:00+01:00 17.990000000000002 18.0 17.448499755859377 17.62 15.215536985733017 266973.0 0.0 0.0 True
397 2023-08-01 00:00:00+01:00 17.44 17.44 14.77 15.8 13.643898373211236 1707985.0 0.0 0.0 True
398 2023-08-02 00:00:00+01:00 15.700000000000001 16.15 15.700000000000001 15.860000000000001 13.695711226772081 597276.0 0.0 0.0 True
399 2023-08-03 00:00:00+01:00 15.700000000000001 15.875 15.56 15.66 13.523003826136776 720097.0 0.0 0.0 True
400 2023-08-04 00:00:00+01:00 15.89 15.89 15.2875 15.450000000000001 13.341660422099453 130835.0 0.0 0.0 True
401 2023-08-07 00:00:00+01:00 15.23 15.73 14.88 14.98 12.935797819483069 133228.0 0.0 0.0 True
402 2023-08-08 00:00:00+01:00 14.8 15.18 14.65 14.93 12.892619913707154 187614.0 0.0 0.0 True
403 2023-08-09 00:00:00+01:00 15.72 15.9 14.955999755859375 15.06 13.004880568613773 384876.0 0.0 0.0 True
404 2023-08-10 00:00:00+01:00 15.06 15.11 14.450000000000001 14.5 12.521299213464665 509873.0 0.0 0.0 True
405 2023-08-11 00:00:00+01:00 15.0 15.07 14.6 14.75 12.737183464258797 498841.0 0.0 0.0 True
406 2023-08-14 00:00:00+01:00 14.75 15.32 14.75 15.11 13.0480574187726 202173.0 0.0 0.0 True
407 2023-08-15 00:00:00+01:00 15.120000000000001 15.18 14.68 14.84 12.81490221679152 167723.0 0.0 0.0 True
408 2023-08-16 00:00:00+01:00 14.89 15.08 14.51 14.790000000000001 12.771725366632696 172976.0 0.0 0.0 True
409 2023-08-17 00:00:00+01:00 14.790000000000001 15.32 14.47 14.950000000000001 12.909890864894102 145057.0 0.0 0.0 True
410 2023-08-18 00:00:00+01:00 14.4 14.96 14.4 14.85 12.823538220193539 246954.0 0.0 0.0 True
411 2023-08-21 00:00:00+01:00 15.16 15.16 14.73 14.85 12.823538220193539 208997.0 0.0 0.0 True
412 2023-08-22 00:00:00+01:00 14.82 15.17 14.75 14.85 12.823538220193539 89056.0 0.0 0.0 True
413 2023-08-23 00:00:00+01:00 14.56 15.05 14.56 14.71 12.702641561884901 494801.0 0.0 0.0 True
414 2023-08-24 00:00:00+01:00 14.98 14.993909912109375 14.71 14.71 12.702641561884901 102654.0 0.0 0.0 True
415 2023-08-25 00:00:00+01:00 15.44 15.44 14.700000000000001 14.77 12.754454415445746 136975.0 0.0 0.0 True
416 2023-08-29 00:00:00+01:00 14.96 15.52 14.85 15.49 13.376201268856262 146752.0 0.0 0.0 True
417 2023-08-30 00:00:00+01:00 15.49 15.624000244140625 15.18 15.38 13.28121262075368 259486.0 0.0 0.0 True
418 2023-08-31 00:00:00+01:00 15.35 15.51 15.18 15.25 13.168953021464148 312027.0 0.0 0.0 True
419 2023-09-01 00:00:00+01:00 15.38 15.41 14.950000000000001 14.99 12.944432767268001 122627.0 0.0 0.0 True
420 2023-09-04 00:00:00+01:00 14.99 15.1 14.83 14.83 12.80626726900659 138450.0 0.0 0.0 True
421 2023-09-05 00:00:00+01:00 14.8 14.83199951171875 14.42 14.66 12.659464711726075 173206.0 0.0 0.0 True
422 2023-09-06 00:00:00+01:00 15.0 15.040000000000001 14.44 14.81 12.788996317819642 194887.0 0.0 0.0 True
423 2023-09-07 00:00:00+01:00 14.83 15.6 14.46 15.530000000000001 13.410743171230159 243553.0 0.0 0.0 True
424 2023-09-08 00:00:00+01:00 15.0 15.89 15.0 15.89 13.721617125743958 339473.0 0.0 0.0 True
425 2023-09-11 00:00:00+01:00 16.22 16.32 14.68 14.73 12.719912513071849 274162.0 0.0 0.0 True
426 2023-09-12 00:00:00+01:00 14.4 14.55 12.620000000000001 14.05 12.13270756203523 695308.0 0.0 0.0 True
427 2023-09-13 00:00:00+01:00 14.09 15.47 13.790000000000001 15.44 13.333024418697434 359608.0 0.0 0.0 True
428 2023-09-14 00:00:00+01:00 15.5 16.126199951171877 15.5 16.07 13.877053575192315 818615.0 0.0 0.0 True
429 2023-09-15 00:00:00+01:00 16.31 16.32 15.57 15.63 13.497097927164898 470826.0 0.0 0.0 True
430 2023-09-18 00:00:00+01:00 15.44 15.85 15.169410400390625 15.22 13.143046066875181 388020.0 0.0 0.0 True
431 2023-09-19 00:00:00+01:00 15.11 15.58 14.9039599609375 15.32 13.229400822809922 244500.0 0.0 0.0 True
432 2023-09-20 00:00:00+01:00 15.44 16.02 15.44 15.88 13.712982177959029 260949.0 0.0 0.0 True
433 2023-09-21 00:00:00+01:00 15.610000000000001 15.83 15.0 15.19 13.117140167903305 380456.0 0.0 0.0 True
434 2023-09-22 00:00:00+01:00 15.1 15.48 15.1 15.35 13.255306721781801 144967.0 0.0 0.0 True
435 2023-09-25 00:00:00+01:00 15.35 15.6 14.960999755859376 15.19 13.117140167903305 326513.0 0.0 0.0 True
436 2023-09-26 00:00:00+01:00 15.58 15.58 14.58 14.63 12.633558812754195 139051.0 0.0 0.0 True
437 2023-09-27 00:00:00+01:00 14.58 15.34 14.48 15.13 13.065328369959548 140879.0 0.0 0.0 True
438 2023-09-28 00:00:00+01:00 15.120000000000001 15.19 14.83 15.0 12.953067715052928 345116.0 0.0 0.0 True
439 2023-09-29 00:00:00+01:00 15.0 15.610000000000001 15.0 15.47 13.358930317669312 256397.0 0.0 0.0 True
440 2023-10-02 00:00:00+01:00 15.46 15.67 14.870000000000001 15.040000000000001 12.987609617426825 291241.0 0.0 0.0 True
441 2023-10-03 00:00:00+01:00 14.71 14.89 14.0 14.05 12.13270756203523 179006.0 0.0 0.0 True
442 2023-10-04 00:00:00+01:00 13.83 14.290000000000001 13.77 13.81 11.925458259026028 237634.0 0.0 0.0 True
443 2023-10-05 00:00:00+01:00 13.92 14.17 13.85 13.85 11.9599997746206 180284.0 0.0 0.0 True
444 2023-10-06 00:00:00+01:00 14.450000000000001 14.450000000000001 13.55 13.99 12.080894818697017 116485.0 0.0 0.0 True
445 2023-10-09 00:00:00+01:00 13.52 14.030000000000001 13.41 13.620000000000001 11.761386337214 136545.0 0.0 0.0 True
446 2023-10-10 00:00:00+01:00 13.89 14.55 13.72 14.55 12.564476049970086 245926.0 0.0 0.0 True
447 2023-10-11 00:00:00+01:00 14.32 14.52 13.450000000000001 13.52 12.438399456418825 134243.0 0.85 0.0 True
448 2023-10-12 00:00:00+01:00 14.0 14.0 13.38 13.51 12.429199958107466 112363.0 0.0 0.0 True
449 2023-10-13 00:00:00+01:00 13.46 13.75 13.1 13.1 12.052000296313045 264982.0 0.0 0.0 True
450 2023-10-16 00:00:00+01:00 13.1 13.42699951171875 12.69 13.31 12.245199876365936 142869.0 0.0 0.0 True
451 2023-10-17 00:00:00+01:00 13.21 13.479949951171875 13.09300048828125 13.370000000000001 12.300400238072205 103846.0 0.0 0.0 True
452 2023-10-18 00:00:00+01:00 13.5 13.5 12.69 12.75 11.729999872278858 586500.0 0.0 0.0 True
453 2023-10-19 00:00:00+01:00 12.52 13.213499755859376 12.52 13.11 12.061199794624404 200672.0 0.0 0.0 True
454 2023-10-20 00:00:00+01:00 13.07 13.41 12.83 13.18 12.125599654642036 592696.0 0.0 0.0 True
455 2023-10-23 00:00:00+01:00 13.25 13.4 13.0 13.33 12.263599996934692 121413.0 0.0 0.0 True
456 2023-10-24 00:00:00+01:00 13.42 13.64 13.0 13.1 12.052000296313045 173527.0 0.0 0.0 True
457 2023-10-25 00:00:00+01:00 13.09 13.34 12.96 13.14 12.088799413504523 113657.0 0.0 0.0 True
458 2023-10-26 00:00:00+01:00 13.0 13.280000000000001 12.96 13.1 12.052000296313045 162088.0 0.0 0.0 True
459 2023-10-27 00:00:00+01:00 13.1 13.16 12.85 13.0 11.959999693469262 172121.0 0.0 0.0 True
460 2023-10-30 00:00:00+00:00 13.09 13.200000000000001 12.99 13.06 12.015200055175532 351486.0 0.0 0.0 True
461 2023-10-31 00:00:00+00:00 13.01 13.3 13.0 13.05 12.005999432918136 380834.0 0.0 0.0 True
462 2023-11-01 00:00:00+00:00 12.950000000000001 13.120000000000001 12.77843994140625 13.02 11.978399814038019 199402.0 0.0 0.0 True
463 2023-11-02 00:00:00+00:00 13.1 13.46 13.040000000000001 13.34 12.272799495246051 414055.0 0.0 0.0 True
464 2023-11-03 00:00:00+00:00 13.6 14.415000000000001 13.52384033203125 14.0 12.880000102176911 348357.0 0.0 0.0 True
465 2023-11-06 00:00:00+00:00 14.13 14.48 13.530000000000001 13.66 12.56720030040012 95127.0 0.0 0.0 True
466 2023-11-07 00:00:00+00:00 13.5 13.93 13.5 13.84 12.732800261572894 164937.0 0.0 0.0 True
467 2023-11-08 00:00:00+00:00 13.74 14.0456005859375 13.69 13.8 12.696000020435381 275526.0 0.0 0.0 True
468 2023-11-09 00:00:00+00:00 13.950000000000001 14.19 13.71550048828125 13.85 12.741999759884255 308199.0 0.0 0.0 True
469 2023-11-10 00:00:00+00:00 13.73 13.834399414062501 13.22 13.620000000000001 12.530400059262607 211940.0 0.0 0.0 True
470 2023-11-13 00:00:00+00:00 13.5 13.72 13.4 13.55 12.466000199244979 206951.0 0.0 0.0 True
471 2023-11-14 00:00:00+00:00 13.5 14.41 13.42 14.14 13.008799822212172 714971.0 0.0 0.0 True
472 2023-11-15 00:00:00+00:00 14.290000000000001 14.99 14.030000000000001 14.52 13.358399865126476 430958.0 0.0 0.0 True
473 2023-11-16 00:00:00+00:00 14.08 14.505 14.08 14.23 13.091599802798559 193252.0 0.0 0.0 True
474 2023-11-17 00:00:00+00:00 14.11 14.99 14.11 14.82 13.63439942576575 474070.0 0.0 0.0 True
475 2023-11-20 00:00:00+00:00 14.77 15.120000000000001 14.77 14.98 13.781600390315806 127160.0 0.0 0.0 True
476 2023-11-21 00:00:00+00:00 14.98 15.31 14.85 14.88 13.689599787472021 312023.0 0.0 0.0 True
477 2023-11-22 00:00:00+00:00 14.84 15.19 14.8 14.94 13.744800149178293 93813.0 0.0 0.0 True
478 2023-11-23 00:00:00+00:00 14.96 15.055 14.67 14.88 13.689599787472021 89248.0 0.0 0.0 True
479 2023-11-24 00:00:00+00:00 14.76 14.9 14.67 14.85 13.662000168591906 118893.0 0.0 0.0 True
480 2023-11-27 00:00:00+00:00 14.530000000000001 14.86 13.98 13.98 12.861599981608155 129900.0 0.0 0.0 True
481 2023-11-28 00:00:00+00:00 13.84 14.14 13.19 13.34 12.272799495246051 377366.0 0.0 0.0 True
482 2023-11-29 00:00:00+00:00 13.200000000000001 14.35 13.200000000000001 13.950000000000001 12.834000362728037 471577.0 0.0 0.0 True
483 2023-11-30 00:00:00+00:00 13.8 14.11800048828125 13.44 13.68 12.585600420968879 348127.0 0.0 0.0 True
484 2023-12-01 00:00:00+00:00 13.700000000000001 13.84 13.576400146484374 13.73 12.631600160417753 352771.0 0.0 0.0 True
485 2023-12-04 00:00:00+00:00 14.0 14.0 13.120000000000001 13.16 12.107199534073278 104065.0 0.0 0.0 True
486 2023-12-05 00:00:00+00:00 13.07 13.200000000000001 12.6 13.0 11.959999693469262 303748.0 0.0 0.0 True
487 2023-12-06 00:00:00+00:00 12.9 13.26 12.9 13.02 11.978399814038019 681974.0 0.0 0.0 True
488 2023-12-07 00:00:00+00:00 13.4 13.4 12.56 12.82 11.794399732296489 193151.0 0.0 0.0 True
489 2023-12-08 00:00:00+00:00 12.85 12.98 12.64 12.76 11.73919937059022 169002.0 0.0 0.0 True
490 2023-12-11 00:00:00+00:00 12.700000000000001 13.530000000000001 12.700000000000001 13.36 12.291199615814808 316496.0 0.0 0.0 True
491 2023-12-12 00:00:00+00:00 13.33 13.36 12.948399658203126 13.26 12.199200136917062 279752.0 0.0 0.0 True
492 2023-12-13 00:00:00+00:00 13.4 13.48 13.16 13.41 12.337199355263682 223452.0 0.0 0.0 True
493 2023-12-14 00:00:00+00:00 13.8 14.59 13.74 14.3 13.155999662816189 258358.0 0.0 0.0 True
494 2023-12-15 00:00:00+00:00 13.71 14.31 13.71 14.13 12.999600323900811 433550.0 0.0 0.0 True
495 2023-12-18 00:00:00+00:00 14.38 15.33740966796875 13.89 15.290000000000001 14.06679944926644 256957.0 0.0 0.0 True
496 2023-12-19 00:00:00+00:00 15.290000000000001 15.700000000000001 15.040000000000001 15.46 14.223199912127853 152997.0 0.0 0.0 True
497 2023-12-20 00:00:00+00:00 15.75 15.92 15.33 15.83 14.563599332784761 258981.0 0.0 0.0 True
498 2023-12-21 00:00:00+00:00 15.73 16.03 15.34 16.02 14.73839991621493 160788.0 0.0 0.0 True
499 2023-12-22 00:00:00+00:00 16.0 16.543089599609374 15.73 16.35 15.042000219680359 183509.0 0.0 0.0 True
500 2023-12-27 00:00:00+00:00 16.1 16.95 16.0 16.69 15.354800021457152 332319.0 0.0 0.0 True
501 2023-12-28 00:00:00+00:00 16.29 16.95 16.0 16.6 15.272000040870765 129658.0 0.0 0.0 True
502 2023-12-29 00:00:00+00:00 16.66 16.77678955078125 16.606290283203126 16.62 15.29040016143952 54474.0 0.0 0.0 True
503 2024-01-02 00:00:00+00:00 16.9 16.93 15.950000000000001 15.98 14.701599675077418 433331.0 0.0 0.0 True
504 2024-01-03 00:00:00+00:00 16.45 16.45 15.583499755859375 15.8 14.535999713904644 212305.0 0.0 0.0 True
505 2024-01-04 00:00:00+00:00 16.18 16.2 15.32 15.5 14.260000153265366 145849.0 0.0 0.0 True
506 2024-01-05 00:00:00+00:00 15.43 15.63 14.84 15.34 14.112800312661351 178331.0 0.0 0.0 True
507 2024-01-08 00:00:00+00:00 15.200000000000001 15.88 15.08 15.3 14.076000071523838 93619.0 0.0 0.0 True
508 2024-01-09 00:00:00+00:00 15.450000000000001 15.32 15.21 15.280000000000001 14.05759995095508 236053.0 0.0 0.0 True
509 2024-01-10 00:00:00+00:00 15.21 15.51 15.120000000000001 15.16 13.947200351488577 203338.0 0.0 0.0 True
510 2024-01-11 00:00:00+00:00 15.21 15.44 14.73 14.73 13.551599445179363 128350.0 0.0 0.0 True
511 2024-01-12 00:00:00+00:00 14.81 15.3 14.81 15.280000000000001 14.05759995095508 126422.0 0.0 0.0 True
512 2024-01-15 00:00:00+00:00 15.085 15.32 14.86 14.86 13.671199666903265 86831.0 0.0 0.0 True
513 2024-01-16 00:00:00+00:00 15.08 15.66 14.91 15.39 14.158800052110225 253055.0 0.0 0.0 True
514 2024-01-17 00:00:00+00:00 15.040000000000001 15.5 14.450000000000001 14.540000000000001 13.37679998569523 114336.0 0.0 0.0 True
515 2024-01-18 00:00:00+00:00 14.9 15.22 14.59 15.22 14.002399589248812 175262.0 0.0 0.0 True
516 2024-01-19 00:00:00+00:00 15.450000000000001 15.450000000000001 14.89 14.89 13.698800409729419 93241.0 0.0 0.0 True
517 2024-01-22 00:00:00+00:00 15.11 15.15 14.835 15.05 13.846000250333434 92117.0 0.0 0.0 True
518 2024-01-23 00:00:00+00:00 14.51 15.63 14.51 15.3 14.076000071523838 96389.0 0.0 0.0 True
519 2024-01-24 00:00:00+00:00 15.530000000000001 15.74 15.200000000000001 15.74 14.480799352198373 278489.0 0.0 0.0 True
520 2024-01-25 00:00:00+00:00 15.32 15.84550048828125 15.030000000000001 15.55 14.30599989271424 476735.0 0.0 0.0 True
521 2024-01-26 00:00:00+00:00 15.66 16.11 15.26 15.99 14.710800297334815 417225.0 0.0 0.0 True
522 2024-01-29 00:00:00+00:00 15.91 16.240000000000002 15.69 16.240000000000002 14.940800118525216 112434.0 0.0 0.0 True
523 2024-01-30 00:00:00+00:00 16.1 16.740000000000002 16.080000000000002 16.65 15.317999780319637 156730.0 0.0 0.0 True
524 2024-01-31 00:00:00+00:00 15.99 16.84 15.99 16.6 15.272000040870765 249055.0 0.0 0.0 True
525 2024-02-01 00:00:00+00:00 16.55 16.89 16.44 16.78 15.437600002043538 230759.0 0.0 0.0 True
526 2024-02-02 00:00:00+00:00 16.69 17.0 16.46 16.46 15.143200320835506 170565.0 0.0 0.0 True
527 2024-02-05 00:00:00+00:00 16.26 16.79 16.175 16.31 15.005199978542848 130266.0 0.0 0.0 True
528 2024-02-06 00:00:00+00:00 16.4 17.07 16.38 16.78 15.437600002043538 391036.0 0.0 0.0 True
529 2024-02-07 00:00:00+00:00 16.7 17.16 16.55 17.09 15.72280018494021 215847.0 0.0 0.0 True
530 2024-02-08 00:00:00+00:00 17.150000000000002 17.91 17.150000000000002 17.44 16.04479948502836 450151.0 0.0 0.0 True
531 2024-02-09 00:00:00+00:00 17.46 17.80198974609375 17.07 17.18 15.805600165526597 242803.0 0.0 0.0 True
532 2024-02-12 00:00:00+00:00 17.25 17.84 16.96 16.990000000000002 15.630799582096428 563881.0 0.0 0.0 True
533 2024-02-13 00:00:00+00:00 16.85 16.885140380859376 16.330000000000002 16.51 15.189200060284378 68119.0 0.0 0.0 True
534 2024-02-14 00:00:00+00:00 16.37 17.17 16.18530029296875 17.03 15.667599823233939 98220.0 0.0 0.0 True
535 2024-02-15 00:00:00+00:00 16.51 17.39 16.51 16.96 15.603199963216312 102797.0 0.0 0.0 True
536 2024-02-16 00:00:00+00:00 16.990000000000002 17.330000000000002 16.990000000000002 17.07 15.704400064371454 47249.0 0.0 0.0 True
537 2024-02-19 00:00:00+00:00 17.07 17.271500244140626 16.82 17.14 15.768799924389086 465791.0 0.0 0.0 True
538 2024-02-20 00:00:00+00:00 17.0 17.0 16.12 16.12 14.830399395112678 117840.0 0.0 0.0 True
539 2024-02-21 00:00:00+00:00 16.44 16.52 16.09 16.18 14.885599756818946 616655.0 0.0 0.0 True
540 2024-02-22 00:00:00+00:00 15.99 16.69 15.5 16.59 15.262799418613366 71029.0 0.0 0.0 True
541 2024-02-23 00:00:00+00:00 16.61 16.66 15.9 16.2 14.903999877387704 616927.0 0.0 0.0 True
542 2024-02-26 00:00:00+00:00 15.9 16.24449951171875 15.56 15.700000000000001 14.444000235006898 125089.0 0.0 0.0 True
543 2024-02-27 00:00:00+00:00 15.5 15.88 15.34 15.57 14.324400013282999 506414.0 0.0 0.0 True
544 2024-02-28 00:00:00+00:00 15.0 15.6 13.540000000000001 14.46 13.303199503420204 1617451.0 0.0 0.0 True
545 2024-02-29 00:00:00+00:00 14.700000000000001 14.99 14.27 14.34 13.192799903953702 131744.0 0.0 0.0 True
546 2024-03-01 00:00:00+00:00 14.52 14.83 14.0 14.68 13.505599705730491 710016.0 0.0 0.0 True
547 2024-03-04 00:00:00+00:00 14.3 14.790000000000001 14.3 14.450000000000001 13.294000005108844 128631.0 0.0 0.0 True
548 2024-03-05 00:00:00+00:00 14.43 14.5 14.13 14.3 13.155999662816189 226847.0 0.0 0.0 True
549 2024-03-06 00:00:00+00:00 14.35 14.6 14.13 14.13 12.999600323900811 245345.0 0.0 0.0 True
550 2024-03-07 00:00:00+00:00 14.36 14.36 13.55 13.55 12.466000199244979 169908.0 0.0 0.0 True
551 2024-03-08 00:00:00+00:00 13.55 13.84 13.26 13.3 12.236000378054575 591778.0 0.0 0.0 True
552 2024-03-11 00:00:00+00:00 13.450000000000001 13.6 13.15 13.25 12.189999514659664 537344.0 0.0 0.0 True
553 2024-03-12 00:00:00+00:00 13.0 13.74 13.0 13.700000000000001 12.603999417591599 652597.0 0.0 0.0 True
554 2024-03-13 00:00:00+00:00 14.5 15.65 13.521639404296875 13.72 12.622399538160355 1195682.0 0.0 0.0 True
555 2024-03-14 00:00:00+00:00 13.82 14.59 13.34 14.32 13.174399783384944 1126694.0 0.0 0.0 True
556 2024-03-15 00:00:00+00:00 14.3 14.56 14.02 14.26 13.119199421678676 1525658.0 0.0 0.0 True
557 2024-03-18 00:00:00+00:00 14.34 14.620000000000001 14.02 14.24 13.100800425055956 462513.0 0.0 0.0 True
558 2024-03-19 00:00:00+00:00 14.24 14.48 13.81 13.81 12.705199518746742 496898.0 0.0 0.0 True
559 2024-03-20 00:00:00+00:00 13.83 14.02 12.780000000000001 13.33 12.263599996934692 340715.0 0.0 0.0 True
560 2024-03-21 00:00:00+00:00 13.48 13.809000244140625 13.23 13.34 12.272799495246051 276189.0 0.0 0.0 True
561 2024-03-22 00:00:00+00:00 13.44 13.58 13.120000000000001 13.13 12.079599915193162 477630.0 0.0 0.0 True
562 2024-03-25 00:00:00+00:00 13.5 13.5 12.64 12.64 11.628799771123717 437124.0 0.0 0.0 True
563 2024-03-26 00:00:00+00:00 12.64 13.0 12.410699462890625 12.56 11.555200412794726 1102700.0 0.0 0.0 True
564 2024-03-27 00:00:00+00:00 12.5 12.77 12.38 12.58 11.573599409417445 1158042.0 0.0 0.0 True
565 2024-03-28 00:00:00+00:00 12.68 13.32 12.455 13.02 11.978399814038019 672275.0 0.0 0.0 True
566 2024-04-02 00:00:00+01:00 12.9 13.13 12.38 12.46 11.463199809950943 420287.0 0.0 0.0 True
567 2024-04-03 00:00:00+01:00 12.280000000000001 12.49 11.99 12.22 11.2423994870719 460217.0 0.0 0.0 True
568 2024-04-04 00:00:00+01:00 12.200000000000001 12.17 12.0 12.0 11.040000408707648 293870.0 0.0 0.0 True
569 2024-04-05 00:00:00+01:00 11.98 12.037879638671875 11.6 11.65 10.717999984673462 395059.0 0.0 0.0 True
570 2024-04-08 00:00:00+01:00 11.61 12.120000000000001 11.495000000000001 12.06 11.095199646467881 810772.0 0.0 0.0 True
571 2024-04-09 00:00:00+01:00 12.0 12.15 11.790000000000001 11.91 10.957200428121261 413918.0 0.0 0.0 True
572 2024-04-10 00:00:00+01:00 11.950000000000001 12.33 11.8725 12.01 11.049199907019009 680979.0 0.0 0.0 True
573 2024-04-11 00:00:00+01:00 12.08 12.31 11.868509521484375 11.94 10.984800047001379 280220.0 0.0 0.0 True
574 2024-04-12 00:00:00+01:00 12.06 12.290000000000001 11.4 11.450000000000001 10.533999902931932 359653.0 0.0 0.0 True
575 2024-04-15 00:00:00+01:00 11.41 11.57 11.01 11.4 10.488000163483058 489256.0 0.0 0.0 True
576 2024-04-16 00:00:00+01:00 11.200000000000001 11.78 11.07 11.51 10.589200264638203 294117.0 0.0 0.0 True
577 2024-04-17 00:00:00+01:00 11.5 11.81050048828125 11.4 11.620000000000001 10.690400365793346 446216.0 0.0 0.0 True
578 2024-04-18 00:00:00+01:00 11.43 11.83 11.43 11.71 10.773200346379733 280345.0 0.0 0.0 True
579 2024-04-19 00:00:00+01:00 11.8 11.8 11.56 11.68 10.745599603553579 187448.0 0.0 0.0 True
580 2024-04-22 00:00:00+01:00 11.5 12.06 11.5 11.72 10.782399844691094 233273.0 0.0 0.0 True
581 2024-04-23 00:00:00+01:00 11.870000000000001 11.89 11.72 11.72 10.782399844691094 164436.0 0.0 0.0 True
582 2024-04-24 00:00:00+01:00 12.08 12.08 11.370000000000001 11.51 10.589200264638203 185184.0 0.0 0.0 True
583 2024-04-25 00:00:00+01:00 11.700000000000001 11.700000000000001 11.1 11.36 10.451199922345545 295818.0 0.0 0.0 True
584 2024-04-26 00:00:00+01:00 11.31 11.64 11.230880126953124 11.39 10.478799541225662 144819.0 0.0 0.0 True
585 2024-04-29 00:00:00+01:00 11.15 11.82 11.15 11.82 10.874400447534875 119071.0 0.0 0.0 True
586 2024-04-30 00:00:00+01:00 11.98 11.99 11.42 11.5 10.579999642380805 199939.0 0.0 0.0 True
587 2024-05-01 00:00:00+01:00 12.01 12.01 11.32 11.59 10.662799622967192 165171.0 0.0 0.0 True
588 2024-05-02 00:00:00+01:00 11.57 11.66 11.3 11.66 10.727199482984823 305855.0 0.0 0.0 True
589 2024-05-03 00:00:00+01:00 11.85 11.96 11.6 11.75 10.80999946357121 158727.0 0.0 0.0 True
590 2024-05-07 00:00:00+01:00 12.13 12.19 11.57 11.790000000000001 10.846799704708722 116963.0 0.0 0.0 True
591 2024-05-08 00:00:00+01:00 12.15 12.804000244140624 11.99 12.67 11.656399390003832 362985.0 0.0 0.0 True
592 2024-05-09 00:00:00+01:00 12.65 12.71 12.18 12.66 11.647199891692471 261229.0 0.0 0.0 True
593 2024-05-10 00:00:00+01:00 12.47 12.97 12.47 12.89 11.858799592314119 187666.0 0.0 0.0 True
594 2024-05-13 00:00:00+01:00 12.8 13.120000000000001 12.58 12.8 11.775999611727732 164449.0 0.0 0.0 True
595 2024-05-14 00:00:00+01:00 12.6 13.237950439453126 12.6 13.08 12.033600175744288 166908.0 0.0 0.0 True
596 2024-05-15 00:00:00+01:00 13.36 13.48 13.030000000000001 13.450000000000001 12.373999596401195 178857.0 0.0 0.0 True
597 2024-05-16 00:00:00+01:00 13.450000000000001 14.0 13.450000000000001 14.0 12.880000102176911 314200.0 0.0 0.0 True
598 2024-05-17 00:00:00+01:00 14.13 14.8 13.780000000000001 14.700000000000001 13.523999826299248 558689.0 0.0 0.0 True
599 2024-05-20 00:00:00+01:00 24.5 24.98 22.82 22.82 20.994399323588837 8292215.0 0.0 0.0 True
600 2024-05-21 00:00:00+01:00 23.02 23.44 22.400000000000002 22.56 20.755198880141037 1407097.0 0.0 0.0 True
601 2024-05-22 00:00:00+01:00 22.46 22.64 22.0 22.0 20.24 723017.0 0.0 0.0 True
602 2024-05-23 00:00:00+01:00 21.98 22.47597900390625 21.62 22.3 22.3 1522184.0 1.76 0.0 False
603 2024-05-24 00:00:00+01:00 22.240000000000002 22.3 21.68 22.14 22.14 644971.0 0.0 0.0 False
604 2024-05-28 00:00:00+01:00 22.2 22.6 22.06 22.5 22.5 311246.0 0.0 0.0 False
605 2024-05-29 00:00:00+01:00 22.48 22.6010009765625 22.16 22.3 22.3 1482854.0 0.0 0.0 False
606 2024-05-30 00:00:00+01:00 22.5 22.62 22.3 22.32 22.32 138373.0 0.0 0.0 False
607 2024-05-31 00:00:00+01:00 22.0 22.48 22.0 22.34 22.34 695505.0 0.0 0.0 False
608 2024-06-03 00:00:00+01:00 22.2 22.48 22.1 22.36 22.36 148218.0 0.0 0.0 False
609 2024-06-04 00:00:00+01:00 22.36 22.36 21.75 22.0 22.0 1289764.0 0.0 0.0 False
610 2024-06-05 00:00:00+01:00 22.36 22.36 21.8 22.02 22.02 295325.0 0.0 0.0 False
611 2024-06-06 00:00:00+01:00 22.02 22.145700683593752 21.78 22.04 22.04 463598.0 0.0 0.0 False
612 2024-06-07 00:00:00+01:00 22.1 22.2 21.740000000000002 21.98 21.98 799873.0 0.0 0.0 False
613 2024-06-10 00:00:00+01:00 21.900000000000002 22.02 21.64 21.64 21.64 588812.0 0.0 0.0 False
614 2024-06-11 00:00:00+01:00 21.84 22.1 21.400000000000002 21.42 21.42 323278.0 0.0 0.0 False
615 2024-06-12 00:00:00+01:00 21.72 21.72 21.2 21.5 21.5 961776.0 0.0 0.0 False
616 2024-06-13 00:00:00+01:00 21.7 21.7 21.0 21.36 21.36 731949.0 0.0 0.0 False
617 2024-06-14 00:00:00+01:00 21.72 22.62 21.435 22.62 22.62 1564845.0 0.0 0.0 False
618 2024-06-17 00:00:00+01:00 22.42 22.60555908203125 22.05300048828125 22.3 22.3 543001.0 0.0 0.0 False
619 2024-06-18 00:00:00+01:00 22.5 22.5 22.011999511718752 22.28 22.28 302283.0 0.0 0.0 False
620 2024-06-19 00:00:00+01:00 22.0 22.36 21.94 22.0 22.0 261639.0 0.0 0.0 False
621 2024-06-20 00:00:00+01:00 22.5 22.5 21.900000000000002 22.400000000000002 22.400000000000002 298140.0 0.0 0.0 False
622 2024-06-21 00:00:00+01:00 22.5 22.900000000000002 22.22 22.38 22.38 374718.0 0.0 0.0 False
623 2024-06-24 00:00:00+01:00 22.400000000000002 22.62 22.2 22.38 22.38 182607.0 0.0 0.0 False
624 2024-06-25 00:00:00+01:00 22.3 22.32 21.32049072265625 21.92 21.92 1156786.0 0.0 0.0 False
625 2024-06-26 00:00:00+01:00 22.0 22.0 21.44 21.740000000000002 21.740000000000002 1321707.0 0.0 0.0 False
626 2024-06-27 00:00:00+01:00 21.86 21.92 21.6 21.78 21.78 1192605.0 0.0 0.0 False
627 2024-06-28 00:00:00+01:00 23.1 23.21093994140625 22.88800048828125 23.12 23.12 5166863.0 0.0 0.0 False
628 2024-07-01 00:00:00+01:00 23.26 23.26 23.06 23.080000000000002 23.080000000000002 904708.0 0.0 0.0 False
629 2024-07-02 00:00:00+01:00 23.080000000000002 23.240000000000002 23.06 23.18 23.18 800296.0 0.0 0.0 False
630 2024-07-03 00:00:00+01:00 23.84 23.900000000000002 23.78333984375 23.900000000000002 23.900000000000002 8961383.0 0.0 0.0 False
631 2024-07-04 00:00:00+01:00 23.92 23.94 23.83340087890625 23.86 23.86 1175939.0 0.0 0.0 False
632 2024-07-05 00:00:00+01:00 23.900000000000002 23.96 23.86 23.88 23.88 969052.0 0.0 0.0 False
633 2024-07-08 00:00:00+01:00 23.88 24.060000000000002 23.88 23.88 23.88 420214.0 0.0 0.0 False
634 2024-07-09 00:00:00+01:00 23.92 23.96 23.86 23.900000000000002 23.900000000000002 1264139.0 0.0 0.0 False
635 2024-07-10 00:00:00+01:00 23.88 23.94 23.88 23.900000000000002 23.900000000000002 371085.0 0.0 0.0 False
636 2024-07-11 00:00:00+01:00 23.84 23.92 23.82 23.82 23.82 458586.0 0.0 0.0 False
637 2024-07-12 00:00:00+01:00 23.82 23.88 23.82 23.88 23.88 681277.0 0.0 0.0 False
638 2024-07-15 00:00:00+01:00 23.84 23.88 23.84 23.86 23.86 739304.0 0.0 0.0 False
639 2024-07-16 00:00:00+01:00 23.88 23.883859863281252 23.84 23.86 23.86 1130090.0 0.0 0.0 False
640 2024-07-17 00:00:00+01:00 23.88 23.88 23.86 23.86 23.86 755831.0 0.0 0.0 False
641 2024-07-18 00:00:00+01:00 23.88 23.900000000000002 23.86 23.900000000000002 23.900000000000002 960170.0 0.0 0.0 False
642 2024-07-19 00:00:00+01:00 23.900000000000002 23.94 23.86 23.94 23.94 195271.0 0.0 0.0 False
643 2024-07-22 00:00:00+01:00 23.88 23.92 23.8 23.84 23.84 3036352.0 0.0 0.0 False
644 2024-07-23 00:00:00+01:00 23.82 23.86 23.8 23.82 23.82 1083480.0 0.0 0.0 False
645 2024-07-24 00:00:00+01:00 23.84 23.88 23.8 23.8 23.8 1445489.0 0.0 0.0 False
646 2024-07-25 00:00:00+01:00 23.84 23.900000000000002 23.8 23.8 23.8 582850.0 0.0 0.0 False
647 2024-07-26 00:00:00+01:00 23.96 23.96 23.8 23.8 23.8 675264.0 0.0 0.0 False
648 2024-07-29 00:00:00+01:00 23.84 23.88 23.5783203125 23.84 23.84 1403210.0 0.0 0.0 False
649 2024-07-30 00:00:00+01:00 23.84 23.88 23.82 23.84 23.84 1286201.0 0.0 0.0 False
650 2024-07-31 00:00:00+01:00 23.86 23.88 23.82 23.88 23.88 308556.0 0.0 0.0 False
651 2024-08-01 00:00:00+01:00 23.900000000000002 23.900000000000002 23.84 23.84 23.84 139383.0 0.0 0.0 False
652 2024-08-02 00:00:00+01:00 24.2 24.2 23.84 23.84 23.84 402227.0 0.0 0.0 False
653 2024-08-05 00:00:00+01:00 23.84 23.88 23.8 23.88 23.88 2543161.0 0.0 0.0 False
654 2024-08-06 00:00:00+01:00 23.900000000000002 24.060000000000002 23.82 23.88 23.88 805371.0 0.0 0.0 False
655 2024-08-07 00:00:00+01:00 23.900000000000002 23.92 23.84 23.86 23.86 1753790.0 0.0 0.0 False
656 2024-08-08 00:00:00+01:00 23.86 23.92 23.86 23.88 23.88 191998.0 0.0 0.0 False
657 2024-08-09 00:00:00+01:00 23.900000000000002 23.98 23.86 23.98 23.98 289215.0 0.0 0.0 False
658 2024-08-12 00:00:00+01:00 23.96 24.0 23.92 24.0 24.0 513766.0 0.0 0.0 False
659 2024-08-13 00:00:00+01:00 24.0 24.04 23.94 24.04 24.04 185320.0 0.0 0.0 False
660 2024-08-14 00:00:00+01:00 24.0 24.3 23.96 24.3 24.3 300442.0 0.0 0.0 False
661 2024-08-15 00:00:00+01:00 24.1 24.12 24.0 24.02 24.02 222740.0 0.0 0.0 False
662 2024-08-16 00:00:00+01:00 24.1 24.1 23.98 23.98 23.98 255770.0 0.0 0.0 False
663 2024-08-19 00:00:00+01:00 24.080000000000002 24.080000000000002 23.96 24.0 24.0 229725.0 0.0 0.0 False
664 2024-08-20 00:00:00+01:00 24.0 24.04 23.98 24.0 24.0 261084.0 0.0 0.0 False
665 2024-08-21 00:00:00+01:00 24.080000000000002 24.080000000000002 23.98 24.060000000000002 24.060000000000002 1086506.0 0.0 0.0 False
666 2024-08-22 00:00:00+01:00 24.080000000000002 24.080000000000002 24.02 24.060000000000002 24.060000000000002 163317.0 0.0 0.0 False
667 2024-08-23 00:00:00+01:00 24.080000000000002 24.080000000000002 24.0 24.080000000000002 24.080000000000002 202364.0 0.0 0.0 False
668 2024-08-27 00:00:00+01:00 24.060000000000002 24.18 24.02 24.060000000000002 24.060000000000002 245203.0 0.0 0.0 False
669 2024-08-28 00:00:00+01:00 24.02 24.12 24.02 24.04 24.04 349423.0 0.0 0.0 False
670 2024-08-29 00:00:00+01:00 24.04 24.12 24.04 24.060000000000002 24.060000000000002 187436.0 0.0 0.0 False
671 2024-08-30 00:00:00+01:00 24.16 24.3 24.02 24.26 24.26 1493472.0 0.0 0.0 False
672 2024-09-02 00:00:00+01:00 24.240000000000002 24.28 24.22 24.240000000000002 24.240000000000002 397048.0 0.0 0.0 False
673 2024-09-03 00:00:00+01:00 24.240000000000002 24.28 24.22 24.22 24.22 526456.0 0.0 0.0 False
674 2024-09-04 00:00:00+01:00 24.240000000000002 24.33919921875 24.22 24.240000000000002 24.240000000000002 830622.0 0.0 0.0 False
675 2024-09-05 00:00:00+01:00 24.26 24.28 24.240000000000002 24.240000000000002 24.240000000000002 2561655.0 0.0 0.0 False
676 2024-09-06 00:00:00+01:00 24.240000000000002 24.3 24.240000000000002 24.240000000000002 24.240000000000002 2621382.0 0.0 0.0 False
677 2024-09-09 00:00:00+01:00 24.240000000000002 24.333601074218752 24.240000000000002 24.26 24.26 946993.0 0.0 0.0 False
678 2024-09-10 00:00:00+01:00 24.28 24.38 24.240000000000002 24.28 24.28 1955248.0 0.0 0.0 False
679 2024-09-11 00:00:00+01:00 24.28 24.3 24.255720214843752 24.26 24.26 3357431.0 0.0 0.0 False
680 2024-09-12 00:00:00+01:00 24.28 24.32 24.26 24.3 24.3 1396090.0 0.0 0.0 False
681 2024-09-13 00:00:00+01:00 24.26 24.3 24.26 24.26 24.26 539753.0 0.0 0.0 False
682 2024-09-16 00:00:00+01:00 24.28 24.3 24.26 24.28 24.28 3548116.0 0.0 0.0 False
683 2024-09-17 00:00:00+01:00 24.3 24.3143994140625 24.28 24.28 24.28 6116775.0 0.0 0.0 False
684 2024-09-18 00:00:00+01:00 24.28 24.3 24.26 24.28 24.28 1315109.0 0.0 0.0 False
685 2024-09-19 00:00:00+01:00 24.28 24.307199707031252 24.28 24.28 24.28 3447049.0 0.0 0.0 False
686 2024-09-20 00:00:00+01:00 24.28 24.301000976562502 24.28 24.3 24.3 949712.0 0.0 0.0 False
687 2024-09-23 00:00:00+01:00 24.3 24.34 24.28 24.28 24.28 1165867.0 0.0 0.0 False
688 2024-09-24 00:00:00+01:00 24.3 24.34 24.29 24.3 24.3 417334.0 0.0 0.0 False
689 2024-09-25 00:00:00+01:00 24.32 24.356000976562502 24.28 24.32 24.32 1311755.0 0.0 0.0 False
690 2024-09-26 00:00:00+01:00 24.3 24.36 24.3 24.32 24.32 2165924.0 0.0 0.0 False
691 2024-09-27 00:00:00+01:00 24.34 24.385 24.32 24.34 24.34 191057.0 0.0 0.0 False
692 2024-09-30 00:00:00+01:00 24.36 24.36 24.3 24.36 24.36 418219.0 0.0 0.0 False
693 2024-10-01 00:00:00+01:00 24.36 24.38 24.34 24.34 24.34 834978.0 0.0 0.0 False
694 2024-10-02 00:00:00+01:00 24.34 24.38 24.34 24.36 24.36 321113.0 0.0 0.0 False
695 2024-10-03 00:00:00+01:00 24.36 24.400000000000002 24.36 24.36 24.36 119311.0 0.0 0.0 False
696 2024-10-04 00:00:00+01:00 24.400000000000002 24.400000000000002 24.355380859375 24.38 24.38 408506.0 0.0 0.0 False
697 2024-10-07 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.400000000000002 24.400000000000002 934866.0 0.0 0.0 False
698 2024-10-08 00:00:00+01:00 24.38 24.400000000000002 24.36 24.38 24.38 351909.0 0.0 0.0 False
699 2024-10-09 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.36 24.36 373356.0 0.0 0.0 False
700 2024-10-10 00:00:00+01:00 24.36 24.400000000000002 24.36 24.38 24.38 566301.0 0.0 0.0 False
701 2024-10-11 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.38 24.38 88197.0 0.0 0.0 False
702 2024-10-14 00:00:00+01:00 24.42 24.42 24.36 24.36 24.36 2859472.0 0.0 0.0 False
703 2024-10-15 00:00:00+01:00 24.38 24.42 24.38 24.400000000000002 24.400000000000002 1387949.0 0.0 0.0 False
704 2024-10-16 00:00:00+01:00 24.42 24.42 24.38 24.38 24.38 518018.0 0.0 0.0 False
705 2024-10-17 00:00:00+01:00 24.42 24.42 24.378291015625 24.38 24.38 1199504.0 0.0 0.0 False
706 2024-10-18 00:00:00+01:00 24.400000000000002 24.52 24.38 24.400000000000002 24.400000000000002 612904.0 0.0 0.0 False
707 2024-10-21 00:00:00+01:00 24.42 24.46 24.42 24.44 24.44 937999.0 0.0 0.0 False
708 2024-10-22 00:00:00+01:00 24.46 24.48 24.44 24.46 24.46 9890907.0 0.0 0.0 False
709 2024-10-23 00:00:00+01:00 24.46 24.46 24.46 24.46 24.46 0.0 0.0 0.0 False
710 2024-10-24 00:00:00+01:00 0.0 0.0 False
711 2024-10-25 00:00:00+01:00 0.0 0.0 False
712 2024-10-28 00:00:00+00:00 0.0 0.0 False
713 2024-10-29 00:00:00+00:00 0.0 0.0 False
714 2024-10-30 00:00:00+00:00 0.0 0.0 False
715 2024-10-31 00:00:00+00:00 0.0 0.0 False
716 2024-11-01 00:00:00+00:00 0.0 0.0 False
717 2024-11-04 00:00:00+00:00 0.0 0.0 False
718 2024-11-05 00:00:00+00:00 0.0 0.0 False
719 2024-11-06 00:00:00+00:00 0.0 0.0 False
720 2024-11-07 00:00:00+00:00 0.0 0.0 False
721 2024-11-08 00:00:00+00:00 0.0 0.0 False
722 2024-11-11 00:00:00+00:00 0.0 0.0 False
723 2024-11-12 00:00:00+00:00 0.0 0.0 False
724 2024-11-13 00:00:00+00:00 0.0 0.0 False
725 2024-11-14 00:00:00+00:00 0.0 0.0 False

View File

@@ -1,725 +0,0 @@
Datetime,Open,High,Low,Close,Adj Close,Volume,Dividends,Stock Splits
2022-01-04 00:00:00+00:00,29.46,29.98,28.52,28.66,28.56770263671875,169521.0,0.0,0.0
2022-01-05 00:00:00+00:00,30.0,30.0,28.46,28.900000000000002,28.806928710937502,128698.0,0.0,0.0
2022-01-06 00:00:00+00:00,28.2,28.560000000000002,27.5,27.82,27.73040771484375,374659.0,0.0,0.0
2022-01-07 00:00:00+00:00,28.3,28.3,27.400000000000002,27.46,27.37156982421875,80410.0,0.0,0.0
2022-01-10 00:00:00+00:00,28.16,28.240000000000002,26.2,26.580000000000002,26.494404296875,135881.0,0.0,0.0
2022-01-11 00:00:00+00:00,25.92,27.060000000000002,25.92,26.72,26.6339501953125,71414.0,0.0,0.0
2022-01-12 00:00:00+00:00,26.72,26.96,26.060000000000002,26.8,26.713693847656252,68611.0,0.0,0.0
2022-01-13 00:00:00+00:00,26.72,27.3239990234375,26.6,27.2,27.11240478515625,155917.0,0.0,0.0
2022-01-14 00:00:00+00:00,27.52,27.52,26.36,26.560000000000002,26.474470214843752,66402.0,0.0,0.0
2022-01-17 00:00:00+00:00,27.02,27.22,26.28,27.22,27.13234619140625,60092.0,0.0,0.0
2022-01-18 00:00:00+00:00,27.66,27.66,26.0,26.86,26.773500976562502,128385.0,0.0,0.0
2022-01-19 00:00:00+00:00,27.0,27.46,26.7,27.2,27.11240478515625,75141.0,0.0,0.0
2022-01-20 00:00:00+00:00,26.900000000000002,27.7,26.81172119140625,27.54,27.45131103515625,99304.0,0.0,0.0
2022-01-21 00:00:00+00:00,27.26,27.88,26.214208984375002,26.38,26.295048828125,123570.0,0.0,0.0
2022-01-24 00:00:00+00:00,26.14,26.261599121093752,24.72,24.88,24.799875488281252,148794.0,0.0,0.0
2022-01-25 00:00:00+00:00,24.92,25.2,24.580000000000002,24.580000000000002,24.5008447265625,94318.0,0.0,0.0
2022-01-26 00:00:00+00:00,25.52,25.52,24.400000000000002,24.66,24.58058349609375,265198.0,0.0,0.0
2022-01-27 00:00:00+00:00,24.66,25.12669921875,24.400000000000002,24.82,24.74007080078125,248811.0,0.0,0.0
2022-01-28 00:00:00+00:00,24.7,24.88,24.1,24.32,24.2416845703125,146209.0,0.0,0.0
2022-01-31 00:00:00+00:00,25.3,25.46,24.3,25.2,25.11884765625,495745.0,0.0,0.0
2022-02-01 00:00:00+00:00,25.580000000000002,26.78,25.580000000000002,26.7,26.614016113281252,426366.0,0.0,0.0
2022-02-02 00:00:00+00:00,25.5,27.28,25.5,26.38,26.295048828125,134118.0,0.0,0.0
2022-02-03 00:00:00+00:00,26.28,26.3639990234375,24.82,24.88,24.799875488281252,168782.0,0.0,0.0
2022-02-04 00:00:00+00:00,24.6,25.14,24.400000000000002,24.76,24.680263671875,110543.0,0.0,0.0
2022-02-07 00:00:00+00:00,25.04,25.04,24.54,24.54,24.460974121093752,163853.0,0.0,0.0
2022-02-08 00:00:00+00:00,24.64,24.64,23.8,24.12,24.04232421875,146007.0,0.0,0.0
2022-02-09 00:00:00+00:00,24.5,24.98,24.3,24.7,24.62045654296875,130747.0,0.0,0.0
2022-02-10 00:00:00+00:00,24.52,24.7,24.080000000000002,24.46,24.38123046875,113862.0,0.0,0.0
2022-02-11 00:00:00+00:00,24.5,24.72,24.1,24.42,24.34135986328125,87108.0,0.0,0.0
2022-02-14 00:00:00+00:00,24.42,24.42,23.34,23.98,23.90277587890625,79188.0,0.0,0.0
2022-02-15 00:00:00+00:00,23.86,24.560000000000002,23.54,24.22,24.142001953125,175846.0,0.0,0.0
2022-02-16 00:00:00+00:00,24.580000000000002,24.580000000000002,23.76,23.98,23.90277587890625,62392.0,0.0,0.0
2022-02-17 00:00:00+00:00,24.78,24.78,23.86,23.86,23.7831640625,111791.0,0.0,0.0
2022-02-18 00:00:00+00:00,23.84,23.94760009765625,23.36,23.48,23.404384765625,61467.0,0.0,0.0
2022-02-21 00:00:00+00:00,23.46,23.64919921875,22.82,23.080000000000002,23.00567138671875,71820.0,0.0,0.0
2022-02-22 00:00:00+00:00,24.18,24.18,22.54,23.38,23.30470703125,75721.0,0.0,0.0
2022-02-23 00:00:00+00:00,23.78,24.04,23.02,23.02,22.945869140625,122317.0,0.0,0.0
2022-02-24 00:00:00+00:00,23.3,23.3,21.96,22.52,22.44747802734375,241118.0,0.0,0.0
2022-02-25 00:00:00+00:00,23.0,23.56,22.66,23.32,23.24490234375,147148.0,0.0,0.0
2022-02-28 00:00:00+00:00,22.36,24.14,22.36,24.14,24.062258300781252,226698.0,0.0,0.0
2022-03-01 00:00:00+00:00,24.080000000000002,24.22,23.5,23.5,23.42432373046875,218356.0,0.0,0.0
2022-03-02 00:00:00+00:00,23.7,23.900000000000002,23.26,23.62,23.54393798828125,87219.0,0.0,0.0
2022-03-03 00:00:00+00:00,23.26,23.8,22.14,22.14,22.068701171875002,137377.0,0.0,0.0
2022-03-04 00:00:00+00:00,22.3,22.92,20.740000000000002,20.740000000000002,20.67321044921875,173972.0,0.0,0.0
2022-03-07 00:00:00+00:00,20.740000000000002,21.14,19.5,20.3,20.234625244140627,282380.0,0.0,0.0
2022-03-08 00:00:00+00:00,20.3,20.82,19.52,19.52,19.457138671875,268763.0,0.0,0.0
2022-03-09 00:00:00+00:00,20.0,21.02,19.73,21.02,20.9523095703125,624876.0,0.0,0.0
2022-03-10 00:00:00+00:00,21.22,21.22,20.38,20.44,20.374176025390625,266261.0,0.0,0.0
2022-03-11 00:00:00+00:00,20.66,21.52,20.46,20.900000000000002,20.8326953125,139879.0,0.0,0.0
2022-03-14 00:00:00+00:00,21.5,21.88,21.1,21.580000000000002,21.51050537109375,87051.0,0.0,0.0
2022-03-15 00:00:00+00:00,20.72,21.48,20.72,20.96,20.89250244140625,86783.0,0.0,0.0
2022-03-16 00:00:00+00:00,21.580000000000002,22.72,21.36,22.48,22.40760986328125,118783.0,0.0,0.0
2022-03-17 00:00:00+00:00,21.68,22.7,21.68,22.46,22.387670898437502,86717.0,0.0,0.0
2022-03-18 00:00:00+00:00,21.76,23.32,21.76,23.18,23.10535400390625,147084.0,0.0,0.0
2022-03-21 00:00:00+00:00,23.400000000000002,23.400000000000002,22.26,22.62,22.547155761718752,290436.0,0.0,0.0
2022-03-22 00:00:00+00:00,23.22,23.22,21.94,22.0,21.929150390625,89172.0,0.0,0.0
2022-03-23 00:00:00+00:00,21.68,22.7,21.68,22.56,22.487348632812502,83842.0,0.0,0.0
2022-03-24 00:00:00+00:00,21.42,22.64,21.400000000000002,22.400000000000002,22.3278662109375,121267.0,0.0,0.0
2022-03-25 00:00:00+00:00,22.5,23.1,21.92,22.66,22.5870263671875,192618.0,0.0,0.0
2022-03-28 00:00:00+01:00,22.14,23.32,22.14,22.86,22.78638427734375,109333.0,0.0,0.0
2022-03-29 00:00:00+01:00,23.02,23.511201171875,22.8360009765625,23.38,23.30470703125,85895.0,0.0,0.0
2022-03-30 00:00:00+01:00,23.82,25.740000000000002,23.82,25.740000000000002,25.657109375,571137.0,0.0,0.0
2022-03-31 00:00:00+01:00,25.68,26.2,25.0,26.2,26.11562255859375,458165.0,0.0,0.0
2022-04-01 00:00:00+01:00,26.32,26.34,25.580000000000002,25.580000000000002,25.497622070312502,206616.0,0.0,0.0
2022-04-04 00:00:00+01:00,26.400000000000002,26.400000000000002,25.2,25.92,25.836530761718752,150039.0,0.0,0.0
2022-04-05 00:00:00+01:00,25.94,26.92,25.900000000000002,26.46,26.3747900390625,2241719.0,0.0,0.0
2022-04-06 00:00:00+01:00,26.62,26.98,26.32,26.52,26.43459716796875,178598.0,0.0,0.0
2022-04-07 00:00:00+01:00,26.86,27.62,26.44,27.18,27.092470703125002,191304.0,0.0,0.0
2022-04-08 00:00:00+01:00,27.52,27.72489990234375,26.52,26.62,26.534277343750002,131026.0,0.0,0.0
2022-04-11 00:00:00+01:00,26.560000000000002,26.692480468750002,25.88,26.0,25.91627197265625,106445.0,0.0,0.0
2022-04-12 00:00:00+01:00,26.0,26.580000000000002,26.0,26.28,26.19536865234375,134222.0,0.0,0.0
2022-04-13 00:00:00+01:00,26.62,26.62,25.92,26.3,26.21530517578125,151567.0,0.0,0.0
2022-04-14 00:00:00+01:00,26.240000000000002,26.52,25.79534912109375,26.0,25.91627197265625,203268.0,0.0,0.0
2022-04-19 00:00:00+01:00,25.8,26.060000000000002,24.96,25.54,25.45775146484375,202763.0,0.0,0.0
2022-04-20 00:00:00+01:00,25.740000000000002,25.740000000000002,25.12,25.12,25.039106445312502,133972.0,0.0,0.0
2022-04-21 00:00:00+01:00,25.22,25.62,25.1,25.2,25.11884765625,134423.0,0.0,0.0
2022-04-22 00:00:00+01:00,24.62,25.38,24.62,25.02,24.93942626953125,148749.0,0.0,0.0
2022-04-25 00:00:00+01:00,24.38,24.86,24.18,24.400000000000002,24.32142333984375,283575.0,0.0,0.0
2022-04-26 00:00:00+01:00,24.3,24.82,24.22,24.3,24.221743164062502,271554.0,0.0,0.0
2022-04-27 00:00:00+01:00,24.0,24.94,23.2,23.46,23.38445068359375,147954.0,0.0,0.0
2022-04-28 00:00:00+01:00,23.48,23.90139892578125,23.42,23.76,23.68348388671875,98816.0,0.0,0.0
2022-04-29 00:00:00+01:00,23.22,24.16,23.2,24.04,23.9625830078125,139578.0,0.0,0.0
2022-05-03 00:00:00+01:00,23.6,24.3,23.18,23.48,23.404384765625,181511.0,0.0,0.0
2022-05-04 00:00:00+01:00,23.16,23.26,22.24698974609375,22.44,22.36773681640625,199215.0,0.0,0.0
2022-05-05 00:00:00+01:00,23.52,23.52,22.18,22.26,22.1883154296875,468283.0,0.0,0.0
2022-05-06 00:00:00+01:00,21.900000000000002,22.06,21.5,22.0,21.929150390625,119246.0,0.0,0.0
2022-05-09 00:00:00+01:00,21.88,21.89320068359375,20.8,21.14,21.07192138671875,216918.0,0.0,0.0
2022-05-10 00:00:00+01:00,21.3,22.02,21.14,21.52,21.4506982421875,175912.0,0.0,0.0
2022-05-11 00:00:00+01:00,22.080000000000002,22.6,21.48,21.92,21.849409179687502,161619.0,0.0,0.0
2022-05-12 00:00:00+01:00,21.54,22.0,21.0,21.96,21.88927978515625,162789.0,0.0,0.0
2022-05-13 00:00:00+01:00,22.0,22.580000000000002,21.88,22.400000000000002,22.3278662109375,136027.0,0.0,0.0
2022-05-16 00:00:00+01:00,22.28,22.32,21.66,21.88,21.80953857421875,169593.0,0.0,0.0
2022-05-17 00:00:00+01:00,21.94,22.1,21.580000000000002,21.8,21.7297998046875,230442.0,0.0,0.0
2022-05-18 00:00:00+01:00,22.76,22.76,21.34,21.36,21.29121337890625,218130.0,0.0,0.0
2022-05-19 00:00:00+01:00,21.56,21.900000000000002,20.82,21.82,21.74973388671875,161985.0,0.0,0.0
2022-05-20 00:00:00+01:00,21.88,22.5,21.7,21.76,21.689924316406252,108143.0,0.0,0.0
2022-05-23 00:00:00+01:00,21.7,22.26,21.68,21.84,21.76966552734375,114671.0,0.0,0.0
2022-05-24 00:00:00+01:00,22.0,22.0,21.22,21.34,21.271279296875,80311.0,0.0,0.0
2022-05-25 00:00:00+01:00,21.44,22.240000000000002,21.3510009765625,21.94,21.869345703125,108379.0,0.0,0.0
2022-05-26 00:00:00+01:00,22.240000000000002,22.240000000000002,21.66,22.080000000000002,22.023447265625002,54302.0,1.45,0.0
2022-05-27 00:00:00+01:00,22.14,22.68,22.04,22.5,22.44237548828125,84161.0,0.0,0.0
2022-05-30 00:00:00+01:00,22.8,23.1,22.5,22.68,22.6219140625,92952.0,0.0,0.0
2022-05-31 00:00:00+01:00,22.0,23.56,22.0,23.42,23.36001708984375,260541.0,0.0,0.0
2022-06-01 00:00:00+01:00,23.52,23.76,22.96,23.48,23.41986328125,169299.0,0.0,0.0
2022-06-06 00:00:00+01:00,23.52,23.76,23.080000000000002,23.56,23.49966064453125,62642.0,0.0,0.0
2022-06-07 00:00:00+01:00,22.62,23.92,22.62,23.8,23.73904541015625,131089.0,0.0,0.0
2022-06-08 00:00:00+01:00,23.88,24.22,23.88,24.060000000000002,23.99837646484375,144324.0,0.0,0.0
2022-06-09 00:00:00+01:00,23.72,24.740000000000002,23.48300048828125,24.32,24.25771240234375,197024.0,0.0,0.0
2022-06-10 00:00:00+01:00,24.18,24.5,23.68,23.900000000000002,23.838789062500002,391211.0,0.0,0.0
2022-06-13 00:00:00+01:00,23.78,24.0,22.88,23.2,23.1405810546875,389306.0,0.0,0.0
2022-06-14 00:00:00+01:00,23.18,23.34,22.92,23.04,22.9809912109375,168973.0,0.0,0.0
2022-06-15 00:00:00+01:00,22.6,23.18,21.580000000000002,22.26,22.20299072265625,159033.0,0.0,0.0
2022-06-16 00:00:00+01:00,22.54,22.54,21.82,21.92,21.86385986328125,154582.0,0.0,0.0
2022-06-17 00:00:00+01:00,22.02,22.62,22.0,22.56,22.5022216796875,162701.0,0.0,0.0
2022-06-20 00:00:00+01:00,22.54,22.7643994140625,22.3,22.46,22.402475585937502,48492.0,0.0,0.0
2022-06-21 00:00:00+01:00,22.52,23.1,22.34,22.740000000000002,22.68176025390625,131960.0,0.0,0.0
2022-06-22 00:00:00+01:00,22.94,23.12,22.03,22.96,22.9011962890625,67403.0,0.0,0.0
2022-06-23 00:00:00+01:00,23.5,23.5,21.88,22.240000000000002,22.183037109375,191595.0,0.0,0.0
2022-06-24 00:00:00+01:00,22.8,23.34,22.580000000000002,23.1,23.04083984375,186503.0,0.0,0.0
2022-06-27 00:00:00+01:00,23.080000000000002,23.34,22.78,22.900000000000002,22.84134765625,75108.0,0.0,0.0
2022-06-28 00:00:00+01:00,22.84,23.14,22.42,22.6,22.54211669921875,95713.0,0.0,0.0
2022-06-29 00:00:00+01:00,22.44,22.580000000000002,21.76,21.8,21.74416748046875,143179.0,0.0,0.0
2022-06-30 00:00:00+01:00,21.38,22.0,21.38,21.94,21.88380859375,143371.0,0.0,0.0
2022-07-01 00:00:00+01:00,21.0,22.3,21.0,22.14,22.083295898437502,151912.0,0.0,0.0
2022-07-04 00:00:00+01:00,22.96,23.12,21.76,21.86,21.80401611328125,163031.0,0.0,0.0
2022-07-05 00:00:00+01:00,21.8,22.26,21.1,21.54,21.4848291015625,87873.0,0.0,0.0
2022-07-06 00:00:00+01:00,21.8,22.54,21.8,22.5,22.44237548828125,192002.0,0.0,0.0
2022-07-07 00:00:00+01:00,22.740000000000002,22.86,22.44739990234375,22.68,22.6219140625,44045.0,0.0,0.0
2022-07-08 00:00:00+01:00,22.7,23.1,22.38,23.0,22.94109130859375,54169.0,0.0,0.0
2022-07-11 00:00:00+01:00,23.0,23.240000000000002,22.68,23.02,22.961042480468752,28404.0,0.0,0.0
2022-07-12 00:00:00+01:00,23.48,23.48,22.38,22.400000000000002,22.3426318359375,58069.0,0.0,0.0
2022-07-13 00:00:00+01:00,21.98,22.42,21.54,22.2,22.14314208984375,171315.0,0.0,0.0
2022-07-14 00:00:00+01:00,21.6,22.28739990234375,21.42,21.8,21.74416748046875,69105.0,0.0,0.0
2022-07-15 00:00:00+01:00,22.240000000000002,22.46,21.42,22.38,22.3226806640625,37962.0,0.0,0.0
2022-07-18 00:00:00+01:00,22.52,23.26,22.52,23.1,23.04083984375,57375.0,0.0,0.0
2022-07-19 00:00:00+01:00,22.86,23.240000000000002,22.86,23.080000000000002,23.02088623046875,111888.0,0.0,0.0
2022-07-20 00:00:00+01:00,23.32,23.7,23.27,23.64,23.57945556640625,101102.0,0.0,0.0
2022-07-21 00:00:00+01:00,23.6,24.3,23.52,24.3,24.237763671875,94675.0,0.0,0.0
2022-07-22 00:00:00+01:00,24.22,24.66,24.14,24.28,24.21781494140625,106841.0,0.0,0.0
2022-07-25 00:00:00+01:00,24.26,24.42,23.96,24.04,23.978430175781252,156132.0,0.0,0.0
2022-07-26 00:00:00+01:00,24.1,24.1,23.56,23.56,23.49966064453125,100895.0,0.0,0.0
2022-07-27 00:00:00+01:00,23.48,23.94,23.44,23.580000000000002,23.519609375,147619.0,0.0,0.0
2022-07-28 00:00:00+01:00,24.32,24.400000000000002,23.84,24.400000000000002,24.337509765625,68667.0,0.0,0.0
2022-07-29 00:00:00+01:00,24.28,25.48,24.26,25.14,25.07561279296875,215529.0,0.0,0.0
2022-08-01 00:00:00+01:00,26.0,26.0,24.6,24.900000000000002,24.836225585937502,67096.0,0.0,0.0
2022-08-02 00:00:00+01:00,24.86,24.900000000000002,24.3,24.52,24.4572021484375,44575.0,0.0,0.0
2022-08-03 00:00:00+01:00,25.400000000000002,27.664499511718752,24.740000000000002,27.0,26.93085205078125,363560.0,0.0,0.0
2022-08-04 00:00:00+01:00,26.96,27.06300048828125,25.98,26.42,26.352333984375,390933.0,0.0,0.0
2022-08-05 00:00:00+01:00,26.28,27.1,26.22,26.54,26.4720263671875,281941.0,0.0,0.0
2022-08-08 00:00:00+01:00,26.26,26.84,25.740000000000002,26.02,25.953359375,119579.0,0.0,0.0
2022-08-09 00:00:00+01:00,26.0,26.12,25.400000000000002,25.42,25.354895019531252,81157.0,0.0,0.0
2022-08-10 00:00:00+01:00,26.0,26.361459960937502,24.84,26.240000000000002,26.1727978515625,236333.0,0.0,0.0
2022-08-11 00:00:00+01:00,26.22,26.52,25.94,26.26,26.192744140625,202521.0,0.0,0.0
2022-08-12 00:00:00+01:00,26.740000000000002,26.76,26.12,26.68,26.61166748046875,94373.0,0.0,0.0
2022-08-15 00:00:00+01:00,26.0,26.92,25.66,26.68,26.61166748046875,130154.0,0.0,0.0
2022-08-16 00:00:00+01:00,26.1,26.86,25.34,25.580000000000002,25.5144873046875,220905.0,0.0,0.0
2022-08-17 00:00:00+01:00,25.66,26.2,25.32,25.740000000000002,25.674074707031252,194549.0,0.0,0.0
2022-08-18 00:00:00+01:00,25.740000000000002,25.8,25.42,25.8,25.7339208984375,73907.0,0.0,0.0
2022-08-19 00:00:00+01:00,25.64,25.7,24.38,24.38,24.31755859375,161331.0,0.0,0.0
2022-08-22 00:00:00+01:00,24.2,24.42,23.84,24.14,24.07817138671875,309805.0,0.0,0.0
2022-08-23 00:00:00+01:00,24.2,24.2,23.34,23.42,23.36001708984375,169026.0,0.0,0.0
2022-08-24 00:00:00+01:00,24.44,24.44,23.240000000000002,24.080000000000002,24.01832763671875,213735.0,0.0,0.0
2022-08-25 00:00:00+01:00,24.34,24.76,24.14,24.560000000000002,24.49709716796875,103565.0,0.0,0.0
2022-08-26 00:00:00+01:00,24.68,25.84,24.418798828125002,24.48,24.4173046875,111767.0,0.0,0.0
2022-08-30 00:00:00+01:00,25.0,25.32,24.28,24.64,24.57689208984375,114667.0,0.0,0.0
2022-08-31 00:00:00+01:00,24.3,25.14,24.26,24.86,24.79633056640625,159278.0,0.0,0.0
2022-09-01 00:00:00+01:00,24.84,24.84,23.28,23.5,23.439814453125,75741.0,0.0,0.0
2022-09-02 00:00:00+01:00,23.8,23.900000000000002,23.32,23.86,23.79889404296875,161878.0,0.0,0.0
2022-09-05 00:00:00+01:00,23.54,24.04,23.19093994140625,23.5,23.439814453125,89772.0,0.0,0.0
2022-09-06 00:00:00+01:00,23.54,24.02,23.31,23.580000000000002,23.519609375,71477.0,0.0,0.0
2022-09-07 00:00:00+01:00,23.0,23.72,23.0,23.48,23.41986328125,97993.0,0.0,0.0
2022-09-08 00:00:00+01:00,23.400000000000002,23.86,23.12,23.86,23.79889404296875,192900.0,0.0,0.0
2022-09-09 00:00:00+01:00,23.7,24.240000000000002,23.67845947265625,24.16,24.098125,59221.0,0.0,0.0
2022-09-12 00:00:00+01:00,24.400000000000002,24.400000000000002,23.82,24.04,23.978430175781252,76307.0,0.0,0.0
2022-09-13 00:00:00+01:00,24.0,24.76,23.66,23.66,23.599401855468752,155869.0,0.0,0.0
2022-09-14 00:00:00+01:00,23.66,24.34,23.54,23.84,23.778940429687502,120233.0,0.0,0.0
2022-09-15 00:00:00+01:00,23.22,23.88,23.18,23.34,23.280222167968752,297665.0,0.0,0.0
2022-09-16 00:00:00+01:00,23.26,23.32,22.900000000000002,22.92,22.861298828125,144960.0,0.0,0.0
2022-09-20 00:00:00+01:00,22.94,24.04,22.6,23.5,23.439814453125,317042.0,0.0,0.0
2022-09-21 00:00:00+01:00,23.84,24.36,21.86,23.12,23.0607861328125,273104.0,0.0,0.0
2022-09-22 00:00:00+01:00,23.02,23.46,22.8,23.240000000000002,23.18048095703125,330760.0,0.0,0.0
2022-09-23 00:00:00+01:00,23.02,23.14,21.900000000000002,22.56,22.5022216796875,152226.0,0.0,0.0
2022-09-26 00:00:00+01:00,22.1,22.98,22.1,22.68,22.6219140625,160292.0,0.0,0.0
2022-09-27 00:00:00+01:00,22.92,23.52,22.82,22.82,22.761552734375,170562.0,0.0,0.0
2022-09-28 00:00:00+01:00,22.1,23.06,21.98,22.86,22.80145263671875,115333.0,0.0,0.0
2022-09-29 00:00:00+01:00,22.84,22.900000000000002,22.04,22.36,22.30273193359375,131444.0,0.0,0.0
2022-09-30 00:00:00+01:00,22.7,23.18,22.0,22.98,22.92114501953125,721076.0,0.0,0.0
2022-10-03 00:00:00+01:00,22.0,23.740000000000002,22.0,23.6,23.5395556640625,411048.0,0.0,0.0
2022-10-04 00:00:00+01:00,23.14,24.82,23.14,24.48,24.4173046875,359955.0,0.0,0.0
2022-10-05 00:00:00+01:00,24.6,24.6,23.38,23.66,23.599401855468752,787207.0,0.0,0.0
2022-10-06 00:00:00+01:00,23.3,24.36,23.3,24.16,24.10596923828125,179826.0,0.77,0.0
2022-10-07 00:00:00+01:00,24.32,24.32,23.12,23.28,23.22793701171875,182711.0,0.0,0.0
2022-10-10 00:00:00+01:00,23.0,23.28,22.240000000000002,22.44,22.389814453125002,138462.0,0.0,0.0
2022-10-11 00:00:00+01:00,22.38,22.72,22.1,22.18,22.1303955078125,148515.0,0.0,0.0
2022-10-12 00:00:00+01:00,23.12,23.12,21.88,22.16,22.110439453125,162450.0,0.0,0.0
2022-10-13 00:00:00+01:00,22.740000000000002,22.740000000000002,21.12,21.900000000000002,21.851022949218752,326778.0,0.0,0.0
2022-10-14 00:00:00+01:00,22.0,22.76,21.82,22.5,22.44968017578125,161983.0,0.0,0.0
2022-10-17 00:00:00+01:00,22.86,23.01260009765625,22.2,22.94,22.8886962890625,116551.0,0.0,0.0
2022-10-18 00:00:00+01:00,22.26,23.38,22.26,23.12,23.06829345703125,141461.0,0.0,0.0
2022-10-19 00:00:00+01:00,23.0,23.16,22.240000000000002,22.36,22.30999267578125,104562.0,0.0,0.0
2022-10-20 00:00:00+01:00,22.38,22.72,21.82,22.5,22.44968017578125,152158.0,0.0,0.0
2022-10-21 00:00:00+01:00,22.5,23.1,22.28,23.0,22.9485595703125,104972.0,0.0,0.0
2022-10-24 00:00:00+01:00,23.02,23.900000000000002,23.0,23.38,23.3277099609375,159898.0,0.0,0.0
2022-10-25 00:00:00+01:00,23.72,24.46,23.42,24.16,24.10596923828125,85381.0,0.0,0.0
2022-10-26 00:00:00+01:00,24.16,24.2,23.66,24.14,24.0860107421875,117490.0,0.0,0.0
2022-10-27 00:00:00+01:00,24.080000000000002,24.54,23.88,24.34,24.285566406250002,238792.0,0.0,0.0
2022-10-28 00:00:00+01:00,24.1,24.22,23.719599609375,24.080000000000002,24.0261474609375,122712.0,0.0,0.0
2022-10-31 00:00:00+00:00,24.26,24.46,23.66,24.1,24.04610107421875,102273.0,0.0,0.0
2022-11-01 00:00:00+00:00,24.5,24.94,24.02,24.22,24.16583251953125,72028.0,0.0,0.0
2022-11-02 00:00:00+00:00,24.1,25.0,23.92,24.64,24.584892578125,145464.0,0.0,0.0
2022-11-03 00:00:00+00:00,24.28,24.72,23.88,24.04,23.9862353515625,73546.0,0.0,0.0
2022-11-04 00:00:00+00:00,24.240000000000002,25.080000000000002,23.60639892578125,24.28,24.2256982421875,69077.0,0.0,0.0
2022-11-07 00:00:00+00:00,24.22,25.080000000000002,24.02,24.900000000000002,24.8443115234375,124283.0,0.0,0.0
2022-11-08 00:00:00+00:00,24.580000000000002,25.22,24.580000000000002,25.22,25.16359619140625,153287.0,0.0,0.0
2022-11-09 00:00:00+00:00,24.98,25.22,24.88,24.98,24.92413330078125,100019.0,0.0,0.0
2022-11-10 00:00:00+00:00,24.82,26.54,24.64,26.2,26.14140625,132777.0,0.0,0.0
2022-11-11 00:00:00+00:00,26.36,26.86,26.16,26.580000000000002,26.52055419921875,219220.0,0.0,0.0
2022-11-14 00:00:00+00:00,26.3,27.1,26.26,26.96,26.89970458984375,128692.0,0.0,0.0
2022-11-15 00:00:00+00:00,26.48,27.16,26.14,26.92,26.859794921875,186824.0,0.0,0.0
2022-11-16 00:00:00+00:00,27.02,27.04,26.38,26.52,26.4606884765625,107714.0,0.0,0.0
2022-11-17 00:00:00+00:00,26.76,26.76,25.8,26.7,26.6402880859375,111413.0,0.0,0.0
2022-11-18 00:00:00+00:00,26.88,27.1,26.32,27.1,27.03939208984375,127583.0,0.0,0.0
2022-11-21 00:00:00+00:00,27.96,29.15199951171875,27.43699951171875,27.740000000000002,27.677958984375,517109.0,0.0,0.0
2022-11-22 00:00:00+00:00,28.0,28.0,26.86,27.66,27.5981396484375,209083.0,0.0,0.0
2022-11-23 00:00:00+00:00,27.6,28.34,27.5,28.34,28.27661865234375,458322.0,0.0,0.0
2022-11-24 00:00:00+00:00,29.0,29.26,27.6,28.8,28.73558837890625,189652.0,0.0,0.0
2022-11-25 00:00:00+00:00,28.400000000000002,29.03300048828125,28.400000000000002,28.900000000000002,28.8353662109375,146017.0,0.0,0.0
2022-11-28 00:00:00+00:00,28.7,29.1,28.0,29.1,29.03491943359375,255817.0,0.0,0.0
2022-11-29 00:00:00+00:00,29.080000000000002,29.14,28.8,28.900000000000002,28.8353662109375,204232.0,0.0,0.0
2022-11-30 00:00:00+00:00,28.76,29.62,28.76,29.5,29.434023437500002,538520.0,0.0,0.0
2022-12-01 00:00:00+00:00,29.68,29.900000000000002,29.060000000000002,29.76,29.69344482421875,188618.0,0.0,0.0
2022-12-02 00:00:00+00:00,29.88,30.560000000000002,29.3,29.48,29.41406982421875,384388.0,0.0,0.0
2022-12-05 00:00:00+00:00,29.36,29.92,28.26,28.28,28.2167529296875,225089.0,0.0,0.0
2022-12-06 00:00:00+00:00,28.1,28.48,27.78,27.94,27.8775146484375,320011.0,0.0,0.0
2022-12-07 00:00:00+00:00,27.92,28.2,27.64,27.94,27.8775146484375,341034.0,0.0,0.0
2022-12-08 00:00:00+00:00,27.78,28.080000000000002,27.72,27.92,27.85756103515625,219670.0,0.0,0.0
2022-12-09 00:00:00+00:00,27.400000000000002,28.0,27.400000000000002,28.0,27.937380371093752,138547.0,0.0,0.0
2022-12-12 00:00:00+00:00,28.400000000000002,28.76300048828125,27.72,28.240000000000002,28.17684326171875,128168.0,0.0,0.0
2022-12-13 00:00:00+00:00,28.34,29.1,27.86,28.38,28.316530761718752,263580.0,0.0,0.0
2022-12-14 00:00:00+00:00,28.0,28.36,27.86,28.22,28.15688720703125,62627.0,0.0,0.0
2022-12-15 00:00:00+00:00,27.900000000000002,28.18,27.54,27.54,27.478408203125,256065.0,0.0,0.0
2022-12-16 00:00:00+00:00,27.5,27.96,27.080000000000002,27.400000000000002,27.33872314453125,147966.0,0.0,0.0
2022-12-19 00:00:00+00:00,27.52,27.9739990234375,27.38,27.52,27.4584521484375,62241.0,0.0,0.0
2022-12-20 00:00:00+00:00,27.5,27.62,26.8,27.38,27.31876708984375,116737.0,0.0,0.0
2022-12-21 00:00:00+00:00,27.64,28.1,27.24030029296875,27.86,27.79769287109375,47330.0,0.0,0.0
2022-12-22 00:00:00+00:00,27.86,28.26,27.3,27.48,27.418544921875,59975.0,0.0,0.0
2022-12-23 00:00:00+00:00,28.26,28.26,27.240000000000002,27.46,27.3985888671875,37424.0,0.0,0.0
2022-12-28 00:00:00+00:00,27.44,27.7,27.22,27.42,27.3586767578125,39217.0,0.0,0.0
2022-12-29 00:00:00+00:00,27.04,27.66,27.02,27.62,27.558229980468752,96876.0,0.0,0.0
2022-12-30 00:00:00+00:00,26.96,27.66,26.96,27.240000000000002,27.179079589843752,23796.0,0.0,0.0
2023-01-03 00:00:00+00:00,27.2,28.22,26.64,27.66,27.5981396484375,68033.0,0.0,0.0
2023-01-04 00:00:00+00:00,27.54,27.98,27.1572998046875,27.88,27.81764892578125,68241.0,0.0,0.0
2023-01-05 00:00:00+00:00,27.76,28.3,27.562900390625,28.04,27.9772900390625,99643.0,0.0,0.0
2023-01-06 00:00:00+00:00,27.68,28.72,27.68,28.6,28.5360400390625,132308.0,0.0,0.0
2023-01-09 00:00:00+00:00,27.0,28.72,26.529279785156252,28.0,27.937380371093752,144894.0,0.0,0.0
2023-01-10 00:00:00+00:00,29.0,29.0,27.42,27.560000000000002,27.498361816406252,108914.0,0.0,0.0
2023-01-11 00:00:00+00:00,28.8,28.8,27.36,28.32,28.2566650390625,117605.0,0.0,0.0
2023-01-12 00:00:00+00:00,28.0,28.16,26.67,26.98,26.919658203125,394851.0,0.0,0.0
2023-01-13 00:00:00+00:00,26.76,27.0839990234375,25.400000000000002,25.6,25.54274658203125,356966.0,0.0,0.0
2023-01-16 00:00:00+00:00,25.0,26.080000000000002,24.86,25.18,25.1236865234375,336471.0,0.0,0.0
2023-01-17 00:00:00+00:00,25.22,25.400000000000002,24.92,25.3,25.24341552734375,221386.0,0.0,0.0
2023-01-18 00:00:00+00:00,25.66,26.78,25.37659912109375,26.240000000000002,26.181318359375002,1025972.0,0.0,0.0
2023-01-19 00:00:00+00:00,27.0,27.0,25.98,26.62,26.56046630859375,102617.0,0.0,0.0
2023-01-20 00:00:00+00:00,26.72,27.0,26.34,26.44,26.38086669921875,192758.0,0.0,0.0
2023-01-23 00:00:00+00:00,26.48,26.650000000000002,25.86,26.12,26.06158447265625,159375.0,0.0,0.0
2023-01-24 00:00:00+00:00,26.3,26.44,25.88,26.060000000000002,26.001718750000002,285494.0,0.0,0.0
2023-01-25 00:00:00+00:00,26.5,28.04,26.18,27.740000000000002,27.677958984375,379047.0,0.0,0.0
2023-01-26 00:00:00+00:00,27.86,28.26,27.66,27.740000000000002,27.677958984375,234863.0,0.0,0.0
2023-01-27 00:00:00+00:00,27.900000000000002,28.48,27.44,28.44,28.37639404296875,96625.0,0.0,0.0
2023-01-30 00:00:00+00:00,28.14,28.68,27.88,28.16,28.097021484375002,169732.0,0.0,0.0
2023-01-31 00:00:00+00:00,28.060000000000002,28.400000000000002,27.84,28.400000000000002,28.336484375,250688.0,0.0,0.0
2023-02-01 00:00:00+00:00,28.2,28.72,27.400000000000002,28.34,28.27661865234375,97416.0,0.0,0.0
2023-02-02 00:00:00+00:00,28.68,29.560000000000002,28.1,29.2,29.13469482421875,245261.0,0.0,0.0
2023-02-03 00:00:00+00:00,29.66,29.7,28.8,29.28,29.214514160156252,211695.0,0.0,0.0
2023-02-06 00:00:00+00:00,29.02,29.48,28.92597900390625,29.04,28.9750537109375,78978.0,0.0,0.0
2023-02-07 00:00:00+00:00,28.2,28.98,27.7,28.26,28.196796875,327488.0,0.0,0.0
2023-02-08 00:00:00+00:00,28.7,28.7,28.0,28.36,28.296572265625002,88715.0,0.0,0.0
2023-02-09 00:00:00+00:00,29.0,29.0,28.44,28.7,28.635812988281252,113023.0,0.0,0.0
2023-02-10 00:00:00+00:00,28.8,28.89,28.02,28.02,27.95733642578125,169490.0,0.0,0.0
2023-02-13 00:00:00+00:00,27.900000000000002,28.38,27.36,28.38,28.316530761718752,140602.0,0.0,0.0
2023-02-14 00:00:00+00:00,27.060000000000002,28.560000000000002,27.060000000000002,28.0,27.937380371093752,107333.0,0.0,0.0
2023-02-15 00:00:00+00:00,28.18,28.900000000000002,27.724599609375,28.84,28.77550048828125,129853.0,0.0,0.0
2023-02-16 00:00:00+00:00,27.3,29.240000000000002,27.3,29.12,29.05487548828125,63977.0,0.0,0.0
2023-02-17 00:00:00+00:00,29.96,29.96,28.5,28.5,28.436262207031252,75842.0,0.0,0.0
2023-02-20 00:00:00+00:00,28.400000000000002,28.92,28.3,28.900000000000002,28.8353662109375,44533.0,0.0,0.0
2023-02-21 00:00:00+00:00,28.580000000000002,29.14,28.580000000000002,28.8,28.73558837890625,176561.0,0.0,0.0
2023-02-22 00:00:00+00:00,28.900000000000002,28.900000000000002,28.48,28.76,28.695681152343752,146264.0,0.0,0.0
2023-02-23 00:00:00+00:00,28.82,29.34,28.66,28.88,28.81541015625,86655.0,0.0,0.0
2023-02-24 00:00:00+00:00,28.98,28.98,28.240000000000002,28.42,28.3564404296875,69783.0,0.0,0.0
2023-02-27 00:00:00+00:00,28.68,29.060000000000002,28.1,28.84,28.77550048828125,78772.0,0.0,0.0
2023-02-28 00:00:00+00:00,28.62,29.1,28.580000000000002,28.92,28.855322265625002,386853.0,0.0,0.0
2023-03-01 00:00:00+00:00,28.92,29.72,28.86,29.36,29.2943359375,106416.0,0.0,0.0
2023-03-02 00:00:00+00:00,29.8,29.82,28.92,29.62,29.55375732421875,60874.0,0.0,0.0
2023-03-03 00:00:00+00:00,29.8,29.92,29.22,29.44,29.37416015625,59389.0,0.0,0.0
2023-03-06 00:00:00+00:00,29.46,29.54,29.02,29.240000000000002,29.17460693359375,68220.0,0.0,0.0
2023-03-07 00:00:00+00:00,28.5,29.6,28.5,29.400000000000002,29.334248046875,69588.0,0.0,0.0
2023-03-08 00:00:00+00:00,28.92,29.900000000000002,28.68280029296875,29.64,29.5737109375,57394.0,0.0,0.0
2023-03-09 00:00:00+00:00,29.400000000000002,30.0,29.283999023437502,29.92,29.8530859375,85081.0,0.0,0.0
2023-03-10 00:00:00+00:00,30.0,30.0,29.0,29.560000000000002,29.4938916015625,121079.0,0.0,0.0
2023-03-13 00:00:00+00:00,29.26,29.48,28.48,28.48,28.41630615234375,451156.0,0.0,0.0
2023-03-14 00:00:00+00:00,28.5,29.02,28.28,29.02,28.95509765625,173562.0,0.0,0.0
2023-03-15 00:00:00+00:00,28.900000000000002,28.9418505859375,25.46,26.46,26.4008251953125,646146.0,0.0,0.0
2023-03-16 00:00:00+00:00,26.14,26.88,26.14,26.48,26.420778808593752,240692.0,0.0,0.0
2023-03-17 00:00:00+00:00,26.72,27.580000000000002,26.42,26.42,26.3609130859375,145813.0,0.0,0.0
2023-03-20 00:00:00+00:00,26.02,27.28,25.82,26.88,26.81988525390625,156224.0,0.0,0.0
2023-03-21 00:00:00+00:00,27.12,27.26,26.6,27.2,27.13916748046875,101085.0,0.0,0.0
2023-03-22 00:00:00+00:00,27.04,27.28,26.68,27.060000000000002,26.99947998046875,61646.0,0.0,0.0
2023-03-23 00:00:00+00:00,27.46,27.84,27.0,27.76,27.69791748046875,238904.0,0.0,0.0
2023-03-24 00:00:00+00:00,27.66,27.8639990234375,27.18,27.7,27.6380517578125,151064.0,0.0,0.0
2023-03-27 00:00:00+01:00,27.98,28.14,27.0,27.060000000000002,26.99947998046875,242115.0,0.0,0.0
2023-03-28 00:00:00+01:00,27.12,27.12,26.34,26.6,26.540510253906252,162045.0,0.0,0.0
2023-03-29 00:00:00+01:00,26.64,27.46,26.38,27.240000000000002,27.179079589843752,219929.0,0.0,0.0
2023-03-30 00:00:00+01:00,27.76,29.080000000000002,27.650000000000002,28.080000000000002,28.0172021484375,285091.0,0.0,0.0
2023-03-31 00:00:00+01:00,28.1,28.14,27.400000000000002,27.580000000000002,27.51831787109375,143041.0,0.0,0.0
2023-04-03 00:00:00+01:00,27.580000000000002,27.580000000000002,27.14,27.26,27.19903564453125,100038.0,0.0,0.0
2023-04-04 00:00:00+01:00,27.14,27.5535400390625,27.04,27.14,27.0793017578125,89315.0,0.0,0.0
2023-04-05 00:00:00+01:00,27.6,27.8,25.48,25.5,25.44297119140625,174325.0,0.0,0.0
2023-04-06 00:00:00+01:00,25.6,26.03199951171875,25.46,26.0,25.94185302734375,163437.0,0.0,0.0
2023-04-11 00:00:00+01:00,26.0,26.580000000000002,25.86,26.22,26.161359863281252,148621.0,0.0,0.0
2023-04-12 00:00:00+01:00,26.68,27.0,26.02,26.64,26.58042236328125,118071.0,0.0,0.0
2023-04-13 00:00:00+01:00,26.96,27.400000000000002,26.68,27.18,27.1192138671875,338659.0,0.0,0.0
2023-04-14 00:00:00+01:00,27.5,27.86,26.72,26.72,26.66024169921875,188709.0,0.0,0.0
2023-04-17 00:00:00+01:00,26.78,27.060000000000002,26.0356005859375,26.98,26.919658203125,260010.0,0.0,0.0
2023-04-18 00:00:00+01:00,28.0,28.0,26.86,27.2,27.13916748046875,110566.0,0.0,0.0
2023-04-19 00:00:00+01:00,26.8,27.38,26.72,27.240000000000002,27.179079589843752,238055.0,0.0,0.0
2023-04-20 00:00:00+01:00,27.78,27.78,26.66,26.66,26.6003759765625,136925.0,0.0,0.0
2023-04-21 00:00:00+01:00,26.5,27.400000000000002,26.48,27.02,26.959570312500002,102818.0,0.0,0.0
2023-04-24 00:00:00+01:00,26.400000000000002,27.36,26.400000000000002,27.0,26.93961669921875,53770.0,0.0,0.0
2023-04-25 00:00:00+01:00,26.78,27.34,26.7,26.96,26.89970458984375,584252.0,0.0,0.0
2023-04-26 00:00:00+01:00,26.78,26.82,26.32,26.64,26.58042236328125,82215.0,0.0,0.0
2023-04-27 00:00:00+01:00,26.14,26.78,26.14,26.76,26.70015380859375,72994.0,0.0,0.0
2023-04-28 00:00:00+01:00,27.18,27.18,26.62,27.0,26.93961669921875,63114.0,0.0,0.0
2023-05-02 00:00:00+01:00,26.400000000000002,27.095419921875,26.34,26.34,26.28109130859375,142978.0,0.0,0.0
2023-05-03 00:00:00+01:00,26.42,26.5,24.96,25.1,25.043867187500002,350646.0,0.0,0.0
2023-05-04 00:00:00+01:00,25.0,25.080000000000002,22.68,22.68,22.62927734375,1493890.0,0.0,0.0
2023-05-05 00:00:00+01:00,22.6,22.7,21.92,22.0,21.95079833984375,582476.0,0.0,0.0
2023-05-09 00:00:00+01:00,22.5,22.84,21.75010009765625,22.5,22.44968017578125,529565.0,0.0,0.0
2023-05-10 00:00:00+01:00,22.5,22.8,21.78,21.8,21.7512451171875,315844.0,0.0,0.0
2023-05-11 00:00:00+01:00,21.7,23.38,21.7,23.06,23.008427734375,489035.0,0.0,0.0
2023-05-12 00:00:00+01:00,23.34,23.38,22.72,23.38,23.3277099609375,283610.0,0.0,0.0
2023-05-15 00:00:00+01:00,23.04,23.62,23.04,23.5,23.44744384765625,388932.0,0.0,0.0
2023-05-16 00:00:00+01:00,23.36,23.54,23.02,23.3,23.247890625,395998.0,0.0,0.0
2023-05-17 00:00:00+01:00,23.56,23.580000000000002,22.68,22.84,22.78891845703125,423318.0,0.0,0.0
2023-05-18 00:00:00+01:00,22.96,23.240000000000002,22.42,22.72,22.669189453125,319457.0,0.0,0.0
2023-05-19 00:00:00+01:00,22.5,22.9019091796875,22.04,22.46,22.40976806640625,421569.0,0.0,0.0
2023-05-22 00:00:00+01:00,22.78,22.84,22.38,22.8,22.7490087890625,166747.0,0.0,0.0
2023-05-23 00:00:00+01:00,23.2,23.22,22.38,22.38,22.3299462890625,309329.0,0.0,0.0
2023-05-24 00:00:00+01:00,22.02,22.33969970703125,20.56,20.94,20.893171386718752,512827.0,0.0,0.0
2023-05-25 00:00:00+01:00,20.52,21.0,20.32,20.32,20.2745556640625,729567.0,0.0,0.0
2023-05-26 00:00:00+01:00,20.88,20.88,19.72,19.78,19.735762939453124,492367.0,0.0,0.0
2023-05-30 00:00:00+01:00,19.92,20.0152001953125,19.35,19.41,19.366590576171877,690501.0,0.0,0.0
2023-05-31 00:00:00+01:00,20.2,20.2,19.19,19.45,19.40650146484375,317942.0,0.0,0.0
2023-06-01 00:00:00+01:00,19.66,19.740000000000002,19.150000000000002,19.47,19.442449951171877,304732.0,1.6,0.0
2023-06-02 00:00:00+01:00,20.22,20.22,19.37,19.82,19.79195556640625,278304.0,0.0,0.0
2023-06-05 00:00:00+01:00,19.62,19.72,17.92,18.17,18.14428955078125,461315.0,0.0,0.0
2023-06-06 00:00:00+01:00,18.07,18.18,17.29,17.45,17.425308837890626,828912.0,0.0,0.0
2023-06-07 00:00:00+01:00,17.73,18.41,17.73,18.32,18.294077148437502,554274.0,0.0,0.0
2023-06-08 00:00:00+01:00,17.61,18.6747998046875,17.61,18.22,18.19421875,270247.0,0.0,0.0
2023-06-09 00:00:00+01:00,18.330000000000002,18.63,17.93,18.52,18.493795166015627,341997.0,0.0,0.0
2023-06-12 00:00:00+01:00,18.19,19.12,18.143199462890625,19.12,19.0929443359375,357760.0,0.0,0.0
2023-06-13 00:00:00+01:00,19.2,19.77,18.94,19.400000000000002,19.372548828125,648503.0,0.0,0.0
2023-06-14 00:00:00+01:00,19.740000000000002,19.92,19.27,19.6,19.572266845703126,362355.0,0.0,0.0
2023-06-15 00:00:00+01:00,19.6,19.775000000000002,18.96,19.18,19.152860107421876,437837.0,0.0,0.0
2023-06-16 00:00:00+01:00,19.87,19.87,19.065,19.41,19.3825341796875,635867.0,0.0,0.0
2023-06-19 00:00:00+01:00,19.37,19.37,18.93,18.95,18.92318603515625,343892.0,0.0,0.0
2023-06-20 00:00:00+01:00,19.39,19.39,18.61,18.67,18.64358154296875,240994.0,0.0,0.0
2023-06-21 00:00:00+01:00,19.45,19.469520263671875,18.36,18.91,18.8832421875,276880.0,0.0,0.0
2023-06-22 00:00:00+01:00,18.95,19.162230224609374,18.37,18.8,18.7733984375,186330.0,0.0,0.0
2023-06-23 00:00:00+01:00,18.6,19.04,18.6,18.87,18.843298339843752,189003.0,0.0,0.0
2023-06-26 00:00:00+01:00,19.0,19.04719970703125,18.32,18.57,18.543724365234375,411820.0,0.0,0.0
2023-06-27 00:00:00+01:00,18.650000000000002,18.77,17.669100341796874,18.03,18.004488525390624,538190.0,0.0,0.0
2023-06-28 00:00:00+01:00,18.0,18.2,17.92,18.2,18.174246826171874,210732.0,0.0,0.0
2023-06-29 00:00:00+01:00,18.7,18.7,17.54,17.59,17.56510986328125,253575.0,0.0,0.0
2023-06-30 00:00:00+01:00,17.67,18.11,17.43,18.1,18.074388427734377,150826.0,0.0,0.0
2023-07-03 00:00:00+01:00,17.900000000000002,18.36,17.88,18.330000000000002,18.3040625,791780.0,0.0,0.0
2023-07-04 00:00:00+01:00,18.400000000000002,18.522430419921875,18.12,18.42,18.393935546875,287173.0,0.0,0.0
2023-07-05 00:00:00+01:00,18.56,18.580000000000002,18.255999755859374,18.36,18.334019775390626,160679.0,0.0,0.0
2023-07-06 00:00:00+01:00,18.5,18.54,17.240000000000002,17.51,17.485223388671876,281127.0,0.0,0.0
2023-07-07 00:00:00+01:00,17.51,17.51,16.69,17.1,17.07580322265625,290241.0,0.0,0.0
2023-07-10 00:00:00+01:00,17.240000000000002,17.77,16.87,16.95,16.926015625,339775.0,0.0,0.0
2023-07-11 00:00:00+01:00,17.5,17.5,16.12,16.14,16.117161865234376,371758.0,0.0,0.0
2023-07-12 00:00:00+01:00,16.15,17.14,16.12,16.88,16.856114501953126,494734.0,0.0,0.0
2023-07-13 00:00:00+01:00,17.0,17.330000000000002,16.85,16.89,16.86610107421875,155535.0,0.0,0.0
2023-07-14 00:00:00+01:00,16.8,17.55,16.62,17.12,17.095775146484375,208870.0,0.0,0.0
2023-07-17 00:00:00+01:00,17.0,17.17,16.740000000000002,16.9,16.87608642578125,155692.0,0.0,0.0
2023-07-18 00:00:00+01:00,17.72,17.72,16.64,16.68,16.656397705078124,132785.0,0.0,0.0
2023-07-19 00:00:00+01:00,17.1,17.62,16.87530029296875,17.62,17.595067138671876,396633.0,0.0,0.0
2023-07-20 00:00:00+01:00,17.82,17.97,17.59,17.63,17.6050537109375,372626.0,0.0,0.0
2023-07-21 00:00:00+01:00,17.86,18.063800048828124,17.6,17.88,17.85469970703125,257740.0,0.0,0.0
2023-07-24 00:00:00+01:00,17.6,18.041500244140625,17.48,17.71,17.684940185546875,360104.0,0.0,0.0
2023-07-25 00:00:00+01:00,17.740000000000002,18.22,17.57154052734375,17.86,17.834727783203125,209875.0,0.0,0.0
2023-07-26 00:00:00+01:00,17.77,18.13,17.71,17.78,17.754842529296877,282136.0,0.0,0.0
2023-07-27 00:00:00+01:00,17.78,18.19,17.7,18.06,18.034444580078127,198157.0,0.0,0.0
2023-07-28 00:00:00+01:00,18.25,18.25,17.900000000000002,18.0,17.974530029296876,134365.0,0.0,0.0
2023-07-31 00:00:00+01:00,17.990000000000002,18.0,17.448499755859377,17.62,17.595067138671876,266973.0,0.0,0.0
2023-08-01 00:00:00+01:00,17.44,17.44,14.77,15.8,15.777642822265625,1707985.0,0.0,0.0
2023-08-02 00:00:00+01:00,15.700000000000001,16.15,15.700000000000001,15.860000000000001,15.83755859375,597276.0,0.0,0.0
2023-08-03 00:00:00+01:00,15.700000000000001,15.875,15.56,15.66,15.637841796875,720097.0,0.0,0.0
2023-08-04 00:00:00+01:00,15.89,15.89,15.2875,15.450000000000001,15.428138427734375,130835.0,0.0,0.0
2023-08-07 00:00:00+01:00,15.23,15.73,14.88,14.98,14.9588037109375,133228.0,0.0,0.0
2023-08-08 00:00:00+01:00,14.8,15.18,14.65,14.93,14.908873291015626,187614.0,0.0,0.0
2023-08-09 00:00:00+01:00,15.72,15.9,14.955999755859375,15.06,15.038690185546875,384876.0,0.0,0.0
2023-08-10 00:00:00+01:00,15.06,15.11,14.450000000000001,14.5,14.479482421875,509873.0,0.0,0.0
2023-08-11 00:00:00+01:00,15.0,15.07,14.6,14.75,14.72912841796875,498841.0,0.0,0.0
2023-08-14 00:00:00+01:00,14.75,15.32,14.75,15.11,15.088619384765625,202173.0,0.0,0.0
2023-08-15 00:00:00+01:00,15.120000000000001,15.18,14.68,14.84,14.819001464843751,167723.0,0.0,0.0
2023-08-16 00:00:00+01:00,14.89,15.08,14.51,14.790000000000001,14.769072265625,172976.0,0.0,0.0
2023-08-17 00:00:00+01:00,14.790000000000001,15.32,14.47,14.950000000000001,14.92884521484375,145057.0,0.0,0.0
2023-08-18 00:00:00+01:00,14.4,14.96,14.4,14.85,14.828988037109376,246954.0,0.0,0.0
2023-08-21 00:00:00+01:00,15.16,15.16,14.73,14.85,14.828988037109376,208997.0,0.0,0.0
2023-08-22 00:00:00+01:00,14.82,15.17,14.75,14.85,14.828988037109376,89056.0,0.0,0.0
2023-08-23 00:00:00+01:00,14.56,15.05,14.56,14.71,14.6891845703125,494801.0,0.0,0.0
2023-08-24 00:00:00+01:00,14.98,14.993909912109375,14.71,14.71,14.6891845703125,102654.0,0.0,0.0
2023-08-25 00:00:00+01:00,15.44,15.44,14.700000000000001,14.77,14.749100341796876,136975.0,0.0,0.0
2023-08-29 00:00:00+01:00,14.96,15.52,14.85,15.49,15.4680810546875,146752.0,0.0,0.0
2023-08-30 00:00:00+01:00,15.49,15.624000244140625,15.18,15.38,15.358237304687501,259486.0,0.0,0.0
2023-08-31 00:00:00+01:00,15.35,15.51,15.18,15.25,15.228421630859375,312027.0,0.0,0.0
2023-09-01 00:00:00+01:00,15.38,15.41,14.950000000000001,14.99,14.9687890625,122627.0,0.0,0.0
2023-09-04 00:00:00+01:00,14.99,15.1,14.83,14.83,14.80901611328125,138450.0,0.0,0.0
2023-09-05 00:00:00+01:00,14.8,14.83199951171875,14.42,14.66,14.63925537109375,173206.0,0.0,0.0
2023-09-06 00:00:00+01:00,15.0,15.040000000000001,14.44,14.81,14.789044189453126,194887.0,0.0,0.0
2023-09-07 00:00:00+01:00,14.83,15.6,14.46,15.530000000000001,15.50802490234375,243553.0,0.0,0.0
2023-09-08 00:00:00+01:00,15.0,15.89,15.0,15.89,15.867515869140625,339473.0,0.0,0.0
2023-09-11 00:00:00+01:00,16.22,16.32,14.68,14.73,14.709156494140625,274162.0,0.0,0.0
2023-09-12 00:00:00+01:00,14.4,14.55,12.620000000000001,14.05,14.03011962890625,695308.0,0.0,0.0
2023-09-13 00:00:00+01:00,14.09,15.47,13.790000000000001,15.44,15.41815185546875,359608.0,0.0,0.0
2023-09-14 00:00:00+01:00,15.5,16.126199951171877,15.5,16.07,16.0472607421875,818615.0,0.0,0.0
2023-09-15 00:00:00+01:00,16.31,16.32,15.57,15.63,15.607884521484376,470826.0,0.0,0.0
2023-09-18 00:00:00+01:00,15.44,15.85,15.169410400390625,15.22,15.198463134765625,388020.0,0.0,0.0
2023-09-19 00:00:00+01:00,15.11,15.58,14.9039599609375,15.32,15.29832275390625,244500.0,0.0,0.0
2023-09-20 00:00:00+01:00,15.44,16.02,15.44,15.88,15.857530517578125,260949.0,0.0,0.0
2023-09-21 00:00:00+01:00,15.610000000000001,15.83,15.0,15.19,15.168505859375001,380456.0,0.0,0.0
2023-09-22 00:00:00+01:00,15.1,15.48,15.1,15.35,15.328280029296875,144967.0,0.0,0.0
2023-09-25 00:00:00+01:00,15.35,15.6,14.960999755859376,15.19,15.168505859375001,326513.0,0.0,0.0
2023-09-26 00:00:00+01:00,15.58,15.58,14.58,14.63,14.609298095703124,139051.0,0.0,0.0
2023-09-27 00:00:00+01:00,14.58,15.34,14.48,15.13,15.10859130859375,140879.0,0.0,0.0
2023-09-28 00:00:00+01:00,15.120000000000001,15.19,14.83,15.0,14.9787744140625,345116.0,0.0,0.0
2023-09-29 00:00:00+01:00,15.0,15.610000000000001,15.0,15.47,15.448109130859375,256397.0,0.0,0.0
2023-10-02 00:00:00+01:00,15.46,15.67,14.870000000000001,15.040000000000001,15.01871826171875,291241.0,0.0,0.0
2023-10-03 00:00:00+01:00,14.71,14.89,14.0,14.05,14.03011962890625,179006.0,0.0,0.0
2023-10-04 00:00:00+01:00,13.83,14.290000000000001,13.77,13.81,13.790458984375,237634.0,0.0,0.0
2023-10-05 00:00:00+01:00,13.92,14.17,13.85,13.85,13.838919677734376,180284.0,0.85,0.0
2023-10-06 00:00:00+01:00,14.450000000000001,14.450000000000001,13.55,13.99,13.978807373046875,116485.0,0.0,0.0
2023-10-09 00:00:00+01:00,13.52,14.030000000000001,13.41,13.620000000000001,13.60910400390625,136545.0,0.0,0.0
2023-10-10 00:00:00+01:00,13.89,14.55,13.72,14.55,14.538359375,245926.0,0.0,0.0
2023-10-11 00:00:00+01:00,14.32,14.52,13.450000000000001,13.52,13.509183349609375,134243.0,0.0,0.0
2023-10-12 00:00:00+01:00,14.0,14.0,13.38,13.51,13.49919189453125,112363.0,0.0,0.0
2023-10-13 00:00:00+01:00,13.46,13.75,13.1,13.1,13.089520263671876,264982.0,0.0,0.0
2023-10-16 00:00:00+01:00,13.1,13.42699951171875,12.69,13.31,13.299351806640626,142869.0,0.0,0.0
2023-10-17 00:00:00+01:00,13.21,13.479949951171875,13.09300048828125,13.370000000000001,13.35930419921875,103846.0,0.0,0.0
2023-10-18 00:00:00+01:00,13.5,13.5,12.69,12.75,12.7397998046875,586500.0,0.0,0.0
2023-10-19 00:00:00+01:00,12.52,13.213499755859376,12.52,13.11,13.09951171875,200672.0,0.0,0.0
2023-10-20 00:00:00+01:00,13.07,13.41,12.83,13.18,13.169455566406251,592696.0,0.0,0.0
2023-10-23 00:00:00+01:00,13.25,13.4,13.0,13.33,13.3193359375,121413.0,0.0,0.0
2023-10-24 00:00:00+01:00,13.42,13.64,13.0,13.1,13.089520263671876,173527.0,0.0,0.0
2023-10-25 00:00:00+01:00,13.09,13.34,12.96,13.14,13.129487304687501,113657.0,0.0,0.0
2023-10-26 00:00:00+01:00,13.0,13.280000000000001,12.96,13.1,13.089520263671876,162088.0,0.0,0.0
2023-10-27 00:00:00+01:00,13.1,13.16,12.85,13.0,12.989599609375,172121.0,0.0,0.0
2023-10-30 00:00:00+00:00,13.09,13.200000000000001,12.99,13.06,13.049552001953126,351486.0,0.0,0.0
2023-10-31 00:00:00+00:00,13.01,13.3,13.0,13.05,13.039559326171876,380834.0,0.0,0.0
2023-11-01 00:00:00+00:00,12.950000000000001,13.120000000000001,12.77843994140625,13.02,13.009583740234376,199402.0,0.0,0.0
2023-11-02 00:00:00+00:00,13.1,13.46,13.040000000000001,13.34,13.329327392578126,414055.0,0.0,0.0
2023-11-03 00:00:00+00:00,13.6,14.415000000000001,13.52384033203125,14.0,13.988800048828125,348357.0,0.0,0.0
2023-11-06 00:00:00+00:00,14.13,14.48,13.530000000000001,13.66,13.649072265625,95127.0,0.0,0.0
2023-11-07 00:00:00+00:00,13.5,13.93,13.5,13.84,13.82892822265625,164937.0,0.0,0.0
2023-11-08 00:00:00+00:00,13.74,14.0456005859375,13.69,13.8,13.7889599609375,275526.0,0.0,0.0
2023-11-09 00:00:00+00:00,13.950000000000001,14.19,13.71550048828125,13.85,13.838919677734376,308199.0,0.0,0.0
2023-11-10 00:00:00+00:00,13.73,13.834399414062501,13.22,13.620000000000001,13.60910400390625,211940.0,0.0,0.0
2023-11-13 00:00:00+00:00,13.5,13.72,13.4,13.55,13.53916015625,206951.0,0.0,0.0
2023-11-14 00:00:00+00:00,13.5,14.41,13.42,14.14,14.128687744140626,714971.0,0.0,0.0
2023-11-15 00:00:00+00:00,14.290000000000001,14.99,14.030000000000001,14.52,14.508383789062501,430958.0,0.0,0.0
2023-11-16 00:00:00+00:00,14.08,14.505,14.08,14.23,14.218615722656251,193252.0,0.0,0.0
2023-11-17 00:00:00+00:00,14.11,14.99,14.11,14.82,14.808143310546875,474070.0,0.0,0.0
2023-11-20 00:00:00+00:00,14.77,15.120000000000001,14.77,14.98,14.968016357421876,127160.0,0.0,0.0
2023-11-21 00:00:00+00:00,14.98,15.31,14.85,14.88,14.868095703125,312023.0,0.0,0.0
2023-11-22 00:00:00+00:00,14.84,15.19,14.8,14.94,14.928048095703126,93813.0,0.0,0.0
2023-11-23 00:00:00+00:00,14.96,15.055,14.67,14.88,14.868095703125,89248.0,0.0,0.0
2023-11-24 00:00:00+00:00,14.76,14.9,14.67,14.85,14.8381201171875,118893.0,0.0,0.0
2023-11-27 00:00:00+00:00,14.530000000000001,14.86,13.98,13.98,13.968815917968751,129900.0,0.0,0.0
2023-11-28 00:00:00+00:00,13.84,14.14,13.19,13.34,13.329327392578126,377366.0,0.0,0.0
2023-11-29 00:00:00+00:00,13.200000000000001,14.35,13.200000000000001,13.950000000000001,13.93884033203125,471577.0,0.0,0.0
2023-11-30 00:00:00+00:00,13.8,14.11800048828125,13.44,13.68,13.669056396484375,348127.0,0.0,0.0
2023-12-01 00:00:00+00:00,13.700000000000001,13.84,13.576400146484374,13.73,13.719016113281251,352771.0,0.0,0.0
2023-12-04 00:00:00+00:00,14.0,14.0,13.120000000000001,13.16,13.149471435546875,104065.0,0.0,0.0
2023-12-05 00:00:00+00:00,13.07,13.200000000000001,12.6,13.0,12.989599609375,303748.0,0.0,0.0
2023-12-06 00:00:00+00:00,12.9,13.26,12.9,13.02,13.009583740234376,681974.0,0.0,0.0
2023-12-07 00:00:00+00:00,13.4,13.4,12.56,12.82,12.80974365234375,193151.0,0.0,0.0
2023-12-08 00:00:00+00:00,12.85,12.98,12.64,12.76,12.749791259765626,169002.0,0.0,0.0
2023-12-11 00:00:00+00:00,12.700000000000001,13.530000000000001,12.700000000000001,13.36,13.3493115234375,316496.0,0.0,0.0
2023-12-12 00:00:00+00:00,13.33,13.36,12.948399658203126,13.26,13.24939208984375,279752.0,0.0,0.0
2023-12-13 00:00:00+00:00,13.4,13.48,13.16,13.41,13.399271240234375,223452.0,0.0,0.0
2023-12-14 00:00:00+00:00,13.8,14.59,13.74,14.3,14.2885595703125,258358.0,0.0,0.0
2023-12-15 00:00:00+00:00,13.71,14.31,13.71,14.13,14.1186962890625,433550.0,0.0,0.0
2023-12-18 00:00:00+00:00,14.38,15.33740966796875,13.89,15.290000000000001,15.277767333984375,256957.0,0.0,0.0
2023-12-19 00:00:00+00:00,15.290000000000001,15.700000000000001,15.040000000000001,15.46,15.4476318359375,152997.0,0.0,0.0
2023-12-20 00:00:00+00:00,15.75,15.92,15.33,15.83,15.817335205078125,258981.0,0.0,0.0
2023-12-21 00:00:00+00:00,15.73,16.03,15.34,16.02,16.007183837890626,160788.0,0.0,0.0
2023-12-22 00:00:00+00:00,16.0,16.543089599609374,15.73,16.35,16.336920166015624,183509.0,0.0,0.0
2023-12-27 00:00:00+00:00,16.1,16.95,16.0,16.69,16.67664794921875,332319.0,0.0,0.0
2023-12-28 00:00:00+00:00,16.29,16.95,16.0,16.6,16.586719970703125,129658.0,0.0,0.0
2023-12-29 00:00:00+00:00,16.66,16.77678955078125,16.606290283203126,16.62,16.6067041015625,54474.0,0.0,0.0
2024-01-02 00:00:00+00:00,16.9,16.93,15.950000000000001,15.98,15.967215576171876,433331.0,0.0,0.0
2024-01-03 00:00:00+00:00,16.45,16.45,15.583499755859375,15.8,15.787359619140625,212305.0,0.0,0.0
2024-01-04 00:00:00+00:00,16.18,16.2,15.32,15.5,15.48760009765625,145849.0,0.0,0.0
2024-01-05 00:00:00+00:00,15.43,15.63,14.84,15.34,15.327728271484375,178331.0,0.0,0.0
2024-01-08 00:00:00+00:00,15.200000000000001,15.88,15.08,15.3,15.287760009765625,93619.0,0.0,0.0
2024-01-09 00:00:00+00:00,15.450000000000001,15.32,15.21,15.280000000000001,15.26777587890625,236053.0,0.0,0.0
2024-01-10 00:00:00+00:00,15.21,15.51,15.120000000000001,15.16,15.147872314453124,203338.0,0.0,0.0
2024-01-11 00:00:00+00:00,15.21,15.44,14.73,14.73,14.71821533203125,128350.0,0.0,0.0
2024-01-12 00:00:00+00:00,14.81,15.3,14.81,15.280000000000001,15.26777587890625,126422.0,0.0,0.0
2024-01-15 00:00:00+00:00,15.085,15.32,14.86,14.86,14.848111572265625,86831.0,0.0,0.0
2024-01-16 00:00:00+00:00,15.08,15.66,14.91,15.39,15.37768798828125,253055.0,0.0,0.0
2024-01-17 00:00:00+00:00,15.040000000000001,15.5,14.450000000000001,14.540000000000001,14.528367919921875,114336.0,0.0,0.0
2024-01-18 00:00:00+00:00,14.9,15.22,14.59,15.22,15.207823486328126,175262.0,0.0,0.0
2024-01-19 00:00:00+00:00,15.450000000000001,15.450000000000001,14.89,14.89,14.87808837890625,93241.0,0.0,0.0
2024-01-22 00:00:00+00:00,15.11,15.15,14.835,15.05,15.037960205078125,92117.0,0.0,0.0
2024-01-23 00:00:00+00:00,14.51,15.63,14.51,15.3,15.287760009765625,96389.0,0.0,0.0
2024-01-24 00:00:00+00:00,15.530000000000001,15.74,15.200000000000001,15.74,15.7274072265625,278489.0,0.0,0.0
2024-01-25 00:00:00+00:00,15.32,15.84550048828125,15.030000000000001,15.55,15.537559814453125,476735.0,0.0,0.0
2024-01-26 00:00:00+00:00,15.66,16.11,15.26,15.99,15.977208251953126,417225.0,0.0,0.0
2024-01-29 00:00:00+00:00,15.91,16.240000000000002,15.69,16.240000000000002,16.227008056640624,112434.0,0.0,0.0
2024-01-30 00:00:00+00:00,16.1,16.740000000000002,16.080000000000002,16.65,16.6366796875,156730.0,0.0,0.0
2024-01-31 00:00:00+00:00,15.99,16.84,15.99,16.6,16.586719970703125,249055.0,0.0,0.0
2024-02-01 00:00:00+00:00,16.55,16.89,16.44,16.78,16.766575927734376,230759.0,0.0,0.0
2024-02-02 00:00:00+00:00,16.69,17.0,16.46,16.46,16.446832275390626,170565.0,0.0,0.0
2024-02-05 00:00:00+00:00,16.26,16.79,16.175,16.31,16.296951904296876,130266.0,0.0,0.0
2024-02-06 00:00:00+00:00,16.4,17.07,16.38,16.78,16.766575927734376,391036.0,0.0,0.0
2024-02-07 00:00:00+00:00,16.7,17.16,16.55,17.09,17.076328125,215847.0,0.0,0.0
2024-02-08 00:00:00+00:00,17.150000000000002,17.91,17.150000000000002,17.44,17.42604736328125,450151.0,0.0,0.0
2024-02-09 00:00:00+00:00,17.46,17.80198974609375,17.07,17.18,17.166256103515625,242803.0,0.0,0.0
2024-02-12 00:00:00+00:00,17.25,17.84,16.96,16.990000000000002,16.976407470703126,563881.0,0.0,0.0
2024-02-13 00:00:00+00:00,16.85,16.885140380859376,16.330000000000002,16.51,16.4967919921875,68119.0,0.0,0.0
2024-02-14 00:00:00+00:00,16.37,17.17,16.18530029296875,17.03,17.016375732421874,98220.0,0.0,0.0
2024-02-15 00:00:00+00:00,16.51,17.39,16.51,16.96,16.946431884765627,102797.0,0.0,0.0
2024-02-16 00:00:00+00:00,16.990000000000002,17.330000000000002,16.990000000000002,17.07,17.056343994140626,47249.0,0.0,0.0
2024-02-19 00:00:00+00:00,17.07,17.271500244140626,16.82,17.14,17.126287841796877,465791.0,0.0,0.0
2024-02-20 00:00:00+00:00,17.0,17.0,16.12,16.12,16.107103271484377,117840.0,0.0,0.0
2024-02-21 00:00:00+00:00,16.44,16.52,16.09,16.18,16.1670556640625,616655.0,0.0,0.0
2024-02-22 00:00:00+00:00,15.99,16.69,15.5,16.59,16.576727294921874,71029.0,0.0,0.0
2024-02-23 00:00:00+00:00,16.61,16.66,15.9,16.2,16.187039794921876,616927.0,0.0,0.0
2024-02-26 00:00:00+00:00,15.9,16.24449951171875,15.56,15.700000000000001,15.687440185546876,125089.0,0.0,0.0
2024-02-27 00:00:00+00:00,15.5,15.88,15.34,15.57,15.557543945312501,506414.0,0.0,0.0
2024-02-28 00:00:00+00:00,15.0,15.6,13.540000000000001,14.46,14.448431396484375,1617451.0,0.0,0.0
2024-02-29 00:00:00+00:00,14.700000000000001,14.99,14.27,14.34,14.32852783203125,131744.0,0.0,0.0
2024-03-01 00:00:00+00:00,14.52,14.83,14.0,14.68,14.668255615234376,710016.0,0.0,0.0
2024-03-04 00:00:00+00:00,14.3,14.790000000000001,14.3,14.450000000000001,14.43843994140625,128631.0,0.0,0.0
2024-03-05 00:00:00+00:00,14.43,14.5,14.13,14.3,14.2885595703125,226847.0,0.0,0.0
2024-03-06 00:00:00+00:00,14.35,14.6,14.13,14.13,14.1186962890625,245345.0,0.0,0.0
2024-03-07 00:00:00+00:00,14.36,14.36,13.55,13.55,13.53916015625,169908.0,0.0,0.0
2024-03-08 00:00:00+00:00,13.55,13.84,13.26,13.3,13.2893603515625,591778.0,0.0,0.0
2024-03-11 00:00:00+00:00,13.450000000000001,13.6,13.15,13.25,13.2393994140625,537344.0,0.0,0.0
2024-03-12 00:00:00+00:00,13.0,13.74,13.0,13.700000000000001,13.689039306640625,652597.0,0.0,0.0
2024-03-13 00:00:00+00:00,14.5,15.65,13.521639404296875,13.72,13.7090234375,1195682.0,0.0,0.0
2024-03-14 00:00:00+00:00,13.82,14.59,13.34,14.32,14.308543701171875,1126694.0,0.0,0.0
2024-03-15 00:00:00+00:00,14.3,14.56,14.02,14.26,14.24859130859375,1525658.0,0.0,0.0
2024-03-18 00:00:00+00:00,14.34,14.620000000000001,14.02,14.24,14.228608398437501,462513.0,0.0,0.0
2024-03-19 00:00:00+00:00,14.24,14.48,13.81,13.81,13.798951416015626,496898.0,0.0,0.0
2024-03-20 00:00:00+00:00,13.83,14.02,12.780000000000001,13.33,13.3193359375,340715.0,0.0,0.0
2024-03-21 00:00:00+00:00,13.48,13.809000244140625,13.23,13.34,13.329327392578126,276189.0,0.0,0.0
2024-03-22 00:00:00+00:00,13.44,13.58,13.120000000000001,13.13,13.119495849609375,477630.0,0.0,0.0
2024-03-25 00:00:00+00:00,13.5,13.5,12.64,12.64,12.629887695312501,437124.0,0.0,0.0
2024-03-26 00:00:00+00:00,12.64,13.0,12.410699462890625,12.56,12.549952392578126,1102700.0,0.0,0.0
2024-03-27 00:00:00+00:00,12.5,12.77,12.38,12.58,12.569935302734375,1158042.0,0.0,0.0
2024-03-28 00:00:00+00:00,12.68,13.32,12.455,13.02,13.009583740234376,672275.0,0.0,0.0
2024-04-02 00:00:00+01:00,12.9,13.13,12.38,12.46,12.45003173828125,420287.0,0.0,0.0
2024-04-03 00:00:00+01:00,12.280000000000001,12.49,11.99,12.22,12.210223388671876,460217.0,0.0,0.0
2024-04-04 00:00:00+01:00,12.200000000000001,12.17,12.0,12.0,11.990400390625,293870.0,0.0,0.0
2024-04-05 00:00:00+01:00,11.98,12.037879638671875,11.6,11.65,11.640679931640625,395059.0,0.0,0.0
2024-04-08 00:00:00+01:00,11.61,12.120000000000001,11.495000000000001,12.06,12.0503515625,810772.0,0.0,0.0
2024-04-09 00:00:00+01:00,12.0,12.15,11.790000000000001,11.91,11.900472412109375,413918.0,0.0,0.0
2024-04-10 00:00:00+01:00,11.950000000000001,12.33,11.8725,12.01,12.000391845703126,680979.0,0.0,0.0
2024-04-11 00:00:00+01:00,12.08,12.31,11.868509521484375,11.94,11.930447998046875,280220.0,0.0,0.0
2024-04-12 00:00:00+01:00,12.06,12.290000000000001,11.4,11.450000000000001,11.44083984375,359653.0,0.0,0.0
2024-04-15 00:00:00+01:00,11.41,11.57,11.01,11.4,11.390880126953125,489256.0,0.0,0.0
2024-04-16 00:00:00+01:00,11.200000000000001,11.78,11.07,11.51,11.500792236328126,294117.0,0.0,0.0
2024-04-17 00:00:00+01:00,11.5,11.81050048828125,11.4,11.620000000000001,11.610704345703125,446216.0,0.0,0.0
2024-04-18 00:00:00+01:00,11.43,11.83,11.43,11.71,11.70063232421875,280345.0,0.0,0.0
2024-04-19 00:00:00+01:00,11.8,11.8,11.56,11.68,11.670655517578124,187448.0,0.0,0.0
2024-04-22 00:00:00+01:00,11.5,12.06,11.5,11.72,11.710623779296876,233273.0,0.0,0.0
2024-04-23 00:00:00+01:00,11.870000000000001,11.89,11.72,11.72,11.710623779296876,164436.0,0.0,0.0
2024-04-24 00:00:00+01:00,12.08,12.08,11.370000000000001,11.51,11.500792236328126,185184.0,0.0,0.0
2024-04-25 00:00:00+01:00,11.700000000000001,11.700000000000001,11.1,11.36,11.350911865234375,295818.0,0.0,0.0
2024-04-26 00:00:00+01:00,11.31,11.64,11.230880126953124,11.39,11.380887451171875,144819.0,0.0,0.0
2024-04-29 00:00:00+01:00,11.15,11.82,11.15,11.82,11.81054443359375,119071.0,0.0,0.0
2024-04-30 00:00:00+01:00,11.98,11.99,11.42,11.5,11.490799560546876,199939.0,0.0,0.0
2024-05-01 00:00:00+01:00,12.01,12.01,11.32,11.59,11.5807275390625,165171.0,0.0,0.0
2024-05-02 00:00:00+01:00,11.57,11.66,11.3,11.66,11.65067138671875,305855.0,0.0,0.0
2024-05-03 00:00:00+01:00,11.85,11.96,11.6,11.75,11.740599365234376,158727.0,0.0,0.0
2024-05-07 00:00:00+01:00,12.13,12.19,11.57,11.790000000000001,11.780567626953125,116963.0,0.0,0.0
2024-05-08 00:00:00+01:00,12.15,12.804000244140624,11.99,12.67,12.65986328125,362985.0,0.0,0.0
2024-05-09 00:00:00+01:00,12.65,12.71,12.18,12.66,12.649871826171875,261229.0,0.0,0.0
2024-05-10 00:00:00+01:00,12.47,12.97,12.47,12.89,12.879687500000001,187666.0,0.0,0.0
2024-05-13 00:00:00+01:00,12.8,13.120000000000001,12.58,12.8,12.789759521484376,164449.0,0.0,0.0
2024-05-14 00:00:00+01:00,12.6,13.237950439453126,12.6,13.08,13.0695361328125,166908.0,0.0,0.0
2024-05-15 00:00:00+01:00,13.36,13.48,13.030000000000001,13.450000000000001,13.439239501953125,178857.0,0.0,0.0
2024-05-16 00:00:00+01:00,13.450000000000001,14.0,13.450000000000001,14.0,13.988800048828125,314200.0,0.0,0.0
2024-05-17 00:00:00+01:00,14.13,14.8,13.780000000000001,14.700000000000001,14.68823974609375,558689.0,0.0,0.0
2024-05-20 00:00:00+01:00,24.5,24.98,22.82,22.82,22.8017431640625,8292215.0,0.0,0.0
2024-05-21 00:00:00+01:00,23.02,23.44,22.400000000000002,22.56,22.54195068359375,1407097.0,0.0,0.0
2024-05-22 00:00:00+01:00,22.46,22.64,22.0,22.0,21.98239990234375,723017.0,0.0,0.0
2024-05-23 00:00:00+01:00,21.98,22.47597900390625,21.62,22.3,22.3,1522184.0,1.76,0.0
2024-05-24 00:00:00+01:00,22.240000000000002,22.3,21.68,22.14,22.14,644971.0,0.0,0.0
2024-05-28 00:00:00+01:00,22.2,22.6,22.06,22.5,22.5,311246.0,0.0,0.0
2024-05-29 00:00:00+01:00,22.48,22.6010009765625,22.16,22.3,22.3,1482854.0,0.0,0.0
2024-05-30 00:00:00+01:00,22.5,22.62,22.3,22.32,22.32,138373.0,0.0,0.0
2024-05-31 00:00:00+01:00,22.0,22.48,22.0,22.34,22.34,695505.0,0.0,0.0
2024-06-03 00:00:00+01:00,22.2,22.48,22.1,22.36,22.36,148218.0,0.0,0.0
2024-06-04 00:00:00+01:00,22.36,22.36,21.75,22.0,22.0,1289764.0,0.0,0.0
2024-06-05 00:00:00+01:00,22.36,22.36,21.8,22.02,22.02,295325.0,0.0,0.0
2024-06-06 00:00:00+01:00,22.02,22.145700683593752,21.78,22.04,22.04,463598.0,0.0,0.0
2024-06-07 00:00:00+01:00,22.1,22.2,21.740000000000002,21.98,21.98,799873.0,0.0,0.0
2024-06-10 00:00:00+01:00,21.900000000000002,22.02,21.64,21.64,21.64,588812.0,0.0,0.0
2024-06-11 00:00:00+01:00,21.84,22.1,21.400000000000002,21.42,21.42,323278.0,0.0,0.0
2024-06-12 00:00:00+01:00,21.72,21.72,21.2,21.5,21.5,961776.0,0.0,0.0
2024-06-13 00:00:00+01:00,21.7,21.7,21.0,21.36,21.36,731949.0,0.0,0.0
2024-06-14 00:00:00+01:00,21.72,22.62,21.435,22.62,22.62,1564845.0,0.0,0.0
2024-06-17 00:00:00+01:00,22.42,22.60555908203125,22.05300048828125,22.3,22.3,543001.0,0.0,0.0
2024-06-18 00:00:00+01:00,22.5,22.5,22.011999511718752,22.28,22.28,302283.0,0.0,0.0
2024-06-19 00:00:00+01:00,22.0,22.36,21.94,22.0,22.0,261639.0,0.0,0.0
2024-06-20 00:00:00+01:00,22.5,22.5,21.900000000000002,22.400000000000002,22.400000000000002,298140.0,0.0,0.0
2024-06-21 00:00:00+01:00,22.5,22.900000000000002,22.22,22.38,22.38,374718.0,0.0,0.0
2024-06-24 00:00:00+01:00,22.400000000000002,22.62,22.2,22.38,22.38,182607.0,0.0,0.0
2024-06-25 00:00:00+01:00,22.3,22.32,21.32049072265625,21.92,21.92,1156786.0,0.0,0.0
2024-06-26 00:00:00+01:00,22.0,22.0,21.44,21.740000000000002,21.740000000000002,1321707.0,0.0,0.0
2024-06-27 00:00:00+01:00,21.86,21.92,21.6,21.78,21.78,1192605.0,0.0,0.0
2024-06-28 00:00:00+01:00,23.1,23.21093994140625,22.88800048828125,23.12,23.12,5166863.0,0.0,0.0
2024-07-01 00:00:00+01:00,23.26,23.26,23.06,23.080000000000002,23.080000000000002,904708.0,0.0,0.0
2024-07-02 00:00:00+01:00,23.080000000000002,23.240000000000002,23.06,23.18,23.18,800296.0,0.0,0.0
2024-07-03 00:00:00+01:00,23.84,23.900000000000002,23.78333984375,23.900000000000002,23.900000000000002,8961383.0,0.0,0.0
2024-07-04 00:00:00+01:00,23.92,23.94,23.83340087890625,23.86,23.86,1175939.0,0.0,0.0
2024-07-05 00:00:00+01:00,23.900000000000002,23.96,23.86,23.88,23.88,969052.0,0.0,0.0
2024-07-08 00:00:00+01:00,23.88,24.060000000000002,23.88,23.88,23.88,420214.0,0.0,0.0
2024-07-09 00:00:00+01:00,23.92,23.96,23.86,23.900000000000002,23.900000000000002,1264139.0,0.0,0.0
2024-07-10 00:00:00+01:00,23.88,23.94,23.88,23.900000000000002,23.900000000000002,371085.0,0.0,0.0
2024-07-11 00:00:00+01:00,23.84,23.92,23.82,23.82,23.82,458586.0,0.0,0.0
2024-07-12 00:00:00+01:00,23.82,23.88,23.82,23.88,23.88,681277.0,0.0,0.0
2024-07-15 00:00:00+01:00,23.84,23.88,23.84,23.86,23.86,739304.0,0.0,0.0
2024-07-16 00:00:00+01:00,23.88,23.883859863281252,23.84,23.86,23.86,1130090.0,0.0,0.0
2024-07-17 00:00:00+01:00,23.88,23.88,23.86,23.86,23.86,755831.0,0.0,0.0
2024-07-18 00:00:00+01:00,23.88,23.900000000000002,23.86,23.900000000000002,23.900000000000002,960170.0,0.0,0.0
2024-07-19 00:00:00+01:00,23.900000000000002,23.94,23.86,23.94,23.94,195271.0,0.0,0.0
2024-07-22 00:00:00+01:00,23.88,23.92,23.8,23.84,23.84,3036352.0,0.0,0.0
2024-07-23 00:00:00+01:00,23.82,23.86,23.8,23.82,23.82,1083480.0,0.0,0.0
2024-07-24 00:00:00+01:00,23.84,23.88,23.8,23.8,23.8,1445489.0,0.0,0.0
2024-07-25 00:00:00+01:00,23.84,23.900000000000002,23.8,23.8,23.8,582850.0,0.0,0.0
2024-07-26 00:00:00+01:00,23.96,23.96,23.8,23.8,23.8,675264.0,0.0,0.0
2024-07-29 00:00:00+01:00,23.84,23.88,23.5783203125,23.84,23.84,1403210.0,0.0,0.0
2024-07-30 00:00:00+01:00,23.84,23.88,23.82,23.84,23.84,1286201.0,0.0,0.0
2024-07-31 00:00:00+01:00,23.86,23.88,23.82,23.88,23.88,308556.0,0.0,0.0
2024-08-01 00:00:00+01:00,23.900000000000002,23.900000000000002,23.84,23.84,23.84,139383.0,0.0,0.0
2024-08-02 00:00:00+01:00,24.2,24.2,23.84,23.84,23.84,402227.0,0.0,0.0
2024-08-05 00:00:00+01:00,23.84,23.88,23.8,23.88,23.88,2543161.0,0.0,0.0
2024-08-06 00:00:00+01:00,23.900000000000002,24.060000000000002,23.82,23.88,23.88,805371.0,0.0,0.0
2024-08-07 00:00:00+01:00,23.900000000000002,23.92,23.84,23.86,23.86,1753790.0,0.0,0.0
2024-08-08 00:00:00+01:00,23.86,23.92,23.86,23.88,23.88,191998.0,0.0,0.0
2024-08-09 00:00:00+01:00,23.900000000000002,23.98,23.86,23.98,23.98,289215.0,0.0,0.0
2024-08-12 00:00:00+01:00,23.96,24.0,23.92,24.0,24.0,513766.0,0.0,0.0
2024-08-13 00:00:00+01:00,24.0,24.04,23.94,24.04,24.04,185320.0,0.0,0.0
2024-08-14 00:00:00+01:00,24.0,24.3,23.96,24.3,24.3,300442.0,0.0,0.0
2024-08-15 00:00:00+01:00,24.1,24.12,24.0,24.02,24.02,222740.0,0.0,0.0
2024-08-16 00:00:00+01:00,24.1,24.1,23.98,23.98,23.98,255770.0,0.0,0.0
2024-08-19 00:00:00+01:00,24.080000000000002,24.080000000000002,23.96,24.0,24.0,229725.0,0.0,0.0
2024-08-20 00:00:00+01:00,24.0,24.04,23.98,24.0,24.0,261084.0,0.0,0.0
2024-08-21 00:00:00+01:00,24.080000000000002,24.080000000000002,23.98,24.060000000000002,24.060000000000002,1086506.0,0.0,0.0
2024-08-22 00:00:00+01:00,24.080000000000002,24.080000000000002,24.02,24.060000000000002,24.060000000000002,163317.0,0.0,0.0
2024-08-23 00:00:00+01:00,24.080000000000002,24.080000000000002,24.0,24.080000000000002,24.080000000000002,202364.0,0.0,0.0
2024-08-27 00:00:00+01:00,24.060000000000002,24.18,24.02,24.060000000000002,24.060000000000002,245203.0,0.0,0.0
2024-08-28 00:00:00+01:00,24.02,24.12,24.02,24.04,24.04,349423.0,0.0,0.0
2024-08-29 00:00:00+01:00,24.04,24.12,24.04,24.060000000000002,24.060000000000002,187436.0,0.0,0.0
2024-08-30 00:00:00+01:00,24.16,24.3,24.02,24.26,24.26,1493472.0,0.0,0.0
2024-09-02 00:00:00+01:00,24.240000000000002,24.28,24.22,24.240000000000002,24.240000000000002,397048.0,0.0,0.0
2024-09-03 00:00:00+01:00,24.240000000000002,24.28,24.22,24.22,24.22,526456.0,0.0,0.0
2024-09-04 00:00:00+01:00,24.240000000000002,24.33919921875,24.22,24.240000000000002,24.240000000000002,830622.0,0.0,0.0
2024-09-05 00:00:00+01:00,24.26,24.28,24.240000000000002,24.240000000000002,24.240000000000002,2561655.0,0.0,0.0
2024-09-06 00:00:00+01:00,24.240000000000002,24.3,24.240000000000002,24.240000000000002,24.240000000000002,2621382.0,0.0,0.0
2024-09-09 00:00:00+01:00,24.240000000000002,24.333601074218752,24.240000000000002,24.26,24.26,946993.0,0.0,0.0
2024-09-10 00:00:00+01:00,24.28,24.38,24.240000000000002,24.28,24.28,1955248.0,0.0,0.0
2024-09-11 00:00:00+01:00,24.28,24.3,24.255720214843752,24.26,24.26,3357431.0,0.0,0.0
2024-09-12 00:00:00+01:00,24.28,24.32,24.26,24.3,24.3,1396090.0,0.0,0.0
2024-09-13 00:00:00+01:00,24.26,24.3,24.26,24.26,24.26,539753.0,0.0,0.0
2024-09-16 00:00:00+01:00,24.28,24.3,24.26,24.28,24.28,3548116.0,0.0,0.0
2024-09-17 00:00:00+01:00,24.3,24.3143994140625,24.28,24.28,24.28,6116775.0,0.0,0.0
2024-09-18 00:00:00+01:00,24.28,24.3,24.26,24.28,24.28,1315109.0,0.0,0.0
2024-09-19 00:00:00+01:00,24.28,24.307199707031252,24.28,24.28,24.28,3447049.0,0.0,0.0
2024-09-20 00:00:00+01:00,24.28,24.301000976562502,24.28,24.3,24.3,949712.0,0.0,0.0
2024-09-23 00:00:00+01:00,24.3,24.34,24.28,24.28,24.28,1165867.0,0.0,0.0
2024-09-24 00:00:00+01:00,24.3,24.34,24.29,24.3,24.3,417334.0,0.0,0.0
2024-09-25 00:00:00+01:00,24.32,24.356000976562502,24.28,24.32,24.32,1311755.0,0.0,0.0
2024-09-26 00:00:00+01:00,24.3,24.36,24.3,24.32,24.32,2165924.0,0.0,0.0
2024-09-27 00:00:00+01:00,24.34,24.385,24.32,24.34,24.34,191057.0,0.0,0.0
2024-09-30 00:00:00+01:00,24.36,24.36,24.3,24.36,24.36,418219.0,0.0,0.0
2024-10-01 00:00:00+01:00,24.36,24.38,24.34,24.34,24.34,834978.0,0.0,0.0
2024-10-02 00:00:00+01:00,24.34,24.38,24.34,24.36,24.36,321113.0,0.0,0.0
2024-10-03 00:00:00+01:00,24.36,24.400000000000002,24.36,24.36,24.36,119311.0,0.0,0.0
2024-10-04 00:00:00+01:00,24.400000000000002,24.400000000000002,24.355380859375,24.38,24.38,408506.0,0.0,0.0
2024-10-07 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.400000000000002,24.400000000000002,934866.0,0.0,0.0
2024-10-08 00:00:00+01:00,24.38,24.400000000000002,24.36,24.38,24.38,351909.0,0.0,0.0
2024-10-09 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.36,24.36,373356.0,0.0,0.0
2024-10-10 00:00:00+01:00,24.36,24.400000000000002,24.36,24.38,24.38,566301.0,0.0,0.0
2024-10-11 00:00:00+01:00,24.400000000000002,24.400000000000002,24.36,24.38,24.38,88197.0,0.0,0.0
2024-10-14 00:00:00+01:00,24.42,24.42,24.36,24.36,24.36,2859472.0,0.0,0.0
2024-10-15 00:00:00+01:00,24.38,24.42,24.38,24.400000000000002,24.400000000000002,1387949.0,0.0,0.0
2024-10-16 00:00:00+01:00,24.42,24.42,24.38,24.38,24.38,518018.0,0.0,0.0
2024-10-17 00:00:00+01:00,24.42,24.42,24.378291015625,24.38,24.38,1199504.0,0.0,0.0
2024-10-18 00:00:00+01:00,24.400000000000002,24.52,24.38,24.400000000000002,24.400000000000002,612904.0,0.0,0.0
2024-10-21 00:00:00+01:00,24.42,24.46,24.42,24.44,24.44,937999.0,0.0,0.0
2024-10-22 00:00:00+01:00,24.46,24.48,24.44,24.46,24.46,9890907.0,0.0,0.0
2024-10-23 00:00:00+01:00,24.46,24.46,24.46,24.46,24.46,0.0,0.0,0.0
2024-10-24 00:00:00+01:00,,,,,,,0.0,0.0
2024-10-25 00:00:00+01:00,,,,,,,0.0,0.0
2024-10-28 00:00:00+00:00,,,,,,,0.0,0.0
2024-10-29 00:00:00+00:00,,,,,,,0.0,0.0
2024-10-30 00:00:00+00:00,,,,,,,0.0,0.0
2024-10-31 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-01 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-04 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-05 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-06 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-07 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-08 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-11 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-12 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-13 00:00:00+00:00,,,,,,,0.0,0.0
2024-11-14 00:00:00+00:00,,,,,,,0.0,0.0
1 Datetime Open High Low Close Adj Close Volume Dividends Stock Splits
2 2022-01-04 00:00:00+00:00 29.46 29.98 28.52 28.66 28.56770263671875 169521.0 0.0 0.0
3 2022-01-05 00:00:00+00:00 30.0 30.0 28.46 28.900000000000002 28.806928710937502 128698.0 0.0 0.0
4 2022-01-06 00:00:00+00:00 28.2 28.560000000000002 27.5 27.82 27.73040771484375 374659.0 0.0 0.0
5 2022-01-07 00:00:00+00:00 28.3 28.3 27.400000000000002 27.46 27.37156982421875 80410.0 0.0 0.0
6 2022-01-10 00:00:00+00:00 28.16 28.240000000000002 26.2 26.580000000000002 26.494404296875 135881.0 0.0 0.0
7 2022-01-11 00:00:00+00:00 25.92 27.060000000000002 25.92 26.72 26.6339501953125 71414.0 0.0 0.0
8 2022-01-12 00:00:00+00:00 26.72 26.96 26.060000000000002 26.8 26.713693847656252 68611.0 0.0 0.0
9 2022-01-13 00:00:00+00:00 26.72 27.3239990234375 26.6 27.2 27.11240478515625 155917.0 0.0 0.0
10 2022-01-14 00:00:00+00:00 27.52 27.52 26.36 26.560000000000002 26.474470214843752 66402.0 0.0 0.0
11 2022-01-17 00:00:00+00:00 27.02 27.22 26.28 27.22 27.13234619140625 60092.0 0.0 0.0
12 2022-01-18 00:00:00+00:00 27.66 27.66 26.0 26.86 26.773500976562502 128385.0 0.0 0.0
13 2022-01-19 00:00:00+00:00 27.0 27.46 26.7 27.2 27.11240478515625 75141.0 0.0 0.0
14 2022-01-20 00:00:00+00:00 26.900000000000002 27.7 26.81172119140625 27.54 27.45131103515625 99304.0 0.0 0.0
15 2022-01-21 00:00:00+00:00 27.26 27.88 26.214208984375002 26.38 26.295048828125 123570.0 0.0 0.0
16 2022-01-24 00:00:00+00:00 26.14 26.261599121093752 24.72 24.88 24.799875488281252 148794.0 0.0 0.0
17 2022-01-25 00:00:00+00:00 24.92 25.2 24.580000000000002 24.580000000000002 24.5008447265625 94318.0 0.0 0.0
18 2022-01-26 00:00:00+00:00 25.52 25.52 24.400000000000002 24.66 24.58058349609375 265198.0 0.0 0.0
19 2022-01-27 00:00:00+00:00 24.66 25.12669921875 24.400000000000002 24.82 24.74007080078125 248811.0 0.0 0.0
20 2022-01-28 00:00:00+00:00 24.7 24.88 24.1 24.32 24.2416845703125 146209.0 0.0 0.0
21 2022-01-31 00:00:00+00:00 25.3 25.46 24.3 25.2 25.11884765625 495745.0 0.0 0.0
22 2022-02-01 00:00:00+00:00 25.580000000000002 26.78 25.580000000000002 26.7 26.614016113281252 426366.0 0.0 0.0
23 2022-02-02 00:00:00+00:00 25.5 27.28 25.5 26.38 26.295048828125 134118.0 0.0 0.0
24 2022-02-03 00:00:00+00:00 26.28 26.3639990234375 24.82 24.88 24.799875488281252 168782.0 0.0 0.0
25 2022-02-04 00:00:00+00:00 24.6 25.14 24.400000000000002 24.76 24.680263671875 110543.0 0.0 0.0
26 2022-02-07 00:00:00+00:00 25.04 25.04 24.54 24.54 24.460974121093752 163853.0 0.0 0.0
27 2022-02-08 00:00:00+00:00 24.64 24.64 23.8 24.12 24.04232421875 146007.0 0.0 0.0
28 2022-02-09 00:00:00+00:00 24.5 24.98 24.3 24.7 24.62045654296875 130747.0 0.0 0.0
29 2022-02-10 00:00:00+00:00 24.52 24.7 24.080000000000002 24.46 24.38123046875 113862.0 0.0 0.0
30 2022-02-11 00:00:00+00:00 24.5 24.72 24.1 24.42 24.34135986328125 87108.0 0.0 0.0
31 2022-02-14 00:00:00+00:00 24.42 24.42 23.34 23.98 23.90277587890625 79188.0 0.0 0.0
32 2022-02-15 00:00:00+00:00 23.86 24.560000000000002 23.54 24.22 24.142001953125 175846.0 0.0 0.0
33 2022-02-16 00:00:00+00:00 24.580000000000002 24.580000000000002 23.76 23.98 23.90277587890625 62392.0 0.0 0.0
34 2022-02-17 00:00:00+00:00 24.78 24.78 23.86 23.86 23.7831640625 111791.0 0.0 0.0
35 2022-02-18 00:00:00+00:00 23.84 23.94760009765625 23.36 23.48 23.404384765625 61467.0 0.0 0.0
36 2022-02-21 00:00:00+00:00 23.46 23.64919921875 22.82 23.080000000000002 23.00567138671875 71820.0 0.0 0.0
37 2022-02-22 00:00:00+00:00 24.18 24.18 22.54 23.38 23.30470703125 75721.0 0.0 0.0
38 2022-02-23 00:00:00+00:00 23.78 24.04 23.02 23.02 22.945869140625 122317.0 0.0 0.0
39 2022-02-24 00:00:00+00:00 23.3 23.3 21.96 22.52 22.44747802734375 241118.0 0.0 0.0
40 2022-02-25 00:00:00+00:00 23.0 23.56 22.66 23.32 23.24490234375 147148.0 0.0 0.0
41 2022-02-28 00:00:00+00:00 22.36 24.14 22.36 24.14 24.062258300781252 226698.0 0.0 0.0
42 2022-03-01 00:00:00+00:00 24.080000000000002 24.22 23.5 23.5 23.42432373046875 218356.0 0.0 0.0
43 2022-03-02 00:00:00+00:00 23.7 23.900000000000002 23.26 23.62 23.54393798828125 87219.0 0.0 0.0
44 2022-03-03 00:00:00+00:00 23.26 23.8 22.14 22.14 22.068701171875002 137377.0 0.0 0.0
45 2022-03-04 00:00:00+00:00 22.3 22.92 20.740000000000002 20.740000000000002 20.67321044921875 173972.0 0.0 0.0
46 2022-03-07 00:00:00+00:00 20.740000000000002 21.14 19.5 20.3 20.234625244140627 282380.0 0.0 0.0
47 2022-03-08 00:00:00+00:00 20.3 20.82 19.52 19.52 19.457138671875 268763.0 0.0 0.0
48 2022-03-09 00:00:00+00:00 20.0 21.02 19.73 21.02 20.9523095703125 624876.0 0.0 0.0
49 2022-03-10 00:00:00+00:00 21.22 21.22 20.38 20.44 20.374176025390625 266261.0 0.0 0.0
50 2022-03-11 00:00:00+00:00 20.66 21.52 20.46 20.900000000000002 20.8326953125 139879.0 0.0 0.0
51 2022-03-14 00:00:00+00:00 21.5 21.88 21.1 21.580000000000002 21.51050537109375 87051.0 0.0 0.0
52 2022-03-15 00:00:00+00:00 20.72 21.48 20.72 20.96 20.89250244140625 86783.0 0.0 0.0
53 2022-03-16 00:00:00+00:00 21.580000000000002 22.72 21.36 22.48 22.40760986328125 118783.0 0.0 0.0
54 2022-03-17 00:00:00+00:00 21.68 22.7 21.68 22.46 22.387670898437502 86717.0 0.0 0.0
55 2022-03-18 00:00:00+00:00 21.76 23.32 21.76 23.18 23.10535400390625 147084.0 0.0 0.0
56 2022-03-21 00:00:00+00:00 23.400000000000002 23.400000000000002 22.26 22.62 22.547155761718752 290436.0 0.0 0.0
57 2022-03-22 00:00:00+00:00 23.22 23.22 21.94 22.0 21.929150390625 89172.0 0.0 0.0
58 2022-03-23 00:00:00+00:00 21.68 22.7 21.68 22.56 22.487348632812502 83842.0 0.0 0.0
59 2022-03-24 00:00:00+00:00 21.42 22.64 21.400000000000002 22.400000000000002 22.3278662109375 121267.0 0.0 0.0
60 2022-03-25 00:00:00+00:00 22.5 23.1 21.92 22.66 22.5870263671875 192618.0 0.0 0.0
61 2022-03-28 00:00:00+01:00 22.14 23.32 22.14 22.86 22.78638427734375 109333.0 0.0 0.0
62 2022-03-29 00:00:00+01:00 23.02 23.511201171875 22.8360009765625 23.38 23.30470703125 85895.0 0.0 0.0
63 2022-03-30 00:00:00+01:00 23.82 25.740000000000002 23.82 25.740000000000002 25.657109375 571137.0 0.0 0.0
64 2022-03-31 00:00:00+01:00 25.68 26.2 25.0 26.2 26.11562255859375 458165.0 0.0 0.0
65 2022-04-01 00:00:00+01:00 26.32 26.34 25.580000000000002 25.580000000000002 25.497622070312502 206616.0 0.0 0.0
66 2022-04-04 00:00:00+01:00 26.400000000000002 26.400000000000002 25.2 25.92 25.836530761718752 150039.0 0.0 0.0
67 2022-04-05 00:00:00+01:00 25.94 26.92 25.900000000000002 26.46 26.3747900390625 2241719.0 0.0 0.0
68 2022-04-06 00:00:00+01:00 26.62 26.98 26.32 26.52 26.43459716796875 178598.0 0.0 0.0
69 2022-04-07 00:00:00+01:00 26.86 27.62 26.44 27.18 27.092470703125002 191304.0 0.0 0.0
70 2022-04-08 00:00:00+01:00 27.52 27.72489990234375 26.52 26.62 26.534277343750002 131026.0 0.0 0.0
71 2022-04-11 00:00:00+01:00 26.560000000000002 26.692480468750002 25.88 26.0 25.91627197265625 106445.0 0.0 0.0
72 2022-04-12 00:00:00+01:00 26.0 26.580000000000002 26.0 26.28 26.19536865234375 134222.0 0.0 0.0
73 2022-04-13 00:00:00+01:00 26.62 26.62 25.92 26.3 26.21530517578125 151567.0 0.0 0.0
74 2022-04-14 00:00:00+01:00 26.240000000000002 26.52 25.79534912109375 26.0 25.91627197265625 203268.0 0.0 0.0
75 2022-04-19 00:00:00+01:00 25.8 26.060000000000002 24.96 25.54 25.45775146484375 202763.0 0.0 0.0
76 2022-04-20 00:00:00+01:00 25.740000000000002 25.740000000000002 25.12 25.12 25.039106445312502 133972.0 0.0 0.0
77 2022-04-21 00:00:00+01:00 25.22 25.62 25.1 25.2 25.11884765625 134423.0 0.0 0.0
78 2022-04-22 00:00:00+01:00 24.62 25.38 24.62 25.02 24.93942626953125 148749.0 0.0 0.0
79 2022-04-25 00:00:00+01:00 24.38 24.86 24.18 24.400000000000002 24.32142333984375 283575.0 0.0 0.0
80 2022-04-26 00:00:00+01:00 24.3 24.82 24.22 24.3 24.221743164062502 271554.0 0.0 0.0
81 2022-04-27 00:00:00+01:00 24.0 24.94 23.2 23.46 23.38445068359375 147954.0 0.0 0.0
82 2022-04-28 00:00:00+01:00 23.48 23.90139892578125 23.42 23.76 23.68348388671875 98816.0 0.0 0.0
83 2022-04-29 00:00:00+01:00 23.22 24.16 23.2 24.04 23.9625830078125 139578.0 0.0 0.0
84 2022-05-03 00:00:00+01:00 23.6 24.3 23.18 23.48 23.404384765625 181511.0 0.0 0.0
85 2022-05-04 00:00:00+01:00 23.16 23.26 22.24698974609375 22.44 22.36773681640625 199215.0 0.0 0.0
86 2022-05-05 00:00:00+01:00 23.52 23.52 22.18 22.26 22.1883154296875 468283.0 0.0 0.0
87 2022-05-06 00:00:00+01:00 21.900000000000002 22.06 21.5 22.0 21.929150390625 119246.0 0.0 0.0
88 2022-05-09 00:00:00+01:00 21.88 21.89320068359375 20.8 21.14 21.07192138671875 216918.0 0.0 0.0
89 2022-05-10 00:00:00+01:00 21.3 22.02 21.14 21.52 21.4506982421875 175912.0 0.0 0.0
90 2022-05-11 00:00:00+01:00 22.080000000000002 22.6 21.48 21.92 21.849409179687502 161619.0 0.0 0.0
91 2022-05-12 00:00:00+01:00 21.54 22.0 21.0 21.96 21.88927978515625 162789.0 0.0 0.0
92 2022-05-13 00:00:00+01:00 22.0 22.580000000000002 21.88 22.400000000000002 22.3278662109375 136027.0 0.0 0.0
93 2022-05-16 00:00:00+01:00 22.28 22.32 21.66 21.88 21.80953857421875 169593.0 0.0 0.0
94 2022-05-17 00:00:00+01:00 21.94 22.1 21.580000000000002 21.8 21.7297998046875 230442.0 0.0 0.0
95 2022-05-18 00:00:00+01:00 22.76 22.76 21.34 21.36 21.29121337890625 218130.0 0.0 0.0
96 2022-05-19 00:00:00+01:00 21.56 21.900000000000002 20.82 21.82 21.74973388671875 161985.0 0.0 0.0
97 2022-05-20 00:00:00+01:00 21.88 22.5 21.7 21.76 21.689924316406252 108143.0 0.0 0.0
98 2022-05-23 00:00:00+01:00 21.7 22.26 21.68 21.84 21.76966552734375 114671.0 0.0 0.0
99 2022-05-24 00:00:00+01:00 22.0 22.0 21.22 21.34 21.271279296875 80311.0 0.0 0.0
100 2022-05-25 00:00:00+01:00 21.44 22.240000000000002 21.3510009765625 21.94 21.869345703125 108379.0 0.0 0.0
101 2022-05-26 00:00:00+01:00 22.240000000000002 22.240000000000002 21.66 22.080000000000002 22.023447265625002 54302.0 1.45 0.0
102 2022-05-27 00:00:00+01:00 22.14 22.68 22.04 22.5 22.44237548828125 84161.0 0.0 0.0
103 2022-05-30 00:00:00+01:00 22.8 23.1 22.5 22.68 22.6219140625 92952.0 0.0 0.0
104 2022-05-31 00:00:00+01:00 22.0 23.56 22.0 23.42 23.36001708984375 260541.0 0.0 0.0
105 2022-06-01 00:00:00+01:00 23.52 23.76 22.96 23.48 23.41986328125 169299.0 0.0 0.0
106 2022-06-06 00:00:00+01:00 23.52 23.76 23.080000000000002 23.56 23.49966064453125 62642.0 0.0 0.0
107 2022-06-07 00:00:00+01:00 22.62 23.92 22.62 23.8 23.73904541015625 131089.0 0.0 0.0
108 2022-06-08 00:00:00+01:00 23.88 24.22 23.88 24.060000000000002 23.99837646484375 144324.0 0.0 0.0
109 2022-06-09 00:00:00+01:00 23.72 24.740000000000002 23.48300048828125 24.32 24.25771240234375 197024.0 0.0 0.0
110 2022-06-10 00:00:00+01:00 24.18 24.5 23.68 23.900000000000002 23.838789062500002 391211.0 0.0 0.0
111 2022-06-13 00:00:00+01:00 23.78 24.0 22.88 23.2 23.1405810546875 389306.0 0.0 0.0
112 2022-06-14 00:00:00+01:00 23.18 23.34 22.92 23.04 22.9809912109375 168973.0 0.0 0.0
113 2022-06-15 00:00:00+01:00 22.6 23.18 21.580000000000002 22.26 22.20299072265625 159033.0 0.0 0.0
114 2022-06-16 00:00:00+01:00 22.54 22.54 21.82 21.92 21.86385986328125 154582.0 0.0 0.0
115 2022-06-17 00:00:00+01:00 22.02 22.62 22.0 22.56 22.5022216796875 162701.0 0.0 0.0
116 2022-06-20 00:00:00+01:00 22.54 22.7643994140625 22.3 22.46 22.402475585937502 48492.0 0.0 0.0
117 2022-06-21 00:00:00+01:00 22.52 23.1 22.34 22.740000000000002 22.68176025390625 131960.0 0.0 0.0
118 2022-06-22 00:00:00+01:00 22.94 23.12 22.03 22.96 22.9011962890625 67403.0 0.0 0.0
119 2022-06-23 00:00:00+01:00 23.5 23.5 21.88 22.240000000000002 22.183037109375 191595.0 0.0 0.0
120 2022-06-24 00:00:00+01:00 22.8 23.34 22.580000000000002 23.1 23.04083984375 186503.0 0.0 0.0
121 2022-06-27 00:00:00+01:00 23.080000000000002 23.34 22.78 22.900000000000002 22.84134765625 75108.0 0.0 0.0
122 2022-06-28 00:00:00+01:00 22.84 23.14 22.42 22.6 22.54211669921875 95713.0 0.0 0.0
123 2022-06-29 00:00:00+01:00 22.44 22.580000000000002 21.76 21.8 21.74416748046875 143179.0 0.0 0.0
124 2022-06-30 00:00:00+01:00 21.38 22.0 21.38 21.94 21.88380859375 143371.0 0.0 0.0
125 2022-07-01 00:00:00+01:00 21.0 22.3 21.0 22.14 22.083295898437502 151912.0 0.0 0.0
126 2022-07-04 00:00:00+01:00 22.96 23.12 21.76 21.86 21.80401611328125 163031.0 0.0 0.0
127 2022-07-05 00:00:00+01:00 21.8 22.26 21.1 21.54 21.4848291015625 87873.0 0.0 0.0
128 2022-07-06 00:00:00+01:00 21.8 22.54 21.8 22.5 22.44237548828125 192002.0 0.0 0.0
129 2022-07-07 00:00:00+01:00 22.740000000000002 22.86 22.44739990234375 22.68 22.6219140625 44045.0 0.0 0.0
130 2022-07-08 00:00:00+01:00 22.7 23.1 22.38 23.0 22.94109130859375 54169.0 0.0 0.0
131 2022-07-11 00:00:00+01:00 23.0 23.240000000000002 22.68 23.02 22.961042480468752 28404.0 0.0 0.0
132 2022-07-12 00:00:00+01:00 23.48 23.48 22.38 22.400000000000002 22.3426318359375 58069.0 0.0 0.0
133 2022-07-13 00:00:00+01:00 21.98 22.42 21.54 22.2 22.14314208984375 171315.0 0.0 0.0
134 2022-07-14 00:00:00+01:00 21.6 22.28739990234375 21.42 21.8 21.74416748046875 69105.0 0.0 0.0
135 2022-07-15 00:00:00+01:00 22.240000000000002 22.46 21.42 22.38 22.3226806640625 37962.0 0.0 0.0
136 2022-07-18 00:00:00+01:00 22.52 23.26 22.52 23.1 23.04083984375 57375.0 0.0 0.0
137 2022-07-19 00:00:00+01:00 22.86 23.240000000000002 22.86 23.080000000000002 23.02088623046875 111888.0 0.0 0.0
138 2022-07-20 00:00:00+01:00 23.32 23.7 23.27 23.64 23.57945556640625 101102.0 0.0 0.0
139 2022-07-21 00:00:00+01:00 23.6 24.3 23.52 24.3 24.237763671875 94675.0 0.0 0.0
140 2022-07-22 00:00:00+01:00 24.22 24.66 24.14 24.28 24.21781494140625 106841.0 0.0 0.0
141 2022-07-25 00:00:00+01:00 24.26 24.42 23.96 24.04 23.978430175781252 156132.0 0.0 0.0
142 2022-07-26 00:00:00+01:00 24.1 24.1 23.56 23.56 23.49966064453125 100895.0 0.0 0.0
143 2022-07-27 00:00:00+01:00 23.48 23.94 23.44 23.580000000000002 23.519609375 147619.0 0.0 0.0
144 2022-07-28 00:00:00+01:00 24.32 24.400000000000002 23.84 24.400000000000002 24.337509765625 68667.0 0.0 0.0
145 2022-07-29 00:00:00+01:00 24.28 25.48 24.26 25.14 25.07561279296875 215529.0 0.0 0.0
146 2022-08-01 00:00:00+01:00 26.0 26.0 24.6 24.900000000000002 24.836225585937502 67096.0 0.0 0.0
147 2022-08-02 00:00:00+01:00 24.86 24.900000000000002 24.3 24.52 24.4572021484375 44575.0 0.0 0.0
148 2022-08-03 00:00:00+01:00 25.400000000000002 27.664499511718752 24.740000000000002 27.0 26.93085205078125 363560.0 0.0 0.0
149 2022-08-04 00:00:00+01:00 26.96 27.06300048828125 25.98 26.42 26.352333984375 390933.0 0.0 0.0
150 2022-08-05 00:00:00+01:00 26.28 27.1 26.22 26.54 26.4720263671875 281941.0 0.0 0.0
151 2022-08-08 00:00:00+01:00 26.26 26.84 25.740000000000002 26.02 25.953359375 119579.0 0.0 0.0
152 2022-08-09 00:00:00+01:00 26.0 26.12 25.400000000000002 25.42 25.354895019531252 81157.0 0.0 0.0
153 2022-08-10 00:00:00+01:00 26.0 26.361459960937502 24.84 26.240000000000002 26.1727978515625 236333.0 0.0 0.0
154 2022-08-11 00:00:00+01:00 26.22 26.52 25.94 26.26 26.192744140625 202521.0 0.0 0.0
155 2022-08-12 00:00:00+01:00 26.740000000000002 26.76 26.12 26.68 26.61166748046875 94373.0 0.0 0.0
156 2022-08-15 00:00:00+01:00 26.0 26.92 25.66 26.68 26.61166748046875 130154.0 0.0 0.0
157 2022-08-16 00:00:00+01:00 26.1 26.86 25.34 25.580000000000002 25.5144873046875 220905.0 0.0 0.0
158 2022-08-17 00:00:00+01:00 25.66 26.2 25.32 25.740000000000002 25.674074707031252 194549.0 0.0 0.0
159 2022-08-18 00:00:00+01:00 25.740000000000002 25.8 25.42 25.8 25.7339208984375 73907.0 0.0 0.0
160 2022-08-19 00:00:00+01:00 25.64 25.7 24.38 24.38 24.31755859375 161331.0 0.0 0.0
161 2022-08-22 00:00:00+01:00 24.2 24.42 23.84 24.14 24.07817138671875 309805.0 0.0 0.0
162 2022-08-23 00:00:00+01:00 24.2 24.2 23.34 23.42 23.36001708984375 169026.0 0.0 0.0
163 2022-08-24 00:00:00+01:00 24.44 24.44 23.240000000000002 24.080000000000002 24.01832763671875 213735.0 0.0 0.0
164 2022-08-25 00:00:00+01:00 24.34 24.76 24.14 24.560000000000002 24.49709716796875 103565.0 0.0 0.0
165 2022-08-26 00:00:00+01:00 24.68 25.84 24.418798828125002 24.48 24.4173046875 111767.0 0.0 0.0
166 2022-08-30 00:00:00+01:00 25.0 25.32 24.28 24.64 24.57689208984375 114667.0 0.0 0.0
167 2022-08-31 00:00:00+01:00 24.3 25.14 24.26 24.86 24.79633056640625 159278.0 0.0 0.0
168 2022-09-01 00:00:00+01:00 24.84 24.84 23.28 23.5 23.439814453125 75741.0 0.0 0.0
169 2022-09-02 00:00:00+01:00 23.8 23.900000000000002 23.32 23.86 23.79889404296875 161878.0 0.0 0.0
170 2022-09-05 00:00:00+01:00 23.54 24.04 23.19093994140625 23.5 23.439814453125 89772.0 0.0 0.0
171 2022-09-06 00:00:00+01:00 23.54 24.02 23.31 23.580000000000002 23.519609375 71477.0 0.0 0.0
172 2022-09-07 00:00:00+01:00 23.0 23.72 23.0 23.48 23.41986328125 97993.0 0.0 0.0
173 2022-09-08 00:00:00+01:00 23.400000000000002 23.86 23.12 23.86 23.79889404296875 192900.0 0.0 0.0
174 2022-09-09 00:00:00+01:00 23.7 24.240000000000002 23.67845947265625 24.16 24.098125 59221.0 0.0 0.0
175 2022-09-12 00:00:00+01:00 24.400000000000002 24.400000000000002 23.82 24.04 23.978430175781252 76307.0 0.0 0.0
176 2022-09-13 00:00:00+01:00 24.0 24.76 23.66 23.66 23.599401855468752 155869.0 0.0 0.0
177 2022-09-14 00:00:00+01:00 23.66 24.34 23.54 23.84 23.778940429687502 120233.0 0.0 0.0
178 2022-09-15 00:00:00+01:00 23.22 23.88 23.18 23.34 23.280222167968752 297665.0 0.0 0.0
179 2022-09-16 00:00:00+01:00 23.26 23.32 22.900000000000002 22.92 22.861298828125 144960.0 0.0 0.0
180 2022-09-20 00:00:00+01:00 22.94 24.04 22.6 23.5 23.439814453125 317042.0 0.0 0.0
181 2022-09-21 00:00:00+01:00 23.84 24.36 21.86 23.12 23.0607861328125 273104.0 0.0 0.0
182 2022-09-22 00:00:00+01:00 23.02 23.46 22.8 23.240000000000002 23.18048095703125 330760.0 0.0 0.0
183 2022-09-23 00:00:00+01:00 23.02 23.14 21.900000000000002 22.56 22.5022216796875 152226.0 0.0 0.0
184 2022-09-26 00:00:00+01:00 22.1 22.98 22.1 22.68 22.6219140625 160292.0 0.0 0.0
185 2022-09-27 00:00:00+01:00 22.92 23.52 22.82 22.82 22.761552734375 170562.0 0.0 0.0
186 2022-09-28 00:00:00+01:00 22.1 23.06 21.98 22.86 22.80145263671875 115333.0 0.0 0.0
187 2022-09-29 00:00:00+01:00 22.84 22.900000000000002 22.04 22.36 22.30273193359375 131444.0 0.0 0.0
188 2022-09-30 00:00:00+01:00 22.7 23.18 22.0 22.98 22.92114501953125 721076.0 0.0 0.0
189 2022-10-03 00:00:00+01:00 22.0 23.740000000000002 22.0 23.6 23.5395556640625 411048.0 0.0 0.0
190 2022-10-04 00:00:00+01:00 23.14 24.82 23.14 24.48 24.4173046875 359955.0 0.0 0.0
191 2022-10-05 00:00:00+01:00 24.6 24.6 23.38 23.66 23.599401855468752 787207.0 0.0 0.0
192 2022-10-06 00:00:00+01:00 23.3 24.36 23.3 24.16 24.10596923828125 179826.0 0.77 0.0
193 2022-10-07 00:00:00+01:00 24.32 24.32 23.12 23.28 23.22793701171875 182711.0 0.0 0.0
194 2022-10-10 00:00:00+01:00 23.0 23.28 22.240000000000002 22.44 22.389814453125002 138462.0 0.0 0.0
195 2022-10-11 00:00:00+01:00 22.38 22.72 22.1 22.18 22.1303955078125 148515.0 0.0 0.0
196 2022-10-12 00:00:00+01:00 23.12 23.12 21.88 22.16 22.110439453125 162450.0 0.0 0.0
197 2022-10-13 00:00:00+01:00 22.740000000000002 22.740000000000002 21.12 21.900000000000002 21.851022949218752 326778.0 0.0 0.0
198 2022-10-14 00:00:00+01:00 22.0 22.76 21.82 22.5 22.44968017578125 161983.0 0.0 0.0
199 2022-10-17 00:00:00+01:00 22.86 23.01260009765625 22.2 22.94 22.8886962890625 116551.0 0.0 0.0
200 2022-10-18 00:00:00+01:00 22.26 23.38 22.26 23.12 23.06829345703125 141461.0 0.0 0.0
201 2022-10-19 00:00:00+01:00 23.0 23.16 22.240000000000002 22.36 22.30999267578125 104562.0 0.0 0.0
202 2022-10-20 00:00:00+01:00 22.38 22.72 21.82 22.5 22.44968017578125 152158.0 0.0 0.0
203 2022-10-21 00:00:00+01:00 22.5 23.1 22.28 23.0 22.9485595703125 104972.0 0.0 0.0
204 2022-10-24 00:00:00+01:00 23.02 23.900000000000002 23.0 23.38 23.3277099609375 159898.0 0.0 0.0
205 2022-10-25 00:00:00+01:00 23.72 24.46 23.42 24.16 24.10596923828125 85381.0 0.0 0.0
206 2022-10-26 00:00:00+01:00 24.16 24.2 23.66 24.14 24.0860107421875 117490.0 0.0 0.0
207 2022-10-27 00:00:00+01:00 24.080000000000002 24.54 23.88 24.34 24.285566406250002 238792.0 0.0 0.0
208 2022-10-28 00:00:00+01:00 24.1 24.22 23.719599609375 24.080000000000002 24.0261474609375 122712.0 0.0 0.0
209 2022-10-31 00:00:00+00:00 24.26 24.46 23.66 24.1 24.04610107421875 102273.0 0.0 0.0
210 2022-11-01 00:00:00+00:00 24.5 24.94 24.02 24.22 24.16583251953125 72028.0 0.0 0.0
211 2022-11-02 00:00:00+00:00 24.1 25.0 23.92 24.64 24.584892578125 145464.0 0.0 0.0
212 2022-11-03 00:00:00+00:00 24.28 24.72 23.88 24.04 23.9862353515625 73546.0 0.0 0.0
213 2022-11-04 00:00:00+00:00 24.240000000000002 25.080000000000002 23.60639892578125 24.28 24.2256982421875 69077.0 0.0 0.0
214 2022-11-07 00:00:00+00:00 24.22 25.080000000000002 24.02 24.900000000000002 24.8443115234375 124283.0 0.0 0.0
215 2022-11-08 00:00:00+00:00 24.580000000000002 25.22 24.580000000000002 25.22 25.16359619140625 153287.0 0.0 0.0
216 2022-11-09 00:00:00+00:00 24.98 25.22 24.88 24.98 24.92413330078125 100019.0 0.0 0.0
217 2022-11-10 00:00:00+00:00 24.82 26.54 24.64 26.2 26.14140625 132777.0 0.0 0.0
218 2022-11-11 00:00:00+00:00 26.36 26.86 26.16 26.580000000000002 26.52055419921875 219220.0 0.0 0.0
219 2022-11-14 00:00:00+00:00 26.3 27.1 26.26 26.96 26.89970458984375 128692.0 0.0 0.0
220 2022-11-15 00:00:00+00:00 26.48 27.16 26.14 26.92 26.859794921875 186824.0 0.0 0.0
221 2022-11-16 00:00:00+00:00 27.02 27.04 26.38 26.52 26.4606884765625 107714.0 0.0 0.0
222 2022-11-17 00:00:00+00:00 26.76 26.76 25.8 26.7 26.6402880859375 111413.0 0.0 0.0
223 2022-11-18 00:00:00+00:00 26.88 27.1 26.32 27.1 27.03939208984375 127583.0 0.0 0.0
224 2022-11-21 00:00:00+00:00 27.96 29.15199951171875 27.43699951171875 27.740000000000002 27.677958984375 517109.0 0.0 0.0
225 2022-11-22 00:00:00+00:00 28.0 28.0 26.86 27.66 27.5981396484375 209083.0 0.0 0.0
226 2022-11-23 00:00:00+00:00 27.6 28.34 27.5 28.34 28.27661865234375 458322.0 0.0 0.0
227 2022-11-24 00:00:00+00:00 29.0 29.26 27.6 28.8 28.73558837890625 189652.0 0.0 0.0
228 2022-11-25 00:00:00+00:00 28.400000000000002 29.03300048828125 28.400000000000002 28.900000000000002 28.8353662109375 146017.0 0.0 0.0
229 2022-11-28 00:00:00+00:00 28.7 29.1 28.0 29.1 29.03491943359375 255817.0 0.0 0.0
230 2022-11-29 00:00:00+00:00 29.080000000000002 29.14 28.8 28.900000000000002 28.8353662109375 204232.0 0.0 0.0
231 2022-11-30 00:00:00+00:00 28.76 29.62 28.76 29.5 29.434023437500002 538520.0 0.0 0.0
232 2022-12-01 00:00:00+00:00 29.68 29.900000000000002 29.060000000000002 29.76 29.69344482421875 188618.0 0.0 0.0
233 2022-12-02 00:00:00+00:00 29.88 30.560000000000002 29.3 29.48 29.41406982421875 384388.0 0.0 0.0
234 2022-12-05 00:00:00+00:00 29.36 29.92 28.26 28.28 28.2167529296875 225089.0 0.0 0.0
235 2022-12-06 00:00:00+00:00 28.1 28.48 27.78 27.94 27.8775146484375 320011.0 0.0 0.0
236 2022-12-07 00:00:00+00:00 27.92 28.2 27.64 27.94 27.8775146484375 341034.0 0.0 0.0
237 2022-12-08 00:00:00+00:00 27.78 28.080000000000002 27.72 27.92 27.85756103515625 219670.0 0.0 0.0
238 2022-12-09 00:00:00+00:00 27.400000000000002 28.0 27.400000000000002 28.0 27.937380371093752 138547.0 0.0 0.0
239 2022-12-12 00:00:00+00:00 28.400000000000002 28.76300048828125 27.72 28.240000000000002 28.17684326171875 128168.0 0.0 0.0
240 2022-12-13 00:00:00+00:00 28.34 29.1 27.86 28.38 28.316530761718752 263580.0 0.0 0.0
241 2022-12-14 00:00:00+00:00 28.0 28.36 27.86 28.22 28.15688720703125 62627.0 0.0 0.0
242 2022-12-15 00:00:00+00:00 27.900000000000002 28.18 27.54 27.54 27.478408203125 256065.0 0.0 0.0
243 2022-12-16 00:00:00+00:00 27.5 27.96 27.080000000000002 27.400000000000002 27.33872314453125 147966.0 0.0 0.0
244 2022-12-19 00:00:00+00:00 27.52 27.9739990234375 27.38 27.52 27.4584521484375 62241.0 0.0 0.0
245 2022-12-20 00:00:00+00:00 27.5 27.62 26.8 27.38 27.31876708984375 116737.0 0.0 0.0
246 2022-12-21 00:00:00+00:00 27.64 28.1 27.24030029296875 27.86 27.79769287109375 47330.0 0.0 0.0
247 2022-12-22 00:00:00+00:00 27.86 28.26 27.3 27.48 27.418544921875 59975.0 0.0 0.0
248 2022-12-23 00:00:00+00:00 28.26 28.26 27.240000000000002 27.46 27.3985888671875 37424.0 0.0 0.0
249 2022-12-28 00:00:00+00:00 27.44 27.7 27.22 27.42 27.3586767578125 39217.0 0.0 0.0
250 2022-12-29 00:00:00+00:00 27.04 27.66 27.02 27.62 27.558229980468752 96876.0 0.0 0.0
251 2022-12-30 00:00:00+00:00 26.96 27.66 26.96 27.240000000000002 27.179079589843752 23796.0 0.0 0.0
252 2023-01-03 00:00:00+00:00 27.2 28.22 26.64 27.66 27.5981396484375 68033.0 0.0 0.0
253 2023-01-04 00:00:00+00:00 27.54 27.98 27.1572998046875 27.88 27.81764892578125 68241.0 0.0 0.0
254 2023-01-05 00:00:00+00:00 27.76 28.3 27.562900390625 28.04 27.9772900390625 99643.0 0.0 0.0
255 2023-01-06 00:00:00+00:00 27.68 28.72 27.68 28.6 28.5360400390625 132308.0 0.0 0.0
256 2023-01-09 00:00:00+00:00 27.0 28.72 26.529279785156252 28.0 27.937380371093752 144894.0 0.0 0.0
257 2023-01-10 00:00:00+00:00 29.0 29.0 27.42 27.560000000000002 27.498361816406252 108914.0 0.0 0.0
258 2023-01-11 00:00:00+00:00 28.8 28.8 27.36 28.32 28.2566650390625 117605.0 0.0 0.0
259 2023-01-12 00:00:00+00:00 28.0 28.16 26.67 26.98 26.919658203125 394851.0 0.0 0.0
260 2023-01-13 00:00:00+00:00 26.76 27.0839990234375 25.400000000000002 25.6 25.54274658203125 356966.0 0.0 0.0
261 2023-01-16 00:00:00+00:00 25.0 26.080000000000002 24.86 25.18 25.1236865234375 336471.0 0.0 0.0
262 2023-01-17 00:00:00+00:00 25.22 25.400000000000002 24.92 25.3 25.24341552734375 221386.0 0.0 0.0
263 2023-01-18 00:00:00+00:00 25.66 26.78 25.37659912109375 26.240000000000002 26.181318359375002 1025972.0 0.0 0.0
264 2023-01-19 00:00:00+00:00 27.0 27.0 25.98 26.62 26.56046630859375 102617.0 0.0 0.0
265 2023-01-20 00:00:00+00:00 26.72 27.0 26.34 26.44 26.38086669921875 192758.0 0.0 0.0
266 2023-01-23 00:00:00+00:00 26.48 26.650000000000002 25.86 26.12 26.06158447265625 159375.0 0.0 0.0
267 2023-01-24 00:00:00+00:00 26.3 26.44 25.88 26.060000000000002 26.001718750000002 285494.0 0.0 0.0
268 2023-01-25 00:00:00+00:00 26.5 28.04 26.18 27.740000000000002 27.677958984375 379047.0 0.0 0.0
269 2023-01-26 00:00:00+00:00 27.86 28.26 27.66 27.740000000000002 27.677958984375 234863.0 0.0 0.0
270 2023-01-27 00:00:00+00:00 27.900000000000002 28.48 27.44 28.44 28.37639404296875 96625.0 0.0 0.0
271 2023-01-30 00:00:00+00:00 28.14 28.68 27.88 28.16 28.097021484375002 169732.0 0.0 0.0
272 2023-01-31 00:00:00+00:00 28.060000000000002 28.400000000000002 27.84 28.400000000000002 28.336484375 250688.0 0.0 0.0
273 2023-02-01 00:00:00+00:00 28.2 28.72 27.400000000000002 28.34 28.27661865234375 97416.0 0.0 0.0
274 2023-02-02 00:00:00+00:00 28.68 29.560000000000002 28.1 29.2 29.13469482421875 245261.0 0.0 0.0
275 2023-02-03 00:00:00+00:00 29.66 29.7 28.8 29.28 29.214514160156252 211695.0 0.0 0.0
276 2023-02-06 00:00:00+00:00 29.02 29.48 28.92597900390625 29.04 28.9750537109375 78978.0 0.0 0.0
277 2023-02-07 00:00:00+00:00 28.2 28.98 27.7 28.26 28.196796875 327488.0 0.0 0.0
278 2023-02-08 00:00:00+00:00 28.7 28.7 28.0 28.36 28.296572265625002 88715.0 0.0 0.0
279 2023-02-09 00:00:00+00:00 29.0 29.0 28.44 28.7 28.635812988281252 113023.0 0.0 0.0
280 2023-02-10 00:00:00+00:00 28.8 28.89 28.02 28.02 27.95733642578125 169490.0 0.0 0.0
281 2023-02-13 00:00:00+00:00 27.900000000000002 28.38 27.36 28.38 28.316530761718752 140602.0 0.0 0.0
282 2023-02-14 00:00:00+00:00 27.060000000000002 28.560000000000002 27.060000000000002 28.0 27.937380371093752 107333.0 0.0 0.0
283 2023-02-15 00:00:00+00:00 28.18 28.900000000000002 27.724599609375 28.84 28.77550048828125 129853.0 0.0 0.0
284 2023-02-16 00:00:00+00:00 27.3 29.240000000000002 27.3 29.12 29.05487548828125 63977.0 0.0 0.0
285 2023-02-17 00:00:00+00:00 29.96 29.96 28.5 28.5 28.436262207031252 75842.0 0.0 0.0
286 2023-02-20 00:00:00+00:00 28.400000000000002 28.92 28.3 28.900000000000002 28.8353662109375 44533.0 0.0 0.0
287 2023-02-21 00:00:00+00:00 28.580000000000002 29.14 28.580000000000002 28.8 28.73558837890625 176561.0 0.0 0.0
288 2023-02-22 00:00:00+00:00 28.900000000000002 28.900000000000002 28.48 28.76 28.695681152343752 146264.0 0.0 0.0
289 2023-02-23 00:00:00+00:00 28.82 29.34 28.66 28.88 28.81541015625 86655.0 0.0 0.0
290 2023-02-24 00:00:00+00:00 28.98 28.98 28.240000000000002 28.42 28.3564404296875 69783.0 0.0 0.0
291 2023-02-27 00:00:00+00:00 28.68 29.060000000000002 28.1 28.84 28.77550048828125 78772.0 0.0 0.0
292 2023-02-28 00:00:00+00:00 28.62 29.1 28.580000000000002 28.92 28.855322265625002 386853.0 0.0 0.0
293 2023-03-01 00:00:00+00:00 28.92 29.72 28.86 29.36 29.2943359375 106416.0 0.0 0.0
294 2023-03-02 00:00:00+00:00 29.8 29.82 28.92 29.62 29.55375732421875 60874.0 0.0 0.0
295 2023-03-03 00:00:00+00:00 29.8 29.92 29.22 29.44 29.37416015625 59389.0 0.0 0.0
296 2023-03-06 00:00:00+00:00 29.46 29.54 29.02 29.240000000000002 29.17460693359375 68220.0 0.0 0.0
297 2023-03-07 00:00:00+00:00 28.5 29.6 28.5 29.400000000000002 29.334248046875 69588.0 0.0 0.0
298 2023-03-08 00:00:00+00:00 28.92 29.900000000000002 28.68280029296875 29.64 29.5737109375 57394.0 0.0 0.0
299 2023-03-09 00:00:00+00:00 29.400000000000002 30.0 29.283999023437502 29.92 29.8530859375 85081.0 0.0 0.0
300 2023-03-10 00:00:00+00:00 30.0 30.0 29.0 29.560000000000002 29.4938916015625 121079.0 0.0 0.0
301 2023-03-13 00:00:00+00:00 29.26 29.48 28.48 28.48 28.41630615234375 451156.0 0.0 0.0
302 2023-03-14 00:00:00+00:00 28.5 29.02 28.28 29.02 28.95509765625 173562.0 0.0 0.0
303 2023-03-15 00:00:00+00:00 28.900000000000002 28.9418505859375 25.46 26.46 26.4008251953125 646146.0 0.0 0.0
304 2023-03-16 00:00:00+00:00 26.14 26.88 26.14 26.48 26.420778808593752 240692.0 0.0 0.0
305 2023-03-17 00:00:00+00:00 26.72 27.580000000000002 26.42 26.42 26.3609130859375 145813.0 0.0 0.0
306 2023-03-20 00:00:00+00:00 26.02 27.28 25.82 26.88 26.81988525390625 156224.0 0.0 0.0
307 2023-03-21 00:00:00+00:00 27.12 27.26 26.6 27.2 27.13916748046875 101085.0 0.0 0.0
308 2023-03-22 00:00:00+00:00 27.04 27.28 26.68 27.060000000000002 26.99947998046875 61646.0 0.0 0.0
309 2023-03-23 00:00:00+00:00 27.46 27.84 27.0 27.76 27.69791748046875 238904.0 0.0 0.0
310 2023-03-24 00:00:00+00:00 27.66 27.8639990234375 27.18 27.7 27.6380517578125 151064.0 0.0 0.0
311 2023-03-27 00:00:00+01:00 27.98 28.14 27.0 27.060000000000002 26.99947998046875 242115.0 0.0 0.0
312 2023-03-28 00:00:00+01:00 27.12 27.12 26.34 26.6 26.540510253906252 162045.0 0.0 0.0
313 2023-03-29 00:00:00+01:00 26.64 27.46 26.38 27.240000000000002 27.179079589843752 219929.0 0.0 0.0
314 2023-03-30 00:00:00+01:00 27.76 29.080000000000002 27.650000000000002 28.080000000000002 28.0172021484375 285091.0 0.0 0.0
315 2023-03-31 00:00:00+01:00 28.1 28.14 27.400000000000002 27.580000000000002 27.51831787109375 143041.0 0.0 0.0
316 2023-04-03 00:00:00+01:00 27.580000000000002 27.580000000000002 27.14 27.26 27.19903564453125 100038.0 0.0 0.0
317 2023-04-04 00:00:00+01:00 27.14 27.5535400390625 27.04 27.14 27.0793017578125 89315.0 0.0 0.0
318 2023-04-05 00:00:00+01:00 27.6 27.8 25.48 25.5 25.44297119140625 174325.0 0.0 0.0
319 2023-04-06 00:00:00+01:00 25.6 26.03199951171875 25.46 26.0 25.94185302734375 163437.0 0.0 0.0
320 2023-04-11 00:00:00+01:00 26.0 26.580000000000002 25.86 26.22 26.161359863281252 148621.0 0.0 0.0
321 2023-04-12 00:00:00+01:00 26.68 27.0 26.02 26.64 26.58042236328125 118071.0 0.0 0.0
322 2023-04-13 00:00:00+01:00 26.96 27.400000000000002 26.68 27.18 27.1192138671875 338659.0 0.0 0.0
323 2023-04-14 00:00:00+01:00 27.5 27.86 26.72 26.72 26.66024169921875 188709.0 0.0 0.0
324 2023-04-17 00:00:00+01:00 26.78 27.060000000000002 26.0356005859375 26.98 26.919658203125 260010.0 0.0 0.0
325 2023-04-18 00:00:00+01:00 28.0 28.0 26.86 27.2 27.13916748046875 110566.0 0.0 0.0
326 2023-04-19 00:00:00+01:00 26.8 27.38 26.72 27.240000000000002 27.179079589843752 238055.0 0.0 0.0
327 2023-04-20 00:00:00+01:00 27.78 27.78 26.66 26.66 26.6003759765625 136925.0 0.0 0.0
328 2023-04-21 00:00:00+01:00 26.5 27.400000000000002 26.48 27.02 26.959570312500002 102818.0 0.0 0.0
329 2023-04-24 00:00:00+01:00 26.400000000000002 27.36 26.400000000000002 27.0 26.93961669921875 53770.0 0.0 0.0
330 2023-04-25 00:00:00+01:00 26.78 27.34 26.7 26.96 26.89970458984375 584252.0 0.0 0.0
331 2023-04-26 00:00:00+01:00 26.78 26.82 26.32 26.64 26.58042236328125 82215.0 0.0 0.0
332 2023-04-27 00:00:00+01:00 26.14 26.78 26.14 26.76 26.70015380859375 72994.0 0.0 0.0
333 2023-04-28 00:00:00+01:00 27.18 27.18 26.62 27.0 26.93961669921875 63114.0 0.0 0.0
334 2023-05-02 00:00:00+01:00 26.400000000000002 27.095419921875 26.34 26.34 26.28109130859375 142978.0 0.0 0.0
335 2023-05-03 00:00:00+01:00 26.42 26.5 24.96 25.1 25.043867187500002 350646.0 0.0 0.0
336 2023-05-04 00:00:00+01:00 25.0 25.080000000000002 22.68 22.68 22.62927734375 1493890.0 0.0 0.0
337 2023-05-05 00:00:00+01:00 22.6 22.7 21.92 22.0 21.95079833984375 582476.0 0.0 0.0
338 2023-05-09 00:00:00+01:00 22.5 22.84 21.75010009765625 22.5 22.44968017578125 529565.0 0.0 0.0
339 2023-05-10 00:00:00+01:00 22.5 22.8 21.78 21.8 21.7512451171875 315844.0 0.0 0.0
340 2023-05-11 00:00:00+01:00 21.7 23.38 21.7 23.06 23.008427734375 489035.0 0.0 0.0
341 2023-05-12 00:00:00+01:00 23.34 23.38 22.72 23.38 23.3277099609375 283610.0 0.0 0.0
342 2023-05-15 00:00:00+01:00 23.04 23.62 23.04 23.5 23.44744384765625 388932.0 0.0 0.0
343 2023-05-16 00:00:00+01:00 23.36 23.54 23.02 23.3 23.247890625 395998.0 0.0 0.0
344 2023-05-17 00:00:00+01:00 23.56 23.580000000000002 22.68 22.84 22.78891845703125 423318.0 0.0 0.0
345 2023-05-18 00:00:00+01:00 22.96 23.240000000000002 22.42 22.72 22.669189453125 319457.0 0.0 0.0
346 2023-05-19 00:00:00+01:00 22.5 22.9019091796875 22.04 22.46 22.40976806640625 421569.0 0.0 0.0
347 2023-05-22 00:00:00+01:00 22.78 22.84 22.38 22.8 22.7490087890625 166747.0 0.0 0.0
348 2023-05-23 00:00:00+01:00 23.2 23.22 22.38 22.38 22.3299462890625 309329.0 0.0 0.0
349 2023-05-24 00:00:00+01:00 22.02 22.33969970703125 20.56 20.94 20.893171386718752 512827.0 0.0 0.0
350 2023-05-25 00:00:00+01:00 20.52 21.0 20.32 20.32 20.2745556640625 729567.0 0.0 0.0
351 2023-05-26 00:00:00+01:00 20.88 20.88 19.72 19.78 19.735762939453124 492367.0 0.0 0.0
352 2023-05-30 00:00:00+01:00 19.92 20.0152001953125 19.35 19.41 19.366590576171877 690501.0 0.0 0.0
353 2023-05-31 00:00:00+01:00 20.2 20.2 19.19 19.45 19.40650146484375 317942.0 0.0 0.0
354 2023-06-01 00:00:00+01:00 19.66 19.740000000000002 19.150000000000002 19.47 19.442449951171877 304732.0 1.6 0.0
355 2023-06-02 00:00:00+01:00 20.22 20.22 19.37 19.82 19.79195556640625 278304.0 0.0 0.0
356 2023-06-05 00:00:00+01:00 19.62 19.72 17.92 18.17 18.14428955078125 461315.0 0.0 0.0
357 2023-06-06 00:00:00+01:00 18.07 18.18 17.29 17.45 17.425308837890626 828912.0 0.0 0.0
358 2023-06-07 00:00:00+01:00 17.73 18.41 17.73 18.32 18.294077148437502 554274.0 0.0 0.0
359 2023-06-08 00:00:00+01:00 17.61 18.6747998046875 17.61 18.22 18.19421875 270247.0 0.0 0.0
360 2023-06-09 00:00:00+01:00 18.330000000000002 18.63 17.93 18.52 18.493795166015627 341997.0 0.0 0.0
361 2023-06-12 00:00:00+01:00 18.19 19.12 18.143199462890625 19.12 19.0929443359375 357760.0 0.0 0.0
362 2023-06-13 00:00:00+01:00 19.2 19.77 18.94 19.400000000000002 19.372548828125 648503.0 0.0 0.0
363 2023-06-14 00:00:00+01:00 19.740000000000002 19.92 19.27 19.6 19.572266845703126 362355.0 0.0 0.0
364 2023-06-15 00:00:00+01:00 19.6 19.775000000000002 18.96 19.18 19.152860107421876 437837.0 0.0 0.0
365 2023-06-16 00:00:00+01:00 19.87 19.87 19.065 19.41 19.3825341796875 635867.0 0.0 0.0
366 2023-06-19 00:00:00+01:00 19.37 19.37 18.93 18.95 18.92318603515625 343892.0 0.0 0.0
367 2023-06-20 00:00:00+01:00 19.39 19.39 18.61 18.67 18.64358154296875 240994.0 0.0 0.0
368 2023-06-21 00:00:00+01:00 19.45 19.469520263671875 18.36 18.91 18.8832421875 276880.0 0.0 0.0
369 2023-06-22 00:00:00+01:00 18.95 19.162230224609374 18.37 18.8 18.7733984375 186330.0 0.0 0.0
370 2023-06-23 00:00:00+01:00 18.6 19.04 18.6 18.87 18.843298339843752 189003.0 0.0 0.0
371 2023-06-26 00:00:00+01:00 19.0 19.04719970703125 18.32 18.57 18.543724365234375 411820.0 0.0 0.0
372 2023-06-27 00:00:00+01:00 18.650000000000002 18.77 17.669100341796874 18.03 18.004488525390624 538190.0 0.0 0.0
373 2023-06-28 00:00:00+01:00 18.0 18.2 17.92 18.2 18.174246826171874 210732.0 0.0 0.0
374 2023-06-29 00:00:00+01:00 18.7 18.7 17.54 17.59 17.56510986328125 253575.0 0.0 0.0
375 2023-06-30 00:00:00+01:00 17.67 18.11 17.43 18.1 18.074388427734377 150826.0 0.0 0.0
376 2023-07-03 00:00:00+01:00 17.900000000000002 18.36 17.88 18.330000000000002 18.3040625 791780.0 0.0 0.0
377 2023-07-04 00:00:00+01:00 18.400000000000002 18.522430419921875 18.12 18.42 18.393935546875 287173.0 0.0 0.0
378 2023-07-05 00:00:00+01:00 18.56 18.580000000000002 18.255999755859374 18.36 18.334019775390626 160679.0 0.0 0.0
379 2023-07-06 00:00:00+01:00 18.5 18.54 17.240000000000002 17.51 17.485223388671876 281127.0 0.0 0.0
380 2023-07-07 00:00:00+01:00 17.51 17.51 16.69 17.1 17.07580322265625 290241.0 0.0 0.0
381 2023-07-10 00:00:00+01:00 17.240000000000002 17.77 16.87 16.95 16.926015625 339775.0 0.0 0.0
382 2023-07-11 00:00:00+01:00 17.5 17.5 16.12 16.14 16.117161865234376 371758.0 0.0 0.0
383 2023-07-12 00:00:00+01:00 16.15 17.14 16.12 16.88 16.856114501953126 494734.0 0.0 0.0
384 2023-07-13 00:00:00+01:00 17.0 17.330000000000002 16.85 16.89 16.86610107421875 155535.0 0.0 0.0
385 2023-07-14 00:00:00+01:00 16.8 17.55 16.62 17.12 17.095775146484375 208870.0 0.0 0.0
386 2023-07-17 00:00:00+01:00 17.0 17.17 16.740000000000002 16.9 16.87608642578125 155692.0 0.0 0.0
387 2023-07-18 00:00:00+01:00 17.72 17.72 16.64 16.68 16.656397705078124 132785.0 0.0 0.0
388 2023-07-19 00:00:00+01:00 17.1 17.62 16.87530029296875 17.62 17.595067138671876 396633.0 0.0 0.0
389 2023-07-20 00:00:00+01:00 17.82 17.97 17.59 17.63 17.6050537109375 372626.0 0.0 0.0
390 2023-07-21 00:00:00+01:00 17.86 18.063800048828124 17.6 17.88 17.85469970703125 257740.0 0.0 0.0
391 2023-07-24 00:00:00+01:00 17.6 18.041500244140625 17.48 17.71 17.684940185546875 360104.0 0.0 0.0
392 2023-07-25 00:00:00+01:00 17.740000000000002 18.22 17.57154052734375 17.86 17.834727783203125 209875.0 0.0 0.0
393 2023-07-26 00:00:00+01:00 17.77 18.13 17.71 17.78 17.754842529296877 282136.0 0.0 0.0
394 2023-07-27 00:00:00+01:00 17.78 18.19 17.7 18.06 18.034444580078127 198157.0 0.0 0.0
395 2023-07-28 00:00:00+01:00 18.25 18.25 17.900000000000002 18.0 17.974530029296876 134365.0 0.0 0.0
396 2023-07-31 00:00:00+01:00 17.990000000000002 18.0 17.448499755859377 17.62 17.595067138671876 266973.0 0.0 0.0
397 2023-08-01 00:00:00+01:00 17.44 17.44 14.77 15.8 15.777642822265625 1707985.0 0.0 0.0
398 2023-08-02 00:00:00+01:00 15.700000000000001 16.15 15.700000000000001 15.860000000000001 15.83755859375 597276.0 0.0 0.0
399 2023-08-03 00:00:00+01:00 15.700000000000001 15.875 15.56 15.66 15.637841796875 720097.0 0.0 0.0
400 2023-08-04 00:00:00+01:00 15.89 15.89 15.2875 15.450000000000001 15.428138427734375 130835.0 0.0 0.0
401 2023-08-07 00:00:00+01:00 15.23 15.73 14.88 14.98 14.9588037109375 133228.0 0.0 0.0
402 2023-08-08 00:00:00+01:00 14.8 15.18 14.65 14.93 14.908873291015626 187614.0 0.0 0.0
403 2023-08-09 00:00:00+01:00 15.72 15.9 14.955999755859375 15.06 15.038690185546875 384876.0 0.0 0.0
404 2023-08-10 00:00:00+01:00 15.06 15.11 14.450000000000001 14.5 14.479482421875 509873.0 0.0 0.0
405 2023-08-11 00:00:00+01:00 15.0 15.07 14.6 14.75 14.72912841796875 498841.0 0.0 0.0
406 2023-08-14 00:00:00+01:00 14.75 15.32 14.75 15.11 15.088619384765625 202173.0 0.0 0.0
407 2023-08-15 00:00:00+01:00 15.120000000000001 15.18 14.68 14.84 14.819001464843751 167723.0 0.0 0.0
408 2023-08-16 00:00:00+01:00 14.89 15.08 14.51 14.790000000000001 14.769072265625 172976.0 0.0 0.0
409 2023-08-17 00:00:00+01:00 14.790000000000001 15.32 14.47 14.950000000000001 14.92884521484375 145057.0 0.0 0.0
410 2023-08-18 00:00:00+01:00 14.4 14.96 14.4 14.85 14.828988037109376 246954.0 0.0 0.0
411 2023-08-21 00:00:00+01:00 15.16 15.16 14.73 14.85 14.828988037109376 208997.0 0.0 0.0
412 2023-08-22 00:00:00+01:00 14.82 15.17 14.75 14.85 14.828988037109376 89056.0 0.0 0.0
413 2023-08-23 00:00:00+01:00 14.56 15.05 14.56 14.71 14.6891845703125 494801.0 0.0 0.0
414 2023-08-24 00:00:00+01:00 14.98 14.993909912109375 14.71 14.71 14.6891845703125 102654.0 0.0 0.0
415 2023-08-25 00:00:00+01:00 15.44 15.44 14.700000000000001 14.77 14.749100341796876 136975.0 0.0 0.0
416 2023-08-29 00:00:00+01:00 14.96 15.52 14.85 15.49 15.4680810546875 146752.0 0.0 0.0
417 2023-08-30 00:00:00+01:00 15.49 15.624000244140625 15.18 15.38 15.358237304687501 259486.0 0.0 0.0
418 2023-08-31 00:00:00+01:00 15.35 15.51 15.18 15.25 15.228421630859375 312027.0 0.0 0.0
419 2023-09-01 00:00:00+01:00 15.38 15.41 14.950000000000001 14.99 14.9687890625 122627.0 0.0 0.0
420 2023-09-04 00:00:00+01:00 14.99 15.1 14.83 14.83 14.80901611328125 138450.0 0.0 0.0
421 2023-09-05 00:00:00+01:00 14.8 14.83199951171875 14.42 14.66 14.63925537109375 173206.0 0.0 0.0
422 2023-09-06 00:00:00+01:00 15.0 15.040000000000001 14.44 14.81 14.789044189453126 194887.0 0.0 0.0
423 2023-09-07 00:00:00+01:00 14.83 15.6 14.46 15.530000000000001 15.50802490234375 243553.0 0.0 0.0
424 2023-09-08 00:00:00+01:00 15.0 15.89 15.0 15.89 15.867515869140625 339473.0 0.0 0.0
425 2023-09-11 00:00:00+01:00 16.22 16.32 14.68 14.73 14.709156494140625 274162.0 0.0 0.0
426 2023-09-12 00:00:00+01:00 14.4 14.55 12.620000000000001 14.05 14.03011962890625 695308.0 0.0 0.0
427 2023-09-13 00:00:00+01:00 14.09 15.47 13.790000000000001 15.44 15.41815185546875 359608.0 0.0 0.0
428 2023-09-14 00:00:00+01:00 15.5 16.126199951171877 15.5 16.07 16.0472607421875 818615.0 0.0 0.0
429 2023-09-15 00:00:00+01:00 16.31 16.32 15.57 15.63 15.607884521484376 470826.0 0.0 0.0
430 2023-09-18 00:00:00+01:00 15.44 15.85 15.169410400390625 15.22 15.198463134765625 388020.0 0.0 0.0
431 2023-09-19 00:00:00+01:00 15.11 15.58 14.9039599609375 15.32 15.29832275390625 244500.0 0.0 0.0
432 2023-09-20 00:00:00+01:00 15.44 16.02 15.44 15.88 15.857530517578125 260949.0 0.0 0.0
433 2023-09-21 00:00:00+01:00 15.610000000000001 15.83 15.0 15.19 15.168505859375001 380456.0 0.0 0.0
434 2023-09-22 00:00:00+01:00 15.1 15.48 15.1 15.35 15.328280029296875 144967.0 0.0 0.0
435 2023-09-25 00:00:00+01:00 15.35 15.6 14.960999755859376 15.19 15.168505859375001 326513.0 0.0 0.0
436 2023-09-26 00:00:00+01:00 15.58 15.58 14.58 14.63 14.609298095703124 139051.0 0.0 0.0
437 2023-09-27 00:00:00+01:00 14.58 15.34 14.48 15.13 15.10859130859375 140879.0 0.0 0.0
438 2023-09-28 00:00:00+01:00 15.120000000000001 15.19 14.83 15.0 14.9787744140625 345116.0 0.0 0.0
439 2023-09-29 00:00:00+01:00 15.0 15.610000000000001 15.0 15.47 15.448109130859375 256397.0 0.0 0.0
440 2023-10-02 00:00:00+01:00 15.46 15.67 14.870000000000001 15.040000000000001 15.01871826171875 291241.0 0.0 0.0
441 2023-10-03 00:00:00+01:00 14.71 14.89 14.0 14.05 14.03011962890625 179006.0 0.0 0.0
442 2023-10-04 00:00:00+01:00 13.83 14.290000000000001 13.77 13.81 13.790458984375 237634.0 0.0 0.0
443 2023-10-05 00:00:00+01:00 13.92 14.17 13.85 13.85 13.838919677734376 180284.0 0.85 0.0
444 2023-10-06 00:00:00+01:00 14.450000000000001 14.450000000000001 13.55 13.99 13.978807373046875 116485.0 0.0 0.0
445 2023-10-09 00:00:00+01:00 13.52 14.030000000000001 13.41 13.620000000000001 13.60910400390625 136545.0 0.0 0.0
446 2023-10-10 00:00:00+01:00 13.89 14.55 13.72 14.55 14.538359375 245926.0 0.0 0.0
447 2023-10-11 00:00:00+01:00 14.32 14.52 13.450000000000001 13.52 13.509183349609375 134243.0 0.0 0.0
448 2023-10-12 00:00:00+01:00 14.0 14.0 13.38 13.51 13.49919189453125 112363.0 0.0 0.0
449 2023-10-13 00:00:00+01:00 13.46 13.75 13.1 13.1 13.089520263671876 264982.0 0.0 0.0
450 2023-10-16 00:00:00+01:00 13.1 13.42699951171875 12.69 13.31 13.299351806640626 142869.0 0.0 0.0
451 2023-10-17 00:00:00+01:00 13.21 13.479949951171875 13.09300048828125 13.370000000000001 13.35930419921875 103846.0 0.0 0.0
452 2023-10-18 00:00:00+01:00 13.5 13.5 12.69 12.75 12.7397998046875 586500.0 0.0 0.0
453 2023-10-19 00:00:00+01:00 12.52 13.213499755859376 12.52 13.11 13.09951171875 200672.0 0.0 0.0
454 2023-10-20 00:00:00+01:00 13.07 13.41 12.83 13.18 13.169455566406251 592696.0 0.0 0.0
455 2023-10-23 00:00:00+01:00 13.25 13.4 13.0 13.33 13.3193359375 121413.0 0.0 0.0
456 2023-10-24 00:00:00+01:00 13.42 13.64 13.0 13.1 13.089520263671876 173527.0 0.0 0.0
457 2023-10-25 00:00:00+01:00 13.09 13.34 12.96 13.14 13.129487304687501 113657.0 0.0 0.0
458 2023-10-26 00:00:00+01:00 13.0 13.280000000000001 12.96 13.1 13.089520263671876 162088.0 0.0 0.0
459 2023-10-27 00:00:00+01:00 13.1 13.16 12.85 13.0 12.989599609375 172121.0 0.0 0.0
460 2023-10-30 00:00:00+00:00 13.09 13.200000000000001 12.99 13.06 13.049552001953126 351486.0 0.0 0.0
461 2023-10-31 00:00:00+00:00 13.01 13.3 13.0 13.05 13.039559326171876 380834.0 0.0 0.0
462 2023-11-01 00:00:00+00:00 12.950000000000001 13.120000000000001 12.77843994140625 13.02 13.009583740234376 199402.0 0.0 0.0
463 2023-11-02 00:00:00+00:00 13.1 13.46 13.040000000000001 13.34 13.329327392578126 414055.0 0.0 0.0
464 2023-11-03 00:00:00+00:00 13.6 14.415000000000001 13.52384033203125 14.0 13.988800048828125 348357.0 0.0 0.0
465 2023-11-06 00:00:00+00:00 14.13 14.48 13.530000000000001 13.66 13.649072265625 95127.0 0.0 0.0
466 2023-11-07 00:00:00+00:00 13.5 13.93 13.5 13.84 13.82892822265625 164937.0 0.0 0.0
467 2023-11-08 00:00:00+00:00 13.74 14.0456005859375 13.69 13.8 13.7889599609375 275526.0 0.0 0.0
468 2023-11-09 00:00:00+00:00 13.950000000000001 14.19 13.71550048828125 13.85 13.838919677734376 308199.0 0.0 0.0
469 2023-11-10 00:00:00+00:00 13.73 13.834399414062501 13.22 13.620000000000001 13.60910400390625 211940.0 0.0 0.0
470 2023-11-13 00:00:00+00:00 13.5 13.72 13.4 13.55 13.53916015625 206951.0 0.0 0.0
471 2023-11-14 00:00:00+00:00 13.5 14.41 13.42 14.14 14.128687744140626 714971.0 0.0 0.0
472 2023-11-15 00:00:00+00:00 14.290000000000001 14.99 14.030000000000001 14.52 14.508383789062501 430958.0 0.0 0.0
473 2023-11-16 00:00:00+00:00 14.08 14.505 14.08 14.23 14.218615722656251 193252.0 0.0 0.0
474 2023-11-17 00:00:00+00:00 14.11 14.99 14.11 14.82 14.808143310546875 474070.0 0.0 0.0
475 2023-11-20 00:00:00+00:00 14.77 15.120000000000001 14.77 14.98 14.968016357421876 127160.0 0.0 0.0
476 2023-11-21 00:00:00+00:00 14.98 15.31 14.85 14.88 14.868095703125 312023.0 0.0 0.0
477 2023-11-22 00:00:00+00:00 14.84 15.19 14.8 14.94 14.928048095703126 93813.0 0.0 0.0
478 2023-11-23 00:00:00+00:00 14.96 15.055 14.67 14.88 14.868095703125 89248.0 0.0 0.0
479 2023-11-24 00:00:00+00:00 14.76 14.9 14.67 14.85 14.8381201171875 118893.0 0.0 0.0
480 2023-11-27 00:00:00+00:00 14.530000000000001 14.86 13.98 13.98 13.968815917968751 129900.0 0.0 0.0
481 2023-11-28 00:00:00+00:00 13.84 14.14 13.19 13.34 13.329327392578126 377366.0 0.0 0.0
482 2023-11-29 00:00:00+00:00 13.200000000000001 14.35 13.200000000000001 13.950000000000001 13.93884033203125 471577.0 0.0 0.0
483 2023-11-30 00:00:00+00:00 13.8 14.11800048828125 13.44 13.68 13.669056396484375 348127.0 0.0 0.0
484 2023-12-01 00:00:00+00:00 13.700000000000001 13.84 13.576400146484374 13.73 13.719016113281251 352771.0 0.0 0.0
485 2023-12-04 00:00:00+00:00 14.0 14.0 13.120000000000001 13.16 13.149471435546875 104065.0 0.0 0.0
486 2023-12-05 00:00:00+00:00 13.07 13.200000000000001 12.6 13.0 12.989599609375 303748.0 0.0 0.0
487 2023-12-06 00:00:00+00:00 12.9 13.26 12.9 13.02 13.009583740234376 681974.0 0.0 0.0
488 2023-12-07 00:00:00+00:00 13.4 13.4 12.56 12.82 12.80974365234375 193151.0 0.0 0.0
489 2023-12-08 00:00:00+00:00 12.85 12.98 12.64 12.76 12.749791259765626 169002.0 0.0 0.0
490 2023-12-11 00:00:00+00:00 12.700000000000001 13.530000000000001 12.700000000000001 13.36 13.3493115234375 316496.0 0.0 0.0
491 2023-12-12 00:00:00+00:00 13.33 13.36 12.948399658203126 13.26 13.24939208984375 279752.0 0.0 0.0
492 2023-12-13 00:00:00+00:00 13.4 13.48 13.16 13.41 13.399271240234375 223452.0 0.0 0.0
493 2023-12-14 00:00:00+00:00 13.8 14.59 13.74 14.3 14.2885595703125 258358.0 0.0 0.0
494 2023-12-15 00:00:00+00:00 13.71 14.31 13.71 14.13 14.1186962890625 433550.0 0.0 0.0
495 2023-12-18 00:00:00+00:00 14.38 15.33740966796875 13.89 15.290000000000001 15.277767333984375 256957.0 0.0 0.0
496 2023-12-19 00:00:00+00:00 15.290000000000001 15.700000000000001 15.040000000000001 15.46 15.4476318359375 152997.0 0.0 0.0
497 2023-12-20 00:00:00+00:00 15.75 15.92 15.33 15.83 15.817335205078125 258981.0 0.0 0.0
498 2023-12-21 00:00:00+00:00 15.73 16.03 15.34 16.02 16.007183837890626 160788.0 0.0 0.0
499 2023-12-22 00:00:00+00:00 16.0 16.543089599609374 15.73 16.35 16.336920166015624 183509.0 0.0 0.0
500 2023-12-27 00:00:00+00:00 16.1 16.95 16.0 16.69 16.67664794921875 332319.0 0.0 0.0
501 2023-12-28 00:00:00+00:00 16.29 16.95 16.0 16.6 16.586719970703125 129658.0 0.0 0.0
502 2023-12-29 00:00:00+00:00 16.66 16.77678955078125 16.606290283203126 16.62 16.6067041015625 54474.0 0.0 0.0
503 2024-01-02 00:00:00+00:00 16.9 16.93 15.950000000000001 15.98 15.967215576171876 433331.0 0.0 0.0
504 2024-01-03 00:00:00+00:00 16.45 16.45 15.583499755859375 15.8 15.787359619140625 212305.0 0.0 0.0
505 2024-01-04 00:00:00+00:00 16.18 16.2 15.32 15.5 15.48760009765625 145849.0 0.0 0.0
506 2024-01-05 00:00:00+00:00 15.43 15.63 14.84 15.34 15.327728271484375 178331.0 0.0 0.0
507 2024-01-08 00:00:00+00:00 15.200000000000001 15.88 15.08 15.3 15.287760009765625 93619.0 0.0 0.0
508 2024-01-09 00:00:00+00:00 15.450000000000001 15.32 15.21 15.280000000000001 15.26777587890625 236053.0 0.0 0.0
509 2024-01-10 00:00:00+00:00 15.21 15.51 15.120000000000001 15.16 15.147872314453124 203338.0 0.0 0.0
510 2024-01-11 00:00:00+00:00 15.21 15.44 14.73 14.73 14.71821533203125 128350.0 0.0 0.0
511 2024-01-12 00:00:00+00:00 14.81 15.3 14.81 15.280000000000001 15.26777587890625 126422.0 0.0 0.0
512 2024-01-15 00:00:00+00:00 15.085 15.32 14.86 14.86 14.848111572265625 86831.0 0.0 0.0
513 2024-01-16 00:00:00+00:00 15.08 15.66 14.91 15.39 15.37768798828125 253055.0 0.0 0.0
514 2024-01-17 00:00:00+00:00 15.040000000000001 15.5 14.450000000000001 14.540000000000001 14.528367919921875 114336.0 0.0 0.0
515 2024-01-18 00:00:00+00:00 14.9 15.22 14.59 15.22 15.207823486328126 175262.0 0.0 0.0
516 2024-01-19 00:00:00+00:00 15.450000000000001 15.450000000000001 14.89 14.89 14.87808837890625 93241.0 0.0 0.0
517 2024-01-22 00:00:00+00:00 15.11 15.15 14.835 15.05 15.037960205078125 92117.0 0.0 0.0
518 2024-01-23 00:00:00+00:00 14.51 15.63 14.51 15.3 15.287760009765625 96389.0 0.0 0.0
519 2024-01-24 00:00:00+00:00 15.530000000000001 15.74 15.200000000000001 15.74 15.7274072265625 278489.0 0.0 0.0
520 2024-01-25 00:00:00+00:00 15.32 15.84550048828125 15.030000000000001 15.55 15.537559814453125 476735.0 0.0 0.0
521 2024-01-26 00:00:00+00:00 15.66 16.11 15.26 15.99 15.977208251953126 417225.0 0.0 0.0
522 2024-01-29 00:00:00+00:00 15.91 16.240000000000002 15.69 16.240000000000002 16.227008056640624 112434.0 0.0 0.0
523 2024-01-30 00:00:00+00:00 16.1 16.740000000000002 16.080000000000002 16.65 16.6366796875 156730.0 0.0 0.0
524 2024-01-31 00:00:00+00:00 15.99 16.84 15.99 16.6 16.586719970703125 249055.0 0.0 0.0
525 2024-02-01 00:00:00+00:00 16.55 16.89 16.44 16.78 16.766575927734376 230759.0 0.0 0.0
526 2024-02-02 00:00:00+00:00 16.69 17.0 16.46 16.46 16.446832275390626 170565.0 0.0 0.0
527 2024-02-05 00:00:00+00:00 16.26 16.79 16.175 16.31 16.296951904296876 130266.0 0.0 0.0
528 2024-02-06 00:00:00+00:00 16.4 17.07 16.38 16.78 16.766575927734376 391036.0 0.0 0.0
529 2024-02-07 00:00:00+00:00 16.7 17.16 16.55 17.09 17.076328125 215847.0 0.0 0.0
530 2024-02-08 00:00:00+00:00 17.150000000000002 17.91 17.150000000000002 17.44 17.42604736328125 450151.0 0.0 0.0
531 2024-02-09 00:00:00+00:00 17.46 17.80198974609375 17.07 17.18 17.166256103515625 242803.0 0.0 0.0
532 2024-02-12 00:00:00+00:00 17.25 17.84 16.96 16.990000000000002 16.976407470703126 563881.0 0.0 0.0
533 2024-02-13 00:00:00+00:00 16.85 16.885140380859376 16.330000000000002 16.51 16.4967919921875 68119.0 0.0 0.0
534 2024-02-14 00:00:00+00:00 16.37 17.17 16.18530029296875 17.03 17.016375732421874 98220.0 0.0 0.0
535 2024-02-15 00:00:00+00:00 16.51 17.39 16.51 16.96 16.946431884765627 102797.0 0.0 0.0
536 2024-02-16 00:00:00+00:00 16.990000000000002 17.330000000000002 16.990000000000002 17.07 17.056343994140626 47249.0 0.0 0.0
537 2024-02-19 00:00:00+00:00 17.07 17.271500244140626 16.82 17.14 17.126287841796877 465791.0 0.0 0.0
538 2024-02-20 00:00:00+00:00 17.0 17.0 16.12 16.12 16.107103271484377 117840.0 0.0 0.0
539 2024-02-21 00:00:00+00:00 16.44 16.52 16.09 16.18 16.1670556640625 616655.0 0.0 0.0
540 2024-02-22 00:00:00+00:00 15.99 16.69 15.5 16.59 16.576727294921874 71029.0 0.0 0.0
541 2024-02-23 00:00:00+00:00 16.61 16.66 15.9 16.2 16.187039794921876 616927.0 0.0 0.0
542 2024-02-26 00:00:00+00:00 15.9 16.24449951171875 15.56 15.700000000000001 15.687440185546876 125089.0 0.0 0.0
543 2024-02-27 00:00:00+00:00 15.5 15.88 15.34 15.57 15.557543945312501 506414.0 0.0 0.0
544 2024-02-28 00:00:00+00:00 15.0 15.6 13.540000000000001 14.46 14.448431396484375 1617451.0 0.0 0.0
545 2024-02-29 00:00:00+00:00 14.700000000000001 14.99 14.27 14.34 14.32852783203125 131744.0 0.0 0.0
546 2024-03-01 00:00:00+00:00 14.52 14.83 14.0 14.68 14.668255615234376 710016.0 0.0 0.0
547 2024-03-04 00:00:00+00:00 14.3 14.790000000000001 14.3 14.450000000000001 14.43843994140625 128631.0 0.0 0.0
548 2024-03-05 00:00:00+00:00 14.43 14.5 14.13 14.3 14.2885595703125 226847.0 0.0 0.0
549 2024-03-06 00:00:00+00:00 14.35 14.6 14.13 14.13 14.1186962890625 245345.0 0.0 0.0
550 2024-03-07 00:00:00+00:00 14.36 14.36 13.55 13.55 13.53916015625 169908.0 0.0 0.0
551 2024-03-08 00:00:00+00:00 13.55 13.84 13.26 13.3 13.2893603515625 591778.0 0.0 0.0
552 2024-03-11 00:00:00+00:00 13.450000000000001 13.6 13.15 13.25 13.2393994140625 537344.0 0.0 0.0
553 2024-03-12 00:00:00+00:00 13.0 13.74 13.0 13.700000000000001 13.689039306640625 652597.0 0.0 0.0
554 2024-03-13 00:00:00+00:00 14.5 15.65 13.521639404296875 13.72 13.7090234375 1195682.0 0.0 0.0
555 2024-03-14 00:00:00+00:00 13.82 14.59 13.34 14.32 14.308543701171875 1126694.0 0.0 0.0
556 2024-03-15 00:00:00+00:00 14.3 14.56 14.02 14.26 14.24859130859375 1525658.0 0.0 0.0
557 2024-03-18 00:00:00+00:00 14.34 14.620000000000001 14.02 14.24 14.228608398437501 462513.0 0.0 0.0
558 2024-03-19 00:00:00+00:00 14.24 14.48 13.81 13.81 13.798951416015626 496898.0 0.0 0.0
559 2024-03-20 00:00:00+00:00 13.83 14.02 12.780000000000001 13.33 13.3193359375 340715.0 0.0 0.0
560 2024-03-21 00:00:00+00:00 13.48 13.809000244140625 13.23 13.34 13.329327392578126 276189.0 0.0 0.0
561 2024-03-22 00:00:00+00:00 13.44 13.58 13.120000000000001 13.13 13.119495849609375 477630.0 0.0 0.0
562 2024-03-25 00:00:00+00:00 13.5 13.5 12.64 12.64 12.629887695312501 437124.0 0.0 0.0
563 2024-03-26 00:00:00+00:00 12.64 13.0 12.410699462890625 12.56 12.549952392578126 1102700.0 0.0 0.0
564 2024-03-27 00:00:00+00:00 12.5 12.77 12.38 12.58 12.569935302734375 1158042.0 0.0 0.0
565 2024-03-28 00:00:00+00:00 12.68 13.32 12.455 13.02 13.009583740234376 672275.0 0.0 0.0
566 2024-04-02 00:00:00+01:00 12.9 13.13 12.38 12.46 12.45003173828125 420287.0 0.0 0.0
567 2024-04-03 00:00:00+01:00 12.280000000000001 12.49 11.99 12.22 12.210223388671876 460217.0 0.0 0.0
568 2024-04-04 00:00:00+01:00 12.200000000000001 12.17 12.0 12.0 11.990400390625 293870.0 0.0 0.0
569 2024-04-05 00:00:00+01:00 11.98 12.037879638671875 11.6 11.65 11.640679931640625 395059.0 0.0 0.0
570 2024-04-08 00:00:00+01:00 11.61 12.120000000000001 11.495000000000001 12.06 12.0503515625 810772.0 0.0 0.0
571 2024-04-09 00:00:00+01:00 12.0 12.15 11.790000000000001 11.91 11.900472412109375 413918.0 0.0 0.0
572 2024-04-10 00:00:00+01:00 11.950000000000001 12.33 11.8725 12.01 12.000391845703126 680979.0 0.0 0.0
573 2024-04-11 00:00:00+01:00 12.08 12.31 11.868509521484375 11.94 11.930447998046875 280220.0 0.0 0.0
574 2024-04-12 00:00:00+01:00 12.06 12.290000000000001 11.4 11.450000000000001 11.44083984375 359653.0 0.0 0.0
575 2024-04-15 00:00:00+01:00 11.41 11.57 11.01 11.4 11.390880126953125 489256.0 0.0 0.0
576 2024-04-16 00:00:00+01:00 11.200000000000001 11.78 11.07 11.51 11.500792236328126 294117.0 0.0 0.0
577 2024-04-17 00:00:00+01:00 11.5 11.81050048828125 11.4 11.620000000000001 11.610704345703125 446216.0 0.0 0.0
578 2024-04-18 00:00:00+01:00 11.43 11.83 11.43 11.71 11.70063232421875 280345.0 0.0 0.0
579 2024-04-19 00:00:00+01:00 11.8 11.8 11.56 11.68 11.670655517578124 187448.0 0.0 0.0
580 2024-04-22 00:00:00+01:00 11.5 12.06 11.5 11.72 11.710623779296876 233273.0 0.0 0.0
581 2024-04-23 00:00:00+01:00 11.870000000000001 11.89 11.72 11.72 11.710623779296876 164436.0 0.0 0.0
582 2024-04-24 00:00:00+01:00 12.08 12.08 11.370000000000001 11.51 11.500792236328126 185184.0 0.0 0.0
583 2024-04-25 00:00:00+01:00 11.700000000000001 11.700000000000001 11.1 11.36 11.350911865234375 295818.0 0.0 0.0
584 2024-04-26 00:00:00+01:00 11.31 11.64 11.230880126953124 11.39 11.380887451171875 144819.0 0.0 0.0
585 2024-04-29 00:00:00+01:00 11.15 11.82 11.15 11.82 11.81054443359375 119071.0 0.0 0.0
586 2024-04-30 00:00:00+01:00 11.98 11.99 11.42 11.5 11.490799560546876 199939.0 0.0 0.0
587 2024-05-01 00:00:00+01:00 12.01 12.01 11.32 11.59 11.5807275390625 165171.0 0.0 0.0
588 2024-05-02 00:00:00+01:00 11.57 11.66 11.3 11.66 11.65067138671875 305855.0 0.0 0.0
589 2024-05-03 00:00:00+01:00 11.85 11.96 11.6 11.75 11.740599365234376 158727.0 0.0 0.0
590 2024-05-07 00:00:00+01:00 12.13 12.19 11.57 11.790000000000001 11.780567626953125 116963.0 0.0 0.0
591 2024-05-08 00:00:00+01:00 12.15 12.804000244140624 11.99 12.67 12.65986328125 362985.0 0.0 0.0
592 2024-05-09 00:00:00+01:00 12.65 12.71 12.18 12.66 12.649871826171875 261229.0 0.0 0.0
593 2024-05-10 00:00:00+01:00 12.47 12.97 12.47 12.89 12.879687500000001 187666.0 0.0 0.0
594 2024-05-13 00:00:00+01:00 12.8 13.120000000000001 12.58 12.8 12.789759521484376 164449.0 0.0 0.0
595 2024-05-14 00:00:00+01:00 12.6 13.237950439453126 12.6 13.08 13.0695361328125 166908.0 0.0 0.0
596 2024-05-15 00:00:00+01:00 13.36 13.48 13.030000000000001 13.450000000000001 13.439239501953125 178857.0 0.0 0.0
597 2024-05-16 00:00:00+01:00 13.450000000000001 14.0 13.450000000000001 14.0 13.988800048828125 314200.0 0.0 0.0
598 2024-05-17 00:00:00+01:00 14.13 14.8 13.780000000000001 14.700000000000001 14.68823974609375 558689.0 0.0 0.0
599 2024-05-20 00:00:00+01:00 24.5 24.98 22.82 22.82 22.8017431640625 8292215.0 0.0 0.0
600 2024-05-21 00:00:00+01:00 23.02 23.44 22.400000000000002 22.56 22.54195068359375 1407097.0 0.0 0.0
601 2024-05-22 00:00:00+01:00 22.46 22.64 22.0 22.0 21.98239990234375 723017.0 0.0 0.0
602 2024-05-23 00:00:00+01:00 21.98 22.47597900390625 21.62 22.3 22.3 1522184.0 1.76 0.0
603 2024-05-24 00:00:00+01:00 22.240000000000002 22.3 21.68 22.14 22.14 644971.0 0.0 0.0
604 2024-05-28 00:00:00+01:00 22.2 22.6 22.06 22.5 22.5 311246.0 0.0 0.0
605 2024-05-29 00:00:00+01:00 22.48 22.6010009765625 22.16 22.3 22.3 1482854.0 0.0 0.0
606 2024-05-30 00:00:00+01:00 22.5 22.62 22.3 22.32 22.32 138373.0 0.0 0.0
607 2024-05-31 00:00:00+01:00 22.0 22.48 22.0 22.34 22.34 695505.0 0.0 0.0
608 2024-06-03 00:00:00+01:00 22.2 22.48 22.1 22.36 22.36 148218.0 0.0 0.0
609 2024-06-04 00:00:00+01:00 22.36 22.36 21.75 22.0 22.0 1289764.0 0.0 0.0
610 2024-06-05 00:00:00+01:00 22.36 22.36 21.8 22.02 22.02 295325.0 0.0 0.0
611 2024-06-06 00:00:00+01:00 22.02 22.145700683593752 21.78 22.04 22.04 463598.0 0.0 0.0
612 2024-06-07 00:00:00+01:00 22.1 22.2 21.740000000000002 21.98 21.98 799873.0 0.0 0.0
613 2024-06-10 00:00:00+01:00 21.900000000000002 22.02 21.64 21.64 21.64 588812.0 0.0 0.0
614 2024-06-11 00:00:00+01:00 21.84 22.1 21.400000000000002 21.42 21.42 323278.0 0.0 0.0
615 2024-06-12 00:00:00+01:00 21.72 21.72 21.2 21.5 21.5 961776.0 0.0 0.0
616 2024-06-13 00:00:00+01:00 21.7 21.7 21.0 21.36 21.36 731949.0 0.0 0.0
617 2024-06-14 00:00:00+01:00 21.72 22.62 21.435 22.62 22.62 1564845.0 0.0 0.0
618 2024-06-17 00:00:00+01:00 22.42 22.60555908203125 22.05300048828125 22.3 22.3 543001.0 0.0 0.0
619 2024-06-18 00:00:00+01:00 22.5 22.5 22.011999511718752 22.28 22.28 302283.0 0.0 0.0
620 2024-06-19 00:00:00+01:00 22.0 22.36 21.94 22.0 22.0 261639.0 0.0 0.0
621 2024-06-20 00:00:00+01:00 22.5 22.5 21.900000000000002 22.400000000000002 22.400000000000002 298140.0 0.0 0.0
622 2024-06-21 00:00:00+01:00 22.5 22.900000000000002 22.22 22.38 22.38 374718.0 0.0 0.0
623 2024-06-24 00:00:00+01:00 22.400000000000002 22.62 22.2 22.38 22.38 182607.0 0.0 0.0
624 2024-06-25 00:00:00+01:00 22.3 22.32 21.32049072265625 21.92 21.92 1156786.0 0.0 0.0
625 2024-06-26 00:00:00+01:00 22.0 22.0 21.44 21.740000000000002 21.740000000000002 1321707.0 0.0 0.0
626 2024-06-27 00:00:00+01:00 21.86 21.92 21.6 21.78 21.78 1192605.0 0.0 0.0
627 2024-06-28 00:00:00+01:00 23.1 23.21093994140625 22.88800048828125 23.12 23.12 5166863.0 0.0 0.0
628 2024-07-01 00:00:00+01:00 23.26 23.26 23.06 23.080000000000002 23.080000000000002 904708.0 0.0 0.0
629 2024-07-02 00:00:00+01:00 23.080000000000002 23.240000000000002 23.06 23.18 23.18 800296.0 0.0 0.0
630 2024-07-03 00:00:00+01:00 23.84 23.900000000000002 23.78333984375 23.900000000000002 23.900000000000002 8961383.0 0.0 0.0
631 2024-07-04 00:00:00+01:00 23.92 23.94 23.83340087890625 23.86 23.86 1175939.0 0.0 0.0
632 2024-07-05 00:00:00+01:00 23.900000000000002 23.96 23.86 23.88 23.88 969052.0 0.0 0.0
633 2024-07-08 00:00:00+01:00 23.88 24.060000000000002 23.88 23.88 23.88 420214.0 0.0 0.0
634 2024-07-09 00:00:00+01:00 23.92 23.96 23.86 23.900000000000002 23.900000000000002 1264139.0 0.0 0.0
635 2024-07-10 00:00:00+01:00 23.88 23.94 23.88 23.900000000000002 23.900000000000002 371085.0 0.0 0.0
636 2024-07-11 00:00:00+01:00 23.84 23.92 23.82 23.82 23.82 458586.0 0.0 0.0
637 2024-07-12 00:00:00+01:00 23.82 23.88 23.82 23.88 23.88 681277.0 0.0 0.0
638 2024-07-15 00:00:00+01:00 23.84 23.88 23.84 23.86 23.86 739304.0 0.0 0.0
639 2024-07-16 00:00:00+01:00 23.88 23.883859863281252 23.84 23.86 23.86 1130090.0 0.0 0.0
640 2024-07-17 00:00:00+01:00 23.88 23.88 23.86 23.86 23.86 755831.0 0.0 0.0
641 2024-07-18 00:00:00+01:00 23.88 23.900000000000002 23.86 23.900000000000002 23.900000000000002 960170.0 0.0 0.0
642 2024-07-19 00:00:00+01:00 23.900000000000002 23.94 23.86 23.94 23.94 195271.0 0.0 0.0
643 2024-07-22 00:00:00+01:00 23.88 23.92 23.8 23.84 23.84 3036352.0 0.0 0.0
644 2024-07-23 00:00:00+01:00 23.82 23.86 23.8 23.82 23.82 1083480.0 0.0 0.0
645 2024-07-24 00:00:00+01:00 23.84 23.88 23.8 23.8 23.8 1445489.0 0.0 0.0
646 2024-07-25 00:00:00+01:00 23.84 23.900000000000002 23.8 23.8 23.8 582850.0 0.0 0.0
647 2024-07-26 00:00:00+01:00 23.96 23.96 23.8 23.8 23.8 675264.0 0.0 0.0
648 2024-07-29 00:00:00+01:00 23.84 23.88 23.5783203125 23.84 23.84 1403210.0 0.0 0.0
649 2024-07-30 00:00:00+01:00 23.84 23.88 23.82 23.84 23.84 1286201.0 0.0 0.0
650 2024-07-31 00:00:00+01:00 23.86 23.88 23.82 23.88 23.88 308556.0 0.0 0.0
651 2024-08-01 00:00:00+01:00 23.900000000000002 23.900000000000002 23.84 23.84 23.84 139383.0 0.0 0.0
652 2024-08-02 00:00:00+01:00 24.2 24.2 23.84 23.84 23.84 402227.0 0.0 0.0
653 2024-08-05 00:00:00+01:00 23.84 23.88 23.8 23.88 23.88 2543161.0 0.0 0.0
654 2024-08-06 00:00:00+01:00 23.900000000000002 24.060000000000002 23.82 23.88 23.88 805371.0 0.0 0.0
655 2024-08-07 00:00:00+01:00 23.900000000000002 23.92 23.84 23.86 23.86 1753790.0 0.0 0.0
656 2024-08-08 00:00:00+01:00 23.86 23.92 23.86 23.88 23.88 191998.0 0.0 0.0
657 2024-08-09 00:00:00+01:00 23.900000000000002 23.98 23.86 23.98 23.98 289215.0 0.0 0.0
658 2024-08-12 00:00:00+01:00 23.96 24.0 23.92 24.0 24.0 513766.0 0.0 0.0
659 2024-08-13 00:00:00+01:00 24.0 24.04 23.94 24.04 24.04 185320.0 0.0 0.0
660 2024-08-14 00:00:00+01:00 24.0 24.3 23.96 24.3 24.3 300442.0 0.0 0.0
661 2024-08-15 00:00:00+01:00 24.1 24.12 24.0 24.02 24.02 222740.0 0.0 0.0
662 2024-08-16 00:00:00+01:00 24.1 24.1 23.98 23.98 23.98 255770.0 0.0 0.0
663 2024-08-19 00:00:00+01:00 24.080000000000002 24.080000000000002 23.96 24.0 24.0 229725.0 0.0 0.0
664 2024-08-20 00:00:00+01:00 24.0 24.04 23.98 24.0 24.0 261084.0 0.0 0.0
665 2024-08-21 00:00:00+01:00 24.080000000000002 24.080000000000002 23.98 24.060000000000002 24.060000000000002 1086506.0 0.0 0.0
666 2024-08-22 00:00:00+01:00 24.080000000000002 24.080000000000002 24.02 24.060000000000002 24.060000000000002 163317.0 0.0 0.0
667 2024-08-23 00:00:00+01:00 24.080000000000002 24.080000000000002 24.0 24.080000000000002 24.080000000000002 202364.0 0.0 0.0
668 2024-08-27 00:00:00+01:00 24.060000000000002 24.18 24.02 24.060000000000002 24.060000000000002 245203.0 0.0 0.0
669 2024-08-28 00:00:00+01:00 24.02 24.12 24.02 24.04 24.04 349423.0 0.0 0.0
670 2024-08-29 00:00:00+01:00 24.04 24.12 24.04 24.060000000000002 24.060000000000002 187436.0 0.0 0.0
671 2024-08-30 00:00:00+01:00 24.16 24.3 24.02 24.26 24.26 1493472.0 0.0 0.0
672 2024-09-02 00:00:00+01:00 24.240000000000002 24.28 24.22 24.240000000000002 24.240000000000002 397048.0 0.0 0.0
673 2024-09-03 00:00:00+01:00 24.240000000000002 24.28 24.22 24.22 24.22 526456.0 0.0 0.0
674 2024-09-04 00:00:00+01:00 24.240000000000002 24.33919921875 24.22 24.240000000000002 24.240000000000002 830622.0 0.0 0.0
675 2024-09-05 00:00:00+01:00 24.26 24.28 24.240000000000002 24.240000000000002 24.240000000000002 2561655.0 0.0 0.0
676 2024-09-06 00:00:00+01:00 24.240000000000002 24.3 24.240000000000002 24.240000000000002 24.240000000000002 2621382.0 0.0 0.0
677 2024-09-09 00:00:00+01:00 24.240000000000002 24.333601074218752 24.240000000000002 24.26 24.26 946993.0 0.0 0.0
678 2024-09-10 00:00:00+01:00 24.28 24.38 24.240000000000002 24.28 24.28 1955248.0 0.0 0.0
679 2024-09-11 00:00:00+01:00 24.28 24.3 24.255720214843752 24.26 24.26 3357431.0 0.0 0.0
680 2024-09-12 00:00:00+01:00 24.28 24.32 24.26 24.3 24.3 1396090.0 0.0 0.0
681 2024-09-13 00:00:00+01:00 24.26 24.3 24.26 24.26 24.26 539753.0 0.0 0.0
682 2024-09-16 00:00:00+01:00 24.28 24.3 24.26 24.28 24.28 3548116.0 0.0 0.0
683 2024-09-17 00:00:00+01:00 24.3 24.3143994140625 24.28 24.28 24.28 6116775.0 0.0 0.0
684 2024-09-18 00:00:00+01:00 24.28 24.3 24.26 24.28 24.28 1315109.0 0.0 0.0
685 2024-09-19 00:00:00+01:00 24.28 24.307199707031252 24.28 24.28 24.28 3447049.0 0.0 0.0
686 2024-09-20 00:00:00+01:00 24.28 24.301000976562502 24.28 24.3 24.3 949712.0 0.0 0.0
687 2024-09-23 00:00:00+01:00 24.3 24.34 24.28 24.28 24.28 1165867.0 0.0 0.0
688 2024-09-24 00:00:00+01:00 24.3 24.34 24.29 24.3 24.3 417334.0 0.0 0.0
689 2024-09-25 00:00:00+01:00 24.32 24.356000976562502 24.28 24.32 24.32 1311755.0 0.0 0.0
690 2024-09-26 00:00:00+01:00 24.3 24.36 24.3 24.32 24.32 2165924.0 0.0 0.0
691 2024-09-27 00:00:00+01:00 24.34 24.385 24.32 24.34 24.34 191057.0 0.0 0.0
692 2024-09-30 00:00:00+01:00 24.36 24.36 24.3 24.36 24.36 418219.0 0.0 0.0
693 2024-10-01 00:00:00+01:00 24.36 24.38 24.34 24.34 24.34 834978.0 0.0 0.0
694 2024-10-02 00:00:00+01:00 24.34 24.38 24.34 24.36 24.36 321113.0 0.0 0.0
695 2024-10-03 00:00:00+01:00 24.36 24.400000000000002 24.36 24.36 24.36 119311.0 0.0 0.0
696 2024-10-04 00:00:00+01:00 24.400000000000002 24.400000000000002 24.355380859375 24.38 24.38 408506.0 0.0 0.0
697 2024-10-07 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.400000000000002 24.400000000000002 934866.0 0.0 0.0
698 2024-10-08 00:00:00+01:00 24.38 24.400000000000002 24.36 24.38 24.38 351909.0 0.0 0.0
699 2024-10-09 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.36 24.36 373356.0 0.0 0.0
700 2024-10-10 00:00:00+01:00 24.36 24.400000000000002 24.36 24.38 24.38 566301.0 0.0 0.0
701 2024-10-11 00:00:00+01:00 24.400000000000002 24.400000000000002 24.36 24.38 24.38 88197.0 0.0 0.0
702 2024-10-14 00:00:00+01:00 24.42 24.42 24.36 24.36 24.36 2859472.0 0.0 0.0
703 2024-10-15 00:00:00+01:00 24.38 24.42 24.38 24.400000000000002 24.400000000000002 1387949.0 0.0 0.0
704 2024-10-16 00:00:00+01:00 24.42 24.42 24.38 24.38 24.38 518018.0 0.0 0.0
705 2024-10-17 00:00:00+01:00 24.42 24.42 24.378291015625 24.38 24.38 1199504.0 0.0 0.0
706 2024-10-18 00:00:00+01:00 24.400000000000002 24.52 24.38 24.400000000000002 24.400000000000002 612904.0 0.0 0.0
707 2024-10-21 00:00:00+01:00 24.42 24.46 24.42 24.44 24.44 937999.0 0.0 0.0
708 2024-10-22 00:00:00+01:00 24.46 24.48 24.44 24.46 24.46 9890907.0 0.0 0.0
709 2024-10-23 00:00:00+01:00 24.46 24.46 24.46 24.46 24.46 0.0 0.0 0.0
710 2024-10-24 00:00:00+01:00 0.0 0.0
711 2024-10-25 00:00:00+01:00 0.0 0.0
712 2024-10-28 00:00:00+00:00 0.0 0.0
713 2024-10-29 00:00:00+00:00 0.0 0.0
714 2024-10-30 00:00:00+00:00 0.0 0.0
715 2024-10-31 00:00:00+00:00 0.0 0.0
716 2024-11-01 00:00:00+00:00 0.0 0.0
717 2024-11-04 00:00:00+00:00 0.0 0.0
718 2024-11-05 00:00:00+00:00 0.0 0.0
719 2024-11-06 00:00:00+00:00 0.0 0.0
720 2024-11-07 00:00:00+00:00 0.0 0.0
721 2024-11-08 00:00:00+00:00 0.0 0.0
722 2024-11-11 00:00:00+00:00 0.0 0.0
723 2024-11-12 00:00:00+00:00 0.0 0.0
724 2024-11-13 00:00:00+00:00 0.0 0.0
725 2024-11-14 00:00:00+00:00 0.0 0.0

File diff suppressed because it is too large Load Diff

View File

@@ -1,741 +0,0 @@
Datetime,Open,High,Low,Close,Adj Close,Volume,Dividends,Stock Splits,Repaired?
2022-01-03 00:00:00+01:00,20.400468826293945,20.80828094482422,20.400468826293945,20.629241943359375,20.04158073767676,559352,0.0,0.0,True
2022-01-04 00:00:00+01:00,20.649133682250977,20.897798538208008,20.5098819732666,20.848066329956055,20.254170979989347,930594,0.0,0.0,True
2022-01-05 00:00:00+01:00,20.897798538208008,21.126571655273438,20.838119506835938,21.126571655273438,20.524743211692808,572100,0.0,0.0,True
2022-01-06 00:00:00+01:00,20.887853622436523,21.126571655273438,20.599401473999023,20.967424392700195,20.37013149695311,532086,0.0,0.0,True
2022-01-07 00:00:00+01:00,21.007211685180664,21.186250686645508,20.867958068847656,21.126571655273438,20.524743211692808,698666,0.0,0.0,True
2022-01-10 00:00:00+01:00,21.186250686645508,21.245929718017578,20.997264862060547,21.05694580078125,20.457101019221444,972438,0.0,0.0,True
2022-01-11 00:00:00+01:00,21.226036071777344,21.514488220214844,21.226036071777344,21.37523651123047,20.766324448700836,894602,0.0,0.0,True
2022-01-12 00:00:00+01:00,21.564220428466797,21.604007720947266,21.0469970703125,21.216089248657227,20.611711003052147,838352,0.0,0.0,True
2022-01-13 00:00:00+01:00,20.897798538208008,21.14646339416504,20.897798538208008,21.14646339416504,20.558603716304646,514241,0.015,0.0,True
2022-01-14 00:00:00+01:00,20.897798538208008,21.066890716552734,20.80828094482422,21.0271053314209,20.442562606650853,708327,0.0,0.0,True
2022-01-17 00:00:00+01:00,21.106678009033203,21.633846282958984,21.0469970703125,21.554275512695312,20.95507670278679,947841,0.0,0.0,True
2022-01-18 00:00:00+01:00,21.454809188842773,21.484647750854492,21.156410217285156,21.405075073242188,20.81002451088455,966355,0.0,0.0,True
2022-01-19 00:00:00+01:00,21.37523651123047,21.822832107543945,21.295663833618164,21.78304672241211,21.177492853798224,1597827,0.0,0.0,True
2022-01-20 00:00:00+01:00,21.802940368652344,22.111284255981445,21.544328689575195,21.981977462768555,21.370893093551224,1563328,0.0,0.0,True
2022-01-21 00:00:00+01:00,21.74325942993164,21.94219207763672,21.415021896362305,21.65374183654785,21.051780846838273,1539782,0.0,0.0,True
2022-01-24 00:00:00+01:00,21.484647750854492,21.58411407470703,20.887853622436523,20.997264862060547,20.413553134072398,1334240,0.0,0.0,True
2022-01-25 00:00:00+01:00,21.156410217285156,21.186250686645508,20.877906799316406,20.917692184448242,20.336192394303197,1198631,0.0,0.0,True
2022-01-26 00:00:00+01:00,20.997264862060547,21.72336769104004,20.997264862060547,21.415021896362305,20.819697017860687,913216,0.0,0.0,True
2022-01-27 00:00:00+01:00,21.11662483215332,21.862619400024414,21.0469970703125,21.6437931060791,21.04210673019215,765306,0.0,0.0,True
2022-01-28 00:00:00+01:00,21.554275512695312,21.65374183654785,21.126571655273438,21.484647750854492,20.887385250653754,1109097,0.0,0.0,True
2022-01-31 00:00:00+01:00,21.6239013671875,21.65374183654785,21.066890716552734,21.186250686645508,20.597285695859238,999557,0.0,0.0,True
2022-02-01 00:00:00+01:00,21.27577018737793,21.405075073242188,21.05694580078125,21.11662483215332,20.529594243726194,732572,0.0,0.0,True
2022-02-02 00:00:00+01:00,21.52443504333496,22.021764755249023,21.454809188842773,21.753206253051758,21.1484769425398,1195479,0.0,0.0,True
2022-02-03 00:00:00+01:00,21.773099899291992,21.892459869384766,21.6239013671875,21.773099899291992,21.167820346822086,906159,0.0,0.0,True
2022-02-04 00:00:00+01:00,21.87256622314453,21.87256622314453,21.345396041870117,21.424968719482422,20.829366305496844,763864,0.0,0.0,True
2022-02-07 00:00:00+01:00,21.574167251586914,21.574167251586914,21.265823364257812,21.415021896362305,20.819697017860687,382854,0.0,0.0,True
2022-02-08 00:00:00+01:00,21.36528968811035,21.78304672241211,21.36528968811035,21.713420867919922,21.109798182325196,1006721,0.0,0.0,True
2022-02-09 00:00:00+01:00,21.812885284423828,21.991924285888672,21.733312606811523,21.981977462768555,21.370893093551224,893571,0.0,0.0,True
2022-02-10 00:00:00+01:00,22.021764755249023,22.210750579833984,21.962085723876953,22.041658401489258,21.428912038708134,851844,0.0,0.0,True
2022-02-11 00:00:00+01:00,21.882511138916016,22.06155014038086,21.713420867919922,21.882511138916016,21.274188949499745,893486,0.0,0.0,True
2022-02-14 00:00:00+01:00,21.514488220214844,21.514488220214844,20.818225860595703,21.14646339416504,20.558603716304646,1234728,0.0,0.0,True
2022-02-15 00:00:00+01:00,21.007211685180664,21.713420867919922,20.967424392700195,21.673633575439453,21.071116202770604,687285,0.0,0.0,True
2022-02-16 00:00:00+01:00,21.713420867919922,22.06155014038086,21.713420867919922,22.06155014038086,21.448250613980445,798177,0.0,0.0,True
2022-02-17 00:00:00+01:00,22.021764755249023,22.081443786621094,21.763153076171875,21.832778930664062,21.22583929197899,684218,0.0,0.0,True
2022-02-18 00:00:00+01:00,21.832778930664062,21.892459869384766,21.385181427001953,21.544328689575195,20.945407415150648,737030,0.0,0.0,True
2022-02-21 00:00:00+01:00,21.673633575439453,21.68358039855957,20.92763900756836,21.126571655273438,20.539265141032338,677844,0.0,0.0,True
2022-02-22 00:00:00+01:00,20.529775619506836,21.196197509765625,20.32089614868164,20.95747947692871,20.374872764187796,1273455,0.0,0.0,True
2022-02-23 00:00:00+01:00,21.415021896362305,21.862619400024414,20.987319946289062,21.216089248657227,20.626295168437693,1732461,0.0,0.0,True
2022-02-24 00:00:00+01:00,20.48004150390625,20.877906799316406,19.51124382019043,19.70221710205078,19.154507899163683,2560976,0.0,0.0,True
2022-02-25 00:00:00+01:00,19.903139114379883,20.291057586669922,19.475435256958008,20.201536178588867,19.639945736380405,1423396,0.0,0.0,True
2022-02-28 00:00:00+01:00,19.773834228515625,19.903139114379883,19.308332443237305,19.837491989135742,19.28602115677132,1569727,0.0,0.0,True
2022-03-01 00:00:00+01:00,19.77781105041504,19.95287322998047,18.73938751220703,18.73938751220703,18.218442947956373,1308216,0.0,0.0,True
2022-03-02 00:00:00+01:00,18.536476135253906,19.12929344177246,18.17840003967285,18.966169357299805,18.438921056298593,1739856,0.0,0.0,True
2022-03-03 00:00:00+01:00,19.001977920532227,19.077571868896484,18.297758102416992,18.361417770385742,17.85097943405268,834767,0.0,0.0,True
2022-03-04 00:00:00+01:00,18.13463592529297,18.14259147644043,16.893299102783203,17.05642318725586,16.58226330183782,2249030,0.0,0.0,True
2022-03-07 00:00:00+01:00,16.384033203125,17.10814666748047,15.516690254211426,16.380054473876953,15.924698623469626,2250820,0.0,0.0,True
2022-03-08 00:00:00+01:00,16.21295166015625,16.941043853759766,16.16520881652832,16.805768966674805,16.338578581234838,1388112,0.0,0.0,True
2022-03-09 00:00:00+01:00,17.207611083984375,18.22614288330078,17.17976188659668,18.22614288330078,17.719466176445042,1580329,0.0,0.0,True
2022-03-10 00:00:00+01:00,18.38926887512207,18.429054260253906,17.44632911682129,17.696983337402344,17.205017256979872,1037018,0.0,0.0,True
2022-03-11 00:00:00+01:00,17.88397979736328,18.369373321533203,17.585582733154297,17.943660736083984,17.44483715993438,985960,0.0,0.0,True
2022-03-14 00:00:00+01:00,18.285823822021484,18.747344970703125,18.250015258789062,18.52056312561035,18.005702523261068,963701,0.0,0.0,True
2022-03-15 00:00:00+01:00,19.79372787475586,19.893192291259766,17.99538230895996,18.15452766418457,17.649843120322757,2685295,0.0,0.0,True
2022-03-16 00:00:00+01:00,18.78713035583496,18.9741268157959,18.369373321533203,18.76723861694336,18.245520816545586,1321768,0.0,0.0,True
2022-03-17 00:00:00+01:00,18.89853286743164,18.966169357299805,18.433032989501953,18.854768753051758,18.330616020621715,1124314,0.0,0.0,True
2022-03-18 00:00:00+01:00,18.894554138183594,18.98606300354004,18.47281837463379,18.7990665435791,18.276461893113282,1809744,0.0,0.0,True
2022-03-21 00:00:00+01:00,18.7990665435791,19.15714454650879,18.763259887695312,18.91046905517578,18.384768538460154,703039,0.0,0.0,True
2022-03-22 00:00:00+01:00,18.966169357299805,19.184995651245117,18.85079002380371,19.05767822265625,18.527885907033173,715772,0.0,0.0,True
2022-03-23 00:00:00+01:00,19.121337890625,19.15714454650879,18.671751022338867,18.671751022338867,18.152686319152558,1351532,0.0,0.0,True
2022-03-24 00:00:00+01:00,18.659814834594727,18.731430053710938,18.234100341796875,18.30173683166504,17.792958879225786,1286093,0.0,0.0,True
2022-03-25 00:00:00+01:00,18.405181884765625,18.47281837463379,18.170442581176758,18.285823822021484,17.777488340941936,726494,0.0,0.0,True
2022-03-28 00:00:00+02:00,18.393245697021484,18.759281158447266,18.329587936401367,18.433032989501953,17.92060409984496,837768,0.0,0.0,True
2022-03-29 00:00:00+02:00,18.72745132446289,19.256610870361328,18.687665939331055,19.16908073425293,18.636190942710048,917861,0.0,0.0,True
2022-03-30 00:00:00+02:00,19.15714454650879,19.15714454650879,18.46088218688965,18.50862693786621,17.994096802625698,823527,0.0,0.0,True
2022-03-31 00:00:00+02:00,18.50862693786621,18.822938919067383,17.768600463867188,17.796449661254883,17.30171818169137,1780930,0.0,0.0,True
2022-04-01 00:00:00+02:00,17.895915985107422,18.102806091308594,17.880001068115234,17.880001068115234,17.382948568119016,751206,0.0,0.0,True
2022-04-04 00:00:00+02:00,17.92376708984375,17.991403579711914,17.517946243286133,17.79247283935547,17.2978517543729,836607,0.0,0.0,True
2022-04-05 00:00:00+02:00,17.77655792236328,17.975488662719727,17.382671356201172,17.617412567138672,17.127658126880668,842142,0.0,0.0,True
2022-04-06 00:00:00+02:00,17.577625274658203,17.625368118286133,16.87340545654297,17.016637802124023,16.543584541623215,1380130,0.0,0.0,True
2022-04-07 00:00:00+02:00,17.10814666748047,17.382671356201172,16.865449905395508,16.89727783203125,16.427541822299425,857449,0.0,0.0,True
2022-04-08 00:00:00+02:00,17.191696166992188,17.382671356201172,16.99674415588379,17.191696166992188,16.71377816911545,913588,0.0,0.0,True
2022-04-11 00:00:00+02:00,17.219547271728516,17.549774169921875,17.036529541015625,17.203632354736328,16.72538228008083,1067867,0.0,0.0,True
2022-04-12 00:00:00+02:00,17.00868034362793,17.565689086914062,16.833620071411133,17.565689086914062,17.077372036360696,1285128,0.0,0.0,True
2022-04-13 00:00:00+02:00,17.438373565673828,17.525903701782227,17.267290115356445,17.506010055541992,17.019351481533796,697328,0.0,0.0,True
2022-04-14 00:00:00+02:00,17.58160400390625,17.657197952270508,17.406543731689453,17.513967514038086,17.02708916518071,587256,0.0,0.0,True
2022-04-19 00:00:00+02:00,17.54181671142578,17.69300651550293,17.418479919433594,17.517946243286133,17.030957202169166,962344,0.0,0.0,True
2022-04-20 00:00:00+02:00,17.633325576782227,17.967531204223633,17.609453201293945,17.768600463867188,17.274643532442145,675733,0.0,0.0,True
2022-04-21 00:00:00+02:00,17.860109329223633,18.38926887512207,17.860109329223633,18.28980255126953,17.781356377930393,946132,0.0,0.0,True
2022-04-22 00:00:00+02:00,18.063018798828125,18.25399398803711,17.87204360961914,18.031190872192383,17.5299339736805,876938,0.0,0.0,True
2022-04-25 00:00:00+02:00,17.71687889099121,17.891937255859375,17.549774169921875,17.629348754882812,17.139262237846047,857539,0.0,0.0,True
2022-04-26 00:00:00+02:00,17.868066787719727,17.868066787719727,17.342885971069336,17.342885971069336,16.860763574676927,920938,0.0,0.0,True
2022-04-27 00:00:00+02:00,17.42245864868164,17.513967514038086,16.865449905395508,17.430416107177734,16.945860388423046,995898,0.0,0.0,True
2022-04-28 00:00:00+02:00,17.633325576782227,17.99538230895996,17.601497650146484,17.736770629882812,17.24369923653446,1172803,0.0,0.0,True
2022-04-29 00:00:00+02:00,17.848173141479492,18.10678482055664,17.804407119750977,18.015274047851562,17.514460216056666,988594,0.0,0.0,True
2022-05-02 00:00:00+02:00,17.88397979736328,18.05506134033203,16.90921401977539,17.74074935913086,17.24756566385293,1031151,0.0,0.0,True
2022-05-03 00:00:00+02:00,17.848173141479492,17.93570327758789,17.506010055541992,17.808385848999023,17.31332229265675,1121197,0.0,0.0,True
2022-05-04 00:00:00+02:00,18.747344970703125,19.10542106628418,18.532499313354492,18.846811294555664,18.322881556314783,2131889,0.0,0.0,True
2022-05-05 00:00:00+02:00,19.18101692199707,19.37994956970215,18.138612747192383,18.17840003967285,17.673048122913535,1420586,0.0,0.0,True
2022-05-06 00:00:00+02:00,18.110763549804688,18.560348510742188,17.97150993347168,18.369373321533203,17.858713898359614,967240,0.0,0.0,True
2022-05-09 00:00:00+02:00,18.190336227416992,18.305715560913086,17.844194412231445,17.951616287231445,17.452570014571318,1063615,0.0,0.0,True
2022-05-10 00:00:00+02:00,18.063018798828125,18.85079002380371,18.04710578918457,18.341524124145508,17.83164085878037,1106715,0.0,0.0,True
2022-05-11 00:00:00+02:00,18.46088218688965,18.659814834594727,18.27786636352539,18.47281837463379,17.95928446972956,916544,0.0,0.0,True
2022-05-12 00:00:00+02:00,18.04312515258789,18.261951446533203,17.784513473510742,18.222164154052734,17.71559974912657,899448,0.0,0.0,True
2022-05-13 00:00:00+02:00,18.405181884765625,18.55636978149414,18.194313049316406,18.38528823852539,17.87418765598344,614260,0.0,0.0,True
2022-05-16 00:00:00+02:00,18.381309509277344,18.612070083618164,18.24205780029297,18.417118072509766,17.90513356156111,734648,0.0,0.0,True
2022-05-17 00:00:00+02:00,18.21420669555664,18.747344970703125,18.21420669555664,18.512605667114258,18.020961169004284,625555,0.0235,0.0,True
2022-05-18 00:00:00+02:00,18.54443359375,18.592178344726562,18.357437133789062,18.357437133789062,17.869913837170763,676447,0.0,0.0,True
2022-05-19 00:00:00+02:00,17.677091598510742,17.903873443603516,17.474180221557617,17.513967514038086,17.048843460304507,1239650,0.0,0.0,True
2022-05-20 00:00:00+02:00,17.856130599975586,18.063018798828125,17.60547637939453,17.60547637939453,17.13792236757609,792884,0.0,0.0,True
2022-05-23 00:00:00+02:00,17.85215187072754,17.987424850463867,17.633325576782227,17.987424850463867,17.509727290657995,661658,0.0,0.0,True
2022-05-24 00:00:00+02:00,17.79247283935547,17.83623695373535,17.414501190185547,17.418479919433594,16.95589082346159,729103,0.0,0.0,True
2022-05-25 00:00:00+02:00,17.617412567138672,17.89989471435547,17.394607543945312,17.8402156829834,17.36642741796716,645185,0.0,0.0,True
2022-05-26 00:00:00+02:00,17.79247283935547,18.05506134033203,17.720855712890625,18.03516960144043,17.556203609079454,523872,0.0,0.0,True
2022-05-27 00:00:00+02:00,18.031190872192383,18.198293685913086,17.94763946533203,18.198293685913086,17.71499558791078,578243,0.0,0.0,True
2022-05-30 00:00:00+02:00,18.27786636352539,18.433032989501953,18.10678482055664,18.218185424804688,17.734358611477727,568621,0.0,0.0,True
2022-05-31 00:00:00+02:00,18.1823787689209,18.218185424804688,17.97150993347168,18.122699737548828,17.64141019285213,1795488,0.0,0.0,True
2022-06-01 00:00:00+02:00,18.293779373168945,18.44496726989746,18.17840003967285,18.28980255126953,17.804074495182356,494450,0.0,0.0,True
2022-06-02 00:00:00+02:00,18.3494815826416,18.532499313354492,18.3494815826416,18.4569034576416,17.966737391440144,412331,0.0,0.0,True
2022-06-03 00:00:00+02:00,18.592178344726562,18.639921188354492,18.433032989501953,18.564327239990234,18.071308404852203,487960,0.0,0.0,True
2022-06-06 00:00:00+02:00,18.72745132446289,18.830896377563477,18.56830596923828,18.592178344726562,18.098420293634273,605186,0.0,0.0,True
2022-06-07 00:00:00+02:00,18.500669479370117,18.540456771850586,18.32560920715332,18.468839645385742,17.978355768009287,606368,0.0,0.0,True
2022-06-08 00:00:00+02:00,18.512605667114258,18.616050720214844,18.44496726989746,18.564327239990234,18.071308404852203,631100,0.0,0.0,True
2022-06-09 00:00:00+02:00,18.452926635742188,18.82691764831543,18.401203155517578,18.41313934326172,17.924136208662464,1105870,0.0,0.0,True
2022-06-10 00:00:00+02:00,18.273887634277344,18.31367301940918,17.685047149658203,17.685047149658203,17.215380086133635,933108,0.0,0.0,True
2022-06-13 00:00:00+02:00,17.506010055541992,17.768600463867188,17.223526000976562,17.521923065185547,17.056586701229875,1102884,0.0,0.0,True
2022-06-14 00:00:00+02:00,17.71289825439453,17.756664276123047,17.255355834960938,17.255355834960938,16.79709884463027,815872,0.0,0.0,True
2022-06-15 00:00:00+02:00,17.486116409301758,18.015274047851562,17.42245864868164,17.621389389038086,17.153413067644134,987976,0.0,0.0,True
2022-06-16 00:00:00+02:00,17.533859252929688,17.577625274658203,16.328332901000977,16.328332901000977,15.894697019635123,1421657,0.0,0.0,True
2022-06-17 00:00:00+02:00,16.391990661621094,16.694366455078125,16.06574249267578,16.248760223388672,15.81723648893269,3094063,0.0,0.0,True
2022-06-20 00:00:00+02:00,16.40790557861328,16.427799224853516,16.12542152404785,16.356182098388672,15.921804690199872,496948,0.0,0.0,True
2022-06-21 00:00:00+02:00,16.491456985473633,16.821683883666992,16.427799224853516,16.48349952697754,16.045742945396203,563534,0.0,0.0,True
2022-06-22 00:00:00+02:00,16.208974838256836,16.208974838256836,15.759387016296387,15.819067001342773,15.398955247429319,1050007,0.0,0.0,True
2022-06-23 00:00:00+02:00,15.735515594482422,15.799174308776855,15.285928726196289,15.30980110168457,14.90321206915108,1064414,0.0,0.0,True
2022-06-24 00:00:00+02:00,15.413246154785156,15.898639678955078,15.234207153320312,15.86681079864502,15.44543156585078,1215616,0.0,0.0,True
2022-06-27 00:00:00+02:00,16.01799964904785,16.328332901000977,15.958318710327148,16.117464065551758,15.689428722382338,1182615,0.0,0.0,True
2022-06-28 00:00:00+02:00,16.248760223388672,16.519306182861328,16.045848846435547,16.181123733520508,15.751397146944283,1274280,0.0,0.0,True
2022-06-29 00:00:00+02:00,16.014020919799805,16.06574249267578,15.468947410583496,15.528626441955566,15.116227825546547,1058236,0.0,0.0,True
2022-06-30 00:00:00+02:00,15.234207153320312,15.381417274475098,14.800535202026367,15.381417274475098,14.972926546783269,1934410,0.0,0.0,True
2022-07-01 00:00:00+02:00,15.277972221374512,15.679815292358398,15.230228424072266,15.377437591552734,14.969054223284367,909034,0.0,0.0,True
2022-07-04 00:00:00+02:00,15.564434051513672,15.791215896606445,15.488840103149414,15.687771797180176,15.271146074806529,798569,0.0,0.0,True
2022-07-05 00:00:00+02:00,15.763365745544434,15.91455364227295,14.884086608886719,14.884086608886719,14.488804557219051,1966763,0.0,0.0,True
2022-07-06 00:00:00+02:00,15.079039573669434,15.202378273010254,14.907958984375,15.110869407653809,14.709566366684761,938909,0.0,0.0,True
2022-07-07 00:00:00+02:00,15.301843643188477,15.898639678955078,15.23818588256836,15.807130813598633,15.387335464787737,1170179,0.0,0.0,True
2022-07-08 00:00:00+02:00,15.69572925567627,16.39596939086914,15.532605171203613,16.049827575683594,15.623586568249053,1372047,0.0,0.0,True
2022-07-11 00:00:00+02:00,15.608199119567871,15.69572925567627,15.285928726196289,15.488840103149414,15.077497560195331,877119,0.0,0.0,True
2022-07-12 00:00:00+02:00,15.381417274475098,15.556476593017578,14.983552932739258,15.520668983459473,15.108481772476305,1161955,0.0,0.0,True
2022-07-13 00:00:00+02:00,15.425182342529297,15.647985458374023,15.234207153320312,15.357544898986816,14.94968838757254,1081802,0.0,0.0,True
2022-07-14 00:00:00+02:00,15.333672523498535,15.357544898986816,14.728919982910156,14.888065338134766,14.492678286790394,896311,0.0,0.0,True
2022-07-15 00:00:00+02:00,14.959680557250977,15.548519134521484,14.923872947692871,15.433138847351074,15.023276594776068,1160019,0.0,0.0,True
2022-07-18 00:00:00+02:00,15.970254898071289,16.316396713256836,15.894660949707031,16.133378982543945,15.704919422450384,1770123,0.0,0.0,True
2022-07-19 00:00:00+02:00,16.010042190551758,16.698345184326172,15.755409240722656,16.48349952697754,16.045742945396203,1574206,0.0,0.0,True
2022-07-20 00:00:00+02:00,16.551136016845703,16.67845344543457,16.145315170288086,16.439735412597656,16.003140356546087,876721,0.0,0.0,True
2022-07-21 00:00:00+02:00,16.30048179626465,16.646623611450195,16.16520881652832,16.364139556884766,15.929552149342557,1014598,0.0,0.0,True
2022-07-22 00:00:00+02:00,16.244781494140625,16.463605880737305,15.98219108581543,16.037891387939453,15.611968191679907,1100753,0.0,0.0,True
2022-07-25 00:00:00+02:00,16.014020919799805,16.39596939086914,15.874768257141113,16.11348533630371,15.685553586738559,826151,0.0,0.0,True
2022-07-26 00:00:00+02:00,16.11348533630371,16.133378982543945,15.600241661071777,15.715621948242188,15.298257963588599,1071673,0.0,0.0,True
2022-07-27 00:00:00+02:00,15.894660949707031,15.970254898071289,15.703685760498047,15.950362205505371,15.526763013979673,1076946,0.0,0.0,True
2022-07-28 00:00:00+02:00,16.368118286132812,16.686410903930664,16.232845306396484,16.551136016845703,16.11158369345705,1713701,0.0,0.0,True
2022-07-29 00:00:00+02:00,16.634687423706055,17.084274291992188,16.551136016845703,17.00868034362793,16.55697541767005,1096515,0.0,0.0,True
2022-08-01 00:00:00+02:00,17.088253021240234,17.303098678588867,16.83759880065918,16.861469268798828,16.413675544979213,698449,0.0,0.0,True
2022-08-02 00:00:00+02:00,16.833620071411133,16.992765426635742,16.674474716186523,16.937063217163086,16.48725953396542,683927,0.0,0.0,True
2022-08-03 00:00:00+02:00,16.92115020751953,17.175783157348633,16.83759880065918,17.12008285522461,16.66542016065345,520776,0.0,0.0,True
2022-08-04 00:00:00+02:00,17.132017135620117,17.334928512573242,17.004701614379883,17.064380645751953,16.61119638308931,770841,0.0,0.0,True
2022-08-05 00:00:00+02:00,17.100189208984375,17.283206939697266,16.821683883666992,17.104167938232422,16.649926648440527,676884,0.0,0.0,True
2022-08-08 00:00:00+02:00,17.283206939697266,17.47020149230957,17.076316833496094,17.319013595581055,16.859067269192213,640299,0.0,0.0,True
2022-08-09 00:00:00+02:00,17.247398376464844,17.342885971069336,16.9808292388916,17.112125396728516,16.657674107583208,513653,0.0,0.0,True
2022-08-10 00:00:00+02:00,17.084274291992188,17.43439483642578,16.90921401977539,17.394607543945312,16.932651258178424,565334,0.0,0.0,True
2022-08-11 00:00:00+02:00,17.45826530456543,17.474180221557617,17.15191078186035,17.267290115356445,16.808717221199412,740132,0.0,0.0,True
2022-08-12 00:00:00+02:00,17.23944091796875,17.486116409301758,17.231483459472656,17.342885971069336,16.88230542840294,966868,0.0,0.0,True
2022-08-15 00:00:00+02:00,17.346864700317383,17.474180221557617,17.064380645751953,17.243419647216797,16.785480468061124,404314,0.0,0.0,True
2022-08-16 00:00:00+02:00,17.342885971069336,17.426437377929688,17.175783157348633,17.36277961730957,16.90166985804233,615567,0.0,0.0,True
2022-08-17 00:00:00+02:00,17.44632911682129,17.525903701782227,16.742111206054688,16.76598358154297,16.320724314208736,1020374,0.0,0.0,True
2022-08-18 00:00:00+02:00,16.821683883666992,17.25137710571289,16.769962310791016,16.853513717651367,16.40592949190897,738694,0.0,0.0,True
2022-08-19 00:00:00+02:00,16.69038963317871,16.901256561279297,16.606836318969727,16.606836318969727,16.165803252803872,628184,0.0,0.0,True
2022-08-22 00:00:00+02:00,16.479520797729492,16.527265548706055,15.92251205444336,15.978212356567383,15.553874902761745,866276,0.0,0.0,True
2022-08-23 00:00:00+02:00,15.942404747009277,16.292524337768555,15.918533325195312,16.292524337768555,15.859837671710368,860233,0.0,0.0,True
2022-08-24 00:00:00+02:00,16.268653869628906,16.308439254760742,15.950362205505371,16.240802764892578,15.809489029790006,704240,0.0,0.0,True
2022-08-25 00:00:00+02:00,16.388011932373047,16.523286819458008,16.216930389404297,16.292524337768555,15.859837671710368,479490,0.0,0.0,True
2022-08-26 00:00:00+02:00,16.439735412597656,16.598880767822266,15.958318710327148,15.990147590637207,15.56549046718601,546820,0.0,0.0,True
2022-08-29 00:00:00+02:00,15.91455364227295,16.44769287109375,15.743473052978516,16.43177604675293,15.995390085258524,771344,0.0,0.0,True
2022-08-30 00:00:00+02:00,16.54317855834961,16.67845344543457,16.15327262878418,16.248760223388672,15.81723648893269,741509,0.0,0.0,True
2022-08-31 00:00:00+02:00,16.356182098388672,16.44371223449707,16.0418701171875,16.0418701171875,15.615841921251251,956161,0.0,0.0,True
2022-09-01 00:00:00+02:00,15.978212356567383,15.978212356567383,15.691749572753906,15.755409240722656,15.336988228939816,998562,0.0,0.0,True
2022-09-02 00:00:00+02:00,16.161230087280273,16.519306182861328,15.962298393249512,16.391990661621094,15.956664038124627,997552,0.0,0.0,True
2022-09-05 00:00:00+02:00,15.874768257141113,15.91455364227295,15.520668983459473,15.723580360412598,15.306005422731282,1129909,0.0,0.0,True
2022-09-06 00:00:00+02:00,15.763365745544434,16.09359359741211,15.683793067932129,15.86681079864502,15.44543156585078,638791,0.0,0.0,True
2022-09-07 00:00:00+02:00,15.616155624389648,16.264673233032227,15.58034896850586,16.21295166015625,15.782378547080377,819365,0.0,0.0,True
2022-09-08 00:00:00+02:00,16.292524337768555,16.364139556884766,15.954340934753418,16.14133644104004,15.712665475520629,690130,0.0,0.0,True
2022-09-09 00:00:00+02:00,16.19305992126465,16.575008392333984,16.19305992126465,16.427799224853516,15.991520573904502,623223,0.0,0.0,True
2022-09-12 00:00:00+02:00,16.614795684814453,17.076316833496094,16.571029663085938,16.98480796813965,16.533737258459322,880959,0.0,0.0,True
2022-09-13 00:00:00+02:00,17.02061653137207,17.549774169921875,16.698345184326172,16.722217559814453,16.278118913213735,1949078,0.0,0.0,True
2022-09-14 00:00:00+02:00,16.55511474609375,16.65458106994629,16.06574249267578,16.316396713256836,15.883077236993536,1147799,0.0,0.0,True
2022-09-15 00:00:00+02:00,16.316396713256836,16.50737190246582,16.01799964904785,16.12542152404785,15.697173369380144,704698,0.0,0.0,True
2022-09-16 00:00:00+02:00,15.92648983001709,16.05380630493164,15.647985458374023,15.954340934753418,15.530635337478573,1934284,0.0,0.0,True
2022-09-19 00:00:00+02:00,15.890682220458984,16.419841766357422,15.791215896606445,16.368118286132812,15.933425878913898,961766,0.0,0.0,True
2022-09-20 00:00:00+02:00,16.44769287109375,16.55511474609375,15.930468559265137,15.99412727355957,15.569367008902228,712846,0.0,0.0,True
2022-09-21 00:00:00+02:00,15.894660949707031,16.137357711791992,15.815088272094727,16.1294002532959,15.701045692879042,557165,0.0,0.0,True
2022-09-22 00:00:00+02:00,15.727558135986328,16.197038650512695,15.667879104614258,16.069721221923828,15.64295240396088,892616,0.0,0.0,True
2022-09-23 00:00:00+02:00,16.0418701171875,16.161230087280273,15.64002799987793,15.854874610900879,15.433811783209194,1425407,0.0,0.0,True
2022-09-26 00:00:00+02:00,15.675835609436035,16.037891387939453,15.604220390319824,15.604220390319824,15.189814626677634,823367,0.0,0.0,True
2022-09-27 00:00:00+02:00,15.6360502243042,15.886704444885254,15.492818832397461,15.687771797180176,15.271146074806529,1239006,0.0,0.0,True
2022-09-28 00:00:00+02:00,15.433138847351074,16.109508514404297,15.170549392700195,15.990147590637207,15.56549046718601,1753368,0.0,0.0,True
2022-09-29 00:00:00+02:00,15.986169815063477,15.986169815063477,15.40926742553711,15.516690254211426,15.104608042904962,1373640,0.0,0.0,True
2022-09-30 00:00:00+02:00,15.6360502243042,15.894660949707031,15.528626441955566,15.842939376831055,15.42219340664005,1225082,0.0,0.0,True
2022-10-03 00:00:00+02:00,15.671856880187988,16.419841766357422,15.628091812133789,16.34822654724121,15.91406144927451,968647,0.0,0.0,True
2022-10-04 00:00:00+02:00,16.618772506713867,17.267290115356445,16.618772506713867,17.267290115356445,16.808717221199412,1425231,0.0,0.0,True
2022-10-05 00:00:00+02:00,17.100189208984375,17.35084342956543,17.016637802124023,17.08029556274414,16.626688489229796,1216119,0.0,0.0,True
2022-10-06 00:00:00+02:00,17.203632354736328,17.32697105407715,16.88534164428711,16.976850509643555,16.525989799316637,825166,0.0,0.0,True
2022-10-07 00:00:00+02:00,16.976850509643555,17.12803840637207,16.65458106994629,16.730175018310547,16.28586637235642,839674,0.0,0.0,True
2022-10-10 00:00:00+02:00,16.610815048217773,17.56966781616211,16.586944580078125,17.402565002441406,16.940398717321106,1029281,0.0,0.0,True
2022-10-11 00:00:00+02:00,17.088253021240234,17.23944091796875,16.284568786621094,16.463605880737305,16.026375703611937,2020228,0.0,0.0,True
2022-10-12 00:00:00+02:00,16.499414443969727,16.929107666015625,16.320375442504883,16.789854049682617,16.343959661274585,1510536,0.0,0.0,True
2022-10-13 00:00:00+02:00,16.694366455078125,17.17976188659668,16.384033203125,17.17976188659668,16.72351485564406,1551570,0.0,0.0,True
2022-10-14 00:00:00+02:00,17.525903701782227,17.69300651550293,16.841577529907227,17.012659072875977,16.560847741168953,1388605,0.0,0.0,True
2022-10-17 00:00:00+02:00,17.012659072875977,17.49407386779785,16.913192749023438,17.287185668945312,16.82808305691124,857670,0.0,0.0,True
2022-10-18 00:00:00+02:00,17.43439483642578,17.951616287231445,17.39858627319336,17.617412567138672,17.14954215021767,1118895,0.0,0.0,True
2022-10-19 00:00:00+02:00,17.732791900634766,17.820322036743164,17.565689086914062,17.58160400390625,17.114684208365354,659672,0.0,0.0,True
2022-10-20 00:00:00+02:00,17.4980525970459,17.796449661254883,17.414501190185547,17.677091598510742,17.20763543913583,869126,0.0,0.0,True
2022-10-21 00:00:00+02:00,17.506010055541992,17.85215187072754,17.346864700317383,17.85215187072754,17.378044388463863,781749,0.0,0.0,True
2022-10-24 00:00:00+02:00,18.699600219726562,18.834875106811523,17.708919525146484,18.345502853393555,17.858295460601617,1695268,0.0,0.0,True
2022-10-25 00:00:00+02:00,18.440990447998047,18.627986907958984,17.931724548339844,18.202272415161133,17.71886931748212,1131150,0.0,0.0,True
2022-10-26 00:00:00+02:00,18.22614288330078,18.43701171875,17.975488662719727,18.329587936401367,17.84280194838869,1222905,0.0,0.0,True
2022-10-27 00:00:00+02:00,18.341524124145508,18.600135803222656,18.08291244506836,18.293779373168945,17.80794681868126,778065,0.0,0.0,True
2022-10-28 00:00:00+02:00,18.078933715820312,18.32560920715332,17.975488662719727,18.269908905029297,17.784708659470528,1099727,0.0,0.0,True
2022-10-31 00:00:00+01:00,18.369373321533203,18.532499313354492,18.14259147644043,18.150548934936523,17.66851786341688,1018936,0.0,0.0,True
2022-11-01 00:00:00+01:00,18.293779373168945,18.492712020874023,18.063018798828125,18.15452766418457,17.672391592988223,1016061,0.0,0.0,True
2022-11-02 00:00:00+01:00,18.186357498168945,18.194313049316406,17.88397979736328,18.063018798828125,17.583315497861527,1299861,0.0,0.0,True
2022-11-03 00:00:00+01:00,17.69300651550293,18.015274047851562,17.406543731689453,17.98344612121582,17.505852155014214,1179101,0.0,0.0,True
2022-11-04 00:00:00+01:00,18.202272415161133,18.894554138183594,18.15452766418457,18.791109085083008,18.292067402173036,1369272,0.0,0.0,True
2022-11-07 00:00:00+01:00,18.759281158447266,19.391883850097656,18.659814834594727,19.336183547973633,18.82266711623115,1259541,0.0,0.0,True
2022-11-08 00:00:00+01:00,19.332204818725586,19.566944122314453,19.188974380493164,19.41177749633789,18.896252511289795,886906,0.0,0.0,True
2022-11-09 00:00:00+01:00,19.415756225585938,19.415756225585938,18.954233169555664,19.208866119384766,18.69873026710726,1198007,0.0,0.0,True
2022-11-10 00:00:00+01:00,19.153165817260742,19.59479522705078,19.03778648376465,19.586837768554688,19.066662866690272,1410472,0.0,0.0,True
2022-11-11 00:00:00+01:00,19.59479522705078,19.857385635375977,19.562965393066406,19.78974723815918,19.264183704800367,1274687,0.0,0.0,True
2022-11-14 00:00:00+01:00,19.81361961364746,20.112018585205078,19.690282821655273,20.032445907592773,19.50044043255144,1295287,0.0,0.0,True
2022-11-15 00:00:00+01:00,20.01255226135254,20.191591262817383,19.61071014404297,19.805662155151367,19.279678623085733,1056914,0.0,0.0,True
2022-11-16 00:00:00+01:00,19.75394058227539,19.785770416259766,19.276504516601562,19.44758415222168,18.931107640997233,1015000,0.0,0.0,True
2022-11-17 00:00:00+01:00,19.4833927154541,19.65447425842285,19.09746551513672,19.296396255493164,18.783935444807494,644501,0.0,0.0,True
2022-11-18 00:00:00+01:00,19.42371368408203,19.666410446166992,19.332204818725586,19.666410446166992,19.1441233973927,829590,0.0,0.0,True
2022-11-21 00:00:00+01:00,19.598773956298828,19.606731414794922,19.02187156677246,19.101444244384766,18.59416065976764,918183,0.0,0.0,True
2022-11-22 00:00:00+01:00,19.137252807617188,19.49930763244629,19.073593139648438,19.395862579345703,18.880761811221753,915438,0.0,0.0,True
2022-11-23 00:00:00+01:00,19.475435256958008,19.51124382019043,19.149187088012695,19.264568328857422,18.752952638598963,867427,0.0,0.0,True
2022-11-24 00:00:00+01:00,19.31231117248535,19.551029205322266,19.31231117248535,19.539094924926758,19.02018795434125,658838,0.0,0.0,True
2022-11-25 00:00:00+01:00,19.535114288330078,19.574901580810547,19.371990203857422,19.419734954833984,18.90399856436004,444192,0.0,0.0,True
2022-11-28 00:00:00+01:00,19.296396255493164,19.356077194213867,19.085529327392578,19.16908073425293,18.660001407828485,743198,0.0,0.0,True
2022-11-29 00:00:00+01:00,18.830896377563477,18.978105545043945,18.572284698486328,18.72745132446289,18.230101789755967,1801344,0.0,0.0,True
2022-11-30 00:00:00+01:00,18.89853286743164,18.92638397216797,18.405181884765625,18.675729751586914,18.179751741763166,1555300,0.0,0.0,True
2022-12-01 00:00:00+01:00,18.87466049194336,18.958213806152344,18.56830596923828,18.73938751220703,18.241720166325113,1102744,0.0,0.0,True
2022-12-02 00:00:00+01:00,18.663793563842773,19.013914108276367,18.55636978149414,19.005956649780273,18.501209428997157,783142,0.0,0.0,True
2022-12-05 00:00:00+01:00,18.966169357299805,19.061656951904297,18.73938751220703,18.86272621154785,18.36178328587766,726414,0.0,0.0,True
2022-12-06 00:00:00+01:00,18.870683670043945,19.073593139648438,18.791109085083008,18.962190628051758,18.45860684014704,752418,0.0,0.0,True
2022-12-07 00:00:00+01:00,18.922405242919922,18.958213806152344,18.572284698486328,18.62002944946289,18.125532182416347,1312303,0.0,0.0,True
2022-12-08 00:00:00+01:00,18.48475456237793,18.759281158447266,18.421096801757812,18.516584396362305,18.024832086430745,1077991,0.0,0.0,True
2022-12-09 00:00:00+01:00,18.56830596923828,18.890575408935547,18.52056312561035,18.83885383605957,18.338543720594494,876148,0.0,0.0,True
2022-12-12 00:00:00+01:00,18.735408782958984,18.763259887695312,18.417118072509766,18.468839645385742,17.978355768009287,1151398,0.0,0.0,True
2022-12-13 00:00:00+01:00,18.604114532470703,19.065635681152344,18.552391052246094,18.942298889160156,18.43924100443521,1226494,0.0,0.0,True
2022-12-14 00:00:00+01:00,18.858747482299805,19.017892837524414,18.75530242919922,18.8865966796875,18.38502144508839,958418,0.0,0.0,True
2022-12-15 00:00:00+01:00,18.73938751220703,18.751323699951172,18.369373321533203,18.47281837463379,17.982229497580626,1115743,0.0,0.0,True
2022-12-16 00:00:00+01:00,18.4569034576416,18.627986907958984,18.329587936401367,18.564327239990234,18.071308404852203,1941860,0.0,0.0,True
2022-12-19 00:00:00+01:00,18.58422088623047,18.75530242919922,18.548412322998047,18.627986907958984,18.133276829414147,778150,0.0,0.0,True
2022-12-20 00:00:00+01:00,18.504648208618164,18.7990665435791,18.393245697021484,18.7990665435791,18.29981204917084,935164,0.0,0.0,True
2022-12-21 00:00:00+01:00,18.89853286743164,19.244674682617188,18.8865966796875,19.208866119384766,18.69873026710726,1124419,0.0,0.0,True
2022-12-22 00:00:00+01:00,19.272525787353516,19.38790512084961,18.783153533935547,18.82691764831543,18.32692253188047,1217165,0.0,0.0,True
2022-12-23 00:00:00+01:00,18.89853286743164,19.14520835876465,18.81498146057129,19.0338077545166,18.52832131777923,552525,0.0,0.0,True
2022-12-27 00:00:00+01:00,19.177038192749023,19.24069595336914,19.03778648376465,19.04972267150879,18.543813423919715,387951,0.0,0.0,True
2022-12-28 00:00:00+01:00,19.09746551513672,19.177038192749023,18.934341430664062,19.005956649780273,18.501209428997157,517744,0.0,0.0,True
2022-12-29 00:00:00+01:00,19.001977920532227,19.077571868896484,18.8865966796875,19.045743942260742,18.539939694348377,398794,0.0,0.0,True
2022-12-30 00:00:00+01:00,18.946277618408203,19.017892837524414,18.75530242919922,18.791109085083008,18.292067402173036,449339,0.0,0.0,True
2023-01-02 00:00:00+01:00,18.990041732788086,19.383926391601562,18.914447784423828,19.383926391601562,18.869143434652607,671340,0.0,0.0,True
2023-01-03 00:00:00+01:00,19.356077194213867,19.78179168701172,19.344141006469727,19.435649871826172,18.919492076572965,983215,0.0,0.0,True
2023-01-04 00:00:00+01:00,19.48737144470215,19.982711791992188,19.44758415222168,19.94292640686035,19.413296280956878,1333355,0.0,0.0,True
2023-01-05 00:00:00+01:00,19.932979583740234,20.121965408325195,19.845449447631836,20.002605438232422,19.471390975947482,1261924,0.0,0.0,True
2023-01-06 00:00:00+01:00,20.112018585205078,20.410415649414062,19.95287322998047,20.410415649414062,19.86837162606201,641716,0.0,0.0,True
2023-01-09 00:00:00+01:00,20.410415649414062,20.569562911987305,20.32089614868164,20.440256118774414,19.897418270521097,839910,0.0,0.0,True
2023-01-10 00:00:00+01:00,20.48004150390625,20.48004150390625,19.932979583740234,20.17169761657715,19.635990033954716,1099813,0.0,0.0,True
2023-01-11 00:00:00+01:00,20.241323471069336,20.838119506835938,20.10207176208496,20.599401473999023,20.052337925853514,1479852,0.0,0.0,True
2023-01-12 00:00:00+01:00,20.60934829711914,20.758546829223633,20.470096588134766,20.639188766479492,20.091066785132295,1067892,0.0,0.0,True
2023-01-13 00:00:00+01:00,20.559614181518555,21.01715850830078,20.430309295654297,20.788387298583984,20.236304225645025,1563851,0.0,0.0,True
2023-01-16 00:00:00+01:00,20.589454650878906,20.72870635986328,20.181644439697266,20.70881462097168,20.173789489152337,790612,0.0154,0.0,True
2023-01-17 00:00:00+01:00,20.698867797851562,20.997264862060547,20.499935150146484,20.659080505371094,20.125339438911386,917298,0.0,0.0,True
2023-01-18 00:00:00+01:00,20.649133682250977,20.80828094482422,20.39052391052246,20.688920974731445,20.154409208480754,976454,0.0,0.0,True
2023-01-19 00:00:00+01:00,20.569562911987305,20.57950782775879,20.26121711730957,20.39052391052246,19.86372323867117,888012,0.0,0.0,True
2023-01-20 00:00:00+01:00,20.529775619506836,20.649133682250977,20.340789794921875,20.619295120239258,20.08658148332024,757103,0.0,0.0,True
2023-01-23 00:00:00+01:00,20.678974151611328,20.70881462097168,20.5098819732666,20.57950782775879,20.047822224853086,540245,0.0,0.0,True
2023-01-24 00:00:00+01:00,20.688920974731445,20.72870635986328,20.599401473999023,20.72870635986328,20.19316455831987,497230,0.0,0.0,True
2023-01-25 00:00:00+01:00,20.72870635986328,20.788387298583984,20.539722442626953,20.72870635986328,20.19316455831987,610198,0.0,0.0,True
2023-01-26 00:00:00+01:00,20.82817268371582,21.01715850830078,20.549667358398438,21.01715850830078,20.47416625073572,1177819,0.0,0.0,True
2023-01-27 00:00:00+01:00,21.0271053314209,21.315555572509766,20.937585830688477,21.196197509765625,20.648580959523894,1399061,0.0,0.0,True
2023-01-30 00:00:00+01:00,21.106678009033203,21.196197509765625,20.967424392700195,21.096731185913086,20.551682161918006,1048142,0.0,0.0,True
2023-01-31 00:00:00+01:00,21.156410217285156,21.255876541137695,21.007211685180664,21.216089248657227,20.667957331567443,1153987,0.0,0.0,True
2023-02-01 00:00:00+01:00,21.36528968811035,21.633846282958984,21.295663833618164,21.604007720947266,21.045855215837157,1127903,0.0,0.0,True
2023-02-02 00:00:00+01:00,21.604007720947266,21.922298431396484,21.514488220214844,21.792993545532227,21.2299568077711,1405008,0.0,0.0,True
2023-02-03 00:00:00+01:00,21.733312606811523,21.981977462768555,21.6437931060791,21.981977462768555,21.414057096829026,1224408,0.0,0.0,True
2023-02-06 00:00:00+01:00,21.713420867919922,21.862619400024414,21.514488220214844,21.6437931060791,21.08461056567628,1078283,0.0,0.0,True
2023-02-07 00:00:00+01:00,21.812885284423828,21.912351608276367,21.6437931060791,21.65374183654785,21.0943039632021,983431,0.0,0.0,True
2023-02-08 00:00:00+01:00,21.68358039855957,22.051603317260742,21.68358039855957,21.832778930664062,21.268716066238255,983919,0.0,0.0,True
2023-02-09 00:00:00+01:00,21.862619400024414,22.03171157836914,21.74325942993164,21.892459869384766,21.326852999624965,921355,0.0,0.0,True
2023-02-10 00:00:00+01:00,21.773099899291992,21.892459869384766,21.39512825012207,21.58411407470703,21.026474935165574,931770,0.0,0.0,True
2023-02-13 00:00:00+01:00,21.613954544067383,21.68358039855957,21.484647750854492,21.534381866455078,20.978026187800634,653816,0.0,0.0,True
2023-02-14 00:00:00+01:00,21.564220428466797,21.6437931060791,21.415021896362305,21.484647750854492,20.929576137559682,566610,0.0,0.0,True
2023-02-15 00:00:00+01:00,21.385181427001953,21.72336769104004,21.345396041870117,21.703474044799805,21.142751407691026,971141,0.0,0.0,True
2023-02-16 00:00:00+01:00,21.733312606811523,21.852672576904297,21.58411407470703,21.753206253051758,21.19119885217995,860626,0.0,0.0,True
2023-02-17 00:00:00+01:00,21.604007720947266,21.822832107543945,21.484647750854492,21.763153076171875,21.200887038201728,558814,0.0,0.0,True
2023-02-20 00:00:00+01:00,21.78304672241211,22.340055465698242,21.78304672241211,22.340055465698242,21.762886514405384,997833,0.0,0.0,True
2023-02-21 00:00:00+01:00,22.300268173217773,22.4693603515625,22.111284255981445,22.19085693359375,21.61754157518657,907456,0.0,0.0,True
2023-02-22 00:00:00+01:00,21.59406089782715,22.011817932128906,21.484647750854492,21.97203254699707,21.404370213683265,1114536,0.0,0.0,True
2023-02-23 00:00:00+01:00,22.06155014038086,22.06155014038086,21.05694580078125,21.126571655273438,20.580754537239393,2085708,0.0,0.0,True
2023-02-24 00:00:00+01:00,21.126571655273438,21.763153076171875,20.967424392700195,21.07683753967285,20.532304486998445,1493284,0.0,0.0,True
2023-02-27 00:00:00+01:00,21.285715103149414,21.604007720947266,21.206144332885742,21.454809188842773,20.900508973742337,744495,0.0,0.0,True
2023-02-28 00:00:00+01:00,21.325502395629883,21.72336769104004,21.265823364257812,21.534381866455078,20.978026187800634,1797489,0.0,0.0,True
2023-03-01 00:00:00+01:00,21.613954544067383,21.663686752319336,21.30561065673828,21.37523651123047,20.82299175968404,1095414,0.0,0.0,True
2023-03-02 00:00:00+01:00,21.295663833618164,21.43491554260254,21.096731185913086,21.355342864990234,20.803612781888468,729153,0.0,0.0,True
2023-03-03 00:00:00+01:00,21.454809188842773,21.673633575439453,21.444862365722656,21.59406089782715,21.036164424063358,731340,0.0,0.0,True
2023-03-06 00:00:00+01:00,21.59406089782715,21.633846282958984,21.136518478393555,21.136518478393555,20.59044272326117,1177638,0.0,0.0,True
2023-03-07 00:00:00+01:00,21.14646339416504,21.255876541137695,21.0469970703125,21.126571655273438,20.580754537239393,894823,0.0,0.0,True
2023-03-08 00:00:00+01:00,21.0271053314209,21.216089248657227,20.7386531829834,21.216089248657227,20.667957331567443,1145240,0.0,0.0,True
2023-03-09 00:00:00+01:00,21.07683753967285,21.196197509765625,21.01715850830078,21.066890716552734,20.522613695224646,611676,0.0,0.0,True
2023-03-10 00:00:00+01:00,20.76849365234375,21.007211685180664,20.589454650878906,20.897798538208008,20.357888475334253,1111284,0.0,0.0,True
2023-03-13 00:00:00+01:00,20.688920974731445,20.778440475463867,20.07223129272461,20.221431732177734,19.698996715904766,1243550,0.0,0.0,True
2023-03-14 00:00:00+01:00,20.181644439697266,20.470096588134766,19.903139114379883,20.400468826293945,19.873411424692947,1301756,0.0,0.0,True
2023-03-15 00:00:00+01:00,20.430309295654297,20.440256118774414,19.093486785888672,19.121337890625,18.627325172748737,2538134,0.0,0.0,True
2023-03-16 00:00:00+01:00,19.578880310058594,19.68232536315918,18.914447784423828,19.344141006469727,18.844372590386367,1772646,0.0,0.0,True
2023-03-17 00:00:00+01:00,19.395862579345703,19.68232536315918,18.87466049194336,19.20488739013672,18.708717140065342,2459464,0.0,0.0,True
2023-03-20 00:00:00+01:00,19.196931838989258,19.531137466430664,18.723472595214844,19.467479705810547,18.96452251329411,903163,0.0,0.0,True
2023-03-21 00:00:00+01:00,19.73006820678711,20.17169761657715,19.646516799926758,19.972766876220703,19.456755584832088,1270092,0.0,0.0,True
2023-03-22 00:00:00+01:00,19.932979583740234,20.340789794921875,19.869321823120117,20.032445907592773,19.514893821094812,1100120,0.0,0.0,True
2023-03-23 00:00:00+01:00,19.962818145751953,19.962818145751953,19.6584529876709,19.845449447631836,19.332728302914013,1594495,0.0,0.0,True
2023-03-24 00:00:00+01:00,19.74200439453125,19.761898040771484,19.165102005004883,19.726089477539062,19.216454436140587,2008460,0.0,0.0,True
2023-03-27 00:00:00+02:00,20.07223129272461,20.301002502441406,19.833513259887695,20.221431732177734,19.698996715904766,1382281,0.0,0.0,True
2023-03-28 00:00:00+02:00,20.42036247253418,20.559614181518555,20.13191032409668,20.470096588134766,19.941239149853455,1220512,0.0,0.0,True
2023-03-29 00:00:00+02:00,20.559614181518555,20.639188766479492,20.370630264282227,20.539722442626953,20.009065572137956,791707,0.0,0.0,True
2023-03-30 00:00:00+02:00,20.659080505371094,21.01715850830078,20.629241943359375,20.82817268371582,20.290060750173744,968974,0.0,0.0,True
2023-03-31 00:00:00+02:00,20.82817268371582,21.01715850830078,20.748600006103516,20.95747947692871,20.416030620225015,1172265,0.0,0.0,True
2023-04-03 00:00:00+02:00,20.967424392700195,21.066890716552734,20.688920974731445,20.937585830688477,20.39665033955343,1141103,0.0,0.0,True
2023-04-04 00:00:00+02:00,21.08678436279297,21.186250686645508,20.858013153076172,20.858013153076172,20.31913182261912,728163,0.0,0.0,True
2023-04-05 00:00:00+02:00,20.897798538208008,20.947532653808594,20.46014976501465,20.499935150146484,19.970305010794792,1310588,0.0,0.0,True
2023-04-06 00:00:00+02:00,20.649133682250977,20.758546829223633,20.470096588134766,20.589454650878906,20.057513016626885,957116,0.0,0.0,True
2023-04-11 00:00:00+02:00,20.887853622436523,21.216089248657227,20.867958068847656,21.196197509765625,20.648580959523894,1155390,0.0,0.0,True
2023-04-12 00:00:00+02:00,21.156410217285156,21.285715103149414,20.907745361328125,21.226036071777344,20.67764812334124,907456,0.0,0.0,True
2023-04-13 00:00:00+02:00,21.186250686645508,21.385181427001953,21.14646339416504,21.255876541137695,20.706715287158584,1096832,0.0,0.0,True
2023-04-14 00:00:00+02:00,21.315555572509766,21.514488220214844,21.216089248657227,21.484647750854492,20.929576137559682,1071929,0.0,0.0,True
2023-04-17 00:00:00+02:00,21.882511138916016,22.07149887084961,21.58411407470703,21.892459869384766,21.326852999624965,1508490,0.0,0.0,True
2023-04-18 00:00:00+02:00,21.862619400024414,22.041658401489258,21.484647750854492,21.613954544067383,21.055546007610953,1127797,0.0,0.0,True
2023-04-19 00:00:00+02:00,21.633846282958984,21.65374183654785,21.37523651123047,21.633846282958984,21.074922379654502,908843,0.0,0.0,True
2023-04-20 00:00:00+02:00,21.68358039855957,21.68358039855957,21.484647750854492,21.6239013671875,21.065232890756718,810257,0.0,0.0,True
2023-04-21 00:00:00+02:00,21.58411407470703,21.58411407470703,21.255876541137695,21.424968719482422,20.871437901296957,823291,0.0,0.0,True
2023-04-24 00:00:00+02:00,21.385181427001953,21.703474044799805,21.295663833618164,21.633846282958984,21.074922379654502,882673,0.0,0.0,True
2023-04-25 00:00:00+02:00,21.59406089782715,21.74325942993164,21.385181427001953,21.663686752319336,21.103993452099886,1318878,0.0,0.0,True
2023-04-26 00:00:00+02:00,21.464754104614258,21.613954544067383,21.096731185913086,21.613954544067383,21.055546007610953,1135730,0.0,0.0,True
2023-04-27 00:00:00+02:00,21.504541397094727,21.504541397094727,20.897798538208008,21.11662483215332,20.571062442589582,1167454,0.0,0.0,True
2023-04-28 00:00:00+02:00,21.136518478393555,21.65374183654785,21.007211685180664,21.65374183654785,21.0943039632021,1480858,0.0,0.0,True
2023-05-02 00:00:00+02:00,21.68358039855957,21.713420867919922,21.126571655273438,21.14646339416504,20.600129606406934,1146537,0.0,0.0,True
2023-05-03 00:00:00+02:00,21.285715103149414,21.504541397094727,21.186250686645508,21.424968719482422,20.871437901296957,1054129,0.0,0.0,True
2023-05-04 00:00:00+02:00,20.987319946289062,21.6437931060791,20.340789794921875,20.66902732849121,20.13502892780917,1741640,0.0,0.0,True
2023-05-05 00:00:00+02:00,21.01715850830078,21.59406089782715,20.80828094482422,21.444862365722656,20.89082078772056,1420028,0.0,0.0,True
2023-05-08 00:00:00+02:00,21.484647750854492,21.514488220214844,21.245929718017578,21.514488220214844,20.95864721000506,674713,0.0,0.0,True
2023-05-09 00:00:00+02:00,21.663686752319336,21.663686752319336,21.17630386352539,21.444862365722656,20.89082078772056,853724,0.0,0.0,True
2023-05-10 00:00:00+02:00,21.49459457397461,21.663686752319336,21.156410217285156,21.405075073242188,20.852060226377397,826931,0.0,0.0,True
2023-05-11 00:00:00+02:00,21.464754104614258,21.633846282958984,21.106678009033203,21.37523651123047,20.82299175968404,1023400,0.0,0.0,True
2023-05-12 00:00:00+02:00,21.37523651123047,21.43491554260254,21.206144332885742,21.37523651123047,20.822991759684037,847053,0.0,0.0,True
2023-05-15 00:00:00+02:00,21.0469970703125,21.096731185913086,20.788387298583984,20.858013153076172,20.343019155002814,1023546,0.025099999999999997,0.0,True
2023-05-16 00:00:00+02:00,20.7386531829834,20.76849365234375,20.281110763549805,20.310949325561523,19.80946174919578,1280267,0.0,0.0,True
2023-05-17 00:00:00+02:00,20.201536178588867,20.57950782775879,20.092124938964844,20.549667358398438,20.042288055212353,1106539,0.0,0.0,True
2023-05-18 00:00:00+02:00,20.72870635986328,20.818225860595703,20.539722442626953,20.678974151611328,20.168400441542484,704356,0.0,0.0,True
2023-05-19 00:00:00+02:00,20.818225860595703,20.897798538208008,20.66902732849121,20.72870635986328,20.216904736568488,1030030,0.0,0.0,True
2023-05-22 00:00:00+02:00,20.66902732849121,20.788387298583984,20.57950782775879,20.76849365234375,20.255711830376843,853879,0.0,0.0,True
2023-05-23 00:00:00+02:00,20.748600006103516,20.80828094482422,20.66902732849121,20.79833221435547,20.284811562446574,779729,0.0,0.0,True
2023-05-24 00:00:00+02:00,20.60934829711914,20.60934829711914,20.291057586669922,20.489988327026367,19.984082494760305,846847,0.0,0.0,True
2023-05-25 00:00:00+02:00,20.51982879638672,20.51982879638672,19.962818145751953,20.01255226135254,19.518433946935552,1017197,0.0,0.0,True
2023-05-26 00:00:00+02:00,20.141857147216797,20.26121711730957,19.885236740112305,20.191591262817383,19.693050628291687,1058894,0.0,0.0,True
2023-05-29 00:00:00+02:00,20.301002502441406,20.340789794921875,20.181644439697266,20.26121711730957,19.760957454169773,295090,0.0,0.0,True
2023-05-30 00:00:00+02:00,20.301002502441406,20.340789794921875,20.052337646484375,20.092124938964844,19.596040006135482,641576,0.0,0.0,True
2023-05-31 00:00:00+02:00,19.77781105041504,19.77781105041504,19.184995651245117,19.427692413330078,18.948014171034597,3164263,0.0,0.0,True
2023-06-01 00:00:00+02:00,19.614688873291016,19.698240280151367,19.475435256958008,19.68232536315918,19.196361688891155,876148,0.0,0.0,True
2023-06-02 00:00:00+02:00,19.857385635375977,20.499935150146484,19.8255558013916,20.440256118774414,19.9355781997343,1069712,0.0,0.0,True
2023-06-05 00:00:00+02:00,20.529775619506836,20.589454650878906,20.39052391052246,20.499935150146484,19.993783760186346,850280,0.0,0.0,True
2023-06-06 00:00:00+02:00,20.489988327026367,20.66902732849121,20.38057518005371,20.66902732849121,20.158699176116443,646291,0.0,0.0,True
2023-06-07 00:00:00+02:00,20.678974151611328,20.92763900756836,20.569562911987305,20.92763900756836,20.410928012985096,885388,0.0,0.0,True
2023-06-08 00:00:00+02:00,20.877906799316406,21.514488220214844,20.877906799316406,21.186250686645508,20.66315278564536,1247924,0.0,0.0,True
2023-06-09 00:00:00+02:00,21.126571655273438,21.17630386352539,20.46014976501465,20.818225860595703,20.30421612540285,1294412,0.0,0.0,True
2023-06-12 00:00:00+02:00,20.887853622436523,21.08678436279297,20.80828094482422,21.05694580078125,20.537040399315227,932962,0.0,0.0,True
2023-06-13 00:00:00+02:00,21.166357040405273,21.454809188842773,20.907745361328125,21.424968719482422,20.895977059557737,905912,0.0,0.0,True
2023-06-14 00:00:00+02:00,21.862619400024414,21.882511138916016,21.424968719482422,21.514488220214844,20.9832864162879,1696595,0.0,0.0,True
2023-06-15 00:00:00+02:00,21.474702835083008,21.474702835083008,21.01715850830078,21.355342864990234,20.82807023367965,932700,0.0,0.0,True
2023-06-16 00:00:00+02:00,21.444862365722656,21.52443504333496,20.04239273071289,20.569562911987305,20.061690586064433,3430067,0.0,0.0,True
2023-06-19 00:00:00+02:00,20.291057586669922,20.291057586669922,19.932979583740234,19.982711791992188,19.489328118553235,1208865,0.0,0.0,True
2023-06-20 00:00:00+02:00,19.495328903198242,20.121965408325195,19.208866119384766,19.821577072143555,19.332173308543133,2053697,0.0,0.0,True
2023-06-21 00:00:00+02:00,19.845449447631836,19.923032760620117,19.662431716918945,19.923032760620117,19.43112255810119,644074,0.0,0.0,True
2023-06-22 00:00:00+02:00,19.749961853027344,20.022499084472656,19.68232536315918,19.797706604003906,19.30889352288735,667821,0.0,0.0,True
2023-06-23 00:00:00+02:00,19.65447425842285,19.805662155151367,19.539094924926758,19.686304092407227,19.20023894369486,893260,0.0,0.0,True
2023-06-26 00:00:00+02:00,19.757919311523438,20.032445907592773,19.65447425842285,19.982711791992188,19.489328118553235,793819,0.0,0.0,True
2023-06-27 00:00:00+02:00,20.092124938964844,20.211484909057617,19.74200439453125,19.95287322998047,19.460228386483504,871227,0.0,0.0,True
2023-06-28 00:00:00+02:00,20.112018585205078,20.151803970336914,19.865341186523438,19.95287322998047,19.460228386483504,911547,0.0,0.0,True
2023-06-29 00:00:00+02:00,20.01255226135254,20.181644439697266,19.903139114379883,20.092124938964844,19.596040006135482,1053234,0.0,0.0,True
2023-06-30 00:00:00+02:00,20.092124938964844,20.46014976501465,20.092124938964844,20.350736618041992,19.84826681089994,934560,0.0,0.0,True
2023-07-03 00:00:00+02:00,20.301002502441406,20.499935150146484,20.181644439697266,20.26121711730957,19.760957454169773,652308,0.0,0.0,True
2023-07-04 00:00:00+02:00,20.241323471069336,20.241323471069336,20.032445907592773,20.181644439697266,19.683351394969844,483753,0.0,0.0,True
2023-07-05 00:00:00+02:00,20.07223129272461,20.201536178588867,20.002605438232422,20.092124938964844,19.596040006135482,692829,0.0,0.0,True
2023-07-06 00:00:00+02:00,19.903139114379883,20.002605438232422,19.634580612182617,19.74200439453125,19.254565217239005,1098682,0.0,0.0,True
2023-07-07 00:00:00+02:00,19.7181339263916,20.350736618041992,19.7181339263916,20.350736618041992,19.84826681089994,909321,0.0,0.0,True
2023-07-10 00:00:00+02:00,20.221431732177734,20.48004150390625,20.201536178588867,20.241323471069336,19.741554923317693,599989,0.0,0.0,True
2023-07-11 00:00:00+02:00,20.291057586669922,20.60934829711914,20.211484909057617,20.51982879638672,20.01318425893423,514723,0.0,0.0,True
2023-07-12 00:00:00+02:00,20.569562911987305,21.126571655273438,20.529775619506836,21.066890716552734,20.54673963263707,903369,0.0,0.0,True
2023-07-13 00:00:00+02:00,20.967424392700195,21.226036071777344,20.92763900756836,20.967424392700195,20.449729010480866,830319,0.0,0.0,True
2023-07-14 00:00:00+02:00,20.877906799316406,20.897798538208008,20.301002502441406,20.301002502441406,19.799760483769738,959780,0.0,0.0,True
2023-07-17 00:00:00+02:00,20.191591262817383,20.330842971801758,20.151803970336914,20.201536178588867,19.702749861613533,678639,0.0,0.0,True
2023-07-18 00:00:00+02:00,20.211484909057617,20.410415649414062,20.112018585205078,20.410415649414062,19.906472371351985,696082,0.0,0.0,True
2023-07-19 00:00:00+02:00,20.340789794921875,20.430309295654297,20.04239273071289,20.310949325561523,19.80946174919578,1027451,0.0,0.0,True
2023-07-20 00:00:00+02:00,20.330842971801758,20.589454650878906,20.330842971801758,20.589454650878906,20.081091084812318,771530,0.0,0.0,True
2023-07-21 00:00:00+02:00,20.569562911987305,20.758546829223633,20.499935150146484,20.639188766479492,20.129597411942516,532559,0.0,0.0,True
2023-07-24 00:00:00+02:00,20.529775619506836,20.788387298583984,20.48004150390625,20.778440475463867,20.26541106369869,576946,0.0,0.0,True
2023-07-25 00:00:00+02:00,20.80828094482422,21.156410217285156,20.7386531829834,21.14646339416504,20.6243477239412,815268,0.0,0.0,True
2023-07-26 00:00:00+02:00,21.066890716552734,21.206144332885742,20.867958068847656,20.967424392700195,20.449729010480866,501060,0.0,0.0,True
2023-07-27 00:00:00+02:00,21.01715850830078,21.43491554260254,20.967424392700195,21.39512825012207,20.866873263279615,1024169,0.0,0.0,True
2023-07-28 00:00:00+02:00,21.30561065673828,21.802940368652344,21.255876541137695,21.802940368652344,21.264614985226284,1075428,0.0,0.0,True
2023-07-31 00:00:00+02:00,21.802940368652344,21.912351608276367,21.663686752319336,21.703474044799805,21.167606395174275,1096731,0.0,0.0,True
2023-08-01 00:00:00+02:00,21.59406089782715,21.604007720947266,21.424968719482422,21.424968719482422,20.895977059557737,660286,0.0,0.0,True
2023-08-02 00:00:00+02:00,21.186250686645508,21.58411407470703,21.08678436279297,21.454809188842773,20.925080855835855,858203,0.0,0.0,True
2023-08-03 00:00:00+02:00,21.673633575439453,21.78304672241211,20.01255226135254,20.499935150146484,19.993783760186346,1721865,0.0,0.0,True
2023-08-04 00:00:00+02:00,20.66902732849121,20.718759536743164,20.39052391052246,20.659080505371094,20.148999942794596,610022,0.0,0.0,True
2023-08-07 00:00:00+02:00,20.589454650878906,20.80828094482422,20.45020294189453,20.80828094482422,20.294514859976807,484065,0.0,0.0,True
2023-08-08 00:00:00+02:00,20.688920974731445,20.818225860595703,20.589454650878906,20.678974151611328,20.168400441542484,420797,0.0,0.0,True
2023-08-09 00:00:00+02:00,20.858013153076172,21.037052154541016,20.76849365234375,20.858013153076172,20.343019155002814,550545,0.0,0.0,True
2023-08-10 00:00:00+02:00,20.977371215820312,21.126571655273438,20.858013153076172,20.997264862060547,20.478832806758987,468059,0.0,0.0,True
2023-08-11 00:00:00+02:00,20.877906799316406,21.0271053314209,20.748600006103516,20.758546829223633,20.246010564950804,462374,0.0,0.0,True
2023-08-14 00:00:00+02:00,20.7386531829834,20.848066329956055,20.66902732849121,20.7386531829834,20.22660600199453,668188,0.0,0.0,True
2023-08-15 00:00:00+02:00,20.788387298583984,20.818225860595703,20.430309295654297,20.57950782775879,20.071389819386276,432414,0.0,0.0,True
2023-08-16 00:00:00+02:00,20.539722442626953,20.76849365234375,20.539722442626953,20.70881462097168,20.197506269924798,544437,0.0,0.0,True
2023-08-17 00:00:00+02:00,20.57950782775879,20.76849365234375,20.549667358398438,20.688920974731445,20.178101706968523,564871,0.0,0.0,True
2023-08-18 00:00:00+02:00,20.688920974731445,20.70881462097168,20.291057586669922,20.38057518005371,19.877370607178058,693870,0.0,0.0,True
2023-08-21 00:00:00+02:00,20.39052391052246,20.66902732849121,20.39052391052246,20.569562911987305,20.061690586064433,793311,0.0,0.0,True
2023-08-22 00:00:00+02:00,20.599401473999023,20.907745361328125,20.5098819732666,20.76849365234375,20.255711830376843,650046,0.0,0.0,True
2023-08-23 00:00:00+02:00,20.80828094482422,20.858013153076172,20.330842971801758,20.370630264282227,19.86766934175202,647211,0.0,0.0,True
2023-08-24 00:00:00+02:00,20.45020294189453,20.599401473999023,20.291057586669922,20.330842971801758,19.828866312152055,475896,0.0,0.0,True
2023-08-25 00:00:00+02:00,20.301002502441406,20.45020294189453,20.26121711730957,20.291057586669922,19.79006328255209,318928,0.0,0.0,True
2023-08-28 00:00:00+02:00,20.42036247253418,20.549667358398438,20.42036247253418,20.499935150146484,19.993783760186346,332741,0.0,0.0,True
2023-08-29 00:00:00+02:00,20.66902732849121,20.897798538208008,20.66902732849121,20.838119506835938,20.323616624150734,523138,0.0,0.0,True
2023-08-30 00:00:00+02:00,20.838119506835938,21.007211685180664,20.778440475463867,20.907745361328125,20.39152345002882,394929,0.0,0.0,True
2023-08-31 00:00:00+02:00,20.947532653808594,21.36528968811035,20.92763900756836,21.265823364257812,20.740760876949484,2323236,0.0,0.0,True
2023-09-01 00:00:00+02:00,21.255876541137695,21.9322452545166,21.255876541137695,21.87256622314453,21.332523843208566,966179,0.0,0.0,True
2023-09-04 00:00:00+02:00,21.981977462768555,22.021764755249023,21.544328689575195,21.58411407470703,21.05119121006179,643546,0.0,0.0,True
2023-09-05 00:00:00+02:00,21.504541397094727,21.78304672241211,21.424968719482422,21.6239013671875,21.08999627176595,541345,0.0,0.0,True
2023-09-06 00:00:00+02:00,21.544328689575195,22.111284255981445,21.504541397094727,22.09139060974121,21.545945586268864,851678,0.0,0.0,True
2023-09-07 00:00:00+02:00,21.882511138916016,21.90240478515625,21.424968719482422,21.464754104614258,20.9347800891577,700314,0.0,0.0,True
2023-09-08 00:00:00+02:00,21.574167251586914,21.574167251586914,20.887853622436523,21.235984802246094,20.711659112775557,719356,0.0,0.0,True
2023-09-11 00:00:00+02:00,21.345396041870117,21.564220428466797,21.315555572509766,21.52443504333496,20.992985649609746,524078,0.0,0.0,True
2023-09-12 00:00:00+02:00,21.58411407470703,21.6239013671875,21.11662483215332,21.11662483215332,20.595245959767272,772781,0.0,0.0,True
2023-09-13 00:00:00+02:00,21.0469970703125,21.36528968811035,20.76849365234375,20.818225860595703,20.30421612540285,691035,0.0,0.0,True
2023-09-14 00:00:00+02:00,20.887853622436523,21.196197509765625,20.629241943359375,21.126571655273438,20.604947225193314,578423,0.0,0.0,True
2023-09-15 00:00:00+02:00,21.295663833618164,21.952138900756836,21.295663833618164,21.84272575378418,21.30341801482625,2234985,0.0,0.0,True
2023-09-18 00:00:00+02:00,21.802940368652344,21.84272575378418,21.673633575439453,21.713420867919922,21.177307660600313,856277,0.0,0.0,True
2023-09-19 00:00:00+02:00,21.6437931060791,21.6437931060791,21.39512825012207,21.415021896362305,20.8862737620275,685505,0.0,0.0,True
2023-09-20 00:00:00+02:00,21.52443504333496,21.792993545532227,21.504541397094727,21.74325942993164,21.206407392670044,752488,0.0,0.0,True
2023-09-21 00:00:00+02:00,21.534381866455078,21.574167251586914,21.0271053314209,21.186250686645508,20.66315278564536,722196,0.0,0.0,True
2023-09-22 00:00:00+02:00,21.08678436279297,21.295663833618164,20.95747947692871,21.096731185913086,20.575843428915192,535977,0.0,0.0,True
2023-09-25 00:00:00+02:00,21.037052154541016,21.17630386352539,20.529775619506836,20.788387298583984,20.275112329124727,678523,0.0,0.0,True
2023-09-26 00:00:00+02:00,20.72870635986328,20.72870635986328,20.410415649414062,20.489988327026367,19.984082494760305,999281,0.0,0.0,True
2023-09-27 00:00:00+02:00,20.559614181518555,20.66902732849121,20.440256118774414,20.569562911987305,20.061690586064433,679654,0.0,0.0,True
2023-09-28 00:00:00+02:00,20.57950782775879,20.858013153076172,20.42036247253418,20.80828094482422,20.294514859976807,791858,0.0,0.0,True
2023-09-29 00:00:00+02:00,20.977371215820312,21.07683753967285,20.778440475463867,20.858013153076172,20.343019155002814,1368070,0.0,0.0,True
2023-10-02 00:00:00+02:00,20.877906799316406,20.95747947692871,20.38057518005371,20.489988327026367,19.984082494760305,921943,0.0,0.0,True
2023-10-03 00:00:00+02:00,20.45020294189453,20.559614181518555,20.241323471069336,20.430309295654297,19.92587693430826,870202,0.0,0.0,True
2023-10-04 00:00:00+02:00,20.340789794921875,20.629241943359375,20.23137664794922,20.301002502441406,19.799760483769738,1412955,0.0,0.0,True
2023-10-05 00:00:00+02:00,20.301002502441406,20.410415649414062,20.151803970336914,20.23137664794922,19.731855689995847,552761,0.0,0.0,True
2023-10-06 00:00:00+02:00,20.271163940429688,20.489988327026367,20.17169761657715,20.370630264282227,19.86766934175202,824653,0.0,0.0,True
2023-10-09 00:00:00+02:00,20.201536178588867,20.26121711730957,19.817598342895508,20.201536178588867,19.702749861613533,857112,0.0,0.0,True
2023-10-10 00:00:00+02:00,20.310949325561523,20.619295120239258,20.281110763549805,20.470096588134766,19.964679963908225,881954,0.0,0.0,True
2023-10-11 00:00:00+02:00,20.32089614868164,20.629241943359375,20.32089614868164,20.440256118774414,19.9355781997343,612797,0.0,0.0,True
2023-10-12 00:00:00+02:00,20.569562911987305,20.688920974731445,20.271163940429688,20.32089614868164,19.819165046726013,484462,0.0,0.0,True
2023-10-13 00:00:00+02:00,20.211484909057617,20.470096588134766,20.211484909057617,20.301002502441406,19.799760483769738,538324,0.0,0.0,True
2023-10-16 00:00:00+02:00,20.340789794921875,20.489988327026367,20.26121711730957,20.310949325561523,19.80946174919578,495104,0.0,0.0,True
2023-10-17 00:00:00+02:00,20.241323471069336,20.301002502441406,19.9130859375,20.221431732177734,19.722156456674004,618131,0.0,0.0,True
2023-10-18 00:00:00+02:00,20.191591262817383,20.23137664794922,19.881256103515625,19.881256103515625,19.390378868995178,559829,0.0,0.0,True
2023-10-19 00:00:00+02:00,19.714153289794922,19.84147071838379,19.551029205322266,19.630603790283203,19.145914702254906,708805,0.0,0.0,True
2023-10-20 00:00:00+02:00,19.49930763244629,19.54705047607422,19.296396255493164,19.296396255493164,18.819959093094223,760144,0.0,0.0,True
2023-10-23 00:00:00+02:00,19.3162899017334,19.344141006469727,19.005956649780273,19.16908073425293,18.69578736627014,652032,0.0,0.0,True
2023-10-24 00:00:00+02:00,19.101444244384766,19.232738494873047,18.994020462036133,19.11735725402832,18.645342411738085,565349,0.0,0.0,True
2023-10-25 00:00:00+02:00,19.133272171020508,19.184995651245117,18.882619857788086,19.093486785888672,18.622060593978105,597757,0.0,0.0,True
2023-10-26 00:00:00+02:00,18.882619857788086,19.507265090942383,18.834875106811523,19.403820037841797,18.924732353274617,756208,0.0,0.0,True
2023-10-27 00:00:00+02:00,19.519201278686523,19.75394058227539,19.20488739013672,19.20488739013672,18.730711108962204,767302,0.0,0.0,True
2023-10-30 00:00:00+01:00,19.296396255493164,19.54705047607422,19.296396255493164,19.45156478881836,18.97129802089877,755454,0.0,0.0,True
2023-10-31 00:00:00+01:00,19.455543518066406,19.972766876220703,19.443607330322266,19.84147071838379,19.351575839395213,1249155,0.0,0.0,True
2023-11-01 00:00:00+01:00,19.903139114379883,20.04239273071289,19.551029205322266,19.618667602539062,19.134274809427016,645054,0.0,0.0,True
2023-11-02 00:00:00+01:00,19.734046936035156,20.410415649414062,19.726089477539062,20.141857147216797,19.64454430116149,1414951,0.0,0.0,True
2023-11-03 00:00:00+01:00,19.877277374267578,20.211484909057617,19.165102005004883,19.51124382019043,19.02950154924662,1786173,0.0,0.0,True
2023-11-06 00:00:00+01:00,19.515222549438477,19.78179168701172,19.304353713989258,19.531137466430664,19.0489040800987,1141224,0.0,0.0,True
2023-11-07 00:00:00+01:00,19.42371368408203,19.535114288330078,19.25263214111328,19.35209846496582,18.874285366638368,719557,0.0,0.0,True
2023-11-08 00:00:00+01:00,19.228759765625,19.427692413330078,19.093486785888672,19.320268630981445,18.843242942958398,829203,0.0,0.0,True
2023-11-09 00:00:00+01:00,19.308332443237305,19.903139114379883,19.308332443237305,19.574901580810547,19.09158842871076,1169455,0.0,0.0,True
2023-11-10 00:00:00+01:00,19.479415893554688,19.761898040771484,19.244674682617188,19.761898040771484,19.273967748091085,991826,0.0,0.0,True
2023-11-13 00:00:00+01:00,19.773834228515625,19.857385635375977,19.531137466430664,19.734046936035156,19.246804611319014,980360,0.0,0.0,True
2023-11-14 00:00:00+01:00,19.79372787475586,20.410415649414062,19.78974723815918,20.340789794921875,19.838567577578093,892672,0.0,0.0,True
2023-11-15 00:00:00+01:00,20.36068344116211,20.917692184448242,20.291057586669922,20.917692184448242,20.40122471545486,1168610,0.0,0.0,True
2023-11-16 00:00:00+01:00,20.79833221435547,21.07683753967285,20.549667358398438,20.549667358398438,20.042288055212353,755625,0.0,0.0,True
2023-11-17 00:00:00+01:00,20.549667358398438,20.848066329956055,20.549667358398438,20.559614181518555,20.05198932063839,784037,0.0,0.0,True
2023-11-20 00:00:00+01:00,20.589454650878906,20.887853622436523,20.51982879638672,20.72870635986328,20.216904736568488,946072,0.0,0.0,True
2023-11-21 00:00:00+01:00,20.688920974731445,20.82817268371582,20.470096588134766,20.629241943359375,20.119896146516478,1185330,0.0,0.0,True
2023-11-22 00:00:00+01:00,20.629241943359375,20.838119506835938,20.559614181518555,20.599401473999023,20.09079438234255,1261386,0.0,0.0,True
2023-11-23 00:00:00+01:00,20.599401473999023,20.76849365234375,20.599401473999023,20.7386531829834,20.22660600199453,633558,0.0,0.0,True
2023-11-24 00:00:00+01:00,20.778440475463867,20.92763900756836,20.72870635986328,20.92763900756836,20.410928012985096,719180,0.0,0.0,True
2023-11-27 00:00:00+01:00,20.887853622436523,20.907745361328125,20.51982879638672,20.57950782775879,20.071389819386276,1094505,0.0,0.0,True
2023-11-28 00:00:00+01:00,20.529775619506836,20.66902732849121,20.330842971801758,20.60934829711914,20.100495647768593,1053370,0.0,0.0,True
2023-11-29 00:00:00+01:00,20.60934829711914,21.037052154541016,20.569562911987305,20.977371215820312,20.459430275906907,957061,0.0,0.0,True
2023-11-30 00:00:00+01:00,20.947532653808594,21.27577018737793,20.818225860595703,21.11662483215332,20.595245959767272,2370750,0.0,0.0,True
2023-12-01 00:00:00+01:00,21.166357040405273,21.6437931060791,21.166357040405273,21.604007720947266,21.070595773018066,1195222,0.0,0.0,True
2023-12-04 00:00:00+01:00,21.484647750854492,21.94219207763672,21.464754104614258,21.74325942993164,21.206407392670044,1089262,0.0,0.0,True
2023-12-05 00:00:00+01:00,21.6239013671875,21.9322452545166,21.59406089782715,21.882511138916016,21.34222307653041,1150906,0.0,0.0,True
2023-12-06 00:00:00+01:00,21.882511138916016,22.081443786621094,21.84272575378418,22.041658401489258,21.497441291242858,1090639,0.0,0.0,True
2023-12-07 00:00:00+01:00,22.081443786621094,22.489255905151367,22.041658401489258,22.359949111938477,21.80787365645936,1596696,0.0,0.0,True
2023-12-08 00:00:00+01:00,22.330108642578125,22.479307174682617,21.991924285888672,22.35000228881836,21.798170358929127,1410130,0.0,0.0,True
2023-12-11 00:00:00+01:00,19.450000762939453,23.649999618530273,17.895000457763672,20.6200008392334,20.110883764412478,8998324,0.0,0.0,True
2023-12-12 00:00:00+01:00,20.790000915527344,22.3700008392334,20.75,22.139999389648438,21.593352545029667,3236690,0.0,0.0,True
2023-12-13 00:00:00+01:00,22.489999771118164,24.530000686645508,22.399999618530273,23.950000762939453,23.358663812210377,2215354,0.0,0.0,True
2023-12-14 00:00:00+01:00,24.5,25.010000228881836,23.950000762939453,24.540000915527344,23.934096789159938,1535694,0.0,0.0,True
2023-12-15 00:00:00+01:00,24.8799991607666,25.420000076293945,24.600000381469727,25.40999984741211,24.782616120433715,2385553,0.0,0.0,True
2023-12-18 00:00:00+01:00,25.649999618530273,26.969999313354492,25.489999771118164,26.1299991607666,25.484838174410278,965441,0.0,0.0,True
2023-12-19 00:00:00+01:00,26.290000915527344,27.399999618530273,26.200000762939453,27.209999084472656,26.53817328747932,908754,0.0,0.0,True
2023-12-20 00:00:00+01:00,27.3700008392334,27.469999313354492,26.350000381469727,26.350000381469727,25.699408056340648,821654,0.0,0.0,True
2023-12-21 00:00:00+01:00,26.239999771118164,26.3700008392334,25.760000228881836,26.049999237060547,25.406813501746218,744197,0.0,0.0,True
2023-12-22 00:00:00+01:00,26.1200008392334,26.510000228881836,26.049999237060547,26.239999771118164,25.59212311537546,358134,0.0,0.0,True
2023-12-27 00:00:00+01:00,26.639999389648438,26.729999542236328,26.299999237060547,26.729999542236328,26.070023219390748,398784,0.0,0.0,True
2023-12-28 00:00:00+01:00,26.899999618530273,27.200000762939453,26.899999618530273,27.190000534057617,26.518669151417498,306879,0.0,0.0,True
2023-12-29 00:00:00+01:00,27.219999313354492,27.959999084472656,27.219999313354492,27.729999542236328,27.045333659795727,508827,0.0,0.0,True
2024-01-02 00:00:00+01:00,28.059999465942383,28.600000381469727,27.520000457763672,28.030000686645508,27.337928214390157,395002,0.0,0.0,True
2024-01-03 00:00:00+01:00,28.110000610351562,28.15999984741211,27.170000076293945,27.43000030517578,26.75274113730549,517626,0.0,0.0,True
2024-01-04 00:00:00+01:00,27.5,28.110000610351562,27.5,28.09000015258789,27.396446718888203,353356,0.0,0.0,True
2024-01-05 00:00:00+01:00,28.079999923706055,28.469999313354492,28.0,28.329999923706055,27.630518704776197,426440,0.0,0.0,True
2024-01-08 00:00:00+01:00,28.290000915527344,28.329999923706055,27.540000915527344,28.0,27.308667946089034,503233,0.0,0.0,True
2024-01-09 00:00:00+01:00,27.190000534057617,27.549999237060547,27.079999923706055,27.299999237060547,26.62595002817429,592677,0.0,0.0,True
2024-01-10 00:00:00+01:00,27.100000381469727,27.170000076293945,26.350000381469727,26.350000381469727,25.699408056340648,692877,0.0,0.0,True
2024-01-11 00:00:00+01:00,26.389999389648438,26.559999465942383,25.889999389648438,26.0,25.35804706527908,631805,0.0,0.0,True
2024-01-12 00:00:00+01:00,26.639999389648438,26.860000610351562,26.06999969482422,26.139999389648438,25.49459024244119,803481,0.0,0.0,True
2024-01-15 00:00:00+01:00,25.059999465942383,25.329999923706055,25.0,25.299999237060547,24.690631866455078,726646,0.016200000000000003,0.0,False
2024-01-16 00:00:00+01:00,25.149999618530273,25.200000762939453,24.579999923706055,24.989999771118164,24.388099670410156,493029,0.0,0.0,False
2024-01-17 00:00:00+01:00,24.700000762939453,24.729999542236328,23.989999771118164,24.260000228881836,23.675682067871094,646371,0.0,0.0,False
2024-01-18 00:00:00+01:00,24.200000762939453,24.239999771118164,23.530000686645508,23.530000686645508,22.963266372680664,686723,0.0,0.0,False
2024-01-19 00:00:00+01:00,23.670000076293945,24.25,23.670000076293945,24.049999237060547,23.470739364624023,679303,0.0,0.0,False
2024-01-22 00:00:00+01:00,24.299999237060547,24.770000457763672,24.079999923706055,24.760000228881836,24.163639068603516,282294,0.0,0.0,False
2024-01-23 00:00:00+01:00,25.200000762939453,25.450000762939453,24.90999984741211,25.3799991607666,24.768705368041992,397643,0.0,0.0,False
2024-01-24 00:00:00+01:00,25.600000381469727,25.6299991607666,24.75,24.75,24.153881072998047,564082,0.0,0.0,False
2024-01-25 00:00:00+01:00,24.84000015258789,25.760000228881836,24.799999237060547,25.600000381469727,24.983407974243164,401178,0.0,0.0,False
2024-01-26 00:00:00+01:00,25.690000534057617,26.959999084472656,25.6200008392334,26.40999984741211,25.773897171020508,712857,0.0,0.0,False
2024-01-29 00:00:00+01:00,26.5,26.549999237060547,25.760000228881836,25.760000228881836,25.139554977416992,375526,0.0,0.0,False
2024-01-30 00:00:00+01:00,25.8799991607666,26.049999237060547,25.610000610351562,25.690000534057617,25.071239471435547,339731,0.0,0.0,False
2024-01-31 00:00:00+01:00,25.850000381469727,26.1299991607666,25.440000534057617,25.440000534057617,24.827260971069336,1756316,0.0,0.0,False
2024-02-01 00:00:00+01:00,25.329999923706055,25.5,24.530000686645508,24.59000015258789,23.99773406982422,398800,0.0,0.0,False
2024-02-02 00:00:00+01:00,24.899999618530273,24.979999542236328,24.40999984741211,24.40999984741211,23.82206916809082,418661,0.0,0.0,False
2024-02-05 00:00:00+01:00,24.440000534057617,24.56999969482422,23.6299991607666,23.649999618530273,23.080373764038086,640546,0.0,0.0,False
2024-02-06 00:00:00+01:00,23.739999771118164,23.81999969482422,22.8799991607666,23.469999313354492,22.904708862304688,800098,0.0,0.0,False
2024-02-07 00:00:00+01:00,23.200000762939453,23.309999465942383,22.489999771118164,22.639999389648438,22.09469985961914,896379,0.0,0.0,False
2024-02-08 00:00:00+01:00,22.799999237060547,23.1299991607666,22.690000534057617,23.0,22.446029663085938,622376,0.0,0.0,False
2024-02-09 00:00:00+01:00,22.5,22.739999771118164,22.209999084472656,22.209999084472656,21.67505645751953,783024,0.0,0.0,False
2024-02-12 00:00:00+01:00,22.450000762939453,22.899999618530273,22.290000915527344,22.84000015258789,22.289884567260742,443790,0.0,0.0,False
2024-02-13 00:00:00+01:00,22.860000610351562,23.34000015258789,22.719999313354492,23.190000534057617,22.631454467773438,530025,0.0,0.0,False
2024-02-14 00:00:00+01:00,23.06999969482422,23.5,22.90999984741211,23.489999771118164,22.92422866821289,452602,0.0,0.0,False
2024-02-15 00:00:00+01:00,23.6200008392334,24.170000076293945,23.579999923706055,23.940000534057617,23.36338996887207,423885,0.0,0.0,False
2024-02-16 00:00:00+01:00,24.280000686645508,24.420000076293945,23.770000457763672,24.020000457763672,23.441463470458984,445071,0.0,0.0,False
2024-02-19 00:00:00+01:00,24.110000610351562,24.139999389648438,23.690000534057617,23.690000534057617,23.11941146850586,334433,0.0,0.0,False
2024-02-20 00:00:00+01:00,23.770000457763672,24.09000015258789,23.489999771118164,24.09000015258789,23.509777069091797,306827,0.0,0.0,False
2024-02-21 00:00:00+01:00,23.850000381469727,24.040000915527344,23.5,24.040000915527344,23.460981369018555,431924,0.0,0.0,False
2024-02-22 00:00:00+01:00,24.229999542236328,24.399999618530273,24.010000228881836,24.219999313354492,23.63664436340332,366743,0.0,0.0,False
2024-02-23 00:00:00+01:00,24.239999771118164,24.6200008392334,23.860000610351562,23.959999084472656,23.38290786743164,266603,0.0,0.0,False
2024-02-26 00:00:00+01:00,23.959999084472656,23.959999084472656,23.270000457763672,23.479999542236328,22.91446876525879,316183,0.0,0.0,False
2024-02-27 00:00:00+01:00,23.540000915527344,23.889999389648438,23.329999923706055,23.75,23.17796516418457,284263,0.0,0.0,False
2024-02-28 00:00:00+01:00,23.829999923706055,24.059999465942383,23.559999465942383,23.6200008392334,23.051097869873047,344714,0.0,0.0,False
2024-02-29 00:00:00+01:00,23.600000381469727,23.6299991607666,23.329999923706055,23.5,22.93398666381836,601749,0.0,0.0,False
2024-03-01 00:00:00+01:00,23.6299991607666,24.530000686645508,23.59000015258789,24.200000762939453,23.617128372192383,445507,0.0,0.0,False
2024-03-04 00:00:00+01:00,24.1200008392334,24.229999542236328,22.989999771118164,23.3799991607666,22.816877365112305,469234,0.0,0.0,False
2024-03-05 00:00:00+01:00,23.329999923706055,23.579999923706055,23.079999923706055,23.579999923706055,23.012060165405273,321295,0.0,0.0,False
2024-03-06 00:00:00+01:00,23.579999923706055,24.100000381469727,23.549999237060547,23.549999237060547,22.9827823638916,516710,0.0,0.0,False
2024-03-07 00:00:00+01:00,23.389999389648438,23.670000076293945,23.100000381469727,23.5,22.93398666381836,371579,0.0,0.0,False
2024-03-08 00:00:00+01:00,23.520000457763672,23.770000457763672,22.969999313354492,23.739999771118164,23.1682071685791,426367,0.0,0.0,False
2024-03-11 00:00:00+01:00,23.68000030517578,24.100000381469727,23.450000762939453,24.100000381469727,23.5195369720459,437456,0.0,0.0,False
2024-03-12 00:00:00+01:00,24.299999237060547,25.450000762939453,24.059999465942383,25.25,24.64183807373047,794906,0.0,0.0,False
2024-03-13 00:00:00+01:00,24.100000381469727,26.010000228881836,23.950000762939453,24.549999237060547,23.958696365356445,844838,0.0,0.0,False
2024-03-14 00:00:00+01:00,24.440000534057617,24.729999542236328,23.649999618530273,23.81999969482422,23.246280670166016,643203,0.0,0.0,False
2024-03-15 00:00:00+01:00,23.850000381469727,24.579999923706055,23.229999542236328,23.229999542236328,22.670490264892578,1376963,0.0,0.0,False
2024-03-18 00:00:00+01:00,23.229999542236328,23.6299991607666,23.030000686645508,23.440000534057617,22.87543296813965,406545,0.0,0.0,False
2024-03-19 00:00:00+01:00,23.149999618530273,23.75,23.040000915527344,23.670000076293945,23.09989356994629,429140,0.0,0.0,False
2024-03-20 00:00:00+01:00,23.639999389648438,24.110000610351562,23.5,24.030000686645508,23.451223373413086,308989,0.0,0.0,False
2024-03-21 00:00:00+01:00,24.18000030517578,24.479999542236328,24.030000686645508,24.15999984741211,23.57809066772461,415990,0.0,0.0,False
2024-03-22 00:00:00+01:00,24.139999389648438,24.719999313354492,23.84000015258789,24.540000915527344,23.948938369750977,295245,0.0,0.0,False
2024-03-25 00:00:00+01:00,24.549999237060547,25.100000381469727,24.520000457763672,25.059999465942383,24.45641326904297,348983,0.0,0.0,False
2024-03-26 00:00:00+01:00,25.030000686645508,25.09000015258789,24.299999237060547,24.549999237060547,23.958696365356445,323207,0.0,0.0,False
2024-03-27 00:00:00+01:00,24.459999084472656,24.969999313354492,24.31999969482422,24.969999313354492,24.368581771850586,203281,0.0,0.0,False
2024-03-28 00:00:00+01:00,25.020000457763672,25.360000610351562,24.700000762939453,25.299999237060547,24.690631866455078,292668,0.0,0.0,False
2024-04-02 00:00:00+02:00,25.350000381469727,25.799999237060547,25.299999237060547,25.600000381469727,24.983407974243164,302238,0.0,0.0,False
2024-04-03 00:00:00+02:00,25.68000030517578,26.8799991607666,25.6299991607666,26.690000534057617,26.047155380249023,448326,0.0,0.0,False
2024-04-04 00:00:00+02:00,28.5,29.190000534057617,27.709999084472656,27.709999084472656,27.042585372924805,1493843,0.0,0.0,False
2024-04-05 00:00:00+02:00,27.350000381469727,27.959999084472656,27.010000228881836,27.350000381469727,26.69125747680664,540908,0.0,0.0,False
2024-04-08 00:00:00+02:00,27.399999618530273,28.309999465942383,27.34000015258789,28.270000457763672,27.589099884033203,487088,0.0,0.0,False
2024-04-09 00:00:00+02:00,28.350000381469727,28.43000030517578,28.049999237060547,28.200000762939453,27.52078628540039,253999,0.0,0.0,False
2024-04-10 00:00:00+02:00,28.34000015258789,29.40999984741211,28.1200008392334,28.639999389648438,27.950185775756836,735134,0.0,0.0,False
2024-04-11 00:00:00+02:00,28.93000030517578,29.260000228881836,28.649999618530273,28.959999084472656,28.262479782104492,306645,0.0,0.0,False
2024-04-12 00:00:00+02:00,29.399999618530273,29.799999237060547,29.170000076293945,29.5,28.789474487304688,437731,0.0,0.0,False
2024-04-15 00:00:00+02:00,29.100000381469727,29.850000381469727,29.0,29.450000762939453,28.740678787231445,388339,0.0,0.0,False
2024-04-16 00:00:00+02:00,29.200000762939453,29.350000381469727,28.780000686645508,28.780000686645508,28.086816787719727,434787,0.0,0.0,False
2024-04-17 00:00:00+02:00,28.780000686645508,29.989999771118164,28.760000228881836,29.799999237060547,29.082246780395508,352161,0.0,0.0,False
2024-04-18 00:00:00+02:00,29.899999618530273,30.700000762939453,29.780000686645508,30.649999618530273,29.911775588989258,347317,0.0,0.0,False
2024-04-19 00:00:00+02:00,30.5,31.040000915527344,28.34000015258789,30.75,30.009366989135742,697878,0.0,0.0,False
2024-04-22 00:00:00+02:00,30.81999969482422,31.600000381469727,30.770000457763672,31.56999969482422,30.809616088867188,401308,0.0,0.0,False
2024-04-23 00:00:00+02:00,31.579999923706055,31.65999984741211,30.049999237060547,31.0,30.253345489501953,471634,0.0,0.0,False
2024-04-24 00:00:00+02:00,30.950000762939453,31.75,30.90999984741211,31.200000762939453,30.448528289794922,307607,0.0,0.0,False
2024-04-25 00:00:00+02:00,31.299999237060547,31.329999923706055,29.670000076293945,29.75,29.0334529876709,478021,0.0,0.0,False
2024-04-26 00:00:00+02:00,30.25,30.719999313354492,29.959999084472656,30.18000030517578,29.453096389770508,331898,0.0,0.0,False
2024-04-29 00:00:00+02:00,30.209999084472656,30.899999618530273,30.209999084472656,30.850000381469727,30.106958389282227,225725,0.0,0.0,False
2024-04-30 00:00:00+02:00,30.899999618530273,31.18000030517578,30.290000915527344,30.40999984741211,29.677555084228516,232054,0.0,0.0,False
2024-05-02 00:00:00+02:00,30.40999984741211,30.600000381469727,29.709999084472656,30.5,29.76538848876953,390674,0.0,0.0,False
2024-05-03 00:00:00+02:00,29.56999969482422,30.299999237060547,29.5,30.139999389648438,29.414058685302734,364126,0.0,0.0,False
2024-05-06 00:00:00+02:00,30.290000915527344,30.989999771118164,30.139999389648438,30.420000076293945,29.687314987182617,273816,0.0,0.0,False
2024-05-07 00:00:00+02:00,31.600000381469727,35.25,31.360000610351562,34.7599983215332,33.92278289794922,1075584,0.0,0.0,False
2024-05-08 00:00:00+02:00,34.34000015258789,36.619998931884766,33.43000030517578,34.68000030517578,33.84471130371094,1057246,0.0,0.0,False
2024-05-09 00:00:00+02:00,34.650001525878906,35.33000183105469,34.209999084472656,34.38999938964844,33.56169509887695,262471,0.0,0.0,False
2024-05-10 00:00:00+02:00,34.790000915527344,34.939998626708984,33.58000183105469,33.650001525878906,32.83951950073242,223080,0.0,0.0,False
2024-05-13 00:00:00+02:00,33.5,34.459999084472656,33.33000183105469,34.310001373291016,33.48362350463867,273103,0.0,0.0,False
2024-05-14 00:00:00+02:00,34.220001220703125,34.52000045776367,33.560001373291016,34.52000045776367,33.68856430053711,279550,0.0,0.0,False
2024-05-15 00:00:00+02:00,34.630001068115234,34.900001525878906,33.75,34.099998474121094,33.27867889404297,242453,0.0,0.0,False
2024-05-16 00:00:00+02:00,34.13999938964844,34.13999938964844,33.04999923706055,33.599998474121094,32.79072189331055,235321,0.0,0.0,False
2024-05-17 00:00:00+02:00,32.84000015258789,34.06999969482422,32.59000015258789,34.06999969482422,33.2494010925293,339910,0.0,0.0,False
2024-05-20 00:00:00+02:00,34.400001525878906,34.400001525878906,33.70000076293945,34.04999923706055,33.229881286621094,164887,0.0,0.0,False
2024-05-21 00:00:00+02:00,33.97999954223633,34.130001068115234,33.31999969482422,33.31999969482422,32.5174674987793,171162,0.0,0.0,False
2024-05-22 00:00:00+02:00,33.29999923706055,34.189998626708984,32.93000030517578,34.189998626708984,33.366512298583984,345186,0.0,0.0,False
2024-05-23 00:00:00+02:00,34.189998626708984,34.75,34.150001525878906,34.470001220703125,33.6397705078125,301874,0.0,0.0,False
2024-05-24 00:00:00+02:00,34.29999923706055,35.040000915527344,34.060001373291016,34.52000045776367,33.68856430053711,297474,0.0,0.0,False
2024-05-27 00:00:00+02:00,34.52000045776367,34.900001525878906,34.25,34.5,33.669044494628906,145496,0.0,0.0,False
2024-05-28 00:00:00+02:00,34.459999084472656,34.540000915527344,33.81999969482422,34.400001525878906,33.57145690917969,239174,0.0,0.0,False
2024-05-29 00:00:00+02:00,34.400001525878906,34.439998626708984,33.900001525878906,34.220001220703125,33.395790100097656,245711,0.0,0.0,False
2024-05-30 00:00:00+02:00,34.61000061035156,34.61000061035156,33.75,34.310001373291016,33.48362350463867,270049,0.0,0.0,False
2024-05-31 00:00:00+02:00,34.25,34.650001525878906,33.45000076293945,33.630001068115234,32.81999969482422,348292,0.0,0.0,False
2024-06-03 00:00:00+02:00,33.20000076293945,33.290000915527344,31.81999969482422,31.829999923706055,31.829999923706055,271111,0.81,0.0,False
2024-06-04 00:00:00+02:00,31.780000686645508,31.860000610351562,31.260000228881836,31.649999618530273,31.649999618530273,345119,0.0,0.0,False
2024-06-05 00:00:00+02:00,31.770000457763672,31.940000534057617,31.270000457763672,31.270000457763672,31.270000457763672,371491,0.0,0.0,False
2024-06-06 00:00:00+02:00,31.489999771118164,31.510000228881836,30.600000381469727,30.920000076293945,30.920000076293945,325501,0.0,0.0,False
2024-06-07 00:00:00+02:00,30.90999984741211,31.209999084472656,30.600000381469727,30.969999313354492,30.969999313354492,161556,0.0,0.0,False
2024-06-10 00:00:00+02:00,30.850000381469727,31.739999771118164,30.729999542236328,31.739999771118164,31.739999771118164,265293,0.0,0.0,False
2024-06-11 00:00:00+02:00,31.639999389648438,32.529998779296875,31.639999389648438,32.349998474121094,32.349998474121094,424271,0.0,0.0,False
2024-06-12 00:00:00+02:00,32.40999984741211,33.04999923706055,32.40999984741211,32.81999969482422,32.81999969482422,244552,0.0,0.0,False
2024-06-13 00:00:00+02:00,32.54999923706055,32.54999923706055,31.709999084472656,31.780000686645508,31.780000686645508,302052,0.0,0.0,False
2024-06-14 00:00:00+02:00,31.600000381469727,31.6299991607666,30.34000015258789,30.790000915527344,30.790000915527344,342157,0.0,0.0,False
2024-06-17 00:00:00+02:00,30.920000076293945,31.479999542236328,30.889999389648438,31.34000015258789,31.34000015258789,273690,0.0,0.0,False
2024-06-18 00:00:00+02:00,31.579999923706055,31.690000534057617,31.06999969482422,31.229999542236328,31.229999542236328,218534,0.0,0.0,False
2024-06-19 00:00:00+02:00,31.260000228881836,31.81999969482422,31.200000762939453,31.350000381469727,31.350000381469727,175454,0.0,0.0,False
2024-06-20 00:00:00+02:00,31.31999969482422,32.11000061035156,31.31999969482422,31.709999084472656,31.709999084472656,296995,0.0,0.0,False
2024-06-21 00:00:00+02:00,31.860000610351562,32.04999923706055,31.559999465942383,31.719999313354492,31.719999313354492,2005373,0.0,0.0,False
2024-06-24 00:00:00+02:00,31.700000762939453,33.630001068115234,31.700000762939453,33.06999969482422,33.06999969482422,347579,0.0,0.0,False
2024-06-25 00:00:00+02:00,33.0,33.34000015258789,31.90999984741211,31.90999984741211,31.90999984741211,241894,0.0,0.0,False
2024-06-26 00:00:00+02:00,31.899999618530273,32.349998474121094,31.649999618530273,31.8700008392334,31.8700008392334,267568,0.0,0.0,False
2024-06-27 00:00:00+02:00,32.29999923706055,33.0,32.20000076293945,32.900001525878906,32.900001525878906,182682,0.0,0.0,False
2024-06-28 00:00:00+02:00,32.95000076293945,33.060001373291016,32.31999969482422,32.869998931884766,32.869998931884766,277611,0.0,0.0,False
2024-07-01 00:00:00+02:00,33.29999923706055,33.4900016784668,32.72999954223633,33.4900016784668,33.4900016784668,206747,0.0,0.0,False
2024-07-02 00:00:00+02:00,33.5,34.0,33.13999938964844,34.0,34.0,231379,0.0,0.0,False
2024-07-03 00:00:00+02:00,33.95000076293945,34.13999938964844,33.47999954223633,34.13999938964844,34.13999938964844,262502,0.0,0.0,False
2024-07-04 00:00:00+02:00,34.0,34.20000076293945,33.540000915527344,34.060001373291016,34.060001373291016,130465,0.0,0.0,False
2024-07-05 00:00:00+02:00,34.060001373291016,34.279998779296875,33.5099983215332,33.5099983215332,33.5099983215332,212429,0.0,0.0,False
2024-07-08 00:00:00+02:00,33.400001525878906,33.95000076293945,32.81999969482422,33.95000076293945,33.95000076293945,194477,0.0,0.0,False
2024-07-09 00:00:00+02:00,33.790000915527344,34.060001373291016,32.290000915527344,32.5099983215332,32.5099983215332,364262,0.0,0.0,False
2024-07-10 00:00:00+02:00,32.29999923706055,32.38999938964844,31.75,32.040000915527344,32.040000915527344,207620,0.0,0.0,False
2024-07-11 00:00:00+02:00,32.11000061035156,32.599998474121094,32.06999969482422,32.349998474121094,32.349998474121094,159663,0.0,0.0,False
2024-07-12 00:00:00+02:00,32.29999923706055,32.93000030517578,32.29999923706055,32.59000015258789,32.59000015258789,116583,0.0,0.0,False
2024-07-15 00:00:00+02:00,32.459999084472656,32.689998626708984,31.899999618530273,32.279998779296875,32.279998779296875,123588,0.0,0.0,False
2024-07-16 00:00:00+02:00,32.20000076293945,32.65999984741211,31.940000534057617,32.45000076293945,32.45000076293945,88377,0.0,0.0,False
2024-07-17 00:00:00+02:00,32.72999954223633,33.939998626708984,32.040000915527344,33.939998626708984,33.939998626708984,222062,0.0,0.0,False
2024-07-18 00:00:00+02:00,34.0,34.93000030517578,33.79999923706055,34.63999938964844,34.63999938964844,400707,0.0,0.0,False
2024-07-19 00:00:00+02:00,34.290000915527344,34.36000061035156,33.529998779296875,34.0099983215332,34.0099983215332,188494,0.0,0.0,False
2024-07-22 00:00:00+02:00,34.349998474121094,34.5,33.66999816894531,34.13999938964844,34.13999938964844,144759,0.0,0.0,False
2024-07-23 00:00:00+02:00,33.95000076293945,34.02000045776367,33.5,33.83000183105469,33.83000183105469,99602,0.0,0.0,False
2024-07-24 00:00:00+02:00,33.54999923706055,33.97999954223633,33.459999084472656,33.5099983215332,33.5099983215332,118200,0.0,0.0,False
2024-07-25 00:00:00+02:00,33.400001525878906,33.75,32.43000030517578,33.41999816894531,33.41999816894531,143724,0.0,0.0,False
2024-07-26 00:00:00+02:00,33.09000015258789,33.439998626708984,32.650001525878906,33.2599983215332,33.2599983215332,150065,0.0,0.0,False
2024-07-29 00:00:00+02:00,33.25,33.560001373291016,33.06999969482422,33.18000030517578,33.18000030517578,101941,0.0,0.0,False
2024-07-30 00:00:00+02:00,33.0,33.619998931884766,32.86000061035156,33.18000030517578,33.18000030517578,142743,0.0,0.0,False
2024-07-31 00:00:00+02:00,33.849998474121094,34.0,32.20000076293945,32.52000045776367,32.52000045776367,561976,0.0,0.0,False
2024-08-01 00:00:00+02:00,32.13999938964844,32.599998474121094,31.190000534057617,31.469999313354492,31.469999313354492,275048,0.0,0.0,False
2024-08-02 00:00:00+02:00,31.229999542236328,31.760000228881836,30.860000610351562,30.860000610351562,30.860000610351562,265760,0.0,0.0,False
2024-08-05 00:00:00+02:00,30.100000381469727,30.479999542236328,29.469999313354492,29.940000534057617,29.940000534057617,473460,0.0,0.0,False
2024-08-06 00:00:00+02:00,30.5,31.010000228881836,30.040000915527344,30.190000534057617,30.190000534057617,264982,0.0,0.0,False
2024-08-07 00:00:00+02:00,30.510000228881836,31.229999542236328,30.3799991607666,30.889999389648438,30.889999389648438,178311,0.0,0.0,False
2024-08-08 00:00:00+02:00,30.799999237060547,30.959999084472656,30.40999984741211,30.799999237060547,30.799999237060547,172146,0.0,0.0,False
2024-08-09 00:00:00+02:00,30.90999984741211,31.520000457763672,30.90999984741211,31.15999984741211,31.15999984741211,179785,0.0,0.0,False
2024-08-12 00:00:00+02:00,31.299999237060547,31.690000534057617,30.59000015258789,30.59000015258789,30.59000015258789,132932,0.0,0.0,False
2024-08-13 00:00:00+02:00,30.690000534057617,31.040000915527344,30.360000610351562,30.600000381469727,30.600000381469727,103593,0.0,0.0,False
2024-08-14 00:00:00+02:00,30.649999618530273,30.68000030517578,30.059999465942383,30.479999542236328,30.479999542236328,209068,0.0,0.0,False
2024-08-15 00:00:00+02:00,30.549999237060547,31.09000015258789,30.450000762939453,30.920000076293945,30.920000076293945,125365,0.0,0.0,False
2024-08-16 00:00:00+02:00,30.940000534057617,31.1200008392334,30.729999542236328,30.8799991607666,30.8799991607666,141253,0.0,0.0,False
2024-08-19 00:00:00+02:00,31.030000686645508,31.299999237060547,30.670000076293945,31.030000686645508,31.030000686645508,180272,0.0,0.0,False
2024-08-20 00:00:00+02:00,31.170000076293945,31.170000076293945,30.469999313354492,30.530000686645508,30.530000686645508,152575,0.0,0.0,False
2024-08-21 00:00:00+02:00,30.530000686645508,31.020000457763672,30.530000686645508,30.969999313354492,30.969999313354492,128994,0.0,0.0,False
2024-08-22 00:00:00+02:00,30.979999542236328,31.3799991607666,30.780000686645508,31.229999542236328,31.229999542236328,87006,0.0,0.0,False
2024-08-23 00:00:00+02:00,31.18000030517578,31.540000915527344,31.18000030517578,31.270000457763672,31.270000457763672,84423,0.0,0.0,False
2024-08-26 00:00:00+02:00,31.149999618530273,31.459999084472656,30.829999923706055,31.030000686645508,31.030000686645508,72965,0.0,0.0,False
2024-08-27 00:00:00+02:00,30.90999984741211,31.360000610351562,30.809999465942383,31.139999389648438,31.139999389648438,102326,0.0,0.0,False
2024-08-28 00:00:00+02:00,31.139999389648438,31.190000534057617,30.540000915527344,30.93000030517578,30.93000030517578,133750,0.0,0.0,False
2024-08-29 00:00:00+02:00,30.81999969482422,31.25,30.81999969482422,31.079999923706055,31.079999923706055,110738,0.0,0.0,False
2024-08-30 00:00:00+02:00,31.190000534057617,31.829999923706055,31.079999923706055,31.700000762939453,31.700000762939453,222082,0.0,0.0,False
2024-09-02 00:00:00+02:00,31.739999771118164,32.36000061035156,31.469999313354492,32.18000030517578,32.18000030517578,137822,0.0,0.0,False
2024-09-03 00:00:00+02:00,32.04999923706055,32.2400016784668,31.469999313354492,31.520000457763672,31.520000457763672,115050,0.0,0.0,False
2024-09-04 00:00:00+02:00,31.100000381469727,31.739999771118164,31.030000686645508,31.559999465942383,31.559999465942383,110471,0.0,0.0,False
2024-09-05 00:00:00+02:00,31.34000015258789,32.310001373291016,31.34000015258789,31.670000076293945,31.670000076293945,230413,0.0,0.0,False
2024-09-06 00:00:00+02:00,31.489999771118164,31.8700008392334,31.18000030517578,31.209999084472656,31.209999084472656,163894,0.0,0.0,False
2024-09-09 00:00:00+02:00,31.5,31.729999542236328,31.280000686645508,31.649999618530273,31.649999618530273,150347,0.0,0.0,False
2024-09-10 00:00:00+02:00,31.59000015258789,32.040000915527344,30.8700008392334,30.8700008392334,30.8700008392334,177060,0.0,0.0,False
2024-09-11 00:00:00+02:00,30.93000030517578,32.06999969482422,30.93000030517578,31.049999237060547,31.049999237060547,253253,0.0,0.0,False
2024-09-12 00:00:00+02:00,31.049999237060547,31.3799991607666,30.809999465942383,30.809999465942383,30.809999465942383,198487,0.0,0.0,False
2024-09-13 00:00:00+02:00,30.809999465942383,31.6299991607666,30.809999465942383,31.3700008392334,31.3700008392334,160154,0.0,0.0,False
2024-09-16 00:00:00+02:00,31.270000457763672,31.469999313354492,31.100000381469727,31.450000762939453,31.450000762939453,112962,0.0,0.0,False
2024-09-17 00:00:00+02:00,31.719999313354492,32.75,31.719999313354492,32.75,32.75,181018,0.0,0.0,False
2024-09-18 00:00:00+02:00,32.81999969482422,33.84000015258789,32.38999938964844,33.72999954223633,33.72999954223633,208825,0.0,0.0,False
2024-09-19 00:00:00+02:00,34.119998931884766,34.689998626708984,33.84000015258789,34.58000183105469,34.58000183105469,292983,0.0,0.0,False
2024-09-20 00:00:00+02:00,34.599998474121094,34.599998474121094,33.93000030517578,34.279998779296875,34.279998779296875,547234,0.0,0.0,False
2024-09-23 00:00:00+02:00,34.22999954223633,34.68000030517578,34.11000061035156,34.369998931884766,34.369998931884766,148293,0.0,0.0,False
2024-09-24 00:00:00+02:00,34.709999084472656,35.13999938964844,34.279998779296875,34.279998779296875,34.279998779296875,214647,0.0,0.0,False
2024-09-25 00:00:00+02:00,34.279998779296875,34.83000183105469,33.58000183105469,33.58000183105469,33.58000183105469,194543,0.0,0.0,False
2024-09-26 00:00:00+02:00,34.0,34.119998931884766,33.650001525878906,34.119998931884766,34.119998931884766,198143,0.0,0.0,False
2024-09-27 00:00:00+02:00,34.2400016784668,35.02000045776367,34.130001068115234,34.63999938964844,34.63999938964844,196448,0.0,0.0,False
2024-09-30 00:00:00+02:00,34.150001525878906,35.45000076293945,34.0,35.20000076293945,35.20000076293945,261067,0.0,0.0,False
2024-10-01 00:00:00+02:00,35.20000076293945,35.88999938964844,35.18000030517578,35.61000061035156,35.61000061035156,218502,0.0,0.0,False
2024-10-02 00:00:00+02:00,35.61000061035156,36.810001373291016,35.45000076293945,36.310001373291016,36.310001373291016,185328,0.0,0.0,False
2024-10-03 00:00:00+02:00,36.22999954223633,36.619998931884766,36.209999084472656,36.310001373291016,36.310001373291016,246827,0.0,0.0,False
2024-10-04 00:00:00+02:00,36.209999084472656,37.560001373291016,36.13999938964844,37.5099983215332,37.5099983215332,298766,0.0,0.0,False
2024-10-07 00:00:00+02:00,37.5,37.5099983215332,36.47999954223633,36.91999816894531,36.91999816894531,161195,0.0,0.0,False
2024-10-08 00:00:00+02:00,36.7599983215332,36.7599983215332,35.66999816894531,35.93000030517578,35.93000030517578,144993,0.0,0.0,False
2024-10-09 00:00:00+02:00,35.86000061035156,36.52000045776367,35.400001525878906,36.369998931884766,36.369998931884766,123249,0.0,0.0,False
2024-10-10 00:00:00+02:00,36.619998931884766,37.0,36.439998626708984,36.959999084472656,36.959999084472656,127939,0.0,0.0,False
2024-10-11 00:00:00+02:00,36.650001525878906,37.349998474121094,36.560001373291016,37.150001525878906,37.150001525878906,110000,0.0,0.0,False
2024-10-14 00:00:00+02:00,37.349998474121094,38.0,37.0,38.0,38.0,215775,0.0,0.0,False
2024-10-15 00:00:00+02:00,38.0,38.72999954223633,37.7400016784668,38.43000030517578,38.43000030517578,289899,0.0,0.0,False
2024-10-16 00:00:00+02:00,38.5,39.31999969482422,38.310001373291016,39.31999969482422,39.31999969482422,351315,0.0,0.0,False
2024-10-17 00:00:00+02:00,39.27000045776367,39.310001373291016,37.95000076293945,38.439998626708984,38.439998626708984,336837,0.0,0.0,False
2024-10-18 00:00:00+02:00,38.209999084472656,39.369998931884766,37.939998626708984,39.349998474121094,39.349998474121094,284589,0.0,0.0,False
2024-10-21 00:00:00+02:00,39.11000061035156,39.13999938964844,38.43000030517578,39.099998474121094,39.099998474121094,176237,0.0,0.0,False
2024-10-22 00:00:00+02:00,39.119998931884766,39.369998931884766,38.63999938964844,38.900001525878906,38.900001525878906,219984,0.0,0.0,False
2024-10-23 00:00:00+02:00,38.70000076293945,38.86000061035156,37.790000915527344,38.79999923706055,38.79999923706055,212351,0.0,0.0,False
2024-10-24 00:00:00+02:00,38.70000076293945,38.939998626708984,38.36000061035156,38.68000030517578,38.68000030517578,118090,0.0,0.0,False
2024-10-25 00:00:00+02:00,38.630001068115234,38.849998474121094,38.04999923706055,38.560001373291016,38.560001373291016,164039,0.0,0.0,False
2024-10-28 00:00:00+01:00,38.560001373291016,38.81999969482422,37.84000015258789,38.25,38.25,156263,0.0,0.0,False
2024-10-29 00:00:00+01:00,38.25,38.88999938964844,38.029998779296875,38.31999969482422,38.31999969482422,213012,0.0,0.0,False
2024-10-30 00:00:00+01:00,37.75,38.04999923706055,37.029998779296875,37.029998779296875,37.029998779296875,397551,0.0,0.0,False
2024-10-31 00:00:00+01:00,37.0,37.310001373291016,36.34000015258789,37.060001373291016,37.060001373291016,281687,0.0,0.0,False
2024-11-01 00:00:00+01:00,36.84000015258789,37.43000030517578,36.84000015258789,37.2400016784668,37.2400016784668,81048,0.0,0.0,False
2024-11-04 00:00:00+01:00,37.060001373291016,37.79999923706055,37.040000915527344,37.560001373291016,37.560001373291016,82632,0.0,0.0,False
2024-11-05 00:00:00+01:00,37.560001373291016,37.95000076293945,37.369998931884766,37.95000076293945,37.95000076293945,199518,0.0,0.0,False
2024-11-06 00:00:00+01:00,38.20000076293945,38.900001525878906,34.91999816894531,34.91999816894531,34.91999816894531,469899,0.0,0.0,False
2024-11-07 00:00:00+01:00,34.08000183105469,34.900001525878906,33.72999954223633,33.72999954223633,33.72999954223633,380050,0.0,0.0,False
2024-11-08 00:00:00+01:00,33.61000061035156,33.91999816894531,33.29999923706055,33.54999923706055,33.54999923706055,389420,0.0,0.0,False
2024-11-11 00:00:00+01:00,33.810001373291016,34.31999969482422,33.130001068115234,33.130001068115234,33.130001068115234,233145,0.0,0.0,False
2024-11-12 00:00:00+01:00,32.79999923706055,33.029998779296875,31.670000076293945,31.709999084472656,31.709999084472656,284709,0.0,0.0,False
2024-11-13 00:00:00+01:00,31.780000686645508,32.11000061035156,31.360000610351562,31.510000228881836,31.510000228881836,208626,0.0,0.0,False
2024-11-14 00:00:00+01:00,31.600000381469727,31.8799991607666,31.34000015258789,31.40999984741211,31.40999984741211,193374,0.0,0.0,False
2024-11-15 00:00:00+01:00,31.309999465942383,32.5,31.309999465942383,32.22999954223633,32.22999954223633,130866,0.0,0.0,False
2024-11-18 00:00:00+01:00,32.20000076293945,32.72999954223633,32.08000183105469,32.130001068115234,32.130001068115234,94641,0.0,0.0,False
2024-11-19 00:00:00+01:00,32.099998474121094,32.650001525878906,31.06999969482422,31.920000076293945,31.920000076293945,159142,0.0,0.0,False
1 Datetime Open High Low Close Adj Close Volume Dividends Stock Splits Repaired?
2 2022-01-03 00:00:00+01:00 20.400468826293945 20.80828094482422 20.400468826293945 20.629241943359375 20.04158073767676 559352 0.0 0.0 True
3 2022-01-04 00:00:00+01:00 20.649133682250977 20.897798538208008 20.5098819732666 20.848066329956055 20.254170979989347 930594 0.0 0.0 True
4 2022-01-05 00:00:00+01:00 20.897798538208008 21.126571655273438 20.838119506835938 21.126571655273438 20.524743211692808 572100 0.0 0.0 True
5 2022-01-06 00:00:00+01:00 20.887853622436523 21.126571655273438 20.599401473999023 20.967424392700195 20.37013149695311 532086 0.0 0.0 True
6 2022-01-07 00:00:00+01:00 21.007211685180664 21.186250686645508 20.867958068847656 21.126571655273438 20.524743211692808 698666 0.0 0.0 True
7 2022-01-10 00:00:00+01:00 21.186250686645508 21.245929718017578 20.997264862060547 21.05694580078125 20.457101019221444 972438 0.0 0.0 True
8 2022-01-11 00:00:00+01:00 21.226036071777344 21.514488220214844 21.226036071777344 21.37523651123047 20.766324448700836 894602 0.0 0.0 True
9 2022-01-12 00:00:00+01:00 21.564220428466797 21.604007720947266 21.0469970703125 21.216089248657227 20.611711003052147 838352 0.0 0.0 True
10 2022-01-13 00:00:00+01:00 20.897798538208008 21.14646339416504 20.897798538208008 21.14646339416504 20.558603716304646 514241 0.015 0.0 True
11 2022-01-14 00:00:00+01:00 20.897798538208008 21.066890716552734 20.80828094482422 21.0271053314209 20.442562606650853 708327 0.0 0.0 True
12 2022-01-17 00:00:00+01:00 21.106678009033203 21.633846282958984 21.0469970703125 21.554275512695312 20.95507670278679 947841 0.0 0.0 True
13 2022-01-18 00:00:00+01:00 21.454809188842773 21.484647750854492 21.156410217285156 21.405075073242188 20.81002451088455 966355 0.0 0.0 True
14 2022-01-19 00:00:00+01:00 21.37523651123047 21.822832107543945 21.295663833618164 21.78304672241211 21.177492853798224 1597827 0.0 0.0 True
15 2022-01-20 00:00:00+01:00 21.802940368652344 22.111284255981445 21.544328689575195 21.981977462768555 21.370893093551224 1563328 0.0 0.0 True
16 2022-01-21 00:00:00+01:00 21.74325942993164 21.94219207763672 21.415021896362305 21.65374183654785 21.051780846838273 1539782 0.0 0.0 True
17 2022-01-24 00:00:00+01:00 21.484647750854492 21.58411407470703 20.887853622436523 20.997264862060547 20.413553134072398 1334240 0.0 0.0 True
18 2022-01-25 00:00:00+01:00 21.156410217285156 21.186250686645508 20.877906799316406 20.917692184448242 20.336192394303197 1198631 0.0 0.0 True
19 2022-01-26 00:00:00+01:00 20.997264862060547 21.72336769104004 20.997264862060547 21.415021896362305 20.819697017860687 913216 0.0 0.0 True
20 2022-01-27 00:00:00+01:00 21.11662483215332 21.862619400024414 21.0469970703125 21.6437931060791 21.04210673019215 765306 0.0 0.0 True
21 2022-01-28 00:00:00+01:00 21.554275512695312 21.65374183654785 21.126571655273438 21.484647750854492 20.887385250653754 1109097 0.0 0.0 True
22 2022-01-31 00:00:00+01:00 21.6239013671875 21.65374183654785 21.066890716552734 21.186250686645508 20.597285695859238 999557 0.0 0.0 True
23 2022-02-01 00:00:00+01:00 21.27577018737793 21.405075073242188 21.05694580078125 21.11662483215332 20.529594243726194 732572 0.0 0.0 True
24 2022-02-02 00:00:00+01:00 21.52443504333496 22.021764755249023 21.454809188842773 21.753206253051758 21.1484769425398 1195479 0.0 0.0 True
25 2022-02-03 00:00:00+01:00 21.773099899291992 21.892459869384766 21.6239013671875 21.773099899291992 21.167820346822086 906159 0.0 0.0 True
26 2022-02-04 00:00:00+01:00 21.87256622314453 21.87256622314453 21.345396041870117 21.424968719482422 20.829366305496844 763864 0.0 0.0 True
27 2022-02-07 00:00:00+01:00 21.574167251586914 21.574167251586914 21.265823364257812 21.415021896362305 20.819697017860687 382854 0.0 0.0 True
28 2022-02-08 00:00:00+01:00 21.36528968811035 21.78304672241211 21.36528968811035 21.713420867919922 21.109798182325196 1006721 0.0 0.0 True
29 2022-02-09 00:00:00+01:00 21.812885284423828 21.991924285888672 21.733312606811523 21.981977462768555 21.370893093551224 893571 0.0 0.0 True
30 2022-02-10 00:00:00+01:00 22.021764755249023 22.210750579833984 21.962085723876953 22.041658401489258 21.428912038708134 851844 0.0 0.0 True
31 2022-02-11 00:00:00+01:00 21.882511138916016 22.06155014038086 21.713420867919922 21.882511138916016 21.274188949499745 893486 0.0 0.0 True
32 2022-02-14 00:00:00+01:00 21.514488220214844 21.514488220214844 20.818225860595703 21.14646339416504 20.558603716304646 1234728 0.0 0.0 True
33 2022-02-15 00:00:00+01:00 21.007211685180664 21.713420867919922 20.967424392700195 21.673633575439453 21.071116202770604 687285 0.0 0.0 True
34 2022-02-16 00:00:00+01:00 21.713420867919922 22.06155014038086 21.713420867919922 22.06155014038086 21.448250613980445 798177 0.0 0.0 True
35 2022-02-17 00:00:00+01:00 22.021764755249023 22.081443786621094 21.763153076171875 21.832778930664062 21.22583929197899 684218 0.0 0.0 True
36 2022-02-18 00:00:00+01:00 21.832778930664062 21.892459869384766 21.385181427001953 21.544328689575195 20.945407415150648 737030 0.0 0.0 True
37 2022-02-21 00:00:00+01:00 21.673633575439453 21.68358039855957 20.92763900756836 21.126571655273438 20.539265141032338 677844 0.0 0.0 True
38 2022-02-22 00:00:00+01:00 20.529775619506836 21.196197509765625 20.32089614868164 20.95747947692871 20.374872764187796 1273455 0.0 0.0 True
39 2022-02-23 00:00:00+01:00 21.415021896362305 21.862619400024414 20.987319946289062 21.216089248657227 20.626295168437693 1732461 0.0 0.0 True
40 2022-02-24 00:00:00+01:00 20.48004150390625 20.877906799316406 19.51124382019043 19.70221710205078 19.154507899163683 2560976 0.0 0.0 True
41 2022-02-25 00:00:00+01:00 19.903139114379883 20.291057586669922 19.475435256958008 20.201536178588867 19.639945736380405 1423396 0.0 0.0 True
42 2022-02-28 00:00:00+01:00 19.773834228515625 19.903139114379883 19.308332443237305 19.837491989135742 19.28602115677132 1569727 0.0 0.0 True
43 2022-03-01 00:00:00+01:00 19.77781105041504 19.95287322998047 18.73938751220703 18.73938751220703 18.218442947956373 1308216 0.0 0.0 True
44 2022-03-02 00:00:00+01:00 18.536476135253906 19.12929344177246 18.17840003967285 18.966169357299805 18.438921056298593 1739856 0.0 0.0 True
45 2022-03-03 00:00:00+01:00 19.001977920532227 19.077571868896484 18.297758102416992 18.361417770385742 17.85097943405268 834767 0.0 0.0 True
46 2022-03-04 00:00:00+01:00 18.13463592529297 18.14259147644043 16.893299102783203 17.05642318725586 16.58226330183782 2249030 0.0 0.0 True
47 2022-03-07 00:00:00+01:00 16.384033203125 17.10814666748047 15.516690254211426 16.380054473876953 15.924698623469626 2250820 0.0 0.0 True
48 2022-03-08 00:00:00+01:00 16.21295166015625 16.941043853759766 16.16520881652832 16.805768966674805 16.338578581234838 1388112 0.0 0.0 True
49 2022-03-09 00:00:00+01:00 17.207611083984375 18.22614288330078 17.17976188659668 18.22614288330078 17.719466176445042 1580329 0.0 0.0 True
50 2022-03-10 00:00:00+01:00 18.38926887512207 18.429054260253906 17.44632911682129 17.696983337402344 17.205017256979872 1037018 0.0 0.0 True
51 2022-03-11 00:00:00+01:00 17.88397979736328 18.369373321533203 17.585582733154297 17.943660736083984 17.44483715993438 985960 0.0 0.0 True
52 2022-03-14 00:00:00+01:00 18.285823822021484 18.747344970703125 18.250015258789062 18.52056312561035 18.005702523261068 963701 0.0 0.0 True
53 2022-03-15 00:00:00+01:00 19.79372787475586 19.893192291259766 17.99538230895996 18.15452766418457 17.649843120322757 2685295 0.0 0.0 True
54 2022-03-16 00:00:00+01:00 18.78713035583496 18.9741268157959 18.369373321533203 18.76723861694336 18.245520816545586 1321768 0.0 0.0 True
55 2022-03-17 00:00:00+01:00 18.89853286743164 18.966169357299805 18.433032989501953 18.854768753051758 18.330616020621715 1124314 0.0 0.0 True
56 2022-03-18 00:00:00+01:00 18.894554138183594 18.98606300354004 18.47281837463379 18.7990665435791 18.276461893113282 1809744 0.0 0.0 True
57 2022-03-21 00:00:00+01:00 18.7990665435791 19.15714454650879 18.763259887695312 18.91046905517578 18.384768538460154 703039 0.0 0.0 True
58 2022-03-22 00:00:00+01:00 18.966169357299805 19.184995651245117 18.85079002380371 19.05767822265625 18.527885907033173 715772 0.0 0.0 True
59 2022-03-23 00:00:00+01:00 19.121337890625 19.15714454650879 18.671751022338867 18.671751022338867 18.152686319152558 1351532 0.0 0.0 True
60 2022-03-24 00:00:00+01:00 18.659814834594727 18.731430053710938 18.234100341796875 18.30173683166504 17.792958879225786 1286093 0.0 0.0 True
61 2022-03-25 00:00:00+01:00 18.405181884765625 18.47281837463379 18.170442581176758 18.285823822021484 17.777488340941936 726494 0.0 0.0 True
62 2022-03-28 00:00:00+02:00 18.393245697021484 18.759281158447266 18.329587936401367 18.433032989501953 17.92060409984496 837768 0.0 0.0 True
63 2022-03-29 00:00:00+02:00 18.72745132446289 19.256610870361328 18.687665939331055 19.16908073425293 18.636190942710048 917861 0.0 0.0 True
64 2022-03-30 00:00:00+02:00 19.15714454650879 19.15714454650879 18.46088218688965 18.50862693786621 17.994096802625698 823527 0.0 0.0 True
65 2022-03-31 00:00:00+02:00 18.50862693786621 18.822938919067383 17.768600463867188 17.796449661254883 17.30171818169137 1780930 0.0 0.0 True
66 2022-04-01 00:00:00+02:00 17.895915985107422 18.102806091308594 17.880001068115234 17.880001068115234 17.382948568119016 751206 0.0 0.0 True
67 2022-04-04 00:00:00+02:00 17.92376708984375 17.991403579711914 17.517946243286133 17.79247283935547 17.2978517543729 836607 0.0 0.0 True
68 2022-04-05 00:00:00+02:00 17.77655792236328 17.975488662719727 17.382671356201172 17.617412567138672 17.127658126880668 842142 0.0 0.0 True
69 2022-04-06 00:00:00+02:00 17.577625274658203 17.625368118286133 16.87340545654297 17.016637802124023 16.543584541623215 1380130 0.0 0.0 True
70 2022-04-07 00:00:00+02:00 17.10814666748047 17.382671356201172 16.865449905395508 16.89727783203125 16.427541822299425 857449 0.0 0.0 True
71 2022-04-08 00:00:00+02:00 17.191696166992188 17.382671356201172 16.99674415588379 17.191696166992188 16.71377816911545 913588 0.0 0.0 True
72 2022-04-11 00:00:00+02:00 17.219547271728516 17.549774169921875 17.036529541015625 17.203632354736328 16.72538228008083 1067867 0.0 0.0 True
73 2022-04-12 00:00:00+02:00 17.00868034362793 17.565689086914062 16.833620071411133 17.565689086914062 17.077372036360696 1285128 0.0 0.0 True
74 2022-04-13 00:00:00+02:00 17.438373565673828 17.525903701782227 17.267290115356445 17.506010055541992 17.019351481533796 697328 0.0 0.0 True
75 2022-04-14 00:00:00+02:00 17.58160400390625 17.657197952270508 17.406543731689453 17.513967514038086 17.02708916518071 587256 0.0 0.0 True
76 2022-04-19 00:00:00+02:00 17.54181671142578 17.69300651550293 17.418479919433594 17.517946243286133 17.030957202169166 962344 0.0 0.0 True
77 2022-04-20 00:00:00+02:00 17.633325576782227 17.967531204223633 17.609453201293945 17.768600463867188 17.274643532442145 675733 0.0 0.0 True
78 2022-04-21 00:00:00+02:00 17.860109329223633 18.38926887512207 17.860109329223633 18.28980255126953 17.781356377930393 946132 0.0 0.0 True
79 2022-04-22 00:00:00+02:00 18.063018798828125 18.25399398803711 17.87204360961914 18.031190872192383 17.5299339736805 876938 0.0 0.0 True
80 2022-04-25 00:00:00+02:00 17.71687889099121 17.891937255859375 17.549774169921875 17.629348754882812 17.139262237846047 857539 0.0 0.0 True
81 2022-04-26 00:00:00+02:00 17.868066787719727 17.868066787719727 17.342885971069336 17.342885971069336 16.860763574676927 920938 0.0 0.0 True
82 2022-04-27 00:00:00+02:00 17.42245864868164 17.513967514038086 16.865449905395508 17.430416107177734 16.945860388423046 995898 0.0 0.0 True
83 2022-04-28 00:00:00+02:00 17.633325576782227 17.99538230895996 17.601497650146484 17.736770629882812 17.24369923653446 1172803 0.0 0.0 True
84 2022-04-29 00:00:00+02:00 17.848173141479492 18.10678482055664 17.804407119750977 18.015274047851562 17.514460216056666 988594 0.0 0.0 True
85 2022-05-02 00:00:00+02:00 17.88397979736328 18.05506134033203 16.90921401977539 17.74074935913086 17.24756566385293 1031151 0.0 0.0 True
86 2022-05-03 00:00:00+02:00 17.848173141479492 17.93570327758789 17.506010055541992 17.808385848999023 17.31332229265675 1121197 0.0 0.0 True
87 2022-05-04 00:00:00+02:00 18.747344970703125 19.10542106628418 18.532499313354492 18.846811294555664 18.322881556314783 2131889 0.0 0.0 True
88 2022-05-05 00:00:00+02:00 19.18101692199707 19.37994956970215 18.138612747192383 18.17840003967285 17.673048122913535 1420586 0.0 0.0 True
89 2022-05-06 00:00:00+02:00 18.110763549804688 18.560348510742188 17.97150993347168 18.369373321533203 17.858713898359614 967240 0.0 0.0 True
90 2022-05-09 00:00:00+02:00 18.190336227416992 18.305715560913086 17.844194412231445 17.951616287231445 17.452570014571318 1063615 0.0 0.0 True
91 2022-05-10 00:00:00+02:00 18.063018798828125 18.85079002380371 18.04710578918457 18.341524124145508 17.83164085878037 1106715 0.0 0.0 True
92 2022-05-11 00:00:00+02:00 18.46088218688965 18.659814834594727 18.27786636352539 18.47281837463379 17.95928446972956 916544 0.0 0.0 True
93 2022-05-12 00:00:00+02:00 18.04312515258789 18.261951446533203 17.784513473510742 18.222164154052734 17.71559974912657 899448 0.0 0.0 True
94 2022-05-13 00:00:00+02:00 18.405181884765625 18.55636978149414 18.194313049316406 18.38528823852539 17.87418765598344 614260 0.0 0.0 True
95 2022-05-16 00:00:00+02:00 18.381309509277344 18.612070083618164 18.24205780029297 18.417118072509766 17.90513356156111 734648 0.0 0.0 True
96 2022-05-17 00:00:00+02:00 18.21420669555664 18.747344970703125 18.21420669555664 18.512605667114258 18.020961169004284 625555 0.0235 0.0 True
97 2022-05-18 00:00:00+02:00 18.54443359375 18.592178344726562 18.357437133789062 18.357437133789062 17.869913837170763 676447 0.0 0.0 True
98 2022-05-19 00:00:00+02:00 17.677091598510742 17.903873443603516 17.474180221557617 17.513967514038086 17.048843460304507 1239650 0.0 0.0 True
99 2022-05-20 00:00:00+02:00 17.856130599975586 18.063018798828125 17.60547637939453 17.60547637939453 17.13792236757609 792884 0.0 0.0 True
100 2022-05-23 00:00:00+02:00 17.85215187072754 17.987424850463867 17.633325576782227 17.987424850463867 17.509727290657995 661658 0.0 0.0 True
101 2022-05-24 00:00:00+02:00 17.79247283935547 17.83623695373535 17.414501190185547 17.418479919433594 16.95589082346159 729103 0.0 0.0 True
102 2022-05-25 00:00:00+02:00 17.617412567138672 17.89989471435547 17.394607543945312 17.8402156829834 17.36642741796716 645185 0.0 0.0 True
103 2022-05-26 00:00:00+02:00 17.79247283935547 18.05506134033203 17.720855712890625 18.03516960144043 17.556203609079454 523872 0.0 0.0 True
104 2022-05-27 00:00:00+02:00 18.031190872192383 18.198293685913086 17.94763946533203 18.198293685913086 17.71499558791078 578243 0.0 0.0 True
105 2022-05-30 00:00:00+02:00 18.27786636352539 18.433032989501953 18.10678482055664 18.218185424804688 17.734358611477727 568621 0.0 0.0 True
106 2022-05-31 00:00:00+02:00 18.1823787689209 18.218185424804688 17.97150993347168 18.122699737548828 17.64141019285213 1795488 0.0 0.0 True
107 2022-06-01 00:00:00+02:00 18.293779373168945 18.44496726989746 18.17840003967285 18.28980255126953 17.804074495182356 494450 0.0 0.0 True
108 2022-06-02 00:00:00+02:00 18.3494815826416 18.532499313354492 18.3494815826416 18.4569034576416 17.966737391440144 412331 0.0 0.0 True
109 2022-06-03 00:00:00+02:00 18.592178344726562 18.639921188354492 18.433032989501953 18.564327239990234 18.071308404852203 487960 0.0 0.0 True
110 2022-06-06 00:00:00+02:00 18.72745132446289 18.830896377563477 18.56830596923828 18.592178344726562 18.098420293634273 605186 0.0 0.0 True
111 2022-06-07 00:00:00+02:00 18.500669479370117 18.540456771850586 18.32560920715332 18.468839645385742 17.978355768009287 606368 0.0 0.0 True
112 2022-06-08 00:00:00+02:00 18.512605667114258 18.616050720214844 18.44496726989746 18.564327239990234 18.071308404852203 631100 0.0 0.0 True
113 2022-06-09 00:00:00+02:00 18.452926635742188 18.82691764831543 18.401203155517578 18.41313934326172 17.924136208662464 1105870 0.0 0.0 True
114 2022-06-10 00:00:00+02:00 18.273887634277344 18.31367301940918 17.685047149658203 17.685047149658203 17.215380086133635 933108 0.0 0.0 True
115 2022-06-13 00:00:00+02:00 17.506010055541992 17.768600463867188 17.223526000976562 17.521923065185547 17.056586701229875 1102884 0.0 0.0 True
116 2022-06-14 00:00:00+02:00 17.71289825439453 17.756664276123047 17.255355834960938 17.255355834960938 16.79709884463027 815872 0.0 0.0 True
117 2022-06-15 00:00:00+02:00 17.486116409301758 18.015274047851562 17.42245864868164 17.621389389038086 17.153413067644134 987976 0.0 0.0 True
118 2022-06-16 00:00:00+02:00 17.533859252929688 17.577625274658203 16.328332901000977 16.328332901000977 15.894697019635123 1421657 0.0 0.0 True
119 2022-06-17 00:00:00+02:00 16.391990661621094 16.694366455078125 16.06574249267578 16.248760223388672 15.81723648893269 3094063 0.0 0.0 True
120 2022-06-20 00:00:00+02:00 16.40790557861328 16.427799224853516 16.12542152404785 16.356182098388672 15.921804690199872 496948 0.0 0.0 True
121 2022-06-21 00:00:00+02:00 16.491456985473633 16.821683883666992 16.427799224853516 16.48349952697754 16.045742945396203 563534 0.0 0.0 True
122 2022-06-22 00:00:00+02:00 16.208974838256836 16.208974838256836 15.759387016296387 15.819067001342773 15.398955247429319 1050007 0.0 0.0 True
123 2022-06-23 00:00:00+02:00 15.735515594482422 15.799174308776855 15.285928726196289 15.30980110168457 14.90321206915108 1064414 0.0 0.0 True
124 2022-06-24 00:00:00+02:00 15.413246154785156 15.898639678955078 15.234207153320312 15.86681079864502 15.44543156585078 1215616 0.0 0.0 True
125 2022-06-27 00:00:00+02:00 16.01799964904785 16.328332901000977 15.958318710327148 16.117464065551758 15.689428722382338 1182615 0.0 0.0 True
126 2022-06-28 00:00:00+02:00 16.248760223388672 16.519306182861328 16.045848846435547 16.181123733520508 15.751397146944283 1274280 0.0 0.0 True
127 2022-06-29 00:00:00+02:00 16.014020919799805 16.06574249267578 15.468947410583496 15.528626441955566 15.116227825546547 1058236 0.0 0.0 True
128 2022-06-30 00:00:00+02:00 15.234207153320312 15.381417274475098 14.800535202026367 15.381417274475098 14.972926546783269 1934410 0.0 0.0 True
129 2022-07-01 00:00:00+02:00 15.277972221374512 15.679815292358398 15.230228424072266 15.377437591552734 14.969054223284367 909034 0.0 0.0 True
130 2022-07-04 00:00:00+02:00 15.564434051513672 15.791215896606445 15.488840103149414 15.687771797180176 15.271146074806529 798569 0.0 0.0 True
131 2022-07-05 00:00:00+02:00 15.763365745544434 15.91455364227295 14.884086608886719 14.884086608886719 14.488804557219051 1966763 0.0 0.0 True
132 2022-07-06 00:00:00+02:00 15.079039573669434 15.202378273010254 14.907958984375 15.110869407653809 14.709566366684761 938909 0.0 0.0 True
133 2022-07-07 00:00:00+02:00 15.301843643188477 15.898639678955078 15.23818588256836 15.807130813598633 15.387335464787737 1170179 0.0 0.0 True
134 2022-07-08 00:00:00+02:00 15.69572925567627 16.39596939086914 15.532605171203613 16.049827575683594 15.623586568249053 1372047 0.0 0.0 True
135 2022-07-11 00:00:00+02:00 15.608199119567871 15.69572925567627 15.285928726196289 15.488840103149414 15.077497560195331 877119 0.0 0.0 True
136 2022-07-12 00:00:00+02:00 15.381417274475098 15.556476593017578 14.983552932739258 15.520668983459473 15.108481772476305 1161955 0.0 0.0 True
137 2022-07-13 00:00:00+02:00 15.425182342529297 15.647985458374023 15.234207153320312 15.357544898986816 14.94968838757254 1081802 0.0 0.0 True
138 2022-07-14 00:00:00+02:00 15.333672523498535 15.357544898986816 14.728919982910156 14.888065338134766 14.492678286790394 896311 0.0 0.0 True
139 2022-07-15 00:00:00+02:00 14.959680557250977 15.548519134521484 14.923872947692871 15.433138847351074 15.023276594776068 1160019 0.0 0.0 True
140 2022-07-18 00:00:00+02:00 15.970254898071289 16.316396713256836 15.894660949707031 16.133378982543945 15.704919422450384 1770123 0.0 0.0 True
141 2022-07-19 00:00:00+02:00 16.010042190551758 16.698345184326172 15.755409240722656 16.48349952697754 16.045742945396203 1574206 0.0 0.0 True
142 2022-07-20 00:00:00+02:00 16.551136016845703 16.67845344543457 16.145315170288086 16.439735412597656 16.003140356546087 876721 0.0 0.0 True
143 2022-07-21 00:00:00+02:00 16.30048179626465 16.646623611450195 16.16520881652832 16.364139556884766 15.929552149342557 1014598 0.0 0.0 True
144 2022-07-22 00:00:00+02:00 16.244781494140625 16.463605880737305 15.98219108581543 16.037891387939453 15.611968191679907 1100753 0.0 0.0 True
145 2022-07-25 00:00:00+02:00 16.014020919799805 16.39596939086914 15.874768257141113 16.11348533630371 15.685553586738559 826151 0.0 0.0 True
146 2022-07-26 00:00:00+02:00 16.11348533630371 16.133378982543945 15.600241661071777 15.715621948242188 15.298257963588599 1071673 0.0 0.0 True
147 2022-07-27 00:00:00+02:00 15.894660949707031 15.970254898071289 15.703685760498047 15.950362205505371 15.526763013979673 1076946 0.0 0.0 True
148 2022-07-28 00:00:00+02:00 16.368118286132812 16.686410903930664 16.232845306396484 16.551136016845703 16.11158369345705 1713701 0.0 0.0 True
149 2022-07-29 00:00:00+02:00 16.634687423706055 17.084274291992188 16.551136016845703 17.00868034362793 16.55697541767005 1096515 0.0 0.0 True
150 2022-08-01 00:00:00+02:00 17.088253021240234 17.303098678588867 16.83759880065918 16.861469268798828 16.413675544979213 698449 0.0 0.0 True
151 2022-08-02 00:00:00+02:00 16.833620071411133 16.992765426635742 16.674474716186523 16.937063217163086 16.48725953396542 683927 0.0 0.0 True
152 2022-08-03 00:00:00+02:00 16.92115020751953 17.175783157348633 16.83759880065918 17.12008285522461 16.66542016065345 520776 0.0 0.0 True
153 2022-08-04 00:00:00+02:00 17.132017135620117 17.334928512573242 17.004701614379883 17.064380645751953 16.61119638308931 770841 0.0 0.0 True
154 2022-08-05 00:00:00+02:00 17.100189208984375 17.283206939697266 16.821683883666992 17.104167938232422 16.649926648440527 676884 0.0 0.0 True
155 2022-08-08 00:00:00+02:00 17.283206939697266 17.47020149230957 17.076316833496094 17.319013595581055 16.859067269192213 640299 0.0 0.0 True
156 2022-08-09 00:00:00+02:00 17.247398376464844 17.342885971069336 16.9808292388916 17.112125396728516 16.657674107583208 513653 0.0 0.0 True
157 2022-08-10 00:00:00+02:00 17.084274291992188 17.43439483642578 16.90921401977539 17.394607543945312 16.932651258178424 565334 0.0 0.0 True
158 2022-08-11 00:00:00+02:00 17.45826530456543 17.474180221557617 17.15191078186035 17.267290115356445 16.808717221199412 740132 0.0 0.0 True
159 2022-08-12 00:00:00+02:00 17.23944091796875 17.486116409301758 17.231483459472656 17.342885971069336 16.88230542840294 966868 0.0 0.0 True
160 2022-08-15 00:00:00+02:00 17.346864700317383 17.474180221557617 17.064380645751953 17.243419647216797 16.785480468061124 404314 0.0 0.0 True
161 2022-08-16 00:00:00+02:00 17.342885971069336 17.426437377929688 17.175783157348633 17.36277961730957 16.90166985804233 615567 0.0 0.0 True
162 2022-08-17 00:00:00+02:00 17.44632911682129 17.525903701782227 16.742111206054688 16.76598358154297 16.320724314208736 1020374 0.0 0.0 True
163 2022-08-18 00:00:00+02:00 16.821683883666992 17.25137710571289 16.769962310791016 16.853513717651367 16.40592949190897 738694 0.0 0.0 True
164 2022-08-19 00:00:00+02:00 16.69038963317871 16.901256561279297 16.606836318969727 16.606836318969727 16.165803252803872 628184 0.0 0.0 True
165 2022-08-22 00:00:00+02:00 16.479520797729492 16.527265548706055 15.92251205444336 15.978212356567383 15.553874902761745 866276 0.0 0.0 True
166 2022-08-23 00:00:00+02:00 15.942404747009277 16.292524337768555 15.918533325195312 16.292524337768555 15.859837671710368 860233 0.0 0.0 True
167 2022-08-24 00:00:00+02:00 16.268653869628906 16.308439254760742 15.950362205505371 16.240802764892578 15.809489029790006 704240 0.0 0.0 True
168 2022-08-25 00:00:00+02:00 16.388011932373047 16.523286819458008 16.216930389404297 16.292524337768555 15.859837671710368 479490 0.0 0.0 True
169 2022-08-26 00:00:00+02:00 16.439735412597656 16.598880767822266 15.958318710327148 15.990147590637207 15.56549046718601 546820 0.0 0.0 True
170 2022-08-29 00:00:00+02:00 15.91455364227295 16.44769287109375 15.743473052978516 16.43177604675293 15.995390085258524 771344 0.0 0.0 True
171 2022-08-30 00:00:00+02:00 16.54317855834961 16.67845344543457 16.15327262878418 16.248760223388672 15.81723648893269 741509 0.0 0.0 True
172 2022-08-31 00:00:00+02:00 16.356182098388672 16.44371223449707 16.0418701171875 16.0418701171875 15.615841921251251 956161 0.0 0.0 True
173 2022-09-01 00:00:00+02:00 15.978212356567383 15.978212356567383 15.691749572753906 15.755409240722656 15.336988228939816 998562 0.0 0.0 True
174 2022-09-02 00:00:00+02:00 16.161230087280273 16.519306182861328 15.962298393249512 16.391990661621094 15.956664038124627 997552 0.0 0.0 True
175 2022-09-05 00:00:00+02:00 15.874768257141113 15.91455364227295 15.520668983459473 15.723580360412598 15.306005422731282 1129909 0.0 0.0 True
176 2022-09-06 00:00:00+02:00 15.763365745544434 16.09359359741211 15.683793067932129 15.86681079864502 15.44543156585078 638791 0.0 0.0 True
177 2022-09-07 00:00:00+02:00 15.616155624389648 16.264673233032227 15.58034896850586 16.21295166015625 15.782378547080377 819365 0.0 0.0 True
178 2022-09-08 00:00:00+02:00 16.292524337768555 16.364139556884766 15.954340934753418 16.14133644104004 15.712665475520629 690130 0.0 0.0 True
179 2022-09-09 00:00:00+02:00 16.19305992126465 16.575008392333984 16.19305992126465 16.427799224853516 15.991520573904502 623223 0.0 0.0 True
180 2022-09-12 00:00:00+02:00 16.614795684814453 17.076316833496094 16.571029663085938 16.98480796813965 16.533737258459322 880959 0.0 0.0 True
181 2022-09-13 00:00:00+02:00 17.02061653137207 17.549774169921875 16.698345184326172 16.722217559814453 16.278118913213735 1949078 0.0 0.0 True
182 2022-09-14 00:00:00+02:00 16.55511474609375 16.65458106994629 16.06574249267578 16.316396713256836 15.883077236993536 1147799 0.0 0.0 True
183 2022-09-15 00:00:00+02:00 16.316396713256836 16.50737190246582 16.01799964904785 16.12542152404785 15.697173369380144 704698 0.0 0.0 True
184 2022-09-16 00:00:00+02:00 15.92648983001709 16.05380630493164 15.647985458374023 15.954340934753418 15.530635337478573 1934284 0.0 0.0 True
185 2022-09-19 00:00:00+02:00 15.890682220458984 16.419841766357422 15.791215896606445 16.368118286132812 15.933425878913898 961766 0.0 0.0 True
186 2022-09-20 00:00:00+02:00 16.44769287109375 16.55511474609375 15.930468559265137 15.99412727355957 15.569367008902228 712846 0.0 0.0 True
187 2022-09-21 00:00:00+02:00 15.894660949707031 16.137357711791992 15.815088272094727 16.1294002532959 15.701045692879042 557165 0.0 0.0 True
188 2022-09-22 00:00:00+02:00 15.727558135986328 16.197038650512695 15.667879104614258 16.069721221923828 15.64295240396088 892616 0.0 0.0 True
189 2022-09-23 00:00:00+02:00 16.0418701171875 16.161230087280273 15.64002799987793 15.854874610900879 15.433811783209194 1425407 0.0 0.0 True
190 2022-09-26 00:00:00+02:00 15.675835609436035 16.037891387939453 15.604220390319824 15.604220390319824 15.189814626677634 823367 0.0 0.0 True
191 2022-09-27 00:00:00+02:00 15.6360502243042 15.886704444885254 15.492818832397461 15.687771797180176 15.271146074806529 1239006 0.0 0.0 True
192 2022-09-28 00:00:00+02:00 15.433138847351074 16.109508514404297 15.170549392700195 15.990147590637207 15.56549046718601 1753368 0.0 0.0 True
193 2022-09-29 00:00:00+02:00 15.986169815063477 15.986169815063477 15.40926742553711 15.516690254211426 15.104608042904962 1373640 0.0 0.0 True
194 2022-09-30 00:00:00+02:00 15.6360502243042 15.894660949707031 15.528626441955566 15.842939376831055 15.42219340664005 1225082 0.0 0.0 True
195 2022-10-03 00:00:00+02:00 15.671856880187988 16.419841766357422 15.628091812133789 16.34822654724121 15.91406144927451 968647 0.0 0.0 True
196 2022-10-04 00:00:00+02:00 16.618772506713867 17.267290115356445 16.618772506713867 17.267290115356445 16.808717221199412 1425231 0.0 0.0 True
197 2022-10-05 00:00:00+02:00 17.100189208984375 17.35084342956543 17.016637802124023 17.08029556274414 16.626688489229796 1216119 0.0 0.0 True
198 2022-10-06 00:00:00+02:00 17.203632354736328 17.32697105407715 16.88534164428711 16.976850509643555 16.525989799316637 825166 0.0 0.0 True
199 2022-10-07 00:00:00+02:00 16.976850509643555 17.12803840637207 16.65458106994629 16.730175018310547 16.28586637235642 839674 0.0 0.0 True
200 2022-10-10 00:00:00+02:00 16.610815048217773 17.56966781616211 16.586944580078125 17.402565002441406 16.940398717321106 1029281 0.0 0.0 True
201 2022-10-11 00:00:00+02:00 17.088253021240234 17.23944091796875 16.284568786621094 16.463605880737305 16.026375703611937 2020228 0.0 0.0 True
202 2022-10-12 00:00:00+02:00 16.499414443969727 16.929107666015625 16.320375442504883 16.789854049682617 16.343959661274585 1510536 0.0 0.0 True
203 2022-10-13 00:00:00+02:00 16.694366455078125 17.17976188659668 16.384033203125 17.17976188659668 16.72351485564406 1551570 0.0 0.0 True
204 2022-10-14 00:00:00+02:00 17.525903701782227 17.69300651550293 16.841577529907227 17.012659072875977 16.560847741168953 1388605 0.0 0.0 True
205 2022-10-17 00:00:00+02:00 17.012659072875977 17.49407386779785 16.913192749023438 17.287185668945312 16.82808305691124 857670 0.0 0.0 True
206 2022-10-18 00:00:00+02:00 17.43439483642578 17.951616287231445 17.39858627319336 17.617412567138672 17.14954215021767 1118895 0.0 0.0 True
207 2022-10-19 00:00:00+02:00 17.732791900634766 17.820322036743164 17.565689086914062 17.58160400390625 17.114684208365354 659672 0.0 0.0 True
208 2022-10-20 00:00:00+02:00 17.4980525970459 17.796449661254883 17.414501190185547 17.677091598510742 17.20763543913583 869126 0.0 0.0 True
209 2022-10-21 00:00:00+02:00 17.506010055541992 17.85215187072754 17.346864700317383 17.85215187072754 17.378044388463863 781749 0.0 0.0 True
210 2022-10-24 00:00:00+02:00 18.699600219726562 18.834875106811523 17.708919525146484 18.345502853393555 17.858295460601617 1695268 0.0 0.0 True
211 2022-10-25 00:00:00+02:00 18.440990447998047 18.627986907958984 17.931724548339844 18.202272415161133 17.71886931748212 1131150 0.0 0.0 True
212 2022-10-26 00:00:00+02:00 18.22614288330078 18.43701171875 17.975488662719727 18.329587936401367 17.84280194838869 1222905 0.0 0.0 True
213 2022-10-27 00:00:00+02:00 18.341524124145508 18.600135803222656 18.08291244506836 18.293779373168945 17.80794681868126 778065 0.0 0.0 True
214 2022-10-28 00:00:00+02:00 18.078933715820312 18.32560920715332 17.975488662719727 18.269908905029297 17.784708659470528 1099727 0.0 0.0 True
215 2022-10-31 00:00:00+01:00 18.369373321533203 18.532499313354492 18.14259147644043 18.150548934936523 17.66851786341688 1018936 0.0 0.0 True
216 2022-11-01 00:00:00+01:00 18.293779373168945 18.492712020874023 18.063018798828125 18.15452766418457 17.672391592988223 1016061 0.0 0.0 True
217 2022-11-02 00:00:00+01:00 18.186357498168945 18.194313049316406 17.88397979736328 18.063018798828125 17.583315497861527 1299861 0.0 0.0 True
218 2022-11-03 00:00:00+01:00 17.69300651550293 18.015274047851562 17.406543731689453 17.98344612121582 17.505852155014214 1179101 0.0 0.0 True
219 2022-11-04 00:00:00+01:00 18.202272415161133 18.894554138183594 18.15452766418457 18.791109085083008 18.292067402173036 1369272 0.0 0.0 True
220 2022-11-07 00:00:00+01:00 18.759281158447266 19.391883850097656 18.659814834594727 19.336183547973633 18.82266711623115 1259541 0.0 0.0 True
221 2022-11-08 00:00:00+01:00 19.332204818725586 19.566944122314453 19.188974380493164 19.41177749633789 18.896252511289795 886906 0.0 0.0 True
222 2022-11-09 00:00:00+01:00 19.415756225585938 19.415756225585938 18.954233169555664 19.208866119384766 18.69873026710726 1198007 0.0 0.0 True
223 2022-11-10 00:00:00+01:00 19.153165817260742 19.59479522705078 19.03778648376465 19.586837768554688 19.066662866690272 1410472 0.0 0.0 True
224 2022-11-11 00:00:00+01:00 19.59479522705078 19.857385635375977 19.562965393066406 19.78974723815918 19.264183704800367 1274687 0.0 0.0 True
225 2022-11-14 00:00:00+01:00 19.81361961364746 20.112018585205078 19.690282821655273 20.032445907592773 19.50044043255144 1295287 0.0 0.0 True
226 2022-11-15 00:00:00+01:00 20.01255226135254 20.191591262817383 19.61071014404297 19.805662155151367 19.279678623085733 1056914 0.0 0.0 True
227 2022-11-16 00:00:00+01:00 19.75394058227539 19.785770416259766 19.276504516601562 19.44758415222168 18.931107640997233 1015000 0.0 0.0 True
228 2022-11-17 00:00:00+01:00 19.4833927154541 19.65447425842285 19.09746551513672 19.296396255493164 18.783935444807494 644501 0.0 0.0 True
229 2022-11-18 00:00:00+01:00 19.42371368408203 19.666410446166992 19.332204818725586 19.666410446166992 19.1441233973927 829590 0.0 0.0 True
230 2022-11-21 00:00:00+01:00 19.598773956298828 19.606731414794922 19.02187156677246 19.101444244384766 18.59416065976764 918183 0.0 0.0 True
231 2022-11-22 00:00:00+01:00 19.137252807617188 19.49930763244629 19.073593139648438 19.395862579345703 18.880761811221753 915438 0.0 0.0 True
232 2022-11-23 00:00:00+01:00 19.475435256958008 19.51124382019043 19.149187088012695 19.264568328857422 18.752952638598963 867427 0.0 0.0 True
233 2022-11-24 00:00:00+01:00 19.31231117248535 19.551029205322266 19.31231117248535 19.539094924926758 19.02018795434125 658838 0.0 0.0 True
234 2022-11-25 00:00:00+01:00 19.535114288330078 19.574901580810547 19.371990203857422 19.419734954833984 18.90399856436004 444192 0.0 0.0 True
235 2022-11-28 00:00:00+01:00 19.296396255493164 19.356077194213867 19.085529327392578 19.16908073425293 18.660001407828485 743198 0.0 0.0 True
236 2022-11-29 00:00:00+01:00 18.830896377563477 18.978105545043945 18.572284698486328 18.72745132446289 18.230101789755967 1801344 0.0 0.0 True
237 2022-11-30 00:00:00+01:00 18.89853286743164 18.92638397216797 18.405181884765625 18.675729751586914 18.179751741763166 1555300 0.0 0.0 True
238 2022-12-01 00:00:00+01:00 18.87466049194336 18.958213806152344 18.56830596923828 18.73938751220703 18.241720166325113 1102744 0.0 0.0 True
239 2022-12-02 00:00:00+01:00 18.663793563842773 19.013914108276367 18.55636978149414 19.005956649780273 18.501209428997157 783142 0.0 0.0 True
240 2022-12-05 00:00:00+01:00 18.966169357299805 19.061656951904297 18.73938751220703 18.86272621154785 18.36178328587766 726414 0.0 0.0 True
241 2022-12-06 00:00:00+01:00 18.870683670043945 19.073593139648438 18.791109085083008 18.962190628051758 18.45860684014704 752418 0.0 0.0 True
242 2022-12-07 00:00:00+01:00 18.922405242919922 18.958213806152344 18.572284698486328 18.62002944946289 18.125532182416347 1312303 0.0 0.0 True
243 2022-12-08 00:00:00+01:00 18.48475456237793 18.759281158447266 18.421096801757812 18.516584396362305 18.024832086430745 1077991 0.0 0.0 True
244 2022-12-09 00:00:00+01:00 18.56830596923828 18.890575408935547 18.52056312561035 18.83885383605957 18.338543720594494 876148 0.0 0.0 True
245 2022-12-12 00:00:00+01:00 18.735408782958984 18.763259887695312 18.417118072509766 18.468839645385742 17.978355768009287 1151398 0.0 0.0 True
246 2022-12-13 00:00:00+01:00 18.604114532470703 19.065635681152344 18.552391052246094 18.942298889160156 18.43924100443521 1226494 0.0 0.0 True
247 2022-12-14 00:00:00+01:00 18.858747482299805 19.017892837524414 18.75530242919922 18.8865966796875 18.38502144508839 958418 0.0 0.0 True
248 2022-12-15 00:00:00+01:00 18.73938751220703 18.751323699951172 18.369373321533203 18.47281837463379 17.982229497580626 1115743 0.0 0.0 True
249 2022-12-16 00:00:00+01:00 18.4569034576416 18.627986907958984 18.329587936401367 18.564327239990234 18.071308404852203 1941860 0.0 0.0 True
250 2022-12-19 00:00:00+01:00 18.58422088623047 18.75530242919922 18.548412322998047 18.627986907958984 18.133276829414147 778150 0.0 0.0 True
251 2022-12-20 00:00:00+01:00 18.504648208618164 18.7990665435791 18.393245697021484 18.7990665435791 18.29981204917084 935164 0.0 0.0 True
252 2022-12-21 00:00:00+01:00 18.89853286743164 19.244674682617188 18.8865966796875 19.208866119384766 18.69873026710726 1124419 0.0 0.0 True
253 2022-12-22 00:00:00+01:00 19.272525787353516 19.38790512084961 18.783153533935547 18.82691764831543 18.32692253188047 1217165 0.0 0.0 True
254 2022-12-23 00:00:00+01:00 18.89853286743164 19.14520835876465 18.81498146057129 19.0338077545166 18.52832131777923 552525 0.0 0.0 True
255 2022-12-27 00:00:00+01:00 19.177038192749023 19.24069595336914 19.03778648376465 19.04972267150879 18.543813423919715 387951 0.0 0.0 True
256 2022-12-28 00:00:00+01:00 19.09746551513672 19.177038192749023 18.934341430664062 19.005956649780273 18.501209428997157 517744 0.0 0.0 True
257 2022-12-29 00:00:00+01:00 19.001977920532227 19.077571868896484 18.8865966796875 19.045743942260742 18.539939694348377 398794 0.0 0.0 True
258 2022-12-30 00:00:00+01:00 18.946277618408203 19.017892837524414 18.75530242919922 18.791109085083008 18.292067402173036 449339 0.0 0.0 True
259 2023-01-02 00:00:00+01:00 18.990041732788086 19.383926391601562 18.914447784423828 19.383926391601562 18.869143434652607 671340 0.0 0.0 True
260 2023-01-03 00:00:00+01:00 19.356077194213867 19.78179168701172 19.344141006469727 19.435649871826172 18.919492076572965 983215 0.0 0.0 True
261 2023-01-04 00:00:00+01:00 19.48737144470215 19.982711791992188 19.44758415222168 19.94292640686035 19.413296280956878 1333355 0.0 0.0 True
262 2023-01-05 00:00:00+01:00 19.932979583740234 20.121965408325195 19.845449447631836 20.002605438232422 19.471390975947482 1261924 0.0 0.0 True
263 2023-01-06 00:00:00+01:00 20.112018585205078 20.410415649414062 19.95287322998047 20.410415649414062 19.86837162606201 641716 0.0 0.0 True
264 2023-01-09 00:00:00+01:00 20.410415649414062 20.569562911987305 20.32089614868164 20.440256118774414 19.897418270521097 839910 0.0 0.0 True
265 2023-01-10 00:00:00+01:00 20.48004150390625 20.48004150390625 19.932979583740234 20.17169761657715 19.635990033954716 1099813 0.0 0.0 True
266 2023-01-11 00:00:00+01:00 20.241323471069336 20.838119506835938 20.10207176208496 20.599401473999023 20.052337925853514 1479852 0.0 0.0 True
267 2023-01-12 00:00:00+01:00 20.60934829711914 20.758546829223633 20.470096588134766 20.639188766479492 20.091066785132295 1067892 0.0 0.0 True
268 2023-01-13 00:00:00+01:00 20.559614181518555 21.01715850830078 20.430309295654297 20.788387298583984 20.236304225645025 1563851 0.0 0.0 True
269 2023-01-16 00:00:00+01:00 20.589454650878906 20.72870635986328 20.181644439697266 20.70881462097168 20.173789489152337 790612 0.0154 0.0 True
270 2023-01-17 00:00:00+01:00 20.698867797851562 20.997264862060547 20.499935150146484 20.659080505371094 20.125339438911386 917298 0.0 0.0 True
271 2023-01-18 00:00:00+01:00 20.649133682250977 20.80828094482422 20.39052391052246 20.688920974731445 20.154409208480754 976454 0.0 0.0 True
272 2023-01-19 00:00:00+01:00 20.569562911987305 20.57950782775879 20.26121711730957 20.39052391052246 19.86372323867117 888012 0.0 0.0 True
273 2023-01-20 00:00:00+01:00 20.529775619506836 20.649133682250977 20.340789794921875 20.619295120239258 20.08658148332024 757103 0.0 0.0 True
274 2023-01-23 00:00:00+01:00 20.678974151611328 20.70881462097168 20.5098819732666 20.57950782775879 20.047822224853086 540245 0.0 0.0 True
275 2023-01-24 00:00:00+01:00 20.688920974731445 20.72870635986328 20.599401473999023 20.72870635986328 20.19316455831987 497230 0.0 0.0 True
276 2023-01-25 00:00:00+01:00 20.72870635986328 20.788387298583984 20.539722442626953 20.72870635986328 20.19316455831987 610198 0.0 0.0 True
277 2023-01-26 00:00:00+01:00 20.82817268371582 21.01715850830078 20.549667358398438 21.01715850830078 20.47416625073572 1177819 0.0 0.0 True
278 2023-01-27 00:00:00+01:00 21.0271053314209 21.315555572509766 20.937585830688477 21.196197509765625 20.648580959523894 1399061 0.0 0.0 True
279 2023-01-30 00:00:00+01:00 21.106678009033203 21.196197509765625 20.967424392700195 21.096731185913086 20.551682161918006 1048142 0.0 0.0 True
280 2023-01-31 00:00:00+01:00 21.156410217285156 21.255876541137695 21.007211685180664 21.216089248657227 20.667957331567443 1153987 0.0 0.0 True
281 2023-02-01 00:00:00+01:00 21.36528968811035 21.633846282958984 21.295663833618164 21.604007720947266 21.045855215837157 1127903 0.0 0.0 True
282 2023-02-02 00:00:00+01:00 21.604007720947266 21.922298431396484 21.514488220214844 21.792993545532227 21.2299568077711 1405008 0.0 0.0 True
283 2023-02-03 00:00:00+01:00 21.733312606811523 21.981977462768555 21.6437931060791 21.981977462768555 21.414057096829026 1224408 0.0 0.0 True
284 2023-02-06 00:00:00+01:00 21.713420867919922 21.862619400024414 21.514488220214844 21.6437931060791 21.08461056567628 1078283 0.0 0.0 True
285 2023-02-07 00:00:00+01:00 21.812885284423828 21.912351608276367 21.6437931060791 21.65374183654785 21.0943039632021 983431 0.0 0.0 True
286 2023-02-08 00:00:00+01:00 21.68358039855957 22.051603317260742 21.68358039855957 21.832778930664062 21.268716066238255 983919 0.0 0.0 True
287 2023-02-09 00:00:00+01:00 21.862619400024414 22.03171157836914 21.74325942993164 21.892459869384766 21.326852999624965 921355 0.0 0.0 True
288 2023-02-10 00:00:00+01:00 21.773099899291992 21.892459869384766 21.39512825012207 21.58411407470703 21.026474935165574 931770 0.0 0.0 True
289 2023-02-13 00:00:00+01:00 21.613954544067383 21.68358039855957 21.484647750854492 21.534381866455078 20.978026187800634 653816 0.0 0.0 True
290 2023-02-14 00:00:00+01:00 21.564220428466797 21.6437931060791 21.415021896362305 21.484647750854492 20.929576137559682 566610 0.0 0.0 True
291 2023-02-15 00:00:00+01:00 21.385181427001953 21.72336769104004 21.345396041870117 21.703474044799805 21.142751407691026 971141 0.0 0.0 True
292 2023-02-16 00:00:00+01:00 21.733312606811523 21.852672576904297 21.58411407470703 21.753206253051758 21.19119885217995 860626 0.0 0.0 True
293 2023-02-17 00:00:00+01:00 21.604007720947266 21.822832107543945 21.484647750854492 21.763153076171875 21.200887038201728 558814 0.0 0.0 True
294 2023-02-20 00:00:00+01:00 21.78304672241211 22.340055465698242 21.78304672241211 22.340055465698242 21.762886514405384 997833 0.0 0.0 True
295 2023-02-21 00:00:00+01:00 22.300268173217773 22.4693603515625 22.111284255981445 22.19085693359375 21.61754157518657 907456 0.0 0.0 True
296 2023-02-22 00:00:00+01:00 21.59406089782715 22.011817932128906 21.484647750854492 21.97203254699707 21.404370213683265 1114536 0.0 0.0 True
297 2023-02-23 00:00:00+01:00 22.06155014038086 22.06155014038086 21.05694580078125 21.126571655273438 20.580754537239393 2085708 0.0 0.0 True
298 2023-02-24 00:00:00+01:00 21.126571655273438 21.763153076171875 20.967424392700195 21.07683753967285 20.532304486998445 1493284 0.0 0.0 True
299 2023-02-27 00:00:00+01:00 21.285715103149414 21.604007720947266 21.206144332885742 21.454809188842773 20.900508973742337 744495 0.0 0.0 True
300 2023-02-28 00:00:00+01:00 21.325502395629883 21.72336769104004 21.265823364257812 21.534381866455078 20.978026187800634 1797489 0.0 0.0 True
301 2023-03-01 00:00:00+01:00 21.613954544067383 21.663686752319336 21.30561065673828 21.37523651123047 20.82299175968404 1095414 0.0 0.0 True
302 2023-03-02 00:00:00+01:00 21.295663833618164 21.43491554260254 21.096731185913086 21.355342864990234 20.803612781888468 729153 0.0 0.0 True
303 2023-03-03 00:00:00+01:00 21.454809188842773 21.673633575439453 21.444862365722656 21.59406089782715 21.036164424063358 731340 0.0 0.0 True
304 2023-03-06 00:00:00+01:00 21.59406089782715 21.633846282958984 21.136518478393555 21.136518478393555 20.59044272326117 1177638 0.0 0.0 True
305 2023-03-07 00:00:00+01:00 21.14646339416504 21.255876541137695 21.0469970703125 21.126571655273438 20.580754537239393 894823 0.0 0.0 True
306 2023-03-08 00:00:00+01:00 21.0271053314209 21.216089248657227 20.7386531829834 21.216089248657227 20.667957331567443 1145240 0.0 0.0 True
307 2023-03-09 00:00:00+01:00 21.07683753967285 21.196197509765625 21.01715850830078 21.066890716552734 20.522613695224646 611676 0.0 0.0 True
308 2023-03-10 00:00:00+01:00 20.76849365234375 21.007211685180664 20.589454650878906 20.897798538208008 20.357888475334253 1111284 0.0 0.0 True
309 2023-03-13 00:00:00+01:00 20.688920974731445 20.778440475463867 20.07223129272461 20.221431732177734 19.698996715904766 1243550 0.0 0.0 True
310 2023-03-14 00:00:00+01:00 20.181644439697266 20.470096588134766 19.903139114379883 20.400468826293945 19.873411424692947 1301756 0.0 0.0 True
311 2023-03-15 00:00:00+01:00 20.430309295654297 20.440256118774414 19.093486785888672 19.121337890625 18.627325172748737 2538134 0.0 0.0 True
312 2023-03-16 00:00:00+01:00 19.578880310058594 19.68232536315918 18.914447784423828 19.344141006469727 18.844372590386367 1772646 0.0 0.0 True
313 2023-03-17 00:00:00+01:00 19.395862579345703 19.68232536315918 18.87466049194336 19.20488739013672 18.708717140065342 2459464 0.0 0.0 True
314 2023-03-20 00:00:00+01:00 19.196931838989258 19.531137466430664 18.723472595214844 19.467479705810547 18.96452251329411 903163 0.0 0.0 True
315 2023-03-21 00:00:00+01:00 19.73006820678711 20.17169761657715 19.646516799926758 19.972766876220703 19.456755584832088 1270092 0.0 0.0 True
316 2023-03-22 00:00:00+01:00 19.932979583740234 20.340789794921875 19.869321823120117 20.032445907592773 19.514893821094812 1100120 0.0 0.0 True
317 2023-03-23 00:00:00+01:00 19.962818145751953 19.962818145751953 19.6584529876709 19.845449447631836 19.332728302914013 1594495 0.0 0.0 True
318 2023-03-24 00:00:00+01:00 19.74200439453125 19.761898040771484 19.165102005004883 19.726089477539062 19.216454436140587 2008460 0.0 0.0 True
319 2023-03-27 00:00:00+02:00 20.07223129272461 20.301002502441406 19.833513259887695 20.221431732177734 19.698996715904766 1382281 0.0 0.0 True
320 2023-03-28 00:00:00+02:00 20.42036247253418 20.559614181518555 20.13191032409668 20.470096588134766 19.941239149853455 1220512 0.0 0.0 True
321 2023-03-29 00:00:00+02:00 20.559614181518555 20.639188766479492 20.370630264282227 20.539722442626953 20.009065572137956 791707 0.0 0.0 True
322 2023-03-30 00:00:00+02:00 20.659080505371094 21.01715850830078 20.629241943359375 20.82817268371582 20.290060750173744 968974 0.0 0.0 True
323 2023-03-31 00:00:00+02:00 20.82817268371582 21.01715850830078 20.748600006103516 20.95747947692871 20.416030620225015 1172265 0.0 0.0 True
324 2023-04-03 00:00:00+02:00 20.967424392700195 21.066890716552734 20.688920974731445 20.937585830688477 20.39665033955343 1141103 0.0 0.0 True
325 2023-04-04 00:00:00+02:00 21.08678436279297 21.186250686645508 20.858013153076172 20.858013153076172 20.31913182261912 728163 0.0 0.0 True
326 2023-04-05 00:00:00+02:00 20.897798538208008 20.947532653808594 20.46014976501465 20.499935150146484 19.970305010794792 1310588 0.0 0.0 True
327 2023-04-06 00:00:00+02:00 20.649133682250977 20.758546829223633 20.470096588134766 20.589454650878906 20.057513016626885 957116 0.0 0.0 True
328 2023-04-11 00:00:00+02:00 20.887853622436523 21.216089248657227 20.867958068847656 21.196197509765625 20.648580959523894 1155390 0.0 0.0 True
329 2023-04-12 00:00:00+02:00 21.156410217285156 21.285715103149414 20.907745361328125 21.226036071777344 20.67764812334124 907456 0.0 0.0 True
330 2023-04-13 00:00:00+02:00 21.186250686645508 21.385181427001953 21.14646339416504 21.255876541137695 20.706715287158584 1096832 0.0 0.0 True
331 2023-04-14 00:00:00+02:00 21.315555572509766 21.514488220214844 21.216089248657227 21.484647750854492 20.929576137559682 1071929 0.0 0.0 True
332 2023-04-17 00:00:00+02:00 21.882511138916016 22.07149887084961 21.58411407470703 21.892459869384766 21.326852999624965 1508490 0.0 0.0 True
333 2023-04-18 00:00:00+02:00 21.862619400024414 22.041658401489258 21.484647750854492 21.613954544067383 21.055546007610953 1127797 0.0 0.0 True
334 2023-04-19 00:00:00+02:00 21.633846282958984 21.65374183654785 21.37523651123047 21.633846282958984 21.074922379654502 908843 0.0 0.0 True
335 2023-04-20 00:00:00+02:00 21.68358039855957 21.68358039855957 21.484647750854492 21.6239013671875 21.065232890756718 810257 0.0 0.0 True
336 2023-04-21 00:00:00+02:00 21.58411407470703 21.58411407470703 21.255876541137695 21.424968719482422 20.871437901296957 823291 0.0 0.0 True
337 2023-04-24 00:00:00+02:00 21.385181427001953 21.703474044799805 21.295663833618164 21.633846282958984 21.074922379654502 882673 0.0 0.0 True
338 2023-04-25 00:00:00+02:00 21.59406089782715 21.74325942993164 21.385181427001953 21.663686752319336 21.103993452099886 1318878 0.0 0.0 True
339 2023-04-26 00:00:00+02:00 21.464754104614258 21.613954544067383 21.096731185913086 21.613954544067383 21.055546007610953 1135730 0.0 0.0 True
340 2023-04-27 00:00:00+02:00 21.504541397094727 21.504541397094727 20.897798538208008 21.11662483215332 20.571062442589582 1167454 0.0 0.0 True
341 2023-04-28 00:00:00+02:00 21.136518478393555 21.65374183654785 21.007211685180664 21.65374183654785 21.0943039632021 1480858 0.0 0.0 True
342 2023-05-02 00:00:00+02:00 21.68358039855957 21.713420867919922 21.126571655273438 21.14646339416504 20.600129606406934 1146537 0.0 0.0 True
343 2023-05-03 00:00:00+02:00 21.285715103149414 21.504541397094727 21.186250686645508 21.424968719482422 20.871437901296957 1054129 0.0 0.0 True
344 2023-05-04 00:00:00+02:00 20.987319946289062 21.6437931060791 20.340789794921875 20.66902732849121 20.13502892780917 1741640 0.0 0.0 True
345 2023-05-05 00:00:00+02:00 21.01715850830078 21.59406089782715 20.80828094482422 21.444862365722656 20.89082078772056 1420028 0.0 0.0 True
346 2023-05-08 00:00:00+02:00 21.484647750854492 21.514488220214844 21.245929718017578 21.514488220214844 20.95864721000506 674713 0.0 0.0 True
347 2023-05-09 00:00:00+02:00 21.663686752319336 21.663686752319336 21.17630386352539 21.444862365722656 20.89082078772056 853724 0.0 0.0 True
348 2023-05-10 00:00:00+02:00 21.49459457397461 21.663686752319336 21.156410217285156 21.405075073242188 20.852060226377397 826931 0.0 0.0 True
349 2023-05-11 00:00:00+02:00 21.464754104614258 21.633846282958984 21.106678009033203 21.37523651123047 20.82299175968404 1023400 0.0 0.0 True
350 2023-05-12 00:00:00+02:00 21.37523651123047 21.43491554260254 21.206144332885742 21.37523651123047 20.822991759684037 847053 0.0 0.0 True
351 2023-05-15 00:00:00+02:00 21.0469970703125 21.096731185913086 20.788387298583984 20.858013153076172 20.343019155002814 1023546 0.025099999999999997 0.0 True
352 2023-05-16 00:00:00+02:00 20.7386531829834 20.76849365234375 20.281110763549805 20.310949325561523 19.80946174919578 1280267 0.0 0.0 True
353 2023-05-17 00:00:00+02:00 20.201536178588867 20.57950782775879 20.092124938964844 20.549667358398438 20.042288055212353 1106539 0.0 0.0 True
354 2023-05-18 00:00:00+02:00 20.72870635986328 20.818225860595703 20.539722442626953 20.678974151611328 20.168400441542484 704356 0.0 0.0 True
355 2023-05-19 00:00:00+02:00 20.818225860595703 20.897798538208008 20.66902732849121 20.72870635986328 20.216904736568488 1030030 0.0 0.0 True
356 2023-05-22 00:00:00+02:00 20.66902732849121 20.788387298583984 20.57950782775879 20.76849365234375 20.255711830376843 853879 0.0 0.0 True
357 2023-05-23 00:00:00+02:00 20.748600006103516 20.80828094482422 20.66902732849121 20.79833221435547 20.284811562446574 779729 0.0 0.0 True
358 2023-05-24 00:00:00+02:00 20.60934829711914 20.60934829711914 20.291057586669922 20.489988327026367 19.984082494760305 846847 0.0 0.0 True
359 2023-05-25 00:00:00+02:00 20.51982879638672 20.51982879638672 19.962818145751953 20.01255226135254 19.518433946935552 1017197 0.0 0.0 True
360 2023-05-26 00:00:00+02:00 20.141857147216797 20.26121711730957 19.885236740112305 20.191591262817383 19.693050628291687 1058894 0.0 0.0 True
361 2023-05-29 00:00:00+02:00 20.301002502441406 20.340789794921875 20.181644439697266 20.26121711730957 19.760957454169773 295090 0.0 0.0 True
362 2023-05-30 00:00:00+02:00 20.301002502441406 20.340789794921875 20.052337646484375 20.092124938964844 19.596040006135482 641576 0.0 0.0 True
363 2023-05-31 00:00:00+02:00 19.77781105041504 19.77781105041504 19.184995651245117 19.427692413330078 18.948014171034597 3164263 0.0 0.0 True
364 2023-06-01 00:00:00+02:00 19.614688873291016 19.698240280151367 19.475435256958008 19.68232536315918 19.196361688891155 876148 0.0 0.0 True
365 2023-06-02 00:00:00+02:00 19.857385635375977 20.499935150146484 19.8255558013916 20.440256118774414 19.9355781997343 1069712 0.0 0.0 True
366 2023-06-05 00:00:00+02:00 20.529775619506836 20.589454650878906 20.39052391052246 20.499935150146484 19.993783760186346 850280 0.0 0.0 True
367 2023-06-06 00:00:00+02:00 20.489988327026367 20.66902732849121 20.38057518005371 20.66902732849121 20.158699176116443 646291 0.0 0.0 True
368 2023-06-07 00:00:00+02:00 20.678974151611328 20.92763900756836 20.569562911987305 20.92763900756836 20.410928012985096 885388 0.0 0.0 True
369 2023-06-08 00:00:00+02:00 20.877906799316406 21.514488220214844 20.877906799316406 21.186250686645508 20.66315278564536 1247924 0.0 0.0 True
370 2023-06-09 00:00:00+02:00 21.126571655273438 21.17630386352539 20.46014976501465 20.818225860595703 20.30421612540285 1294412 0.0 0.0 True
371 2023-06-12 00:00:00+02:00 20.887853622436523 21.08678436279297 20.80828094482422 21.05694580078125 20.537040399315227 932962 0.0 0.0 True
372 2023-06-13 00:00:00+02:00 21.166357040405273 21.454809188842773 20.907745361328125 21.424968719482422 20.895977059557737 905912 0.0 0.0 True
373 2023-06-14 00:00:00+02:00 21.862619400024414 21.882511138916016 21.424968719482422 21.514488220214844 20.9832864162879 1696595 0.0 0.0 True
374 2023-06-15 00:00:00+02:00 21.474702835083008 21.474702835083008 21.01715850830078 21.355342864990234 20.82807023367965 932700 0.0 0.0 True
375 2023-06-16 00:00:00+02:00 21.444862365722656 21.52443504333496 20.04239273071289 20.569562911987305 20.061690586064433 3430067 0.0 0.0 True
376 2023-06-19 00:00:00+02:00 20.291057586669922 20.291057586669922 19.932979583740234 19.982711791992188 19.489328118553235 1208865 0.0 0.0 True
377 2023-06-20 00:00:00+02:00 19.495328903198242 20.121965408325195 19.208866119384766 19.821577072143555 19.332173308543133 2053697 0.0 0.0 True
378 2023-06-21 00:00:00+02:00 19.845449447631836 19.923032760620117 19.662431716918945 19.923032760620117 19.43112255810119 644074 0.0 0.0 True
379 2023-06-22 00:00:00+02:00 19.749961853027344 20.022499084472656 19.68232536315918 19.797706604003906 19.30889352288735 667821 0.0 0.0 True
380 2023-06-23 00:00:00+02:00 19.65447425842285 19.805662155151367 19.539094924926758 19.686304092407227 19.20023894369486 893260 0.0 0.0 True
381 2023-06-26 00:00:00+02:00 19.757919311523438 20.032445907592773 19.65447425842285 19.982711791992188 19.489328118553235 793819 0.0 0.0 True
382 2023-06-27 00:00:00+02:00 20.092124938964844 20.211484909057617 19.74200439453125 19.95287322998047 19.460228386483504 871227 0.0 0.0 True
383 2023-06-28 00:00:00+02:00 20.112018585205078 20.151803970336914 19.865341186523438 19.95287322998047 19.460228386483504 911547 0.0 0.0 True
384 2023-06-29 00:00:00+02:00 20.01255226135254 20.181644439697266 19.903139114379883 20.092124938964844 19.596040006135482 1053234 0.0 0.0 True
385 2023-06-30 00:00:00+02:00 20.092124938964844 20.46014976501465 20.092124938964844 20.350736618041992 19.84826681089994 934560 0.0 0.0 True
386 2023-07-03 00:00:00+02:00 20.301002502441406 20.499935150146484 20.181644439697266 20.26121711730957 19.760957454169773 652308 0.0 0.0 True
387 2023-07-04 00:00:00+02:00 20.241323471069336 20.241323471069336 20.032445907592773 20.181644439697266 19.683351394969844 483753 0.0 0.0 True
388 2023-07-05 00:00:00+02:00 20.07223129272461 20.201536178588867 20.002605438232422 20.092124938964844 19.596040006135482 692829 0.0 0.0 True
389 2023-07-06 00:00:00+02:00 19.903139114379883 20.002605438232422 19.634580612182617 19.74200439453125 19.254565217239005 1098682 0.0 0.0 True
390 2023-07-07 00:00:00+02:00 19.7181339263916 20.350736618041992 19.7181339263916 20.350736618041992 19.84826681089994 909321 0.0 0.0 True
391 2023-07-10 00:00:00+02:00 20.221431732177734 20.48004150390625 20.201536178588867 20.241323471069336 19.741554923317693 599989 0.0 0.0 True
392 2023-07-11 00:00:00+02:00 20.291057586669922 20.60934829711914 20.211484909057617 20.51982879638672 20.01318425893423 514723 0.0 0.0 True
393 2023-07-12 00:00:00+02:00 20.569562911987305 21.126571655273438 20.529775619506836 21.066890716552734 20.54673963263707 903369 0.0 0.0 True
394 2023-07-13 00:00:00+02:00 20.967424392700195 21.226036071777344 20.92763900756836 20.967424392700195 20.449729010480866 830319 0.0 0.0 True
395 2023-07-14 00:00:00+02:00 20.877906799316406 20.897798538208008 20.301002502441406 20.301002502441406 19.799760483769738 959780 0.0 0.0 True
396 2023-07-17 00:00:00+02:00 20.191591262817383 20.330842971801758 20.151803970336914 20.201536178588867 19.702749861613533 678639 0.0 0.0 True
397 2023-07-18 00:00:00+02:00 20.211484909057617 20.410415649414062 20.112018585205078 20.410415649414062 19.906472371351985 696082 0.0 0.0 True
398 2023-07-19 00:00:00+02:00 20.340789794921875 20.430309295654297 20.04239273071289 20.310949325561523 19.80946174919578 1027451 0.0 0.0 True
399 2023-07-20 00:00:00+02:00 20.330842971801758 20.589454650878906 20.330842971801758 20.589454650878906 20.081091084812318 771530 0.0 0.0 True
400 2023-07-21 00:00:00+02:00 20.569562911987305 20.758546829223633 20.499935150146484 20.639188766479492 20.129597411942516 532559 0.0 0.0 True
401 2023-07-24 00:00:00+02:00 20.529775619506836 20.788387298583984 20.48004150390625 20.778440475463867 20.26541106369869 576946 0.0 0.0 True
402 2023-07-25 00:00:00+02:00 20.80828094482422 21.156410217285156 20.7386531829834 21.14646339416504 20.6243477239412 815268 0.0 0.0 True
403 2023-07-26 00:00:00+02:00 21.066890716552734 21.206144332885742 20.867958068847656 20.967424392700195 20.449729010480866 501060 0.0 0.0 True
404 2023-07-27 00:00:00+02:00 21.01715850830078 21.43491554260254 20.967424392700195 21.39512825012207 20.866873263279615 1024169 0.0 0.0 True
405 2023-07-28 00:00:00+02:00 21.30561065673828 21.802940368652344 21.255876541137695 21.802940368652344 21.264614985226284 1075428 0.0 0.0 True
406 2023-07-31 00:00:00+02:00 21.802940368652344 21.912351608276367 21.663686752319336 21.703474044799805 21.167606395174275 1096731 0.0 0.0 True
407 2023-08-01 00:00:00+02:00 21.59406089782715 21.604007720947266 21.424968719482422 21.424968719482422 20.895977059557737 660286 0.0 0.0 True
408 2023-08-02 00:00:00+02:00 21.186250686645508 21.58411407470703 21.08678436279297 21.454809188842773 20.925080855835855 858203 0.0 0.0 True
409 2023-08-03 00:00:00+02:00 21.673633575439453 21.78304672241211 20.01255226135254 20.499935150146484 19.993783760186346 1721865 0.0 0.0 True
410 2023-08-04 00:00:00+02:00 20.66902732849121 20.718759536743164 20.39052391052246 20.659080505371094 20.148999942794596 610022 0.0 0.0 True
411 2023-08-07 00:00:00+02:00 20.589454650878906 20.80828094482422 20.45020294189453 20.80828094482422 20.294514859976807 484065 0.0 0.0 True
412 2023-08-08 00:00:00+02:00 20.688920974731445 20.818225860595703 20.589454650878906 20.678974151611328 20.168400441542484 420797 0.0 0.0 True
413 2023-08-09 00:00:00+02:00 20.858013153076172 21.037052154541016 20.76849365234375 20.858013153076172 20.343019155002814 550545 0.0 0.0 True
414 2023-08-10 00:00:00+02:00 20.977371215820312 21.126571655273438 20.858013153076172 20.997264862060547 20.478832806758987 468059 0.0 0.0 True
415 2023-08-11 00:00:00+02:00 20.877906799316406 21.0271053314209 20.748600006103516 20.758546829223633 20.246010564950804 462374 0.0 0.0 True
416 2023-08-14 00:00:00+02:00 20.7386531829834 20.848066329956055 20.66902732849121 20.7386531829834 20.22660600199453 668188 0.0 0.0 True
417 2023-08-15 00:00:00+02:00 20.788387298583984 20.818225860595703 20.430309295654297 20.57950782775879 20.071389819386276 432414 0.0 0.0 True
418 2023-08-16 00:00:00+02:00 20.539722442626953 20.76849365234375 20.539722442626953 20.70881462097168 20.197506269924798 544437 0.0 0.0 True
419 2023-08-17 00:00:00+02:00 20.57950782775879 20.76849365234375 20.549667358398438 20.688920974731445 20.178101706968523 564871 0.0 0.0 True
420 2023-08-18 00:00:00+02:00 20.688920974731445 20.70881462097168 20.291057586669922 20.38057518005371 19.877370607178058 693870 0.0 0.0 True
421 2023-08-21 00:00:00+02:00 20.39052391052246 20.66902732849121 20.39052391052246 20.569562911987305 20.061690586064433 793311 0.0 0.0 True
422 2023-08-22 00:00:00+02:00 20.599401473999023 20.907745361328125 20.5098819732666 20.76849365234375 20.255711830376843 650046 0.0 0.0 True
423 2023-08-23 00:00:00+02:00 20.80828094482422 20.858013153076172 20.330842971801758 20.370630264282227 19.86766934175202 647211 0.0 0.0 True
424 2023-08-24 00:00:00+02:00 20.45020294189453 20.599401473999023 20.291057586669922 20.330842971801758 19.828866312152055 475896 0.0 0.0 True
425 2023-08-25 00:00:00+02:00 20.301002502441406 20.45020294189453 20.26121711730957 20.291057586669922 19.79006328255209 318928 0.0 0.0 True
426 2023-08-28 00:00:00+02:00 20.42036247253418 20.549667358398438 20.42036247253418 20.499935150146484 19.993783760186346 332741 0.0 0.0 True
427 2023-08-29 00:00:00+02:00 20.66902732849121 20.897798538208008 20.66902732849121 20.838119506835938 20.323616624150734 523138 0.0 0.0 True
428 2023-08-30 00:00:00+02:00 20.838119506835938 21.007211685180664 20.778440475463867 20.907745361328125 20.39152345002882 394929 0.0 0.0 True
429 2023-08-31 00:00:00+02:00 20.947532653808594 21.36528968811035 20.92763900756836 21.265823364257812 20.740760876949484 2323236 0.0 0.0 True
430 2023-09-01 00:00:00+02:00 21.255876541137695 21.9322452545166 21.255876541137695 21.87256622314453 21.332523843208566 966179 0.0 0.0 True
431 2023-09-04 00:00:00+02:00 21.981977462768555 22.021764755249023 21.544328689575195 21.58411407470703 21.05119121006179 643546 0.0 0.0 True
432 2023-09-05 00:00:00+02:00 21.504541397094727 21.78304672241211 21.424968719482422 21.6239013671875 21.08999627176595 541345 0.0 0.0 True
433 2023-09-06 00:00:00+02:00 21.544328689575195 22.111284255981445 21.504541397094727 22.09139060974121 21.545945586268864 851678 0.0 0.0 True
434 2023-09-07 00:00:00+02:00 21.882511138916016 21.90240478515625 21.424968719482422 21.464754104614258 20.9347800891577 700314 0.0 0.0 True
435 2023-09-08 00:00:00+02:00 21.574167251586914 21.574167251586914 20.887853622436523 21.235984802246094 20.711659112775557 719356 0.0 0.0 True
436 2023-09-11 00:00:00+02:00 21.345396041870117 21.564220428466797 21.315555572509766 21.52443504333496 20.992985649609746 524078 0.0 0.0 True
437 2023-09-12 00:00:00+02:00 21.58411407470703 21.6239013671875 21.11662483215332 21.11662483215332 20.595245959767272 772781 0.0 0.0 True
438 2023-09-13 00:00:00+02:00 21.0469970703125 21.36528968811035 20.76849365234375 20.818225860595703 20.30421612540285 691035 0.0 0.0 True
439 2023-09-14 00:00:00+02:00 20.887853622436523 21.196197509765625 20.629241943359375 21.126571655273438 20.604947225193314 578423 0.0 0.0 True
440 2023-09-15 00:00:00+02:00 21.295663833618164 21.952138900756836 21.295663833618164 21.84272575378418 21.30341801482625 2234985 0.0 0.0 True
441 2023-09-18 00:00:00+02:00 21.802940368652344 21.84272575378418 21.673633575439453 21.713420867919922 21.177307660600313 856277 0.0 0.0 True
442 2023-09-19 00:00:00+02:00 21.6437931060791 21.6437931060791 21.39512825012207 21.415021896362305 20.8862737620275 685505 0.0 0.0 True
443 2023-09-20 00:00:00+02:00 21.52443504333496 21.792993545532227 21.504541397094727 21.74325942993164 21.206407392670044 752488 0.0 0.0 True
444 2023-09-21 00:00:00+02:00 21.534381866455078 21.574167251586914 21.0271053314209 21.186250686645508 20.66315278564536 722196 0.0 0.0 True
445 2023-09-22 00:00:00+02:00 21.08678436279297 21.295663833618164 20.95747947692871 21.096731185913086 20.575843428915192 535977 0.0 0.0 True
446 2023-09-25 00:00:00+02:00 21.037052154541016 21.17630386352539 20.529775619506836 20.788387298583984 20.275112329124727 678523 0.0 0.0 True
447 2023-09-26 00:00:00+02:00 20.72870635986328 20.72870635986328 20.410415649414062 20.489988327026367 19.984082494760305 999281 0.0 0.0 True
448 2023-09-27 00:00:00+02:00 20.559614181518555 20.66902732849121 20.440256118774414 20.569562911987305 20.061690586064433 679654 0.0 0.0 True
449 2023-09-28 00:00:00+02:00 20.57950782775879 20.858013153076172 20.42036247253418 20.80828094482422 20.294514859976807 791858 0.0 0.0 True
450 2023-09-29 00:00:00+02:00 20.977371215820312 21.07683753967285 20.778440475463867 20.858013153076172 20.343019155002814 1368070 0.0 0.0 True
451 2023-10-02 00:00:00+02:00 20.877906799316406 20.95747947692871 20.38057518005371 20.489988327026367 19.984082494760305 921943 0.0 0.0 True
452 2023-10-03 00:00:00+02:00 20.45020294189453 20.559614181518555 20.241323471069336 20.430309295654297 19.92587693430826 870202 0.0 0.0 True
453 2023-10-04 00:00:00+02:00 20.340789794921875 20.629241943359375 20.23137664794922 20.301002502441406 19.799760483769738 1412955 0.0 0.0 True
454 2023-10-05 00:00:00+02:00 20.301002502441406 20.410415649414062 20.151803970336914 20.23137664794922 19.731855689995847 552761 0.0 0.0 True
455 2023-10-06 00:00:00+02:00 20.271163940429688 20.489988327026367 20.17169761657715 20.370630264282227 19.86766934175202 824653 0.0 0.0 True
456 2023-10-09 00:00:00+02:00 20.201536178588867 20.26121711730957 19.817598342895508 20.201536178588867 19.702749861613533 857112 0.0 0.0 True
457 2023-10-10 00:00:00+02:00 20.310949325561523 20.619295120239258 20.281110763549805 20.470096588134766 19.964679963908225 881954 0.0 0.0 True
458 2023-10-11 00:00:00+02:00 20.32089614868164 20.629241943359375 20.32089614868164 20.440256118774414 19.9355781997343 612797 0.0 0.0 True
459 2023-10-12 00:00:00+02:00 20.569562911987305 20.688920974731445 20.271163940429688 20.32089614868164 19.819165046726013 484462 0.0 0.0 True
460 2023-10-13 00:00:00+02:00 20.211484909057617 20.470096588134766 20.211484909057617 20.301002502441406 19.799760483769738 538324 0.0 0.0 True
461 2023-10-16 00:00:00+02:00 20.340789794921875 20.489988327026367 20.26121711730957 20.310949325561523 19.80946174919578 495104 0.0 0.0 True
462 2023-10-17 00:00:00+02:00 20.241323471069336 20.301002502441406 19.9130859375 20.221431732177734 19.722156456674004 618131 0.0 0.0 True
463 2023-10-18 00:00:00+02:00 20.191591262817383 20.23137664794922 19.881256103515625 19.881256103515625 19.390378868995178 559829 0.0 0.0 True
464 2023-10-19 00:00:00+02:00 19.714153289794922 19.84147071838379 19.551029205322266 19.630603790283203 19.145914702254906 708805 0.0 0.0 True
465 2023-10-20 00:00:00+02:00 19.49930763244629 19.54705047607422 19.296396255493164 19.296396255493164 18.819959093094223 760144 0.0 0.0 True
466 2023-10-23 00:00:00+02:00 19.3162899017334 19.344141006469727 19.005956649780273 19.16908073425293 18.69578736627014 652032 0.0 0.0 True
467 2023-10-24 00:00:00+02:00 19.101444244384766 19.232738494873047 18.994020462036133 19.11735725402832 18.645342411738085 565349 0.0 0.0 True
468 2023-10-25 00:00:00+02:00 19.133272171020508 19.184995651245117 18.882619857788086 19.093486785888672 18.622060593978105 597757 0.0 0.0 True
469 2023-10-26 00:00:00+02:00 18.882619857788086 19.507265090942383 18.834875106811523 19.403820037841797 18.924732353274617 756208 0.0 0.0 True
470 2023-10-27 00:00:00+02:00 19.519201278686523 19.75394058227539 19.20488739013672 19.20488739013672 18.730711108962204 767302 0.0 0.0 True
471 2023-10-30 00:00:00+01:00 19.296396255493164 19.54705047607422 19.296396255493164 19.45156478881836 18.97129802089877 755454 0.0 0.0 True
472 2023-10-31 00:00:00+01:00 19.455543518066406 19.972766876220703 19.443607330322266 19.84147071838379 19.351575839395213 1249155 0.0 0.0 True
473 2023-11-01 00:00:00+01:00 19.903139114379883 20.04239273071289 19.551029205322266 19.618667602539062 19.134274809427016 645054 0.0 0.0 True
474 2023-11-02 00:00:00+01:00 19.734046936035156 20.410415649414062 19.726089477539062 20.141857147216797 19.64454430116149 1414951 0.0 0.0 True
475 2023-11-03 00:00:00+01:00 19.877277374267578 20.211484909057617 19.165102005004883 19.51124382019043 19.02950154924662 1786173 0.0 0.0 True
476 2023-11-06 00:00:00+01:00 19.515222549438477 19.78179168701172 19.304353713989258 19.531137466430664 19.0489040800987 1141224 0.0 0.0 True
477 2023-11-07 00:00:00+01:00 19.42371368408203 19.535114288330078 19.25263214111328 19.35209846496582 18.874285366638368 719557 0.0 0.0 True
478 2023-11-08 00:00:00+01:00 19.228759765625 19.427692413330078 19.093486785888672 19.320268630981445 18.843242942958398 829203 0.0 0.0 True
479 2023-11-09 00:00:00+01:00 19.308332443237305 19.903139114379883 19.308332443237305 19.574901580810547 19.09158842871076 1169455 0.0 0.0 True
480 2023-11-10 00:00:00+01:00 19.479415893554688 19.761898040771484 19.244674682617188 19.761898040771484 19.273967748091085 991826 0.0 0.0 True
481 2023-11-13 00:00:00+01:00 19.773834228515625 19.857385635375977 19.531137466430664 19.734046936035156 19.246804611319014 980360 0.0 0.0 True
482 2023-11-14 00:00:00+01:00 19.79372787475586 20.410415649414062 19.78974723815918 20.340789794921875 19.838567577578093 892672 0.0 0.0 True
483 2023-11-15 00:00:00+01:00 20.36068344116211 20.917692184448242 20.291057586669922 20.917692184448242 20.40122471545486 1168610 0.0 0.0 True
484 2023-11-16 00:00:00+01:00 20.79833221435547 21.07683753967285 20.549667358398438 20.549667358398438 20.042288055212353 755625 0.0 0.0 True
485 2023-11-17 00:00:00+01:00 20.549667358398438 20.848066329956055 20.549667358398438 20.559614181518555 20.05198932063839 784037 0.0 0.0 True
486 2023-11-20 00:00:00+01:00 20.589454650878906 20.887853622436523 20.51982879638672 20.72870635986328 20.216904736568488 946072 0.0 0.0 True
487 2023-11-21 00:00:00+01:00 20.688920974731445 20.82817268371582 20.470096588134766 20.629241943359375 20.119896146516478 1185330 0.0 0.0 True
488 2023-11-22 00:00:00+01:00 20.629241943359375 20.838119506835938 20.559614181518555 20.599401473999023 20.09079438234255 1261386 0.0 0.0 True
489 2023-11-23 00:00:00+01:00 20.599401473999023 20.76849365234375 20.599401473999023 20.7386531829834 20.22660600199453 633558 0.0 0.0 True
490 2023-11-24 00:00:00+01:00 20.778440475463867 20.92763900756836 20.72870635986328 20.92763900756836 20.410928012985096 719180 0.0 0.0 True
491 2023-11-27 00:00:00+01:00 20.887853622436523 20.907745361328125 20.51982879638672 20.57950782775879 20.071389819386276 1094505 0.0 0.0 True
492 2023-11-28 00:00:00+01:00 20.529775619506836 20.66902732849121 20.330842971801758 20.60934829711914 20.100495647768593 1053370 0.0 0.0 True
493 2023-11-29 00:00:00+01:00 20.60934829711914 21.037052154541016 20.569562911987305 20.977371215820312 20.459430275906907 957061 0.0 0.0 True
494 2023-11-30 00:00:00+01:00 20.947532653808594 21.27577018737793 20.818225860595703 21.11662483215332 20.595245959767272 2370750 0.0 0.0 True
495 2023-12-01 00:00:00+01:00 21.166357040405273 21.6437931060791 21.166357040405273 21.604007720947266 21.070595773018066 1195222 0.0 0.0 True
496 2023-12-04 00:00:00+01:00 21.484647750854492 21.94219207763672 21.464754104614258 21.74325942993164 21.206407392670044 1089262 0.0 0.0 True
497 2023-12-05 00:00:00+01:00 21.6239013671875 21.9322452545166 21.59406089782715 21.882511138916016 21.34222307653041 1150906 0.0 0.0 True
498 2023-12-06 00:00:00+01:00 21.882511138916016 22.081443786621094 21.84272575378418 22.041658401489258 21.497441291242858 1090639 0.0 0.0 True
499 2023-12-07 00:00:00+01:00 22.081443786621094 22.489255905151367 22.041658401489258 22.359949111938477 21.80787365645936 1596696 0.0 0.0 True
500 2023-12-08 00:00:00+01:00 22.330108642578125 22.479307174682617 21.991924285888672 22.35000228881836 21.798170358929127 1410130 0.0 0.0 True
501 2023-12-11 00:00:00+01:00 19.450000762939453 23.649999618530273 17.895000457763672 20.6200008392334 20.110883764412478 8998324 0.0 0.0 True
502 2023-12-12 00:00:00+01:00 20.790000915527344 22.3700008392334 20.75 22.139999389648438 21.593352545029667 3236690 0.0 0.0 True
503 2023-12-13 00:00:00+01:00 22.489999771118164 24.530000686645508 22.399999618530273 23.950000762939453 23.358663812210377 2215354 0.0 0.0 True
504 2023-12-14 00:00:00+01:00 24.5 25.010000228881836 23.950000762939453 24.540000915527344 23.934096789159938 1535694 0.0 0.0 True
505 2023-12-15 00:00:00+01:00 24.8799991607666 25.420000076293945 24.600000381469727 25.40999984741211 24.782616120433715 2385553 0.0 0.0 True
506 2023-12-18 00:00:00+01:00 25.649999618530273 26.969999313354492 25.489999771118164 26.1299991607666 25.484838174410278 965441 0.0 0.0 True
507 2023-12-19 00:00:00+01:00 26.290000915527344 27.399999618530273 26.200000762939453 27.209999084472656 26.53817328747932 908754 0.0 0.0 True
508 2023-12-20 00:00:00+01:00 27.3700008392334 27.469999313354492 26.350000381469727 26.350000381469727 25.699408056340648 821654 0.0 0.0 True
509 2023-12-21 00:00:00+01:00 26.239999771118164 26.3700008392334 25.760000228881836 26.049999237060547 25.406813501746218 744197 0.0 0.0 True
510 2023-12-22 00:00:00+01:00 26.1200008392334 26.510000228881836 26.049999237060547 26.239999771118164 25.59212311537546 358134 0.0 0.0 True
511 2023-12-27 00:00:00+01:00 26.639999389648438 26.729999542236328 26.299999237060547 26.729999542236328 26.070023219390748 398784 0.0 0.0 True
512 2023-12-28 00:00:00+01:00 26.899999618530273 27.200000762939453 26.899999618530273 27.190000534057617 26.518669151417498 306879 0.0 0.0 True
513 2023-12-29 00:00:00+01:00 27.219999313354492 27.959999084472656 27.219999313354492 27.729999542236328 27.045333659795727 508827 0.0 0.0 True
514 2024-01-02 00:00:00+01:00 28.059999465942383 28.600000381469727 27.520000457763672 28.030000686645508 27.337928214390157 395002 0.0 0.0 True
515 2024-01-03 00:00:00+01:00 28.110000610351562 28.15999984741211 27.170000076293945 27.43000030517578 26.75274113730549 517626 0.0 0.0 True
516 2024-01-04 00:00:00+01:00 27.5 28.110000610351562 27.5 28.09000015258789 27.396446718888203 353356 0.0 0.0 True
517 2024-01-05 00:00:00+01:00 28.079999923706055 28.469999313354492 28.0 28.329999923706055 27.630518704776197 426440 0.0 0.0 True
518 2024-01-08 00:00:00+01:00 28.290000915527344 28.329999923706055 27.540000915527344 28.0 27.308667946089034 503233 0.0 0.0 True
519 2024-01-09 00:00:00+01:00 27.190000534057617 27.549999237060547 27.079999923706055 27.299999237060547 26.62595002817429 592677 0.0 0.0 True
520 2024-01-10 00:00:00+01:00 27.100000381469727 27.170000076293945 26.350000381469727 26.350000381469727 25.699408056340648 692877 0.0 0.0 True
521 2024-01-11 00:00:00+01:00 26.389999389648438 26.559999465942383 25.889999389648438 26.0 25.35804706527908 631805 0.0 0.0 True
522 2024-01-12 00:00:00+01:00 26.639999389648438 26.860000610351562 26.06999969482422 26.139999389648438 25.49459024244119 803481 0.0 0.0 True
523 2024-01-15 00:00:00+01:00 25.059999465942383 25.329999923706055 25.0 25.299999237060547 24.690631866455078 726646 0.016200000000000003 0.0 False
524 2024-01-16 00:00:00+01:00 25.149999618530273 25.200000762939453 24.579999923706055 24.989999771118164 24.388099670410156 493029 0.0 0.0 False
525 2024-01-17 00:00:00+01:00 24.700000762939453 24.729999542236328 23.989999771118164 24.260000228881836 23.675682067871094 646371 0.0 0.0 False
526 2024-01-18 00:00:00+01:00 24.200000762939453 24.239999771118164 23.530000686645508 23.530000686645508 22.963266372680664 686723 0.0 0.0 False
527 2024-01-19 00:00:00+01:00 23.670000076293945 24.25 23.670000076293945 24.049999237060547 23.470739364624023 679303 0.0 0.0 False
528 2024-01-22 00:00:00+01:00 24.299999237060547 24.770000457763672 24.079999923706055 24.760000228881836 24.163639068603516 282294 0.0 0.0 False
529 2024-01-23 00:00:00+01:00 25.200000762939453 25.450000762939453 24.90999984741211 25.3799991607666 24.768705368041992 397643 0.0 0.0 False
530 2024-01-24 00:00:00+01:00 25.600000381469727 25.6299991607666 24.75 24.75 24.153881072998047 564082 0.0 0.0 False
531 2024-01-25 00:00:00+01:00 24.84000015258789 25.760000228881836 24.799999237060547 25.600000381469727 24.983407974243164 401178 0.0 0.0 False
532 2024-01-26 00:00:00+01:00 25.690000534057617 26.959999084472656 25.6200008392334 26.40999984741211 25.773897171020508 712857 0.0 0.0 False
533 2024-01-29 00:00:00+01:00 26.5 26.549999237060547 25.760000228881836 25.760000228881836 25.139554977416992 375526 0.0 0.0 False
534 2024-01-30 00:00:00+01:00 25.8799991607666 26.049999237060547 25.610000610351562 25.690000534057617 25.071239471435547 339731 0.0 0.0 False
535 2024-01-31 00:00:00+01:00 25.850000381469727 26.1299991607666 25.440000534057617 25.440000534057617 24.827260971069336 1756316 0.0 0.0 False
536 2024-02-01 00:00:00+01:00 25.329999923706055 25.5 24.530000686645508 24.59000015258789 23.99773406982422 398800 0.0 0.0 False
537 2024-02-02 00:00:00+01:00 24.899999618530273 24.979999542236328 24.40999984741211 24.40999984741211 23.82206916809082 418661 0.0 0.0 False
538 2024-02-05 00:00:00+01:00 24.440000534057617 24.56999969482422 23.6299991607666 23.649999618530273 23.080373764038086 640546 0.0 0.0 False
539 2024-02-06 00:00:00+01:00 23.739999771118164 23.81999969482422 22.8799991607666 23.469999313354492 22.904708862304688 800098 0.0 0.0 False
540 2024-02-07 00:00:00+01:00 23.200000762939453 23.309999465942383 22.489999771118164 22.639999389648438 22.09469985961914 896379 0.0 0.0 False
541 2024-02-08 00:00:00+01:00 22.799999237060547 23.1299991607666 22.690000534057617 23.0 22.446029663085938 622376 0.0 0.0 False
542 2024-02-09 00:00:00+01:00 22.5 22.739999771118164 22.209999084472656 22.209999084472656 21.67505645751953 783024 0.0 0.0 False
543 2024-02-12 00:00:00+01:00 22.450000762939453 22.899999618530273 22.290000915527344 22.84000015258789 22.289884567260742 443790 0.0 0.0 False
544 2024-02-13 00:00:00+01:00 22.860000610351562 23.34000015258789 22.719999313354492 23.190000534057617 22.631454467773438 530025 0.0 0.0 False
545 2024-02-14 00:00:00+01:00 23.06999969482422 23.5 22.90999984741211 23.489999771118164 22.92422866821289 452602 0.0 0.0 False
546 2024-02-15 00:00:00+01:00 23.6200008392334 24.170000076293945 23.579999923706055 23.940000534057617 23.36338996887207 423885 0.0 0.0 False
547 2024-02-16 00:00:00+01:00 24.280000686645508 24.420000076293945 23.770000457763672 24.020000457763672 23.441463470458984 445071 0.0 0.0 False
548 2024-02-19 00:00:00+01:00 24.110000610351562 24.139999389648438 23.690000534057617 23.690000534057617 23.11941146850586 334433 0.0 0.0 False
549 2024-02-20 00:00:00+01:00 23.770000457763672 24.09000015258789 23.489999771118164 24.09000015258789 23.509777069091797 306827 0.0 0.0 False
550 2024-02-21 00:00:00+01:00 23.850000381469727 24.040000915527344 23.5 24.040000915527344 23.460981369018555 431924 0.0 0.0 False
551 2024-02-22 00:00:00+01:00 24.229999542236328 24.399999618530273 24.010000228881836 24.219999313354492 23.63664436340332 366743 0.0 0.0 False
552 2024-02-23 00:00:00+01:00 24.239999771118164 24.6200008392334 23.860000610351562 23.959999084472656 23.38290786743164 266603 0.0 0.0 False
553 2024-02-26 00:00:00+01:00 23.959999084472656 23.959999084472656 23.270000457763672 23.479999542236328 22.91446876525879 316183 0.0 0.0 False
554 2024-02-27 00:00:00+01:00 23.540000915527344 23.889999389648438 23.329999923706055 23.75 23.17796516418457 284263 0.0 0.0 False
555 2024-02-28 00:00:00+01:00 23.829999923706055 24.059999465942383 23.559999465942383 23.6200008392334 23.051097869873047 344714 0.0 0.0 False
556 2024-02-29 00:00:00+01:00 23.600000381469727 23.6299991607666 23.329999923706055 23.5 22.93398666381836 601749 0.0 0.0 False
557 2024-03-01 00:00:00+01:00 23.6299991607666 24.530000686645508 23.59000015258789 24.200000762939453 23.617128372192383 445507 0.0 0.0 False
558 2024-03-04 00:00:00+01:00 24.1200008392334 24.229999542236328 22.989999771118164 23.3799991607666 22.816877365112305 469234 0.0 0.0 False
559 2024-03-05 00:00:00+01:00 23.329999923706055 23.579999923706055 23.079999923706055 23.579999923706055 23.012060165405273 321295 0.0 0.0 False
560 2024-03-06 00:00:00+01:00 23.579999923706055 24.100000381469727 23.549999237060547 23.549999237060547 22.9827823638916 516710 0.0 0.0 False
561 2024-03-07 00:00:00+01:00 23.389999389648438 23.670000076293945 23.100000381469727 23.5 22.93398666381836 371579 0.0 0.0 False
562 2024-03-08 00:00:00+01:00 23.520000457763672 23.770000457763672 22.969999313354492 23.739999771118164 23.1682071685791 426367 0.0 0.0 False
563 2024-03-11 00:00:00+01:00 23.68000030517578 24.100000381469727 23.450000762939453 24.100000381469727 23.5195369720459 437456 0.0 0.0 False
564 2024-03-12 00:00:00+01:00 24.299999237060547 25.450000762939453 24.059999465942383 25.25 24.64183807373047 794906 0.0 0.0 False
565 2024-03-13 00:00:00+01:00 24.100000381469727 26.010000228881836 23.950000762939453 24.549999237060547 23.958696365356445 844838 0.0 0.0 False
566 2024-03-14 00:00:00+01:00 24.440000534057617 24.729999542236328 23.649999618530273 23.81999969482422 23.246280670166016 643203 0.0 0.0 False
567 2024-03-15 00:00:00+01:00 23.850000381469727 24.579999923706055 23.229999542236328 23.229999542236328 22.670490264892578 1376963 0.0 0.0 False
568 2024-03-18 00:00:00+01:00 23.229999542236328 23.6299991607666 23.030000686645508 23.440000534057617 22.87543296813965 406545 0.0 0.0 False
569 2024-03-19 00:00:00+01:00 23.149999618530273 23.75 23.040000915527344 23.670000076293945 23.09989356994629 429140 0.0 0.0 False
570 2024-03-20 00:00:00+01:00 23.639999389648438 24.110000610351562 23.5 24.030000686645508 23.451223373413086 308989 0.0 0.0 False
571 2024-03-21 00:00:00+01:00 24.18000030517578 24.479999542236328 24.030000686645508 24.15999984741211 23.57809066772461 415990 0.0 0.0 False
572 2024-03-22 00:00:00+01:00 24.139999389648438 24.719999313354492 23.84000015258789 24.540000915527344 23.948938369750977 295245 0.0 0.0 False
573 2024-03-25 00:00:00+01:00 24.549999237060547 25.100000381469727 24.520000457763672 25.059999465942383 24.45641326904297 348983 0.0 0.0 False
574 2024-03-26 00:00:00+01:00 25.030000686645508 25.09000015258789 24.299999237060547 24.549999237060547 23.958696365356445 323207 0.0 0.0 False
575 2024-03-27 00:00:00+01:00 24.459999084472656 24.969999313354492 24.31999969482422 24.969999313354492 24.368581771850586 203281 0.0 0.0 False
576 2024-03-28 00:00:00+01:00 25.020000457763672 25.360000610351562 24.700000762939453 25.299999237060547 24.690631866455078 292668 0.0 0.0 False
577 2024-04-02 00:00:00+02:00 25.350000381469727 25.799999237060547 25.299999237060547 25.600000381469727 24.983407974243164 302238 0.0 0.0 False
578 2024-04-03 00:00:00+02:00 25.68000030517578 26.8799991607666 25.6299991607666 26.690000534057617 26.047155380249023 448326 0.0 0.0 False
579 2024-04-04 00:00:00+02:00 28.5 29.190000534057617 27.709999084472656 27.709999084472656 27.042585372924805 1493843 0.0 0.0 False
580 2024-04-05 00:00:00+02:00 27.350000381469727 27.959999084472656 27.010000228881836 27.350000381469727 26.69125747680664 540908 0.0 0.0 False
581 2024-04-08 00:00:00+02:00 27.399999618530273 28.309999465942383 27.34000015258789 28.270000457763672 27.589099884033203 487088 0.0 0.0 False
582 2024-04-09 00:00:00+02:00 28.350000381469727 28.43000030517578 28.049999237060547 28.200000762939453 27.52078628540039 253999 0.0 0.0 False
583 2024-04-10 00:00:00+02:00 28.34000015258789 29.40999984741211 28.1200008392334 28.639999389648438 27.950185775756836 735134 0.0 0.0 False
584 2024-04-11 00:00:00+02:00 28.93000030517578 29.260000228881836 28.649999618530273 28.959999084472656 28.262479782104492 306645 0.0 0.0 False
585 2024-04-12 00:00:00+02:00 29.399999618530273 29.799999237060547 29.170000076293945 29.5 28.789474487304688 437731 0.0 0.0 False
586 2024-04-15 00:00:00+02:00 29.100000381469727 29.850000381469727 29.0 29.450000762939453 28.740678787231445 388339 0.0 0.0 False
587 2024-04-16 00:00:00+02:00 29.200000762939453 29.350000381469727 28.780000686645508 28.780000686645508 28.086816787719727 434787 0.0 0.0 False
588 2024-04-17 00:00:00+02:00 28.780000686645508 29.989999771118164 28.760000228881836 29.799999237060547 29.082246780395508 352161 0.0 0.0 False
589 2024-04-18 00:00:00+02:00 29.899999618530273 30.700000762939453 29.780000686645508 30.649999618530273 29.911775588989258 347317 0.0 0.0 False
590 2024-04-19 00:00:00+02:00 30.5 31.040000915527344 28.34000015258789 30.75 30.009366989135742 697878 0.0 0.0 False
591 2024-04-22 00:00:00+02:00 30.81999969482422 31.600000381469727 30.770000457763672 31.56999969482422 30.809616088867188 401308 0.0 0.0 False
592 2024-04-23 00:00:00+02:00 31.579999923706055 31.65999984741211 30.049999237060547 31.0 30.253345489501953 471634 0.0 0.0 False
593 2024-04-24 00:00:00+02:00 30.950000762939453 31.75 30.90999984741211 31.200000762939453 30.448528289794922 307607 0.0 0.0 False
594 2024-04-25 00:00:00+02:00 31.299999237060547 31.329999923706055 29.670000076293945 29.75 29.0334529876709 478021 0.0 0.0 False
595 2024-04-26 00:00:00+02:00 30.25 30.719999313354492 29.959999084472656 30.18000030517578 29.453096389770508 331898 0.0 0.0 False
596 2024-04-29 00:00:00+02:00 30.209999084472656 30.899999618530273 30.209999084472656 30.850000381469727 30.106958389282227 225725 0.0 0.0 False
597 2024-04-30 00:00:00+02:00 30.899999618530273 31.18000030517578 30.290000915527344 30.40999984741211 29.677555084228516 232054 0.0 0.0 False
598 2024-05-02 00:00:00+02:00 30.40999984741211 30.600000381469727 29.709999084472656 30.5 29.76538848876953 390674 0.0 0.0 False
599 2024-05-03 00:00:00+02:00 29.56999969482422 30.299999237060547 29.5 30.139999389648438 29.414058685302734 364126 0.0 0.0 False
600 2024-05-06 00:00:00+02:00 30.290000915527344 30.989999771118164 30.139999389648438 30.420000076293945 29.687314987182617 273816 0.0 0.0 False
601 2024-05-07 00:00:00+02:00 31.600000381469727 35.25 31.360000610351562 34.7599983215332 33.92278289794922 1075584 0.0 0.0 False
602 2024-05-08 00:00:00+02:00 34.34000015258789 36.619998931884766 33.43000030517578 34.68000030517578 33.84471130371094 1057246 0.0 0.0 False
603 2024-05-09 00:00:00+02:00 34.650001525878906 35.33000183105469 34.209999084472656 34.38999938964844 33.56169509887695 262471 0.0 0.0 False
604 2024-05-10 00:00:00+02:00 34.790000915527344 34.939998626708984 33.58000183105469 33.650001525878906 32.83951950073242 223080 0.0 0.0 False
605 2024-05-13 00:00:00+02:00 33.5 34.459999084472656 33.33000183105469 34.310001373291016 33.48362350463867 273103 0.0 0.0 False
606 2024-05-14 00:00:00+02:00 34.220001220703125 34.52000045776367 33.560001373291016 34.52000045776367 33.68856430053711 279550 0.0 0.0 False
607 2024-05-15 00:00:00+02:00 34.630001068115234 34.900001525878906 33.75 34.099998474121094 33.27867889404297 242453 0.0 0.0 False
608 2024-05-16 00:00:00+02:00 34.13999938964844 34.13999938964844 33.04999923706055 33.599998474121094 32.79072189331055 235321 0.0 0.0 False
609 2024-05-17 00:00:00+02:00 32.84000015258789 34.06999969482422 32.59000015258789 34.06999969482422 33.2494010925293 339910 0.0 0.0 False
610 2024-05-20 00:00:00+02:00 34.400001525878906 34.400001525878906 33.70000076293945 34.04999923706055 33.229881286621094 164887 0.0 0.0 False
611 2024-05-21 00:00:00+02:00 33.97999954223633 34.130001068115234 33.31999969482422 33.31999969482422 32.5174674987793 171162 0.0 0.0 False
612 2024-05-22 00:00:00+02:00 33.29999923706055 34.189998626708984 32.93000030517578 34.189998626708984 33.366512298583984 345186 0.0 0.0 False
613 2024-05-23 00:00:00+02:00 34.189998626708984 34.75 34.150001525878906 34.470001220703125 33.6397705078125 301874 0.0 0.0 False
614 2024-05-24 00:00:00+02:00 34.29999923706055 35.040000915527344 34.060001373291016 34.52000045776367 33.68856430053711 297474 0.0 0.0 False
615 2024-05-27 00:00:00+02:00 34.52000045776367 34.900001525878906 34.25 34.5 33.669044494628906 145496 0.0 0.0 False
616 2024-05-28 00:00:00+02:00 34.459999084472656 34.540000915527344 33.81999969482422 34.400001525878906 33.57145690917969 239174 0.0 0.0 False
617 2024-05-29 00:00:00+02:00 34.400001525878906 34.439998626708984 33.900001525878906 34.220001220703125 33.395790100097656 245711 0.0 0.0 False
618 2024-05-30 00:00:00+02:00 34.61000061035156 34.61000061035156 33.75 34.310001373291016 33.48362350463867 270049 0.0 0.0 False
619 2024-05-31 00:00:00+02:00 34.25 34.650001525878906 33.45000076293945 33.630001068115234 32.81999969482422 348292 0.0 0.0 False
620 2024-06-03 00:00:00+02:00 33.20000076293945 33.290000915527344 31.81999969482422 31.829999923706055 31.829999923706055 271111 0.81 0.0 False
621 2024-06-04 00:00:00+02:00 31.780000686645508 31.860000610351562 31.260000228881836 31.649999618530273 31.649999618530273 345119 0.0 0.0 False
622 2024-06-05 00:00:00+02:00 31.770000457763672 31.940000534057617 31.270000457763672 31.270000457763672 31.270000457763672 371491 0.0 0.0 False
623 2024-06-06 00:00:00+02:00 31.489999771118164 31.510000228881836 30.600000381469727 30.920000076293945 30.920000076293945 325501 0.0 0.0 False
624 2024-06-07 00:00:00+02:00 30.90999984741211 31.209999084472656 30.600000381469727 30.969999313354492 30.969999313354492 161556 0.0 0.0 False
625 2024-06-10 00:00:00+02:00 30.850000381469727 31.739999771118164 30.729999542236328 31.739999771118164 31.739999771118164 265293 0.0 0.0 False
626 2024-06-11 00:00:00+02:00 31.639999389648438 32.529998779296875 31.639999389648438 32.349998474121094 32.349998474121094 424271 0.0 0.0 False
627 2024-06-12 00:00:00+02:00 32.40999984741211 33.04999923706055 32.40999984741211 32.81999969482422 32.81999969482422 244552 0.0 0.0 False
628 2024-06-13 00:00:00+02:00 32.54999923706055 32.54999923706055 31.709999084472656 31.780000686645508 31.780000686645508 302052 0.0 0.0 False
629 2024-06-14 00:00:00+02:00 31.600000381469727 31.6299991607666 30.34000015258789 30.790000915527344 30.790000915527344 342157 0.0 0.0 False
630 2024-06-17 00:00:00+02:00 30.920000076293945 31.479999542236328 30.889999389648438 31.34000015258789 31.34000015258789 273690 0.0 0.0 False
631 2024-06-18 00:00:00+02:00 31.579999923706055 31.690000534057617 31.06999969482422 31.229999542236328 31.229999542236328 218534 0.0 0.0 False
632 2024-06-19 00:00:00+02:00 31.260000228881836 31.81999969482422 31.200000762939453 31.350000381469727 31.350000381469727 175454 0.0 0.0 False
633 2024-06-20 00:00:00+02:00 31.31999969482422 32.11000061035156 31.31999969482422 31.709999084472656 31.709999084472656 296995 0.0 0.0 False
634 2024-06-21 00:00:00+02:00 31.860000610351562 32.04999923706055 31.559999465942383 31.719999313354492 31.719999313354492 2005373 0.0 0.0 False
635 2024-06-24 00:00:00+02:00 31.700000762939453 33.630001068115234 31.700000762939453 33.06999969482422 33.06999969482422 347579 0.0 0.0 False
636 2024-06-25 00:00:00+02:00 33.0 33.34000015258789 31.90999984741211 31.90999984741211 31.90999984741211 241894 0.0 0.0 False
637 2024-06-26 00:00:00+02:00 31.899999618530273 32.349998474121094 31.649999618530273 31.8700008392334 31.8700008392334 267568 0.0 0.0 False
638 2024-06-27 00:00:00+02:00 32.29999923706055 33.0 32.20000076293945 32.900001525878906 32.900001525878906 182682 0.0 0.0 False
639 2024-06-28 00:00:00+02:00 32.95000076293945 33.060001373291016 32.31999969482422 32.869998931884766 32.869998931884766 277611 0.0 0.0 False
640 2024-07-01 00:00:00+02:00 33.29999923706055 33.4900016784668 32.72999954223633 33.4900016784668 33.4900016784668 206747 0.0 0.0 False
641 2024-07-02 00:00:00+02:00 33.5 34.0 33.13999938964844 34.0 34.0 231379 0.0 0.0 False
642 2024-07-03 00:00:00+02:00 33.95000076293945 34.13999938964844 33.47999954223633 34.13999938964844 34.13999938964844 262502 0.0 0.0 False
643 2024-07-04 00:00:00+02:00 34.0 34.20000076293945 33.540000915527344 34.060001373291016 34.060001373291016 130465 0.0 0.0 False
644 2024-07-05 00:00:00+02:00 34.060001373291016 34.279998779296875 33.5099983215332 33.5099983215332 33.5099983215332 212429 0.0 0.0 False
645 2024-07-08 00:00:00+02:00 33.400001525878906 33.95000076293945 32.81999969482422 33.95000076293945 33.95000076293945 194477 0.0 0.0 False
646 2024-07-09 00:00:00+02:00 33.790000915527344 34.060001373291016 32.290000915527344 32.5099983215332 32.5099983215332 364262 0.0 0.0 False
647 2024-07-10 00:00:00+02:00 32.29999923706055 32.38999938964844 31.75 32.040000915527344 32.040000915527344 207620 0.0 0.0 False
648 2024-07-11 00:00:00+02:00 32.11000061035156 32.599998474121094 32.06999969482422 32.349998474121094 32.349998474121094 159663 0.0 0.0 False
649 2024-07-12 00:00:00+02:00 32.29999923706055 32.93000030517578 32.29999923706055 32.59000015258789 32.59000015258789 116583 0.0 0.0 False
650 2024-07-15 00:00:00+02:00 32.459999084472656 32.689998626708984 31.899999618530273 32.279998779296875 32.279998779296875 123588 0.0 0.0 False
651 2024-07-16 00:00:00+02:00 32.20000076293945 32.65999984741211 31.940000534057617 32.45000076293945 32.45000076293945 88377 0.0 0.0 False
652 2024-07-17 00:00:00+02:00 32.72999954223633 33.939998626708984 32.040000915527344 33.939998626708984 33.939998626708984 222062 0.0 0.0 False
653 2024-07-18 00:00:00+02:00 34.0 34.93000030517578 33.79999923706055 34.63999938964844 34.63999938964844 400707 0.0 0.0 False
654 2024-07-19 00:00:00+02:00 34.290000915527344 34.36000061035156 33.529998779296875 34.0099983215332 34.0099983215332 188494 0.0 0.0 False
655 2024-07-22 00:00:00+02:00 34.349998474121094 34.5 33.66999816894531 34.13999938964844 34.13999938964844 144759 0.0 0.0 False
656 2024-07-23 00:00:00+02:00 33.95000076293945 34.02000045776367 33.5 33.83000183105469 33.83000183105469 99602 0.0 0.0 False
657 2024-07-24 00:00:00+02:00 33.54999923706055 33.97999954223633 33.459999084472656 33.5099983215332 33.5099983215332 118200 0.0 0.0 False
658 2024-07-25 00:00:00+02:00 33.400001525878906 33.75 32.43000030517578 33.41999816894531 33.41999816894531 143724 0.0 0.0 False
659 2024-07-26 00:00:00+02:00 33.09000015258789 33.439998626708984 32.650001525878906 33.2599983215332 33.2599983215332 150065 0.0 0.0 False
660 2024-07-29 00:00:00+02:00 33.25 33.560001373291016 33.06999969482422 33.18000030517578 33.18000030517578 101941 0.0 0.0 False
661 2024-07-30 00:00:00+02:00 33.0 33.619998931884766 32.86000061035156 33.18000030517578 33.18000030517578 142743 0.0 0.0 False
662 2024-07-31 00:00:00+02:00 33.849998474121094 34.0 32.20000076293945 32.52000045776367 32.52000045776367 561976 0.0 0.0 False
663 2024-08-01 00:00:00+02:00 32.13999938964844 32.599998474121094 31.190000534057617 31.469999313354492 31.469999313354492 275048 0.0 0.0 False
664 2024-08-02 00:00:00+02:00 31.229999542236328 31.760000228881836 30.860000610351562 30.860000610351562 30.860000610351562 265760 0.0 0.0 False
665 2024-08-05 00:00:00+02:00 30.100000381469727 30.479999542236328 29.469999313354492 29.940000534057617 29.940000534057617 473460 0.0 0.0 False
666 2024-08-06 00:00:00+02:00 30.5 31.010000228881836 30.040000915527344 30.190000534057617 30.190000534057617 264982 0.0 0.0 False
667 2024-08-07 00:00:00+02:00 30.510000228881836 31.229999542236328 30.3799991607666 30.889999389648438 30.889999389648438 178311 0.0 0.0 False
668 2024-08-08 00:00:00+02:00 30.799999237060547 30.959999084472656 30.40999984741211 30.799999237060547 30.799999237060547 172146 0.0 0.0 False
669 2024-08-09 00:00:00+02:00 30.90999984741211 31.520000457763672 30.90999984741211 31.15999984741211 31.15999984741211 179785 0.0 0.0 False
670 2024-08-12 00:00:00+02:00 31.299999237060547 31.690000534057617 30.59000015258789 30.59000015258789 30.59000015258789 132932 0.0 0.0 False
671 2024-08-13 00:00:00+02:00 30.690000534057617 31.040000915527344 30.360000610351562 30.600000381469727 30.600000381469727 103593 0.0 0.0 False
672 2024-08-14 00:00:00+02:00 30.649999618530273 30.68000030517578 30.059999465942383 30.479999542236328 30.479999542236328 209068 0.0 0.0 False
673 2024-08-15 00:00:00+02:00 30.549999237060547 31.09000015258789 30.450000762939453 30.920000076293945 30.920000076293945 125365 0.0 0.0 False
674 2024-08-16 00:00:00+02:00 30.940000534057617 31.1200008392334 30.729999542236328 30.8799991607666 30.8799991607666 141253 0.0 0.0 False
675 2024-08-19 00:00:00+02:00 31.030000686645508 31.299999237060547 30.670000076293945 31.030000686645508 31.030000686645508 180272 0.0 0.0 False
676 2024-08-20 00:00:00+02:00 31.170000076293945 31.170000076293945 30.469999313354492 30.530000686645508 30.530000686645508 152575 0.0 0.0 False
677 2024-08-21 00:00:00+02:00 30.530000686645508 31.020000457763672 30.530000686645508 30.969999313354492 30.969999313354492 128994 0.0 0.0 False
678 2024-08-22 00:00:00+02:00 30.979999542236328 31.3799991607666 30.780000686645508 31.229999542236328 31.229999542236328 87006 0.0 0.0 False
679 2024-08-23 00:00:00+02:00 31.18000030517578 31.540000915527344 31.18000030517578 31.270000457763672 31.270000457763672 84423 0.0 0.0 False
680 2024-08-26 00:00:00+02:00 31.149999618530273 31.459999084472656 30.829999923706055 31.030000686645508 31.030000686645508 72965 0.0 0.0 False
681 2024-08-27 00:00:00+02:00 30.90999984741211 31.360000610351562 30.809999465942383 31.139999389648438 31.139999389648438 102326 0.0 0.0 False
682 2024-08-28 00:00:00+02:00 31.139999389648438 31.190000534057617 30.540000915527344 30.93000030517578 30.93000030517578 133750 0.0 0.0 False
683 2024-08-29 00:00:00+02:00 30.81999969482422 31.25 30.81999969482422 31.079999923706055 31.079999923706055 110738 0.0 0.0 False
684 2024-08-30 00:00:00+02:00 31.190000534057617 31.829999923706055 31.079999923706055 31.700000762939453 31.700000762939453 222082 0.0 0.0 False
685 2024-09-02 00:00:00+02:00 31.739999771118164 32.36000061035156 31.469999313354492 32.18000030517578 32.18000030517578 137822 0.0 0.0 False
686 2024-09-03 00:00:00+02:00 32.04999923706055 32.2400016784668 31.469999313354492 31.520000457763672 31.520000457763672 115050 0.0 0.0 False
687 2024-09-04 00:00:00+02:00 31.100000381469727 31.739999771118164 31.030000686645508 31.559999465942383 31.559999465942383 110471 0.0 0.0 False
688 2024-09-05 00:00:00+02:00 31.34000015258789 32.310001373291016 31.34000015258789 31.670000076293945 31.670000076293945 230413 0.0 0.0 False
689 2024-09-06 00:00:00+02:00 31.489999771118164 31.8700008392334 31.18000030517578 31.209999084472656 31.209999084472656 163894 0.0 0.0 False
690 2024-09-09 00:00:00+02:00 31.5 31.729999542236328 31.280000686645508 31.649999618530273 31.649999618530273 150347 0.0 0.0 False
691 2024-09-10 00:00:00+02:00 31.59000015258789 32.040000915527344 30.8700008392334 30.8700008392334 30.8700008392334 177060 0.0 0.0 False
692 2024-09-11 00:00:00+02:00 30.93000030517578 32.06999969482422 30.93000030517578 31.049999237060547 31.049999237060547 253253 0.0 0.0 False
693 2024-09-12 00:00:00+02:00 31.049999237060547 31.3799991607666 30.809999465942383 30.809999465942383 30.809999465942383 198487 0.0 0.0 False
694 2024-09-13 00:00:00+02:00 30.809999465942383 31.6299991607666 30.809999465942383 31.3700008392334 31.3700008392334 160154 0.0 0.0 False
695 2024-09-16 00:00:00+02:00 31.270000457763672 31.469999313354492 31.100000381469727 31.450000762939453 31.450000762939453 112962 0.0 0.0 False
696 2024-09-17 00:00:00+02:00 31.719999313354492 32.75 31.719999313354492 32.75 32.75 181018 0.0 0.0 False
697 2024-09-18 00:00:00+02:00 32.81999969482422 33.84000015258789 32.38999938964844 33.72999954223633 33.72999954223633 208825 0.0 0.0 False
698 2024-09-19 00:00:00+02:00 34.119998931884766 34.689998626708984 33.84000015258789 34.58000183105469 34.58000183105469 292983 0.0 0.0 False
699 2024-09-20 00:00:00+02:00 34.599998474121094 34.599998474121094 33.93000030517578 34.279998779296875 34.279998779296875 547234 0.0 0.0 False
700 2024-09-23 00:00:00+02:00 34.22999954223633 34.68000030517578 34.11000061035156 34.369998931884766 34.369998931884766 148293 0.0 0.0 False
701 2024-09-24 00:00:00+02:00 34.709999084472656 35.13999938964844 34.279998779296875 34.279998779296875 34.279998779296875 214647 0.0 0.0 False
702 2024-09-25 00:00:00+02:00 34.279998779296875 34.83000183105469 33.58000183105469 33.58000183105469 33.58000183105469 194543 0.0 0.0 False
703 2024-09-26 00:00:00+02:00 34.0 34.119998931884766 33.650001525878906 34.119998931884766 34.119998931884766 198143 0.0 0.0 False
704 2024-09-27 00:00:00+02:00 34.2400016784668 35.02000045776367 34.130001068115234 34.63999938964844 34.63999938964844 196448 0.0 0.0 False
705 2024-09-30 00:00:00+02:00 34.150001525878906 35.45000076293945 34.0 35.20000076293945 35.20000076293945 261067 0.0 0.0 False
706 2024-10-01 00:00:00+02:00 35.20000076293945 35.88999938964844 35.18000030517578 35.61000061035156 35.61000061035156 218502 0.0 0.0 False
707 2024-10-02 00:00:00+02:00 35.61000061035156 36.810001373291016 35.45000076293945 36.310001373291016 36.310001373291016 185328 0.0 0.0 False
708 2024-10-03 00:00:00+02:00 36.22999954223633 36.619998931884766 36.209999084472656 36.310001373291016 36.310001373291016 246827 0.0 0.0 False
709 2024-10-04 00:00:00+02:00 36.209999084472656 37.560001373291016 36.13999938964844 37.5099983215332 37.5099983215332 298766 0.0 0.0 False
710 2024-10-07 00:00:00+02:00 37.5 37.5099983215332 36.47999954223633 36.91999816894531 36.91999816894531 161195 0.0 0.0 False
711 2024-10-08 00:00:00+02:00 36.7599983215332 36.7599983215332 35.66999816894531 35.93000030517578 35.93000030517578 144993 0.0 0.0 False
712 2024-10-09 00:00:00+02:00 35.86000061035156 36.52000045776367 35.400001525878906 36.369998931884766 36.369998931884766 123249 0.0 0.0 False
713 2024-10-10 00:00:00+02:00 36.619998931884766 37.0 36.439998626708984 36.959999084472656 36.959999084472656 127939 0.0 0.0 False
714 2024-10-11 00:00:00+02:00 36.650001525878906 37.349998474121094 36.560001373291016 37.150001525878906 37.150001525878906 110000 0.0 0.0 False
715 2024-10-14 00:00:00+02:00 37.349998474121094 38.0 37.0 38.0 38.0 215775 0.0 0.0 False
716 2024-10-15 00:00:00+02:00 38.0 38.72999954223633 37.7400016784668 38.43000030517578 38.43000030517578 289899 0.0 0.0 False
717 2024-10-16 00:00:00+02:00 38.5 39.31999969482422 38.310001373291016 39.31999969482422 39.31999969482422 351315 0.0 0.0 False
718 2024-10-17 00:00:00+02:00 39.27000045776367 39.310001373291016 37.95000076293945 38.439998626708984 38.439998626708984 336837 0.0 0.0 False
719 2024-10-18 00:00:00+02:00 38.209999084472656 39.369998931884766 37.939998626708984 39.349998474121094 39.349998474121094 284589 0.0 0.0 False
720 2024-10-21 00:00:00+02:00 39.11000061035156 39.13999938964844 38.43000030517578 39.099998474121094 39.099998474121094 176237 0.0 0.0 False
721 2024-10-22 00:00:00+02:00 39.119998931884766 39.369998931884766 38.63999938964844 38.900001525878906 38.900001525878906 219984 0.0 0.0 False
722 2024-10-23 00:00:00+02:00 38.70000076293945 38.86000061035156 37.790000915527344 38.79999923706055 38.79999923706055 212351 0.0 0.0 False
723 2024-10-24 00:00:00+02:00 38.70000076293945 38.939998626708984 38.36000061035156 38.68000030517578 38.68000030517578 118090 0.0 0.0 False
724 2024-10-25 00:00:00+02:00 38.630001068115234 38.849998474121094 38.04999923706055 38.560001373291016 38.560001373291016 164039 0.0 0.0 False
725 2024-10-28 00:00:00+01:00 38.560001373291016 38.81999969482422 37.84000015258789 38.25 38.25 156263 0.0 0.0 False
726 2024-10-29 00:00:00+01:00 38.25 38.88999938964844 38.029998779296875 38.31999969482422 38.31999969482422 213012 0.0 0.0 False
727 2024-10-30 00:00:00+01:00 37.75 38.04999923706055 37.029998779296875 37.029998779296875 37.029998779296875 397551 0.0 0.0 False
728 2024-10-31 00:00:00+01:00 37.0 37.310001373291016 36.34000015258789 37.060001373291016 37.060001373291016 281687 0.0 0.0 False
729 2024-11-01 00:00:00+01:00 36.84000015258789 37.43000030517578 36.84000015258789 37.2400016784668 37.2400016784668 81048 0.0 0.0 False
730 2024-11-04 00:00:00+01:00 37.060001373291016 37.79999923706055 37.040000915527344 37.560001373291016 37.560001373291016 82632 0.0 0.0 False
731 2024-11-05 00:00:00+01:00 37.560001373291016 37.95000076293945 37.369998931884766 37.95000076293945 37.95000076293945 199518 0.0 0.0 False
732 2024-11-06 00:00:00+01:00 38.20000076293945 38.900001525878906 34.91999816894531 34.91999816894531 34.91999816894531 469899 0.0 0.0 False
733 2024-11-07 00:00:00+01:00 34.08000183105469 34.900001525878906 33.72999954223633 33.72999954223633 33.72999954223633 380050 0.0 0.0 False
734 2024-11-08 00:00:00+01:00 33.61000061035156 33.91999816894531 33.29999923706055 33.54999923706055 33.54999923706055 389420 0.0 0.0 False
735 2024-11-11 00:00:00+01:00 33.810001373291016 34.31999969482422 33.130001068115234 33.130001068115234 33.130001068115234 233145 0.0 0.0 False
736 2024-11-12 00:00:00+01:00 32.79999923706055 33.029998779296875 31.670000076293945 31.709999084472656 31.709999084472656 284709 0.0 0.0 False
737 2024-11-13 00:00:00+01:00 31.780000686645508 32.11000061035156 31.360000610351562 31.510000228881836 31.510000228881836 208626 0.0 0.0 False
738 2024-11-14 00:00:00+01:00 31.600000381469727 31.8799991607666 31.34000015258789 31.40999984741211 31.40999984741211 193374 0.0 0.0 False
739 2024-11-15 00:00:00+01:00 31.309999465942383 32.5 31.309999465942383 32.22999954223633 32.22999954223633 130866 0.0 0.0 False
740 2024-11-18 00:00:00+01:00 32.20000076293945 32.72999954223633 32.08000183105469 32.130001068115234 32.130001068115234 94641 0.0 0.0 False
741 2024-11-19 00:00:00+01:00 32.099998474121094 32.650001525878906 31.06999969482422 31.920000076293945 31.920000076293945 159142 0.0 0.0 False

View File

@@ -1,741 +0,0 @@
Datetime,Open,High,Low,Close,Adj Close,Volume,Dividends,Stock Splits
2022-01-03 00:00:00+01:00,20.400468826293945,20.80828094482422,20.400468826293945,20.629241943359375,11.042256355285645,559352,0.0,0.0
2022-01-04 00:00:00+01:00,20.649133682250977,20.897798538208008,20.5098819732666,20.848066329956055,11.15938663482666,930594,0.0,0.0
2022-01-05 00:00:00+01:00,20.897798538208008,21.126571655273438,20.838119506835938,21.126571655273438,11.308463096618652,572100,0.0,0.0
2022-01-06 00:00:00+01:00,20.887853622436523,21.126571655273438,20.599401473999023,20.967424392700195,11.22327709197998,532086,0.0,0.0
2022-01-07 00:00:00+01:00,21.007211685180664,21.186250686645508,20.867958068847656,21.126571655273438,11.308463096618652,698666,0.0,0.0
2022-01-10 00:00:00+01:00,21.186250686645508,21.245929718017578,20.997264862060547,21.05694580078125,11.271194458007812,972438,0.0,0.0
2022-01-11 00:00:00+01:00,21.226036071777344,21.514488220214844,21.226036071777344,21.37523651123047,11.441566467285156,894602,0.0,0.0
2022-01-12 00:00:00+01:00,21.564220428466797,21.604007720947266,21.0469970703125,21.216089248657227,11.356379508972168,838352,0.0,0.0
2022-01-13 00:00:00+01:00,20.897798538208008,21.14646339416504,20.897798538208008,21.14646339416504,12.180268287658691,514241,1.5,0.0
2022-01-14 00:00:00+01:00,20.897798538208008,21.066890716552734,20.80828094482422,21.0271053314209,12.111517906188965,708327,0.0,0.0
2022-01-17 00:00:00+01:00,21.106678009033203,21.633846282958984,21.0469970703125,21.554275512695312,12.415164947509766,947841,0.0,0.0
2022-01-18 00:00:00+01:00,21.454809188842773,21.484647750854492,21.156410217285156,21.405075073242188,12.32922649383545,966355,0.0,0.0
2022-01-19 00:00:00+01:00,21.37523651123047,21.822832107543945,21.295663833618164,21.78304672241211,12.5469388961792,1597827,0.0,0.0
2022-01-20 00:00:00+01:00,21.802940368652344,22.111284255981445,21.544328689575195,21.981977462768555,12.661521911621094,1563328,0.0,0.0
2022-01-21 00:00:00+01:00,21.74325942993164,21.94219207763672,21.415021896362305,21.65374183654785,12.472458839416504,1539782,0.0,0.0
2022-01-24 00:00:00+01:00,21.484647750854492,21.58411407470703,20.887853622436523,20.997264862060547,12.094330787658691,1334240,0.0,0.0
2022-01-25 00:00:00+01:00,21.156410217285156,21.186250686645508,20.877906799316406,20.917692184448242,12.048497200012207,1198631,0.0,0.0
2022-01-26 00:00:00+01:00,20.997264862060547,21.72336769104004,20.997264862060547,21.415021896362305,12.334957122802734,913216,0.0,0.0
2022-01-27 00:00:00+01:00,21.11662483215332,21.862619400024414,21.0469970703125,21.6437931060791,12.466727256774902,765306,0.0,0.0
2022-01-28 00:00:00+01:00,21.554275512695312,21.65374183654785,21.126571655273438,21.484647750854492,12.375060081481934,1109097,0.0,0.0
2022-01-31 00:00:00+01:00,21.6239013671875,21.65374183654785,21.066890716552734,21.186250686645508,12.20318603515625,999557,0.0,0.0
2022-02-01 00:00:00+01:00,21.27577018737793,21.405075073242188,21.05694580078125,21.11662483215332,12.163081169128418,732572,0.0,0.0
2022-02-02 00:00:00+01:00,21.52443504333496,22.021764755249023,21.454809188842773,21.753206253051758,12.52974796295166,1195479,0.0,0.0
2022-02-03 00:00:00+01:00,21.773099899291992,21.892459869384766,21.6239013671875,21.773099899291992,12.541208267211914,906159,0.0,0.0
2022-02-04 00:00:00+01:00,21.87256622314453,21.87256622314453,21.345396041870117,21.424968719482422,12.340685844421387,763864,0.0,0.0
2022-02-07 00:00:00+01:00,21.574167251586914,21.574167251586914,21.265823364257812,21.415021896362305,12.334957122802734,382854,0.0,0.0
2022-02-08 00:00:00+01:00,21.36528968811035,21.78304672241211,21.36528968811035,21.713420867919922,12.506832122802734,1006721,0.0,0.0
2022-02-09 00:00:00+01:00,21.812885284423828,21.991924285888672,21.733312606811523,21.981977462768555,12.661521911621094,893571,0.0,0.0
2022-02-10 00:00:00+01:00,22.021764755249023,22.210750579833984,21.962085723876953,22.041658401489258,12.69589614868164,851844,0.0,0.0
2022-02-11 00:00:00+01:00,21.882511138916016,22.06155014038086,21.713420867919922,21.882511138916016,12.604228019714355,893486,0.0,0.0
2022-02-14 00:00:00+01:00,21.514488220214844,21.514488220214844,20.818225860595703,21.14646339416504,12.180268287658691,1234728,0.0,0.0
2022-02-15 00:00:00+01:00,21.007211685180664,21.713420867919922,20.967424392700195,21.673633575439453,12.483914375305176,687285,0.0,0.0
2022-02-16 00:00:00+01:00,21.713420867919922,22.06155014038086,21.713420867919922,22.06155014038086,12.707353591918945,798177,0.0,0.0
2022-02-17 00:00:00+01:00,22.021764755249023,22.081443786621094,21.763153076171875,21.832778930664062,12.575582504272461,684218,0.0,0.0
2022-02-18 00:00:00+01:00,21.832778930664062,21.892459869384766,21.385181427001953,21.544328689575195,12.409436225891113,737030,0.0,0.0
2022-02-21 00:00:00+01:00,21.673633575439453,21.68358039855957,20.92763900756836,21.126571655273438,12.168810844421387,677844,0.0,0.0
2022-02-22 00:00:00+01:00,20.529775619506836,21.196197509765625,20.32089614868164,20.95747947692871,12.07141399383545,1273455,0.0,0.0
2022-02-23 00:00:00+01:00,21.415021896362305,21.862619400024414,20.987319946289062,21.216089248657227,12.220373153686523,1732461,0.0,0.0
2022-02-24 00:00:00+01:00,20.48004150390625,20.877906799316406,19.51124382019043,19.70221710205078,11.348389625549316,2560976,0.0,0.0
2022-02-25 00:00:00+01:00,19.903139114379883,20.291057586669922,19.475435256958008,20.201536178588867,11.635994911193848,1423396,0.0,0.0
2022-02-28 00:00:00+01:00,19.773834228515625,19.903139114379883,19.308332443237305,19.837491989135742,11.42630672454834,1569727,0.0,0.0
2022-03-01 00:00:00+01:00,19.77781105041504,19.95287322998047,18.73938751220703,18.73938751220703,10.793803215026855,1308216,0.0,0.0
2022-03-02 00:00:00+01:00,18.536476135253906,19.12929344177246,18.17840003967285,18.966169357299805,10.924428939819336,1739856,0.0,0.0
2022-03-03 00:00:00+01:00,19.001977920532227,19.077571868896484,18.297758102416992,18.361417770385742,10.576093673706055,834767,0.0,0.0
2022-03-04 00:00:00+01:00,18.13463592529297,18.14259147644043,16.893299102783203,17.05642318725586,9.824422836303711,2249030,0.0,0.0
2022-03-07 00:00:00+01:00,16.384033203125,17.10814666748047,15.516690254211426,16.380054473876953,9.43483829498291,2250820,0.0,0.0
2022-03-08 00:00:00+01:00,16.21295166015625,16.941043853759766,16.16520881652832,16.805768966674805,9.680047988891602,1388112,0.0,0.0
2022-03-09 00:00:00+01:00,17.207611083984375,18.22614288330078,17.17976188659668,18.22614288330078,10.498176574707031,1580329,0.0,0.0
2022-03-10 00:00:00+01:00,18.38926887512207,18.429054260253906,17.44632911682129,17.696983337402344,10.19338321685791,1037018,0.0,0.0
2022-03-11 00:00:00+01:00,17.88397979736328,18.369373321533203,17.585582733154297,17.943660736083984,10.335468292236328,985960,0.0,0.0
2022-03-14 00:00:00+01:00,18.285823822021484,18.747344970703125,18.250015258789062,18.52056312561035,10.66776180267334,963701,0.0,0.0
2022-03-15 00:00:00+01:00,19.79372787475586,19.893192291259766,17.99538230895996,18.15452766418457,10.456927299499512,2685295,0.0,0.0
2022-03-16 00:00:00+01:00,18.78713035583496,18.9741268157959,18.369373321533203,18.76723861694336,10.809845924377441,1321768,0.0,0.0
2022-03-17 00:00:00+01:00,18.89853286743164,18.966169357299805,18.433032989501953,18.854768753051758,10.860261917114258,1124314,0.0,0.0
2022-03-18 00:00:00+01:00,18.894554138183594,18.98606300354004,18.47281837463379,18.7990665435791,10.828177452087402,1809744,0.0,0.0
2022-03-21 00:00:00+01:00,18.7990665435791,19.15714454650879,18.763259887695312,18.91046905517578,10.892345428466797,703039,0.0,0.0
2022-03-22 00:00:00+01:00,18.966169357299805,19.184995651245117,18.85079002380371,19.05767822265625,10.977137565612793,715772,0.0,0.0
2022-03-23 00:00:00+01:00,19.121337890625,19.15714454650879,18.671751022338867,18.671751022338867,10.754844665527344,1351532,0.0,0.0
2022-03-24 00:00:00+01:00,18.659814834594727,18.731430053710938,18.234100341796875,18.30173683166504,10.541718482971191,1286093,0.0,0.0
2022-03-25 00:00:00+01:00,18.405181884765625,18.47281837463379,18.170442581176758,18.285823822021484,10.532552719116211,726494,0.0,0.0
2022-03-28 00:00:00+02:00,18.393245697021484,18.759281158447266,18.329587936401367,18.433032989501953,10.61734390258789,837768,0.0,0.0
2022-03-29 00:00:00+02:00,18.72745132446289,19.256610870361328,18.687665939331055,19.16908073425293,11.041304588317871,917861,0.0,0.0
2022-03-30 00:00:00+02:00,19.15714454650879,19.15714454650879,18.46088218688965,18.50862693786621,10.66088581085205,823527,0.0,0.0
2022-03-31 00:00:00+02:00,18.50862693786621,18.822938919067383,17.768600463867188,17.796449661254883,10.250675201416016,1780930,0.0,0.0
2022-04-01 00:00:00+02:00,17.895915985107422,18.102806091308594,17.880001068115234,17.880001068115234,10.29880142211914,751206,0.0,0.0
2022-04-04 00:00:00+02:00,17.92376708984375,17.991403579711914,17.517946243286133,17.79247283935547,10.248384475708008,836607,0.0,0.0
2022-04-05 00:00:00+02:00,17.77655792236328,17.975488662719727,17.382671356201172,17.617412567138672,10.147550582885742,842142,0.0,0.0
2022-04-06 00:00:00+02:00,17.577625274658203,17.625368118286133,16.87340545654297,17.016637802124023,9.801506996154785,1380130,0.0,0.0
2022-04-07 00:00:00+02:00,17.10814666748047,17.382671356201172,16.865449905395508,16.89727783203125,9.732755661010742,857449,0.0,0.0
2022-04-08 00:00:00+02:00,17.191696166992188,17.382671356201172,16.99674415588379,17.191696166992188,9.90234088897705,913588,0.0,0.0
2022-04-11 00:00:00+02:00,17.219547271728516,17.549774169921875,17.036529541015625,17.203632354736328,9.909215927124023,1067867,0.0,0.0
2022-04-12 00:00:00+02:00,17.00868034362793,17.565689086914062,16.833620071411133,17.565689086914062,10.117757797241211,1285128,0.0,0.0
2022-04-13 00:00:00+02:00,17.438373565673828,17.525903701782227,17.267290115356445,17.506010055541992,10.083382606506348,697328,0.0,0.0
2022-04-14 00:00:00+02:00,17.58160400390625,17.657197952270508,17.406543731689453,17.513967514038086,10.087966918945312,587256,0.0,0.0
2022-04-19 00:00:00+02:00,17.54181671142578,17.69300651550293,17.418479919433594,17.517946243286133,10.090258598327637,962344,0.0,0.0
2022-04-20 00:00:00+02:00,17.633325576782227,17.967531204223633,17.609453201293945,17.768600463867188,10.234634399414062,675733,0.0,0.0
2022-04-21 00:00:00+02:00,17.860109329223633,18.38926887512207,17.860109329223633,18.28980255126953,10.534844398498535,946132,0.0,0.0
2022-04-22 00:00:00+02:00,18.063018798828125,18.25399398803711,17.87204360961914,18.031190872192383,10.385885238647461,876938,0.0,0.0
2022-04-25 00:00:00+02:00,17.71687889099121,17.891937255859375,17.549774169921875,17.629348754882812,10.154425621032715,857539,0.0,0.0
2022-04-26 00:00:00+02:00,17.868066787719727,17.868066787719727,17.342885971069336,17.342885971069336,9.989424705505371,920938,0.0,0.0
2022-04-27 00:00:00+02:00,17.42245864868164,17.513967514038086,16.865449905395508,17.430416107177734,10.039841651916504,995898,0.0,0.0
2022-04-28 00:00:00+02:00,17.633325576782227,17.99538230895996,17.601497650146484,17.736770629882812,10.216300964355469,1172803,0.0,0.0
2022-04-29 00:00:00+02:00,17.848173141479492,18.10678482055664,17.804407119750977,18.015274047851562,10.376717567443848,988594,0.0,0.0
2022-05-02 00:00:00+02:00,17.88397979736328,18.05506134033203,16.90921401977539,17.74074935913086,10.218591690063477,1031151,0.0,0.0
2022-05-03 00:00:00+02:00,17.848173141479492,17.93570327758789,17.506010055541992,17.808385848999023,10.257550239562988,1121197,0.0,0.0
2022-05-04 00:00:00+02:00,18.747344970703125,19.10542106628418,18.532499313354492,18.846811294555664,10.855679512023926,2131889,0.0,0.0
2022-05-05 00:00:00+02:00,19.18101692199707,19.37994956970215,18.138612747192383,18.17840003967285,10.470675468444824,1420586,0.0,0.0
2022-05-06 00:00:00+02:00,18.110763549804688,18.560348510742188,17.97150993347168,18.369373321533203,10.580676078796387,967240,0.0,0.0
2022-05-09 00:00:00+02:00,18.190336227416992,18.305715560913086,17.844194412231445,17.951616287231445,10.340049743652344,1063615,0.0,0.0
2022-05-10 00:00:00+02:00,18.063018798828125,18.85079002380371,18.04710578918457,18.341524124145508,10.56463623046875,1106715,0.0,0.0
2022-05-11 00:00:00+02:00,18.46088218688965,18.659814834594727,18.27786636352539,18.47281837463379,10.640260696411133,916544,0.0,0.0
2022-05-12 00:00:00+02:00,18.04312515258789,18.261951446533203,17.784513473510742,18.222164154052734,10.495885848999023,899448,0.0,0.0
2022-05-13 00:00:00+02:00,18.405181884765625,18.55636978149414,18.194313049316406,18.38528823852539,10.58984375,614260,0.0,0.0
2022-05-16 00:00:00+02:00,18.381309509277344,18.612070083618164,18.24205780029297,18.417118072509766,10.60817813873291,734648,0.0,0.0
2022-05-17 00:00:00+02:00,18.21420669555664,18.747344970703125,18.21420669555664,18.512605667114258,12.222789764404297,625555,2.35,0.0
2022-05-18 00:00:00+02:00,18.54443359375,18.592178344726562,18.357437133789062,18.357437133789062,12.120341300964355,676447,0.0,0.0
2022-05-19 00:00:00+02:00,17.677091598510742,17.903873443603516,17.474180221557617,17.513967514038086,11.563446998596191,1239650,0.0,0.0
2022-05-20 00:00:00+02:00,17.856130599975586,18.063018798828125,17.60547637939453,17.60547637939453,11.623865127563477,792884,0.0,0.0
2022-05-23 00:00:00+02:00,17.85215187072754,17.987424850463867,17.633325576782227,17.987424850463867,11.876043319702148,661658,0.0,0.0
2022-05-24 00:00:00+02:00,17.79247283935547,17.83623695373535,17.414501190185547,17.418479919433594,11.500401496887207,729103,0.0,0.0
2022-05-25 00:00:00+02:00,17.617412567138672,17.89989471435547,17.394607543945312,17.8402156829834,11.778849601745605,645185,0.0,0.0
2022-05-26 00:00:00+02:00,17.79247283935547,18.05506134033203,17.720855712890625,18.03516960144043,11.90756607055664,523872,0.0,0.0
2022-05-27 00:00:00+02:00,18.031190872192383,18.198293685913086,17.94763946533203,18.198293685913086,12.015267372131348,578243,0.0,0.0
2022-05-30 00:00:00+02:00,18.27786636352539,18.433032989501953,18.10678482055664,18.218185424804688,12.028400421142578,568621,0.0,0.0
2022-05-31 00:00:00+02:00,18.1823787689209,18.218185424804688,17.97150993347168,18.122699737548828,11.965357780456543,1795488,0.0,0.0
2022-06-01 00:00:00+02:00,18.293779373168945,18.44496726989746,18.17840003967285,18.28980255126953,12.075685501098633,494450,0.0,0.0
2022-06-02 00:00:00+02:00,18.3494815826416,18.532499313354492,18.3494815826416,18.4569034576416,12.186012268066406,412331,0.0,0.0
2022-06-03 00:00:00+02:00,18.592178344726562,18.639921188354492,18.433032989501953,18.564327239990234,12.256937980651855,487960,0.0,0.0
2022-06-06 00:00:00+02:00,18.72745132446289,18.830896377563477,18.56830596923828,18.592178344726562,12.2753267288208,605186,0.0,0.0
2022-06-07 00:00:00+02:00,18.500669479370117,18.540456771850586,18.32560920715332,18.468839645385742,12.193892478942871,606368,0.0,0.0
2022-06-08 00:00:00+02:00,18.512605667114258,18.616050720214844,18.44496726989746,18.564327239990234,12.256937980651855,631100,0.0,0.0
2022-06-09 00:00:00+02:00,18.452926635742188,18.82691764831543,18.401203155517578,18.41313934326172,12.15711784362793,1105870,0.0,0.0
2022-06-10 00:00:00+02:00,18.273887634277344,18.31367301940918,17.685047149658203,17.685047149658203,11.676401138305664,933108,0.0,0.0
2022-06-13 00:00:00+02:00,17.506010055541992,17.768600463867188,17.223526000976562,17.521923065185547,11.56869888305664,1102884,0.0,0.0
2022-06-14 00:00:00+02:00,17.71289825439453,17.756664276123047,17.255355834960938,17.255355834960938,11.3927001953125,815872,0.0,0.0
2022-06-15 00:00:00+02:00,17.486116409301758,18.015274047851562,17.42245864868164,17.621389389038086,11.634371757507324,987976,0.0,0.0
2022-06-16 00:00:00+02:00,17.533859252929688,17.577625274658203,16.328332901000977,16.328332901000977,10.78064250946045,1421657,0.0,0.0
2022-06-17 00:00:00+02:00,16.391990661621094,16.694366455078125,16.06574249267578,16.248760223388672,10.728104591369629,3094063,0.0,0.0
2022-06-20 00:00:00+02:00,16.40790557861328,16.427799224853516,16.12542152404785,16.356182098388672,10.799028396606445,496948,0.0,0.0
2022-06-21 00:00:00+02:00,16.491456985473633,16.821683883666992,16.427799224853516,16.48349952697754,10.883090019226074,563534,0.0,0.0
2022-06-22 00:00:00+02:00,16.208974838256836,16.208974838256836,15.759387016296387,15.819067001342773,10.444403648376465,1050007,0.0,0.0
2022-06-23 00:00:00+02:00,15.735515594482422,15.799174308776855,15.285928726196289,15.30980110168457,10.108163833618164,1064414,0.0,0.0
2022-06-24 00:00:00+02:00,15.413246154785156,15.898639678955078,15.234207153320312,15.86681079864502,10.475926399230957,1215616,0.0,0.0
2022-06-27 00:00:00+02:00,16.01799964904785,16.328332901000977,15.958318710327148,16.117464065551758,10.64141845703125,1182615,0.0,0.0
2022-06-28 00:00:00+02:00,16.248760223388672,16.519306182861328,16.045848846435547,16.181123733520508,10.683448791503906,1274280,0.0,0.0
2022-06-29 00:00:00+02:00,16.014020919799805,16.06574249267578,15.468947410583496,15.528626441955566,10.252642631530762,1058236,0.0,0.0
2022-06-30 00:00:00+02:00,15.234207153320312,15.381417274475098,14.800535202026367,15.381417274475098,10.155447959899902,1934410,0.0,0.0
2022-07-01 00:00:00+02:00,15.277972221374512,15.679815292358398,15.230228424072266,15.377437591552734,10.15282154083252,909034,0.0,0.0
2022-07-04 00:00:00+02:00,15.564434051513672,15.791215896606445,15.488840103149414,15.687771797180176,10.35771656036377,798569,0.0,0.0
2022-07-05 00:00:00+02:00,15.763365745544434,15.91455364227295,14.884086608886719,14.884086608886719,9.8270902633667,1966763,0.0,0.0
2022-07-06 00:00:00+02:00,15.079039573669434,15.202378273010254,14.907958984375,15.110869407653809,9.976822853088379,938909,0.0,0.0
2022-07-07 00:00:00+02:00,15.301843643188477,15.898639678955078,15.23818588256836,15.807130813598633,10.436522483825684,1170179,0.0,0.0
2022-07-08 00:00:00+02:00,15.69572925567627,16.39596939086914,15.532605171203613,16.049827575683594,10.596760749816895,1372047,0.0,0.0
2022-07-11 00:00:00+02:00,15.608199119567871,15.69572925567627,15.285928726196289,15.488840103149414,10.226373672485352,877119,0.0,0.0
2022-07-12 00:00:00+02:00,15.381417274475098,15.556476593017578,14.983552932739258,15.520668983459473,10.24738883972168,1161955,0.0,0.0
2022-07-13 00:00:00+02:00,15.425182342529297,15.647985458374023,15.234207153320312,15.357544898986816,10.139686584472656,1081802,0.0,0.0
2022-07-14 00:00:00+02:00,15.333672523498535,15.357544898986816,14.728919982910156,14.888065338134766,9.829717636108398,896311,0.0,0.0
2022-07-15 00:00:00+02:00,14.959680557250977,15.548519134521484,14.923872947692871,15.433138847351074,10.189598083496094,1160019,0.0,0.0
2022-07-18 00:00:00+02:00,15.970254898071289,16.316396713256836,15.894660949707031,16.133378982543945,10.651925086975098,1770123,0.0,0.0
2022-07-19 00:00:00+02:00,16.010042190551758,16.698345184326172,15.755409240722656,16.48349952697754,10.883090019226074,1574206,0.0,0.0
2022-07-20 00:00:00+02:00,16.551136016845703,16.67845344543457,16.145315170288086,16.439735412597656,10.854194641113281,876721,0.0,0.0
2022-07-21 00:00:00+02:00,16.30048179626465,16.646623611450195,16.16520881652832,16.364139556884766,10.804283142089844,1014598,0.0,0.0
2022-07-22 00:00:00+02:00,16.244781494140625,16.463605880737305,15.98219108581543,16.037891387939453,10.58888053894043,1100753,0.0,0.0
2022-07-25 00:00:00+02:00,16.014020919799805,16.39596939086914,15.874768257141113,16.11348533630371,10.638790130615234,826151,0.0,0.0
2022-07-26 00:00:00+02:00,16.11348533630371,16.133378982543945,15.600241661071777,15.715621948242188,10.376105308532715,1071673,0.0,0.0
2022-07-27 00:00:00+02:00,15.894660949707031,15.970254898071289,15.703685760498047,15.950362205505371,10.531089782714844,1076946,0.0,0.0
2022-07-28 00:00:00+02:00,16.368118286132812,16.686410903930664,16.232845306396484,16.551136016845703,10.927746772766113,1713701,0.0,0.0
2022-07-29 00:00:00+02:00,16.634687423706055,17.084274291992188,16.551136016845703,17.00868034362793,11.229835510253906,1096515,0.0,0.0
2022-08-01 00:00:00+02:00,17.088253021240234,17.303098678588867,16.83759880065918,16.861469268798828,11.132641792297363,698449,0.0,0.0
2022-08-02 00:00:00+02:00,16.833620071411133,16.992765426635742,16.674474716186523,16.937063217163086,11.182550430297852,683927,0.0,0.0
2022-08-03 00:00:00+02:00,16.92115020751953,17.175783157348633,16.83759880065918,17.12008285522461,11.303388595581055,520776,0.0,0.0
2022-08-04 00:00:00+02:00,17.132017135620117,17.334928512573242,17.004701614379883,17.064380645751953,11.266611099243164,770841,0.0,0.0
2022-08-05 00:00:00+02:00,17.100189208984375,17.283206939697266,16.821683883666992,17.104167938232422,11.292880058288574,676884,0.0,0.0
2022-08-08 00:00:00+02:00,17.283206939697266,17.47020149230957,17.076316833496094,17.319013595581055,11.434730529785156,640299,0.0,0.0
2022-08-09 00:00:00+02:00,17.247398376464844,17.342885971069336,16.9808292388916,17.112125396728516,11.298134803771973,513653,0.0,0.0
2022-08-10 00:00:00+02:00,17.084274291992188,17.43439483642578,16.90921401977539,17.394607543945312,11.484639167785645,565334,0.0,0.0
2022-08-11 00:00:00+02:00,17.45826530456543,17.474180221557617,17.15191078186035,17.267290115356445,11.400580406188965,740132,0.0,0.0
2022-08-12 00:00:00+02:00,17.23944091796875,17.486116409301758,17.231483459472656,17.342885971069336,11.450491905212402,966868,0.0,0.0
2022-08-15 00:00:00+02:00,17.346864700317383,17.474180221557617,17.064380645751953,17.243419647216797,11.384819984436035,404314,0.0,0.0
2022-08-16 00:00:00+02:00,17.342885971069336,17.426437377929688,17.175783157348633,17.36277961730957,11.46362590789795,615567,0.0,0.0
2022-08-17 00:00:00+02:00,17.44632911682129,17.525903701782227,16.742111206054688,16.76598358154297,11.069597244262695,1020374,0.0,0.0
2022-08-18 00:00:00+02:00,16.821683883666992,17.25137710571289,16.769962310791016,16.853513717651367,11.127388000488281,738694,0.0,0.0
2022-08-19 00:00:00+02:00,16.69038963317871,16.901256561279297,16.606836318969727,16.606836318969727,10.964521408081055,628184,0.0,0.0
2022-08-22 00:00:00+02:00,16.479520797729492,16.527265548706055,15.92251205444336,15.978212356567383,10.549478530883789,866276,0.0,0.0
2022-08-23 00:00:00+02:00,15.942404747009277,16.292524337768555,15.918533325195312,16.292524337768555,10.756999015808105,860233,0.0,0.0
2022-08-24 00:00:00+02:00,16.268653869628906,16.308439254760742,15.950362205505371,16.240802764892578,10.72284984588623,704240,0.0,0.0
2022-08-25 00:00:00+02:00,16.388011932373047,16.523286819458008,16.216930389404297,16.292524337768555,10.756999015808105,479490,0.0,0.0
2022-08-26 00:00:00+02:00,16.439735412597656,16.598880767822266,15.958318710327148,15.990147590637207,10.557356834411621,546820,0.0,0.0
2022-08-29 00:00:00+02:00,15.91455364227295,16.44769287109375,15.743473052978516,16.43177604675293,10.84893798828125,771344,0.0,0.0
2022-08-30 00:00:00+02:00,16.54317855834961,16.67845344543457,16.15327262878418,16.248760223388672,10.728104591369629,741509,0.0,0.0
2022-08-31 00:00:00+02:00,16.356182098388672,16.44371223449707,16.0418701171875,16.0418701171875,10.591507911682129,956161,0.0,0.0
2022-09-01 00:00:00+02:00,15.978212356567383,15.978212356567383,15.691749572753906,15.755409240722656,10.402374267578125,998562,0.0,0.0
2022-09-02 00:00:00+02:00,16.161230087280273,16.519306182861328,15.962298393249512,16.391990661621094,10.822671890258789,997552,0.0,0.0
2022-09-05 00:00:00+02:00,15.874768257141113,15.91455364227295,15.520668983459473,15.723580360412598,10.381360054016113,1129909,0.0,0.0
2022-09-06 00:00:00+02:00,15.763365745544434,16.09359359741211,15.683793067932129,15.86681079864502,10.475926399230957,638791,0.0,0.0
2022-09-07 00:00:00+02:00,15.616155624389648,16.264673233032227,15.58034896850586,16.21295166015625,10.704462051391602,819365,0.0,0.0
2022-09-08 00:00:00+02:00,16.292524337768555,16.364139556884766,15.954340934753418,16.14133644104004,10.65717887878418,690130,0.0,0.0
2022-09-09 00:00:00+02:00,16.19305992126465,16.575008392333984,16.19305992126465,16.427799224853516,10.8463134765625,623223,0.0,0.0
2022-09-12 00:00:00+02:00,16.614795684814453,17.076316833496094,16.571029663085938,16.98480796813965,11.21407413482666,880959,0.0,0.0
2022-09-13 00:00:00+02:00,17.02061653137207,17.549774169921875,16.698345184326172,16.722217559814453,11.04069995880127,1949078,0.0,0.0
2022-09-14 00:00:00+02:00,16.55511474609375,16.65458106994629,16.06574249267578,16.316396713256836,10.772761344909668,1147799,0.0,0.0
2022-09-15 00:00:00+02:00,16.316396713256836,16.50737190246582,16.01799964904785,16.12542152404785,10.646671295166016,704698,0.0,0.0
2022-09-16 00:00:00+02:00,15.92648983001709,16.05380630493164,15.647985458374023,15.954340934753418,10.533716201782227,1934284,0.0,0.0
2022-09-19 00:00:00+02:00,15.890682220458984,16.419841766357422,15.791215896606445,16.368118286132812,10.806910514831543,961766,0.0,0.0
2022-09-20 00:00:00+02:00,16.44769287109375,16.55511474609375,15.930468559265137,15.99412727355957,10.559986114501953,712846,0.0,0.0
2022-09-21 00:00:00+02:00,15.894660949707031,16.137357711791992,15.815088272094727,16.1294002532959,10.649297714233398,557165,0.0,0.0
2022-09-22 00:00:00+02:00,15.727558135986328,16.197038650512695,15.667879104614258,16.069721221923828,10.609895706176758,892616,0.0,0.0
2022-09-23 00:00:00+02:00,16.0418701171875,16.161230087280273,15.64002799987793,15.854874610900879,10.468045234680176,1425407,0.0,0.0
2022-09-26 00:00:00+02:00,15.675835609436035,16.037891387939453,15.604220390319824,15.604220390319824,10.302553176879883,823367,0.0,0.0
2022-09-27 00:00:00+02:00,15.6360502243042,15.886704444885254,15.492818832397461,15.687771797180176,10.35771656036377,1239006,0.0,0.0
2022-09-28 00:00:00+02:00,15.433138847351074,16.109508514404297,15.170549392700195,15.990147590637207,10.557356834411621,1753368,0.0,0.0
2022-09-29 00:00:00+02:00,15.986169815063477,15.986169815063477,15.40926742553711,15.516690254211426,10.24476146697998,1373640,0.0,0.0
2022-09-30 00:00:00+02:00,15.6360502243042,15.894660949707031,15.528626441955566,15.842939376831055,10.460165023803711,1225082,0.0,0.0
2022-10-03 00:00:00+02:00,15.671856880187988,16.419841766357422,15.628091812133789,16.34822654724121,10.793776512145996,968647,0.0,0.0
2022-10-04 00:00:00+02:00,16.618772506713867,17.267290115356445,16.618772506713867,17.267290115356445,11.400580406188965,1425231,0.0,0.0
2022-10-05 00:00:00+02:00,17.100189208984375,17.35084342956543,17.016637802124023,17.08029556274414,11.277118682861328,1216119,0.0,0.0
2022-10-06 00:00:00+02:00,17.203632354736328,17.32697105407715,16.88534164428711,16.976850509643555,11.208819389343262,825166,0.0,0.0
2022-10-07 00:00:00+02:00,16.976850509643555,17.12803840637207,16.65458106994629,16.730175018310547,11.045954704284668,839674,0.0,0.0
2022-10-10 00:00:00+02:00,16.610815048217773,17.56966781616211,16.586944580078125,17.402565002441406,11.489893913269043,1029281,0.0,0.0
2022-10-11 00:00:00+02:00,17.088253021240234,17.23944091796875,16.284568786621094,16.463605880737305,10.869954109191895,2020228,0.0,0.0
2022-10-12 00:00:00+02:00,16.499414443969727,16.929107666015625,16.320375442504883,16.789854049682617,11.085356712341309,1510536,0.0,0.0
2022-10-13 00:00:00+02:00,16.694366455078125,17.17976188659668,16.384033203125,17.17976188659668,11.342791557312012,1551570,0.0,0.0
2022-10-14 00:00:00+02:00,17.525903701782227,17.69300651550293,16.841577529907227,17.012659072875977,11.232461929321289,1388605,0.0,0.0
2022-10-17 00:00:00+02:00,17.012659072875977,17.49407386779785,16.913192749023438,17.287185668945312,11.413715362548828,857670,0.0,0.0
2022-10-18 00:00:00+02:00,17.43439483642578,17.951616287231445,17.39858627319336,17.617412567138672,11.631746292114258,1118895,0.0,0.0
2022-10-19 00:00:00+02:00,17.732791900634766,17.820322036743164,17.565689086914062,17.58160400390625,11.60810375213623,659672,0.0,0.0
2022-10-20 00:00:00+02:00,17.4980525970459,17.796449661254883,17.414501190185547,17.677091598510742,11.671148300170898,869126,0.0,0.0
2022-10-21 00:00:00+02:00,17.506010055541992,17.85215187072754,17.346864700317383,17.85215187072754,11.786728858947754,781749,0.0,0.0
2022-10-24 00:00:00+02:00,18.699600219726562,18.834875106811523,17.708919525146484,18.345502853393555,12.11246109008789,1695268,0.0,0.0
2022-10-25 00:00:00+02:00,18.440990447998047,18.627986907958984,17.931724548339844,18.202272415161133,12.017894744873047,1131150,0.0,0.0
2022-10-26 00:00:00+02:00,18.22614288330078,18.43701171875,17.975488662719727,18.329587936401367,12.10195255279541,1222905,0.0,0.0
2022-10-27 00:00:00+02:00,18.341524124145508,18.600135803222656,18.08291244506836,18.293779373168945,12.078311920166016,778065,0.0,0.0
2022-10-28 00:00:00+02:00,18.078933715820312,18.32560920715332,17.975488662719727,18.269908905029297,12.06255054473877,1099727,0.0,0.0
2022-10-31 00:00:00+01:00,18.369373321533203,18.532499313354492,18.14259147644043,18.150548934936523,11.983743667602539,1018936,0.0,0.0
2022-11-01 00:00:00+01:00,18.293779373168945,18.492712020874023,18.063018798828125,18.15452766418457,11.986371040344238,1016061,0.0,0.0
2022-11-02 00:00:00+01:00,18.186357498168945,18.194313049316406,17.88397979736328,18.063018798828125,11.925954818725586,1299861,0.0,0.0
2022-11-03 00:00:00+01:00,17.69300651550293,18.015274047851562,17.406543731689453,17.98344612121582,11.873414993286133,1179101,0.0,0.0
2022-11-04 00:00:00+01:00,18.202272415161133,18.894554138183594,18.15452766418457,18.791109085083008,12.406668663024902,1369272,0.0,0.0
2022-11-07 00:00:00+01:00,18.759281158447266,19.391883850097656,18.659814834594727,19.336183547973633,12.766550064086914,1259541,0.0,0.0
2022-11-08 00:00:00+01:00,19.332204818725586,19.566944122314453,19.188974380493164,19.41177749633789,12.816459655761719,886906,0.0,0.0
2022-11-09 00:00:00+01:00,19.415756225585938,19.415756225585938,18.954233169555664,19.208866119384766,12.682489395141602,1198007,0.0,0.0
2022-11-10 00:00:00+01:00,19.153165817260742,19.59479522705078,19.03778648376465,19.586837768554688,12.93204116821289,1410472,0.0,0.0
2022-11-11 00:00:00+01:00,19.59479522705078,19.857385635375977,19.562965393066406,19.78974723815918,13.066010475158691,1274687,0.0,0.0
2022-11-14 00:00:00+01:00,19.81361961364746,20.112018585205078,19.690282821655273,20.032445907592773,13.226252555847168,1295287,0.0,0.0
2022-11-15 00:00:00+01:00,20.01255226135254,20.191591262817383,19.61071014404297,19.805662155151367,13.076519966125488,1056914,0.0,0.0
2022-11-16 00:00:00+01:00,19.75394058227539,19.785770416259766,19.276504516601562,19.44758415222168,12.840100288391113,1015000,0.0,0.0
2022-11-17 00:00:00+01:00,19.4833927154541,19.65447425842285,19.09746551513672,19.296396255493164,12.740280151367188,644501,0.0,0.0
2022-11-18 00:00:00+01:00,19.42371368408203,19.666410446166992,19.332204818725586,19.666410446166992,12.984579086303711,829590,0.0,0.0
2022-11-21 00:00:00+01:00,19.598773956298828,19.606731414794922,19.02187156677246,19.101444244384766,12.611564636230469,918183,0.0,0.0
2022-11-22 00:00:00+01:00,19.137252807617188,19.49930763244629,19.073593139648438,19.395862579345703,12.805953025817871,915438,0.0,0.0
2022-11-23 00:00:00+01:00,19.475435256958008,19.51124382019043,19.149187088012695,19.264568328857422,12.719265937805176,867427,0.0,0.0
2022-11-24 00:00:00+01:00,19.31231117248535,19.551029205322266,19.31231117248535,19.539094924926758,12.900519371032715,658838,0.0,0.0
2022-11-25 00:00:00+01:00,19.535114288330078,19.574901580810547,19.371990203857422,19.419734954833984,12.8217134475708,444192,0.0,0.0
2022-11-28 00:00:00+01:00,19.296396255493164,19.356077194213867,19.085529327392578,19.16908073425293,12.656221389770508,743198,0.0,0.0
2022-11-29 00:00:00+01:00,18.830896377563477,18.978105545043945,18.572284698486328,18.72745132446289,12.364640235900879,1801344,0.0,0.0
2022-11-30 00:00:00+01:00,18.89853286743164,18.92638397216797,18.405181884765625,18.675729751586914,12.330490112304688,1555300,0.0,0.0
2022-12-01 00:00:00+01:00,18.87466049194336,18.958213806152344,18.56830596923828,18.73938751220703,12.372520446777344,1102744,0.0,0.0
2022-12-02 00:00:00+01:00,18.663793563842773,19.013914108276367,18.55636978149414,19.005956649780273,12.5485200881958,783142,0.0,0.0
2022-12-05 00:00:00+01:00,18.966169357299805,19.061656951904297,18.73938751220703,18.86272621154785,12.453953742980957,726414,0.0,0.0
2022-12-06 00:00:00+01:00,18.870683670043945,19.073593139648438,18.791109085083008,18.962190628051758,12.519624710083008,752418,0.0,0.0
2022-12-07 00:00:00+01:00,18.922405242919922,18.958213806152344,18.572284698486328,18.62002944946289,12.293715476989746,1312303,0.0,0.0
2022-12-08 00:00:00+01:00,18.48475456237793,18.759281158447266,18.421096801757812,18.516584396362305,12.225415229797363,1077991,0.0,0.0
2022-12-09 00:00:00+01:00,18.56830596923828,18.890575408935547,18.52056312561035,18.83885383605957,12.438191413879395,876148,0.0,0.0
2022-12-12 00:00:00+01:00,18.735408782958984,18.763259887695312,18.417118072509766,18.468839645385742,12.193892478942871,1151398,0.0,0.0
2022-12-13 00:00:00+01:00,18.604114532470703,19.065635681152344,18.552391052246094,18.942298889160156,12.506489753723145,1226494,0.0,0.0
2022-12-14 00:00:00+01:00,18.858747482299805,19.017892837524414,18.75530242919922,18.8865966796875,12.469715118408203,958418,0.0,0.0
2022-12-15 00:00:00+01:00,18.73938751220703,18.751323699951172,18.369373321533203,18.47281837463379,12.19651985168457,1115743,0.0,0.0
2022-12-16 00:00:00+01:00,18.4569034576416,18.627986907958984,18.329587936401367,18.564327239990234,12.256937980651855,1941860,0.0,0.0
2022-12-19 00:00:00+01:00,18.58422088623047,18.75530242919922,18.548412322998047,18.627986907958984,12.298968315124512,778150,0.0,0.0
2022-12-20 00:00:00+01:00,18.504648208618164,18.7990665435791,18.393245697021484,18.7990665435791,12.411921501159668,935164,0.0,0.0
2022-12-21 00:00:00+01:00,18.89853286743164,19.244674682617188,18.8865966796875,19.208866119384766,12.682489395141602,1124419,0.0,0.0
2022-12-22 00:00:00+01:00,19.272525787353516,19.38790512084961,18.783153533935547,18.82691764831543,12.430309295654297,1217165,0.0,0.0
2022-12-23 00:00:00+01:00,18.89853286743164,19.14520835876465,18.81498146057129,19.0338077545166,12.566908836364746,552525,0.0,0.0
2022-12-27 00:00:00+01:00,19.177038192749023,19.24069595336914,19.03778648376465,19.04972267150879,12.57741641998291,387951,0.0,0.0
2022-12-28 00:00:00+01:00,19.09746551513672,19.177038192749023,18.934341430664062,19.005956649780273,12.5485200881958,517744,0.0,0.0
2022-12-29 00:00:00+01:00,19.001977920532227,19.077571868896484,18.8865966796875,19.045743942260742,12.574789047241211,398794,0.0,0.0
2022-12-30 00:00:00+01:00,18.946277618408203,19.017892837524414,18.75530242919922,18.791109085083008,12.406668663024902,449339,0.0,0.0
2023-01-02 00:00:00+01:00,18.990041732788086,19.383926391601562,18.914447784423828,19.383926391601562,12.798072814941406,671340,0.0,0.0
2023-01-03 00:00:00+01:00,19.356077194213867,19.78179168701172,19.344141006469727,19.435649871826172,12.832221984863281,983215,0.0,0.0
2023-01-04 00:00:00+01:00,19.48737144470215,19.982711791992188,19.44758415222168,19.94292640686035,13.167146682739258,1333355,0.0,0.0
2023-01-05 00:00:00+01:00,19.932979583740234,20.121965408325195,19.845449447631836,20.002605438232422,13.206549644470215,1261924,0.0,0.0
2023-01-06 00:00:00+01:00,20.112018585205078,20.410415649414062,19.95287322998047,20.410415649414062,13.47580337524414,641716,0.0,0.0
2023-01-09 00:00:00+01:00,20.410415649414062,20.569562911987305,20.32089614868164,20.440256118774414,13.495504379272461,839910,0.0,0.0
2023-01-10 00:00:00+01:00,20.48004150390625,20.48004150390625,19.932979583740234,20.17169761657715,13.31818962097168,1099813,0.0,0.0
2023-01-11 00:00:00+01:00,20.241323471069336,20.838119506835938,20.10207176208496,20.599401473999023,13.600579261779785,1479852,0.0,0.0
2023-01-12 00:00:00+01:00,20.60934829711914,20.758546829223633,20.470096588134766,20.639188766479492,13.626847267150879,1067892,0.0,0.0
2023-01-13 00:00:00+01:00,20.559614181518555,21.01715850830078,20.430309295654297,20.788387298583984,13.72535514831543,1563851,0.0,0.0
2023-01-16 00:00:00+01:00,20.589454650878906,20.72870635986328,20.181644439697266,20.70881462097168,14.766735076904297,790612,1.54,0.0
2023-01-17 00:00:00+01:00,20.698867797851562,20.997264862060547,20.499935150146484,20.659080505371094,14.731270790100098,917298,0.0,0.0
2023-01-18 00:00:00+01:00,20.649133682250977,20.80828094482422,20.39052391052246,20.688920974731445,14.752549171447754,976454,0.0,0.0
2023-01-19 00:00:00+01:00,20.569562911987305,20.57950782775879,20.26121711730957,20.39052391052246,14.539773941040039,888012,0.0,0.0
2023-01-20 00:00:00+01:00,20.529775619506836,20.649133682250977,20.340789794921875,20.619295120239258,14.702900886535645,757103,0.0,0.0
2023-01-23 00:00:00+01:00,20.678974151611328,20.70881462097168,20.5098819732666,20.57950782775879,14.674530029296875,540245,0.0,0.0
2023-01-24 00:00:00+01:00,20.688920974731445,20.72870635986328,20.599401473999023,20.72870635986328,14.780917167663574,497230,0.0,0.0
2023-01-25 00:00:00+01:00,20.72870635986328,20.788387298583984,20.539722442626953,20.72870635986328,14.780917167663574,610198,0.0,0.0
2023-01-26 00:00:00+01:00,20.82817268371582,21.01715850830078,20.549667358398438,21.01715850830078,14.986603736877441,1177819,0.0,0.0
2023-01-27 00:00:00+01:00,21.0271053314209,21.315555572509766,20.937585830688477,21.196197509765625,15.11427116394043,1399061,0.0,0.0
2023-01-30 00:00:00+01:00,21.106678009033203,21.196197509765625,20.967424392700195,21.096731185913086,15.043343544006348,1048142,0.0,0.0
2023-01-31 00:00:00+01:00,21.156410217285156,21.255876541137695,21.007211685180664,21.216089248657227,15.128454208374023,1153987,0.0,0.0
2023-02-01 00:00:00+01:00,21.36528968811035,21.633846282958984,21.295663833618164,21.604007720947266,15.40506649017334,1127903,0.0,0.0
2023-02-02 00:00:00+01:00,21.604007720947266,21.922298431396484,21.514488220214844,21.792993545532227,15.539824485778809,1405008,0.0,0.0
2023-02-03 00:00:00+01:00,21.733312606811523,21.981977462768555,21.6437931060791,21.981977462768555,15.674581527709961,1224408,0.0,0.0
2023-02-06 00:00:00+01:00,21.713420867919922,21.862619400024414,21.514488220214844,21.6437931060791,15.43343448638916,1078283,0.0,0.0
2023-02-07 00:00:00+01:00,21.812885284423828,21.912351608276367,21.6437931060791,21.65374183654785,15.440529823303223,983431,0.0,0.0
2023-02-08 00:00:00+01:00,21.68358039855957,22.051603317260742,21.68358039855957,21.832778930664062,15.568195343017578,983919,0.0,0.0
2023-02-09 00:00:00+01:00,21.862619400024414,22.03171157836914,21.74325942993164,21.892459869384766,15.610750198364258,921355,0.0,0.0
2023-02-10 00:00:00+01:00,21.773099899291992,21.892459869384766,21.39512825012207,21.58411407470703,15.390880584716797,931770,0.0,0.0
2023-02-13 00:00:00+01:00,21.613954544067383,21.68358039855957,21.484647750854492,21.534381866455078,15.355417251586914,653816,0.0,0.0
2023-02-14 00:00:00+01:00,21.564220428466797,21.6437931060791,21.415021896362305,21.484647750854492,15.319952964782715,566610,0.0,0.0
2023-02-15 00:00:00+01:00,21.385181427001953,21.72336769104004,21.345396041870117,21.703474044799805,15.475992202758789,971141,0.0,0.0
2023-02-16 00:00:00+01:00,21.733312606811523,21.852672576904297,21.58411407470703,21.753206253051758,15.511454582214355,860626,0.0,0.0
2023-02-17 00:00:00+01:00,21.604007720947266,21.822832107543945,21.484647750854492,21.763153076171875,15.518546104431152,558814,0.0,0.0
2023-02-20 00:00:00+01:00,21.78304672241211,22.340055465698242,21.78304672241211,22.340055465698242,15.929916381835938,997833,0.0,0.0
2023-02-21 00:00:00+01:00,22.300268173217773,22.4693603515625,22.111284255981445,22.19085693359375,15.823527336120605,907456,0.0,0.0
2023-02-22 00:00:00+01:00,21.59406089782715,22.011817932128906,21.484647750854492,21.97203254699707,15.66749095916748,1114536,0.0,0.0
2023-02-23 00:00:00+01:00,22.06155014038086,22.06155014038086,21.05694580078125,21.126571655273438,15.064623832702637,2085708,0.0,0.0
2023-02-24 00:00:00+01:00,21.126571655273438,21.763153076171875,20.967424392700195,21.07683753967285,15.029159545898438,1493284,0.0,0.0
2023-02-27 00:00:00+01:00,21.285715103149414,21.604007720947266,21.206144332885742,21.454809188842773,15.298676490783691,744495,0.0,0.0
2023-02-28 00:00:00+01:00,21.325502395629883,21.72336769104004,21.265823364257812,21.534381866455078,15.355417251586914,1797489,0.0,0.0
2023-03-01 00:00:00+01:00,21.613954544067383,21.663686752319336,21.30561065673828,21.37523651123047,15.241935729980469,1095414,0.0,0.0
2023-03-02 00:00:00+01:00,21.295663833618164,21.43491554260254,21.096731185913086,21.355342864990234,15.227750778198242,729153,0.0,0.0
2023-03-03 00:00:00+01:00,21.454809188842773,21.673633575439453,21.444862365722656,21.59406089782715,15.39797306060791,731340,0.0,0.0
2023-03-06 00:00:00+01:00,21.59406089782715,21.633846282958984,21.136518478393555,21.136518478393555,15.071715354919434,1177638,0.0,0.0
2023-03-07 00:00:00+01:00,21.14646339416504,21.255876541137695,21.0469970703125,21.126571655273438,15.064623832702637,894823,0.0,0.0
2023-03-08 00:00:00+01:00,21.0271053314209,21.216089248657227,20.7386531829834,21.216089248657227,15.128454208374023,1145240,0.0,0.0
2023-03-09 00:00:00+01:00,21.07683753967285,21.196197509765625,21.01715850830078,21.066890716552734,15.022066116333008,611676,0.0,0.0
2023-03-10 00:00:00+01:00,20.76849365234375,21.007211685180664,20.589454650878906,20.897798538208008,14.901491165161133,1111284,0.0,0.0
2023-03-13 00:00:00+01:00,20.688920974731445,20.778440475463867,20.07223129272461,20.221431732177734,14.419198036193848,1243550,0.0,0.0
2023-03-14 00:00:00+01:00,20.181644439697266,20.470096588134766,19.903139114379883,20.400468826293945,14.546865463256836,1301756,0.0,0.0
2023-03-15 00:00:00+01:00,20.430309295654297,20.440256118774414,19.093486785888672,19.121337890625,13.634759902954102,2538134,0.0,0.0
2023-03-16 00:00:00+01:00,19.578880310058594,19.68232536315918,18.914447784423828,19.344141006469727,13.793633460998535,1772646,0.0,0.0
2023-03-17 00:00:00+01:00,19.395862579345703,19.68232536315918,18.87466049194336,19.20488739013672,13.694336891174316,2459464,0.0,0.0
2023-03-20 00:00:00+01:00,19.196931838989258,19.531137466430664,18.723472595214844,19.467479705810547,13.881580352783203,903163,0.0,0.0
2023-03-21 00:00:00+01:00,19.73006820678711,20.17169761657715,19.646516799926758,19.972766876220703,14.241883277893066,1270092,0.0,0.0
2023-03-22 00:00:00+01:00,19.932979583740234,20.340789794921875,19.869321823120117,20.032445907592773,14.284439086914062,1100120,0.0,0.0
2023-03-23 00:00:00+01:00,19.962818145751953,19.962818145751953,19.6584529876709,19.845449447631836,14.151098251342773,1594495,0.0,0.0
2023-03-24 00:00:00+01:00,19.74200439453125,19.761898040771484,19.165102005004883,19.726089477539062,14.065988540649414,2008460,0.0,0.0
2023-03-27 00:00:00+02:00,20.07223129272461,20.301002502441406,19.833513259887695,20.221431732177734,14.419198036193848,1382281,0.0,0.0
2023-03-28 00:00:00+02:00,20.42036247253418,20.559614181518555,20.13191032409668,20.470096588134766,14.596513748168945,1220512,0.0,0.0
2023-03-29 00:00:00+02:00,20.559614181518555,20.639188766479492,20.370630264282227,20.539722442626953,14.646161079406738,791707,0.0,0.0
2023-03-30 00:00:00+02:00,20.659080505371094,21.01715850830078,20.629241943359375,20.82817268371582,14.851842880249023,968974,0.0,0.0
2023-03-31 00:00:00+02:00,20.82817268371582,21.01715850830078,20.748600006103516,20.95747947692871,14.944049835205078,1172265,0.0,0.0
2023-04-03 00:00:00+02:00,20.967424392700195,21.066890716552734,20.688920974731445,20.937585830688477,14.929863929748535,1141103,0.0,0.0
2023-04-04 00:00:00+02:00,21.08678436279297,21.186250686645508,20.858013153076172,20.858013153076172,14.873122215270996,728163,0.0,0.0
2023-04-05 00:00:00+02:00,20.897798538208008,20.947532653808594,20.46014976501465,20.499935150146484,14.617789268493652,1310588,0.0,0.0
2023-04-06 00:00:00+02:00,20.649133682250977,20.758546829223633,20.470096588134766,20.589454650878906,14.681623458862305,957116,0.0,0.0
2023-04-11 00:00:00+02:00,20.887853622436523,21.216089248657227,20.867958068847656,21.196197509765625,15.11427116394043,1155390,0.0,0.0
2023-04-12 00:00:00+02:00,21.156410217285156,21.285715103149414,20.907745361328125,21.226036071777344,15.135547637939453,907456,0.0,0.0
2023-04-13 00:00:00+02:00,21.186250686645508,21.385181427001953,21.14646339416504,21.255876541137695,15.156824111938477,1096832,0.0,0.0
2023-04-14 00:00:00+02:00,21.315555572509766,21.514488220214844,21.216089248657227,21.484647750854492,15.319952964782715,1071929,0.0,0.0
2023-04-17 00:00:00+02:00,21.882511138916016,22.07149887084961,21.58411407470703,21.892459869384766,15.610750198364258,1508490,0.0,0.0
2023-04-18 00:00:00+02:00,21.862619400024414,22.041658401489258,21.484647750854492,21.613954544067383,15.41215991973877,1127797,0.0,0.0
2023-04-19 00:00:00+02:00,21.633846282958984,21.65374183654785,21.37523651123047,21.633846282958984,15.426342964172363,908843,0.0,0.0
2023-04-20 00:00:00+02:00,21.68358039855957,21.68358039855957,21.484647750854492,21.6239013671875,15.41925048828125,810257,0.0,0.0
2023-04-21 00:00:00+02:00,21.58411407470703,21.58411407470703,21.255876541137695,21.424968719482422,15.277397155761719,823291,0.0,0.0
2023-04-24 00:00:00+02:00,21.385181427001953,21.703474044799805,21.295663833618164,21.633846282958984,15.426342964172363,882673,0.0,0.0
2023-04-25 00:00:00+02:00,21.59406089782715,21.74325942993164,21.385181427001953,21.663686752319336,15.447622299194336,1318878,0.0,0.0
2023-04-26 00:00:00+02:00,21.464754104614258,21.613954544067383,21.096731185913086,21.613954544067383,15.41215991973877,1135730,0.0,0.0
2023-04-27 00:00:00+02:00,21.504541397094727,21.504541397094727,20.897798538208008,21.11662483215332,15.05752944946289,1167454,0.0,0.0
2023-04-28 00:00:00+02:00,21.136518478393555,21.65374183654785,21.007211685180664,21.65374183654785,15.440529823303223,1480858,0.0,0.0
2023-05-02 00:00:00+02:00,21.68358039855957,21.713420867919922,21.126571655273438,21.14646339416504,15.078805923461914,1146537,0.0,0.0
2023-05-03 00:00:00+02:00,21.285715103149414,21.504541397094727,21.186250686645508,21.424968719482422,15.277397155761719,1054129,0.0,0.0
2023-05-04 00:00:00+02:00,20.987319946289062,21.6437931060791,20.340789794921875,20.66902732849121,14.738363265991211,1741640,0.0,0.0
2023-05-05 00:00:00+02:00,21.01715850830078,21.59406089782715,20.80828094482422,21.444862365722656,15.291584968566895,1420028,0.0,0.0
2023-05-08 00:00:00+02:00,21.484647750854492,21.514488220214844,21.245929718017578,21.514488220214844,15.341232299804688,674713,0.0,0.0
2023-05-09 00:00:00+02:00,21.663686752319336,21.663686752319336,21.17630386352539,21.444862365722656,15.291584968566895,853724,0.0,0.0
2023-05-10 00:00:00+02:00,21.49459457397461,21.663686752319336,21.156410217285156,21.405075073242188,15.263213157653809,826931,0.0,0.0
2023-05-11 00:00:00+02:00,21.464754104614258,21.633846282958984,21.106678009033203,21.37523651123047,15.241935729980469,1023400,0.0,0.0
2023-05-12 00:00:00+02:00,21.37523651123047,21.43491554260254,21.206144332885742,21.37523651123047,17.269859313964844,847053,2.51,0.0
2023-05-15 00:00:00+02:00,21.0469970703125,21.096731185913086,20.788387298583984,20.858013153076172,19.094114303588867,1023546,2.51,0.0
2023-05-16 00:00:00+02:00,20.7386531829834,20.76849365234375,20.281110763549805,20.310949325561523,18.593313217163086,1280267,0.0,0.0
2023-05-17 00:00:00+02:00,20.201536178588867,20.57950782775879,20.092124938964844,20.549667358398438,18.811845779418945,1106539,0.0,0.0
2023-05-18 00:00:00+02:00,20.72870635986328,20.818225860595703,20.539722442626953,20.678974151611328,18.93021583557129,704356,0.0,0.0
2023-05-19 00:00:00+02:00,20.818225860595703,20.897798538208008,20.66902732849121,20.72870635986328,18.97574234008789,1030030,0.0,0.0
2023-05-22 00:00:00+02:00,20.66902732849121,20.788387298583984,20.57950782775879,20.76849365234375,19.01216697692871,853879,0.0,0.0
2023-05-23 00:00:00+02:00,20.748600006103516,20.80828094482422,20.66902732849121,20.79833221435547,19.039480209350586,779729,0.0,0.0
2023-05-24 00:00:00+02:00,20.60934829711914,20.60934829711914,20.291057586669922,20.489988327026367,18.757213592529297,846847,0.0,0.0
2023-05-25 00:00:00+02:00,20.51982879638672,20.51982879638672,19.962818145751953,20.01255226135254,18.320152282714844,1017197,0.0,0.0
2023-05-26 00:00:00+02:00,20.141857147216797,20.26121711730957,19.885236740112305,20.191591262817383,18.48404884338379,1058894,0.0,0.0
2023-05-29 00:00:00+02:00,20.301002502441406,20.340789794921875,20.181644439697266,20.26121711730957,18.547786712646484,295090,0.0,0.0
2023-05-30 00:00:00+02:00,20.301002502441406,20.340789794921875,20.052337646484375,20.092124938964844,18.392993927001953,641576,0.0,0.0
2023-05-31 00:00:00+02:00,19.77781105041504,19.77781105041504,19.184995651245117,19.427692413330078,17.784751892089844,3164263,0.0,0.0
2023-06-01 00:00:00+02:00,19.614688873291016,19.698240280151367,19.475435256958008,19.68232536315918,18.017852783203125,876148,0.0,0.0
2023-06-02 00:00:00+02:00,19.857385635375977,20.499935150146484,19.8255558013916,20.440256118774414,18.711687088012695,1069712,0.0,0.0
2023-06-05 00:00:00+02:00,20.529775619506836,20.589454650878906,20.39052391052246,20.499935150146484,18.766319274902344,850280,0.0,0.0
2023-06-06 00:00:00+02:00,20.489988327026367,20.66902732849121,20.38057518005371,20.66902732849121,18.921110153198242,646291,0.0,0.0
2023-06-07 00:00:00+02:00,20.678974151611328,20.92763900756836,20.569562911987305,20.92763900756836,19.157854080200195,885388,0.0,0.0
2023-06-08 00:00:00+02:00,20.877906799316406,21.514488220214844,20.877906799316406,21.186250686645508,19.394594192504883,1247924,0.0,0.0
2023-06-09 00:00:00+02:00,21.126571655273438,21.17630386352539,20.46014976501465,20.818225860595703,19.057693481445312,1294412,0.0,0.0
2023-06-12 00:00:00+02:00,20.887853622436523,21.08678436279297,20.80828094482422,21.05694580078125,19.27622413635254,932962,0.0,0.0
2023-06-13 00:00:00+02:00,21.166357040405273,21.454809188842773,20.907745361328125,21.424968719482422,19.61312484741211,905912,0.0,0.0
2023-06-14 00:00:00+02:00,21.862619400024414,21.882511138916016,21.424968719482422,21.514488220214844,19.6950740814209,1696595,0.0,0.0
2023-06-15 00:00:00+02:00,21.474702835083008,21.474702835083008,21.01715850830078,21.355342864990234,19.549386978149414,932700,0.0,0.0
2023-06-16 00:00:00+02:00,21.444862365722656,21.52443504333496,20.04239273071289,20.569562911987305,18.83005714416504,3430067,0.0,0.0
2023-06-19 00:00:00+02:00,20.291057586669922,20.291057586669922,19.932979583740234,19.982711791992188,18.29283332824707,1208865,0.0,0.0
2023-06-20 00:00:00+02:00,19.495328903198242,20.121965408325195,19.208866119384766,19.821577072143555,18.145326614379883,2053697,0.0,0.0
2023-06-21 00:00:00+02:00,19.845449447631836,19.923032760620117,19.662431716918945,19.923032760620117,18.238201141357422,644074,0.0,0.0
2023-06-22 00:00:00+02:00,19.749961853027344,20.022499084472656,19.68232536315918,19.797706604003906,18.123476028442383,667821,0.0,0.0
2023-06-23 00:00:00+02:00,19.65447425842285,19.805662155151367,19.539094924926758,19.686304092407227,18.02149200439453,893260,0.0,0.0
2023-06-26 00:00:00+02:00,19.757919311523438,20.032445907592773,19.65447425842285,19.982711791992188,18.29283332824707,793819,0.0,0.0
2023-06-27 00:00:00+02:00,20.092124938964844,20.211484909057617,19.74200439453125,19.95287322998047,18.265520095825195,871227,0.0,0.0
2023-06-28 00:00:00+02:00,20.112018585205078,20.151803970336914,19.865341186523438,19.95287322998047,18.265520095825195,911547,0.0,0.0
2023-06-29 00:00:00+02:00,20.01255226135254,20.181644439697266,19.903139114379883,20.092124938964844,18.392993927001953,1053234,0.0,0.0
2023-06-30 00:00:00+02:00,20.092124938964844,20.46014976501465,20.092124938964844,20.350736618041992,18.629735946655273,934560,0.0,0.0
2023-07-03 00:00:00+02:00,20.301002502441406,20.499935150146484,20.181644439697266,20.26121711730957,18.547786712646484,652308,0.0,0.0
2023-07-04 00:00:00+02:00,20.241323471069336,20.241323471069336,20.032445907592773,20.181644439697266,18.474945068359375,483753,0.0,0.0
2023-07-05 00:00:00+02:00,20.07223129272461,20.201536178588867,20.002605438232422,20.092124938964844,18.392993927001953,692829,0.0,0.0
2023-07-06 00:00:00+02:00,19.903139114379883,20.002605438232422,19.634580612182617,19.74200439453125,18.07248306274414,1098682,0.0,0.0
2023-07-07 00:00:00+02:00,19.7181339263916,20.350736618041992,19.7181339263916,20.350736618041992,18.629735946655273,909321,0.0,0.0
2023-07-10 00:00:00+02:00,20.221431732177734,20.48004150390625,20.201536178588867,20.241323471069336,18.52957534790039,599989,0.0,0.0
2023-07-11 00:00:00+02:00,20.291057586669922,20.60934829711914,20.211484909057617,20.51982879638672,18.784528732299805,514723,0.0,0.0
2023-07-12 00:00:00+02:00,20.569562911987305,21.126571655273438,20.529775619506836,21.066890716552734,19.285327911376953,903369,0.0,0.0
2023-07-13 00:00:00+02:00,20.967424392700195,21.226036071777344,20.92763900756836,20.967424392700195,19.194272994995117,830319,0.0,0.0
2023-07-14 00:00:00+02:00,20.877906799316406,20.897798538208008,20.301002502441406,20.301002502441406,18.58420753479004,959780,0.0,0.0
2023-07-17 00:00:00+02:00,20.191591262817383,20.330842971801758,20.151803970336914,20.201536178588867,18.493152618408203,678639,0.0,0.0
2023-07-18 00:00:00+02:00,20.211484909057617,20.410415649414062,20.112018585205078,20.410415649414062,18.684368133544922,696082,0.0,0.0
2023-07-19 00:00:00+02:00,20.340789794921875,20.430309295654297,20.04239273071289,20.310949325561523,18.593313217163086,1027451,0.0,0.0
2023-07-20 00:00:00+02:00,20.330842971801758,20.589454650878906,20.330842971801758,20.589454650878906,18.8482666015625,771530,0.0,0.0
2023-07-21 00:00:00+02:00,20.569562911987305,20.758546829223633,20.499935150146484,20.639188766479492,18.893795013427734,532559,0.0,0.0
2023-07-24 00:00:00+02:00,20.529775619506836,20.788387298583984,20.48004150390625,20.778440475463867,19.021270751953125,576946,0.0,0.0
2023-07-25 00:00:00+02:00,20.80828094482422,21.156410217285156,20.7386531829834,21.14646339416504,19.358171463012695,815268,0.0,0.0
2023-07-26 00:00:00+02:00,21.066890716552734,21.206144332885742,20.867958068847656,20.967424392700195,19.194272994995117,501060,0.0,0.0
2023-07-27 00:00:00+02:00,21.01715850830078,21.43491554260254,20.967424392700195,21.39512825012207,19.58580780029297,1024169,0.0,0.0
2023-07-28 00:00:00+02:00,21.30561065673828,21.802940368652344,21.255876541137695,21.802940368652344,19.959131240844727,1075428,0.0,0.0
2023-07-31 00:00:00+02:00,21.802940368652344,21.912351608276367,21.663686752319336,21.703474044799805,19.868078231811523,1096731,0.0,0.0
2023-08-01 00:00:00+02:00,21.59406089782715,21.604007720947266,21.424968719482422,21.424968719482422,19.61312484741211,660286,0.0,0.0
2023-08-02 00:00:00+02:00,21.186250686645508,21.58411407470703,21.08678436279297,21.454809188842773,19.64044189453125,858203,0.0,0.0
2023-08-03 00:00:00+02:00,21.673633575439453,21.78304672241211,20.01255226135254,20.499935150146484,18.766319274902344,1721865,0.0,0.0
2023-08-04 00:00:00+02:00,20.66902732849121,20.718759536743164,20.39052391052246,20.659080505371094,18.912006378173828,610022,0.0,0.0
2023-08-07 00:00:00+02:00,20.589454650878906,20.80828094482422,20.45020294189453,20.80828094482422,19.048587799072266,484065,0.0,0.0
2023-08-08 00:00:00+02:00,20.688920974731445,20.818225860595703,20.589454650878906,20.678974151611328,18.93021583557129,420797,0.0,0.0
2023-08-09 00:00:00+02:00,20.858013153076172,21.037052154541016,20.76849365234375,20.858013153076172,19.094114303588867,550545,0.0,0.0
2023-08-10 00:00:00+02:00,20.977371215820312,21.126571655273438,20.858013153076172,20.997264862060547,19.221590042114258,468059,0.0,0.0
2023-08-11 00:00:00+02:00,20.877906799316406,21.0271053314209,20.748600006103516,20.758546829223633,19.003061294555664,462374,0.0,0.0
2023-08-14 00:00:00+02:00,20.7386531829834,20.848066329956055,20.66902732849121,20.7386531829834,18.984848022460938,668188,0.0,0.0
2023-08-15 00:00:00+02:00,20.788387298583984,20.818225860595703,20.430309295654297,20.57950782775879,18.839160919189453,432414,0.0,0.0
2023-08-16 00:00:00+02:00,20.539722442626953,20.76849365234375,20.539722442626953,20.70881462097168,18.957534790039062,544437,0.0,0.0
2023-08-17 00:00:00+02:00,20.57950782775879,20.76849365234375,20.549667358398438,20.688920974731445,18.939321517944336,564871,0.0,0.0
2023-08-18 00:00:00+02:00,20.688920974731445,20.70881462097168,20.291057586669922,20.38057518005371,18.657052993774414,693870,0.0,0.0
2023-08-21 00:00:00+02:00,20.39052391052246,20.66902732849121,20.39052391052246,20.569562911987305,18.83005714416504,793311,0.0,0.0
2023-08-22 00:00:00+02:00,20.599401473999023,20.907745361328125,20.5098819732666,20.76849365234375,19.01216697692871,650046,0.0,0.0
2023-08-23 00:00:00+02:00,20.80828094482422,20.858013153076172,20.330842971801758,20.370630264282227,18.647947311401367,647211,0.0,0.0
2023-08-24 00:00:00+02:00,20.45020294189453,20.599401473999023,20.291057586669922,20.330842971801758,18.611526489257812,475896,0.0,0.0
2023-08-25 00:00:00+02:00,20.301002502441406,20.45020294189453,20.26121711730957,20.291057586669922,18.575105667114258,318928,0.0,0.0
2023-08-28 00:00:00+02:00,20.42036247253418,20.549667358398438,20.42036247253418,20.499935150146484,18.766319274902344,332741,0.0,0.0
2023-08-29 00:00:00+02:00,20.66902732849121,20.897798538208008,20.66902732849121,20.838119506835938,19.075902938842773,523138,0.0,0.0
2023-08-30 00:00:00+02:00,20.838119506835938,21.007211685180664,20.778440475463867,20.907745361328125,19.13964080810547,394929,0.0,0.0
2023-08-31 00:00:00+02:00,20.947532653808594,21.36528968811035,20.92763900756836,21.265823364257812,19.467437744140625,2323236,0.0,0.0
2023-09-01 00:00:00+02:00,21.255876541137695,21.9322452545166,21.255876541137695,21.87256622314453,20.022871017456055,966179,0.0,0.0
2023-09-04 00:00:00+02:00,21.981977462768555,22.021764755249023,21.544328689575195,21.58411407470703,19.75881004333496,643546,0.0,0.0
2023-09-05 00:00:00+02:00,21.504541397094727,21.78304672241211,21.424968719482422,21.6239013671875,19.79523277282715,541345,0.0,0.0
2023-09-06 00:00:00+02:00,21.544328689575195,22.111284255981445,21.504541397094727,22.09139060974121,20.223190307617188,851678,0.0,0.0
2023-09-07 00:00:00+02:00,21.882511138916016,21.90240478515625,21.424968719482422,21.464754104614258,19.649545669555664,700314,0.0,0.0
2023-09-08 00:00:00+02:00,21.574167251586914,21.574167251586914,20.887853622436523,21.235984802246094,19.440122604370117,719356,0.0,0.0
2023-09-11 00:00:00+02:00,21.345396041870117,21.564220428466797,21.315555572509766,21.52443504333496,19.704177856445312,524078,0.0,0.0
2023-09-12 00:00:00+02:00,21.58411407470703,21.6239013671875,21.11662483215332,21.11662483215332,19.330856323242188,772781,0.0,0.0
2023-09-13 00:00:00+02:00,21.0469970703125,21.36528968811035,20.76849365234375,20.818225860595703,19.057693481445312,691035,0.0,0.0
2023-09-14 00:00:00+02:00,20.887853622436523,21.196197509765625,20.629241943359375,21.126571655273438,19.339962005615234,578423,0.0,0.0
2023-09-15 00:00:00+02:00,21.295663833618164,21.952138900756836,21.295663833618164,21.84272575378418,19.99555206298828,2234985,0.0,0.0
2023-09-18 00:00:00+02:00,21.802940368652344,21.84272575378418,21.673633575439453,21.713420867919922,19.87718391418457,856277,0.0,0.0
2023-09-19 00:00:00+02:00,21.6437931060791,21.6437931060791,21.39512825012207,21.415021896362305,19.60401725769043,685505,0.0,0.0
2023-09-20 00:00:00+02:00,21.52443504333496,21.792993545532227,21.504541397094727,21.74325942993164,19.904497146606445,752488,0.0,0.0
2023-09-21 00:00:00+02:00,21.534381866455078,21.574167251586914,21.0271053314209,21.186250686645508,19.394594192504883,722196,0.0,0.0
2023-09-22 00:00:00+02:00,21.08678436279297,21.295663833618164,20.95747947692871,21.096731185913086,19.312644958496094,535977,0.0,0.0
2023-09-25 00:00:00+02:00,21.037052154541016,21.17630386352539,20.529775619506836,20.788387298583984,19.030376434326172,678523,0.0,0.0
2023-09-26 00:00:00+02:00,20.72870635986328,20.72870635986328,20.410415649414062,20.489988327026367,18.757213592529297,999281,0.0,0.0
2023-09-27 00:00:00+02:00,20.559614181518555,20.66902732849121,20.440256118774414,20.569562911987305,18.83005714416504,679654,0.0,0.0
2023-09-28 00:00:00+02:00,20.57950782775879,20.858013153076172,20.42036247253418,20.80828094482422,19.048587799072266,791858,0.0,0.0
2023-09-29 00:00:00+02:00,20.977371215820312,21.07683753967285,20.778440475463867,20.858013153076172,19.094114303588867,1368070,0.0,0.0
2023-10-02 00:00:00+02:00,20.877906799316406,20.95747947692871,20.38057518005371,20.489988327026367,18.757213592529297,921943,0.0,0.0
2023-10-03 00:00:00+02:00,20.45020294189453,20.559614181518555,20.241323471069336,20.430309295654297,18.70258140563965,870202,0.0,0.0
2023-10-04 00:00:00+02:00,20.340789794921875,20.629241943359375,20.23137664794922,20.301002502441406,18.58420753479004,1412955,0.0,0.0
2023-10-05 00:00:00+02:00,20.301002502441406,20.410415649414062,20.151803970336914,20.23137664794922,18.520471572875977,552761,0.0,0.0
2023-10-06 00:00:00+02:00,20.271163940429688,20.489988327026367,20.17169761657715,20.370630264282227,18.647947311401367,824653,0.0,0.0
2023-10-09 00:00:00+02:00,20.201536178588867,20.26121711730957,19.817598342895508,20.201536178588867,18.493152618408203,857112,0.0,0.0
2023-10-10 00:00:00+02:00,20.310949325561523,20.619295120239258,20.281110763549805,20.470096588134766,18.739002227783203,881954,0.0,0.0
2023-10-11 00:00:00+02:00,20.32089614868164,20.629241943359375,20.32089614868164,20.440256118774414,18.711687088012695,612797,0.0,0.0
2023-10-12 00:00:00+02:00,20.569562911987305,20.688920974731445,20.271163940429688,20.32089614868164,18.602420806884766,484462,0.0,0.0
2023-10-13 00:00:00+02:00,20.211484909057617,20.470096588134766,20.211484909057617,20.301002502441406,18.58420753479004,538324,0.0,0.0
2023-10-16 00:00:00+02:00,20.340789794921875,20.489988327026367,20.26121711730957,20.310949325561523,18.593313217163086,495104,0.0,0.0
2023-10-17 00:00:00+02:00,20.241323471069336,20.301002502441406,19.9130859375,20.221431732177734,18.511367797851562,618131,0.0,0.0
2023-10-18 00:00:00+02:00,20.191591262817383,20.23137664794922,19.881256103515625,19.881256103515625,18.19995880126953,559829,0.0,0.0
2023-10-19 00:00:00+02:00,19.714153289794922,19.84147071838379,19.551029205322266,19.630603790283203,17.970502853393555,708805,0.0,0.0
2023-10-20 00:00:00+02:00,19.49930763244629,19.54705047607422,19.296396255493164,19.296396255493164,17.66455841064453,760144,0.0,0.0
2023-10-23 00:00:00+02:00,19.3162899017334,19.344141006469727,19.005956649780273,19.16908073425293,17.548009872436523,652032,0.0,0.0
2023-10-24 00:00:00+02:00,19.101444244384766,19.232738494873047,18.994020462036133,19.11735725402832,17.500661849975586,565349,0.0,0.0
2023-10-25 00:00:00+02:00,19.133272171020508,19.184995651245117,18.882619857788086,19.093486785888672,17.478809356689453,597757,0.0,0.0
2023-10-26 00:00:00+02:00,18.882619857788086,19.507265090942383,18.834875106811523,19.403820037841797,17.76289939880371,756208,0.0,0.0
2023-10-27 00:00:00+02:00,19.519201278686523,19.75394058227539,19.20488739013672,19.20488739013672,17.58078956604004,767302,0.0,0.0
2023-10-30 00:00:00+01:00,19.296396255493164,19.54705047607422,19.296396255493164,19.45156478881836,17.80660629272461,755454,0.0,0.0
2023-10-31 00:00:00+01:00,19.455543518066406,19.972766876220703,19.443607330322266,19.84147071838379,18.163537979125977,1249155,0.0,0.0
2023-11-01 00:00:00+01:00,19.903139114379883,20.04239273071289,19.551029205322266,19.618667602539062,17.959577560424805,645054,0.0,0.0
2023-11-02 00:00:00+01:00,19.734046936035156,20.410415649414062,19.726089477539062,20.141857147216797,18.438520431518555,1414951,0.0,0.0
2023-11-03 00:00:00+01:00,19.877277374267578,20.211484909057617,19.165102005004883,19.51124382019043,17.861236572265625,1786173,0.0,0.0
2023-11-06 00:00:00+01:00,19.515222549438477,19.78179168701172,19.304353713989258,19.531137466430664,17.87944793701172,1141224,0.0,0.0
2023-11-07 00:00:00+01:00,19.42371368408203,19.535114288330078,19.25263214111328,19.35209846496582,17.71554946899414,719557,0.0,0.0
2023-11-08 00:00:00+01:00,19.228759765625,19.427692413330078,19.093486785888672,19.320268630981445,17.686412811279297,829203,0.0,0.0
2023-11-09 00:00:00+01:00,19.308332443237305,19.903139114379883,19.308332443237305,19.574901580810547,17.919511795043945,1169455,0.0,0.0
2023-11-10 00:00:00+01:00,19.479415893554688,19.761898040771484,19.244674682617188,19.761898040771484,18.090694427490234,991826,0.0,0.0
2023-11-13 00:00:00+01:00,19.773834228515625,19.857385635375977,19.531137466430664,19.734046936035156,18.06519889831543,980360,0.0,0.0
2023-11-14 00:00:00+01:00,19.79372787475586,20.410415649414062,19.78974723815918,20.340789794921875,18.62063217163086,892672,0.0,0.0
2023-11-15 00:00:00+01:00,20.36068344116211,20.917692184448242,20.291057586669922,20.917692184448242,19.148746490478516,1168610,0.0,0.0
2023-11-16 00:00:00+01:00,20.79833221435547,21.07683753967285,20.549667358398438,20.549667358398438,18.811845779418945,755625,0.0,0.0
2023-11-17 00:00:00+01:00,20.549667358398438,20.848066329956055,20.549667358398438,20.559614181518555,18.820951461791992,784037,0.0,0.0
2023-11-20 00:00:00+01:00,20.589454650878906,20.887853622436523,20.51982879638672,20.72870635986328,18.97574234008789,946072,0.0,0.0
2023-11-21 00:00:00+01:00,20.688920974731445,20.82817268371582,20.470096588134766,20.629241943359375,18.884689331054688,1185330,0.0,0.0
2023-11-22 00:00:00+01:00,20.629241943359375,20.838119506835938,20.559614181518555,20.599401473999023,18.85737419128418,1261386,0.0,0.0
2023-11-23 00:00:00+01:00,20.599401473999023,20.76849365234375,20.599401473999023,20.7386531829834,18.984848022460938,633558,0.0,0.0
2023-11-24 00:00:00+01:00,20.778440475463867,20.92763900756836,20.72870635986328,20.92763900756836,19.157854080200195,719180,0.0,0.0
2023-11-27 00:00:00+01:00,20.887853622436523,20.907745361328125,20.51982879638672,20.57950782775879,18.839160919189453,1094505,0.0,0.0
2023-11-28 00:00:00+01:00,20.529775619506836,20.66902732849121,20.330842971801758,20.60934829711914,18.866479873657227,1053370,0.0,0.0
2023-11-29 00:00:00+01:00,20.60934829711914,21.037052154541016,20.569562911987305,20.977371215820312,19.203378677368164,957061,0.0,0.0
2023-11-30 00:00:00+01:00,20.947532653808594,21.27577018737793,20.818225860595703,21.11662483215332,19.330856323242188,2370750,0.0,0.0
2023-12-01 00:00:00+01:00,21.166357040405273,21.6437931060791,21.166357040405273,21.604007720947266,19.777023315429688,1195222,0.0,0.0
2023-12-04 00:00:00+01:00,21.484647750854492,21.94219207763672,21.464754104614258,21.74325942993164,19.904497146606445,1089262,0.0,0.0
2023-12-05 00:00:00+01:00,21.6239013671875,21.9322452545166,21.59406089782715,21.882511138916016,20.03197479248047,1150906,0.0,0.0
2023-12-06 00:00:00+01:00,21.882511138916016,22.081443786621094,21.84272575378418,22.041658401489258,20.177663803100586,1090639,0.0,0.0
2023-12-07 00:00:00+01:00,22.081443786621094,22.489255905151367,22.041658401489258,22.359949111938477,20.469038009643555,1596696,0.0,0.0
2023-12-08 00:00:00+01:00,22.330108642578125,22.479307174682617,21.991924285888672,22.35000228881836,20.459930419921875,1410130,0.0,0.0
2023-12-11 00:00:00+01:00,19.450000762939453,23.649999618530273,17.895000457763672,20.6200008392334,18.876230239868164,8998324,0.0,0.0
2023-12-12 00:00:00+01:00,20.790000915527344,22.3700008392334,20.75,22.139999389648438,20.26768684387207,3236690,0.0,0.0
2023-12-13 00:00:00+01:00,22.489999771118164,24.530000686645508,22.399999618530273,23.950000762939453,21.92462158203125,2215354,0.0,0.0
2023-12-14 00:00:00+01:00,24.5,25.010000228881836,23.950000762939453,24.540000915527344,22.4647274017334,1535694,0.0,0.0
2023-12-15 00:00:00+01:00,24.8799991607666,25.420000076293945,24.600000381469727,25.40999984741211,23.261154174804688,2385553,0.0,0.0
2023-12-18 00:00:00+01:00,25.649999618530273,26.969999313354492,25.489999771118164,26.1299991607666,23.920265197753906,965441,0.0,0.0
2023-12-19 00:00:00+01:00,26.290000915527344,27.399999618530273,26.200000762939453,27.209999084472656,24.908933639526367,908754,0.0,0.0
2023-12-20 00:00:00+01:00,27.3700008392334,27.469999313354492,26.350000381469727,26.350000381469727,24.121662139892578,821654,0.0,0.0
2023-12-21 00:00:00+01:00,26.239999771118164,26.3700008392334,25.760000228881836,26.049999237060547,23.847030639648438,744197,0.0,0.0
2023-12-22 00:00:00+01:00,26.1200008392334,26.510000228881836,26.049999237060547,26.239999771118164,24.020963668823242,358134,0.0,0.0
2023-12-27 00:00:00+01:00,26.639999389648438,26.729999542236328,26.299999237060547,26.729999542236328,24.469524383544922,398784,0.0,0.0
2023-12-28 00:00:00+01:00,26.899999618530273,27.200000762939453,26.899999618530273,27.190000534057617,24.890626907348633,306879,0.0,0.0
2023-12-29 00:00:00+01:00,27.219999313354492,27.959999084472656,27.219999313354492,27.729999542236328,25.384958267211914,508827,0.0,0.0
2024-01-02 00:00:00+01:00,28.059999465942383,28.600000381469727,27.520000457763672,28.030000686645508,25.659589767456055,395002,0.0,0.0
2024-01-03 00:00:00+01:00,28.110000610351562,28.15999984741211,27.170000076293945,27.43000030517578,25.110328674316406,517626,0.0,0.0
2024-01-04 00:00:00+01:00,27.5,28.110000610351562,27.5,28.09000015258789,25.714515686035156,353356,0.0,0.0
2024-01-05 00:00:00+01:00,28.079999923706055,28.469999313354492,28.0,28.329999923706055,25.93421745300293,426440,0.0,0.0
2024-01-08 00:00:00+01:00,28.290000915527344,28.329999923706055,27.540000915527344,28.0,25.632125854492188,503233,0.0,0.0
2024-01-09 00:00:00+01:00,27.190000534057617,27.549999237060547,27.079999923706055,27.299999237060547,24.991321563720703,592677,0.0,0.0
2024-01-10 00:00:00+01:00,27.100000381469727,27.170000076293945,26.350000381469727,26.350000381469727,24.121662139892578,692877,0.0,0.0
2024-01-11 00:00:00+01:00,26.389999389648438,26.559999465942383,25.889999389648438,26.0,23.801258087158203,631805,0.0,0.0
2024-01-12 00:00:00+01:00,26.639999389648438,26.860000610351562,26.06999969482422,26.139999389648438,23.929418563842773,803481,0.0,0.0
2024-01-15 00:00:00+01:00,25.059999465942383,25.329999923706055,25.0,25.299999237060547,24.690631866455078,726646,1.62,0.0
2024-01-16 00:00:00+01:00,25.149999618530273,25.200000762939453,24.579999923706055,24.989999771118164,24.388099670410156,493029,0.0,0.0
2024-01-17 00:00:00+01:00,24.700000762939453,24.729999542236328,23.989999771118164,24.260000228881836,23.675682067871094,646371,0.0,0.0
2024-01-18 00:00:00+01:00,24.200000762939453,24.239999771118164,23.530000686645508,23.530000686645508,22.963266372680664,686723,0.0,0.0
2024-01-19 00:00:00+01:00,23.670000076293945,24.25,23.670000076293945,24.049999237060547,23.470739364624023,679303,0.0,0.0
2024-01-22 00:00:00+01:00,24.299999237060547,24.770000457763672,24.079999923706055,24.760000228881836,24.163639068603516,282294,0.0,0.0
2024-01-23 00:00:00+01:00,25.200000762939453,25.450000762939453,24.90999984741211,25.3799991607666,24.768705368041992,397643,0.0,0.0
2024-01-24 00:00:00+01:00,25.600000381469727,25.6299991607666,24.75,24.75,24.153881072998047,564082,0.0,0.0
2024-01-25 00:00:00+01:00,24.84000015258789,25.760000228881836,24.799999237060547,25.600000381469727,24.983407974243164,401178,0.0,0.0
2024-01-26 00:00:00+01:00,25.690000534057617,26.959999084472656,25.6200008392334,26.40999984741211,25.773897171020508,712857,0.0,0.0
2024-01-29 00:00:00+01:00,26.5,26.549999237060547,25.760000228881836,25.760000228881836,25.139554977416992,375526,0.0,0.0
2024-01-30 00:00:00+01:00,25.8799991607666,26.049999237060547,25.610000610351562,25.690000534057617,25.071239471435547,339731,0.0,0.0
2024-01-31 00:00:00+01:00,25.850000381469727,26.1299991607666,25.440000534057617,25.440000534057617,24.827260971069336,1756316,0.0,0.0
2024-02-01 00:00:00+01:00,25.329999923706055,25.5,24.530000686645508,24.59000015258789,23.99773406982422,398800,0.0,0.0
2024-02-02 00:00:00+01:00,24.899999618530273,24.979999542236328,24.40999984741211,24.40999984741211,23.82206916809082,418661,0.0,0.0
2024-02-05 00:00:00+01:00,24.440000534057617,24.56999969482422,23.6299991607666,23.649999618530273,23.080373764038086,640546,0.0,0.0
2024-02-06 00:00:00+01:00,23.739999771118164,23.81999969482422,22.8799991607666,23.469999313354492,22.904708862304688,800098,0.0,0.0
2024-02-07 00:00:00+01:00,23.200000762939453,23.309999465942383,22.489999771118164,22.639999389648438,22.09469985961914,896379,0.0,0.0
2024-02-08 00:00:00+01:00,22.799999237060547,23.1299991607666,22.690000534057617,23.0,22.446029663085938,622376,0.0,0.0
2024-02-09 00:00:00+01:00,22.5,22.739999771118164,22.209999084472656,22.209999084472656,21.67505645751953,783024,0.0,0.0
2024-02-12 00:00:00+01:00,22.450000762939453,22.899999618530273,22.290000915527344,22.84000015258789,22.289884567260742,443790,0.0,0.0
2024-02-13 00:00:00+01:00,22.860000610351562,23.34000015258789,22.719999313354492,23.190000534057617,22.631454467773438,530025,0.0,0.0
2024-02-14 00:00:00+01:00,23.06999969482422,23.5,22.90999984741211,23.489999771118164,22.92422866821289,452602,0.0,0.0
2024-02-15 00:00:00+01:00,23.6200008392334,24.170000076293945,23.579999923706055,23.940000534057617,23.36338996887207,423885,0.0,0.0
2024-02-16 00:00:00+01:00,24.280000686645508,24.420000076293945,23.770000457763672,24.020000457763672,23.441463470458984,445071,0.0,0.0
2024-02-19 00:00:00+01:00,24.110000610351562,24.139999389648438,23.690000534057617,23.690000534057617,23.11941146850586,334433,0.0,0.0
2024-02-20 00:00:00+01:00,23.770000457763672,24.09000015258789,23.489999771118164,24.09000015258789,23.509777069091797,306827,0.0,0.0
2024-02-21 00:00:00+01:00,23.850000381469727,24.040000915527344,23.5,24.040000915527344,23.460981369018555,431924,0.0,0.0
2024-02-22 00:00:00+01:00,24.229999542236328,24.399999618530273,24.010000228881836,24.219999313354492,23.63664436340332,366743,0.0,0.0
2024-02-23 00:00:00+01:00,24.239999771118164,24.6200008392334,23.860000610351562,23.959999084472656,23.38290786743164,266603,0.0,0.0
2024-02-26 00:00:00+01:00,23.959999084472656,23.959999084472656,23.270000457763672,23.479999542236328,22.91446876525879,316183,0.0,0.0
2024-02-27 00:00:00+01:00,23.540000915527344,23.889999389648438,23.329999923706055,23.75,23.17796516418457,284263,0.0,0.0
2024-02-28 00:00:00+01:00,23.829999923706055,24.059999465942383,23.559999465942383,23.6200008392334,23.051097869873047,344714,0.0,0.0
2024-02-29 00:00:00+01:00,23.600000381469727,23.6299991607666,23.329999923706055,23.5,22.93398666381836,601749,0.0,0.0
2024-03-01 00:00:00+01:00,23.6299991607666,24.530000686645508,23.59000015258789,24.200000762939453,23.617128372192383,445507,0.0,0.0
2024-03-04 00:00:00+01:00,24.1200008392334,24.229999542236328,22.989999771118164,23.3799991607666,22.816877365112305,469234,0.0,0.0
2024-03-05 00:00:00+01:00,23.329999923706055,23.579999923706055,23.079999923706055,23.579999923706055,23.012060165405273,321295,0.0,0.0
2024-03-06 00:00:00+01:00,23.579999923706055,24.100000381469727,23.549999237060547,23.549999237060547,22.9827823638916,516710,0.0,0.0
2024-03-07 00:00:00+01:00,23.389999389648438,23.670000076293945,23.100000381469727,23.5,22.93398666381836,371579,0.0,0.0
2024-03-08 00:00:00+01:00,23.520000457763672,23.770000457763672,22.969999313354492,23.739999771118164,23.1682071685791,426367,0.0,0.0
2024-03-11 00:00:00+01:00,23.68000030517578,24.100000381469727,23.450000762939453,24.100000381469727,23.5195369720459,437456,0.0,0.0
2024-03-12 00:00:00+01:00,24.299999237060547,25.450000762939453,24.059999465942383,25.25,24.64183807373047,794906,0.0,0.0
2024-03-13 00:00:00+01:00,24.100000381469727,26.010000228881836,23.950000762939453,24.549999237060547,23.958696365356445,844838,0.0,0.0
2024-03-14 00:00:00+01:00,24.440000534057617,24.729999542236328,23.649999618530273,23.81999969482422,23.246280670166016,643203,0.0,0.0
2024-03-15 00:00:00+01:00,23.850000381469727,24.579999923706055,23.229999542236328,23.229999542236328,22.670490264892578,1376963,0.0,0.0
2024-03-18 00:00:00+01:00,23.229999542236328,23.6299991607666,23.030000686645508,23.440000534057617,22.87543296813965,406545,0.0,0.0
2024-03-19 00:00:00+01:00,23.149999618530273,23.75,23.040000915527344,23.670000076293945,23.09989356994629,429140,0.0,0.0
2024-03-20 00:00:00+01:00,23.639999389648438,24.110000610351562,23.5,24.030000686645508,23.451223373413086,308989,0.0,0.0
2024-03-21 00:00:00+01:00,24.18000030517578,24.479999542236328,24.030000686645508,24.15999984741211,23.57809066772461,415990,0.0,0.0
2024-03-22 00:00:00+01:00,24.139999389648438,24.719999313354492,23.84000015258789,24.540000915527344,23.948938369750977,295245,0.0,0.0
2024-03-25 00:00:00+01:00,24.549999237060547,25.100000381469727,24.520000457763672,25.059999465942383,24.45641326904297,348983,0.0,0.0
2024-03-26 00:00:00+01:00,25.030000686645508,25.09000015258789,24.299999237060547,24.549999237060547,23.958696365356445,323207,0.0,0.0
2024-03-27 00:00:00+01:00,24.459999084472656,24.969999313354492,24.31999969482422,24.969999313354492,24.368581771850586,203281,0.0,0.0
2024-03-28 00:00:00+01:00,25.020000457763672,25.360000610351562,24.700000762939453,25.299999237060547,24.690631866455078,292668,0.0,0.0
2024-04-02 00:00:00+02:00,25.350000381469727,25.799999237060547,25.299999237060547,25.600000381469727,24.983407974243164,302238,0.0,0.0
2024-04-03 00:00:00+02:00,25.68000030517578,26.8799991607666,25.6299991607666,26.690000534057617,26.047155380249023,448326,0.0,0.0
2024-04-04 00:00:00+02:00,28.5,29.190000534057617,27.709999084472656,27.709999084472656,27.042585372924805,1493843,0.0,0.0
2024-04-05 00:00:00+02:00,27.350000381469727,27.959999084472656,27.010000228881836,27.350000381469727,26.69125747680664,540908,0.0,0.0
2024-04-08 00:00:00+02:00,27.399999618530273,28.309999465942383,27.34000015258789,28.270000457763672,27.589099884033203,487088,0.0,0.0
2024-04-09 00:00:00+02:00,28.350000381469727,28.43000030517578,28.049999237060547,28.200000762939453,27.52078628540039,253999,0.0,0.0
2024-04-10 00:00:00+02:00,28.34000015258789,29.40999984741211,28.1200008392334,28.639999389648438,27.950185775756836,735134,0.0,0.0
2024-04-11 00:00:00+02:00,28.93000030517578,29.260000228881836,28.649999618530273,28.959999084472656,28.262479782104492,306645,0.0,0.0
2024-04-12 00:00:00+02:00,29.399999618530273,29.799999237060547,29.170000076293945,29.5,28.789474487304688,437731,0.0,0.0
2024-04-15 00:00:00+02:00,29.100000381469727,29.850000381469727,29.0,29.450000762939453,28.740678787231445,388339,0.0,0.0
2024-04-16 00:00:00+02:00,29.200000762939453,29.350000381469727,28.780000686645508,28.780000686645508,28.086816787719727,434787,0.0,0.0
2024-04-17 00:00:00+02:00,28.780000686645508,29.989999771118164,28.760000228881836,29.799999237060547,29.082246780395508,352161,0.0,0.0
2024-04-18 00:00:00+02:00,29.899999618530273,30.700000762939453,29.780000686645508,30.649999618530273,29.911775588989258,347317,0.0,0.0
2024-04-19 00:00:00+02:00,30.5,31.040000915527344,28.34000015258789,30.75,30.009366989135742,697878,0.0,0.0
2024-04-22 00:00:00+02:00,30.81999969482422,31.600000381469727,30.770000457763672,31.56999969482422,30.809616088867188,401308,0.0,0.0
2024-04-23 00:00:00+02:00,31.579999923706055,31.65999984741211,30.049999237060547,31.0,30.253345489501953,471634,0.0,0.0
2024-04-24 00:00:00+02:00,30.950000762939453,31.75,30.90999984741211,31.200000762939453,30.448528289794922,307607,0.0,0.0
2024-04-25 00:00:00+02:00,31.299999237060547,31.329999923706055,29.670000076293945,29.75,29.0334529876709,478021,0.0,0.0
2024-04-26 00:00:00+02:00,30.25,30.719999313354492,29.959999084472656,30.18000030517578,29.453096389770508,331898,0.0,0.0
2024-04-29 00:00:00+02:00,30.209999084472656,30.899999618530273,30.209999084472656,30.850000381469727,30.106958389282227,225725,0.0,0.0
2024-04-30 00:00:00+02:00,30.899999618530273,31.18000030517578,30.290000915527344,30.40999984741211,29.677555084228516,232054,0.0,0.0
2024-05-02 00:00:00+02:00,30.40999984741211,30.600000381469727,29.709999084472656,30.5,29.76538848876953,390674,0.0,0.0
2024-05-03 00:00:00+02:00,29.56999969482422,30.299999237060547,29.5,30.139999389648438,29.414058685302734,364126,0.0,0.0
2024-05-06 00:00:00+02:00,30.290000915527344,30.989999771118164,30.139999389648438,30.420000076293945,29.687314987182617,273816,0.0,0.0
2024-05-07 00:00:00+02:00,31.600000381469727,35.25,31.360000610351562,34.7599983215332,33.92278289794922,1075584,0.0,0.0
2024-05-08 00:00:00+02:00,34.34000015258789,36.619998931884766,33.43000030517578,34.68000030517578,33.84471130371094,1057246,0.0,0.0
2024-05-09 00:00:00+02:00,34.650001525878906,35.33000183105469,34.209999084472656,34.38999938964844,33.56169509887695,262471,0.0,0.0
2024-05-10 00:00:00+02:00,34.790000915527344,34.939998626708984,33.58000183105469,33.650001525878906,32.83951950073242,223080,0.0,0.0
2024-05-13 00:00:00+02:00,33.5,34.459999084472656,33.33000183105469,34.310001373291016,33.48362350463867,273103,0.0,0.0
2024-05-14 00:00:00+02:00,34.220001220703125,34.52000045776367,33.560001373291016,34.52000045776367,33.68856430053711,279550,0.0,0.0
2024-05-15 00:00:00+02:00,34.630001068115234,34.900001525878906,33.75,34.099998474121094,33.27867889404297,242453,0.0,0.0
2024-05-16 00:00:00+02:00,34.13999938964844,34.13999938964844,33.04999923706055,33.599998474121094,32.79072189331055,235321,0.0,0.0
2024-05-17 00:00:00+02:00,32.84000015258789,34.06999969482422,32.59000015258789,34.06999969482422,33.2494010925293,339910,0.0,0.0
2024-05-20 00:00:00+02:00,34.400001525878906,34.400001525878906,33.70000076293945,34.04999923706055,33.229881286621094,164887,0.0,0.0
2024-05-21 00:00:00+02:00,33.97999954223633,34.130001068115234,33.31999969482422,33.31999969482422,32.5174674987793,171162,0.0,0.0
2024-05-22 00:00:00+02:00,33.29999923706055,34.189998626708984,32.93000030517578,34.189998626708984,33.366512298583984,345186,0.0,0.0
2024-05-23 00:00:00+02:00,34.189998626708984,34.75,34.150001525878906,34.470001220703125,33.6397705078125,301874,0.0,0.0
2024-05-24 00:00:00+02:00,34.29999923706055,35.040000915527344,34.060001373291016,34.52000045776367,33.68856430053711,297474,0.0,0.0
2024-05-27 00:00:00+02:00,34.52000045776367,34.900001525878906,34.25,34.5,33.669044494628906,145496,0.0,0.0
2024-05-28 00:00:00+02:00,34.459999084472656,34.540000915527344,33.81999969482422,34.400001525878906,33.57145690917969,239174,0.0,0.0
2024-05-29 00:00:00+02:00,34.400001525878906,34.439998626708984,33.900001525878906,34.220001220703125,33.395790100097656,245711,0.0,0.0
2024-05-30 00:00:00+02:00,34.61000061035156,34.61000061035156,33.75,34.310001373291016,33.48362350463867,270049,0.0,0.0
2024-05-31 00:00:00+02:00,34.25,34.650001525878906,33.45000076293945,33.630001068115234,32.81999969482422,348292,0.0,0.0
2024-06-03 00:00:00+02:00,33.20000076293945,33.290000915527344,31.81999969482422,31.829999923706055,31.829999923706055,271111,0.81,0.0
2024-06-04 00:00:00+02:00,31.780000686645508,31.860000610351562,31.260000228881836,31.649999618530273,31.649999618530273,345119,0.0,0.0
2024-06-05 00:00:00+02:00,31.770000457763672,31.940000534057617,31.270000457763672,31.270000457763672,31.270000457763672,371491,0.0,0.0
2024-06-06 00:00:00+02:00,31.489999771118164,31.510000228881836,30.600000381469727,30.920000076293945,30.920000076293945,325501,0.0,0.0
2024-06-07 00:00:00+02:00,30.90999984741211,31.209999084472656,30.600000381469727,30.969999313354492,30.969999313354492,161556,0.0,0.0
2024-06-10 00:00:00+02:00,30.850000381469727,31.739999771118164,30.729999542236328,31.739999771118164,31.739999771118164,265293,0.0,0.0
2024-06-11 00:00:00+02:00,31.639999389648438,32.529998779296875,31.639999389648438,32.349998474121094,32.349998474121094,424271,0.0,0.0
2024-06-12 00:00:00+02:00,32.40999984741211,33.04999923706055,32.40999984741211,32.81999969482422,32.81999969482422,244552,0.0,0.0
2024-06-13 00:00:00+02:00,32.54999923706055,32.54999923706055,31.709999084472656,31.780000686645508,31.780000686645508,302052,0.0,0.0
2024-06-14 00:00:00+02:00,31.600000381469727,31.6299991607666,30.34000015258789,30.790000915527344,30.790000915527344,342157,0.0,0.0
2024-06-17 00:00:00+02:00,30.920000076293945,31.479999542236328,30.889999389648438,31.34000015258789,31.34000015258789,273690,0.0,0.0
2024-06-18 00:00:00+02:00,31.579999923706055,31.690000534057617,31.06999969482422,31.229999542236328,31.229999542236328,218534,0.0,0.0
2024-06-19 00:00:00+02:00,31.260000228881836,31.81999969482422,31.200000762939453,31.350000381469727,31.350000381469727,175454,0.0,0.0
2024-06-20 00:00:00+02:00,31.31999969482422,32.11000061035156,31.31999969482422,31.709999084472656,31.709999084472656,296995,0.0,0.0
2024-06-21 00:00:00+02:00,31.860000610351562,32.04999923706055,31.559999465942383,31.719999313354492,31.719999313354492,2005373,0.0,0.0
2024-06-24 00:00:00+02:00,31.700000762939453,33.630001068115234,31.700000762939453,33.06999969482422,33.06999969482422,347579,0.0,0.0
2024-06-25 00:00:00+02:00,33.0,33.34000015258789,31.90999984741211,31.90999984741211,31.90999984741211,241894,0.0,0.0
2024-06-26 00:00:00+02:00,31.899999618530273,32.349998474121094,31.649999618530273,31.8700008392334,31.8700008392334,267568,0.0,0.0
2024-06-27 00:00:00+02:00,32.29999923706055,33.0,32.20000076293945,32.900001525878906,32.900001525878906,182682,0.0,0.0
2024-06-28 00:00:00+02:00,32.95000076293945,33.060001373291016,32.31999969482422,32.869998931884766,32.869998931884766,277611,0.0,0.0
2024-07-01 00:00:00+02:00,33.29999923706055,33.4900016784668,32.72999954223633,33.4900016784668,33.4900016784668,206747,0.0,0.0
2024-07-02 00:00:00+02:00,33.5,34.0,33.13999938964844,34.0,34.0,231379,0.0,0.0
2024-07-03 00:00:00+02:00,33.95000076293945,34.13999938964844,33.47999954223633,34.13999938964844,34.13999938964844,262502,0.0,0.0
2024-07-04 00:00:00+02:00,34.0,34.20000076293945,33.540000915527344,34.060001373291016,34.060001373291016,130465,0.0,0.0
2024-07-05 00:00:00+02:00,34.060001373291016,34.279998779296875,33.5099983215332,33.5099983215332,33.5099983215332,212429,0.0,0.0
2024-07-08 00:00:00+02:00,33.400001525878906,33.95000076293945,32.81999969482422,33.95000076293945,33.95000076293945,194477,0.0,0.0
2024-07-09 00:00:00+02:00,33.790000915527344,34.060001373291016,32.290000915527344,32.5099983215332,32.5099983215332,364262,0.0,0.0
2024-07-10 00:00:00+02:00,32.29999923706055,32.38999938964844,31.75,32.040000915527344,32.040000915527344,207620,0.0,0.0
2024-07-11 00:00:00+02:00,32.11000061035156,32.599998474121094,32.06999969482422,32.349998474121094,32.349998474121094,159663,0.0,0.0
2024-07-12 00:00:00+02:00,32.29999923706055,32.93000030517578,32.29999923706055,32.59000015258789,32.59000015258789,116583,0.0,0.0
2024-07-15 00:00:00+02:00,32.459999084472656,32.689998626708984,31.899999618530273,32.279998779296875,32.279998779296875,123588,0.0,0.0
2024-07-16 00:00:00+02:00,32.20000076293945,32.65999984741211,31.940000534057617,32.45000076293945,32.45000076293945,88377,0.0,0.0
2024-07-17 00:00:00+02:00,32.72999954223633,33.939998626708984,32.040000915527344,33.939998626708984,33.939998626708984,222062,0.0,0.0
2024-07-18 00:00:00+02:00,34.0,34.93000030517578,33.79999923706055,34.63999938964844,34.63999938964844,400707,0.0,0.0
2024-07-19 00:00:00+02:00,34.290000915527344,34.36000061035156,33.529998779296875,34.0099983215332,34.0099983215332,188494,0.0,0.0
2024-07-22 00:00:00+02:00,34.349998474121094,34.5,33.66999816894531,34.13999938964844,34.13999938964844,144759,0.0,0.0
2024-07-23 00:00:00+02:00,33.95000076293945,34.02000045776367,33.5,33.83000183105469,33.83000183105469,99602,0.0,0.0
2024-07-24 00:00:00+02:00,33.54999923706055,33.97999954223633,33.459999084472656,33.5099983215332,33.5099983215332,118200,0.0,0.0
2024-07-25 00:00:00+02:00,33.400001525878906,33.75,32.43000030517578,33.41999816894531,33.41999816894531,143724,0.0,0.0
2024-07-26 00:00:00+02:00,33.09000015258789,33.439998626708984,32.650001525878906,33.2599983215332,33.2599983215332,150065,0.0,0.0
2024-07-29 00:00:00+02:00,33.25,33.560001373291016,33.06999969482422,33.18000030517578,33.18000030517578,101941,0.0,0.0
2024-07-30 00:00:00+02:00,33.0,33.619998931884766,32.86000061035156,33.18000030517578,33.18000030517578,142743,0.0,0.0
2024-07-31 00:00:00+02:00,33.849998474121094,34.0,32.20000076293945,32.52000045776367,32.52000045776367,561976,0.0,0.0
2024-08-01 00:00:00+02:00,32.13999938964844,32.599998474121094,31.190000534057617,31.469999313354492,31.469999313354492,275048,0.0,0.0
2024-08-02 00:00:00+02:00,31.229999542236328,31.760000228881836,30.860000610351562,30.860000610351562,30.860000610351562,265760,0.0,0.0
2024-08-05 00:00:00+02:00,30.100000381469727,30.479999542236328,29.469999313354492,29.940000534057617,29.940000534057617,473460,0.0,0.0
2024-08-06 00:00:00+02:00,30.5,31.010000228881836,30.040000915527344,30.190000534057617,30.190000534057617,264982,0.0,0.0
2024-08-07 00:00:00+02:00,30.510000228881836,31.229999542236328,30.3799991607666,30.889999389648438,30.889999389648438,178311,0.0,0.0
2024-08-08 00:00:00+02:00,30.799999237060547,30.959999084472656,30.40999984741211,30.799999237060547,30.799999237060547,172146,0.0,0.0
2024-08-09 00:00:00+02:00,30.90999984741211,31.520000457763672,30.90999984741211,31.15999984741211,31.15999984741211,179785,0.0,0.0
2024-08-12 00:00:00+02:00,31.299999237060547,31.690000534057617,30.59000015258789,30.59000015258789,30.59000015258789,132932,0.0,0.0
2024-08-13 00:00:00+02:00,30.690000534057617,31.040000915527344,30.360000610351562,30.600000381469727,30.600000381469727,103593,0.0,0.0
2024-08-14 00:00:00+02:00,30.649999618530273,30.68000030517578,30.059999465942383,30.479999542236328,30.479999542236328,209068,0.0,0.0
2024-08-15 00:00:00+02:00,30.549999237060547,31.09000015258789,30.450000762939453,30.920000076293945,30.920000076293945,125365,0.0,0.0
2024-08-16 00:00:00+02:00,30.940000534057617,31.1200008392334,30.729999542236328,30.8799991607666,30.8799991607666,141253,0.0,0.0
2024-08-19 00:00:00+02:00,31.030000686645508,31.299999237060547,30.670000076293945,31.030000686645508,31.030000686645508,180272,0.0,0.0
2024-08-20 00:00:00+02:00,31.170000076293945,31.170000076293945,30.469999313354492,30.530000686645508,30.530000686645508,152575,0.0,0.0
2024-08-21 00:00:00+02:00,30.530000686645508,31.020000457763672,30.530000686645508,30.969999313354492,30.969999313354492,128994,0.0,0.0
2024-08-22 00:00:00+02:00,30.979999542236328,31.3799991607666,30.780000686645508,31.229999542236328,31.229999542236328,87006,0.0,0.0
2024-08-23 00:00:00+02:00,31.18000030517578,31.540000915527344,31.18000030517578,31.270000457763672,31.270000457763672,84423,0.0,0.0
2024-08-26 00:00:00+02:00,31.149999618530273,31.459999084472656,30.829999923706055,31.030000686645508,31.030000686645508,72965,0.0,0.0
2024-08-27 00:00:00+02:00,30.90999984741211,31.360000610351562,30.809999465942383,31.139999389648438,31.139999389648438,102326,0.0,0.0
2024-08-28 00:00:00+02:00,31.139999389648438,31.190000534057617,30.540000915527344,30.93000030517578,30.93000030517578,133750,0.0,0.0
2024-08-29 00:00:00+02:00,30.81999969482422,31.25,30.81999969482422,31.079999923706055,31.079999923706055,110738,0.0,0.0
2024-08-30 00:00:00+02:00,31.190000534057617,31.829999923706055,31.079999923706055,31.700000762939453,31.700000762939453,222082,0.0,0.0
2024-09-02 00:00:00+02:00,31.739999771118164,32.36000061035156,31.469999313354492,32.18000030517578,32.18000030517578,137822,0.0,0.0
2024-09-03 00:00:00+02:00,32.04999923706055,32.2400016784668,31.469999313354492,31.520000457763672,31.520000457763672,115050,0.0,0.0
2024-09-04 00:00:00+02:00,31.100000381469727,31.739999771118164,31.030000686645508,31.559999465942383,31.559999465942383,110471,0.0,0.0
2024-09-05 00:00:00+02:00,31.34000015258789,32.310001373291016,31.34000015258789,31.670000076293945,31.670000076293945,230413,0.0,0.0
2024-09-06 00:00:00+02:00,31.489999771118164,31.8700008392334,31.18000030517578,31.209999084472656,31.209999084472656,163894,0.0,0.0
2024-09-09 00:00:00+02:00,31.5,31.729999542236328,31.280000686645508,31.649999618530273,31.649999618530273,150347,0.0,0.0
2024-09-10 00:00:00+02:00,31.59000015258789,32.040000915527344,30.8700008392334,30.8700008392334,30.8700008392334,177060,0.0,0.0
2024-09-11 00:00:00+02:00,30.93000030517578,32.06999969482422,30.93000030517578,31.049999237060547,31.049999237060547,253253,0.0,0.0
2024-09-12 00:00:00+02:00,31.049999237060547,31.3799991607666,30.809999465942383,30.809999465942383,30.809999465942383,198487,0.0,0.0
2024-09-13 00:00:00+02:00,30.809999465942383,31.6299991607666,30.809999465942383,31.3700008392334,31.3700008392334,160154,0.0,0.0
2024-09-16 00:00:00+02:00,31.270000457763672,31.469999313354492,31.100000381469727,31.450000762939453,31.450000762939453,112962,0.0,0.0
2024-09-17 00:00:00+02:00,31.719999313354492,32.75,31.719999313354492,32.75,32.75,181018,0.0,0.0
2024-09-18 00:00:00+02:00,32.81999969482422,33.84000015258789,32.38999938964844,33.72999954223633,33.72999954223633,208825,0.0,0.0
2024-09-19 00:00:00+02:00,34.119998931884766,34.689998626708984,33.84000015258789,34.58000183105469,34.58000183105469,292983,0.0,0.0
2024-09-20 00:00:00+02:00,34.599998474121094,34.599998474121094,33.93000030517578,34.279998779296875,34.279998779296875,547234,0.0,0.0
2024-09-23 00:00:00+02:00,34.22999954223633,34.68000030517578,34.11000061035156,34.369998931884766,34.369998931884766,148293,0.0,0.0
2024-09-24 00:00:00+02:00,34.709999084472656,35.13999938964844,34.279998779296875,34.279998779296875,34.279998779296875,214647,0.0,0.0
2024-09-25 00:00:00+02:00,34.279998779296875,34.83000183105469,33.58000183105469,33.58000183105469,33.58000183105469,194543,0.0,0.0
2024-09-26 00:00:00+02:00,34.0,34.119998931884766,33.650001525878906,34.119998931884766,34.119998931884766,198143,0.0,0.0
2024-09-27 00:00:00+02:00,34.2400016784668,35.02000045776367,34.130001068115234,34.63999938964844,34.63999938964844,196448,0.0,0.0
2024-09-30 00:00:00+02:00,34.150001525878906,35.45000076293945,34.0,35.20000076293945,35.20000076293945,261067,0.0,0.0
2024-10-01 00:00:00+02:00,35.20000076293945,35.88999938964844,35.18000030517578,35.61000061035156,35.61000061035156,218502,0.0,0.0
2024-10-02 00:00:00+02:00,35.61000061035156,36.810001373291016,35.45000076293945,36.310001373291016,36.310001373291016,185328,0.0,0.0
2024-10-03 00:00:00+02:00,36.22999954223633,36.619998931884766,36.209999084472656,36.310001373291016,36.310001373291016,246827,0.0,0.0
2024-10-04 00:00:00+02:00,36.209999084472656,37.560001373291016,36.13999938964844,37.5099983215332,37.5099983215332,298766,0.0,0.0
2024-10-07 00:00:00+02:00,37.5,37.5099983215332,36.47999954223633,36.91999816894531,36.91999816894531,161195,0.0,0.0
2024-10-08 00:00:00+02:00,36.7599983215332,36.7599983215332,35.66999816894531,35.93000030517578,35.93000030517578,144993,0.0,0.0
2024-10-09 00:00:00+02:00,35.86000061035156,36.52000045776367,35.400001525878906,36.369998931884766,36.369998931884766,123249,0.0,0.0
2024-10-10 00:00:00+02:00,36.619998931884766,37.0,36.439998626708984,36.959999084472656,36.959999084472656,127939,0.0,0.0
2024-10-11 00:00:00+02:00,36.650001525878906,37.349998474121094,36.560001373291016,37.150001525878906,37.150001525878906,110000,0.0,0.0
2024-10-14 00:00:00+02:00,37.349998474121094,38.0,37.0,38.0,38.0,215775,0.0,0.0
2024-10-15 00:00:00+02:00,38.0,38.72999954223633,37.7400016784668,38.43000030517578,38.43000030517578,289899,0.0,0.0
2024-10-16 00:00:00+02:00,38.5,39.31999969482422,38.310001373291016,39.31999969482422,39.31999969482422,351315,0.0,0.0
2024-10-17 00:00:00+02:00,39.27000045776367,39.310001373291016,37.95000076293945,38.439998626708984,38.439998626708984,336837,0.0,0.0
2024-10-18 00:00:00+02:00,38.209999084472656,39.369998931884766,37.939998626708984,39.349998474121094,39.349998474121094,284589,0.0,0.0
2024-10-21 00:00:00+02:00,39.11000061035156,39.13999938964844,38.43000030517578,39.099998474121094,39.099998474121094,176237,0.0,0.0
2024-10-22 00:00:00+02:00,39.119998931884766,39.369998931884766,38.63999938964844,38.900001525878906,38.900001525878906,219984,0.0,0.0
2024-10-23 00:00:00+02:00,38.70000076293945,38.86000061035156,37.790000915527344,38.79999923706055,38.79999923706055,212351,0.0,0.0
2024-10-24 00:00:00+02:00,38.70000076293945,38.939998626708984,38.36000061035156,38.68000030517578,38.68000030517578,118090,0.0,0.0
2024-10-25 00:00:00+02:00,38.630001068115234,38.849998474121094,38.04999923706055,38.560001373291016,38.560001373291016,164039,0.0,0.0
2024-10-28 00:00:00+01:00,38.560001373291016,38.81999969482422,37.84000015258789,38.25,38.25,156263,0.0,0.0
2024-10-29 00:00:00+01:00,38.25,38.88999938964844,38.029998779296875,38.31999969482422,38.31999969482422,213012,0.0,0.0
2024-10-30 00:00:00+01:00,37.75,38.04999923706055,37.029998779296875,37.029998779296875,37.029998779296875,397551,0.0,0.0
2024-10-31 00:00:00+01:00,37.0,37.310001373291016,36.34000015258789,37.060001373291016,37.060001373291016,281687,0.0,0.0
2024-11-01 00:00:00+01:00,36.84000015258789,37.43000030517578,36.84000015258789,37.2400016784668,37.2400016784668,81048,0.0,0.0
2024-11-04 00:00:00+01:00,37.060001373291016,37.79999923706055,37.040000915527344,37.560001373291016,37.560001373291016,82632,0.0,0.0
2024-11-05 00:00:00+01:00,37.560001373291016,37.95000076293945,37.369998931884766,37.95000076293945,37.95000076293945,199518,0.0,0.0
2024-11-06 00:00:00+01:00,38.20000076293945,38.900001525878906,34.91999816894531,34.91999816894531,34.91999816894531,469899,0.0,0.0
2024-11-07 00:00:00+01:00,34.08000183105469,34.900001525878906,33.72999954223633,33.72999954223633,33.72999954223633,380050,0.0,0.0
2024-11-08 00:00:00+01:00,33.61000061035156,33.91999816894531,33.29999923706055,33.54999923706055,33.54999923706055,389420,0.0,0.0
2024-11-11 00:00:00+01:00,33.810001373291016,34.31999969482422,33.130001068115234,33.130001068115234,33.130001068115234,233145,0.0,0.0
2024-11-12 00:00:00+01:00,32.79999923706055,33.029998779296875,31.670000076293945,31.709999084472656,31.709999084472656,284709,0.0,0.0
2024-11-13 00:00:00+01:00,31.780000686645508,32.11000061035156,31.360000610351562,31.510000228881836,31.510000228881836,208626,0.0,0.0
2024-11-14 00:00:00+01:00,31.600000381469727,31.8799991607666,31.34000015258789,31.40999984741211,31.40999984741211,193374,0.0,0.0
2024-11-15 00:00:00+01:00,31.309999465942383,32.5,31.309999465942383,32.22999954223633,32.22999954223633,130866,0.0,0.0
2024-11-18 00:00:00+01:00,32.20000076293945,32.72999954223633,32.08000183105469,32.130001068115234,32.130001068115234,94641,0.0,0.0
2024-11-19 00:00:00+01:00,32.099998474121094,32.650001525878906,31.06999969482422,31.920000076293945,31.920000076293945,159142,0.0,0.0
1 Datetime Open High Low Close Adj Close Volume Dividends Stock Splits
2 2022-01-03 00:00:00+01:00 20.400468826293945 20.80828094482422 20.400468826293945 20.629241943359375 11.042256355285645 559352 0.0 0.0
3 2022-01-04 00:00:00+01:00 20.649133682250977 20.897798538208008 20.5098819732666 20.848066329956055 11.15938663482666 930594 0.0 0.0
4 2022-01-05 00:00:00+01:00 20.897798538208008 21.126571655273438 20.838119506835938 21.126571655273438 11.308463096618652 572100 0.0 0.0
5 2022-01-06 00:00:00+01:00 20.887853622436523 21.126571655273438 20.599401473999023 20.967424392700195 11.22327709197998 532086 0.0 0.0
6 2022-01-07 00:00:00+01:00 21.007211685180664 21.186250686645508 20.867958068847656 21.126571655273438 11.308463096618652 698666 0.0 0.0
7 2022-01-10 00:00:00+01:00 21.186250686645508 21.245929718017578 20.997264862060547 21.05694580078125 11.271194458007812 972438 0.0 0.0
8 2022-01-11 00:00:00+01:00 21.226036071777344 21.514488220214844 21.226036071777344 21.37523651123047 11.441566467285156 894602 0.0 0.0
9 2022-01-12 00:00:00+01:00 21.564220428466797 21.604007720947266 21.0469970703125 21.216089248657227 11.356379508972168 838352 0.0 0.0
10 2022-01-13 00:00:00+01:00 20.897798538208008 21.14646339416504 20.897798538208008 21.14646339416504 12.180268287658691 514241 1.5 0.0
11 2022-01-14 00:00:00+01:00 20.897798538208008 21.066890716552734 20.80828094482422 21.0271053314209 12.111517906188965 708327 0.0 0.0
12 2022-01-17 00:00:00+01:00 21.106678009033203 21.633846282958984 21.0469970703125 21.554275512695312 12.415164947509766 947841 0.0 0.0
13 2022-01-18 00:00:00+01:00 21.454809188842773 21.484647750854492 21.156410217285156 21.405075073242188 12.32922649383545 966355 0.0 0.0
14 2022-01-19 00:00:00+01:00 21.37523651123047 21.822832107543945 21.295663833618164 21.78304672241211 12.5469388961792 1597827 0.0 0.0
15 2022-01-20 00:00:00+01:00 21.802940368652344 22.111284255981445 21.544328689575195 21.981977462768555 12.661521911621094 1563328 0.0 0.0
16 2022-01-21 00:00:00+01:00 21.74325942993164 21.94219207763672 21.415021896362305 21.65374183654785 12.472458839416504 1539782 0.0 0.0
17 2022-01-24 00:00:00+01:00 21.484647750854492 21.58411407470703 20.887853622436523 20.997264862060547 12.094330787658691 1334240 0.0 0.0
18 2022-01-25 00:00:00+01:00 21.156410217285156 21.186250686645508 20.877906799316406 20.917692184448242 12.048497200012207 1198631 0.0 0.0
19 2022-01-26 00:00:00+01:00 20.997264862060547 21.72336769104004 20.997264862060547 21.415021896362305 12.334957122802734 913216 0.0 0.0
20 2022-01-27 00:00:00+01:00 21.11662483215332 21.862619400024414 21.0469970703125 21.6437931060791 12.466727256774902 765306 0.0 0.0
21 2022-01-28 00:00:00+01:00 21.554275512695312 21.65374183654785 21.126571655273438 21.484647750854492 12.375060081481934 1109097 0.0 0.0
22 2022-01-31 00:00:00+01:00 21.6239013671875 21.65374183654785 21.066890716552734 21.186250686645508 12.20318603515625 999557 0.0 0.0
23 2022-02-01 00:00:00+01:00 21.27577018737793 21.405075073242188 21.05694580078125 21.11662483215332 12.163081169128418 732572 0.0 0.0
24 2022-02-02 00:00:00+01:00 21.52443504333496 22.021764755249023 21.454809188842773 21.753206253051758 12.52974796295166 1195479 0.0 0.0
25 2022-02-03 00:00:00+01:00 21.773099899291992 21.892459869384766 21.6239013671875 21.773099899291992 12.541208267211914 906159 0.0 0.0
26 2022-02-04 00:00:00+01:00 21.87256622314453 21.87256622314453 21.345396041870117 21.424968719482422 12.340685844421387 763864 0.0 0.0
27 2022-02-07 00:00:00+01:00 21.574167251586914 21.574167251586914 21.265823364257812 21.415021896362305 12.334957122802734 382854 0.0 0.0
28 2022-02-08 00:00:00+01:00 21.36528968811035 21.78304672241211 21.36528968811035 21.713420867919922 12.506832122802734 1006721 0.0 0.0
29 2022-02-09 00:00:00+01:00 21.812885284423828 21.991924285888672 21.733312606811523 21.981977462768555 12.661521911621094 893571 0.0 0.0
30 2022-02-10 00:00:00+01:00 22.021764755249023 22.210750579833984 21.962085723876953 22.041658401489258 12.69589614868164 851844 0.0 0.0
31 2022-02-11 00:00:00+01:00 21.882511138916016 22.06155014038086 21.713420867919922 21.882511138916016 12.604228019714355 893486 0.0 0.0
32 2022-02-14 00:00:00+01:00 21.514488220214844 21.514488220214844 20.818225860595703 21.14646339416504 12.180268287658691 1234728 0.0 0.0
33 2022-02-15 00:00:00+01:00 21.007211685180664 21.713420867919922 20.967424392700195 21.673633575439453 12.483914375305176 687285 0.0 0.0
34 2022-02-16 00:00:00+01:00 21.713420867919922 22.06155014038086 21.713420867919922 22.06155014038086 12.707353591918945 798177 0.0 0.0
35 2022-02-17 00:00:00+01:00 22.021764755249023 22.081443786621094 21.763153076171875 21.832778930664062 12.575582504272461 684218 0.0 0.0
36 2022-02-18 00:00:00+01:00 21.832778930664062 21.892459869384766 21.385181427001953 21.544328689575195 12.409436225891113 737030 0.0 0.0
37 2022-02-21 00:00:00+01:00 21.673633575439453 21.68358039855957 20.92763900756836 21.126571655273438 12.168810844421387 677844 0.0 0.0
38 2022-02-22 00:00:00+01:00 20.529775619506836 21.196197509765625 20.32089614868164 20.95747947692871 12.07141399383545 1273455 0.0 0.0
39 2022-02-23 00:00:00+01:00 21.415021896362305 21.862619400024414 20.987319946289062 21.216089248657227 12.220373153686523 1732461 0.0 0.0
40 2022-02-24 00:00:00+01:00 20.48004150390625 20.877906799316406 19.51124382019043 19.70221710205078 11.348389625549316 2560976 0.0 0.0
41 2022-02-25 00:00:00+01:00 19.903139114379883 20.291057586669922 19.475435256958008 20.201536178588867 11.635994911193848 1423396 0.0 0.0
42 2022-02-28 00:00:00+01:00 19.773834228515625 19.903139114379883 19.308332443237305 19.837491989135742 11.42630672454834 1569727 0.0 0.0
43 2022-03-01 00:00:00+01:00 19.77781105041504 19.95287322998047 18.73938751220703 18.73938751220703 10.793803215026855 1308216 0.0 0.0
44 2022-03-02 00:00:00+01:00 18.536476135253906 19.12929344177246 18.17840003967285 18.966169357299805 10.924428939819336 1739856 0.0 0.0
45 2022-03-03 00:00:00+01:00 19.001977920532227 19.077571868896484 18.297758102416992 18.361417770385742 10.576093673706055 834767 0.0 0.0
46 2022-03-04 00:00:00+01:00 18.13463592529297 18.14259147644043 16.893299102783203 17.05642318725586 9.824422836303711 2249030 0.0 0.0
47 2022-03-07 00:00:00+01:00 16.384033203125 17.10814666748047 15.516690254211426 16.380054473876953 9.43483829498291 2250820 0.0 0.0
48 2022-03-08 00:00:00+01:00 16.21295166015625 16.941043853759766 16.16520881652832 16.805768966674805 9.680047988891602 1388112 0.0 0.0
49 2022-03-09 00:00:00+01:00 17.207611083984375 18.22614288330078 17.17976188659668 18.22614288330078 10.498176574707031 1580329 0.0 0.0
50 2022-03-10 00:00:00+01:00 18.38926887512207 18.429054260253906 17.44632911682129 17.696983337402344 10.19338321685791 1037018 0.0 0.0
51 2022-03-11 00:00:00+01:00 17.88397979736328 18.369373321533203 17.585582733154297 17.943660736083984 10.335468292236328 985960 0.0 0.0
52 2022-03-14 00:00:00+01:00 18.285823822021484 18.747344970703125 18.250015258789062 18.52056312561035 10.66776180267334 963701 0.0 0.0
53 2022-03-15 00:00:00+01:00 19.79372787475586 19.893192291259766 17.99538230895996 18.15452766418457 10.456927299499512 2685295 0.0 0.0
54 2022-03-16 00:00:00+01:00 18.78713035583496 18.9741268157959 18.369373321533203 18.76723861694336 10.809845924377441 1321768 0.0 0.0
55 2022-03-17 00:00:00+01:00 18.89853286743164 18.966169357299805 18.433032989501953 18.854768753051758 10.860261917114258 1124314 0.0 0.0
56 2022-03-18 00:00:00+01:00 18.894554138183594 18.98606300354004 18.47281837463379 18.7990665435791 10.828177452087402 1809744 0.0 0.0
57 2022-03-21 00:00:00+01:00 18.7990665435791 19.15714454650879 18.763259887695312 18.91046905517578 10.892345428466797 703039 0.0 0.0
58 2022-03-22 00:00:00+01:00 18.966169357299805 19.184995651245117 18.85079002380371 19.05767822265625 10.977137565612793 715772 0.0 0.0
59 2022-03-23 00:00:00+01:00 19.121337890625 19.15714454650879 18.671751022338867 18.671751022338867 10.754844665527344 1351532 0.0 0.0
60 2022-03-24 00:00:00+01:00 18.659814834594727 18.731430053710938 18.234100341796875 18.30173683166504 10.541718482971191 1286093 0.0 0.0
61 2022-03-25 00:00:00+01:00 18.405181884765625 18.47281837463379 18.170442581176758 18.285823822021484 10.532552719116211 726494 0.0 0.0
62 2022-03-28 00:00:00+02:00 18.393245697021484 18.759281158447266 18.329587936401367 18.433032989501953 10.61734390258789 837768 0.0 0.0
63 2022-03-29 00:00:00+02:00 18.72745132446289 19.256610870361328 18.687665939331055 19.16908073425293 11.041304588317871 917861 0.0 0.0
64 2022-03-30 00:00:00+02:00 19.15714454650879 19.15714454650879 18.46088218688965 18.50862693786621 10.66088581085205 823527 0.0 0.0
65 2022-03-31 00:00:00+02:00 18.50862693786621 18.822938919067383 17.768600463867188 17.796449661254883 10.250675201416016 1780930 0.0 0.0
66 2022-04-01 00:00:00+02:00 17.895915985107422 18.102806091308594 17.880001068115234 17.880001068115234 10.29880142211914 751206 0.0 0.0
67 2022-04-04 00:00:00+02:00 17.92376708984375 17.991403579711914 17.517946243286133 17.79247283935547 10.248384475708008 836607 0.0 0.0
68 2022-04-05 00:00:00+02:00 17.77655792236328 17.975488662719727 17.382671356201172 17.617412567138672 10.147550582885742 842142 0.0 0.0
69 2022-04-06 00:00:00+02:00 17.577625274658203 17.625368118286133 16.87340545654297 17.016637802124023 9.801506996154785 1380130 0.0 0.0
70 2022-04-07 00:00:00+02:00 17.10814666748047 17.382671356201172 16.865449905395508 16.89727783203125 9.732755661010742 857449 0.0 0.0
71 2022-04-08 00:00:00+02:00 17.191696166992188 17.382671356201172 16.99674415588379 17.191696166992188 9.90234088897705 913588 0.0 0.0
72 2022-04-11 00:00:00+02:00 17.219547271728516 17.549774169921875 17.036529541015625 17.203632354736328 9.909215927124023 1067867 0.0 0.0
73 2022-04-12 00:00:00+02:00 17.00868034362793 17.565689086914062 16.833620071411133 17.565689086914062 10.117757797241211 1285128 0.0 0.0
74 2022-04-13 00:00:00+02:00 17.438373565673828 17.525903701782227 17.267290115356445 17.506010055541992 10.083382606506348 697328 0.0 0.0
75 2022-04-14 00:00:00+02:00 17.58160400390625 17.657197952270508 17.406543731689453 17.513967514038086 10.087966918945312 587256 0.0 0.0
76 2022-04-19 00:00:00+02:00 17.54181671142578 17.69300651550293 17.418479919433594 17.517946243286133 10.090258598327637 962344 0.0 0.0
77 2022-04-20 00:00:00+02:00 17.633325576782227 17.967531204223633 17.609453201293945 17.768600463867188 10.234634399414062 675733 0.0 0.0
78 2022-04-21 00:00:00+02:00 17.860109329223633 18.38926887512207 17.860109329223633 18.28980255126953 10.534844398498535 946132 0.0 0.0
79 2022-04-22 00:00:00+02:00 18.063018798828125 18.25399398803711 17.87204360961914 18.031190872192383 10.385885238647461 876938 0.0 0.0
80 2022-04-25 00:00:00+02:00 17.71687889099121 17.891937255859375 17.549774169921875 17.629348754882812 10.154425621032715 857539 0.0 0.0
81 2022-04-26 00:00:00+02:00 17.868066787719727 17.868066787719727 17.342885971069336 17.342885971069336 9.989424705505371 920938 0.0 0.0
82 2022-04-27 00:00:00+02:00 17.42245864868164 17.513967514038086 16.865449905395508 17.430416107177734 10.039841651916504 995898 0.0 0.0
83 2022-04-28 00:00:00+02:00 17.633325576782227 17.99538230895996 17.601497650146484 17.736770629882812 10.216300964355469 1172803 0.0 0.0
84 2022-04-29 00:00:00+02:00 17.848173141479492 18.10678482055664 17.804407119750977 18.015274047851562 10.376717567443848 988594 0.0 0.0
85 2022-05-02 00:00:00+02:00 17.88397979736328 18.05506134033203 16.90921401977539 17.74074935913086 10.218591690063477 1031151 0.0 0.0
86 2022-05-03 00:00:00+02:00 17.848173141479492 17.93570327758789 17.506010055541992 17.808385848999023 10.257550239562988 1121197 0.0 0.0
87 2022-05-04 00:00:00+02:00 18.747344970703125 19.10542106628418 18.532499313354492 18.846811294555664 10.855679512023926 2131889 0.0 0.0
88 2022-05-05 00:00:00+02:00 19.18101692199707 19.37994956970215 18.138612747192383 18.17840003967285 10.470675468444824 1420586 0.0 0.0
89 2022-05-06 00:00:00+02:00 18.110763549804688 18.560348510742188 17.97150993347168 18.369373321533203 10.580676078796387 967240 0.0 0.0
90 2022-05-09 00:00:00+02:00 18.190336227416992 18.305715560913086 17.844194412231445 17.951616287231445 10.340049743652344 1063615 0.0 0.0
91 2022-05-10 00:00:00+02:00 18.063018798828125 18.85079002380371 18.04710578918457 18.341524124145508 10.56463623046875 1106715 0.0 0.0
92 2022-05-11 00:00:00+02:00 18.46088218688965 18.659814834594727 18.27786636352539 18.47281837463379 10.640260696411133 916544 0.0 0.0
93 2022-05-12 00:00:00+02:00 18.04312515258789 18.261951446533203 17.784513473510742 18.222164154052734 10.495885848999023 899448 0.0 0.0
94 2022-05-13 00:00:00+02:00 18.405181884765625 18.55636978149414 18.194313049316406 18.38528823852539 10.58984375 614260 0.0 0.0
95 2022-05-16 00:00:00+02:00 18.381309509277344 18.612070083618164 18.24205780029297 18.417118072509766 10.60817813873291 734648 0.0 0.0
96 2022-05-17 00:00:00+02:00 18.21420669555664 18.747344970703125 18.21420669555664 18.512605667114258 12.222789764404297 625555 2.35 0.0
97 2022-05-18 00:00:00+02:00 18.54443359375 18.592178344726562 18.357437133789062 18.357437133789062 12.120341300964355 676447 0.0 0.0
98 2022-05-19 00:00:00+02:00 17.677091598510742 17.903873443603516 17.474180221557617 17.513967514038086 11.563446998596191 1239650 0.0 0.0
99 2022-05-20 00:00:00+02:00 17.856130599975586 18.063018798828125 17.60547637939453 17.60547637939453 11.623865127563477 792884 0.0 0.0
100 2022-05-23 00:00:00+02:00 17.85215187072754 17.987424850463867 17.633325576782227 17.987424850463867 11.876043319702148 661658 0.0 0.0
101 2022-05-24 00:00:00+02:00 17.79247283935547 17.83623695373535 17.414501190185547 17.418479919433594 11.500401496887207 729103 0.0 0.0
102 2022-05-25 00:00:00+02:00 17.617412567138672 17.89989471435547 17.394607543945312 17.8402156829834 11.778849601745605 645185 0.0 0.0
103 2022-05-26 00:00:00+02:00 17.79247283935547 18.05506134033203 17.720855712890625 18.03516960144043 11.90756607055664 523872 0.0 0.0
104 2022-05-27 00:00:00+02:00 18.031190872192383 18.198293685913086 17.94763946533203 18.198293685913086 12.015267372131348 578243 0.0 0.0
105 2022-05-30 00:00:00+02:00 18.27786636352539 18.433032989501953 18.10678482055664 18.218185424804688 12.028400421142578 568621 0.0 0.0
106 2022-05-31 00:00:00+02:00 18.1823787689209 18.218185424804688 17.97150993347168 18.122699737548828 11.965357780456543 1795488 0.0 0.0
107 2022-06-01 00:00:00+02:00 18.293779373168945 18.44496726989746 18.17840003967285 18.28980255126953 12.075685501098633 494450 0.0 0.0
108 2022-06-02 00:00:00+02:00 18.3494815826416 18.532499313354492 18.3494815826416 18.4569034576416 12.186012268066406 412331 0.0 0.0
109 2022-06-03 00:00:00+02:00 18.592178344726562 18.639921188354492 18.433032989501953 18.564327239990234 12.256937980651855 487960 0.0 0.0
110 2022-06-06 00:00:00+02:00 18.72745132446289 18.830896377563477 18.56830596923828 18.592178344726562 12.2753267288208 605186 0.0 0.0
111 2022-06-07 00:00:00+02:00 18.500669479370117 18.540456771850586 18.32560920715332 18.468839645385742 12.193892478942871 606368 0.0 0.0
112 2022-06-08 00:00:00+02:00 18.512605667114258 18.616050720214844 18.44496726989746 18.564327239990234 12.256937980651855 631100 0.0 0.0
113 2022-06-09 00:00:00+02:00 18.452926635742188 18.82691764831543 18.401203155517578 18.41313934326172 12.15711784362793 1105870 0.0 0.0
114 2022-06-10 00:00:00+02:00 18.273887634277344 18.31367301940918 17.685047149658203 17.685047149658203 11.676401138305664 933108 0.0 0.0
115 2022-06-13 00:00:00+02:00 17.506010055541992 17.768600463867188 17.223526000976562 17.521923065185547 11.56869888305664 1102884 0.0 0.0
116 2022-06-14 00:00:00+02:00 17.71289825439453 17.756664276123047 17.255355834960938 17.255355834960938 11.3927001953125 815872 0.0 0.0
117 2022-06-15 00:00:00+02:00 17.486116409301758 18.015274047851562 17.42245864868164 17.621389389038086 11.634371757507324 987976 0.0 0.0
118 2022-06-16 00:00:00+02:00 17.533859252929688 17.577625274658203 16.328332901000977 16.328332901000977 10.78064250946045 1421657 0.0 0.0
119 2022-06-17 00:00:00+02:00 16.391990661621094 16.694366455078125 16.06574249267578 16.248760223388672 10.728104591369629 3094063 0.0 0.0
120 2022-06-20 00:00:00+02:00 16.40790557861328 16.427799224853516 16.12542152404785 16.356182098388672 10.799028396606445 496948 0.0 0.0
121 2022-06-21 00:00:00+02:00 16.491456985473633 16.821683883666992 16.427799224853516 16.48349952697754 10.883090019226074 563534 0.0 0.0
122 2022-06-22 00:00:00+02:00 16.208974838256836 16.208974838256836 15.759387016296387 15.819067001342773 10.444403648376465 1050007 0.0 0.0
123 2022-06-23 00:00:00+02:00 15.735515594482422 15.799174308776855 15.285928726196289 15.30980110168457 10.108163833618164 1064414 0.0 0.0
124 2022-06-24 00:00:00+02:00 15.413246154785156 15.898639678955078 15.234207153320312 15.86681079864502 10.475926399230957 1215616 0.0 0.0
125 2022-06-27 00:00:00+02:00 16.01799964904785 16.328332901000977 15.958318710327148 16.117464065551758 10.64141845703125 1182615 0.0 0.0
126 2022-06-28 00:00:00+02:00 16.248760223388672 16.519306182861328 16.045848846435547 16.181123733520508 10.683448791503906 1274280 0.0 0.0
127 2022-06-29 00:00:00+02:00 16.014020919799805 16.06574249267578 15.468947410583496 15.528626441955566 10.252642631530762 1058236 0.0 0.0
128 2022-06-30 00:00:00+02:00 15.234207153320312 15.381417274475098 14.800535202026367 15.381417274475098 10.155447959899902 1934410 0.0 0.0
129 2022-07-01 00:00:00+02:00 15.277972221374512 15.679815292358398 15.230228424072266 15.377437591552734 10.15282154083252 909034 0.0 0.0
130 2022-07-04 00:00:00+02:00 15.564434051513672 15.791215896606445 15.488840103149414 15.687771797180176 10.35771656036377 798569 0.0 0.0
131 2022-07-05 00:00:00+02:00 15.763365745544434 15.91455364227295 14.884086608886719 14.884086608886719 9.8270902633667 1966763 0.0 0.0
132 2022-07-06 00:00:00+02:00 15.079039573669434 15.202378273010254 14.907958984375 15.110869407653809 9.976822853088379 938909 0.0 0.0
133 2022-07-07 00:00:00+02:00 15.301843643188477 15.898639678955078 15.23818588256836 15.807130813598633 10.436522483825684 1170179 0.0 0.0
134 2022-07-08 00:00:00+02:00 15.69572925567627 16.39596939086914 15.532605171203613 16.049827575683594 10.596760749816895 1372047 0.0 0.0
135 2022-07-11 00:00:00+02:00 15.608199119567871 15.69572925567627 15.285928726196289 15.488840103149414 10.226373672485352 877119 0.0 0.0
136 2022-07-12 00:00:00+02:00 15.381417274475098 15.556476593017578 14.983552932739258 15.520668983459473 10.24738883972168 1161955 0.0 0.0
137 2022-07-13 00:00:00+02:00 15.425182342529297 15.647985458374023 15.234207153320312 15.357544898986816 10.139686584472656 1081802 0.0 0.0
138 2022-07-14 00:00:00+02:00 15.333672523498535 15.357544898986816 14.728919982910156 14.888065338134766 9.829717636108398 896311 0.0 0.0
139 2022-07-15 00:00:00+02:00 14.959680557250977 15.548519134521484 14.923872947692871 15.433138847351074 10.189598083496094 1160019 0.0 0.0
140 2022-07-18 00:00:00+02:00 15.970254898071289 16.316396713256836 15.894660949707031 16.133378982543945 10.651925086975098 1770123 0.0 0.0
141 2022-07-19 00:00:00+02:00 16.010042190551758 16.698345184326172 15.755409240722656 16.48349952697754 10.883090019226074 1574206 0.0 0.0
142 2022-07-20 00:00:00+02:00 16.551136016845703 16.67845344543457 16.145315170288086 16.439735412597656 10.854194641113281 876721 0.0 0.0
143 2022-07-21 00:00:00+02:00 16.30048179626465 16.646623611450195 16.16520881652832 16.364139556884766 10.804283142089844 1014598 0.0 0.0
144 2022-07-22 00:00:00+02:00 16.244781494140625 16.463605880737305 15.98219108581543 16.037891387939453 10.58888053894043 1100753 0.0 0.0
145 2022-07-25 00:00:00+02:00 16.014020919799805 16.39596939086914 15.874768257141113 16.11348533630371 10.638790130615234 826151 0.0 0.0
146 2022-07-26 00:00:00+02:00 16.11348533630371 16.133378982543945 15.600241661071777 15.715621948242188 10.376105308532715 1071673 0.0 0.0
147 2022-07-27 00:00:00+02:00 15.894660949707031 15.970254898071289 15.703685760498047 15.950362205505371 10.531089782714844 1076946 0.0 0.0
148 2022-07-28 00:00:00+02:00 16.368118286132812 16.686410903930664 16.232845306396484 16.551136016845703 10.927746772766113 1713701 0.0 0.0
149 2022-07-29 00:00:00+02:00 16.634687423706055 17.084274291992188 16.551136016845703 17.00868034362793 11.229835510253906 1096515 0.0 0.0
150 2022-08-01 00:00:00+02:00 17.088253021240234 17.303098678588867 16.83759880065918 16.861469268798828 11.132641792297363 698449 0.0 0.0
151 2022-08-02 00:00:00+02:00 16.833620071411133 16.992765426635742 16.674474716186523 16.937063217163086 11.182550430297852 683927 0.0 0.0
152 2022-08-03 00:00:00+02:00 16.92115020751953 17.175783157348633 16.83759880065918 17.12008285522461 11.303388595581055 520776 0.0 0.0
153 2022-08-04 00:00:00+02:00 17.132017135620117 17.334928512573242 17.004701614379883 17.064380645751953 11.266611099243164 770841 0.0 0.0
154 2022-08-05 00:00:00+02:00 17.100189208984375 17.283206939697266 16.821683883666992 17.104167938232422 11.292880058288574 676884 0.0 0.0
155 2022-08-08 00:00:00+02:00 17.283206939697266 17.47020149230957 17.076316833496094 17.319013595581055 11.434730529785156 640299 0.0 0.0
156 2022-08-09 00:00:00+02:00 17.247398376464844 17.342885971069336 16.9808292388916 17.112125396728516 11.298134803771973 513653 0.0 0.0
157 2022-08-10 00:00:00+02:00 17.084274291992188 17.43439483642578 16.90921401977539 17.394607543945312 11.484639167785645 565334 0.0 0.0
158 2022-08-11 00:00:00+02:00 17.45826530456543 17.474180221557617 17.15191078186035 17.267290115356445 11.400580406188965 740132 0.0 0.0
159 2022-08-12 00:00:00+02:00 17.23944091796875 17.486116409301758 17.231483459472656 17.342885971069336 11.450491905212402 966868 0.0 0.0
160 2022-08-15 00:00:00+02:00 17.346864700317383 17.474180221557617 17.064380645751953 17.243419647216797 11.384819984436035 404314 0.0 0.0
161 2022-08-16 00:00:00+02:00 17.342885971069336 17.426437377929688 17.175783157348633 17.36277961730957 11.46362590789795 615567 0.0 0.0
162 2022-08-17 00:00:00+02:00 17.44632911682129 17.525903701782227 16.742111206054688 16.76598358154297 11.069597244262695 1020374 0.0 0.0
163 2022-08-18 00:00:00+02:00 16.821683883666992 17.25137710571289 16.769962310791016 16.853513717651367 11.127388000488281 738694 0.0 0.0
164 2022-08-19 00:00:00+02:00 16.69038963317871 16.901256561279297 16.606836318969727 16.606836318969727 10.964521408081055 628184 0.0 0.0
165 2022-08-22 00:00:00+02:00 16.479520797729492 16.527265548706055 15.92251205444336 15.978212356567383 10.549478530883789 866276 0.0 0.0
166 2022-08-23 00:00:00+02:00 15.942404747009277 16.292524337768555 15.918533325195312 16.292524337768555 10.756999015808105 860233 0.0 0.0
167 2022-08-24 00:00:00+02:00 16.268653869628906 16.308439254760742 15.950362205505371 16.240802764892578 10.72284984588623 704240 0.0 0.0
168 2022-08-25 00:00:00+02:00 16.388011932373047 16.523286819458008 16.216930389404297 16.292524337768555 10.756999015808105 479490 0.0 0.0
169 2022-08-26 00:00:00+02:00 16.439735412597656 16.598880767822266 15.958318710327148 15.990147590637207 10.557356834411621 546820 0.0 0.0
170 2022-08-29 00:00:00+02:00 15.91455364227295 16.44769287109375 15.743473052978516 16.43177604675293 10.84893798828125 771344 0.0 0.0
171 2022-08-30 00:00:00+02:00 16.54317855834961 16.67845344543457 16.15327262878418 16.248760223388672 10.728104591369629 741509 0.0 0.0
172 2022-08-31 00:00:00+02:00 16.356182098388672 16.44371223449707 16.0418701171875 16.0418701171875 10.591507911682129 956161 0.0 0.0
173 2022-09-01 00:00:00+02:00 15.978212356567383 15.978212356567383 15.691749572753906 15.755409240722656 10.402374267578125 998562 0.0 0.0
174 2022-09-02 00:00:00+02:00 16.161230087280273 16.519306182861328 15.962298393249512 16.391990661621094 10.822671890258789 997552 0.0 0.0
175 2022-09-05 00:00:00+02:00 15.874768257141113 15.91455364227295 15.520668983459473 15.723580360412598 10.381360054016113 1129909 0.0 0.0
176 2022-09-06 00:00:00+02:00 15.763365745544434 16.09359359741211 15.683793067932129 15.86681079864502 10.475926399230957 638791 0.0 0.0
177 2022-09-07 00:00:00+02:00 15.616155624389648 16.264673233032227 15.58034896850586 16.21295166015625 10.704462051391602 819365 0.0 0.0
178 2022-09-08 00:00:00+02:00 16.292524337768555 16.364139556884766 15.954340934753418 16.14133644104004 10.65717887878418 690130 0.0 0.0
179 2022-09-09 00:00:00+02:00 16.19305992126465 16.575008392333984 16.19305992126465 16.427799224853516 10.8463134765625 623223 0.0 0.0
180 2022-09-12 00:00:00+02:00 16.614795684814453 17.076316833496094 16.571029663085938 16.98480796813965 11.21407413482666 880959 0.0 0.0
181 2022-09-13 00:00:00+02:00 17.02061653137207 17.549774169921875 16.698345184326172 16.722217559814453 11.04069995880127 1949078 0.0 0.0
182 2022-09-14 00:00:00+02:00 16.55511474609375 16.65458106994629 16.06574249267578 16.316396713256836 10.772761344909668 1147799 0.0 0.0
183 2022-09-15 00:00:00+02:00 16.316396713256836 16.50737190246582 16.01799964904785 16.12542152404785 10.646671295166016 704698 0.0 0.0
184 2022-09-16 00:00:00+02:00 15.92648983001709 16.05380630493164 15.647985458374023 15.954340934753418 10.533716201782227 1934284 0.0 0.0
185 2022-09-19 00:00:00+02:00 15.890682220458984 16.419841766357422 15.791215896606445 16.368118286132812 10.806910514831543 961766 0.0 0.0
186 2022-09-20 00:00:00+02:00 16.44769287109375 16.55511474609375 15.930468559265137 15.99412727355957 10.559986114501953 712846 0.0 0.0
187 2022-09-21 00:00:00+02:00 15.894660949707031 16.137357711791992 15.815088272094727 16.1294002532959 10.649297714233398 557165 0.0 0.0
188 2022-09-22 00:00:00+02:00 15.727558135986328 16.197038650512695 15.667879104614258 16.069721221923828 10.609895706176758 892616 0.0 0.0
189 2022-09-23 00:00:00+02:00 16.0418701171875 16.161230087280273 15.64002799987793 15.854874610900879 10.468045234680176 1425407 0.0 0.0
190 2022-09-26 00:00:00+02:00 15.675835609436035 16.037891387939453 15.604220390319824 15.604220390319824 10.302553176879883 823367 0.0 0.0
191 2022-09-27 00:00:00+02:00 15.6360502243042 15.886704444885254 15.492818832397461 15.687771797180176 10.35771656036377 1239006 0.0 0.0
192 2022-09-28 00:00:00+02:00 15.433138847351074 16.109508514404297 15.170549392700195 15.990147590637207 10.557356834411621 1753368 0.0 0.0
193 2022-09-29 00:00:00+02:00 15.986169815063477 15.986169815063477 15.40926742553711 15.516690254211426 10.24476146697998 1373640 0.0 0.0
194 2022-09-30 00:00:00+02:00 15.6360502243042 15.894660949707031 15.528626441955566 15.842939376831055 10.460165023803711 1225082 0.0 0.0
195 2022-10-03 00:00:00+02:00 15.671856880187988 16.419841766357422 15.628091812133789 16.34822654724121 10.793776512145996 968647 0.0 0.0
196 2022-10-04 00:00:00+02:00 16.618772506713867 17.267290115356445 16.618772506713867 17.267290115356445 11.400580406188965 1425231 0.0 0.0
197 2022-10-05 00:00:00+02:00 17.100189208984375 17.35084342956543 17.016637802124023 17.08029556274414 11.277118682861328 1216119 0.0 0.0
198 2022-10-06 00:00:00+02:00 17.203632354736328 17.32697105407715 16.88534164428711 16.976850509643555 11.208819389343262 825166 0.0 0.0
199 2022-10-07 00:00:00+02:00 16.976850509643555 17.12803840637207 16.65458106994629 16.730175018310547 11.045954704284668 839674 0.0 0.0
200 2022-10-10 00:00:00+02:00 16.610815048217773 17.56966781616211 16.586944580078125 17.402565002441406 11.489893913269043 1029281 0.0 0.0
201 2022-10-11 00:00:00+02:00 17.088253021240234 17.23944091796875 16.284568786621094 16.463605880737305 10.869954109191895 2020228 0.0 0.0
202 2022-10-12 00:00:00+02:00 16.499414443969727 16.929107666015625 16.320375442504883 16.789854049682617 11.085356712341309 1510536 0.0 0.0
203 2022-10-13 00:00:00+02:00 16.694366455078125 17.17976188659668 16.384033203125 17.17976188659668 11.342791557312012 1551570 0.0 0.0
204 2022-10-14 00:00:00+02:00 17.525903701782227 17.69300651550293 16.841577529907227 17.012659072875977 11.232461929321289 1388605 0.0 0.0
205 2022-10-17 00:00:00+02:00 17.012659072875977 17.49407386779785 16.913192749023438 17.287185668945312 11.413715362548828 857670 0.0 0.0
206 2022-10-18 00:00:00+02:00 17.43439483642578 17.951616287231445 17.39858627319336 17.617412567138672 11.631746292114258 1118895 0.0 0.0
207 2022-10-19 00:00:00+02:00 17.732791900634766 17.820322036743164 17.565689086914062 17.58160400390625 11.60810375213623 659672 0.0 0.0
208 2022-10-20 00:00:00+02:00 17.4980525970459 17.796449661254883 17.414501190185547 17.677091598510742 11.671148300170898 869126 0.0 0.0
209 2022-10-21 00:00:00+02:00 17.506010055541992 17.85215187072754 17.346864700317383 17.85215187072754 11.786728858947754 781749 0.0 0.0
210 2022-10-24 00:00:00+02:00 18.699600219726562 18.834875106811523 17.708919525146484 18.345502853393555 12.11246109008789 1695268 0.0 0.0
211 2022-10-25 00:00:00+02:00 18.440990447998047 18.627986907958984 17.931724548339844 18.202272415161133 12.017894744873047 1131150 0.0 0.0
212 2022-10-26 00:00:00+02:00 18.22614288330078 18.43701171875 17.975488662719727 18.329587936401367 12.10195255279541 1222905 0.0 0.0
213 2022-10-27 00:00:00+02:00 18.341524124145508 18.600135803222656 18.08291244506836 18.293779373168945 12.078311920166016 778065 0.0 0.0
214 2022-10-28 00:00:00+02:00 18.078933715820312 18.32560920715332 17.975488662719727 18.269908905029297 12.06255054473877 1099727 0.0 0.0
215 2022-10-31 00:00:00+01:00 18.369373321533203 18.532499313354492 18.14259147644043 18.150548934936523 11.983743667602539 1018936 0.0 0.0
216 2022-11-01 00:00:00+01:00 18.293779373168945 18.492712020874023 18.063018798828125 18.15452766418457 11.986371040344238 1016061 0.0 0.0
217 2022-11-02 00:00:00+01:00 18.186357498168945 18.194313049316406 17.88397979736328 18.063018798828125 11.925954818725586 1299861 0.0 0.0
218 2022-11-03 00:00:00+01:00 17.69300651550293 18.015274047851562 17.406543731689453 17.98344612121582 11.873414993286133 1179101 0.0 0.0
219 2022-11-04 00:00:00+01:00 18.202272415161133 18.894554138183594 18.15452766418457 18.791109085083008 12.406668663024902 1369272 0.0 0.0
220 2022-11-07 00:00:00+01:00 18.759281158447266 19.391883850097656 18.659814834594727 19.336183547973633 12.766550064086914 1259541 0.0 0.0
221 2022-11-08 00:00:00+01:00 19.332204818725586 19.566944122314453 19.188974380493164 19.41177749633789 12.816459655761719 886906 0.0 0.0
222 2022-11-09 00:00:00+01:00 19.415756225585938 19.415756225585938 18.954233169555664 19.208866119384766 12.682489395141602 1198007 0.0 0.0
223 2022-11-10 00:00:00+01:00 19.153165817260742 19.59479522705078 19.03778648376465 19.586837768554688 12.93204116821289 1410472 0.0 0.0
224 2022-11-11 00:00:00+01:00 19.59479522705078 19.857385635375977 19.562965393066406 19.78974723815918 13.066010475158691 1274687 0.0 0.0
225 2022-11-14 00:00:00+01:00 19.81361961364746 20.112018585205078 19.690282821655273 20.032445907592773 13.226252555847168 1295287 0.0 0.0
226 2022-11-15 00:00:00+01:00 20.01255226135254 20.191591262817383 19.61071014404297 19.805662155151367 13.076519966125488 1056914 0.0 0.0
227 2022-11-16 00:00:00+01:00 19.75394058227539 19.785770416259766 19.276504516601562 19.44758415222168 12.840100288391113 1015000 0.0 0.0
228 2022-11-17 00:00:00+01:00 19.4833927154541 19.65447425842285 19.09746551513672 19.296396255493164 12.740280151367188 644501 0.0 0.0
229 2022-11-18 00:00:00+01:00 19.42371368408203 19.666410446166992 19.332204818725586 19.666410446166992 12.984579086303711 829590 0.0 0.0
230 2022-11-21 00:00:00+01:00 19.598773956298828 19.606731414794922 19.02187156677246 19.101444244384766 12.611564636230469 918183 0.0 0.0
231 2022-11-22 00:00:00+01:00 19.137252807617188 19.49930763244629 19.073593139648438 19.395862579345703 12.805953025817871 915438 0.0 0.0
232 2022-11-23 00:00:00+01:00 19.475435256958008 19.51124382019043 19.149187088012695 19.264568328857422 12.719265937805176 867427 0.0 0.0
233 2022-11-24 00:00:00+01:00 19.31231117248535 19.551029205322266 19.31231117248535 19.539094924926758 12.900519371032715 658838 0.0 0.0
234 2022-11-25 00:00:00+01:00 19.535114288330078 19.574901580810547 19.371990203857422 19.419734954833984 12.8217134475708 444192 0.0 0.0
235 2022-11-28 00:00:00+01:00 19.296396255493164 19.356077194213867 19.085529327392578 19.16908073425293 12.656221389770508 743198 0.0 0.0
236 2022-11-29 00:00:00+01:00 18.830896377563477 18.978105545043945 18.572284698486328 18.72745132446289 12.364640235900879 1801344 0.0 0.0
237 2022-11-30 00:00:00+01:00 18.89853286743164 18.92638397216797 18.405181884765625 18.675729751586914 12.330490112304688 1555300 0.0 0.0
238 2022-12-01 00:00:00+01:00 18.87466049194336 18.958213806152344 18.56830596923828 18.73938751220703 12.372520446777344 1102744 0.0 0.0
239 2022-12-02 00:00:00+01:00 18.663793563842773 19.013914108276367 18.55636978149414 19.005956649780273 12.5485200881958 783142 0.0 0.0
240 2022-12-05 00:00:00+01:00 18.966169357299805 19.061656951904297 18.73938751220703 18.86272621154785 12.453953742980957 726414 0.0 0.0
241 2022-12-06 00:00:00+01:00 18.870683670043945 19.073593139648438 18.791109085083008 18.962190628051758 12.519624710083008 752418 0.0 0.0
242 2022-12-07 00:00:00+01:00 18.922405242919922 18.958213806152344 18.572284698486328 18.62002944946289 12.293715476989746 1312303 0.0 0.0
243 2022-12-08 00:00:00+01:00 18.48475456237793 18.759281158447266 18.421096801757812 18.516584396362305 12.225415229797363 1077991 0.0 0.0
244 2022-12-09 00:00:00+01:00 18.56830596923828 18.890575408935547 18.52056312561035 18.83885383605957 12.438191413879395 876148 0.0 0.0
245 2022-12-12 00:00:00+01:00 18.735408782958984 18.763259887695312 18.417118072509766 18.468839645385742 12.193892478942871 1151398 0.0 0.0
246 2022-12-13 00:00:00+01:00 18.604114532470703 19.065635681152344 18.552391052246094 18.942298889160156 12.506489753723145 1226494 0.0 0.0
247 2022-12-14 00:00:00+01:00 18.858747482299805 19.017892837524414 18.75530242919922 18.8865966796875 12.469715118408203 958418 0.0 0.0
248 2022-12-15 00:00:00+01:00 18.73938751220703 18.751323699951172 18.369373321533203 18.47281837463379 12.19651985168457 1115743 0.0 0.0
249 2022-12-16 00:00:00+01:00 18.4569034576416 18.627986907958984 18.329587936401367 18.564327239990234 12.256937980651855 1941860 0.0 0.0
250 2022-12-19 00:00:00+01:00 18.58422088623047 18.75530242919922 18.548412322998047 18.627986907958984 12.298968315124512 778150 0.0 0.0
251 2022-12-20 00:00:00+01:00 18.504648208618164 18.7990665435791 18.393245697021484 18.7990665435791 12.411921501159668 935164 0.0 0.0
252 2022-12-21 00:00:00+01:00 18.89853286743164 19.244674682617188 18.8865966796875 19.208866119384766 12.682489395141602 1124419 0.0 0.0
253 2022-12-22 00:00:00+01:00 19.272525787353516 19.38790512084961 18.783153533935547 18.82691764831543 12.430309295654297 1217165 0.0 0.0
254 2022-12-23 00:00:00+01:00 18.89853286743164 19.14520835876465 18.81498146057129 19.0338077545166 12.566908836364746 552525 0.0 0.0
255 2022-12-27 00:00:00+01:00 19.177038192749023 19.24069595336914 19.03778648376465 19.04972267150879 12.57741641998291 387951 0.0 0.0
256 2022-12-28 00:00:00+01:00 19.09746551513672 19.177038192749023 18.934341430664062 19.005956649780273 12.5485200881958 517744 0.0 0.0
257 2022-12-29 00:00:00+01:00 19.001977920532227 19.077571868896484 18.8865966796875 19.045743942260742 12.574789047241211 398794 0.0 0.0
258 2022-12-30 00:00:00+01:00 18.946277618408203 19.017892837524414 18.75530242919922 18.791109085083008 12.406668663024902 449339 0.0 0.0
259 2023-01-02 00:00:00+01:00 18.990041732788086 19.383926391601562 18.914447784423828 19.383926391601562 12.798072814941406 671340 0.0 0.0
260 2023-01-03 00:00:00+01:00 19.356077194213867 19.78179168701172 19.344141006469727 19.435649871826172 12.832221984863281 983215 0.0 0.0
261 2023-01-04 00:00:00+01:00 19.48737144470215 19.982711791992188 19.44758415222168 19.94292640686035 13.167146682739258 1333355 0.0 0.0
262 2023-01-05 00:00:00+01:00 19.932979583740234 20.121965408325195 19.845449447631836 20.002605438232422 13.206549644470215 1261924 0.0 0.0
263 2023-01-06 00:00:00+01:00 20.112018585205078 20.410415649414062 19.95287322998047 20.410415649414062 13.47580337524414 641716 0.0 0.0
264 2023-01-09 00:00:00+01:00 20.410415649414062 20.569562911987305 20.32089614868164 20.440256118774414 13.495504379272461 839910 0.0 0.0
265 2023-01-10 00:00:00+01:00 20.48004150390625 20.48004150390625 19.932979583740234 20.17169761657715 13.31818962097168 1099813 0.0 0.0
266 2023-01-11 00:00:00+01:00 20.241323471069336 20.838119506835938 20.10207176208496 20.599401473999023 13.600579261779785 1479852 0.0 0.0
267 2023-01-12 00:00:00+01:00 20.60934829711914 20.758546829223633 20.470096588134766 20.639188766479492 13.626847267150879 1067892 0.0 0.0
268 2023-01-13 00:00:00+01:00 20.559614181518555 21.01715850830078 20.430309295654297 20.788387298583984 13.72535514831543 1563851 0.0 0.0
269 2023-01-16 00:00:00+01:00 20.589454650878906 20.72870635986328 20.181644439697266 20.70881462097168 14.766735076904297 790612 1.54 0.0
270 2023-01-17 00:00:00+01:00 20.698867797851562 20.997264862060547 20.499935150146484 20.659080505371094 14.731270790100098 917298 0.0 0.0
271 2023-01-18 00:00:00+01:00 20.649133682250977 20.80828094482422 20.39052391052246 20.688920974731445 14.752549171447754 976454 0.0 0.0
272 2023-01-19 00:00:00+01:00 20.569562911987305 20.57950782775879 20.26121711730957 20.39052391052246 14.539773941040039 888012 0.0 0.0
273 2023-01-20 00:00:00+01:00 20.529775619506836 20.649133682250977 20.340789794921875 20.619295120239258 14.702900886535645 757103 0.0 0.0
274 2023-01-23 00:00:00+01:00 20.678974151611328 20.70881462097168 20.5098819732666 20.57950782775879 14.674530029296875 540245 0.0 0.0
275 2023-01-24 00:00:00+01:00 20.688920974731445 20.72870635986328 20.599401473999023 20.72870635986328 14.780917167663574 497230 0.0 0.0
276 2023-01-25 00:00:00+01:00 20.72870635986328 20.788387298583984 20.539722442626953 20.72870635986328 14.780917167663574 610198 0.0 0.0
277 2023-01-26 00:00:00+01:00 20.82817268371582 21.01715850830078 20.549667358398438 21.01715850830078 14.986603736877441 1177819 0.0 0.0
278 2023-01-27 00:00:00+01:00 21.0271053314209 21.315555572509766 20.937585830688477 21.196197509765625 15.11427116394043 1399061 0.0 0.0
279 2023-01-30 00:00:00+01:00 21.106678009033203 21.196197509765625 20.967424392700195 21.096731185913086 15.043343544006348 1048142 0.0 0.0
280 2023-01-31 00:00:00+01:00 21.156410217285156 21.255876541137695 21.007211685180664 21.216089248657227 15.128454208374023 1153987 0.0 0.0
281 2023-02-01 00:00:00+01:00 21.36528968811035 21.633846282958984 21.295663833618164 21.604007720947266 15.40506649017334 1127903 0.0 0.0
282 2023-02-02 00:00:00+01:00 21.604007720947266 21.922298431396484 21.514488220214844 21.792993545532227 15.539824485778809 1405008 0.0 0.0
283 2023-02-03 00:00:00+01:00 21.733312606811523 21.981977462768555 21.6437931060791 21.981977462768555 15.674581527709961 1224408 0.0 0.0
284 2023-02-06 00:00:00+01:00 21.713420867919922 21.862619400024414 21.514488220214844 21.6437931060791 15.43343448638916 1078283 0.0 0.0
285 2023-02-07 00:00:00+01:00 21.812885284423828 21.912351608276367 21.6437931060791 21.65374183654785 15.440529823303223 983431 0.0 0.0
286 2023-02-08 00:00:00+01:00 21.68358039855957 22.051603317260742 21.68358039855957 21.832778930664062 15.568195343017578 983919 0.0 0.0
287 2023-02-09 00:00:00+01:00 21.862619400024414 22.03171157836914 21.74325942993164 21.892459869384766 15.610750198364258 921355 0.0 0.0
288 2023-02-10 00:00:00+01:00 21.773099899291992 21.892459869384766 21.39512825012207 21.58411407470703 15.390880584716797 931770 0.0 0.0
289 2023-02-13 00:00:00+01:00 21.613954544067383 21.68358039855957 21.484647750854492 21.534381866455078 15.355417251586914 653816 0.0 0.0
290 2023-02-14 00:00:00+01:00 21.564220428466797 21.6437931060791 21.415021896362305 21.484647750854492 15.319952964782715 566610 0.0 0.0
291 2023-02-15 00:00:00+01:00 21.385181427001953 21.72336769104004 21.345396041870117 21.703474044799805 15.475992202758789 971141 0.0 0.0
292 2023-02-16 00:00:00+01:00 21.733312606811523 21.852672576904297 21.58411407470703 21.753206253051758 15.511454582214355 860626 0.0 0.0
293 2023-02-17 00:00:00+01:00 21.604007720947266 21.822832107543945 21.484647750854492 21.763153076171875 15.518546104431152 558814 0.0 0.0
294 2023-02-20 00:00:00+01:00 21.78304672241211 22.340055465698242 21.78304672241211 22.340055465698242 15.929916381835938 997833 0.0 0.0
295 2023-02-21 00:00:00+01:00 22.300268173217773 22.4693603515625 22.111284255981445 22.19085693359375 15.823527336120605 907456 0.0 0.0
296 2023-02-22 00:00:00+01:00 21.59406089782715 22.011817932128906 21.484647750854492 21.97203254699707 15.66749095916748 1114536 0.0 0.0
297 2023-02-23 00:00:00+01:00 22.06155014038086 22.06155014038086 21.05694580078125 21.126571655273438 15.064623832702637 2085708 0.0 0.0
298 2023-02-24 00:00:00+01:00 21.126571655273438 21.763153076171875 20.967424392700195 21.07683753967285 15.029159545898438 1493284 0.0 0.0
299 2023-02-27 00:00:00+01:00 21.285715103149414 21.604007720947266 21.206144332885742 21.454809188842773 15.298676490783691 744495 0.0 0.0
300 2023-02-28 00:00:00+01:00 21.325502395629883 21.72336769104004 21.265823364257812 21.534381866455078 15.355417251586914 1797489 0.0 0.0
301 2023-03-01 00:00:00+01:00 21.613954544067383 21.663686752319336 21.30561065673828 21.37523651123047 15.241935729980469 1095414 0.0 0.0
302 2023-03-02 00:00:00+01:00 21.295663833618164 21.43491554260254 21.096731185913086 21.355342864990234 15.227750778198242 729153 0.0 0.0
303 2023-03-03 00:00:00+01:00 21.454809188842773 21.673633575439453 21.444862365722656 21.59406089782715 15.39797306060791 731340 0.0 0.0
304 2023-03-06 00:00:00+01:00 21.59406089782715 21.633846282958984 21.136518478393555 21.136518478393555 15.071715354919434 1177638 0.0 0.0
305 2023-03-07 00:00:00+01:00 21.14646339416504 21.255876541137695 21.0469970703125 21.126571655273438 15.064623832702637 894823 0.0 0.0
306 2023-03-08 00:00:00+01:00 21.0271053314209 21.216089248657227 20.7386531829834 21.216089248657227 15.128454208374023 1145240 0.0 0.0
307 2023-03-09 00:00:00+01:00 21.07683753967285 21.196197509765625 21.01715850830078 21.066890716552734 15.022066116333008 611676 0.0 0.0
308 2023-03-10 00:00:00+01:00 20.76849365234375 21.007211685180664 20.589454650878906 20.897798538208008 14.901491165161133 1111284 0.0 0.0
309 2023-03-13 00:00:00+01:00 20.688920974731445 20.778440475463867 20.07223129272461 20.221431732177734 14.419198036193848 1243550 0.0 0.0
310 2023-03-14 00:00:00+01:00 20.181644439697266 20.470096588134766 19.903139114379883 20.400468826293945 14.546865463256836 1301756 0.0 0.0
311 2023-03-15 00:00:00+01:00 20.430309295654297 20.440256118774414 19.093486785888672 19.121337890625 13.634759902954102 2538134 0.0 0.0
312 2023-03-16 00:00:00+01:00 19.578880310058594 19.68232536315918 18.914447784423828 19.344141006469727 13.793633460998535 1772646 0.0 0.0
313 2023-03-17 00:00:00+01:00 19.395862579345703 19.68232536315918 18.87466049194336 19.20488739013672 13.694336891174316 2459464 0.0 0.0
314 2023-03-20 00:00:00+01:00 19.196931838989258 19.531137466430664 18.723472595214844 19.467479705810547 13.881580352783203 903163 0.0 0.0
315 2023-03-21 00:00:00+01:00 19.73006820678711 20.17169761657715 19.646516799926758 19.972766876220703 14.241883277893066 1270092 0.0 0.0
316 2023-03-22 00:00:00+01:00 19.932979583740234 20.340789794921875 19.869321823120117 20.032445907592773 14.284439086914062 1100120 0.0 0.0
317 2023-03-23 00:00:00+01:00 19.962818145751953 19.962818145751953 19.6584529876709 19.845449447631836 14.151098251342773 1594495 0.0 0.0
318 2023-03-24 00:00:00+01:00 19.74200439453125 19.761898040771484 19.165102005004883 19.726089477539062 14.065988540649414 2008460 0.0 0.0
319 2023-03-27 00:00:00+02:00 20.07223129272461 20.301002502441406 19.833513259887695 20.221431732177734 14.419198036193848 1382281 0.0 0.0
320 2023-03-28 00:00:00+02:00 20.42036247253418 20.559614181518555 20.13191032409668 20.470096588134766 14.596513748168945 1220512 0.0 0.0
321 2023-03-29 00:00:00+02:00 20.559614181518555 20.639188766479492 20.370630264282227 20.539722442626953 14.646161079406738 791707 0.0 0.0
322 2023-03-30 00:00:00+02:00 20.659080505371094 21.01715850830078 20.629241943359375 20.82817268371582 14.851842880249023 968974 0.0 0.0
323 2023-03-31 00:00:00+02:00 20.82817268371582 21.01715850830078 20.748600006103516 20.95747947692871 14.944049835205078 1172265 0.0 0.0
324 2023-04-03 00:00:00+02:00 20.967424392700195 21.066890716552734 20.688920974731445 20.937585830688477 14.929863929748535 1141103 0.0 0.0
325 2023-04-04 00:00:00+02:00 21.08678436279297 21.186250686645508 20.858013153076172 20.858013153076172 14.873122215270996 728163 0.0 0.0
326 2023-04-05 00:00:00+02:00 20.897798538208008 20.947532653808594 20.46014976501465 20.499935150146484 14.617789268493652 1310588 0.0 0.0
327 2023-04-06 00:00:00+02:00 20.649133682250977 20.758546829223633 20.470096588134766 20.589454650878906 14.681623458862305 957116 0.0 0.0
328 2023-04-11 00:00:00+02:00 20.887853622436523 21.216089248657227 20.867958068847656 21.196197509765625 15.11427116394043 1155390 0.0 0.0
329 2023-04-12 00:00:00+02:00 21.156410217285156 21.285715103149414 20.907745361328125 21.226036071777344 15.135547637939453 907456 0.0 0.0
330 2023-04-13 00:00:00+02:00 21.186250686645508 21.385181427001953 21.14646339416504 21.255876541137695 15.156824111938477 1096832 0.0 0.0
331 2023-04-14 00:00:00+02:00 21.315555572509766 21.514488220214844 21.216089248657227 21.484647750854492 15.319952964782715 1071929 0.0 0.0
332 2023-04-17 00:00:00+02:00 21.882511138916016 22.07149887084961 21.58411407470703 21.892459869384766 15.610750198364258 1508490 0.0 0.0
333 2023-04-18 00:00:00+02:00 21.862619400024414 22.041658401489258 21.484647750854492 21.613954544067383 15.41215991973877 1127797 0.0 0.0
334 2023-04-19 00:00:00+02:00 21.633846282958984 21.65374183654785 21.37523651123047 21.633846282958984 15.426342964172363 908843 0.0 0.0
335 2023-04-20 00:00:00+02:00 21.68358039855957 21.68358039855957 21.484647750854492 21.6239013671875 15.41925048828125 810257 0.0 0.0
336 2023-04-21 00:00:00+02:00 21.58411407470703 21.58411407470703 21.255876541137695 21.424968719482422 15.277397155761719 823291 0.0 0.0
337 2023-04-24 00:00:00+02:00 21.385181427001953 21.703474044799805 21.295663833618164 21.633846282958984 15.426342964172363 882673 0.0 0.0
338 2023-04-25 00:00:00+02:00 21.59406089782715 21.74325942993164 21.385181427001953 21.663686752319336 15.447622299194336 1318878 0.0 0.0
339 2023-04-26 00:00:00+02:00 21.464754104614258 21.613954544067383 21.096731185913086 21.613954544067383 15.41215991973877 1135730 0.0 0.0
340 2023-04-27 00:00:00+02:00 21.504541397094727 21.504541397094727 20.897798538208008 21.11662483215332 15.05752944946289 1167454 0.0 0.0
341 2023-04-28 00:00:00+02:00 21.136518478393555 21.65374183654785 21.007211685180664 21.65374183654785 15.440529823303223 1480858 0.0 0.0
342 2023-05-02 00:00:00+02:00 21.68358039855957 21.713420867919922 21.126571655273438 21.14646339416504 15.078805923461914 1146537 0.0 0.0
343 2023-05-03 00:00:00+02:00 21.285715103149414 21.504541397094727 21.186250686645508 21.424968719482422 15.277397155761719 1054129 0.0 0.0
344 2023-05-04 00:00:00+02:00 20.987319946289062 21.6437931060791 20.340789794921875 20.66902732849121 14.738363265991211 1741640 0.0 0.0
345 2023-05-05 00:00:00+02:00 21.01715850830078 21.59406089782715 20.80828094482422 21.444862365722656 15.291584968566895 1420028 0.0 0.0
346 2023-05-08 00:00:00+02:00 21.484647750854492 21.514488220214844 21.245929718017578 21.514488220214844 15.341232299804688 674713 0.0 0.0
347 2023-05-09 00:00:00+02:00 21.663686752319336 21.663686752319336 21.17630386352539 21.444862365722656 15.291584968566895 853724 0.0 0.0
348 2023-05-10 00:00:00+02:00 21.49459457397461 21.663686752319336 21.156410217285156 21.405075073242188 15.263213157653809 826931 0.0 0.0
349 2023-05-11 00:00:00+02:00 21.464754104614258 21.633846282958984 21.106678009033203 21.37523651123047 15.241935729980469 1023400 0.0 0.0
350 2023-05-12 00:00:00+02:00 21.37523651123047 21.43491554260254 21.206144332885742 21.37523651123047 17.269859313964844 847053 2.51 0.0
351 2023-05-15 00:00:00+02:00 21.0469970703125 21.096731185913086 20.788387298583984 20.858013153076172 19.094114303588867 1023546 2.51 0.0
352 2023-05-16 00:00:00+02:00 20.7386531829834 20.76849365234375 20.281110763549805 20.310949325561523 18.593313217163086 1280267 0.0 0.0
353 2023-05-17 00:00:00+02:00 20.201536178588867 20.57950782775879 20.092124938964844 20.549667358398438 18.811845779418945 1106539 0.0 0.0
354 2023-05-18 00:00:00+02:00 20.72870635986328 20.818225860595703 20.539722442626953 20.678974151611328 18.93021583557129 704356 0.0 0.0
355 2023-05-19 00:00:00+02:00 20.818225860595703 20.897798538208008 20.66902732849121 20.72870635986328 18.97574234008789 1030030 0.0 0.0
356 2023-05-22 00:00:00+02:00 20.66902732849121 20.788387298583984 20.57950782775879 20.76849365234375 19.01216697692871 853879 0.0 0.0
357 2023-05-23 00:00:00+02:00 20.748600006103516 20.80828094482422 20.66902732849121 20.79833221435547 19.039480209350586 779729 0.0 0.0
358 2023-05-24 00:00:00+02:00 20.60934829711914 20.60934829711914 20.291057586669922 20.489988327026367 18.757213592529297 846847 0.0 0.0
359 2023-05-25 00:00:00+02:00 20.51982879638672 20.51982879638672 19.962818145751953 20.01255226135254 18.320152282714844 1017197 0.0 0.0
360 2023-05-26 00:00:00+02:00 20.141857147216797 20.26121711730957 19.885236740112305 20.191591262817383 18.48404884338379 1058894 0.0 0.0
361 2023-05-29 00:00:00+02:00 20.301002502441406 20.340789794921875 20.181644439697266 20.26121711730957 18.547786712646484 295090 0.0 0.0
362 2023-05-30 00:00:00+02:00 20.301002502441406 20.340789794921875 20.052337646484375 20.092124938964844 18.392993927001953 641576 0.0 0.0
363 2023-05-31 00:00:00+02:00 19.77781105041504 19.77781105041504 19.184995651245117 19.427692413330078 17.784751892089844 3164263 0.0 0.0
364 2023-06-01 00:00:00+02:00 19.614688873291016 19.698240280151367 19.475435256958008 19.68232536315918 18.017852783203125 876148 0.0 0.0
365 2023-06-02 00:00:00+02:00 19.857385635375977 20.499935150146484 19.8255558013916 20.440256118774414 18.711687088012695 1069712 0.0 0.0
366 2023-06-05 00:00:00+02:00 20.529775619506836 20.589454650878906 20.39052391052246 20.499935150146484 18.766319274902344 850280 0.0 0.0
367 2023-06-06 00:00:00+02:00 20.489988327026367 20.66902732849121 20.38057518005371 20.66902732849121 18.921110153198242 646291 0.0 0.0
368 2023-06-07 00:00:00+02:00 20.678974151611328 20.92763900756836 20.569562911987305 20.92763900756836 19.157854080200195 885388 0.0 0.0
369 2023-06-08 00:00:00+02:00 20.877906799316406 21.514488220214844 20.877906799316406 21.186250686645508 19.394594192504883 1247924 0.0 0.0
370 2023-06-09 00:00:00+02:00 21.126571655273438 21.17630386352539 20.46014976501465 20.818225860595703 19.057693481445312 1294412 0.0 0.0
371 2023-06-12 00:00:00+02:00 20.887853622436523 21.08678436279297 20.80828094482422 21.05694580078125 19.27622413635254 932962 0.0 0.0
372 2023-06-13 00:00:00+02:00 21.166357040405273 21.454809188842773 20.907745361328125 21.424968719482422 19.61312484741211 905912 0.0 0.0
373 2023-06-14 00:00:00+02:00 21.862619400024414 21.882511138916016 21.424968719482422 21.514488220214844 19.6950740814209 1696595 0.0 0.0
374 2023-06-15 00:00:00+02:00 21.474702835083008 21.474702835083008 21.01715850830078 21.355342864990234 19.549386978149414 932700 0.0 0.0
375 2023-06-16 00:00:00+02:00 21.444862365722656 21.52443504333496 20.04239273071289 20.569562911987305 18.83005714416504 3430067 0.0 0.0
376 2023-06-19 00:00:00+02:00 20.291057586669922 20.291057586669922 19.932979583740234 19.982711791992188 18.29283332824707 1208865 0.0 0.0
377 2023-06-20 00:00:00+02:00 19.495328903198242 20.121965408325195 19.208866119384766 19.821577072143555 18.145326614379883 2053697 0.0 0.0
378 2023-06-21 00:00:00+02:00 19.845449447631836 19.923032760620117 19.662431716918945 19.923032760620117 18.238201141357422 644074 0.0 0.0
379 2023-06-22 00:00:00+02:00 19.749961853027344 20.022499084472656 19.68232536315918 19.797706604003906 18.123476028442383 667821 0.0 0.0
380 2023-06-23 00:00:00+02:00 19.65447425842285 19.805662155151367 19.539094924926758 19.686304092407227 18.02149200439453 893260 0.0 0.0
381 2023-06-26 00:00:00+02:00 19.757919311523438 20.032445907592773 19.65447425842285 19.982711791992188 18.29283332824707 793819 0.0 0.0
382 2023-06-27 00:00:00+02:00 20.092124938964844 20.211484909057617 19.74200439453125 19.95287322998047 18.265520095825195 871227 0.0 0.0
383 2023-06-28 00:00:00+02:00 20.112018585205078 20.151803970336914 19.865341186523438 19.95287322998047 18.265520095825195 911547 0.0 0.0
384 2023-06-29 00:00:00+02:00 20.01255226135254 20.181644439697266 19.903139114379883 20.092124938964844 18.392993927001953 1053234 0.0 0.0
385 2023-06-30 00:00:00+02:00 20.092124938964844 20.46014976501465 20.092124938964844 20.350736618041992 18.629735946655273 934560 0.0 0.0
386 2023-07-03 00:00:00+02:00 20.301002502441406 20.499935150146484 20.181644439697266 20.26121711730957 18.547786712646484 652308 0.0 0.0
387 2023-07-04 00:00:00+02:00 20.241323471069336 20.241323471069336 20.032445907592773 20.181644439697266 18.474945068359375 483753 0.0 0.0
388 2023-07-05 00:00:00+02:00 20.07223129272461 20.201536178588867 20.002605438232422 20.092124938964844 18.392993927001953 692829 0.0 0.0
389 2023-07-06 00:00:00+02:00 19.903139114379883 20.002605438232422 19.634580612182617 19.74200439453125 18.07248306274414 1098682 0.0 0.0
390 2023-07-07 00:00:00+02:00 19.7181339263916 20.350736618041992 19.7181339263916 20.350736618041992 18.629735946655273 909321 0.0 0.0
391 2023-07-10 00:00:00+02:00 20.221431732177734 20.48004150390625 20.201536178588867 20.241323471069336 18.52957534790039 599989 0.0 0.0
392 2023-07-11 00:00:00+02:00 20.291057586669922 20.60934829711914 20.211484909057617 20.51982879638672 18.784528732299805 514723 0.0 0.0
393 2023-07-12 00:00:00+02:00 20.569562911987305 21.126571655273438 20.529775619506836 21.066890716552734 19.285327911376953 903369 0.0 0.0
394 2023-07-13 00:00:00+02:00 20.967424392700195 21.226036071777344 20.92763900756836 20.967424392700195 19.194272994995117 830319 0.0 0.0
395 2023-07-14 00:00:00+02:00 20.877906799316406 20.897798538208008 20.301002502441406 20.301002502441406 18.58420753479004 959780 0.0 0.0
396 2023-07-17 00:00:00+02:00 20.191591262817383 20.330842971801758 20.151803970336914 20.201536178588867 18.493152618408203 678639 0.0 0.0
397 2023-07-18 00:00:00+02:00 20.211484909057617 20.410415649414062 20.112018585205078 20.410415649414062 18.684368133544922 696082 0.0 0.0
398 2023-07-19 00:00:00+02:00 20.340789794921875 20.430309295654297 20.04239273071289 20.310949325561523 18.593313217163086 1027451 0.0 0.0
399 2023-07-20 00:00:00+02:00 20.330842971801758 20.589454650878906 20.330842971801758 20.589454650878906 18.8482666015625 771530 0.0 0.0
400 2023-07-21 00:00:00+02:00 20.569562911987305 20.758546829223633 20.499935150146484 20.639188766479492 18.893795013427734 532559 0.0 0.0
401 2023-07-24 00:00:00+02:00 20.529775619506836 20.788387298583984 20.48004150390625 20.778440475463867 19.021270751953125 576946 0.0 0.0
402 2023-07-25 00:00:00+02:00 20.80828094482422 21.156410217285156 20.7386531829834 21.14646339416504 19.358171463012695 815268 0.0 0.0
403 2023-07-26 00:00:00+02:00 21.066890716552734 21.206144332885742 20.867958068847656 20.967424392700195 19.194272994995117 501060 0.0 0.0
404 2023-07-27 00:00:00+02:00 21.01715850830078 21.43491554260254 20.967424392700195 21.39512825012207 19.58580780029297 1024169 0.0 0.0
405 2023-07-28 00:00:00+02:00 21.30561065673828 21.802940368652344 21.255876541137695 21.802940368652344 19.959131240844727 1075428 0.0 0.0
406 2023-07-31 00:00:00+02:00 21.802940368652344 21.912351608276367 21.663686752319336 21.703474044799805 19.868078231811523 1096731 0.0 0.0
407 2023-08-01 00:00:00+02:00 21.59406089782715 21.604007720947266 21.424968719482422 21.424968719482422 19.61312484741211 660286 0.0 0.0
408 2023-08-02 00:00:00+02:00 21.186250686645508 21.58411407470703 21.08678436279297 21.454809188842773 19.64044189453125 858203 0.0 0.0
409 2023-08-03 00:00:00+02:00 21.673633575439453 21.78304672241211 20.01255226135254 20.499935150146484 18.766319274902344 1721865 0.0 0.0
410 2023-08-04 00:00:00+02:00 20.66902732849121 20.718759536743164 20.39052391052246 20.659080505371094 18.912006378173828 610022 0.0 0.0
411 2023-08-07 00:00:00+02:00 20.589454650878906 20.80828094482422 20.45020294189453 20.80828094482422 19.048587799072266 484065 0.0 0.0
412 2023-08-08 00:00:00+02:00 20.688920974731445 20.818225860595703 20.589454650878906 20.678974151611328 18.93021583557129 420797 0.0 0.0
413 2023-08-09 00:00:00+02:00 20.858013153076172 21.037052154541016 20.76849365234375 20.858013153076172 19.094114303588867 550545 0.0 0.0
414 2023-08-10 00:00:00+02:00 20.977371215820312 21.126571655273438 20.858013153076172 20.997264862060547 19.221590042114258 468059 0.0 0.0
415 2023-08-11 00:00:00+02:00 20.877906799316406 21.0271053314209 20.748600006103516 20.758546829223633 19.003061294555664 462374 0.0 0.0
416 2023-08-14 00:00:00+02:00 20.7386531829834 20.848066329956055 20.66902732849121 20.7386531829834 18.984848022460938 668188 0.0 0.0
417 2023-08-15 00:00:00+02:00 20.788387298583984 20.818225860595703 20.430309295654297 20.57950782775879 18.839160919189453 432414 0.0 0.0
418 2023-08-16 00:00:00+02:00 20.539722442626953 20.76849365234375 20.539722442626953 20.70881462097168 18.957534790039062 544437 0.0 0.0
419 2023-08-17 00:00:00+02:00 20.57950782775879 20.76849365234375 20.549667358398438 20.688920974731445 18.939321517944336 564871 0.0 0.0
420 2023-08-18 00:00:00+02:00 20.688920974731445 20.70881462097168 20.291057586669922 20.38057518005371 18.657052993774414 693870 0.0 0.0
421 2023-08-21 00:00:00+02:00 20.39052391052246 20.66902732849121 20.39052391052246 20.569562911987305 18.83005714416504 793311 0.0 0.0
422 2023-08-22 00:00:00+02:00 20.599401473999023 20.907745361328125 20.5098819732666 20.76849365234375 19.01216697692871 650046 0.0 0.0
423 2023-08-23 00:00:00+02:00 20.80828094482422 20.858013153076172 20.330842971801758 20.370630264282227 18.647947311401367 647211 0.0 0.0
424 2023-08-24 00:00:00+02:00 20.45020294189453 20.599401473999023 20.291057586669922 20.330842971801758 18.611526489257812 475896 0.0 0.0
425 2023-08-25 00:00:00+02:00 20.301002502441406 20.45020294189453 20.26121711730957 20.291057586669922 18.575105667114258 318928 0.0 0.0
426 2023-08-28 00:00:00+02:00 20.42036247253418 20.549667358398438 20.42036247253418 20.499935150146484 18.766319274902344 332741 0.0 0.0
427 2023-08-29 00:00:00+02:00 20.66902732849121 20.897798538208008 20.66902732849121 20.838119506835938 19.075902938842773 523138 0.0 0.0
428 2023-08-30 00:00:00+02:00 20.838119506835938 21.007211685180664 20.778440475463867 20.907745361328125 19.13964080810547 394929 0.0 0.0
429 2023-08-31 00:00:00+02:00 20.947532653808594 21.36528968811035 20.92763900756836 21.265823364257812 19.467437744140625 2323236 0.0 0.0
430 2023-09-01 00:00:00+02:00 21.255876541137695 21.9322452545166 21.255876541137695 21.87256622314453 20.022871017456055 966179 0.0 0.0
431 2023-09-04 00:00:00+02:00 21.981977462768555 22.021764755249023 21.544328689575195 21.58411407470703 19.75881004333496 643546 0.0 0.0
432 2023-09-05 00:00:00+02:00 21.504541397094727 21.78304672241211 21.424968719482422 21.6239013671875 19.79523277282715 541345 0.0 0.0
433 2023-09-06 00:00:00+02:00 21.544328689575195 22.111284255981445 21.504541397094727 22.09139060974121 20.223190307617188 851678 0.0 0.0
434 2023-09-07 00:00:00+02:00 21.882511138916016 21.90240478515625 21.424968719482422 21.464754104614258 19.649545669555664 700314 0.0 0.0
435 2023-09-08 00:00:00+02:00 21.574167251586914 21.574167251586914 20.887853622436523 21.235984802246094 19.440122604370117 719356 0.0 0.0
436 2023-09-11 00:00:00+02:00 21.345396041870117 21.564220428466797 21.315555572509766 21.52443504333496 19.704177856445312 524078 0.0 0.0
437 2023-09-12 00:00:00+02:00 21.58411407470703 21.6239013671875 21.11662483215332 21.11662483215332 19.330856323242188 772781 0.0 0.0
438 2023-09-13 00:00:00+02:00 21.0469970703125 21.36528968811035 20.76849365234375 20.818225860595703 19.057693481445312 691035 0.0 0.0
439 2023-09-14 00:00:00+02:00 20.887853622436523 21.196197509765625 20.629241943359375 21.126571655273438 19.339962005615234 578423 0.0 0.0
440 2023-09-15 00:00:00+02:00 21.295663833618164 21.952138900756836 21.295663833618164 21.84272575378418 19.99555206298828 2234985 0.0 0.0
441 2023-09-18 00:00:00+02:00 21.802940368652344 21.84272575378418 21.673633575439453 21.713420867919922 19.87718391418457 856277 0.0 0.0
442 2023-09-19 00:00:00+02:00 21.6437931060791 21.6437931060791 21.39512825012207 21.415021896362305 19.60401725769043 685505 0.0 0.0
443 2023-09-20 00:00:00+02:00 21.52443504333496 21.792993545532227 21.504541397094727 21.74325942993164 19.904497146606445 752488 0.0 0.0
444 2023-09-21 00:00:00+02:00 21.534381866455078 21.574167251586914 21.0271053314209 21.186250686645508 19.394594192504883 722196 0.0 0.0
445 2023-09-22 00:00:00+02:00 21.08678436279297 21.295663833618164 20.95747947692871 21.096731185913086 19.312644958496094 535977 0.0 0.0
446 2023-09-25 00:00:00+02:00 21.037052154541016 21.17630386352539 20.529775619506836 20.788387298583984 19.030376434326172 678523 0.0 0.0
447 2023-09-26 00:00:00+02:00 20.72870635986328 20.72870635986328 20.410415649414062 20.489988327026367 18.757213592529297 999281 0.0 0.0
448 2023-09-27 00:00:00+02:00 20.559614181518555 20.66902732849121 20.440256118774414 20.569562911987305 18.83005714416504 679654 0.0 0.0
449 2023-09-28 00:00:00+02:00 20.57950782775879 20.858013153076172 20.42036247253418 20.80828094482422 19.048587799072266 791858 0.0 0.0
450 2023-09-29 00:00:00+02:00 20.977371215820312 21.07683753967285 20.778440475463867 20.858013153076172 19.094114303588867 1368070 0.0 0.0
451 2023-10-02 00:00:00+02:00 20.877906799316406 20.95747947692871 20.38057518005371 20.489988327026367 18.757213592529297 921943 0.0 0.0
452 2023-10-03 00:00:00+02:00 20.45020294189453 20.559614181518555 20.241323471069336 20.430309295654297 18.70258140563965 870202 0.0 0.0
453 2023-10-04 00:00:00+02:00 20.340789794921875 20.629241943359375 20.23137664794922 20.301002502441406 18.58420753479004 1412955 0.0 0.0
454 2023-10-05 00:00:00+02:00 20.301002502441406 20.410415649414062 20.151803970336914 20.23137664794922 18.520471572875977 552761 0.0 0.0
455 2023-10-06 00:00:00+02:00 20.271163940429688 20.489988327026367 20.17169761657715 20.370630264282227 18.647947311401367 824653 0.0 0.0
456 2023-10-09 00:00:00+02:00 20.201536178588867 20.26121711730957 19.817598342895508 20.201536178588867 18.493152618408203 857112 0.0 0.0
457 2023-10-10 00:00:00+02:00 20.310949325561523 20.619295120239258 20.281110763549805 20.470096588134766 18.739002227783203 881954 0.0 0.0
458 2023-10-11 00:00:00+02:00 20.32089614868164 20.629241943359375 20.32089614868164 20.440256118774414 18.711687088012695 612797 0.0 0.0
459 2023-10-12 00:00:00+02:00 20.569562911987305 20.688920974731445 20.271163940429688 20.32089614868164 18.602420806884766 484462 0.0 0.0
460 2023-10-13 00:00:00+02:00 20.211484909057617 20.470096588134766 20.211484909057617 20.301002502441406 18.58420753479004 538324 0.0 0.0
461 2023-10-16 00:00:00+02:00 20.340789794921875 20.489988327026367 20.26121711730957 20.310949325561523 18.593313217163086 495104 0.0 0.0
462 2023-10-17 00:00:00+02:00 20.241323471069336 20.301002502441406 19.9130859375 20.221431732177734 18.511367797851562 618131 0.0 0.0
463 2023-10-18 00:00:00+02:00 20.191591262817383 20.23137664794922 19.881256103515625 19.881256103515625 18.19995880126953 559829 0.0 0.0
464 2023-10-19 00:00:00+02:00 19.714153289794922 19.84147071838379 19.551029205322266 19.630603790283203 17.970502853393555 708805 0.0 0.0
465 2023-10-20 00:00:00+02:00 19.49930763244629 19.54705047607422 19.296396255493164 19.296396255493164 17.66455841064453 760144 0.0 0.0
466 2023-10-23 00:00:00+02:00 19.3162899017334 19.344141006469727 19.005956649780273 19.16908073425293 17.548009872436523 652032 0.0 0.0
467 2023-10-24 00:00:00+02:00 19.101444244384766 19.232738494873047 18.994020462036133 19.11735725402832 17.500661849975586 565349 0.0 0.0
468 2023-10-25 00:00:00+02:00 19.133272171020508 19.184995651245117 18.882619857788086 19.093486785888672 17.478809356689453 597757 0.0 0.0
469 2023-10-26 00:00:00+02:00 18.882619857788086 19.507265090942383 18.834875106811523 19.403820037841797 17.76289939880371 756208 0.0 0.0
470 2023-10-27 00:00:00+02:00 19.519201278686523 19.75394058227539 19.20488739013672 19.20488739013672 17.58078956604004 767302 0.0 0.0
471 2023-10-30 00:00:00+01:00 19.296396255493164 19.54705047607422 19.296396255493164 19.45156478881836 17.80660629272461 755454 0.0 0.0
472 2023-10-31 00:00:00+01:00 19.455543518066406 19.972766876220703 19.443607330322266 19.84147071838379 18.163537979125977 1249155 0.0 0.0
473 2023-11-01 00:00:00+01:00 19.903139114379883 20.04239273071289 19.551029205322266 19.618667602539062 17.959577560424805 645054 0.0 0.0
474 2023-11-02 00:00:00+01:00 19.734046936035156 20.410415649414062 19.726089477539062 20.141857147216797 18.438520431518555 1414951 0.0 0.0
475 2023-11-03 00:00:00+01:00 19.877277374267578 20.211484909057617 19.165102005004883 19.51124382019043 17.861236572265625 1786173 0.0 0.0
476 2023-11-06 00:00:00+01:00 19.515222549438477 19.78179168701172 19.304353713989258 19.531137466430664 17.87944793701172 1141224 0.0 0.0
477 2023-11-07 00:00:00+01:00 19.42371368408203 19.535114288330078 19.25263214111328 19.35209846496582 17.71554946899414 719557 0.0 0.0
478 2023-11-08 00:00:00+01:00 19.228759765625 19.427692413330078 19.093486785888672 19.320268630981445 17.686412811279297 829203 0.0 0.0
479 2023-11-09 00:00:00+01:00 19.308332443237305 19.903139114379883 19.308332443237305 19.574901580810547 17.919511795043945 1169455 0.0 0.0
480 2023-11-10 00:00:00+01:00 19.479415893554688 19.761898040771484 19.244674682617188 19.761898040771484 18.090694427490234 991826 0.0 0.0
481 2023-11-13 00:00:00+01:00 19.773834228515625 19.857385635375977 19.531137466430664 19.734046936035156 18.06519889831543 980360 0.0 0.0
482 2023-11-14 00:00:00+01:00 19.79372787475586 20.410415649414062 19.78974723815918 20.340789794921875 18.62063217163086 892672 0.0 0.0
483 2023-11-15 00:00:00+01:00 20.36068344116211 20.917692184448242 20.291057586669922 20.917692184448242 19.148746490478516 1168610 0.0 0.0
484 2023-11-16 00:00:00+01:00 20.79833221435547 21.07683753967285 20.549667358398438 20.549667358398438 18.811845779418945 755625 0.0 0.0
485 2023-11-17 00:00:00+01:00 20.549667358398438 20.848066329956055 20.549667358398438 20.559614181518555 18.820951461791992 784037 0.0 0.0
486 2023-11-20 00:00:00+01:00 20.589454650878906 20.887853622436523 20.51982879638672 20.72870635986328 18.97574234008789 946072 0.0 0.0
487 2023-11-21 00:00:00+01:00 20.688920974731445 20.82817268371582 20.470096588134766 20.629241943359375 18.884689331054688 1185330 0.0 0.0
488 2023-11-22 00:00:00+01:00 20.629241943359375 20.838119506835938 20.559614181518555 20.599401473999023 18.85737419128418 1261386 0.0 0.0
489 2023-11-23 00:00:00+01:00 20.599401473999023 20.76849365234375 20.599401473999023 20.7386531829834 18.984848022460938 633558 0.0 0.0
490 2023-11-24 00:00:00+01:00 20.778440475463867 20.92763900756836 20.72870635986328 20.92763900756836 19.157854080200195 719180 0.0 0.0
491 2023-11-27 00:00:00+01:00 20.887853622436523 20.907745361328125 20.51982879638672 20.57950782775879 18.839160919189453 1094505 0.0 0.0
492 2023-11-28 00:00:00+01:00 20.529775619506836 20.66902732849121 20.330842971801758 20.60934829711914 18.866479873657227 1053370 0.0 0.0
493 2023-11-29 00:00:00+01:00 20.60934829711914 21.037052154541016 20.569562911987305 20.977371215820312 19.203378677368164 957061 0.0 0.0
494 2023-11-30 00:00:00+01:00 20.947532653808594 21.27577018737793 20.818225860595703 21.11662483215332 19.330856323242188 2370750 0.0 0.0
495 2023-12-01 00:00:00+01:00 21.166357040405273 21.6437931060791 21.166357040405273 21.604007720947266 19.777023315429688 1195222 0.0 0.0
496 2023-12-04 00:00:00+01:00 21.484647750854492 21.94219207763672 21.464754104614258 21.74325942993164 19.904497146606445 1089262 0.0 0.0
497 2023-12-05 00:00:00+01:00 21.6239013671875 21.9322452545166 21.59406089782715 21.882511138916016 20.03197479248047 1150906 0.0 0.0
498 2023-12-06 00:00:00+01:00 21.882511138916016 22.081443786621094 21.84272575378418 22.041658401489258 20.177663803100586 1090639 0.0 0.0
499 2023-12-07 00:00:00+01:00 22.081443786621094 22.489255905151367 22.041658401489258 22.359949111938477 20.469038009643555 1596696 0.0 0.0
500 2023-12-08 00:00:00+01:00 22.330108642578125 22.479307174682617 21.991924285888672 22.35000228881836 20.459930419921875 1410130 0.0 0.0
501 2023-12-11 00:00:00+01:00 19.450000762939453 23.649999618530273 17.895000457763672 20.6200008392334 18.876230239868164 8998324 0.0 0.0
502 2023-12-12 00:00:00+01:00 20.790000915527344 22.3700008392334 20.75 22.139999389648438 20.26768684387207 3236690 0.0 0.0
503 2023-12-13 00:00:00+01:00 22.489999771118164 24.530000686645508 22.399999618530273 23.950000762939453 21.92462158203125 2215354 0.0 0.0
504 2023-12-14 00:00:00+01:00 24.5 25.010000228881836 23.950000762939453 24.540000915527344 22.4647274017334 1535694 0.0 0.0
505 2023-12-15 00:00:00+01:00 24.8799991607666 25.420000076293945 24.600000381469727 25.40999984741211 23.261154174804688 2385553 0.0 0.0
506 2023-12-18 00:00:00+01:00 25.649999618530273 26.969999313354492 25.489999771118164 26.1299991607666 23.920265197753906 965441 0.0 0.0
507 2023-12-19 00:00:00+01:00 26.290000915527344 27.399999618530273 26.200000762939453 27.209999084472656 24.908933639526367 908754 0.0 0.0
508 2023-12-20 00:00:00+01:00 27.3700008392334 27.469999313354492 26.350000381469727 26.350000381469727 24.121662139892578 821654 0.0 0.0
509 2023-12-21 00:00:00+01:00 26.239999771118164 26.3700008392334 25.760000228881836 26.049999237060547 23.847030639648438 744197 0.0 0.0
510 2023-12-22 00:00:00+01:00 26.1200008392334 26.510000228881836 26.049999237060547 26.239999771118164 24.020963668823242 358134 0.0 0.0
511 2023-12-27 00:00:00+01:00 26.639999389648438 26.729999542236328 26.299999237060547 26.729999542236328 24.469524383544922 398784 0.0 0.0
512 2023-12-28 00:00:00+01:00 26.899999618530273 27.200000762939453 26.899999618530273 27.190000534057617 24.890626907348633 306879 0.0 0.0
513 2023-12-29 00:00:00+01:00 27.219999313354492 27.959999084472656 27.219999313354492 27.729999542236328 25.384958267211914 508827 0.0 0.0
514 2024-01-02 00:00:00+01:00 28.059999465942383 28.600000381469727 27.520000457763672 28.030000686645508 25.659589767456055 395002 0.0 0.0
515 2024-01-03 00:00:00+01:00 28.110000610351562 28.15999984741211 27.170000076293945 27.43000030517578 25.110328674316406 517626 0.0 0.0
516 2024-01-04 00:00:00+01:00 27.5 28.110000610351562 27.5 28.09000015258789 25.714515686035156 353356 0.0 0.0
517 2024-01-05 00:00:00+01:00 28.079999923706055 28.469999313354492 28.0 28.329999923706055 25.93421745300293 426440 0.0 0.0
518 2024-01-08 00:00:00+01:00 28.290000915527344 28.329999923706055 27.540000915527344 28.0 25.632125854492188 503233 0.0 0.0
519 2024-01-09 00:00:00+01:00 27.190000534057617 27.549999237060547 27.079999923706055 27.299999237060547 24.991321563720703 592677 0.0 0.0
520 2024-01-10 00:00:00+01:00 27.100000381469727 27.170000076293945 26.350000381469727 26.350000381469727 24.121662139892578 692877 0.0 0.0
521 2024-01-11 00:00:00+01:00 26.389999389648438 26.559999465942383 25.889999389648438 26.0 23.801258087158203 631805 0.0 0.0
522 2024-01-12 00:00:00+01:00 26.639999389648438 26.860000610351562 26.06999969482422 26.139999389648438 23.929418563842773 803481 0.0 0.0
523 2024-01-15 00:00:00+01:00 25.059999465942383 25.329999923706055 25.0 25.299999237060547 24.690631866455078 726646 1.62 0.0
524 2024-01-16 00:00:00+01:00 25.149999618530273 25.200000762939453 24.579999923706055 24.989999771118164 24.388099670410156 493029 0.0 0.0
525 2024-01-17 00:00:00+01:00 24.700000762939453 24.729999542236328 23.989999771118164 24.260000228881836 23.675682067871094 646371 0.0 0.0
526 2024-01-18 00:00:00+01:00 24.200000762939453 24.239999771118164 23.530000686645508 23.530000686645508 22.963266372680664 686723 0.0 0.0
527 2024-01-19 00:00:00+01:00 23.670000076293945 24.25 23.670000076293945 24.049999237060547 23.470739364624023 679303 0.0 0.0
528 2024-01-22 00:00:00+01:00 24.299999237060547 24.770000457763672 24.079999923706055 24.760000228881836 24.163639068603516 282294 0.0 0.0
529 2024-01-23 00:00:00+01:00 25.200000762939453 25.450000762939453 24.90999984741211 25.3799991607666 24.768705368041992 397643 0.0 0.0
530 2024-01-24 00:00:00+01:00 25.600000381469727 25.6299991607666 24.75 24.75 24.153881072998047 564082 0.0 0.0
531 2024-01-25 00:00:00+01:00 24.84000015258789 25.760000228881836 24.799999237060547 25.600000381469727 24.983407974243164 401178 0.0 0.0
532 2024-01-26 00:00:00+01:00 25.690000534057617 26.959999084472656 25.6200008392334 26.40999984741211 25.773897171020508 712857 0.0 0.0
533 2024-01-29 00:00:00+01:00 26.5 26.549999237060547 25.760000228881836 25.760000228881836 25.139554977416992 375526 0.0 0.0
534 2024-01-30 00:00:00+01:00 25.8799991607666 26.049999237060547 25.610000610351562 25.690000534057617 25.071239471435547 339731 0.0 0.0
535 2024-01-31 00:00:00+01:00 25.850000381469727 26.1299991607666 25.440000534057617 25.440000534057617 24.827260971069336 1756316 0.0 0.0
536 2024-02-01 00:00:00+01:00 25.329999923706055 25.5 24.530000686645508 24.59000015258789 23.99773406982422 398800 0.0 0.0
537 2024-02-02 00:00:00+01:00 24.899999618530273 24.979999542236328 24.40999984741211 24.40999984741211 23.82206916809082 418661 0.0 0.0
538 2024-02-05 00:00:00+01:00 24.440000534057617 24.56999969482422 23.6299991607666 23.649999618530273 23.080373764038086 640546 0.0 0.0
539 2024-02-06 00:00:00+01:00 23.739999771118164 23.81999969482422 22.8799991607666 23.469999313354492 22.904708862304688 800098 0.0 0.0
540 2024-02-07 00:00:00+01:00 23.200000762939453 23.309999465942383 22.489999771118164 22.639999389648438 22.09469985961914 896379 0.0 0.0
541 2024-02-08 00:00:00+01:00 22.799999237060547 23.1299991607666 22.690000534057617 23.0 22.446029663085938 622376 0.0 0.0
542 2024-02-09 00:00:00+01:00 22.5 22.739999771118164 22.209999084472656 22.209999084472656 21.67505645751953 783024 0.0 0.0
543 2024-02-12 00:00:00+01:00 22.450000762939453 22.899999618530273 22.290000915527344 22.84000015258789 22.289884567260742 443790 0.0 0.0
544 2024-02-13 00:00:00+01:00 22.860000610351562 23.34000015258789 22.719999313354492 23.190000534057617 22.631454467773438 530025 0.0 0.0
545 2024-02-14 00:00:00+01:00 23.06999969482422 23.5 22.90999984741211 23.489999771118164 22.92422866821289 452602 0.0 0.0
546 2024-02-15 00:00:00+01:00 23.6200008392334 24.170000076293945 23.579999923706055 23.940000534057617 23.36338996887207 423885 0.0 0.0
547 2024-02-16 00:00:00+01:00 24.280000686645508 24.420000076293945 23.770000457763672 24.020000457763672 23.441463470458984 445071 0.0 0.0
548 2024-02-19 00:00:00+01:00 24.110000610351562 24.139999389648438 23.690000534057617 23.690000534057617 23.11941146850586 334433 0.0 0.0
549 2024-02-20 00:00:00+01:00 23.770000457763672 24.09000015258789 23.489999771118164 24.09000015258789 23.509777069091797 306827 0.0 0.0
550 2024-02-21 00:00:00+01:00 23.850000381469727 24.040000915527344 23.5 24.040000915527344 23.460981369018555 431924 0.0 0.0
551 2024-02-22 00:00:00+01:00 24.229999542236328 24.399999618530273 24.010000228881836 24.219999313354492 23.63664436340332 366743 0.0 0.0
552 2024-02-23 00:00:00+01:00 24.239999771118164 24.6200008392334 23.860000610351562 23.959999084472656 23.38290786743164 266603 0.0 0.0
553 2024-02-26 00:00:00+01:00 23.959999084472656 23.959999084472656 23.270000457763672 23.479999542236328 22.91446876525879 316183 0.0 0.0
554 2024-02-27 00:00:00+01:00 23.540000915527344 23.889999389648438 23.329999923706055 23.75 23.17796516418457 284263 0.0 0.0
555 2024-02-28 00:00:00+01:00 23.829999923706055 24.059999465942383 23.559999465942383 23.6200008392334 23.051097869873047 344714 0.0 0.0
556 2024-02-29 00:00:00+01:00 23.600000381469727 23.6299991607666 23.329999923706055 23.5 22.93398666381836 601749 0.0 0.0
557 2024-03-01 00:00:00+01:00 23.6299991607666 24.530000686645508 23.59000015258789 24.200000762939453 23.617128372192383 445507 0.0 0.0
558 2024-03-04 00:00:00+01:00 24.1200008392334 24.229999542236328 22.989999771118164 23.3799991607666 22.816877365112305 469234 0.0 0.0
559 2024-03-05 00:00:00+01:00 23.329999923706055 23.579999923706055 23.079999923706055 23.579999923706055 23.012060165405273 321295 0.0 0.0
560 2024-03-06 00:00:00+01:00 23.579999923706055 24.100000381469727 23.549999237060547 23.549999237060547 22.9827823638916 516710 0.0 0.0
561 2024-03-07 00:00:00+01:00 23.389999389648438 23.670000076293945 23.100000381469727 23.5 22.93398666381836 371579 0.0 0.0
562 2024-03-08 00:00:00+01:00 23.520000457763672 23.770000457763672 22.969999313354492 23.739999771118164 23.1682071685791 426367 0.0 0.0
563 2024-03-11 00:00:00+01:00 23.68000030517578 24.100000381469727 23.450000762939453 24.100000381469727 23.5195369720459 437456 0.0 0.0
564 2024-03-12 00:00:00+01:00 24.299999237060547 25.450000762939453 24.059999465942383 25.25 24.64183807373047 794906 0.0 0.0
565 2024-03-13 00:00:00+01:00 24.100000381469727 26.010000228881836 23.950000762939453 24.549999237060547 23.958696365356445 844838 0.0 0.0
566 2024-03-14 00:00:00+01:00 24.440000534057617 24.729999542236328 23.649999618530273 23.81999969482422 23.246280670166016 643203 0.0 0.0
567 2024-03-15 00:00:00+01:00 23.850000381469727 24.579999923706055 23.229999542236328 23.229999542236328 22.670490264892578 1376963 0.0 0.0
568 2024-03-18 00:00:00+01:00 23.229999542236328 23.6299991607666 23.030000686645508 23.440000534057617 22.87543296813965 406545 0.0 0.0
569 2024-03-19 00:00:00+01:00 23.149999618530273 23.75 23.040000915527344 23.670000076293945 23.09989356994629 429140 0.0 0.0
570 2024-03-20 00:00:00+01:00 23.639999389648438 24.110000610351562 23.5 24.030000686645508 23.451223373413086 308989 0.0 0.0
571 2024-03-21 00:00:00+01:00 24.18000030517578 24.479999542236328 24.030000686645508 24.15999984741211 23.57809066772461 415990 0.0 0.0
572 2024-03-22 00:00:00+01:00 24.139999389648438 24.719999313354492 23.84000015258789 24.540000915527344 23.948938369750977 295245 0.0 0.0
573 2024-03-25 00:00:00+01:00 24.549999237060547 25.100000381469727 24.520000457763672 25.059999465942383 24.45641326904297 348983 0.0 0.0
574 2024-03-26 00:00:00+01:00 25.030000686645508 25.09000015258789 24.299999237060547 24.549999237060547 23.958696365356445 323207 0.0 0.0
575 2024-03-27 00:00:00+01:00 24.459999084472656 24.969999313354492 24.31999969482422 24.969999313354492 24.368581771850586 203281 0.0 0.0
576 2024-03-28 00:00:00+01:00 25.020000457763672 25.360000610351562 24.700000762939453 25.299999237060547 24.690631866455078 292668 0.0 0.0
577 2024-04-02 00:00:00+02:00 25.350000381469727 25.799999237060547 25.299999237060547 25.600000381469727 24.983407974243164 302238 0.0 0.0
578 2024-04-03 00:00:00+02:00 25.68000030517578 26.8799991607666 25.6299991607666 26.690000534057617 26.047155380249023 448326 0.0 0.0
579 2024-04-04 00:00:00+02:00 28.5 29.190000534057617 27.709999084472656 27.709999084472656 27.042585372924805 1493843 0.0 0.0
580 2024-04-05 00:00:00+02:00 27.350000381469727 27.959999084472656 27.010000228881836 27.350000381469727 26.69125747680664 540908 0.0 0.0
581 2024-04-08 00:00:00+02:00 27.399999618530273 28.309999465942383 27.34000015258789 28.270000457763672 27.589099884033203 487088 0.0 0.0
582 2024-04-09 00:00:00+02:00 28.350000381469727 28.43000030517578 28.049999237060547 28.200000762939453 27.52078628540039 253999 0.0 0.0
583 2024-04-10 00:00:00+02:00 28.34000015258789 29.40999984741211 28.1200008392334 28.639999389648438 27.950185775756836 735134 0.0 0.0
584 2024-04-11 00:00:00+02:00 28.93000030517578 29.260000228881836 28.649999618530273 28.959999084472656 28.262479782104492 306645 0.0 0.0
585 2024-04-12 00:00:00+02:00 29.399999618530273 29.799999237060547 29.170000076293945 29.5 28.789474487304688 437731 0.0 0.0
586 2024-04-15 00:00:00+02:00 29.100000381469727 29.850000381469727 29.0 29.450000762939453 28.740678787231445 388339 0.0 0.0
587 2024-04-16 00:00:00+02:00 29.200000762939453 29.350000381469727 28.780000686645508 28.780000686645508 28.086816787719727 434787 0.0 0.0
588 2024-04-17 00:00:00+02:00 28.780000686645508 29.989999771118164 28.760000228881836 29.799999237060547 29.082246780395508 352161 0.0 0.0
589 2024-04-18 00:00:00+02:00 29.899999618530273 30.700000762939453 29.780000686645508 30.649999618530273 29.911775588989258 347317 0.0 0.0
590 2024-04-19 00:00:00+02:00 30.5 31.040000915527344 28.34000015258789 30.75 30.009366989135742 697878 0.0 0.0
591 2024-04-22 00:00:00+02:00 30.81999969482422 31.600000381469727 30.770000457763672 31.56999969482422 30.809616088867188 401308 0.0 0.0
592 2024-04-23 00:00:00+02:00 31.579999923706055 31.65999984741211 30.049999237060547 31.0 30.253345489501953 471634 0.0 0.0
593 2024-04-24 00:00:00+02:00 30.950000762939453 31.75 30.90999984741211 31.200000762939453 30.448528289794922 307607 0.0 0.0
594 2024-04-25 00:00:00+02:00 31.299999237060547 31.329999923706055 29.670000076293945 29.75 29.0334529876709 478021 0.0 0.0
595 2024-04-26 00:00:00+02:00 30.25 30.719999313354492 29.959999084472656 30.18000030517578 29.453096389770508 331898 0.0 0.0
596 2024-04-29 00:00:00+02:00 30.209999084472656 30.899999618530273 30.209999084472656 30.850000381469727 30.106958389282227 225725 0.0 0.0
597 2024-04-30 00:00:00+02:00 30.899999618530273 31.18000030517578 30.290000915527344 30.40999984741211 29.677555084228516 232054 0.0 0.0
598 2024-05-02 00:00:00+02:00 30.40999984741211 30.600000381469727 29.709999084472656 30.5 29.76538848876953 390674 0.0 0.0
599 2024-05-03 00:00:00+02:00 29.56999969482422 30.299999237060547 29.5 30.139999389648438 29.414058685302734 364126 0.0 0.0
600 2024-05-06 00:00:00+02:00 30.290000915527344 30.989999771118164 30.139999389648438 30.420000076293945 29.687314987182617 273816 0.0 0.0
601 2024-05-07 00:00:00+02:00 31.600000381469727 35.25 31.360000610351562 34.7599983215332 33.92278289794922 1075584 0.0 0.0
602 2024-05-08 00:00:00+02:00 34.34000015258789 36.619998931884766 33.43000030517578 34.68000030517578 33.84471130371094 1057246 0.0 0.0
603 2024-05-09 00:00:00+02:00 34.650001525878906 35.33000183105469 34.209999084472656 34.38999938964844 33.56169509887695 262471 0.0 0.0
604 2024-05-10 00:00:00+02:00 34.790000915527344 34.939998626708984 33.58000183105469 33.650001525878906 32.83951950073242 223080 0.0 0.0
605 2024-05-13 00:00:00+02:00 33.5 34.459999084472656 33.33000183105469 34.310001373291016 33.48362350463867 273103 0.0 0.0
606 2024-05-14 00:00:00+02:00 34.220001220703125 34.52000045776367 33.560001373291016 34.52000045776367 33.68856430053711 279550 0.0 0.0
607 2024-05-15 00:00:00+02:00 34.630001068115234 34.900001525878906 33.75 34.099998474121094 33.27867889404297 242453 0.0 0.0
608 2024-05-16 00:00:00+02:00 34.13999938964844 34.13999938964844 33.04999923706055 33.599998474121094 32.79072189331055 235321 0.0 0.0
609 2024-05-17 00:00:00+02:00 32.84000015258789 34.06999969482422 32.59000015258789 34.06999969482422 33.2494010925293 339910 0.0 0.0
610 2024-05-20 00:00:00+02:00 34.400001525878906 34.400001525878906 33.70000076293945 34.04999923706055 33.229881286621094 164887 0.0 0.0
611 2024-05-21 00:00:00+02:00 33.97999954223633 34.130001068115234 33.31999969482422 33.31999969482422 32.5174674987793 171162 0.0 0.0
612 2024-05-22 00:00:00+02:00 33.29999923706055 34.189998626708984 32.93000030517578 34.189998626708984 33.366512298583984 345186 0.0 0.0
613 2024-05-23 00:00:00+02:00 34.189998626708984 34.75 34.150001525878906 34.470001220703125 33.6397705078125 301874 0.0 0.0
614 2024-05-24 00:00:00+02:00 34.29999923706055 35.040000915527344 34.060001373291016 34.52000045776367 33.68856430053711 297474 0.0 0.0
615 2024-05-27 00:00:00+02:00 34.52000045776367 34.900001525878906 34.25 34.5 33.669044494628906 145496 0.0 0.0
616 2024-05-28 00:00:00+02:00 34.459999084472656 34.540000915527344 33.81999969482422 34.400001525878906 33.57145690917969 239174 0.0 0.0
617 2024-05-29 00:00:00+02:00 34.400001525878906 34.439998626708984 33.900001525878906 34.220001220703125 33.395790100097656 245711 0.0 0.0
618 2024-05-30 00:00:00+02:00 34.61000061035156 34.61000061035156 33.75 34.310001373291016 33.48362350463867 270049 0.0 0.0
619 2024-05-31 00:00:00+02:00 34.25 34.650001525878906 33.45000076293945 33.630001068115234 32.81999969482422 348292 0.0 0.0
620 2024-06-03 00:00:00+02:00 33.20000076293945 33.290000915527344 31.81999969482422 31.829999923706055 31.829999923706055 271111 0.81 0.0
621 2024-06-04 00:00:00+02:00 31.780000686645508 31.860000610351562 31.260000228881836 31.649999618530273 31.649999618530273 345119 0.0 0.0
622 2024-06-05 00:00:00+02:00 31.770000457763672 31.940000534057617 31.270000457763672 31.270000457763672 31.270000457763672 371491 0.0 0.0
623 2024-06-06 00:00:00+02:00 31.489999771118164 31.510000228881836 30.600000381469727 30.920000076293945 30.920000076293945 325501 0.0 0.0
624 2024-06-07 00:00:00+02:00 30.90999984741211 31.209999084472656 30.600000381469727 30.969999313354492 30.969999313354492 161556 0.0 0.0
625 2024-06-10 00:00:00+02:00 30.850000381469727 31.739999771118164 30.729999542236328 31.739999771118164 31.739999771118164 265293 0.0 0.0
626 2024-06-11 00:00:00+02:00 31.639999389648438 32.529998779296875 31.639999389648438 32.349998474121094 32.349998474121094 424271 0.0 0.0
627 2024-06-12 00:00:00+02:00 32.40999984741211 33.04999923706055 32.40999984741211 32.81999969482422 32.81999969482422 244552 0.0 0.0
628 2024-06-13 00:00:00+02:00 32.54999923706055 32.54999923706055 31.709999084472656 31.780000686645508 31.780000686645508 302052 0.0 0.0
629 2024-06-14 00:00:00+02:00 31.600000381469727 31.6299991607666 30.34000015258789 30.790000915527344 30.790000915527344 342157 0.0 0.0
630 2024-06-17 00:00:00+02:00 30.920000076293945 31.479999542236328 30.889999389648438 31.34000015258789 31.34000015258789 273690 0.0 0.0
631 2024-06-18 00:00:00+02:00 31.579999923706055 31.690000534057617 31.06999969482422 31.229999542236328 31.229999542236328 218534 0.0 0.0
632 2024-06-19 00:00:00+02:00 31.260000228881836 31.81999969482422 31.200000762939453 31.350000381469727 31.350000381469727 175454 0.0 0.0
633 2024-06-20 00:00:00+02:00 31.31999969482422 32.11000061035156 31.31999969482422 31.709999084472656 31.709999084472656 296995 0.0 0.0
634 2024-06-21 00:00:00+02:00 31.860000610351562 32.04999923706055 31.559999465942383 31.719999313354492 31.719999313354492 2005373 0.0 0.0
635 2024-06-24 00:00:00+02:00 31.700000762939453 33.630001068115234 31.700000762939453 33.06999969482422 33.06999969482422 347579 0.0 0.0
636 2024-06-25 00:00:00+02:00 33.0 33.34000015258789 31.90999984741211 31.90999984741211 31.90999984741211 241894 0.0 0.0
637 2024-06-26 00:00:00+02:00 31.899999618530273 32.349998474121094 31.649999618530273 31.8700008392334 31.8700008392334 267568 0.0 0.0
638 2024-06-27 00:00:00+02:00 32.29999923706055 33.0 32.20000076293945 32.900001525878906 32.900001525878906 182682 0.0 0.0
639 2024-06-28 00:00:00+02:00 32.95000076293945 33.060001373291016 32.31999969482422 32.869998931884766 32.869998931884766 277611 0.0 0.0
640 2024-07-01 00:00:00+02:00 33.29999923706055 33.4900016784668 32.72999954223633 33.4900016784668 33.4900016784668 206747 0.0 0.0
641 2024-07-02 00:00:00+02:00 33.5 34.0 33.13999938964844 34.0 34.0 231379 0.0 0.0
642 2024-07-03 00:00:00+02:00 33.95000076293945 34.13999938964844 33.47999954223633 34.13999938964844 34.13999938964844 262502 0.0 0.0
643 2024-07-04 00:00:00+02:00 34.0 34.20000076293945 33.540000915527344 34.060001373291016 34.060001373291016 130465 0.0 0.0
644 2024-07-05 00:00:00+02:00 34.060001373291016 34.279998779296875 33.5099983215332 33.5099983215332 33.5099983215332 212429 0.0 0.0
645 2024-07-08 00:00:00+02:00 33.400001525878906 33.95000076293945 32.81999969482422 33.95000076293945 33.95000076293945 194477 0.0 0.0
646 2024-07-09 00:00:00+02:00 33.790000915527344 34.060001373291016 32.290000915527344 32.5099983215332 32.5099983215332 364262 0.0 0.0
647 2024-07-10 00:00:00+02:00 32.29999923706055 32.38999938964844 31.75 32.040000915527344 32.040000915527344 207620 0.0 0.0
648 2024-07-11 00:00:00+02:00 32.11000061035156 32.599998474121094 32.06999969482422 32.349998474121094 32.349998474121094 159663 0.0 0.0
649 2024-07-12 00:00:00+02:00 32.29999923706055 32.93000030517578 32.29999923706055 32.59000015258789 32.59000015258789 116583 0.0 0.0
650 2024-07-15 00:00:00+02:00 32.459999084472656 32.689998626708984 31.899999618530273 32.279998779296875 32.279998779296875 123588 0.0 0.0
651 2024-07-16 00:00:00+02:00 32.20000076293945 32.65999984741211 31.940000534057617 32.45000076293945 32.45000076293945 88377 0.0 0.0
652 2024-07-17 00:00:00+02:00 32.72999954223633 33.939998626708984 32.040000915527344 33.939998626708984 33.939998626708984 222062 0.0 0.0
653 2024-07-18 00:00:00+02:00 34.0 34.93000030517578 33.79999923706055 34.63999938964844 34.63999938964844 400707 0.0 0.0
654 2024-07-19 00:00:00+02:00 34.290000915527344 34.36000061035156 33.529998779296875 34.0099983215332 34.0099983215332 188494 0.0 0.0
655 2024-07-22 00:00:00+02:00 34.349998474121094 34.5 33.66999816894531 34.13999938964844 34.13999938964844 144759 0.0 0.0
656 2024-07-23 00:00:00+02:00 33.95000076293945 34.02000045776367 33.5 33.83000183105469 33.83000183105469 99602 0.0 0.0
657 2024-07-24 00:00:00+02:00 33.54999923706055 33.97999954223633 33.459999084472656 33.5099983215332 33.5099983215332 118200 0.0 0.0
658 2024-07-25 00:00:00+02:00 33.400001525878906 33.75 32.43000030517578 33.41999816894531 33.41999816894531 143724 0.0 0.0
659 2024-07-26 00:00:00+02:00 33.09000015258789 33.439998626708984 32.650001525878906 33.2599983215332 33.2599983215332 150065 0.0 0.0
660 2024-07-29 00:00:00+02:00 33.25 33.560001373291016 33.06999969482422 33.18000030517578 33.18000030517578 101941 0.0 0.0
661 2024-07-30 00:00:00+02:00 33.0 33.619998931884766 32.86000061035156 33.18000030517578 33.18000030517578 142743 0.0 0.0
662 2024-07-31 00:00:00+02:00 33.849998474121094 34.0 32.20000076293945 32.52000045776367 32.52000045776367 561976 0.0 0.0
663 2024-08-01 00:00:00+02:00 32.13999938964844 32.599998474121094 31.190000534057617 31.469999313354492 31.469999313354492 275048 0.0 0.0
664 2024-08-02 00:00:00+02:00 31.229999542236328 31.760000228881836 30.860000610351562 30.860000610351562 30.860000610351562 265760 0.0 0.0
665 2024-08-05 00:00:00+02:00 30.100000381469727 30.479999542236328 29.469999313354492 29.940000534057617 29.940000534057617 473460 0.0 0.0
666 2024-08-06 00:00:00+02:00 30.5 31.010000228881836 30.040000915527344 30.190000534057617 30.190000534057617 264982 0.0 0.0
667 2024-08-07 00:00:00+02:00 30.510000228881836 31.229999542236328 30.3799991607666 30.889999389648438 30.889999389648438 178311 0.0 0.0
668 2024-08-08 00:00:00+02:00 30.799999237060547 30.959999084472656 30.40999984741211 30.799999237060547 30.799999237060547 172146 0.0 0.0
669 2024-08-09 00:00:00+02:00 30.90999984741211 31.520000457763672 30.90999984741211 31.15999984741211 31.15999984741211 179785 0.0 0.0
670 2024-08-12 00:00:00+02:00 31.299999237060547 31.690000534057617 30.59000015258789 30.59000015258789 30.59000015258789 132932 0.0 0.0
671 2024-08-13 00:00:00+02:00 30.690000534057617 31.040000915527344 30.360000610351562 30.600000381469727 30.600000381469727 103593 0.0 0.0
672 2024-08-14 00:00:00+02:00 30.649999618530273 30.68000030517578 30.059999465942383 30.479999542236328 30.479999542236328 209068 0.0 0.0
673 2024-08-15 00:00:00+02:00 30.549999237060547 31.09000015258789 30.450000762939453 30.920000076293945 30.920000076293945 125365 0.0 0.0
674 2024-08-16 00:00:00+02:00 30.940000534057617 31.1200008392334 30.729999542236328 30.8799991607666 30.8799991607666 141253 0.0 0.0
675 2024-08-19 00:00:00+02:00 31.030000686645508 31.299999237060547 30.670000076293945 31.030000686645508 31.030000686645508 180272 0.0 0.0
676 2024-08-20 00:00:00+02:00 31.170000076293945 31.170000076293945 30.469999313354492 30.530000686645508 30.530000686645508 152575 0.0 0.0
677 2024-08-21 00:00:00+02:00 30.530000686645508 31.020000457763672 30.530000686645508 30.969999313354492 30.969999313354492 128994 0.0 0.0
678 2024-08-22 00:00:00+02:00 30.979999542236328 31.3799991607666 30.780000686645508 31.229999542236328 31.229999542236328 87006 0.0 0.0
679 2024-08-23 00:00:00+02:00 31.18000030517578 31.540000915527344 31.18000030517578 31.270000457763672 31.270000457763672 84423 0.0 0.0
680 2024-08-26 00:00:00+02:00 31.149999618530273 31.459999084472656 30.829999923706055 31.030000686645508 31.030000686645508 72965 0.0 0.0
681 2024-08-27 00:00:00+02:00 30.90999984741211 31.360000610351562 30.809999465942383 31.139999389648438 31.139999389648438 102326 0.0 0.0
682 2024-08-28 00:00:00+02:00 31.139999389648438 31.190000534057617 30.540000915527344 30.93000030517578 30.93000030517578 133750 0.0 0.0
683 2024-08-29 00:00:00+02:00 30.81999969482422 31.25 30.81999969482422 31.079999923706055 31.079999923706055 110738 0.0 0.0
684 2024-08-30 00:00:00+02:00 31.190000534057617 31.829999923706055 31.079999923706055 31.700000762939453 31.700000762939453 222082 0.0 0.0
685 2024-09-02 00:00:00+02:00 31.739999771118164 32.36000061035156 31.469999313354492 32.18000030517578 32.18000030517578 137822 0.0 0.0
686 2024-09-03 00:00:00+02:00 32.04999923706055 32.2400016784668 31.469999313354492 31.520000457763672 31.520000457763672 115050 0.0 0.0
687 2024-09-04 00:00:00+02:00 31.100000381469727 31.739999771118164 31.030000686645508 31.559999465942383 31.559999465942383 110471 0.0 0.0
688 2024-09-05 00:00:00+02:00 31.34000015258789 32.310001373291016 31.34000015258789 31.670000076293945 31.670000076293945 230413 0.0 0.0
689 2024-09-06 00:00:00+02:00 31.489999771118164 31.8700008392334 31.18000030517578 31.209999084472656 31.209999084472656 163894 0.0 0.0
690 2024-09-09 00:00:00+02:00 31.5 31.729999542236328 31.280000686645508 31.649999618530273 31.649999618530273 150347 0.0 0.0
691 2024-09-10 00:00:00+02:00 31.59000015258789 32.040000915527344 30.8700008392334 30.8700008392334 30.8700008392334 177060 0.0 0.0
692 2024-09-11 00:00:00+02:00 30.93000030517578 32.06999969482422 30.93000030517578 31.049999237060547 31.049999237060547 253253 0.0 0.0
693 2024-09-12 00:00:00+02:00 31.049999237060547 31.3799991607666 30.809999465942383 30.809999465942383 30.809999465942383 198487 0.0 0.0
694 2024-09-13 00:00:00+02:00 30.809999465942383 31.6299991607666 30.809999465942383 31.3700008392334 31.3700008392334 160154 0.0 0.0
695 2024-09-16 00:00:00+02:00 31.270000457763672 31.469999313354492 31.100000381469727 31.450000762939453 31.450000762939453 112962 0.0 0.0
696 2024-09-17 00:00:00+02:00 31.719999313354492 32.75 31.719999313354492 32.75 32.75 181018 0.0 0.0
697 2024-09-18 00:00:00+02:00 32.81999969482422 33.84000015258789 32.38999938964844 33.72999954223633 33.72999954223633 208825 0.0 0.0
698 2024-09-19 00:00:00+02:00 34.119998931884766 34.689998626708984 33.84000015258789 34.58000183105469 34.58000183105469 292983 0.0 0.0
699 2024-09-20 00:00:00+02:00 34.599998474121094 34.599998474121094 33.93000030517578 34.279998779296875 34.279998779296875 547234 0.0 0.0
700 2024-09-23 00:00:00+02:00 34.22999954223633 34.68000030517578 34.11000061035156 34.369998931884766 34.369998931884766 148293 0.0 0.0
701 2024-09-24 00:00:00+02:00 34.709999084472656 35.13999938964844 34.279998779296875 34.279998779296875 34.279998779296875 214647 0.0 0.0
702 2024-09-25 00:00:00+02:00 34.279998779296875 34.83000183105469 33.58000183105469 33.58000183105469 33.58000183105469 194543 0.0 0.0
703 2024-09-26 00:00:00+02:00 34.0 34.119998931884766 33.650001525878906 34.119998931884766 34.119998931884766 198143 0.0 0.0
704 2024-09-27 00:00:00+02:00 34.2400016784668 35.02000045776367 34.130001068115234 34.63999938964844 34.63999938964844 196448 0.0 0.0
705 2024-09-30 00:00:00+02:00 34.150001525878906 35.45000076293945 34.0 35.20000076293945 35.20000076293945 261067 0.0 0.0
706 2024-10-01 00:00:00+02:00 35.20000076293945 35.88999938964844 35.18000030517578 35.61000061035156 35.61000061035156 218502 0.0 0.0
707 2024-10-02 00:00:00+02:00 35.61000061035156 36.810001373291016 35.45000076293945 36.310001373291016 36.310001373291016 185328 0.0 0.0
708 2024-10-03 00:00:00+02:00 36.22999954223633 36.619998931884766 36.209999084472656 36.310001373291016 36.310001373291016 246827 0.0 0.0
709 2024-10-04 00:00:00+02:00 36.209999084472656 37.560001373291016 36.13999938964844 37.5099983215332 37.5099983215332 298766 0.0 0.0
710 2024-10-07 00:00:00+02:00 37.5 37.5099983215332 36.47999954223633 36.91999816894531 36.91999816894531 161195 0.0 0.0
711 2024-10-08 00:00:00+02:00 36.7599983215332 36.7599983215332 35.66999816894531 35.93000030517578 35.93000030517578 144993 0.0 0.0
712 2024-10-09 00:00:00+02:00 35.86000061035156 36.52000045776367 35.400001525878906 36.369998931884766 36.369998931884766 123249 0.0 0.0
713 2024-10-10 00:00:00+02:00 36.619998931884766 37.0 36.439998626708984 36.959999084472656 36.959999084472656 127939 0.0 0.0
714 2024-10-11 00:00:00+02:00 36.650001525878906 37.349998474121094 36.560001373291016 37.150001525878906 37.150001525878906 110000 0.0 0.0
715 2024-10-14 00:00:00+02:00 37.349998474121094 38.0 37.0 38.0 38.0 215775 0.0 0.0
716 2024-10-15 00:00:00+02:00 38.0 38.72999954223633 37.7400016784668 38.43000030517578 38.43000030517578 289899 0.0 0.0
717 2024-10-16 00:00:00+02:00 38.5 39.31999969482422 38.310001373291016 39.31999969482422 39.31999969482422 351315 0.0 0.0
718 2024-10-17 00:00:00+02:00 39.27000045776367 39.310001373291016 37.95000076293945 38.439998626708984 38.439998626708984 336837 0.0 0.0
719 2024-10-18 00:00:00+02:00 38.209999084472656 39.369998931884766 37.939998626708984 39.349998474121094 39.349998474121094 284589 0.0 0.0
720 2024-10-21 00:00:00+02:00 39.11000061035156 39.13999938964844 38.43000030517578 39.099998474121094 39.099998474121094 176237 0.0 0.0
721 2024-10-22 00:00:00+02:00 39.119998931884766 39.369998931884766 38.63999938964844 38.900001525878906 38.900001525878906 219984 0.0 0.0
722 2024-10-23 00:00:00+02:00 38.70000076293945 38.86000061035156 37.790000915527344 38.79999923706055 38.79999923706055 212351 0.0 0.0
723 2024-10-24 00:00:00+02:00 38.70000076293945 38.939998626708984 38.36000061035156 38.68000030517578 38.68000030517578 118090 0.0 0.0
724 2024-10-25 00:00:00+02:00 38.630001068115234 38.849998474121094 38.04999923706055 38.560001373291016 38.560001373291016 164039 0.0 0.0
725 2024-10-28 00:00:00+01:00 38.560001373291016 38.81999969482422 37.84000015258789 38.25 38.25 156263 0.0 0.0
726 2024-10-29 00:00:00+01:00 38.25 38.88999938964844 38.029998779296875 38.31999969482422 38.31999969482422 213012 0.0 0.0
727 2024-10-30 00:00:00+01:00 37.75 38.04999923706055 37.029998779296875 37.029998779296875 37.029998779296875 397551 0.0 0.0
728 2024-10-31 00:00:00+01:00 37.0 37.310001373291016 36.34000015258789 37.060001373291016 37.060001373291016 281687 0.0 0.0
729 2024-11-01 00:00:00+01:00 36.84000015258789 37.43000030517578 36.84000015258789 37.2400016784668 37.2400016784668 81048 0.0 0.0
730 2024-11-04 00:00:00+01:00 37.060001373291016 37.79999923706055 37.040000915527344 37.560001373291016 37.560001373291016 82632 0.0 0.0
731 2024-11-05 00:00:00+01:00 37.560001373291016 37.95000076293945 37.369998931884766 37.95000076293945 37.95000076293945 199518 0.0 0.0
732 2024-11-06 00:00:00+01:00 38.20000076293945 38.900001525878906 34.91999816894531 34.91999816894531 34.91999816894531 469899 0.0 0.0
733 2024-11-07 00:00:00+01:00 34.08000183105469 34.900001525878906 33.72999954223633 33.72999954223633 33.72999954223633 380050 0.0 0.0
734 2024-11-08 00:00:00+01:00 33.61000061035156 33.91999816894531 33.29999923706055 33.54999923706055 33.54999923706055 389420 0.0 0.0
735 2024-11-11 00:00:00+01:00 33.810001373291016 34.31999969482422 33.130001068115234 33.130001068115234 33.130001068115234 233145 0.0 0.0
736 2024-11-12 00:00:00+01:00 32.79999923706055 33.029998779296875 31.670000076293945 31.709999084472656 31.709999084472656 284709 0.0 0.0
737 2024-11-13 00:00:00+01:00 31.780000686645508 32.11000061035156 31.360000610351562 31.510000228881836 31.510000228881836 208626 0.0 0.0
738 2024-11-14 00:00:00+01:00 31.600000381469727 31.8799991607666 31.34000015258789 31.40999984741211 31.40999984741211 193374 0.0 0.0
739 2024-11-15 00:00:00+01:00 31.309999465942383 32.5 31.309999465942383 32.22999954223633 32.22999954223633 130866 0.0 0.0
740 2024-11-18 00:00:00+01:00 32.20000076293945 32.72999954223633 32.08000183105469 32.130001068115234 32.130001068115234 94641 0.0 0.0
741 2024-11-19 00:00:00+01:00 32.099998474121094 32.650001525878906 31.06999969482422 31.920000076293945 31.920000076293945 159142 0.0 0.0

50
tests/test_cache.py Normal file
View File

@@ -0,0 +1,50 @@
"""
Tests for cache
To run all tests in suite from commandline:
python -m unittest tests.cache
Specific test class:
python -m unittest tests.cache.TestCache
"""
from tests.context import yfinance as yf
import unittest
import tempfile
import os
class TestCache(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.tempCacheDir = tempfile.TemporaryDirectory()
yf.set_tz_cache_location(cls.tempCacheDir.name)
@classmethod
def tearDownClass(cls):
yf.cache._TzDBManager.close_db()
cls.tempCacheDir.cleanup()
def test_storeTzNoRaise(self):
# storing TZ to cache should never raise exception
tkr = 'AMZN'
tz1 = "America/New_York"
tz2 = "London/Europe"
cache = yf.cache.get_tz_cache()
cache.store(tkr, tz1)
cache.store(tkr, tz2)
def test_setTzCacheLocation(self):
self.assertEqual(yf.cache._TzDBManager.get_location(), self.tempCacheDir.name)
tkr = 'AMZN'
tz1 = "America/New_York"
cache = yf.cache.get_tz_cache()
cache.store(tkr, tz1)
self.assertTrue(os.path.exists(os.path.join(self.tempCacheDir.name, "tkr-tz.db")))
if __name__ == '__main__':
unittest.main()

View File

@@ -0,0 +1,52 @@
"""
Tests for cache
To run all tests in suite from commandline:
python -m unittest tests.cache
Specific test class:
python -m unittest tests.cache.TestCache
"""
from tests.context import yfinance as yf
import unittest
import os
class TestCacheNoPermission(unittest.TestCase):
@classmethod
def setUpClass(cls):
if os.name == "nt": # Windows
cls.cache_path = "C:\\Windows\\System32\\yf-cache"
else: # Unix/Linux/MacOS
# Use a writable directory
cls.cache_path = "/yf-cache"
yf.set_tz_cache_location(cls.cache_path)
def test_tzCacheRootStore(self):
# Test that if cache path in read-only filesystem, no exception.
tkr = 'AMZN'
tz1 = "America/New_York"
# During attempt to store, will discover cannot write
yf.cache.get_tz_cache().store(tkr, tz1)
# Handling the store failure replaces cache with a dummy
cache = yf.cache.get_tz_cache()
self.assertTrue(cache.dummy)
cache.store(tkr, tz1)
def test_tzCacheRootLookup(self):
# Test that if cache path in read-only filesystem, no exception.
tkr = 'AMZN'
# During attempt to lookup, will discover cannot write
yf.cache.get_tz_cache().lookup(tkr)
# Handling the lookup failure replaces cache with a dummy
cache = yf.cache.get_tz_cache()
self.assertTrue(cache.dummy)
cache.lookup(tkr)
if __name__ == '__main__':
unittest.main()

30
tests/test_live.py Normal file
View File

@@ -0,0 +1,30 @@
import unittest
from unittest.mock import Mock
from yfinance.live import BaseWebSocket
class TestWebSocket(unittest.TestCase):
def test_decode_message_valid(self):
message = ("CgdCVEMtVVNEFYoMuUcYwLCVgIplIgNVU0QqA0NDQzApOAFFPWrEP0iAgOrxvANVx/25R12csrRHZYD8skR9/"
"7i0R7ABgIDq8bwD2AEE4AGAgOrxvAPoAYCA6vG8A/IBA0JUQ4ECAAAAwPrjckGJAgAA2P5ZT3tC")
ws = BaseWebSocket(Mock())
decoded = ws._decode_message(message)
expected = {'id': 'BTC-USD', 'price': 94745.08, 'time': '1736509140000', 'currency': 'USD', 'exchange': 'CCC',
'quote_type': 41, 'market_hours': 1, 'change_percent': 1.5344921, 'day_volume': '59712028672',
'day_high': 95227.555, 'day_low': 92517.22, 'change': 1431.8906, 'open_price': 92529.99,
'last_size': '59712028672', 'price_hint': '2', 'vol_24hr': '59712028672',
'vol_all_currencies': '59712028672', 'from_currency': 'BTC', 'circulating_supply': 19808172.0,
'market_cap': 1876726640000.0}
self.assertEqual(expected, decoded)
def test_decode_message_invalid(self):
websocket = BaseWebSocket(Mock())
base64_message = "invalid_base64_string"
decoded = websocket._decode_message(base64_message)
assert "error" in decoded
assert "raw_base64" in decoded
self.assertEqual(base64_message, decoded["raw_base64"])

69
tests/test_lookup.py Normal file
View File

@@ -0,0 +1,69 @@
import unittest
import pandas as pd
from tests.context import yfinance as yf, session_gbl
class TestLookup(unittest.TestCase):
def setUp(self):
self.query = "A" # Generic query to make sure all lookup types are returned
self.lookup = yf.Lookup(query=self.query, session=session_gbl)
def test_get_all(self):
result = self.lookup.get_all(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_stock(self):
result = self.lookup.get_stock(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_mutualfund(self):
result = self.lookup.get_mutualfund(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_etf(self):
result = self.lookup.get_etf(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_index(self):
result = self.lookup.get_index(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_future(self):
result = self.lookup.get_future(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_currency(self):
result = self.lookup.get_currency(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_get_cryptocurrency(self):
result = self.lookup.get_cryptocurrency(count=5)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 5)
def test_large_all(self):
result = self.lookup.get_all(count=1000)
self.assertIsInstance(result, pd.DataFrame)
self.assertEqual(len(result), 1000)
if __name__ == "__main__":
unittest.main()

View File

@@ -361,15 +361,15 @@ class TestPriceRepair(unittest.TestCase):
hist = dat._lazy_load_price_history()
tz_exchange = dat.fast_info["timezone"]
df_bad = _pd.DataFrame(data={"Open": [0, 102.04, 102.04],
"High": [0, 102.1, 102.11],
"Low": [0, 102.04, 102.04],
"Close": [103.03, 102.05, 102.08],
"Adj Close": [102.03, 102.05, 102.08],
"Volume": [560, 137, 117]},
index=_pd.to_datetime([_dt.datetime(2022, 11, 1),
_dt.datetime(2022, 10, 31),
_dt.datetime(2022, 10, 30)]))
df_bad = _pd.DataFrame(data={"Open": [0, 114.37, 114.20],
"High": [0, 114.40, 114.40],
"Low": [0, 114.36, 114.20],
"Close": [114.39, 114.38, 114.45],
"Adj Close": [114.39, 114.38, 114.45],
"Volume": [9, 15666, 1094]},
index=_pd.to_datetime([_dt.datetime(2025, 3, 17),
_dt.datetime(2025, 3, 14),
_dt.datetime(2025, 3, 13)]))
df_bad = df_bad.sort_index()
df_bad.index.name = "Date"
df_bad.index = df_bad.index.tz_localize(tz_exchange)
@@ -377,11 +377,11 @@ class TestPriceRepair(unittest.TestCase):
repaired_df = hist._fix_zeroes(df_bad, "1d", tz_exchange, prepost=False)
correct_df = df_bad.copy()
correct_df.loc["2022-11-01", "Open"] = 102.080002
correct_df.loc["2022-11-01", "Low"] = 102.032501
correct_df.loc["2022-11-01", "High"] = 102.080002
correct_df.loc["2025-03-17", "Open"] = 114.62
correct_df.loc["2025-03-17", "High"] = 114.62
correct_df.loc["2025-03-17", "Low"] = 114.41
for c in ["Open", "Low", "High", "Close"]:
self.assertTrue(_np.isclose(repaired_df[c], correct_df[c], rtol=1e-8).all())
self.assertTrue(_np.isclose(repaired_df[c], correct_df[c], rtol=1e-7).all())
self.assertTrue("Repaired?" in repaired_df.columns)
self.assertFalse(repaired_df["Repaired?"].isna().any())
@@ -390,19 +390,21 @@ class TestPriceRepair(unittest.TestCase):
# Test that 'Adj Close' is reconstructed correctly,
# particularly when a dividend occurred within 1 day.
self.skipTest("Currently failing because Yahoo returning slightly different data for interval 1d vs 1h on day Aug 6 2024")
tkr = "INTC"
df = _pd.DataFrame(data={"Open": [28.95, 28.65, 29.55, 29.62, 29.25],
"High": [29.12, 29.27, 29.65, 31.17, 30.30],
"Low": [28.21, 28.43, 28.61, 29.53, 28.80],
"Close": [28.24, 29.05, 28.69, 30.32, 30.19],
"Adj Close": [28.12, 28.93, 28.57, 29.83, 29.70],
"Volume": [36e6, 51e6, 49e6, 58e6, 62e6],
"Dividends": [0, 0, 0.365, 0, 0]},
index=_pd.to_datetime([_dt.datetime(2023, 2, 8),
_dt.datetime(2023, 2, 7),
_dt.datetime(2023, 2, 6),
_dt.datetime(2023, 2, 3),
_dt.datetime(2023, 2, 2)]))
df = _pd.DataFrame(data={"Open": [2.020000e+01, 2.032000e+01, 1.992000e+01, 1.910000e+01, 2.008000e+01],
"High": [2.039000e+01, 2.063000e+01, 2.025000e+01, 2.055000e+01, 2.015000e+01],
"Low": [1.929000e+01, 1.975000e+01, 1.895000e+01, 1.884000e+01, 1.950000e+01],
"Close": [2.011000e+01, 1.983000e+01, 1.899000e+01, 2.049000e+01, 1.971000e+01],
"Adj Close": [1.998323e+01, 1.970500e+01, 1.899000e+01, 2.049000e+01, 1.971000e+01],
"Volume": [1.473857e+08, 1.066704e+08, 9.797230e+07, 9.683680e+07, 7.639450e+07],
"Dividends": [0.000000e+00, 0.000000e+00, 1.250000e-01, 0.000000e+00, 0.000000e+00]},
index=_pd.to_datetime([_dt.datetime(2024, 8, 9),
_dt.datetime(2024, 8, 8),
_dt.datetime(2024, 8, 7),
_dt.datetime(2024, 8, 6),
_dt.datetime(2024, 8, 5)]))
df = df.sort_index()
df.index.name = "Date"
dat = yf.Ticker(tkr, session=self.session)
@@ -462,7 +464,7 @@ class TestPriceRepair(unittest.TestCase):
# Stocks that split in 2022 but no problems in Yahoo data,
# so repair should change nothing
good_tkrs = ['AMZN', 'DXCM', 'FTNT', 'GOOG', 'GME', 'PANW', 'SHOP', 'TSLA']
good_tkrs += ['AEI', 'GHI', 'IRON', 'LXU', 'NUZE', 'RSLS', 'TISI']
good_tkrs += ['AEI', 'GHI', 'IRON', 'LXU', 'RSLS', 'TISI']
good_tkrs += ['BOL.ST', 'TUI1.DE']
intervals = ['1d', '1wk', '1mo', '3mo']
for tkr in good_tkrs:
@@ -488,7 +490,7 @@ class TestPriceRepair(unittest.TestCase):
print(df_dbg[f_diff | _np.roll(f_diff, 1) | _np.roll(f_diff, -1)])
raise
bad_tkrs = ['4063.T', 'ALPHA.PA', 'AV.L', 'CNE.L', 'MOB.ST', 'SPM.MI']
bad_tkrs = ['4063.T', 'AV.L', 'CNE.L', 'MOB.ST', 'SPM.MI']
bad_tkrs.append('LA.V') # special case - stock split error is 3 years ago! why not fixed?
for tkr in bad_tkrs:
dat = yf.Ticker(tkr, session=self.session)
@@ -580,7 +582,6 @@ class TestPriceRepair(unittest.TestCase):
# Div 100x
bad_tkrs += ['ABDP.L']
bad_tkrs += ['ELCO.L']
bad_tkrs += ['KWS.L']
bad_tkrs += ['PSH.L']
# Div 100x and adjust too big
@@ -598,7 +599,6 @@ class TestPriceRepair(unittest.TestCase):
# Phantom divs
bad_tkrs += ['KAP.IL'] # 1x 1d phantom div, and false positives 0.01x in 1wk
bad_tkrs += ['SAND']
bad_tkrs += ['SOLB.BR'] # 1x phantom div, but some false-positive 100x. and had to improve phantom detection
bad_tkrs += ['TEM.L']
bad_tkrs += ['TEP.PA']

View File

@@ -46,7 +46,7 @@ class TestPriceHistory(unittest.TestCase):
def test_download_multi_small_interval(self):
use_tkrs = ["AAPL", "0Q3.DE", "ATVI"]
df = yf.download(use_tkrs, period="1d", interval="5m")
df = yf.download(use_tkrs, period="1d", interval="5m", auto_adjust=True)
self.assertEqual(df.index.tz, _dt.timezone.utc)
def test_download_with_invalid_ticker(self):
@@ -56,16 +56,17 @@ class TestPriceHistory(unittest.TestCase):
invalid_tkrs = ["AAPL", "ATVI"] #AAPL exists and ATVI does not exist
valid_tkrs = ["AAPL", "INTC"] #AAPL and INTC both exist
data_invalid_sym = yf.download(invalid_tkrs, start='2023-11-16', end='2023-11-17')
data_valid_sym = yf.download(valid_tkrs, start='2023-11-16', end='2023-11-17')
self.assertEqual(data_invalid_sym['Close']['AAPL']['2023-11-16'],data_valid_sym['Close']['AAPL']['2023-11-16'])
start_d = _dt.date.today() - _dt.timedelta(days=30)
data_invalid_sym = yf.download(invalid_tkrs, start=start_d, auto_adjust=True)
data_valid_sym = yf.download(valid_tkrs, start=start_d, auto_adjust=True)
dt_compare = data_valid_sym.index[0]
self.assertEqual(data_invalid_sym['Close']['AAPL'][dt_compare],data_valid_sym['Close']['AAPL'][dt_compare])
def test_duplicatingHourly(self):
tkrs = ["IMP.JO", "BHG.JO", "SSW.JO", "BP.L", "INTC"]
for tkr in tkrs:
dat = yf.Ticker(tkr, session=self.session)
tz = dat._get_ticker_tz(proxy=None, timeout=None)
tz = dat._get_ticker_tz(timeout=None)
dt_utc = _pd.Timestamp.utcnow()
dt = dt_utc.astimezone(_tz.timezone(tz))
@@ -85,7 +86,7 @@ class TestPriceHistory(unittest.TestCase):
test_run = False
for tkr in tkrs:
dat = yf.Ticker(tkr, session=self.session)
tz = dat._get_ticker_tz(proxy=None, timeout=None)
tz = dat._get_ticker_tz(timeout=None)
dt_utc = _pd.Timestamp.utcnow()
dt = dt_utc.astimezone(_tz.timezone(tz))
@@ -111,7 +112,7 @@ class TestPriceHistory(unittest.TestCase):
test_run = False
for tkr in tkrs:
dat = yf.Ticker(tkr, session=self.session)
tz = dat._get_ticker_tz(proxy=None, timeout=None)
tz = dat._get_ticker_tz(timeout=None)
dt = _tz.timezone(tz).localize(_dt.datetime.now())
if dt.date().weekday() not in [1, 2, 3, 4]:
@@ -185,7 +186,7 @@ class TestPriceHistory(unittest.TestCase):
df_intraday_divs = df_intraday["Dividends"][df_intraday["Dividends"] != 0]
df_intraday_divs.index = df_intraday_divs.index.floor('D')
self.assertTrue(df_daily_divs.equals(df_intraday_divs))
self.assertTrue(df_daily_divs.index.equals(df_intraday_divs.index))
test_run = True
@@ -212,7 +213,7 @@ class TestPriceHistory(unittest.TestCase):
df_intraday_divs = df_intraday["Dividends"][df_intraday["Dividends"] != 0]
df_intraday_divs.index = df_intraday_divs.index.floor('D')
self.assertTrue(df_daily_divs.equals(df_intraday_divs))
self.assertTrue(df_daily_divs.index.equals(df_intraday_divs.index))
test_run = True
@@ -401,7 +402,7 @@ class TestPriceHistory(unittest.TestCase):
# Setup
tkr = "AMZN"
special_day = _dt.date(2023, 11, 24)
special_day = _dt.date(2024, 11, 29)
time_early_close = _dt.time(13)
dat = yf.Ticker(tkr, session=self.session)
@@ -416,6 +417,8 @@ class TestPriceHistory(unittest.TestCase):
start_d = _dt.date(special_day.year, 1, 1)
end_d = _dt.date(special_day.year+1, 1, 1)
df = dat.history(start=start_d, end=end_d, interval="1h", prepost=False, keepna=True)
if df.empty:
self.skipTest("TEST NEEDS UPDATE: 'special_day' needs to be LATEST Thanksgiving date")
last_dts = _pd.Series(df.index).groupby(df.index.date).last()
dfd = dat.history(start=start_d, end=end_d, interval='1d', prepost=False, keepna=True)
self.assertTrue(_np.equal(dfd.index.date, _pd.to_datetime(last_dts.index).date).all())
@@ -423,12 +426,12 @@ class TestPriceHistory(unittest.TestCase):
def test_prune_post_intraday_asx(self):
# Setup
tkr = "BHP.AX"
# No early closes in 2023
# No early closes in 2024
dat = yf.Ticker(tkr, session=self.session)
# Test no other afternoons (or mornings) were pruned
start_d = _dt.date(2023, 1, 1)
end_d = _dt.date(2023+1, 1, 1)
start_d = _dt.date(2024, 1, 1)
end_d = _dt.date(2024+1, 1, 1)
df = dat.history(start=start_d, end=end_d, interval="1h", prepost=False, keepna=True)
last_dts = _pd.Series(df.index).groupby(df.index.date).last()
dfd = dat.history(start=start_d, end=end_d, interval='1d', prepost=False, keepna=True)

View File

@@ -1,133 +1,38 @@
import unittest
from unittest.mock import patch, MagicMock
from yfinance.const import PREDEFINED_SCREENER_BODY_MAP
from yfinance.screener.screener import Screener
from yfinance.screener.screener_query import EquityQuery
from yfinance.screener.screener import screen
from yfinance.screener.query import EquityQuery
class TestScreener(unittest.TestCase):
@classmethod
def setUpClass(self):
self.screener = Screener()
self.query = EquityQuery('gt',['eodprice',3])
def test_set_default_body(self):
self.screener.set_default_body(self.query)
self.assertEqual(self.screener.body['offset'], 0)
self.assertEqual(self.screener.body['size'], 100)
self.assertEqual(self.screener.body['sortField'], 'ticker')
self.assertEqual(self.screener.body['sortType'], 'desc')
self.assertEqual(self.screener.body['quoteType'], 'equity')
self.assertEqual(self.screener.body['query'], self.query.to_dict())
self.assertEqual(self.screener.body['userId'], '')
self.assertEqual(self.screener.body['userIdType'], 'guid')
def test_set_predefined_body(self):
k = 'most_actives'
self.screener.set_predefined_body(k)
self.assertEqual(self.screener.body, PREDEFINED_SCREENER_BODY_MAP[k])
def test_set_predefined_body_invalid_key(self):
with self.assertRaises(ValueError):
self.screener.set_predefined_body('invalid_key')
def test_set_body(self):
body = {
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity",
"query": self.query.to_dict(),
"userId": "",
"userIdType": "guid"
}
self.screener.set_body(body)
self.assertEqual(self.screener.body, body)
def test_set_body_missing_keys(self):
body = {
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity"
}
with self.assertRaises(ValueError):
self.screener.set_body(body)
def test_set_body_extra_keys(self):
body = {
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity",
"query": self.query.to_dict(),
"userId": "",
"userIdType": "guid",
"extraKey": "extraValue"
}
with self.assertRaises(ValueError):
self.screener.set_body(body)
def test_patch_body(self):
initial_body = {
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity",
"query": self.query.to_dict(),
"userId": "",
"userIdType": "guid"
}
self.screener.set_body(initial_body)
patch_values = {"size": 50}
self.screener.patch_body(patch_values)
self.assertEqual(self.screener.body['size'], 50)
self.assertEqual(self.screener.body['query'], self.query.to_dict())
def test_patch_body_extra_keys(self):
initial_body = {
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity",
"query": self.query.to_dict(),
"userId": "",
"userIdType": "guid"
}
self.screener.set_body(initial_body)
patch_values = {"extraKey": "extraValue"}
with self.assertRaises(ValueError):
self.screener.patch_body(patch_values)
self.predefined = 'aggressive_small_caps'
@patch('yfinance.screener.screener.YfData.post')
def test_fetch(self, mock_post):
mock_response = MagicMock()
mock_response.json.return_value = {'finance': {'result': [{}]}}
mock_post.return_value = mock_response
def test_set_large_size_in_body(self, mock_post):
with self.assertRaises(ValueError):
screen(self.query, size=251)
self.screener.set_default_body(self.query)
response = self.screener._fetch()
self.assertEqual(response, {'finance': {'result': [{}]}})
@patch('yfinance.screener.screener.YfData.post')
def test_fetch_and_parse(self, mock_post):
@patch('yfinance.data.YfData.post')
def test_fetch_query(self, mock_post):
mock_response = MagicMock()
mock_response.json.return_value = {'finance': {'result': [{'key': 'value'}]}}
mock_post.return_value = mock_response
self.screener.set_default_body(self.query)
self.screener._fetch_and_parse()
self.assertEqual(self.screener.response, {'key': 'value'})
response = screen(self.query)
self.assertEqual(response, {'key': 'value'})
@patch('yfinance.data.YfData.get')
def test_fetch_predefined(self, mock_get):
mock_response = MagicMock()
mock_response.json.return_value = {'finance': {'result': [{'key': 'value'}]}}
mock_get.return_value = mock_response
response = screen(self.predefined)
self.assertEqual(response, {'key': 'value'})
if __name__ == '__main__':
unittest.main()

42
tests/test_search.py Normal file
View File

@@ -0,0 +1,42 @@
import unittest
from tests.context import yfinance as yf
class TestSearch(unittest.TestCase):
def test_invalid_query(self):
search = yf.Search(query="XYZXYZ")
self.assertEqual(len(search.quotes), 0)
self.assertEqual(len(search.news), 0)
self.assertEqual(len(search.lists), 0)
self.assertEqual(len(search.nav), 0)
self.assertEqual(len(search.research), 0)
def test_empty_query(self):
search = yf.Search(query="")
self.assertEqual(len(search.quotes), 0)
self.assertEqual(len(search.news), 0)
def test_fuzzy_query(self):
search = yf.Search(query="Appel", enable_fuzzy_query=True)
# Check if the fuzzy search retrieves relevant results despite the typo
self.assertGreater(len(search.quotes), 0)
self.assertIn("AAPL", search.quotes[0]['symbol'])
def test_quotes(self):
search = yf.Search(query="AAPL", max_results=5)
self.assertEqual(len(search.quotes), 5)
self.assertIn("AAPL", search.quotes[0]['symbol'])
def test_news(self):
search = yf.Search(query="AAPL", news_count=3)
self.assertEqual(len(search.news), 3)
def test_research_reports(self):
search = yf.Search(query="AAPL", include_research=True)
self.assertEqual(len(search.research), 3)

View File

@@ -8,6 +8,8 @@ Specific test class:
python -m unittest tests.ticker.TestTicker
"""
from datetime import datetime, timedelta
import pandas as pd
from tests.context import yfinance as yf
@@ -35,10 +37,12 @@ ticker_attributes = (
("recommendations", Union[pd.DataFrame, dict]),
("recommendations_summary", Union[pd.DataFrame, dict]),
("upgrades_downgrades", Union[pd.DataFrame, dict]),
("ttm_cashflow", pd.DataFrame),
("quarterly_cashflow", pd.DataFrame),
("cashflow", pd.DataFrame),
("quarterly_balance_sheet", pd.DataFrame),
("balance_sheet", pd.DataFrame),
("ttm_income_stmt", pd.DataFrame),
("quarterly_income_stmt", pd.DataFrame),
("income_stmt", pd.DataFrame),
("analyst_price_targets", dict),
@@ -76,8 +80,6 @@ class TestTicker(unittest.TestCase):
def setUpClass(cls):
cls.session = session_gbl
cls.proxy = None
@classmethod
def tearDownClass(cls):
if cls.session is not None:
@@ -91,7 +93,7 @@ class TestTicker(unittest.TestCase):
# Test:
dat = yf.Ticker(tkr, session=self.session)
tz = dat._get_ticker_tz(proxy=None, timeout=5)
tz = dat._get_ticker_tz(timeout=5)
self.assertIsNotNone(tz)
@@ -133,8 +135,55 @@ class TestTicker(unittest.TestCase):
with self.assertRaises(YFInvalidPeriodError):
dat.history(period="2wks", interval="1d", raise_errors=True)
with self.assertRaises(YFInvalidPeriodError):
dat.history(period="2mo", interval="1d", raise_errors=True)
dat.history(period="2mos", interval="1d", raise_errors=True)
def test_valid_custom_periods(self):
valid_periods = [
# Yahoo provided periods
("1d", "1m"), ("5d", "15m"), ("1mo", "1d"), ("3mo", "1wk"),
("6mo", "1d"), ("1y", "1mo"), ("5y", "1wk"), ("max", "1mo"),
# Custom periods
("2d", "30m"), ("10mo", "1d"), ("1y", "1d"), ("3y", "1d"),
("2wk", "15m"), ("6mo", "5d"), ("10y", "1wk")
]
tkr = "AAPL"
dat = yf.Ticker(tkr, session=self.session)
for period, interval in valid_periods:
with self.subTest(period=period, interval=interval):
df = dat.history(period=period, interval=interval, raise_errors=True)
self.assertIsInstance(df, pd.DataFrame)
self.assertFalse(df.empty, f"No data returned for period={period}, interval={interval}")
self.assertIn("Close", df.columns, f"'Close' column missing for period={period}, interval={interval}")
# Validate date range
now = datetime.now()
if period != "max": # Difficult to assert for "max", therefore we skip
if period.endswith("d"):
days = int(period[:-1])
expected_start = now - timedelta(days=days)
elif period.endswith("mo"):
months = int(period[:-2])
expected_start = now - timedelta(days=30 * months)
elif period.endswith("y"):
years = int(period[:-1])
expected_start = now - timedelta(days=365 * years)
elif period.endswith("wk"):
weeks = int(period[:-2])
expected_start = now - timedelta(weeks=weeks)
else:
continue
actual_start = df.index[0].to_pydatetime().replace(tzinfo=None)
expected_start = expected_start.replace(hour=0, minute=0, second=0, microsecond=0)
# leeway added because of weekends
self.assertGreaterEqual(actual_start, expected_start - timedelta(days=10),
f"Start date {actual_start} out of range for period={period}")
self.assertLessEqual(df.index[-1].to_pydatetime().replace(tzinfo=None), now,
f"End date {df.index[-1]} out of range for period={period}")
def test_prices_missing(self):
# this test will need to be updated every time someone wants to run a test
@@ -176,10 +225,10 @@ class TestTicker(unittest.TestCase):
def test_goodTicker_withProxy(self):
tkr = "IBM"
dat = yf.Ticker(tkr, session=self.session, proxy=self.proxy)
dat = yf.Ticker(tkr, session=self.session)
dat._fetch_ticker_tz(proxy=None, timeout=5)
dat._get_ticker_tz(proxy=None, timeout=5)
dat._fetch_ticker_tz(timeout=5)
dat._get_ticker_tz(timeout=5)
dat.history(period="5d")
for attribute_name, attribute_type in ticker_attributes:
@@ -259,14 +308,13 @@ class TestTickerHistory(unittest.TestCase):
actual_urls_called[i] = u
actual_urls_called = tuple(actual_urls_called)
expected_urls = (
f"https://query2.finance.yahoo.com/v8/finance/chart/{symbol}?events=div%2Csplits%2CcapitalGains&includePrePost=False&interval=1d&range={period}",
)
self.assertEqual(
expected_urls,
actual_urls_called,
"Different than expected url used to fetch history."
)
expected_urls = [
f"https://query2.finance.yahoo.com/v8/finance/chart/{symbol}?interval=1d&range=1d", # ticker's tz
f"https://query2.finance.yahoo.com/v8/finance/chart/{symbol}?events=div%2Csplits%2CcapitalGains&includePrePost=False&interval=1d&range={period}"
]
for url in actual_urls_called:
self.assertTrue(url in expected_urls, f"Unexpected URL called: {url}")
def test_dividends(self):
data = self.ticker.dividends
self.assertIsInstance(data, pd.Series, "data has wrong type")
@@ -282,6 +330,12 @@ class TestTickerHistory(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
def test_chained_history_calls(self):
_ = self.ticker.history(period="2d")
data = self.ticker.dividends
self.assertIsInstance(data, pd.Series, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
class TestTickerEarnings(unittest.TestCase):
session = None
@@ -309,7 +363,7 @@ class TestTickerEarnings(unittest.TestCase):
def test_earnings_dates_with_limit(self):
# use ticker with lots of historic earnings
ticker = yf.Ticker("IBM")
limit = 110
limit = 100
data = ticker.get_earnings_dates(limit=limit)
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
@@ -506,6 +560,34 @@ class TestTickerMiscFinancials(unittest.TestCase):
data = self.ticker.get_income_stmt(as_dict=True)
self.assertIsInstance(data, dict, "data has wrong type")
def test_ttm_income_statement(self):
expected_keys = ["Total Revenue", "Pretax Income", "Normalized EBITDA"]
# Test contents of table
data = self.ticker.get_income_stmt(pretty=True, freq='trailing')
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
for k in expected_keys:
self.assertIn(k, data.index, "Did not find expected row in index")
# Trailing 12 months there must be exactly one column
self.assertEqual(len(data.columns), 1, "Only one column should be returned on TTM income statement")
# Test property defaults
data2 = self.ticker.ttm_income_stmt
self.assertTrue(data.equals(data2), "property not defaulting to 'pretty=True'")
# Test pretty=False
expected_keys = [k.replace(' ', '') for k in expected_keys]
data = self.ticker.get_income_stmt(pretty=False, freq='trailing')
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
for k in expected_keys:
self.assertIn(k, data.index, "Did not find expected row in index")
# Test to_dict
data = self.ticker.get_income_stmt(as_dict=True, freq='trailing')
self.assertIsInstance(data, dict, "data has wrong type")
def test_balance_sheet(self):
expected_keys = ["Total Assets", "Net PPE"]
expected_periods_days = 365
@@ -622,6 +704,34 @@ class TestTickerMiscFinancials(unittest.TestCase):
data = self.ticker.get_cashflow(as_dict=True)
self.assertIsInstance(data, dict, "data has wrong type")
def test_ttm_cash_flow(self):
expected_keys = ["Operating Cash Flow", "Net PPE Purchase And Sale"]
# Test contents of table
data = self.ticker.get_cashflow(pretty=True, freq='trailing')
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
for k in expected_keys:
self.assertIn(k, data.index, "Did not find expected row in index")
# Trailing 12 months there must be exactly one column
self.assertEqual(len(data.columns), 1, "Only one column should be returned on TTM cash flow")
# Test property defaults
data2 = self.ticker.ttm_cashflow
self.assertTrue(data.equals(data2), "property not defaulting to 'pretty=True'")
# Test pretty=False
expected_keys = [k.replace(' ', '') for k in expected_keys]
data = self.ticker.get_cashflow(pretty=False, freq='trailing')
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
for k in expected_keys:
self.assertIn(k, data.index, "Did not find expected row in index")
# Test to_dict
data = self.ticker.get_cashflow(as_dict=True, freq='trailing')
self.assertIsInstance(data, dict, "data has wrong type")
def test_income_alt_names(self):
i1 = self.ticker.income_stmt
i2 = self.ticker.incomestmt
@@ -647,6 +757,18 @@ class TestTickerMiscFinancials(unittest.TestCase):
i3 = self.ticker.get_financials(freq="quarterly")
self.assertTrue(i1.equals(i3))
i1 = self.ticker.ttm_income_stmt
i2 = self.ticker.ttm_incomestmt
self.assertTrue(i1.equals(i2))
i3 = self.ticker.ttm_financials
self.assertTrue(i1.equals(i3))
i1 = self.ticker.get_income_stmt(freq="trailing")
i2 = self.ticker.get_incomestmt(freq="trailing")
self.assertTrue(i1.equals(i2))
i3 = self.ticker.get_financials(freq="trailing")
self.assertTrue(i1.equals(i3))
def test_balance_sheet_alt_names(self):
i1 = self.ticker.balance_sheet
i2 = self.ticker.balancesheet
@@ -681,6 +803,14 @@ class TestTickerMiscFinancials(unittest.TestCase):
i2 = self.ticker.get_cashflow(freq="quarterly")
self.assertTrue(i1.equals(i2))
i1 = self.ticker.ttm_cash_flow
i2 = self.ticker.ttm_cashflow
self.assertTrue(i1.equals(i2))
i1 = self.ticker.get_cash_flow(freq="trailing")
i2 = self.ticker.get_cashflow(freq="trailing")
self.assertTrue(i1.equals(i2))
def test_bad_freq_value_raises_exception(self):
self.assertRaises(ValueError, lambda: self.ticker.get_cashflow(freq="badarg"))
@@ -760,7 +890,7 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
self.assertTrue(len(data.columns) == 4, "data has wrong number of columns")
self.assertEqual(data.columns.values.tolist(), ['Firm', 'ToGrade', 'FromGrade', 'Action'], "data has wrong column names")
self.assertCountEqual(data.columns.values.tolist(), ['Firm', 'ToGrade', 'FromGrade', 'Action'], "data has wrong column names")
self.assertIsInstance(data.index, pd.DatetimeIndex, "data has wrong index type")
data_cached = self.ticker.upgrades_downgrades
@@ -770,9 +900,6 @@ class TestTickerAnalysts(unittest.TestCase):
data = self.ticker.analyst_price_targets
self.assertIsInstance(data, dict, "data has wrong type")
keys = {'current', 'low', 'high', 'mean', 'median'}
self.assertEqual(data.keys(), keys, "data has wrong keys")
data_cached = self.ticker.analyst_price_targets
self.assertIs(data, data_cached, "data not cached")
@@ -781,12 +908,6 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
columns = ['numberOfAnalysts', 'avg', 'low', 'high', 'yearAgoEps', 'growth']
self.assertEqual(data.columns.values.tolist(), columns, "data has wrong column names")
index = ['0q', '+1q', '0y', '+1y']
self.assertEqual(data.index.values.tolist(), index, "data has wrong row names")
data_cached = self.ticker.earnings_estimate
self.assertIs(data, data_cached, "data not cached")
@@ -795,12 +916,6 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
columns = ['numberOfAnalysts', 'avg', 'low', 'high', 'yearAgoRevenue', 'growth']
self.assertEqual(data.columns.values.tolist(), columns, "data has wrong column names")
index = ['0q', '+1q', '0y', '+1y']
self.assertEqual(data.index.values.tolist(), index, "data has wrong row names")
data_cached = self.ticker.revenue_estimate
self.assertIs(data, data_cached, "data not cached")
@@ -809,8 +924,6 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
columns = ['epsEstimate', 'epsActual', 'epsDifference', 'surprisePercent']
self.assertEqual(data.columns.values.tolist(), columns, "data has wrong column names")
self.assertIsInstance(data.index, pd.DatetimeIndex, "data has wrong index type")
data_cached = self.ticker.earnings_history
@@ -821,12 +934,6 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
columns = ['current', '7daysAgo', '30daysAgo', '60daysAgo', '90daysAgo']
self.assertEqual(data.columns.values.tolist(), columns, "data has wrong column names")
index = ['0q', '+1q', '0y', '+1y']
self.assertEqual(data.index.values.tolist(), index, "data has wrong row names")
data_cached = self.ticker.eps_trend
self.assertIs(data, data_cached, "data not cached")
@@ -835,12 +942,6 @@ class TestTickerAnalysts(unittest.TestCase):
self.assertIsInstance(data, pd.DataFrame, "data has wrong type")
self.assertFalse(data.empty, "data is empty")
columns = ['stock', 'industry', 'sector', 'index']
self.assertEqual(data.columns.values.tolist(), columns, "data has wrong column names")
index = ['0q', '+1q', '0y', '+1y']
self.assertEqual(data.index.values.tolist(), index, "data has wrong row names")
data_cached = self.ticker.growth_estimates
self.assertIs(data, data_cached, "data not cached")
@@ -883,6 +984,7 @@ class TestTickerInfo(unittest.TestCase):
self.symbols.append("QCSTIX") # good for testing, doesn't trade
self.symbols += ["BTC-USD", "IWO", "VFINX", "^GSPC"]
self.symbols += ["SOKE.IS", "ADS.DE"] # detected bugs
self.symbols += ["EXTO", "NEPT" ] # Issues 2343 and 2363
self.tickers = [yf.Ticker(s, session=self.session) for s in self.symbols]
def tearDown(self):
@@ -913,6 +1015,37 @@ class TestTickerInfo(unittest.TestCase):
data2 = self.tickers[2].info
self.assertIsInstance(data2['trailingPegRatio'], float)
def test_isin_info(self):
isin_list = {"ES0137650018": True,
"does_not_exist": True, # Nonexistent but doesn't raise an error
"INF209K01EN2": True,
"INX846K01K35": False, # Nonexistent and raises an error
"INF846K01K35": True
}
for isin in isin_list:
if not isin_list[isin]:
with self.assertRaises(ValueError) as context:
ticker = yf.Ticker(isin)
self.assertIn(str(context.exception), [ f"Invalid ISIN number: {isin}", "Empty tickername" ])
else:
ticker = yf.Ticker(isin)
ticker.info
def test_empty_info(self):
# Test issue 2343 (Empty result _fetch)
data = self.tickers[10].info
self.assertCountEqual(['quoteType', 'symbol', 'underlyingSymbol', 'uuid', 'maxAge', 'trailingPegRatio'], data.keys())
self.assertIn("trailingPegRatio", data.keys(), "Did not find expected key 'trailingPegRatio' in info dict")
# Test issue 2363 (Empty QuoteResponse)
data = self.tickers[11].info
expected_keys = ['maxAge', 'priceHint', 'previousClose', 'open', 'dayLow', 'dayHigh', 'regularMarketPreviousClose',
'regularMarketOpen', 'regularMarketDayLow', 'regularMarketDayHigh', 'volume', 'regularMarketVolume',
'bid', 'ask', 'bidSize', 'askSize', 'fiftyTwoWeekLow', 'fiftyTwoWeekHigh', 'currency', 'tradeable',
'exchange', 'quoteType', 'symbol', 'underlyingSymbol', 'shortName', 'timeZoneFullName', 'timeZoneShortName',
'uuid', 'gmtOffSetMilliseconds', 'trailingPegRatio']
self.assertCountEqual(expected_keys, data.keys())
# def test_fast_info_matches_info(self):
# fast_info_keys = set()
# for ticker in self.tickers:

View File

@@ -12,74 +12,10 @@ from datetime import datetime
from unittest import TestSuite
import pandas as pd
# import numpy as np
from tests.context import yfinance as yf
import unittest
# import requests_cache
import tempfile
import os
class TestCache(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.tempCacheDir = tempfile.TemporaryDirectory()
yf.set_tz_cache_location(cls.tempCacheDir.name)
@classmethod
def tearDownClass(cls):
cls.tempCacheDir.cleanup()
def test_storeTzNoRaise(self):
# storing TZ to cache should never raise exception
tkr = 'AMZN'
tz1 = "America/New_York"
tz2 = "London/Europe"
cache = yf.cache.get_tz_cache()
cache.store(tkr, tz1)
cache.store(tkr, tz2)
def test_setTzCacheLocation(self):
self.assertEqual(yf.cache._TzDBManager.get_location(), self.tempCacheDir.name)
tkr = 'AMZN'
tz1 = "America/New_York"
cache = yf.cache.get_tz_cache()
cache.store(tkr, tz1)
self.assertTrue(os.path.exists(os.path.join(self.tempCacheDir.name, "tkr-tz.db")))
class TestCacheNoPermission(unittest.TestCase):
@classmethod
def setUpClass(cls):
yf.set_tz_cache_location("/root/yf-cache")
def test_tzCacheRootStore(self):
# Test that if cache path in read-only filesystem, no exception.
tkr = 'AMZN'
tz1 = "America/New_York"
# During attempt to store, will discover cannot write
yf.cache.get_tz_cache().store(tkr, tz1)
# Handling the store failure replaces cache with a dummy
cache = yf.cache.get_tz_cache()
self.assertTrue(cache.dummy)
cache.store(tkr, tz1)
def test_tzCacheRootLookup(self):
# Test that if cache path in read-only filesystem, no exception.
tkr = 'AMZN'
# During attempt to lookup, will discover cannot write
yf.cache.get_tz_cache().lookup(tkr)
# Handling the lookup failure replaces cache with a dummy
cache = yf.cache.get_tz_cache()
self.assertTrue(cache.dummy)
cache.lookup(tkr)
from yfinance.utils import is_valid_period_format, _dts_in_same_interval
class TestPandas(unittest.TestCase):
@@ -105,11 +41,142 @@ class TestPandas(unittest.TestCase):
i += 1
class TestUtils(unittest.TestCase):
def test_is_valid_period_format_valid(self):
self.assertTrue(is_valid_period_format("1d"))
self.assertTrue(is_valid_period_format("5wk"))
self.assertTrue(is_valid_period_format("12mo"))
self.assertTrue(is_valid_period_format("2y"))
def test_is_valid_period_format_invalid(self):
self.assertFalse(is_valid_period_format("1m")) # Incorrect suffix
self.assertFalse(is_valid_period_format("2wks")) # Incorrect suffix
self.assertFalse(is_valid_period_format("10")) # Missing suffix
self.assertFalse(is_valid_period_format("abc")) # Invalid string
self.assertFalse(is_valid_period_format("")) # Empty string
def test_is_valid_period_format_edge_cases(self):
self.assertFalse(is_valid_period_format(None)) # None input
self.assertFalse(is_valid_period_format("0d")) # Zero is invalid
self.assertTrue(is_valid_period_format("999mo")) # Large number valid
class TestDateIntervalCheck(unittest.TestCase):
def test_same_day(self):
dt1 = pd.Timestamp("2024-10-15 10:00:00")
dt2 = pd.Timestamp("2024-10-15 14:30:00")
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1d"))
def test_different_days(self):
dt1 = pd.Timestamp("2024-10-15 10:00:00")
dt2 = pd.Timestamp("2024-10-16 09:00:00")
self.assertFalse(_dts_in_same_interval(dt1, dt2, "1d"))
def test_same_week_mid_week(self):
# Wednesday and Friday in same week
dt1 = pd.Timestamp("2024-10-16") # Wednesday
dt2 = pd.Timestamp("2024-10-18") # Friday
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1wk"))
def test_different_weeks(self):
dt1 = pd.Timestamp("2024-10-14") # Monday week 42
dt2 = pd.Timestamp("2024-10-21") # Monday week 43
self.assertFalse(_dts_in_same_interval(dt1, dt2, "1wk"))
def test_week_year_boundary(self):
# Week 52 of 2024 spans into 2025
dt1 = pd.Timestamp("2024-12-30") # Monday in week 1 (ISO calendar)
dt2 = pd.Timestamp("2025-01-03") # Friday in week 1 (ISO calendar)
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1wk"))
def test_same_month(self):
dt1 = pd.Timestamp("2024-10-01")
dt2 = pd.Timestamp("2024-10-31")
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1mo"))
def test_different_months(self):
dt1 = pd.Timestamp("2024-10-31")
dt2 = pd.Timestamp("2024-11-01")
self.assertFalse(_dts_in_same_interval(dt1, dt2, "1mo"))
def test_month_year_boundary(self):
dt1 = pd.Timestamp("2024-12-15")
dt2 = pd.Timestamp("2025-01-15")
self.assertFalse(_dts_in_same_interval(dt1, dt2, "1mo"))
def test_standard_quarters(self):
q1_start = datetime(2023, 1, 1)
self.assertTrue(_dts_in_same_interval(q1_start, datetime(2023, 1, 15), '3mo'))
self.assertTrue(_dts_in_same_interval(q1_start, datetime(2023, 3, 31), '3mo'))
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2023, 4, 1), '3mo'))
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2022, 1, 15), '3mo')) # Previous year
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2024, 1, 15), '3mo')) # Next year
q2_start = datetime(2023, 4, 1)
self.assertTrue(_dts_in_same_interval(q2_start, datetime(2023, 5, 15), '3mo'))
self.assertTrue(_dts_in_same_interval(q2_start, datetime(2023, 6, 30), '3mo'))
self.assertFalse(_dts_in_same_interval(q2_start, datetime(2023, 7, 1), '3mo'))
def test_nonstandard_quarters(self):
q1_start = datetime(2023, 2, 1)
# Same quarter
self.assertTrue(_dts_in_same_interval(q1_start, datetime(2023, 3, 1), '3mo'))
self.assertTrue(_dts_in_same_interval(q1_start, datetime(2023, 4, 25), '3mo'))
# Different quarters
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2023, 1, 25), '3mo')) # Before quarter start
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2023, 6, 1), '3mo')) # Start of next quarter
self.assertFalse(_dts_in_same_interval(q1_start, datetime(2023, 9, 1), '3mo')) # Start of Q3
q2_start = datetime(2023, 5, 1)
self.assertTrue(_dts_in_same_interval(q2_start, datetime(2023, 6, 1), '3mo'))
self.assertTrue(_dts_in_same_interval(q2_start, datetime(2023, 7, 25), '3mo'))
self.assertFalse(_dts_in_same_interval(q2_start, datetime(2023, 8, 1), '3mo'))
def test_cross_year_quarters(self):
q4_start = datetime(2023, 11, 1)
# Same quarter, different year
self.assertTrue(_dts_in_same_interval(q4_start, datetime(2023, 11, 15), '3mo'))
self.assertTrue(_dts_in_same_interval(q4_start, datetime(2024, 1, 15), '3mo'))
self.assertTrue(_dts_in_same_interval(q4_start, datetime(2024, 1, 25), '3mo'))
# Different quarters
self.assertFalse(_dts_in_same_interval(q4_start, datetime(2024, 2, 1), '3mo')) # Start of next quarter
self.assertFalse(_dts_in_same_interval(q4_start, datetime(2023, 10, 14), '3mo')) # Before quarter start
def test_hourly_interval(self):
dt1 = pd.Timestamp("2024-10-15 14:00:00")
dt2 = pd.Timestamp("2024-10-15 14:59:59")
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1h"))
dt3 = pd.Timestamp("2024-10-15 15:00:00")
self.assertFalse(_dts_in_same_interval(dt1, dt3, "1h"))
def test_custom_intervals(self):
# Test 4 hour interval
dt1 = pd.Timestamp("2024-10-15 10:00:00")
dt2 = pd.Timestamp("2024-10-15 13:59:59")
self.assertTrue(_dts_in_same_interval(dt1, dt2, "4h"))
dt3 = pd.Timestamp("2024-10-15 14:00:00")
self.assertFalse(_dts_in_same_interval(dt1, dt3, "4h"))
def test_minute_intervals(self):
dt1 = pd.Timestamp("2024-10-15 10:30:00")
dt2 = pd.Timestamp("2024-10-15 10:30:45")
self.assertTrue(_dts_in_same_interval(dt1, dt2, "1min"))
dt3 = pd.Timestamp("2024-10-15 10:31:00")
self.assertFalse(_dts_in_same_interval(dt1, dt3, "1min"))
if __name__ == "__main__":
unittest.main()
def suite():
ts: TestSuite = unittest.TestSuite()
ts.addTest(TestCache('Test cache'))
ts.addTest(TestCacheNoPermission('Test cache no permission'))
ts.addTest(TestPandas("Test pandas"))
ts.addTest(TestUtils("Test utils"))
return ts

View File

@@ -20,15 +20,21 @@
#
from . import version
from .search import Search
from .lookup import Lookup
from .ticker import Ticker
from .tickers import Tickers
from .multi import download
from .live import WebSocket, AsyncWebSocket
from .utils import enable_debug_mode
from .cache import set_tz_cache_location
from .domain.sector import Sector
from .domain.industry import Industry
from .screener.screener import Screener
from .screener.screener_query import EquityQuery
from .domain.market import Market
from .data import YfData
from .screener.query import EquityQuery, FundQuery
from .screener.screener import screen, PREDEFINED_SCREENER_QUERIES
__version__ = version.version
__author__ = "Ran Aroussi"
@@ -36,5 +42,13 @@ __author__ = "Ran Aroussi"
import warnings
warnings.filterwarnings('default', category=DeprecationWarning, module='^yfinance')
__all__ = ['download', 'Ticker', 'Tickers', 'enable_debug_mode', 'set_tz_cache_location', 'Sector', 'Industry',
'EquityQuery','Screener']
__all__ = ['download', 'Market', 'Search', 'Lookup', 'Ticker', 'Tickers', 'enable_debug_mode', 'set_tz_cache_location', 'Sector', 'Industry', 'WebSocket', 'AsyncWebSocket']
# screener stuff:
__all__ += ['EquityQuery', 'FundQuery', 'screen', 'PREDEFINED_SCREENER_QUERIES']
# Config stuff:
_NOTSET=object()
def set_config(proxy=_NOTSET):
if proxy is not _NOTSET:
YfData(proxy=proxy)
__all__ += ["set_config"]

View File

@@ -21,18 +21,20 @@
from __future__ import print_function
from io import StringIO
import json as _json
import warnings
from typing import Optional, Union
from urllib.parse import quote as urlencode
import numpy as np
import pandas as pd
import requests
from curl_cffi import requests
from . import utils, cache
from .data import YfData
from .exceptions import YFEarningsDateMissing
from .exceptions import YFEarningsDateMissing, YFRateLimitError
from .live import WebSocket
from .scrapers.analysis import Analysis
from .scrapers.fundamentals import Fundamentals
from .scrapers.holders import Holders
@@ -40,14 +42,15 @@ from .scrapers.quote import Quote, FastInfo
from .scrapers.history import PriceHistory
from .scrapers.funds import FundsData
from .const import _BASE_URL_, _ROOT_URL_
from .const import _BASE_URL_, _ROOT_URL_, _QUERY1_URL_, _SENTINEL_
_tz_info_fetch_ctr = 0
class TickerBase:
def __init__(self, ticker, session=None, proxy=None):
def __init__(self, ticker, session=None, proxy=_SENTINEL_):
self.ticker = ticker.upper()
self.proxy = proxy
self.session = session
self.session = session or requests.Session(impersonate="chrome")
self._tz = None
self._isin = None
@@ -59,11 +62,21 @@ class TickerBase:
self._earnings = None
self._financials = None
# raise an error if user tries to give empty ticker
if self.ticker == "":
raise ValueError("Empty ticker name")
# accept isin as ticker
if utils.is_isin(self.ticker):
isin = self.ticker
self.ticker = utils.get_ticker_by_isin(self.ticker, None, session)
if self.ticker == "":
raise ValueError(f"Invalid ISIN number: {isin}")
self._data: YfData = YfData(session=session)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
# self._price_history = PriceHistory(self._data, self.ticker)
self._price_history = None # lazy-load
@@ -75,6 +88,9 @@ class TickerBase:
self._fast_info = None
self._message_handler = None
self.ws = None
@utils.log_indent_decorator
def history(self, *args, **kwargs) -> pd.DataFrame:
return self._lazy_load_price_history().history(*args, **kwargs)
@@ -83,11 +99,10 @@ class TickerBase:
def _lazy_load_price_history(self):
if self._price_history is None:
self._price_history = PriceHistory(self._data, self.ticker, self._get_ticker_tz(self.proxy, timeout=10))
self._price_history = PriceHistory(self._data, self.ticker, self._get_ticker_tz(timeout=10))
return self._price_history
def _get_ticker_tz(self, proxy, timeout):
proxy = proxy or self.proxy
def _get_ticker_tz(self, timeout):
if self._tz is not None:
return self._tz
c = cache.get_tz_cache()
@@ -99,10 +114,20 @@ class TickerBase:
tz = None
if tz is None:
tz = self._fetch_ticker_tz(proxy, timeout)
tz = self._fetch_ticker_tz(timeout)
if tz is None:
# _fetch_ticker_tz works in 99.999% of cases.
# For rare fail get from info.
global _tz_info_fetch_ctr
if _tz_info_fetch_ctr < 2:
# ... but limit. If _fetch_ticker_tz() always
# failing then bigger problem.
_tz_info_fetch_ctr += 1
for k in ['exchangeTimezoneName', 'timeZoneFullName']:
if k in self.info:
tz = self.info[k]
break
if utils.is_valid_timezone(tz):
# info fetch is relatively slow so cache timezone
c.store(self.ticker, tz)
else:
tz = None
@@ -111,9 +136,8 @@ class TickerBase:
return tz
@utils.log_indent_decorator
def _fetch_ticker_tz(self, proxy, timeout):
def _fetch_ticker_tz(self, timeout):
# Query Yahoo for fast price data just to get returned timezone
proxy = proxy or self.proxy
logger = utils.get_yf_logger()
params = {"range": "1d", "interval": "1d"}
@@ -122,8 +146,11 @@ class TickerBase:
url = f"{_BASE_URL_}/v8/finance/chart/{self.ticker}"
try:
data = self._data.cache_get(url=url, params=params, proxy=proxy, timeout=timeout)
data = self._data.cache_get(url=url, params=params, timeout=timeout)
data = data.json()
except YFRateLimitError:
# Must propagate this
raise
except Exception as e:
logger.error(f"Failed to get ticker '{self.ticker}' reason: {e}")
return None
@@ -143,95 +170,136 @@ class TickerBase:
logger.debug("-------------")
return None
def get_recommendations(self, proxy=None, as_dict=False):
def get_recommendations(self, proxy=_SENTINEL_, as_dict=False):
"""
Returns a DataFrame with the recommendations
Columns: period strongBuy buy hold sell strongSell
"""
self._quote.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._quote.recommendations
if as_dict:
return data.to_dict()
return data
def get_recommendations_summary(self, proxy=None, as_dict=False):
return self.get_recommendations(proxy=proxy, as_dict=as_dict)
def get_recommendations_summary(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
def get_upgrades_downgrades(self, proxy=None, as_dict=False):
return self.get_recommendations(as_dict=as_dict)
def get_upgrades_downgrades(self, proxy=_SENTINEL_, as_dict=False):
"""
Returns a DataFrame with the recommendations changes (upgrades/downgrades)
Index: date of grade
Columns: firm toGrade fromGrade action
"""
self._quote.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._quote.upgrades_downgrades
if as_dict:
return data.to_dict()
return data
def get_calendar(self, proxy=None) -> dict:
self._quote.proxy = proxy or self.proxy
def get_calendar(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._quote.calendar
def get_sec_filings(self, proxy=None) -> dict:
self._quote.proxy = proxy or self.proxy
def get_sec_filings(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._quote.sec_filings
def get_major_holders(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_major_holders(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.major
if as_dict:
return data.to_dict()
return data
def get_institutional_holders(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_institutional_holders(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.institutional
if data is not None:
if as_dict:
return data.to_dict()
return data
def get_mutualfund_holders(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_mutualfund_holders(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.mutualfund
if data is not None:
if as_dict:
return data.to_dict()
return data
def get_insider_purchases(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_insider_purchases(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.insider_purchases
if data is not None:
if as_dict:
return data.to_dict()
return data
def get_insider_transactions(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_insider_transactions(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.insider_transactions
if data is not None:
if as_dict:
return data.to_dict()
return data
def get_insider_roster_holders(self, proxy=None, as_dict=False):
self._holders.proxy = proxy or self.proxy
def get_insider_roster_holders(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._holders.insider_roster
if data is not None:
if as_dict:
return data.to_dict()
return data
def get_info(self, proxy=None) -> dict:
self._quote.proxy = proxy or self.proxy
def get_info(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._quote.info
return data
def get_fast_info(self, proxy=None):
def get_fast_info(self, proxy=_SENTINEL_):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
if self._fast_info is None:
self._fast_info = FastInfo(self, proxy=proxy)
self._fast_info = FastInfo(self)
return self._fast_info
@property
@@ -239,89 +307,113 @@ class TickerBase:
warnings.warn("'Ticker.basic_info' is deprecated and will be removed in future, Switch to 'Ticker.fast_info'", DeprecationWarning)
return self.fast_info
def get_sustainability(self, proxy=None, as_dict=False):
self._quote.proxy = proxy or self.proxy
def get_sustainability(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._quote.sustainability
if as_dict:
return data.to_dict()
return data
def get_analyst_price_targets(self, proxy=None) -> dict:
def get_analyst_price_targets(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
"""
Keys: current low high mean median
"""
self._analysis.proxy = proxy or self.proxy
data = self._analysis.analyst_price_targets
return data
def get_earnings_estimate(self, proxy=None, as_dict=False):
def get_earnings_estimate(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
"""
Index: 0q +1q 0y +1y
Columns: numberOfAnalysts avg low high yearAgoEps growth
"""
self._analysis.proxy = proxy or self.proxy
data = self._analysis.earnings_estimate
return data.to_dict() if as_dict else data
def get_revenue_estimate(self, proxy=None, as_dict=False):
def get_revenue_estimate(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
"""
Index: 0q +1q 0y +1y
Columns: numberOfAnalysts avg low high yearAgoRevenue growth
"""
self._analysis.proxy = proxy or self.proxy
data = self._analysis.revenue_estimate
return data.to_dict() if as_dict else data
def get_earnings_history(self, proxy=None, as_dict=False):
def get_earnings_history(self, proxy=_SENTINEL_, as_dict=False):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
"""
Index: pd.DatetimeIndex
Columns: epsEstimate epsActual epsDifference surprisePercent
"""
self._analysis.proxy = proxy or self.proxy
data = self._analysis.earnings_history
return data.to_dict() if as_dict else data
def get_eps_trend(self, proxy=None, as_dict=False):
def get_eps_trend(self, proxy=_SENTINEL_, as_dict=False):
"""
Index: 0q +1q 0y +1y
Columns: current 7daysAgo 30daysAgo 60daysAgo 90daysAgo
"""
self._analysis.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._analysis.eps_trend
return data.to_dict() if as_dict else data
def get_eps_revisions(self, proxy=None, as_dict=False):
def get_eps_revisions(self, proxy=_SENTINEL_, as_dict=False):
"""
Index: 0q +1q 0y +1y
Columns: upLast7days upLast30days downLast7days downLast30days
"""
self._analysis.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._analysis.eps_revisions
return data.to_dict() if as_dict else data
def get_growth_estimates(self, proxy=None, as_dict=False):
def get_growth_estimates(self, proxy=_SENTINEL_, as_dict=False):
"""
Index: 0q +1q 0y +1y +5y -5y
Columns: stock industry sector index
"""
self._analysis.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._analysis.growth_estimates
return data.to_dict() if as_dict else data
def get_earnings(self, proxy=None, as_dict=False, freq="yearly"):
def get_earnings(self, proxy=_SENTINEL_, as_dict=False, freq="yearly"):
"""
:Parameters:
as_dict: bool
Return table as Python dict
Default is False
freq: str
"yearly" or "quarterly"
"yearly" or "quarterly" or "trailing"
Default is "yearly"
proxy: str
Optional. Proxy server URL scheme
Default is None
"""
self._fundamentals.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
if self._fundamentals.earnings is None:
return None
data = self._fundamentals.earnings[freq]
@@ -332,7 +424,7 @@ class TickerBase:
return dict_data
return data
def get_income_stmt(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_income_stmt(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
"""
:Parameters:
as_dict: bool
@@ -342,15 +434,14 @@ class TickerBase:
Format row names nicely for readability
Default is False
freq: str
"yearly" or "quarterly"
"yearly" or "quarterly" or "trailing"
Default is "yearly"
proxy: str
Optional. Proxy server URL scheme
Default is None
"""
self._fundamentals.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._fundamentals.financials.get_income_time_series(freq=freq, proxy=proxy)
data = self._fundamentals.financials.get_income_time_series(freq=freq)
if pretty:
data = data.copy()
@@ -359,13 +450,21 @@ class TickerBase:
return data.to_dict()
return data
def get_incomestmt(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_incomestmt(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self.get_income_stmt(proxy, as_dict, pretty, freq)
def get_financials(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_financials(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self.get_income_stmt(proxy, as_dict, pretty, freq)
def get_balance_sheet(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_balance_sheet(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
"""
:Parameters:
as_dict: bool
@@ -377,13 +476,13 @@ class TickerBase:
freq: str
"yearly" or "quarterly"
Default is "yearly"
proxy: str
Optional. Proxy server URL scheme
Default is None
"""
self._fundamentals.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._fundamentals.financials.get_balance_sheet_time_series(freq=freq, proxy=proxy)
data = self._fundamentals.financials.get_balance_sheet_time_series(freq=freq)
if pretty:
data = data.copy()
@@ -392,10 +491,14 @@ class TickerBase:
return data.to_dict()
return data
def get_balancesheet(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_balancesheet(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self.get_balance_sheet(proxy, as_dict, pretty, freq)
def get_cash_flow(self, proxy=None, as_dict=False, pretty=False, freq="yearly") -> Union[pd.DataFrame, dict]:
def get_cash_flow(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly") -> Union[pd.DataFrame, dict]:
"""
:Parameters:
as_dict: bool
@@ -407,13 +510,13 @@ class TickerBase:
freq: str
"yearly" or "quarterly"
Default is "yearly"
proxy: str
Optional. Proxy server URL scheme
Default is None
"""
self._fundamentals.proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = self._fundamentals.financials.get_cash_flow_time_series(freq=freq, proxy=proxy)
data = self._fundamentals.financials.get_cash_flow_time_series(freq=freq)
if pretty:
data = data.copy()
@@ -422,34 +525,56 @@ class TickerBase:
return data.to_dict()
return data
def get_cashflow(self, proxy=None, as_dict=False, pretty=False, freq="yearly"):
def get_cashflow(self, proxy=_SENTINEL_, as_dict=False, pretty=False, freq="yearly"):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self.get_cash_flow(proxy, as_dict, pretty, freq)
def get_dividends(self, proxy=None) -> pd.Series:
return self._lazy_load_price_history().get_dividends(proxy)
def get_dividends(self, proxy=_SENTINEL_, period="max") -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._lazy_load_price_history().get_dividends(period=period)
def get_capital_gains(self, proxy=None) -> pd.Series:
return self._lazy_load_price_history().get_capital_gains(proxy)
def get_capital_gains(self, proxy=_SENTINEL_, period="max") -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._lazy_load_price_history().get_capital_gains(period=period)
def get_splits(self, proxy=None) -> pd.Series:
return self._lazy_load_price_history().get_splits(proxy)
def get_splits(self, proxy=_SENTINEL_, period="max") -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._lazy_load_price_history().get_splits(period=period)
def get_actions(self, proxy=None) -> pd.Series:
return self._lazy_load_price_history().get_actions(proxy)
def get_actions(self, proxy=_SENTINEL_, period="max") -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self._lazy_load_price_history().get_actions(period=period)
def get_shares(self, proxy=_SENTINEL_, as_dict=False) -> Union[pd.DataFrame, dict]:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
def get_shares(self, proxy=None, as_dict=False) -> Union[pd.DataFrame, dict]:
self._fundamentals.proxy = proxy or self.proxy
data = self._fundamentals.shares
if as_dict:
return data.to_dict()
return data
@utils.log_indent_decorator
def get_shares_full(self, start=None, end=None, proxy=None):
def get_shares_full(self, start=None, end=None, proxy=_SENTINEL_):
logger = utils.get_yf_logger()
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
# Process dates
tz = self._get_ticker_tz(proxy=proxy, timeout=10)
tz = self._get_ticker_tz(timeout=10)
dt_now = pd.Timestamp.utcnow().tz_convert(tz)
if start is not None:
start_ts = utils._parse_user_dt(start, tz)
@@ -471,7 +596,7 @@ class TickerBase:
ts_url_base = f"https://query2.finance.yahoo.com/ws/fundamentals-timeseries/v1/finance/timeseries/{self.ticker}?symbol={self.ticker}"
shares_url = f"{ts_url_base}&period1={int(start.timestamp())}&period2={int(end.timestamp())}"
try:
json_data = self._data.cache_get(url=shares_url, proxy=proxy)
json_data = self._data.cache_get(url=shares_url)
json_data = json_data.json()
except (_json.JSONDecodeError, requests.exceptions.RequestException):
logger.error(f"{self.ticker}: Yahoo web request for share count failed")
@@ -497,7 +622,11 @@ class TickerBase:
df = df.sort_index()
return df
def get_isin(self, proxy=None) -> Optional[str]:
def get_isin(self, proxy=_SENTINEL_) -> Optional[str]:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
# *** experimental ***
if self._isin is not None:
return self._isin
@@ -510,7 +639,6 @@ class TickerBase:
q = ticker
self._quote.proxy = proxy or self.proxy
if self._quote.info is None:
# Don't print error message cause self._quote.info will print one
return None
@@ -518,7 +646,7 @@ class TickerBase:
q = self._quote.info['shortName']
url = f'https://markets.businessinsider.com/ajax/SearchController_Suggest?max_results=25&query={urlencode(q)}'
data = self._data.cache_get(url=url, proxy=proxy).text
data = self._data.cache_get(url=url).text
search_str = f'"{ticker}|'
if search_str not in data:
@@ -534,30 +662,53 @@ class TickerBase:
self._isin = data.split(search_str)[1].split('"')[0].split('|')[0]
return self._isin
def get_news(self, proxy=None) -> list:
def get_news(self, count=10, tab="news", proxy=_SENTINEL_) -> list:
"""Allowed options for tab: "news", "all", "press releases"""
if self._news:
return self._news
# Getting data from json
url = f"{_BASE_URL_}/v1/finance/search?q={self.ticker}"
data = self._data.cache_get(url=url, proxy=proxy)
logger = utils.get_yf_logger()
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
tab_queryrefs = {
"all": "newsAll",
"news": "latestNews",
"press releases": "pressRelease",
}
query_ref = tab_queryrefs.get(tab.lower())
if not query_ref:
raise ValueError(f"Invalid tab name '{tab}'. Choose from: {', '.join(tab_queryrefs.keys())}")
url = f"{_ROOT_URL_}/xhr/ncp?queryRef={query_ref}&serviceKey=ncp_fin"
payload = {
"serviceConfig": {
"snippetCount": count,
"s": [self.ticker]
}
}
data = self._data.post(url, body=payload)
if data is None or "Will be right back" in data.text:
raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
"Our engineers are working quickly to resolve "
"the issue. Thank you for your patience.")
try:
data = data.json()
except (_json.JSONDecodeError):
logger = utils.get_yf_logger()
except _json.JSONDecodeError:
logger.error(f"{self.ticker}: Failed to retrieve the news and received faulty response instead.")
data = {}
# parse news
self._news = data.get("news", [])
news = data.get("data", {}).get("tickerStream", {}).get("stream", [])
self._news = [article for article in news if not article.get('ad', [])]
return self._news
@utils.log_indent_decorator
def get_earnings_dates(self, limit=12, proxy=None) -> Optional[pd.DataFrame]:
def get_earnings_dates(self, limit=12, proxy=_SENTINEL_) -> Optional[pd.DataFrame]:
"""
Get earning dates (future and historic)
@@ -565,96 +716,91 @@ class TickerBase:
limit (int): max amount of upcoming and recent earnings dates to return.
Default value 12 should return next 4 quarters and last 8 quarters.
Increase if more history is needed.
proxy: requests proxy to use.
Returns:
pd.DataFrame
"""
if self._earnings_dates and limit in self._earnings_dates:
return self._earnings_dates[limit]
logger = utils.get_yf_logger()
page_size = min(limit, 100) # YF caps at 100, don't go higher
page_offset = 0
dates = None
while True:
url = f"{_ROOT_URL_}/calendar/earnings?symbol={self.ticker}&offset={page_offset}&size={page_size}"
data = self._data.cache_get(url=url, proxy=proxy).text
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
if "Will be right back" in data:
raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
"Our engineers are working quickly to resolve "
"the issue. Thank you for your patience.")
clamped_limit = min(limit, 100) # YF caps at 100, don't go higher
try:
data = pd.read_html(StringIO(data))[0]
except ValueError:
if page_offset == 0:
# Should not fail on first page
if "Showing Earnings for:" in data:
# Actually YF was successful, problem is company doesn't have earnings history
dates = utils.empty_earnings_dates_df()
break
if dates is None:
dates = data
else:
dates = pd.concat([dates, data], axis=0)
if self._earnings_dates and clamped_limit in self._earnings_dates:
return self._earnings_dates[clamped_limit]
page_offset += page_size
# got less data then we asked for or already fetched all we requested, no need to fetch more pages
if len(data) < page_size or len(dates) >= limit:
dates = dates.iloc[:limit]
break
else:
# do not fetch more than needed next time
page_size = min(limit - len(dates), page_size)
# Fetch data
url = f"{_QUERY1_URL_}/v1/finance/visualization"
params = {"lang": "en-US", "region": "US"}
body = {
"size": clamped_limit,
"query": {
"operator": "and",
"operands": [
{"operator": "eq", "operands": ["ticker", self.ticker]},
{"operator": "eq", "operands": ["eventtype", "2"]}
]
},
"sortField": "startdatetime",
"sortType": "DESC",
"entityIdType": "earnings",
"includeFields": ["startdatetime", "timeZoneShortName", "epsestimate", "epsactual", "epssurprisepct"]
}
response = self._data.post(url, params=params, body=body)
json_data = response.json()
if dates is None or dates.shape[0] == 0:
# Extract data
columns = [row['label'] for row in json_data['finance']['result'][0]['documents'][0]['columns']]
rows = json_data['finance']['result'][0]['documents'][0]['rows']
df = pd.DataFrame(rows, columns=columns)
if df.empty:
_exception = YFEarningsDateMissing(self.ticker)
err_msg = str(_exception)
logger.error(f'{self.ticker}: {err_msg}')
return None
dates = dates.reset_index(drop=True)
# Drop redundant columns
dates = dates.drop(["Symbol", "Company"], axis=1)
# Calculate earnings date
df['Earnings Date'] = pd.to_datetime(df['Event Start Date'])
tz = self._get_ticker_tz(timeout=30)
if df['Earnings Date'].dt.tz is None:
df['Earnings Date'] = df['Earnings Date'].dt.tz_localize(tz)
else:
df['Earnings Date'] = df['Earnings Date'].dt.tz_convert(tz)
# Convert types
for cn in ["EPS Estimate", "Reported EPS", "Surprise(%)"]:
dates.loc[dates[cn] == '-', cn] = float("nan")
dates[cn] = dates[cn].astype(float)
columns_to_update = ['Surprise (%)', 'EPS Estimate', 'Reported EPS']
df[columns_to_update] = df[columns_to_update].astype('float64').replace(0.0, np.nan)
# Convert % to range 0->1:
dates["Surprise(%)"] *= 0.01
# Format the dataframe
df.drop(['Event Start Date', 'Timezone short name'], axis=1, inplace=True)
df.set_index('Earnings Date', inplace=True)
df.rename(columns={'Surprise (%)': 'Surprise(%)'}, inplace=True) # Compatibility
# Parse earnings date string
cn = "Earnings Date"
# - remove AM/PM and timezone from date string
tzinfo = dates[cn].str.extract('([AP]M[a-zA-Z]*)$')
dates[cn] = dates[cn].replace(' [AP]M[a-zA-Z]*$', '', regex=True)
# - split AM/PM from timezone
tzinfo = tzinfo[0].str.extract('([AP]M)([a-zA-Z]*)', expand=True)
tzinfo.columns = ["AM/PM", "TZ"]
# - combine and parse
dates[cn] = dates[cn] + ' ' + tzinfo["AM/PM"]
dates[cn] = pd.to_datetime(dates[cn], format="%b %d, %Y, %I %p")
# - instead of attempting decoding of ambiguous timezone abbreviation, just use 'info':
self._quote.proxy = proxy or self.proxy
tz = self._get_ticker_tz(proxy=proxy, timeout=30)
dates[cn] = dates[cn].dt.tz_localize(tz)
self._earnings_dates[clamped_limit] = df
return df
dates = dates.set_index("Earnings Date")
def get_history_metadata(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self._earnings_dates[limit] = dates
return dates
def get_history_metadata(self, proxy=None) -> dict:
return self._lazy_load_price_history().get_history_metadata(proxy)
def get_funds_data(self, proxy=None) -> Optional[FundsData]:
def get_funds_data(self, proxy=_SENTINEL_) -> Optional[FundsData]:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
if not self._funds_data:
self._funds_data = FundsData(self._data, self.ticker)
return self._funds_data
return self._funds_data
def live(self, message_handler=None, verbose=True):
self._message_handler = message_handler
self.ws = WebSocket(verbose=verbose)
self.ws.subscribe(self.ticker)
self.ws.listen(self._message_handler)

View File

@@ -2,6 +2,8 @@ _QUERY1_URL_ = 'https://query1.finance.yahoo.com'
_BASE_URL_ = 'https://query2.finance.yahoo.com'
_ROOT_URL_ = 'https://finance.yahoo.com'
_SENTINEL_ = object()
fundamentals_keys = {
'financials': ["TaxEffectOfUnusualItems", "TaxRateForCalcs", "NormalizedEBITDA", "NormalizedDilutedEPS",
"NormalizedBasicEPS", "TotalUnusualItems", "TotalUnusualItemsExcludingGoodwill",
@@ -305,21 +307,92 @@ SECTOR_INDUSTY_MAPPING = {
'utilities-independent-power-producers',
'utilities-regulated-water'}
}
def merge_two_level_dicts(dict1, dict2):
result = dict1.copy()
for key, value in dict2.items():
if key in result:
# If both are sets, merge them
if isinstance(value, set) and isinstance(result[key], set):
result[key] = result[key] | value
# If both are dicts, merge their contents
elif isinstance(value, dict) and isinstance(result[key], dict):
result[key] = {
k: (result[key].get(k, set()) | v if isinstance(v, set)
else v) if k in result[key]
else v
for k, v in value.items()
}
else:
result[key] = value
return result
EQUITY_SCREENER_EQ_MAP = {
"region": {
"za", "ve", "vn", "us", "tw", "th", "tr", "sr", "sg", "sa", "se", "ru", "ro", "qa", "pt", "pk", "pl",
"ph", "nz", "nl", "mx", "pe", "no", "my", "lv", "lt", "kw", "jp", "is", "il", "lk", "kr", "it", "in",
"ie", "hu", "id", "hk", "gb", "fi", "eg", "dk", "gr", "fr", "es", "ee", "de", "cz", "cl", "ca", "be",
"at", "cn", "br", "au", "ar", "ch"
"exchange": {
'ar': {'BUE'},
'at': {'VIE'},
'au': {'ASX'},
'be': {'BRU'},
'br': {'SAO'},
'ca': {'CNQ', 'NEO', 'TOR', 'VAN'},
'ch': {'EBS'},
'cl': {'SGO'},
'cn': {'SHH', 'SHZ'},
'co': {'BVC'},
'cz': {'PRA'},
'de': {'BER', 'DUS', 'FRA', 'HAM', 'GER', 'MUN', 'STU'},
'dk': {'CPH'},
'ee': {'TAL'},
'eg': {'CAI'},
'es': {'MCE'},
'fi': {'HEL'},
'fr': {'PAR'},
'gb': {'AQS', 'IOB', 'LSE'},
'gr': {'ATH'},
'hk': {'HKG'},
'hu': {'BUD'},
'id': {'JKT'},
'ie': {'ISE'},
'il': {'TLV'},
'in': {'BSE', 'NSI'},
'is': {'ICE'},
'it': {'MIL'},
'jp': {'FKA', 'JPX', 'SAP'},
'kr': {'KOE', 'KSC'},
'kw': {'KUW'},
'lk': {},
'lt': {'LIT'},
'lv': {'RIS'},
'mx': {'MEX'},
'my': {'KLS'},
'nl': {'AMS'},
'no': {'OSL'},
'nz': {'NZE'},
'pe': {},
'ph': {'PHP', 'PHS'},
'pk': {},
'pl': {'WSE'},
'pt': {'LIS'},
'qa': {'DOH'},
'ro': {'BVB'},
'ru': {},
'sa': {'SAU'},
'se': {'STO'},
'sg': {'SES'},
'sr': {},
'th': {'SET'},
'tr': {'IST'},
'tw': {'TAI', 'TWO'},
'us': {'ASE', 'BTS', 'CXI', 'NCM', 'NGM', 'NMS', 'NYQ', 'OEM', 'OQB', 'OQX', 'PCX', 'PNK', 'YHD'},
've': {'CCS'},
'vn': {},
'za': {'JNB'}
},
"sector": {
"Basic Materials", "Industrials", "Communication Services", "Healthcare",
"Real Estate", "Technology", "Energy", "Utilities", "Financial Services",
"Consumer Defensive", "Consumer Cyclical"
},
"exchanges": {
"NMS", "NAS", "YHD", "NYQ", "NGM", "NCM", "BSE"
},
"peer_group": {
"US Fund Equity Energy",
"US CE Convertibles",
@@ -426,20 +499,42 @@ EQUITY_SCREENER_EQ_MAP = {
"Banks"
}
}
EQUITY_SCREENER_EQ_MAP['region'] = EQUITY_SCREENER_EQ_MAP['exchange'].keys()
ordered_keys = ['region'] + [k for k in EQUITY_SCREENER_EQ_MAP.keys() if k != 'region']
EQUITY_SCREENER_EQ_MAP = {k:EQUITY_SCREENER_EQ_MAP[k] for k in ordered_keys}
FUND_SCREENER_EQ_MAP = {
"exchange": {
'us': {'NAS'}
}
}
COMMON_SCREENER_FIELDS = {
"price":{
"eodprice",
"intradaypricechange",
"intradayprice"
},
"eq_fields": {
"exchange"},
}
FUND_SCREENER_FIELDS = {
"eq_fields": {
"categoryname",
"performanceratingoverall",
"initialinvestment",
"annualreturnnavy1categoryrank",
"riskratingoverall"}
}
FUND_SCREENER_FIELDS = merge_two_level_dicts(FUND_SCREENER_FIELDS, COMMON_SCREENER_FIELDS)
EQUITY_SCREENER_FIELDS = {
"eq_fields": {
"region",
"sector",
"peer_group",
"exchanges"},
"peer_group"},
"price":{
"eodprice",
"intradaypricechange",
"lastclosemarketcap.lasttwelvemonths",
"percentchange",
"lastclose52weekhigh.lasttwelvemonths",
"fiftytwowkpercentchange",
"intradayprice",
"lastclose52weeklow.lasttwelvemonths",
"intradaymarketcap"},
"trading":{
@@ -530,21 +625,22 @@ EQUITY_SCREENER_FIELDS = {
"social_score",
"highest_controversy"}
}
EQUITY_SCREENER_FIELDS = merge_two_level_dicts(EQUITY_SCREENER_FIELDS, COMMON_SCREENER_FIELDS)
PREDEFINED_SCREENER_BODY_MAP = {
'aggressive_small_caps': {"offset":0,"size":25,"sortField":"eodvolume","sortType":"desc","quoteType":"equity","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NMS"]},{"operator":"eq","operands":["exchange","NYQ"]}]},{"operator":"or","operands":[{"operator":"LT","operands":["epsgrowth.lasttwelvemonths",15]}]}]},"userId":"","userIdType":"guid"},
'day_gainers': {"offset":0,"size":25,"sortField":"percentchange","sortType":"DESC","quoteType":"EQUITY","query":{"operator":"AND","operands":[{"operator":"gt","operands":["percentchange",3]},{"operator":"eq","operands":["region","us"]},{"operator":"or","operands":[{"operator":"BTWN","operands":["intradaymarketcap",2000000000,10000000000]},{"operator":"BTWN","operands":["intradaymarketcap",10000000000,100000000000]},{"operator":"GT","operands":["intradaymarketcap",100000000000]}]},{"operator":"gte","operands":["intradayprice",5]},{"operator":"gt","operands":["dayvolume",15000]}]},"userId":"","userIdType":"guid"},
'day_losers': {"offset":0,"size":25,"sortField":"percentchange","sortType":"ASC","quoteType":"EQUITY","query":{"operator":"AND","operands":[{"operator":"lt","operands":["percentchange",-2.5]},{"operator":"eq","operands":["region","us"]},{"operator":"or","operands":[{"operator":"BTWN","operands":["intradaymarketcap",2000000000,10000000000]},{"operator":"BTWN","operands":["intradaymarketcap",10000000000,100000000000]},{"operator":"GT","operands":["intradaymarketcap",100000000000]}]},{"operator":"gte","operands":["intradayprice",5]},{"operator":"gt","operands":["dayvolume",20000]}]},"userId":"","userIdType":"guid"},
'growth_technology_stocks': {"offset":0,"size":25,"sortField":"eodvolume","sortType":"desc","quoteType":"equity","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"BTWN","operands":["quarterlyrevenuegrowth.quarterly",50,100]},{"operator":"GT","operands":["quarterlyrevenuegrowth.quarterly",100]},{"operator":"BTWN","operands":["quarterlyrevenuegrowth.quarterly",25,50]}]},{"operator":"or","operands":[{"operator":"BTWN","operands":["epsgrowth.lasttwelvemonths",25,50]},{"operator":"BTWN","operands":["epsgrowth.lasttwelvemonths",50,100]},{"operator":"GT","operands":["epsgrowth.lasttwelvemonths",100]}]},{"operator":"eq","operands":["sector","Technology"]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NMS"]},{"operator":"eq","operands":["exchange","NYQ"]}]}]},"userId":"","userIdType":"guid"},
'most_actives': {"offset":0,"size":25,"sortField":"dayvolume","sortType":"DESC","quoteType":"EQUITY","query":{"operator":"AND","operands":[{"operator":"eq","operands":["region","us"]},{"operator":"or","operands":[{"operator":"BTWN","operands":["intradaymarketcap",10000000000,100000000000]},{"operator":"GT","operands":["intradaymarketcap",100000000000]},{"operator":"BTWN","operands":["intradaymarketcap",2000000000,10000000000]}]},{"operator":"gt","operands":["dayvolume",5000000]}]},"userId":"","userIdType":"guid"},
'most_shorted_stocks': {"size":25,"offset":0,"sortField":"short_percentage_of_shares_outstanding.value","sortType":"DESC","quoteType":"EQUITY","topOperator":"AND","query":{"operator":"AND","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["region","us"]}]},{"operator":"gt","operands":["intradayprice",1]},{"operator":"gt","operands":["avgdailyvol3m",200000]}]},"userId":"","userIdType":"guid"},
'small_cap_gainers': {"offset":0,"size":25,"sortField":"eodvolume","sortType":"desc","quoteType":"equity","query":{"operator":"and","operands":[{"operator":"lt","operands":["intradaymarketcap",2000000000]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NMS"]},{"operator":"eq","operands":["exchange","NYQ"]}]}]},"userId":"","userIdType":"guid"},
'undervalued_growth_stocks': {"offset":0,"size":25,"sortType":"DESC","sortField":"eodvolume","quoteType":"EQUITY","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"BTWN","operands":["peratio.lasttwelvemonths",0,20]}]},{"operator":"or","operands":[{"operator":"LT","operands":["pegratio_5y",1]}]},{"operator":"or","operands":[{"operator":"BTWN","operands":["epsgrowth.lasttwelvemonths",25,50]},{"operator":"BTWN","operands":["epsgrowth.lasttwelvemonths",50,100]},{"operator":"GT","operands":["epsgrowth.lasttwelvemonths",100]}]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NMS"]},{"operator":"eq","operands":["exchange","NYQ"]}]}]},"userId":"","userIdType":"guid"},
'undervalued_large_caps': {"offset":0,"size":25,"sortField":"eodvolume","sortType":"desc","quoteType":"equity","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"BTWN","operands":["peratio.lasttwelvemonths",0,20]}]},{"operator":"lt","operands":["pegratio_5y",1]},{"operator":"btwn","operands":["intradaymarketcap",10000000000,100000000000]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NMS"]},{"operator":"eq","operands":["exchange","NYQ"]}]}]},"userId":"","userIdType":"guid"},
'conservative_foreign_funds': {"offset":0,"size":25,"sortType":"DESC","sortField":"fundnetassets","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["categoryname","Foreign Large Value"]},{"operator":"EQ","operands":["categoryname","Foreign Large Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Large Growth"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Growth"]},{"operator":"EQ","operands":["categoryname","Foreign Large Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Value"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Value"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Value"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Blend"]},{"operator":"EQ","operands":["categoryname","Foreign Small/Mid Value"]}]},{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",4]},{"operator":"EQ","operands":["performanceratingoverall",5]}]},{"operator":"lt","operands":["initialinvestment",100001]},{"operator":"lt","operands":["annualreturnnavy1categoryrank",50]},{"operator":"or","operands":[{"operator":"EQ","operands":["riskratingoverall",1]},{"operator":"EQ","operands":["riskratingoverall",3]},{"operator":"EQ","operands":["riskratingoverall",2]}]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"},
'high_yield_bond': {"offset":0,"size":25,"sortType":"DESC","sortField":"fundnetassets","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",4]},{"operator":"EQ","operands":["performanceratingoverall",5]}]},{"operator":"lt","operands":["initialinvestment",100001]},{"operator":"lt","operands":["annualreturnnavy1categoryrank",50]},{"operator":"or","operands":[{"operator":"EQ","operands":["riskratingoverall",1]},{"operator":"EQ","operands":["riskratingoverall",3]},{"operator":"EQ","operands":["riskratingoverall",2]}]},{"operator":"or","operands":[{"operator":"EQ","operands":["categoryname","High Yield Bond"]}]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"},
'portfolio_anchors': {"offset":0,"size":25,"sortType":"DESC","sortField":"fundnetassets","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["categoryname","Large Blend"]}]},{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",4]},{"operator":"EQ","operands":["performanceratingoverall",5]}]},{"operator":"lt","operands":["initialinvestment",100001]},{"operator":"lt","operands":["annualreturnnavy1categoryrank",50]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"},
'solid_large_growth_funds': {"offset":0,"size":25,"sortType":"DESC","sortField":"fundnetassets","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["categoryname","Large Growth"]}]},{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",5]},{"operator":"EQ","operands":["performanceratingoverall",4]}]},{"operator":"lt","operands":["initialinvestment",100001]},{"operator":"lt","operands":["annualreturnnavy1categoryrank",50]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"},
'solid_midcap_growth_funds': {"offset":0,"size":25,"sortType":"DESC","sortField":"fundnetassets","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"or","operands":[{"operator":"EQ","operands":["categoryname","Mid-Cap Growth"]}]},{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",5]},{"operator":"EQ","operands":["performanceratingoverall",4]}]},{"operator":"lt","operands":["initialinvestment",100001]},{"operator":"lt","operands":["annualreturnnavy1categoryrank",50]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"},
'top_mutual_funds': {"offset":0,"size":25,"sortType":"DESC","sortField":"percentchange","quoteType":"MUTUALFUND","query":{"operator":"and","operands":[{"operator":"gt","operands":["intradayprice",15]},{"operator":"or","operands":[{"operator":"EQ","operands":["performanceratingoverall",5]},{"operator":"EQ","operands":["performanceratingoverall",4]}]},{"operator":"gt","operands":["initialinvestment",1000]},{"operator":"or","operands":[{"operator":"eq","operands":["exchange","NAS"]}]}]},"userId":"","userIdType":"guid"}
}
USER_AGENTS = [
# Chrome
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
# Firefox
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.7; rv:135.0) Gecko/20100101 Firefox/135.0",
"Mozilla/5.0 (X11; Linux i686; rv:135.0) Gecko/20100101 Firefox/135.0",
# Safari
"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Safari/605.1.15",
# Edge
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/131.0.2903.86"
]

View File

@@ -1,7 +1,7 @@
import functools
from functools import lru_cache
import requests as requests
from curl_cffi import requests
from bs4 import BeautifulSoup
import datetime
@@ -10,6 +10,8 @@ from frozendict import frozendict
from . import utils, cache
import threading
from .exceptions import YFRateLimitError
cache_maxsize = 64
@@ -47,7 +49,13 @@ class SingletonMeta(type):
instance = super().__call__(*args, **kwargs)
cls._instances[cls] = instance
else:
cls._instances[cls]._set_session(*args, **kwargs)
# Update the existing instance
if 'session' in kwargs or (args and len(args) > 0):
session = kwargs.get('session') if 'session' in kwargs else args[0]
cls._instances[cls]._set_session(session)
if 'proxy' in kwargs or (args and len(args) > 1):
proxy = kwargs.get('proxy') if 'proxy' in kwargs else args[1]
cls._instances[cls]._set_proxy(proxy)
return cls._instances[cls]
@@ -56,10 +64,8 @@ class YfData(metaclass=SingletonMeta):
Have one place to retrieve data from Yahoo API in order to ease caching and speed up operations.
Singleton means one session one cookie shared by all threads.
"""
user_agent_headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
def __init__(self, session=None):
def __init__(self, session=None, proxy=None):
self._crumb = None
self._cookie = None
@@ -70,13 +76,17 @@ class YfData(metaclass=SingletonMeta):
self._cookie_lock = threading.Lock()
self._set_session(session or requests.Session())
self._session, self._proxy = None, None
self._set_session(session or requests.Session(impersonate="chrome"))
self._set_proxy(proxy)
def _set_session(self, session):
if session is None:
return
with self._cookie_lock:
self._session = session
if self._proxy is not None:
self._session.proxies = self._proxy
try:
self._session.cache
@@ -91,6 +101,15 @@ class YfData(metaclass=SingletonMeta):
from requests_cache import DO_NOT_CACHE
self._expire_after = DO_NOT_CACHE
def _set_proxy(self, proxy=None):
with self._cookie_lock:
if proxy is not None:
proxy = {'http': proxy, 'https': proxy} if isinstance(proxy, str) else proxy
else:
proxy = {}
self._proxy = proxy
self._session.proxies = proxy
def _set_cookie_strategy(self, strategy, have_lock=False):
if strategy == self._cookie_strategy:
return
@@ -147,50 +166,23 @@ class YfData(metaclass=SingletonMeta):
utils.get_yf_logger().debug('loaded persistent cookie')
return cookie_dict['cookie']
def _get_cookie_basic(self, proxy=None, timeout=30):
if self._cookie is not None:
utils.get_yf_logger().debug('reusing cookie')
return self._cookie
self._cookie = self._load_cookie_basic()
if self._cookie is not None:
return self._cookie
def _get_cookie_basic(self, timeout=30):
# To avoid infinite recursion, do NOT use self.get()
# - 'allow_redirects' copied from @psychoz971 solution - does it help USA?
response = self._session.get(
self._session.get(
url='https://fc.yahoo.com',
headers=self.user_agent_headers,
proxies=proxy,
timeout=timeout,
allow_redirects=True)
if not response.cookies:
utils.get_yf_logger().debug("response.cookies = None")
return None
self._cookie = list(response.cookies)[0]
if self._cookie == '':
utils.get_yf_logger().debug("list(response.cookies)[0] = ''")
return None
self._save_cookie_basic(self._cookie)
utils.get_yf_logger().debug(f"fetched basic cookie = {self._cookie}")
return self._cookie
def _get_crumb_basic(self, proxy=None, timeout=30):
def _get_crumb_basic(self, timeout=30):
if self._crumb is not None:
utils.get_yf_logger().debug('reusing crumb')
return self._crumb
cookie = self._get_cookie_basic()
if cookie is None:
return None
self._get_cookie_basic()
# - 'allow_redirects' copied from @psychoz971 solution - does it help USA?
get_args = {
'url': "https://query1.finance.yahoo.com/v1/test/getcrumb",
'headers': self.user_agent_headers,
'cookies': {cookie.name: cookie.value},
'proxies': proxy,
'timeout': timeout,
'allow_redirects': True
}
@@ -208,12 +200,12 @@ class YfData(metaclass=SingletonMeta):
return self._crumb
@utils.log_indent_decorator
def _get_cookie_and_crumb_basic(self, proxy, timeout):
cookie = self._get_cookie_basic(proxy, timeout)
crumb = self._get_crumb_basic(proxy, timeout)
return cookie, crumb
def _get_cookie_and_crumb_basic(self, timeout):
self._get_cookie_basic(timeout)
crumb = self._get_crumb_basic(timeout)
return crumb
def _get_cookie_csrf(self, proxy, timeout):
def _get_cookie_csrf(self, timeout):
if self._cookie is not None:
utils.get_yf_logger().debug('reusing cookie')
return True
@@ -224,16 +216,19 @@ class YfData(metaclass=SingletonMeta):
return True
base_args = {
'headers': self.user_agent_headers,
'proxies': proxy,
'timeout': timeout}
get_args = {**base_args, 'url': 'https://guce.yahoo.com/consent'}
if self._session_is_caching:
get_args['expire_after'] = self._expire_after
response = self._session.get(**get_args)
else:
response = self._session.get(**get_args)
try:
if self._session_is_caching:
get_args['expire_after'] = self._expire_after
response = self._session.get(**get_args)
else:
response = self._session.get(**get_args)
except requests.exceptions.ChunkedEncodingError:
# No idea why happens, but handle nicely so can switch to other cookie method.
utils.get_yf_logger().debug('_get_cookie_csrf() encountering requests.exceptions.ChunkedEncodingError, aborting')
return False
soup = BeautifulSoup(response.content, 'html.parser')
csrfTokenInput = soup.find('input', attrs={'name': 'csrfToken'})
@@ -262,34 +257,36 @@ class YfData(metaclass=SingletonMeta):
get_args = {**base_args,
'url': f'https://guce.yahoo.com/copyConsent?sessionId={sessionId}',
'data': data}
if self._session_is_caching:
post_args['expire_after'] = self._expire_after
get_args['expire_after'] = self._expire_after
self._session.post(**post_args)
self._session.get(**get_args)
else:
self._session.post(**post_args)
self._session.get(**get_args)
try:
if self._session_is_caching:
post_args['expire_after'] = self._expire_after
get_args['expire_after'] = self._expire_after
self._session.post(**post_args)
self._session.get(**get_args)
else:
self._session.post(**post_args)
self._session.get(**get_args)
except requests.exceptions.ChunkedEncodingError:
# No idea why happens, but handle nicely so can switch to other cookie method.
utils.get_yf_logger().debug('_get_cookie_csrf() encountering requests.exceptions.ChunkedEncodingError, aborting')
self._cookie = True
self._save_session_cookies()
return True
@utils.log_indent_decorator
def _get_crumb_csrf(self, proxy=None, timeout=30):
def _get_crumb_csrf(self, timeout=30):
# Credit goes to @bot-unit #1729
if self._crumb is not None:
utils.get_yf_logger().debug('reusing crumb')
return self._crumb
if not self._get_cookie_csrf(proxy, timeout):
if not self._get_cookie_csrf(timeout):
# This cookie stored in session
return None
get_args = {
'url': 'https://query2.finance.yahoo.com/v1/test/getcrumb',
'headers': self.user_agent_headers,
'proxies': proxy,
'timeout': timeout}
if self._session_is_caching:
get_args['expire_after'] = self._expire_after
@@ -306,8 +303,8 @@ class YfData(metaclass=SingletonMeta):
return self._crumb
@utils.log_indent_decorator
def _get_cookie_and_crumb(self, proxy=None, timeout=30):
cookie, crumb, strategy = None, None, None
def _get_cookie_and_crumb(self, timeout=30):
crumb, strategy = None, None
utils.get_yf_logger().debug(f"cookie_mode = '{self._cookie_strategy}'")
@@ -317,27 +314,27 @@ class YfData(metaclass=SingletonMeta):
if crumb is None:
# Fail
self._set_cookie_strategy('basic', have_lock=True)
cookie, crumb = self._get_cookie_and_crumb_basic(proxy, timeout)
crumb = self._get_cookie_and_crumb_basic(timeout)
else:
# Fallback strategy
cookie, crumb = self._get_cookie_and_crumb_basic(proxy, timeout)
if cookie is None or crumb is None:
crumb = self._get_cookie_and_crumb_basic(timeout)
if crumb is None:
# Fail
self._set_cookie_strategy('csrf', have_lock=True)
crumb = self._get_crumb_csrf()
strategy = self._cookie_strategy
return cookie, crumb, strategy
return crumb, strategy
@utils.log_indent_decorator
def get(self, url, user_agent_headers=None, params=None, proxy=None, timeout=30):
return self._make_request(url, request_method = self._session.get, user_agent_headers=user_agent_headers, params=params, proxy=proxy, timeout=timeout)
def get(self, url, params=None, timeout=30):
return self._make_request(url, request_method = self._session.get, params=params, timeout=timeout)
@utils.log_indent_decorator
def post(self, url, body, user_agent_headers=None, params=None, proxy=None, timeout=30):
return self._make_request(url, request_method = self._session.post, user_agent_headers=user_agent_headers, body=body, params=params, proxy=proxy, timeout=timeout)
def post(self, url, body, params=None, timeout=30):
return self._make_request(url, request_method = self._session.post, body=body, params=params, timeout=timeout)
@utils.log_indent_decorator
def _make_request(self, url, request_method, user_agent_headers=None, body=None, params=None, proxy=None, timeout=30):
def _make_request(self, url, request_method, body=None, params=None, timeout=30):
# Important: treat input arguments as immutable.
if len(url) > 200:
@@ -345,31 +342,22 @@ class YfData(metaclass=SingletonMeta):
else:
utils.get_yf_logger().debug(f'url={url}')
utils.get_yf_logger().debug(f'params={params}')
proxy = self._get_proxy(proxy)
if params is None:
params = {}
if 'crumb' in params:
raise Exception("Don't manually add 'crumb' to params dict, let data.py handle it")
cookie, crumb, strategy = self._get_cookie_and_crumb()
crumb, strategy = self._get_cookie_and_crumb()
if crumb is not None:
crumbs = {'crumb': crumb}
else:
crumbs = {}
if strategy == 'basic' and cookie is not None:
# Basic cookie strategy adds cookie to GET parameters
cookies = {cookie.name: cookie.value}
else:
cookies = None
request_args = {
'url': url,
'params': {**params, **crumbs},
'cookies': cookies,
'proxies': proxy,
'timeout': timeout,
'headers': user_agent_headers or self.user_agent_headers
'timeout': timeout
}
if body:
@@ -383,30 +371,24 @@ class YfData(metaclass=SingletonMeta):
self._set_cookie_strategy('csrf')
else:
self._set_cookie_strategy('basic')
cookie, crumb, strategy = self._get_cookie_and_crumb(proxy, timeout)
crumb, strategy = self._get_cookie_and_crumb(timeout)
request_args['params']['crumb'] = crumb
if strategy == 'basic':
request_args['cookies'] = {cookie.name: cookie.value}
response = request_method(**request_args)
utils.get_yf_logger().debug(f'response code={response.status_code}')
# Raise exception if rate limited
if response.status_code == 429:
raise YFRateLimitError()
return response
@lru_cache_freezeargs
@lru_cache(maxsize=cache_maxsize)
def cache_get(self, url, user_agent_headers=None, params=None, proxy=None, timeout=30):
return self.get(url, user_agent_headers, params, proxy, timeout)
def cache_get(self, url, params=None, timeout=30):
return self.get(url, params, timeout)
def _get_proxy(self, proxy):
# setup proxy in requests format
if proxy is not None:
if isinstance(proxy, (dict, frozendict)) and "https" in proxy:
proxy = proxy["https"]
proxy = {"https": proxy}
return proxy
def get_raw_json(self, url, user_agent_headers=None, params=None, proxy=None, timeout=30):
def get_raw_json(self, url, params=None, timeout=30):
utils.get_yf_logger().debug(f'get_raw_json(): {url}')
response = self.get(url, user_agent_headers=user_agent_headers, params=params, proxy=proxy, timeout=timeout)
response = self.get(url, params=params, timeout=timeout)
response.raise_for_status()
return response.json()

View File

@@ -1,7 +1,8 @@
from abc import ABC, abstractmethod
from ..ticker import Ticker
from ..const import _QUERY1_URL_
from ..const import _QUERY1_URL_, _SENTINEL_
from ..data import YfData
from ..utils import print_once
from typing import Dict, List, Optional
import pandas as _pd
@@ -13,20 +14,21 @@ class Domain(ABC):
and methods for fetching and parsing data. Derived classes must implement the `_fetch_and_parse()` method.
"""
def __init__(self, key: str, session=None, proxy=None):
def __init__(self, key: str, session=None, proxy=_SENTINEL_):
"""
Initializes the Domain object with a key, session, and proxy.
Args:
key (str): Unique key identifying the domain entity.
session (Optional[requests.Session]): Session object for HTTP requests. Defaults to None.
proxy (Optional[Dict]): Proxy settings. Defaults to None.
"""
self._key: str = key
self.proxy = proxy
self.session = session
self._data: YfData = YfData(session=session)
if proxy is not _SENTINEL_:
print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self._name: Optional[str] = None
self._symbol: Optional[str] = None
self._overview: Optional[Dict] = None
@@ -109,19 +111,18 @@ class Domain(ABC):
self._ensure_fetched(self._research_reports)
return self._research_reports
def _fetch(self, query_url, proxy) -> Dict:
def _fetch(self, query_url) -> Dict:
"""
Fetches data from the given query URL.
Args:
query_url (str): The URL used for the data query.
proxy (Dict): Proxy settings for the request.
Returns:
Dict: The JSON response data from the request.
"""
params_dict = {"formatted": "true", "withReturns": "true", "lang": "en-US", "region": "US"}
result = self._data.get_raw_json(query_url, user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=proxy)
result = self._data.get_raw_json(query_url, params=params_dict)
return result
def _parse_and_assign_common(self, data) -> None:
@@ -194,4 +195,4 @@ class Domain(ABC):
attribute: The attribute to check and potentially fetch.
"""
if attribute is None:
self._fetch_and_parse()
self._fetch_and_parse()

View File

@@ -5,20 +5,24 @@ import pandas as _pd
from .domain import Domain, _QUERY_URL_
from .. import utils
from ..data import YfData
from ..const import _SENTINEL_
class Industry(Domain):
"""
Represents an industry within a sector.
"""
def __init__(self, key, session=None, proxy=None):
def __init__(self, key, session=None, proxy=_SENTINEL_):
"""
Args:
key (str): The key identifier for the industry.
session (optional): The session to use for requests.
proxy (optional): The proxy to use for requests.
"""
super(Industry, self).__init__(key, session, proxy)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
YfData(session=session, proxy=proxy)
super(Industry, self).__init__(key, session)
self._query_url = f'{_QUERY_URL_}/industries/{self._key}'
self._sector_key = None
@@ -129,7 +133,7 @@ class Industry(Domain):
result = None
try:
result = self._fetch(self._query_url, self.proxy)
result = self._fetch(self._query_url)
data = result['data']
self._parse_and_assign_common(data)
@@ -145,4 +149,4 @@ class Industry(Domain):
logger.debug("Got response: ")
logger.debug("-------------")
logger.debug(f" {result}")
logger.debug("-------------")
logger.debug("-------------")

103
yfinance/domain/market.py Normal file
View File

@@ -0,0 +1,103 @@
import datetime as dt
from ..data import YfData
from ..data import utils
from ..const import _QUERY1_URL_, _SENTINEL_
import json as _json
class Market:
def __init__(self, market:'str', session=None, proxy=_SENTINEL_, timeout=30):
self.market = market
self.session = session
self.timeout = timeout
self._data = YfData(session=self.session)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self._logger = utils.get_yf_logger()
self._status = None
self._summary = None
def _fetch_json(self, url, params):
data = self._data.cache_get(url=url, params=params, timeout=self.timeout)
if data is None or "Will be right back" in data.text:
raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
"Our engineers are working quickly to resolve "
"the issue. Thank you for your patience.")
try:
return data.json()
except _json.JSONDecodeError:
self._logger.error(f"{self.market}: Failed to retrieve market data and recieved faulty data.")
return {}
def _parse_data(self):
# Fetch both to ensure they are at the same time
if (self._status is not None) and (self._summary is not None):
return
self._logger.debug(f"{self.market}: Parsing market data")
# Summary
summary_url = f"{_QUERY1_URL_}/v6/finance/quote/marketSummary"
summary_fields = ["shortName", "regularMarketPrice", "regularMarketChange", "regularMarketChangePercent"]
summary_params = {
"fields": ",".join(summary_fields),
"formatted": False,
"lang": "en-US",
"market": self.market
}
status_url = f"{_QUERY1_URL_}/v6/finance/markettime"
status_params = {
"formatted": True,
"key": "finance",
"lang": "en-US",
"market": self.market
}
self._summary = self._fetch_json(summary_url, summary_params)
self._status = self._fetch_json(status_url, status_params)
try:
self._summary = self._summary['marketSummaryResponse']['result']
self._summary = {x['exchange']:x for x in self._summary}
except Exception as e:
self._logger.error(f"{self.market}: Failed to parse market summary")
self._logger.debug(f"{type(e)}: {e}")
try:
# Unpack
self._status = self._status['finance']['marketTimes'][0]['marketTime'][0]
self._status['timezone'] = self._status['timezone'][0]
del self._status['time'] # redundant
try:
self._status.update({
"open": dt.datetime.fromisoformat(self._status["open"]),
"close": dt.datetime.fromisoformat(self._status["close"]),
"tz": dt.timezone(dt.timedelta(hours=int(self._status["timezone"]["gmtoffset"]))/1000, self._status["timezone"]["short"])
})
except Exception as e:
self._logger.error(f"{self.market}: Failed to update market status")
self._logger.debug(f"{type(e)}: {e}")
except Exception as e:
self._logger.error(f"{self.market}: Failed to parse market status")
self._logger.debug(f"{type(e)}: {e}")
@property
def status(self):
self._parse_data()
return self._status
@property
def summary(self):
self._parse_data()
return self._summary

View File

@@ -1,12 +1,13 @@
from __future__ import print_function
from typing import Dict, Optional
from ..utils import dynamic_docstring, generate_list_table_from_dict
from ..const import SECTOR_INDUSTY_MAPPING
from ..const import SECTOR_INDUSTY_MAPPING, _SENTINEL_
import pandas as _pd
from .domain import Domain, _QUERY_URL_
from .. import utils
from ..data import YfData
class Sector(Domain):
"""
@@ -14,7 +15,7 @@ class Sector(Domain):
such as top ETFs, top mutual funds, and industry data.
"""
def __init__(self, key, session=None, proxy=None):
def __init__(self, key, session=None, proxy=_SENTINEL_):
"""
Args:
key (str): The key representing the sector.
@@ -26,7 +27,11 @@ class Sector(Domain):
:attr:`Sector.industries <yfinance.Sector.industries>`
Map of sector and industry
"""
super(Sector, self).__init__(key, session, proxy)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
YfData(session=session, proxy=proxy)
super(Sector, self).__init__(key, session)
self._query_url: str = f'{_QUERY_URL_}/sectors/{self._key}'
self._top_etfs: Optional[Dict] = None
self._top_mutual_funds: Optional[Dict] = None
@@ -133,7 +138,7 @@ class Sector(Domain):
result = None
try:
result = self._fetch(self._query_url, self.proxy)
result = self._fetch(self._query_url)
data = result['data']
self._parse_and_assign_common(data)
@@ -147,4 +152,4 @@ class Sector(Domain):
logger.debug("Got response: ")
logger.debug("-------------")
logger.debug(f" {result}")
logger.debug("-------------")
logger.debug("-------------")

View File

@@ -44,4 +44,10 @@ class YFInvalidPeriodError(YFException):
self.ticker = ticker
self.invalid_period = invalid_period
self.valid_ranges = valid_ranges
super().__init__(f"{self.ticker}: Period '{invalid_period}' is invalid, must be one of {valid_ranges}")
super().__init__(f"{self.ticker}: Period '{invalid_period}' is invalid, "
f"must be of the format {valid_ranges}, etc.")
class YFRateLimitError(YFException):
def __init__(self):
super().__init__("Too Many Requests. Rate limited. Try after a while.")

335
yfinance/live.py Normal file
View File

@@ -0,0 +1,335 @@
import asyncio
import base64
import json
from typing import List, Optional, Callable
from websockets.sync.client import connect as sync_connect
from websockets.asyncio.client import connect as async_connect
from yfinance import utils
from yfinance.pricing_pb2 import PricingData
from google.protobuf.json_format import MessageToDict
class BaseWebSocket:
def __init__(self, url: str = "wss://streamer.finance.yahoo.com/?version=2", verbose=True):
self.url = url
self.verbose = verbose
self.logger = utils.get_yf_logger()
self._ws = None
self._subscriptions = set()
self._subscription_interval = 15 # seconds
def _decode_message(self, base64_message: str) -> dict:
try:
decoded_bytes = base64.b64decode(base64_message)
pricing_data = PricingData()
pricing_data.ParseFromString(decoded_bytes)
return MessageToDict(pricing_data, preserving_proto_field_name=True)
except Exception as e:
self.logger.error("Failed to decode message: %s", e, exc_info=True)
if self.verbose:
print("Failed to decode message: %s", e)
return {
'error': str(e),
'raw_base64': base64_message
}
class AsyncWebSocket(BaseWebSocket):
"""
Asynchronous WebSocket client for streaming real time pricing data.
"""
def __init__(self, url: str = "wss://streamer.finance.yahoo.com/?version=2", verbose=True):
"""
Initialize the AsyncWebSocket client.
Args:
url (str): The WebSocket server URL. Defaults to Yahoo Finance's WebSocket URL.
verbose (bool): Flag to enable or disable print statements. Defaults to True.
"""
super().__init__(url, verbose)
self._message_handler = None # Callable to handle messages
self._heartbeat_task = None # Task to send heartbeat subscribe
async def _connect(self):
try:
if self._ws is None:
self._ws = await async_connect(self.url)
self.logger.info("Connected to WebSocket.")
if self.verbose:
print("Connected to WebSocket.")
except Exception as e:
self.logger.error("Failed to connect to WebSocket: %s", e, exc_info=True)
if self.verbose:
print(f"Failed to connect to WebSocket: {e}")
self._ws = None
raise
async def _periodic_subscribe(self):
while True:
try:
await asyncio.sleep(self._subscription_interval)
if self._subscriptions:
message = {"subscribe": list(self._subscriptions)}
await self._ws.send(json.dumps(message))
if self.verbose:
print(f"Heartbeat subscription sent for symbols: {self._subscriptions}")
except Exception as e:
self.logger.error("Error in heartbeat subscription: %s", e, exc_info=True)
if self.verbose:
print(f"Error in heartbeat subscription: {e}")
break
async def subscribe(self, symbols: str | List[str]):
"""
Subscribe to a stock symbol or a list of stock symbols.
Args:
symbols (str | List[str]): Stock symbol(s) to subscribe to.
"""
await self._connect()
if isinstance(symbols, str):
symbols = [symbols]
self._subscriptions.update(symbols)
message = {"subscribe": list(self._subscriptions)}
await self._ws.send(json.dumps(message))
# Start heartbeat subscription task
if self._heartbeat_task is None:
self._heartbeat_task = asyncio.create_task(self._periodic_subscribe())
self.logger.info(f"Subscribed to symbols: {symbols}")
if self.verbose:
print(f"Subscribed to symbols: {symbols}")
async def unsubscribe(self, symbols: str | List[str]):
"""
Unsubscribe from a stock symbol or a list of stock symbols.
Args:
symbols (str | List[str]): Stock symbol(s) to unsubscribe from.
"""
await self._connect()
if isinstance(symbols, str):
symbols = [symbols]
self._subscriptions.difference_update(symbols)
message = {"unsubscribe": symbols}
await self._ws.send(json.dumps(message))
self.logger.info(f"Unsubscribed from symbols: {symbols}")
if self.verbose:
print(f"Unsubscribed from symbols: {symbols}")
async def listen(self, message_handler=None):
"""
Start listening to messages from the WebSocket server.
Args:
message_handler (Optional[Callable[[dict], None]]): Optional function to handle received messages.
"""
await self._connect()
self._message_handler = message_handler
self.logger.info("Listening for messages...")
if self.verbose:
print("Listening for messages...")
# Start heartbeat subscription task
if self._heartbeat_task is None:
self._heartbeat_task = asyncio.create_task(self._periodic_subscribe())
while True:
try:
async for message in self._ws:
message_json = json.loads(message)
encoded_data = message_json.get("message", "")
decoded_message = self._decode_message(encoded_data)
if self._message_handler:
try:
if asyncio.iscoroutinefunction(self._message_handler):
await self._message_handler(decoded_message)
else:
self._message_handler(decoded_message)
except Exception as handler_exception:
self.logger.error("Error in message handler: %s", handler_exception, exc_info=True)
if self.verbose:
print("Error in message handler:", handler_exception)
else:
print(decoded_message)
except (KeyboardInterrupt, asyncio.CancelledError):
self.logger.info("WebSocket listening interrupted. Closing connection...")
if self.verbose:
print("WebSocket listening interrupted. Closing connection...")
await self.close()
break
except Exception as e:
self.logger.error("Error while listening to messages: %s", e, exc_info=True)
if self.verbose:
print("Error while listening to messages: %s", e)
# Attempt to reconnect if connection drops
self.logger.info("Attempting to reconnect...")
if self.verbose:
print("Attempting to reconnect...")
await asyncio.sleep(3) # backoff
await self._connect()
async def close(self):
"""Close the WebSocket connection."""
if self._heartbeat_task:
self._heartbeat_task.cancel()
if self._ws is not None: # and not self._ws.closed:
await self._ws.close()
self.logger.info("WebSocket connection closed.")
if self.verbose:
print("WebSocket connection closed.")
async def __aenter__(self):
await self._connect()
return self
async def __aexit__(self, exc_type, exc_value, traceback):
await self.close()
class WebSocket(BaseWebSocket):
"""
Synchronous WebSocket client for streaming real time pricing data.
"""
def __init__(self, url: str = "wss://streamer.finance.yahoo.com/?version=2", verbose=True):
"""
Initialize the WebSocket client.
Args:
url (str): The WebSocket server URL. Defaults to Yahoo Finance's WebSocket URL.
verbose (bool): Flag to enable or disable print statements. Defaults to True.
"""
super().__init__(url, verbose)
def _connect(self):
try:
if self._ws is None:
self._ws = sync_connect(self.url)
self.logger.info("Connected to WebSocket.")
if self.verbose:
print("Connected to WebSocket.")
except Exception as e:
self.logger.error("Failed to connect to WebSocket: %s", e, exc_info=True)
if self.verbose:
print(f"Failed to connect to WebSocket: {e}")
self._ws = None
raise
def subscribe(self, symbols: str | List[str]):
"""
Subscribe to a stock symbol or a list of stock symbols.
Args:
symbols (str | List[str]): Stock symbol(s) to subscribe to.
"""
self._connect()
if isinstance(symbols, str):
symbols = [symbols]
self._subscriptions.update(symbols)
message = {"subscribe": list(self._subscriptions)}
self._ws.send(json.dumps(message))
self.logger.info(f"Subscribed to symbols: {symbols}")
if self.verbose:
print(f"Subscribed to symbols: {symbols}")
def unsubscribe(self, symbols: str | List[str]):
"""
Unsubscribe from a stock symbol or a list of stock symbols.
Args:
symbols (str | List[str]): Stock symbol(s) to unsubscribe from.
"""
self._connect()
if isinstance(symbols, str):
symbols = [symbols]
self._subscriptions.difference_update(symbols)
message = {"unsubscribe": symbols}
self._ws.send(json.dumps(message))
self.logger.info(f"Unsubscribed from symbols: {symbols}")
if self.verbose:
print(f"Unsubscribed from symbols: {symbols}")
def listen(self, message_handler: Optional[Callable[[dict], None]] = None):
"""
Start listening to messages from the WebSocket server.
Args:
message_handler (Optional[Callable[[dict], None]]): Optional function to handle received messages.
"""
self._connect()
self.logger.info("Listening for messages...")
if self.verbose:
print("Listening for messages...")
while True:
try:
message = self._ws.recv()
message_json = json.loads(message)
encoded_data = message_json.get("message", "")
decoded_message = self._decode_message(encoded_data)
if message_handler:
try:
message_handler(decoded_message)
except Exception as handler_exception:
self.logger.error("Error in message handler: %s", handler_exception, exc_info=True)
if self.verbose:
print("Error in message handler:", handler_exception)
else:
print(decoded_message)
except KeyboardInterrupt:
if self.verbose:
print("Received keyboard interrupt.")
self.close()
break
except Exception as e:
self.logger.error("Error while listening to messages: %s", e, exc_info=True)
if self.verbose:
print("Error while listening to messages: %s", e)
break
def close(self):
"""Close the WebSocket connection."""
if self._ws is not None:
self._ws.close()
self.logger.info("WebSocket connection closed.")
if self.verbose:
print("WebSocket connection closed.")
def __enter__(self):
self._connect()
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()

224
yfinance/lookup.py Normal file
View File

@@ -0,0 +1,224 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# yfinance - market data downloader
# https://github.com/ranaroussi/yfinance
#
# Copyright 2017-2019 Ran Aroussi
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import json as _json
import pandas as pd
from . import utils
from .const import _QUERY1_URL_, _SENTINEL_
from .data import YfData
from .exceptions import YFException
LOOKUP_TYPES = ["all", "equity", "mutualfund", "etf", "index", "future", "currency", "cryptocurrency"]
class Lookup:
"""
Fetches quote (ticker) lookups from Yahoo Finance.
:param query: The search query for financial data lookup.
:type query: str
:param session: Custom HTTP session for requests (default None).
:param proxy: Proxy settings for requests (default None).
:param timeout: Request timeout in seconds (default 30).
:param raise_errors: Raise exceptions on error (default True).
"""
def __init__(self, query: str, session=None, proxy=None, timeout=30, raise_errors=True):
self.session = session
self._data = YfData(session=self.session)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self.query = query
self.timeout = timeout
self.raise_errors = raise_errors
self._logger = utils.get_yf_logger()
self._cache = {}
def _fetch_lookup(self, lookup_type="all", count=25) -> dict:
cache_key = (lookup_type, count)
if cache_key in self._cache:
return self._cache[cache_key]
url = f"{_QUERY1_URL_}/v1/finance/lookup"
params = {
"query": self.query,
"type": lookup_type,
"start": 0,
"count": count,
"formatted": False,
"fetchPricingData": True,
"lang": "en-US",
"region": "US"
}
self._logger.debug(f'GET Lookup for ticker ({self.query}) with parameters: {str(dict(params))}')
data = self._data.get(url=url, params=params, timeout=self.timeout)
if data is None or "Will be right back" in data.text:
raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
"Our engineers are working quickly to resolve "
"the issue. Thank you for your patience.")
try:
data = data.json()
except _json.JSONDecodeError:
self._logger.error(f"{self.query}: Failed to retrieve lookup results and received faulty response instead.")
data = {}
# Error returned
if data.get("finance", {}).get("error", {}):
raise YFException(data.get("finance", {}).get("error", {}))
self._cache[cache_key] = data
return data
@staticmethod
def _parse_response(response: dict) -> pd.DataFrame:
finance = response.get("finance", {})
result = finance.get("result", [])
result = result[0] if len(result) > 0 else {}
documents = result.get("documents", [])
df = pd.DataFrame(documents)
if "symbol" not in df.columns:
return pd.DataFrame()
return df.set_index("symbol")
def _get_data(self, lookup_type: str, count: int = 25) -> pd.DataFrame:
return self._parse_response(self._fetch_lookup(lookup_type, count))
def get_all(self, count=25) -> pd.DataFrame:
"""
Returns all available financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("all", count)
def get_stock(self, count=25) -> pd.DataFrame:
"""
Returns stock related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("equity", count)
def get_mutualfund(self, count=25) -> pd.DataFrame:
"""
Returns mutual funds related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("mutualfund", count)
def get_etf(self, count=25) -> pd.DataFrame:
"""
Returns ETFs related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("etf", count)
def get_index(self, count=25) -> pd.DataFrame:
"""
Returns Indices related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("index", count)
def get_future(self, count=25) -> pd.DataFrame:
"""
Returns Futures related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("future", count)
def get_currency(self, count=25) -> pd.DataFrame:
"""
Returns Currencies related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("currency", count)
def get_cryptocurrency(self, count=25) -> pd.DataFrame:
"""
Returns Cryptocurrencies related financial instruments.
:param count: The number of results to retrieve.
:type count: int
"""
return self._get_data("cryptocurrency", count)
@property
def all(self) -> pd.DataFrame:
"""Returns all available financial instruments."""
return self._get_data("all")
@property
def stock(self) -> pd.DataFrame:
"""Returns stock related financial instruments."""
return self._get_data("equity")
@property
def mutualfund(self) -> pd.DataFrame:
"""Returns mutual funds related financial instruments."""
return self._get_data("mutualfund")
@property
def etf(self) -> pd.DataFrame:
"""Returns ETFs related financial instruments."""
return self._get_data("etf")
@property
def index(self) -> pd.DataFrame:
"""Returns Indices related financial instruments."""
return self._get_data("index")
@property
def future(self) -> pd.DataFrame:
"""Returns Futures related financial instruments."""
return self._get_data("future")
@property
def currency(self) -> pd.DataFrame:
"""Returns Currencies related financial instruments."""
return self._get_data("currency")
@property
def cryptocurrency(self) -> pd.DataFrame:
"""Returns Cryptocurrencies related financial instruments."""
return self._get_data("cryptocurrency")

View File

@@ -28,17 +28,18 @@ from typing import Union
import multitasking as _multitasking
import pandas as _pd
from curl_cffi import requests
from . import Ticker, utils
from .data import YfData
from . import shared
from .const import _SENTINEL_
@utils.log_indent_decorator
def download(tickers, start=None, end=None, actions=False, threads=True,
ignore_tz=None, group_by='column', auto_adjust=False, back_adjust=False,
ignore_tz=None, group_by='column', auto_adjust=None, back_adjust=False,
repair=False, keepna=False, progress=True, period="max", interval="1d",
prepost=False, proxy=None, rounding=False, timeout=10, session=None,
prepost=False, proxy=_SENTINEL_, rounding=False, timeout=10, session=None,
multi_level_index=True) -> Union[_pd.DataFrame, None]:
"""
Download yahoo tickers
@@ -65,7 +66,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
Include Pre and Post market data in results?
Default is False
auto_adjust: bool
Adjust all OHLC automatically? Default is False
Adjust all OHLC automatically? Default is True
repair: bool
Detect currency unit 100x mixups and attempt repair
Default is False
@@ -79,8 +80,6 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
ignore_tz: bool
When combining from different timezones, ignore that part of datetime.
Default depends on interval. Intraday = False. Day+ = True.
proxy: str
Optional. Proxy server URL scheme. Default is None
rounding: bool
Optional. Round values to 2 decimal places?
timeout: None or float
@@ -92,6 +91,12 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
Optional. Always return a MultiIndex DataFrame? Default is True
"""
logger = utils.get_yf_logger()
session = session or requests.Session(impersonate="chrome")
if auto_adjust is None:
# Warn users that default has changed to True
utils.print_once("YF.download() has changed argument auto_adjust default to True")
auto_adjust = True
if logger.isEnabledFor(logging.DEBUG):
if threads:
@@ -106,7 +111,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
if ignore_tz is None:
# Set default value depending on interval
if interval[1:] in ['m', 'h']:
if interval[-1] in ['m', 'h']:
# Intraday
ignore_tz = False
else:
@@ -122,7 +127,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
for ticker in tickers:
if utils.is_isin(ticker):
isin = ticker
ticker = utils.get_ticker_by_isin(ticker, proxy, session=session)
ticker = utils.get_ticker_by_isin(ticker, session=session)
shared._ISINS[ticker] = isin
_tickers_.append(ticker)
@@ -139,7 +144,11 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
shared._TRACEBACKS = {}
# Ensure data initialised with session.
YfData(session=session)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
YfData(session=session, proxy=proxy)
else:
YfData(session=session)
# download using threads
if threads:
@@ -151,7 +160,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
start=start, end=end, prepost=prepost,
actions=actions, auto_adjust=auto_adjust,
back_adjust=back_adjust, repair=repair, keepna=keepna,
progress=(progress and i > 0), proxy=proxy,
progress=(progress and i > 0),
rounding=rounding, timeout=timeout)
while len(shared._DFS) < len(tickers):
_time.sleep(0.01)
@@ -162,7 +171,6 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
start=start, end=end, prepost=prepost,
actions=actions, auto_adjust=auto_adjust,
back_adjust=back_adjust, repair=repair, keepna=keepna,
proxy=proxy,
rounding=rounding, timeout=timeout)
if progress:
shared._PROGRESS_BAR.animate()
@@ -180,7 +188,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
errors = {}
for ticker in shared._ERRORS:
err = shared._ERRORS[ticker]
err = err.replace(f'{ticker}', '%ticker%')
err = err.replace(f'${ticker}: ', '')
if err not in errors:
errors[err] = [ticker]
else:
@@ -192,7 +200,7 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
tbs = {}
for ticker in shared._TRACEBACKS:
tb = shared._TRACEBACKS[ticker]
tb = tb.replace(f'{ticker}', '%ticker%')
tb = tb.replace(f'${ticker}: ', '')
if tb not in tbs:
tbs[tb] = [ticker]
else:
@@ -253,10 +261,10 @@ def _realign_dfs():
def _download_one_threaded(ticker, start=None, end=None,
auto_adjust=False, back_adjust=False, repair=False,
actions=False, progress=True, period="max",
interval="1d", prepost=False, proxy=None,
interval="1d", prepost=False,
keepna=False, rounding=False, timeout=10):
_download_one(ticker, start, end, auto_adjust, back_adjust, repair,
actions, period, interval, prepost, proxy, rounding,
actions, period, interval, prepost, rounding,
keepna, timeout)
if progress:
shared._PROGRESS_BAR.animate()
@@ -265,7 +273,7 @@ def _download_one_threaded(ticker, start=None, end=None,
def _download_one(ticker, start=None, end=None,
auto_adjust=False, back_adjust=False, repair=False,
actions=False, period="max", interval="1d",
prepost=False, proxy=None, rounding=False,
prepost=False, rounding=False,
keepna=False, timeout=10):
data = None
try:
@@ -273,7 +281,7 @@ def _download_one(ticker, start=None, end=None,
period=period, interval=interval,
start=start, end=end, prepost=prepost,
actions=actions, auto_adjust=auto_adjust,
back_adjust=back_adjust, repair=repair, proxy=proxy,
back_adjust=back_adjust, repair=repair,
rounding=rounding, keepna=keepna, timeout=timeout,
raise_errors=True
)

37
yfinance/pricing.proto Normal file
View File

@@ -0,0 +1,37 @@
syntax = "proto3";
message PricingData {
string id = 1;
float price = 2;
sint64 time = 3;
string currency = 4;
string exchange = 5;
int32 quote_type = 6;
int32 market_hours = 7;
float change_percent = 8;
sint64 day_volume = 9;
float day_high = 10;
float day_low = 11;
float change = 12;
string short_name = 13;
sint64 expire_date = 14;
float open_price = 15;
float previous_close = 16;
float strike_price = 17;
string underlying_symbol = 18;
sint64 open_interest = 19;
sint64 options_type = 20;
sint64 mini_option = 21;
sint64 last_size = 22;
float bid = 23;
sint64 bid_size = 24;
float ask = 25;
sint64 ask_size = 26;
sint64 price_hint = 27;
sint64 vol_24hr = 28;
sint64 vol_all_currencies = 29;
string from_currency = 30;
string last_market = 31;
double circulating_supply = 32;
double market_cap = 33;
}

36
yfinance/pricing_pb2.py Normal file
View File

@@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: yfinance/pricing.proto
# Protobuf Python Version: 5.29.0
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC,
5,
29,
0,
'',
'yfinance/pricing.proto'
)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16yfinance/pricing.proto\"\x9a\x05\n\x0bPricingData\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05price\x18\x02 \x01(\x02\x12\x0c\n\x04time\x18\x03 \x01(\x12\x12\x10\n\x08\x63urrency\x18\x04 \x01(\t\x12\x10\n\x08\x65xchange\x18\x05 \x01(\t\x12\x12\n\nquote_type\x18\x06 \x01(\x05\x12\x14\n\x0cmarket_hours\x18\x07 \x01(\x05\x12\x16\n\x0e\x63hange_percent\x18\x08 \x01(\x02\x12\x12\n\nday_volume\x18\t \x01(\x12\x12\x10\n\x08\x64\x61y_high\x18\n \x01(\x02\x12\x0f\n\x07\x64\x61y_low\x18\x0b \x01(\x02\x12\x0e\n\x06\x63hange\x18\x0c \x01(\x02\x12\x12\n\nshort_name\x18\r \x01(\t\x12\x13\n\x0b\x65xpire_date\x18\x0e \x01(\x12\x12\x12\n\nopen_price\x18\x0f \x01(\x02\x12\x16\n\x0eprevious_close\x18\x10 \x01(\x02\x12\x14\n\x0cstrike_price\x18\x11 \x01(\x02\x12\x19\n\x11underlying_symbol\x18\x12 \x01(\t\x12\x15\n\ropen_interest\x18\x13 \x01(\x12\x12\x14\n\x0coptions_type\x18\x14 \x01(\x12\x12\x13\n\x0bmini_option\x18\x15 \x01(\x12\x12\x11\n\tlast_size\x18\x16 \x01(\x12\x12\x0b\n\x03\x62id\x18\x17 \x01(\x02\x12\x10\n\x08\x62id_size\x18\x18 \x01(\x12\x12\x0b\n\x03\x61sk\x18\x19 \x01(\x02\x12\x10\n\x08\x61sk_size\x18\x1a \x01(\x12\x12\x12\n\nprice_hint\x18\x1b \x01(\x12\x12\x10\n\x08vol_24hr\x18\x1c \x01(\x12\x12\x1a\n\x12vol_all_currencies\x18\x1d \x01(\x12\x12\x15\n\rfrom_currency\x18\x1e \x01(\t\x12\x13\n\x0blast_market\x18\x1f \x01(\t\x12\x1a\n\x12\x63irculating_supply\x18 \x01(\x01\x12\x12\n\nmarket_cap\x18! \x01(\x01\x62\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'yfinance.pricing_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
DESCRIPTOR._loaded_options = None
_globals['_PRICINGDATA']._serialized_start=27
_globals['_PRICINGDATA']._serialized_end=693
# @@protoc_insertion_point(module_scope)

View File

@@ -3,17 +3,19 @@ import requests
from yfinance import utils
from yfinance.data import YfData
from yfinance.const import quote_summary_valid_modules
from yfinance.const import quote_summary_valid_modules, _SENTINEL_
from yfinance.scrapers.quote import _QUOTE_SUMMARY_URL_
from yfinance.exceptions import YFException
class Analysis:
def __init__(self, data: YfData, symbol: str, proxy=None):
def __init__(self, data: YfData, symbol: str, proxy=_SENTINEL_):
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
data._set_proxy(proxy)
self._data = data
self._symbol = symbol
self.proxy = proxy
# In quoteSummary the 'earningsTrend' module contains most of the data below.
# The format of data is not optimal so each function will process it's part of the data.
@@ -28,6 +30,50 @@ class Analysis:
self._eps_revisions = None
self._growth_estimates = None
def _get_periodic_df(self, key) -> pd.DataFrame:
if self._earnings_trend is None:
self._fetch_earnings_trend()
data = []
for item in self._earnings_trend[:4]:
row = {'period': item['period']}
for k, v in item[key].items():
if not isinstance(v, dict) or len(v) == 0:
continue
row[k] = v['raw']
data.append(row)
if len(data) == 0:
return pd.DataFrame()
return pd.DataFrame(data).set_index('period')
@property
def earnings_estimate(self) -> pd.DataFrame:
if self._earnings_estimate is not None:
return self._earnings_estimate
self._earnings_estimate = self._get_periodic_df('earningsEstimate')
return self._earnings_estimate
@property
def revenue_estimate(self) -> pd.DataFrame:
if self._revenue_estimate is not None:
return self._revenue_estimate
self._revenue_estimate = self._get_periodic_df('revenueEstimate')
return self._revenue_estimate
@property
def eps_trend(self) -> pd.DataFrame:
if self._eps_trend is not None:
return self._eps_trend
self._eps_trend = self._get_periodic_df('epsTrend')
return self._eps_trend
@property
def eps_revisions(self) -> pd.DataFrame:
if self._eps_revisions is not None:
return self._eps_revisions
self._eps_revisions = self._get_periodic_df('epsRevisions')
return self._eps_revisions
@property
def analyst_price_targets(self) -> dict:
if self._analyst_price_targets is not None:
@@ -40,73 +86,17 @@ class Analysis:
self._analyst_price_targets = {}
return self._analyst_price_targets
keys = [
('currentPrice', 'current'),
('targetLowPrice', 'low'),
('targetHighPrice', 'high'),
('targetMeanPrice', 'mean'),
('targetMedianPrice', 'median'),
]
result = {}
for key, value in data.items():
if key.startswith('target'):
new_key = key.replace('target', '').lower().replace('price', '').strip()
result[new_key] = value
elif key == 'currentPrice':
result['current'] = value
self._analyst_price_targets = {newKey: data.get(oldKey, None) for oldKey, newKey in keys}
self._analyst_price_targets = result
return self._analyst_price_targets
@property
def earnings_estimate(self) -> pd.DataFrame:
if self._earnings_estimate is not None:
return self._earnings_estimate
if self._earnings_trend is None:
self._fetch_earnings_trend()
data_dict = {
'numberOfAnalysts': [],
'avg': [],
'low': [],
'high': [],
'yearAgoEps': [],
'growth': []
}
periods = []
for item in self._earnings_trend[:4]:
periods.append(item['period'])
earnings_estimate = item.get('earningsEstimate', {})
for key in data_dict.keys():
data_dict[key].append(earnings_estimate.get(key, {}).get('raw', None))
self._earnings_estimate = pd.DataFrame(data_dict, index=periods)
return self._earnings_estimate
@property
def revenue_estimate(self) -> pd.DataFrame:
if self._revenue_estimate is not None:
return self._revenue_estimate
if self._earnings_trend is None:
self._fetch_earnings_trend()
data_dict = {
'numberOfAnalysts': [],
'avg': [],
'low': [],
'high': [],
'yearAgoRevenue': [],
'growth': []
}
periods = []
for item in self._earnings_trend[:4]:
periods.append(item['period'])
revenue_estimate = item.get('revenueEstimate', {})
for key in data_dict.keys():
data_dict[key].append(revenue_estimate.get(key, {}).get('raw', None))
self._revenue_estimate = pd.DataFrame(data_dict, index=periods)
return self._revenue_estimate
@property
def earnings_history(self) -> pd.DataFrame:
if self._earnings_history is not None:
@@ -119,77 +109,27 @@ class Analysis:
self._earnings_history = pd.DataFrame()
return self._earnings_history
data_dict = {
'epsEstimate': [],
'epsActual': [],
'epsDifference': [],
'surprisePercent': []
}
quarters = []
rows = []
for item in data:
quarters.append(item.get('quarter', {}).get('fmt', None))
row = {'quarter': item.get('quarter', {}).get('fmt', None)}
for k, v in item.items():
if k == 'quarter':
continue
if not isinstance(v, dict) or len(v) == 0:
continue
row[k] = v.get('raw', None)
rows.append(row)
if len(data) == 0:
return pd.DataFrame()
for key in data_dict.keys():
data_dict[key].append(item.get(key, {}).get('raw', None))
datetime_index = pd.to_datetime(quarters, format='%Y-%m-%d')
self._earnings_history = pd.DataFrame(data_dict, index=datetime_index)
df = pd.DataFrame(rows)
if 'quarter' in df.columns:
df['quarter'] = pd.to_datetime(df['quarter'], format='%Y-%m-%d')
df.set_index('quarter', inplace=True)
self._earnings_history = df
return self._earnings_history
@property
def eps_trend(self) -> pd.DataFrame:
if self._eps_trend is not None:
return self._eps_trend
if self._earnings_trend is None:
self._fetch_earnings_trend()
data_dict = {
'current': [],
'7daysAgo': [],
'30daysAgo': [],
'60daysAgo': [],
'90daysAgo': []
}
periods = []
for item in self._earnings_trend[:4]:
periods.append(item['period'])
eps_trend = item.get('epsTrend', {})
for key in data_dict.keys():
data_dict[key].append(eps_trend.get(key, {}).get('raw', None))
self._eps_trend = pd.DataFrame(data_dict, index=periods)
return self._eps_trend
@property
def eps_revisions(self) -> pd.DataFrame:
if self._eps_revisions is not None:
return self._eps_revisions
if self._earnings_trend is None:
self._fetch_earnings_trend()
data_dict = {
'upLast7days': [],
'upLast30days': [],
'downLast7days': [],
'downLast30days': []
}
periods = []
for item in self._earnings_trend[:4]:
periods.append(item['period'])
eps_revisions = item.get('epsRevisions', {})
for key in data_dict.keys():
data_dict[key].append(eps_revisions.get(key, {}).get('raw', None))
self._eps_revisions = pd.DataFrame(data_dict, index=periods)
return self._eps_revisions
@property
def growth_estimates(self) -> pd.DataFrame:
if self._growth_estimates is not None:
@@ -205,48 +145,26 @@ class Analysis:
self._growth_estimates = pd.DataFrame()
return self._growth_estimates
# LTG is not defined in yahoo finance front-end as at 2024-11-14.
# But its addition is breaking the retrieval of growth estimates.
# Also, support for 5 year seem to have dropped.
# TODO: Revisit this change and consider permanently removing these keys.
data_dict = {
'0q': [],
'+1q': [],
'0y': [],
'+1y': [],
# 'LTG': [],
# '+5y': [],
# '-5y': []
}
# make sure no column is empty
dummy_trend = [{'period': key, 'growth': None} for key in data_dict.keys()]
industry_trend = trends['industryTrend']['estimates'] or dummy_trend
sector_trend = trends['sectorTrend']['estimates'] or dummy_trend
index_trend = trends['indexTrend']['estimates'] or dummy_trend
data = []
for item in self._earnings_trend:
period = item['period']
if period in data_dict:
data_dict[period].append(item.get('growth', {}).get('raw', None))
row = {'period': period, 'stockTrend': item.get('growth', {}).get('raw', None)}
data.append(row)
for item in industry_trend:
period = item['period']
if period in data_dict:
data_dict[period].append(item.get('growth', None))
for trend_name, trend_info in trends.items():
if trend_info.get('estimates'):
for estimate in trend_info['estimates']:
period = estimate['period']
existing_row = next((row for row in data if row['period'] == period), None)
if existing_row:
existing_row[trend_name] = estimate.get('growth')
else:
row = {'period': period, trend_name: estimate.get('growth')}
data.append(row)
if len(data) == 0:
return pd.DataFrame()
for item in sector_trend:
period = item['period']
if period in data_dict:
data_dict[period].append(item.get('growth', None))
for item in index_trend:
period = item['period']
if period in data_dict:
data_dict[period].append(item.get('growth', None))
cols = ['stock', 'industry', 'sector', 'index']
self._growth_estimates = pd.DataFrame(data_dict, index=cols).T
self._growth_estimates = pd.DataFrame(data).set_index('period').dropna(how='all')
return self._growth_estimates
# modified version from quote.py
@@ -259,7 +177,7 @@ class Analysis:
raise YFException("No valid modules provided, see available modules using `valid_modules`")
params_dict = {"modules": modules, "corsDomain": "finance.yahoo.com", "formatted": "false", "symbol": self._symbol}
try:
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_ + f"/{self._symbol}", user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=self.proxy)
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_ + f"/{self._symbol}", params=params_dict)
except requests.exceptions.HTTPError as e:
utils.get_yf_logger().error(str(e))
return None

View File

@@ -10,10 +10,13 @@ from yfinance.exceptions import YFException, YFNotImplementedError
class Fundamentals:
def __init__(self, data: YfData, symbol: str, proxy=None):
def __init__(self, data: YfData, symbol: str, proxy=const._SENTINEL_):
if proxy is not const._SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
data._set_proxy(proxy)
self._data = data
self._symbol = symbol
self.proxy = proxy
self._earnings = None
self._financials = None
@@ -48,40 +51,55 @@ class Financials:
self._balance_sheet_time_series = {}
self._cash_flow_time_series = {}
def get_income_time_series(self, freq="yearly", proxy=None) -> pd.DataFrame:
def get_income_time_series(self, freq="yearly", proxy=const._SENTINEL_) -> pd.DataFrame:
if proxy is not const._SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
res = self._income_time_series
if freq not in res:
res[freq] = self._fetch_time_series("income", freq, proxy)
res[freq] = self._fetch_time_series("income", freq)
return res[freq]
def get_balance_sheet_time_series(self, freq="yearly", proxy=None) -> pd.DataFrame:
def get_balance_sheet_time_series(self, freq="yearly", proxy=const._SENTINEL_) -> pd.DataFrame:
if proxy is not const._SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
res = self._balance_sheet_time_series
if freq not in res:
res[freq] = self._fetch_time_series("balance-sheet", freq, proxy)
res[freq] = self._fetch_time_series("balance-sheet", freq)
return res[freq]
def get_cash_flow_time_series(self, freq="yearly", proxy=None) -> pd.DataFrame:
def get_cash_flow_time_series(self, freq="yearly", proxy=const._SENTINEL_) -> pd.DataFrame:
if proxy is not const._SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
res = self._cash_flow_time_series
if freq not in res:
res[freq] = self._fetch_time_series("cash-flow", freq, proxy)
res[freq] = self._fetch_time_series("cash-flow", freq)
return res[freq]
@utils.log_indent_decorator
def _fetch_time_series(self, name, timescale, proxy=None):
def _fetch_time_series(self, name, timescale):
# Fetching time series preferred over scraping 'QuoteSummaryStore',
# because it matches what Yahoo shows. But for some tickers returns nothing,
# despite 'QuoteSummaryStore' containing valid data.
allowed_names = ["income", "balance-sheet", "cash-flow"]
allowed_timescales = ["yearly", "quarterly"]
allowed_timescales = ["yearly", "quarterly", "trailing"]
if name not in allowed_names:
raise ValueError(f"Illegal argument: name must be one of: {allowed_names}")
if timescale not in allowed_timescales:
raise ValueError(f"Illegal argument: timescale must be one of: {allowed_timescales}")
if timescale == "trailing" and name not in ('income', 'cash-flow'):
raise ValueError("Illegal argument: frequency 'trailing'" +
" only available for cash-flow or income data.")
try:
statement = self._create_financials_table(name, timescale, proxy)
statement = self._create_financials_table(name, timescale)
if statement is not None:
return statement
@@ -89,7 +107,7 @@ class Financials:
utils.get_yf_logger().error(f"{self._symbol}: Failed to create {name} financials table for reason: {e}")
return pd.DataFrame()
def _create_financials_table(self, name, timescale, proxy):
def _create_financials_table(self, name, timescale):
if name == "income":
# Yahoo stores the 'income' table internally under 'financials' key
name = "financials"
@@ -97,12 +115,12 @@ class Financials:
keys = const.fundamentals_keys[name]
try:
return self.get_financials_time_series(timescale, keys, proxy)
return self._get_financials_time_series(timescale, keys)
except Exception:
pass
def get_financials_time_series(self, timescale, keys: list, proxy=None) -> pd.DataFrame:
timescale_translation = {"yearly": "annual", "quarterly": "quarterly"}
def _get_financials_time_series(self, timescale, keys: list) -> pd.DataFrame:
timescale_translation = {"yearly": "annual", "quarterly": "quarterly", "trailing": "trailing"}
timescale = timescale_translation[timescale]
# Step 2: construct url:
@@ -114,7 +132,7 @@ class Financials:
url += f"&period1={int(start_dt.timestamp())}&period2={int(end.timestamp())}"
# Step 3: fetch and reshape data
json_str = self._data.cache_get(url=url, proxy=proxy).text
json_str = self._data.cache_get(url=url).text
json_data = json.loads(json_str)
data_raw = json_data["timeseries"]["result"]
# data_raw = [v for v in data_raw if len(v) > 1] # Discard keys with no data
@@ -145,4 +163,8 @@ class Financials:
df = df.reindex([k for k in keys if k in df.index])
df = df[sorted(df.columns, reverse=True)]
# Trailing 12 months return only the first column.
if (timescale == "trailing"):
df = df.iloc[:, [0]]
return df

View File

@@ -1,7 +1,7 @@
import pandas as pd
from yfinance.data import YfData
from yfinance.const import _BASE_URL_
from yfinance.const import _BASE_URL_, _SENTINEL_
from yfinance.exceptions import YFDataException
from yfinance import utils
@@ -17,16 +17,17 @@ class FundsData:
Notes:
- fundPerformance module is not implemented as better data is queryable using history
"""
def __init__(self, data: YfData, symbol: str, proxy=None):
def __init__(self, data: YfData, symbol: str, proxy=_SENTINEL_):
"""
Args:
data (YfData): The YfData object for fetching data.
symbol (str): The symbol of the fund.
proxy (optional): Proxy settings for fetching data.
"""
self._data = data
self._symbol = symbol
self.proxy = proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
# quoteType
self._quote_type = None
@@ -165,26 +166,23 @@ class FundsData:
self._fetch_and_parse()
return self._sector_weightings
def _fetch(self, proxy):
def _fetch(self):
"""
Fetches the raw JSON data from the API.
Args:
proxy: Proxy settings for fetching data.
Returns:
dict: The raw JSON data.
"""
modules = ','.join(["quoteType", "summaryProfile", "topHoldings", "fundProfile"])
params_dict = {"modules": modules, "corsDomain": "finance.yahoo.com", "symbol": self._symbol, "formatted": "false"}
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_+self._symbol, user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=proxy)
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_+self._symbol, params=params_dict)
return result
def _fetch_and_parse(self) -> None:
"""
Fetches and parses the data from the API.
"""
result = self._fetch(self.proxy)
result = self._fetch()
try:
data = result["quoteSummary"]["result"][0]
# check quote type
@@ -334,4 +332,4 @@ class FundsData:
self._parse_raw_values(_fund_operations_cat.get("annualHoldingsTurnover", pd.NA)),
self._parse_raw_values(_fund_operations_cat.get("totalNetAssets", pd.NA))
]
}).set_index("Attributes")
}).set_index("Attributes")

View File

@@ -6,20 +6,23 @@ import pandas as pd
from math import isclose
import time as _time
import bisect
from curl_cffi import requests
from yfinance import shared, utils
from yfinance.const import _BASE_URL_, _PRICE_COLNAMES_
from yfinance.exceptions import YFInvalidPeriodError, YFPricesMissingError, YFTzMissingError
from yfinance.const import _BASE_URL_, _PRICE_COLNAMES_, _SENTINEL_
from yfinance.exceptions import YFInvalidPeriodError, YFPricesMissingError, YFTzMissingError, YFRateLimitError
class PriceHistory:
def __init__(self, data, ticker, tz, session=None, proxy=None):
def __init__(self, data, ticker, tz, session=None, proxy=_SENTINEL_):
self._data = data
self.ticker = ticker.upper()
self.tz = tz
self.proxy = proxy
self.session = session
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self.session = session or requests.Session(impersonate="chrome")
self._history = None
self._history_cache = {}
self._history_metadata = None
self._history_metadata_formatted = False
@@ -30,7 +33,7 @@ class PriceHistory:
def history(self, period="1mo", interval="1d",
start=None, end=None, prepost=False, actions=True,
auto_adjust=True, back_adjust=False, repair=False, keepna=False,
proxy=None, rounding=False, timeout=10,
proxy=_SENTINEL_, rounding=False, timeout=10,
raise_errors=False) -> pd.DataFrame:
"""
:Parameters:
@@ -61,8 +64,6 @@ class PriceHistory:
keepna: bool
Keep NaN rows returned by Yahoo?
Default is False
proxy: str
Optional. Proxy server URL scheme. Default is None
rounding: bool
Round values to 2 decimal places?
Optional. Default is False = precision suggested by Yahoo!
@@ -74,11 +75,14 @@ class PriceHistory:
If True, then raise errors as Exceptions instead of logging.
"""
logger = utils.get_yf_logger()
proxy = proxy or self.proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
interval_user = interval
period_user = period
if repair and interval in ['5d', '1wk', '1mo', '3mo']:
if repair and interval in ["5d", "1wk", "1mo", "3mo"]:
# Yahoo's way of adjusting mutiday intervals is fundamentally broken.
# Have to fetch 1d, adjust, then resample.
if interval == '5d':
@@ -175,7 +179,6 @@ class PriceHistory:
data = get_fn(
url=url,
params=params,
proxy=proxy,
timeout=timeout
)
if "Will be right back" in data.text or data is None:
@@ -184,6 +187,9 @@ class PriceHistory:
"the issue. Thank you for your patience.")
data = data.json()
# Special case for rate limits
except YFRateLimitError:
raise
except Exception:
if raise_errors:
raise
@@ -229,10 +235,9 @@ class PriceHistory:
elif "chart" not in data or data["chart"]["result"] is None or not data["chart"]["result"] or not data["chart"]["result"][0]["indicators"]["quote"][0]:
_exception = YFPricesMissingError(self.ticker, _price_data_debug)
fail = True
elif period is not None and period not in self._history_metadata["validRanges"]:
# even if timestamp is in the data, the data doesn't encompass the period requested
# User provided a bad period. The minimum should be '1d', but sometimes Yahoo accepts '1h'.
_exception = YFInvalidPeriodError(self.ticker, period, self._history_metadata['validRanges'])
elif period and period not in self._history_metadata['validRanges'] and not utils.is_valid_period_format(period):
# User provided a bad period
_exception = YFInvalidPeriodError(self.ticker, period, ", ".join(self._history_metadata['validRanges']))
fail = True
if fail:
@@ -247,13 +252,26 @@ class PriceHistory:
self._reconstruct_start_interval = None
return utils.empty_df()
# Select useful info from metadata
quote_type = self._history_metadata["instrumentType"]
expect_capital_gains = quote_type in ('MUTUALFUND', 'ETF')
tz_exchange = self._history_metadata["exchangeTimezoneName"]
currency = self._history_metadata["currency"]
# Process custom periods
if period and period not in self._history_metadata.get("validRanges", []):
end = int(_time.time())
end_dt = pd.Timestamp(end, unit='s').tz_localize("UTC")
start = _datetime.date.fromtimestamp(end)
start -= utils._interval_to_timedelta(period)
start -= _datetime.timedelta(days=4)
# parse quotes
quotes = utils.parse_quotes(data["chart"]["result"][0])
# Yahoo bug fix - it often appends latest price even if after end date
if end and not quotes.empty:
endDt = pd.to_datetime(end, unit='s')
if quotes.index[quotes.shape[0] - 1] >= endDt:
quotes = quotes.iloc[0:quotes.shape[0] - 1]
if quotes.index[-1] >= end_dt.tz_convert('UTC').tz_localize(None):
quotes = quotes.drop(quotes.index[-1])
if quotes.empty:
msg = f'{self.ticker}: yfinance received OHLC data: EMPTY'
elif len(quotes) == 1:
@@ -280,12 +298,6 @@ class PriceHistory:
except Exception:
pass
# Select useful info from metadata
quote_type = self._history_metadata["instrumentType"]
expect_capital_gains = quote_type in ('MUTUALFUND', 'ETF')
tz_exchange = self._history_metadata["exchangeTimezoneName"]
currency = self._history_metadata["currency"]
# Note: ordering is important. If you change order, run the tests!
quotes = utils.set_df_tz(quotes, params["interval"], tz_exchange)
quotes = utils.fix_Yahoo_dst_issue(quotes, params["interval"])
@@ -318,21 +330,22 @@ class PriceHistory:
capital_gains = utils.set_df_tz(capital_gains, interval, tz_exchange)
if start is not None:
if not quotes.empty:
startDt = quotes.index[0].floor('D')
start_d = quotes.index[0].floor('D')
if dividends is not None:
dividends = dividends.loc[startDt:]
dividends = dividends.loc[start_d:]
if capital_gains is not None:
capital_gains = capital_gains.loc[startDt:]
capital_gains = capital_gains.loc[start_d:]
if splits is not None:
splits = splits.loc[startDt:]
splits = splits.loc[start_d:]
if end is not None:
endDt = pd.Timestamp(end, unit='s').tz_localize(tz)
# -1 because date-slice end is inclusive
end_dt_sub1 = end_dt - pd.Timedelta(1)
if dividends is not None:
dividends = dividends[dividends.index < endDt]
dividends = dividends[:end_dt_sub1]
if capital_gains is not None:
capital_gains = capital_gains[capital_gains.index < endDt]
capital_gains = capital_gains[:end_dt_sub1]
if splits is not None:
splits = splits[splits.index < endDt]
splits = splits[:end_dt_sub1]
# Prepare for combine
intraday = params["interval"][-1] in ("m", 'h')
@@ -374,7 +387,9 @@ class PriceHistory:
msg = f'{self.ticker}: OHLC after combining events: {df.index[0]} -> {df.index[-1]}'
logger.debug(msg)
df = utils.fix_Yahoo_returning_live_separate(df, params["interval"], tz_exchange, repair=repair, currency=currency)
df, last_trade = utils.fix_Yahoo_returning_live_separate(df, params["interval"], tz_exchange, prepost, repair=repair, currency=currency)
if last_trade is not None:
self._history_metadata['lastTrade'] = {'Price':last_trade['Close'], "Time":last_trade.name}
df = df[~df.index.duplicated(keep='first')] # must do before repair
@@ -392,10 +407,11 @@ class PriceHistory:
df = self._fix_bad_div_adjust(df, interval, currency)
# Need the latest/last row to be repaired before 100x/split repair:
df_last = self._fix_zeroes(df.iloc[-1:], interval, tz_exchange, prepost)
if 'Repaired?' not in df.columns:
df['Repaired?'] = False
df = pd.concat([df.drop(df.index[-1]), df_last])
if not df.empty:
df_last = self._fix_zeroes(df.iloc[-1:], interval, tz_exchange, prepost)
if 'Repaired?' not in df.columns:
df['Repaired?'] = False
df = pd.concat([df.drop(df.index[-1]), df_last])
df = self._fix_unit_mixups(df, interval, tz_exchange, prepost)
df = self._fix_bad_stock_splits(df, interval, tz_exchange)
@@ -430,8 +446,6 @@ class PriceHistory:
else:
df.index.name = "Date"
self._history = df.copy()
# missing rows cleanup
if not actions:
df = df.drop(columns=["Dividends", "Stock Splits", "Capital Gains"], errors='ignore')
@@ -456,10 +470,23 @@ class PriceHistory:
self._reconstruct_start_interval = None
return df
def get_history_metadata(self, proxy=None) -> dict:
if self._history_metadata is None:
# Request intraday data, because then Yahoo returns exchange schedule.
self.history(period="5d", interval="1h", prepost=True, proxy=proxy)
def _get_history_cache(self, period="max", interval="1d") -> pd.DataFrame:
cache_key = (interval, period)
if cache_key in self._history_cache:
return self._history_cache[cache_key]
df = self.history(period=period, interval=interval, prepost=True)
self._history_cache[cache_key] = df
return df
def get_history_metadata(self, proxy=_SENTINEL_) -> dict:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
if self._history_metadata is None or 'tradingPeriods' not in self._history_metadata:
# Request intraday data, because then Yahoo returns exchange schedule (tradingPeriods).
self._get_history_cache(period="5d", interval="1h")
if self._history_metadata_formatted is False:
self._history_metadata = utils.format_history_metadata(self._history_metadata)
@@ -467,38 +494,56 @@ class PriceHistory:
return self._history_metadata
def get_dividends(self, proxy=None) -> pd.Series:
if self._history is None:
self.history(period="max", proxy=proxy)
if self._history is not None and "Dividends" in self._history:
dividends = self._history["Dividends"]
def get_dividends(self, period="max", proxy=_SENTINEL_) -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
df = self._get_history_cache(period=period)
if "Dividends" in df.columns:
dividends = df["Dividends"]
return dividends[dividends != 0]
return pd.Series()
def get_capital_gains(self, proxy=None) -> pd.Series:
if self._history is None:
self.history(period="max", proxy=proxy)
if self._history is not None and "Capital Gains" in self._history:
capital_gains = self._history["Capital Gains"]
def get_capital_gains(self, period="max", proxy=_SENTINEL_) -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
df = self._get_history_cache(period=period)
if "Capital Gains" in df.columns:
capital_gains = df["Capital Gains"]
return capital_gains[capital_gains != 0]
return pd.Series()
def get_splits(self, proxy=None) -> pd.Series:
if self._history is None:
self.history(period="max", proxy=proxy)
if self._history is not None and "Stock Splits" in self._history:
splits = self._history["Stock Splits"]
def get_splits(self, period="max", proxy=_SENTINEL_) -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
df = self._get_history_cache(period=period)
if "Stock Splits" in df.columns:
splits = df["Stock Splits"]
return splits[splits != 0]
return pd.Series()
def get_actions(self, proxy=None) -> pd.Series:
if self._history is None:
self.history(period="max", proxy=proxy)
if self._history is not None and "Dividends" in self._history and "Stock Splits" in self._history:
action_columns = ["Dividends", "Stock Splits"]
if "Capital Gains" in self._history:
action_columns.append("Capital Gains")
actions = self._history[action_columns]
def get_actions(self, period="max", proxy=_SENTINEL_) -> pd.Series:
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
df = self._get_history_cache(period=period)
action_columns = []
if "Dividends" in df.columns:
action_columns.append("Dividends")
if "Stock Splits" in df.columns:
action_columns.append("Stock Splits")
if "Capital Gains" in df.columns:
action_columns.append("Capital Gains")
if action_columns:
actions = df[action_columns]
return actions[actions != 0].dropna(how='all').fillna(0)
return pd.Series()
@@ -1295,7 +1340,7 @@ class PriceHistory:
if df is None or df.empty:
return df
if interval != '1d':
if interval in ['1wk', '1mo', '3mo', '1y']:
return df
logger = utils.get_yf_logger()
@@ -1605,9 +1650,9 @@ class PriceHistory:
checks += ['adj_missing', 'adj_exceeds_div', 'div_exceeds_adj']
div_status_df['phantom'] = False
phantom_proximity_threshold = _datetime.timedelta(days=7)
phantom_proximity_threshold = _datetime.timedelta(days=17)
f = div_status_df[['div_too_big', 'div_exceeds_adj']].any(axis=1)
if f.any():
if f.any() and len(div_status_df) > 1:
# One/some of these may be phantom dividends. Clue is if another correct dividend is very close
indices = np.where(f)[0]
dts_to_check = div_status_df.index[f]
@@ -1616,37 +1661,24 @@ class PriceHistory:
div_dt = div.name
phantom_dt = None
if i > 0:
prev_div = div_status_df.iloc[i-1]
ratio1 = (div['div']/currency_divide) / prev_div['div']
ratio2 = div['div'] / prev_div['div']
divergence = min(abs(ratio1-1.0), abs(ratio2-1.0))
if abs(div_dt-prev_div.name) <= phantom_proximity_threshold and not prev_div['phantom'] and divergence < 0.01:
if prev_div.name in dts_to_check:
# Both this and previous are anomalous, so mark smallest drop as phantom
drop = div['drop']
drop_prev = prev_div['drop']
if drop > 1.5*drop_prev:
phantom_dt = prev_div.name
else:
phantom_dt = div_dt
else:
phantom_dt = div_dt
elif i < len(div_status_df)-1:
next_div = div_status_df.iloc[i+1]
ratio1 = (div['div']/currency_divide) / next_div['div']
ratio2 = div['div'] / next_div['div']
divergence = min(abs(ratio1-1.0), abs(ratio2-1.0))
if abs(div_dt-next_div.name) <= phantom_proximity_threshold and divergence < 0.01:
if next_div.name in dts_to_check:
# Both this and previous are anomalous, so mark smallest drop as phantom
drop = div['drop']
drop_next = next_div['drop']
if drop > 1.5*drop_next:
phantom_dt = next_div.name
else:
phantom_dt = div_dt
other_div = div_status_df.iloc[i-1]
else:
other_div = div_status_df.iloc[i+1]
ratio1 = (div['div']/currency_divide) / other_div['div']
ratio2 = div['div'] / other_div['div']
divergence = min(abs(ratio1-1.0), abs(ratio2-1.0))
if abs(div_dt-other_div.name) <= phantom_proximity_threshold and not other_div['phantom'] and divergence < 0.01:
if other_div.name in dts_to_check:
# Both this and previous are anomalous, so mark smallest drop as phantom
drop = div['drop']
drop_next = other_div['drop']
if drop > 1.5*drop_next:
phantom_dt = other_div.name
else:
phantom_dt = div_dt
else:
phantom_dt = div_dt
if phantom_dt:
div_status_df.loc[phantom_dt, 'phantom'] = True
for c in checks:
@@ -1745,7 +1777,7 @@ class PriceHistory:
lookahead_idx = bisect.bisect_left(df2.index, lookahead_date)
lookahead_idx = min(lookahead_idx, len(df2)-1)
# In rare cases, the price dropped 1 day before dividend (DVD.OL @ 2024-05-15)
lookback_idx = div_idx-2 if div_idx > 1 else div_idx-1
lookback_idx = max(0, div_idx-14)
# Check for bad stock splits in the lookahead period -
# if present, reduce lookahead to before.
future_changes = df2['Close'].iloc[div_idx:lookahead_idx+1].pct_change()
@@ -1767,8 +1799,6 @@ class PriceHistory:
adjDeltas = x['Adj Low'].iloc[1:].to_numpy() - x['Adj Close'].iloc[:-1].to_numpy()
adjDeltas = np.append([0.0], adjDeltas)
x['adjDelta'] = adjDeltas
for i in np.where(x['Dividends']>0)[0]:
x.loc[x.index[i], 'adjDelta'] += x['Dividends'].iloc[i]*x['Adj'].iloc[i]
deltas = x[['delta', 'adjDelta']]
if div_pct > 0.05 and div_pct < 1.0:
adjDiv = div * x['Adj'].iloc[0]
@@ -1903,7 +1933,7 @@ class PriceHistory:
pct_fail = n_fail / n
if c == 'div_too_big':
true_threshold = 1.0
fals_threshold = 0.2
fals_threshold = 0.25
if 'div_date_wrong' in cluster.columns and (cluster[c] == cluster['div_date_wrong']).all():
continue
@@ -1982,10 +2012,42 @@ class PriceHistory:
if c == 'div_date_wrong':
# Fine, these should be rare
continue
if c == 'div_pre_split':
if c in ['div_pre_split', 'div_too_big_and_pre_split']:
# Fine, these should be rare
continue
if 'div_too_big' in checks and 'div_exceeds_adj' in checks:
c = "adj_too_small"
div_status_df[c] = False
for i in range(len(div_status_df)):
dt = div_status_df.index[i]
row = div_status_df.iloc[i]
if row['div_too_big'] and row['div_exceeds_adj']:
# Check if div_too_big AND adj-too-small-for-prices
div_yield = row['div']
pct = row['%']
close = div_yield/pct
adj_present = row['present adj']
implied_div_yield = (1-adj_present)*close
ratio = div_yield/implied_div_yield
also_correct_adj = abs(ratio-(currency_divide*currency_divide)) < currency_divide
if also_correct_adj:
div_status_df.loc[dt, c] = True
if not div_status_df[c].any():
div_status_df = div_status_df.drop(c, axis=1)
else:
checks.append(c)
if 'div_too_big_and_pre_split' in div_status_df.columns:
for c in ['div_too_big', 'div_pre_split']:
if c in div_status_df:
div_status_df[c] = div_status_df[c] | div_status_df['div_too_big_and_pre_split']
else:
div_status_df[c] = div_status_df['div_too_big_and_pre_split']
checks.append(c)
div_status_df = div_status_df.drop('div_too_big_and_pre_split', axis=1)
checks.remove('div_too_big_and_pre_split')
div_status_df = div_status_df.sort_index()
# Discard dividends with no problems
@@ -2017,6 +2079,7 @@ class PriceHistory:
# div_too_small_and_pre_split = 'div_too_small_and_pre_split' in row and row['div_too_small_and_pre_split'] # not happened yet
# div_too_big_and_pre_split = 'div_too_big_and_pre_split' in row and row['div_too_big_and_pre_split'] # not happened yet
div_date_wrong = 'div_date_wrong' in row and row['div_date_wrong']
adj_too_small = 'adj_too_small' in row and row['adj_too_small']
n_failed_checks = np.sum([row[c] for c in checks if c in row])
if div_too_big and adj_exceeds_prices and n_failed_checks == 2:
@@ -2182,23 +2245,13 @@ class PriceHistory:
cluster.loc[dt, 'Fixed?'] = True
elif div_too_big and div_exceeds_adj:
div = row['div']
close = div/row['%']
adj_present = row['present adj']
# Adj Close is correct, just need to fix Dividend.
# Probably just a currency unit mixup.
df2.loc[dt, 'Dividends'] /= currency_divide
k = 'too-big div'
if 'FX was repaired' in row and row['FX was repaired']:
# Complication: not just a currency unit mixup, but
# mixed up the local currency with $. So need to
# recalculate adjustment.
msg = None
div_adj = 1.0 - (row['%']/currency_divide)
adj_correction = div_adj / row['present adj']
df2.loc[ :enddt, 'Adj Close'] *= adj_correction
df2.loc[ :enddt, 'Repaired?'] = True
df2_nan.loc[:enddt, 'Adj Close'] *= adj_correction
df2_nan.loc[:enddt, 'Repaired?'] = True
# Currently not logging this FX-fix event, since I refactored fixing.
k += " and FX mixup"
k = 'div-too-big'
div_repairs.setdefault(k, []).append(dt)
cluster.loc[dt, 'Fixed?'] = True
@@ -2218,6 +2271,68 @@ class PriceHistory:
df2_nan.loc[:enddt, 'Repaired?'] = True
cluster.loc[dt, 'Fixed?'] = True
elif div_too_small and adj_exceeds_div:
# Adj Close is correct, just need to fix Dividend.
# Probably just a currency unit mixup.
df2.loc[dt, 'Dividends'] *= currency_divide
k = 'too-small div'
if 'FX was repaired' in row and row['FX was repaired']:
# Complication: not just a currency unit mixup, but
# mixed up the local currency with $. So need to
# recalculate adjustment.
msg = None
div_adj = 1.0 - (row['%']*currency_divide)
adj_correction = div_adj / row['present adj']
df2.loc[ :enddt, 'Adj Close'] *= adj_correction
df2.loc[ :enddt, 'Repaired?'] = True
df2_nan.loc[:enddt, 'Adj Close'] *= adj_correction
df2_nan.loc[:enddt, 'Repaired?'] = True
# Currently not logging this FX-fix event, since I refactored fixing.
k += " and FX mixup"
div_repairs.setdefault(k, []).append(dt)
cluster.loc[dt, 'Fixed?'] = True
elif n_failed_checks == 3:
if div_too_big and div_exceeds_adj and div_pre_split:
k = 'too-big div & pre-split'
correction = (1.0/currency_divide) * (1.0/df2['Stock Splits'].loc[dt])
correct_div = row['div'] * correction
df2.loc[dt, 'Dividends'] = correct_div
target_div_pct = row['%'] * correction
target_adj = 1.0 - target_div_pct
present_adj = row['present adj']
# Also correct adjustment to match corrected dividend
k += ' & div-adjust'
adj_correction = target_adj / present_adj
df2.loc[ :enddt, 'Adj Close'] *= adj_correction
df2.loc[ :enddt, 'Repaired?'] = True
df2_nan.loc[:enddt, 'Adj Close'] *= adj_correction
df2_nan.loc[:enddt, 'Repaired?'] = True
cluster.loc[dt, 'Fixed?'] = True
div_repairs.setdefault(k, []).append(dt)
elif div_too_big and div_exceeds_adj and adj_too_small:
# Need to fix dividend AND adj close.
# Probably just a currency unit mixup.
div = row['div']
close = div/row['%']
adj_present = row['present adj']
k = 'div-too-big and adj-too-small'
#
div_true = div/currency_divide
pct_true = div_true / close
df2.loc[dt, 'Dividends'] = div_true
#
adj_correct = 1.0 - pct_true
adj_correction = adj_correct / adj_present
df2.loc[ :enddt, 'Adj Close'] *= adj_correction
df2.loc[ :enddt, 'Repaired?'] = True
df2_nan.loc[:enddt, 'Adj Close'] *= adj_correction
df2_nan.loc[:enddt, 'Repaired?'] = True
div_repairs.setdefault(k, []).append(dt)
cluster.loc[dt, 'Fixed?'] = True
if cluster.empty:
continue
@@ -2381,7 +2496,12 @@ class PriceHistory:
# Update: if a VERY large dividend is paid out, then can be mistaken for a 1:2 stock split.
# Fix = use adjusted prices
adj = df2['Adj Close'].to_numpy() / df2['Close'].to_numpy()
f_zero = df2['Close'] == 0
if f_zero.any():
adj = np.ones(len(df2))
adj[~f_zero] = df2['Adj Close'].to_numpy()[~f_zero] / df2['Close'].to_numpy()[~f_zero]
else:
adj = df2['Adj Close'].to_numpy() / df2['Close'].to_numpy()
df_dtype = price_data.dtype
if df_dtype == np.int64:
price_data = price_data.astype('float')
@@ -2473,14 +2593,14 @@ class PriceHistory:
r = _1d_change_x / split_rcp
f_down = _1d_change_x < 1.0 / threshold
if f_down.any():
# Discard where triggered by negative Adj Close after dividend
f_neg = _1d_change_x < 0.0
f_div = (df2['Dividends']>0).to_numpy()
f_div_before = np.roll(f_div, 1)
if f_down.ndim == 2:
f_div_before = f_div_before[:, np.newaxis].repeat(f_down.shape[1], axis=1)
f_down = f_down & ~(f_neg + f_div_before)
# if f_down.any():
# # Discard where triggered by negative Adj Close after dividend
# f_neg = _1d_change_x < 0.0
# f_div = (df2['Dividends']>0).to_numpy()
# f_div_before = np.roll(f_div, 1)
# if f_down.ndim == 2:
# f_div_before = f_div_before[:, np.newaxis].repeat(f_down.shape[1], axis=1)
# f_down = f_down & ~(f_neg + f_div_before)
f_up = _1d_change_x > threshold
f_up_ndims = len(f_up.shape)
f_up_shifts = f_up if f_up_ndims==1 else f_up.any(axis=1)
@@ -2503,7 +2623,7 @@ class PriceHistory:
# assume false positive
continue
avg_vol_after = df2['Volume'].iloc[lookback:i-1].mean()
if not np.isnan(avg_vol_after) and v/avg_vol_after < 2.0:
if not np.isnan(avg_vol_after) and avg_vol_after > 0 and v/avg_vol_after < 2.0:
# volume spike is actually a step-change, so
# probably missing stock split
continue
@@ -2550,7 +2670,13 @@ class PriceHistory:
threshold = _dateutil.relativedelta.relativedelta(days=threshold_days)
else:
threshold = _datetime.timedelta(days=threshold_days)
if gap_td < threshold:
if isinstance(threshold, _dateutil.relativedelta.relativedelta) and isinstance(gap_td, _dateutil.relativedelta.relativedelta):
idx = np.where(gaps==gap_min)[0][0]
dt = df2.index[idx]
within_threshold = (dt + gap_td) < (dt + threshold)
else:
within_threshold = gap_td < threshold
if within_threshold:
logger.info('100x changes are too soon after stock split events, aborting', extra=log_extras)
return df

View File

@@ -1,23 +1,22 @@
# from io import StringIO
import pandas as pd
import requests
from yfinance import utils
from yfinance.data import YfData
from yfinance.const import _BASE_URL_
from yfinance.const import _BASE_URL_, _SENTINEL_
from yfinance.exceptions import YFDataException
_QUOTE_SUMMARY_URL_ = f"{_BASE_URL_}/v10/finance/quoteSummary/"
_QUOTE_SUMMARY_URL_ = f"{_BASE_URL_}/v10/finance/quoteSummary"
class Holders:
_SCRAPE_URL_ = 'https://finance.yahoo.com/quote'
def __init__(self, data: YfData, symbol: str, proxy=None):
def __init__(self, data: YfData, symbol: str, proxy=_SENTINEL_):
self._data = data
self._symbol = symbol
self.proxy = proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
data._set_proxy(proxy)
self._major = None
self._major_direct_holders = None
@@ -31,55 +30,49 @@ class Holders:
@property
def major(self) -> pd.DataFrame:
if self._major is None:
# self._scrape(self.proxy)
self._fetch_and_parse()
return self._major
@property
def institutional(self) -> pd.DataFrame:
if self._institutional is None:
# self._scrape(self.proxy)
self._fetch_and_parse()
return self._institutional
@property
def mutualfund(self) -> pd.DataFrame:
if self._mutualfund is None:
# self._scrape(self.proxy)
self._fetch_and_parse()
return self._mutualfund
@property
def insider_transactions(self) -> pd.DataFrame:
if self._insider_transactions is None:
# self._scrape_insider_transactions(self.proxy)
self._fetch_and_parse()
return self._insider_transactions
@property
def insider_purchases(self) -> pd.DataFrame:
if self._insider_purchases is None:
# self._scrape_insider_transactions(self.proxy)
self._fetch_and_parse()
return self._insider_purchases
@property
def insider_roster(self) -> pd.DataFrame:
if self._insider_roster is None:
# self._scrape_insider_ros(self.proxy)
self._fetch_and_parse()
return self._insider_roster
def _fetch(self, proxy):
def _fetch(self):
modules = ','.join(
["institutionOwnership", "fundOwnership", "majorDirectHolders", "majorHoldersBreakdown", "insiderTransactions", "insiderHolders", "netSharePurchaseActivity"])
params_dict = {"modules": modules, "corsDomain": "finance.yahoo.com", "formatted": "false"}
result = self._data.get_raw_json(f"{_QUOTE_SUMMARY_URL_}/{self._symbol}", user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=proxy)
result = self._data.get_raw_json(f"{_QUOTE_SUMMARY_URL_}/{self._symbol}", params=params_dict)
return result
def _fetch_and_parse(self):
try:
result = self._fetch(self.proxy)
result = self._fetch()
except requests.exceptions.HTTPError as e:
utils.get_yf_logger().error(str(e))
@@ -187,8 +180,10 @@ class Holders:
del owner["maxAge"]
df = pd.DataFrame(holders)
if not df.empty:
df["positionDirectDate"] = pd.to_datetime(df["positionDirectDate"], unit="s")
df["latestTransDate"] = pd.to_datetime(df["latestTransDate"], unit="s")
if "positionDirectDate" in df:
df["positionDirectDate"] = pd.to_datetime(df["positionDirectDate"], unit="s")
if "latestTransDate" in df:
df["latestTransDate"] = pd.to_datetime(df["latestTransDate"], unit="s")
df.rename(columns={
"name": "Name",

View File

@@ -7,7 +7,7 @@ import requests
from yfinance import utils
from yfinance.data import YfData
from yfinance.const import quote_summary_valid_modules, _BASE_URL_
from yfinance.const import quote_summary_valid_modules, _BASE_URL_, _QUERY1_URL_, _SENTINEL_
from yfinance.exceptions import YFDataException, YFException
info_retired_keys_price = {"currentPrice", "dayHigh", "dayLow", "open", "previousClose", "volume", "volume24Hr"}
@@ -26,9 +26,11 @@ _QUOTE_SUMMARY_URL_ = f"{_BASE_URL_}/v10/finance/quoteSummary"
class FastInfo:
# Contain small subset of info[] items that can be fetched faster elsewhere.
# Imitates a dict.
def __init__(self, tickerBaseObject, proxy=None):
def __init__(self, tickerBaseObject, proxy=_SENTINEL_):
self._tkr = tickerBaseObject
self.proxy = proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._tkr._data._set_proxy(proxy)
self._prices_1y = None
self._prices_1wk_1h_prepost = None
@@ -128,8 +130,8 @@ class FastInfo:
def _get_1y_prices(self, fullDaysOnly=False):
if self._prices_1y is None:
self._prices_1y = self._tkr.history(period="1y", auto_adjust=False, keepna=True, proxy=self.proxy)
self._md = self._tkr.get_history_metadata(proxy=self.proxy)
self._prices_1y = self._tkr.history(period="1y", auto_adjust=False, keepna=True)
self._md = self._tkr.get_history_metadata()
try:
ctp = self._md["currentTradingPeriod"]
self._today_open = pd.to_datetime(ctp["regular"]["start"], unit='s', utc=True).tz_convert(self.timezone)
@@ -154,12 +156,12 @@ class FastInfo:
def _get_1wk_1h_prepost_prices(self):
if self._prices_1wk_1h_prepost is None:
self._prices_1wk_1h_prepost = self._tkr.history(period="5d", interval="1h", auto_adjust=False, prepost=True, proxy=self.proxy)
self._prices_1wk_1h_prepost = self._tkr.history(period="5d", interval="1h", auto_adjust=False, prepost=True)
return self._prices_1wk_1h_prepost
def _get_1wk_1h_reg_prices(self):
if self._prices_1wk_1h_reg is None:
self._prices_1wk_1h_reg = self._tkr.history(period="5d", interval="1h", auto_adjust=False, prepost=False, proxy=self.proxy)
self._prices_1wk_1h_reg = self._tkr.history(period="5d", interval="1h", auto_adjust=False, prepost=False)
return self._prices_1wk_1h_reg
def _get_exchange_metadata(self):
@@ -167,7 +169,7 @@ class FastInfo:
return self._md
self._get_1y_prices()
self._md = self._tkr.get_history_metadata(proxy=self.proxy)
self._md = self._tkr.get_history_metadata()
return self._md
def _exchange_open_now(self):
@@ -198,7 +200,7 @@ class FastInfo:
if self._currency is not None:
return self._currency
md = self._tkr.get_history_metadata(proxy=self.proxy)
md = self._tkr.get_history_metadata()
self._currency = md["currency"]
return self._currency
@@ -207,7 +209,7 @@ class FastInfo:
if self._quote_type is not None:
return self._quote_type
md = self._tkr.get_history_metadata(proxy=self.proxy)
md = self._tkr.get_history_metadata()
self._quote_type = md["instrumentType"]
return self._quote_type
@@ -232,7 +234,7 @@ class FastInfo:
if self._shares is not None:
return self._shares
shares = self._tkr.get_shares_full(start=pd.Timestamp.utcnow().date()-pd.Timedelta(days=548), proxy=self.proxy)
shares = self._tkr.get_shares_full(start=pd.Timestamp.utcnow().date()-pd.Timedelta(days=548))
# if shares is None:
# # Requesting 18 months failed, so fallback to shares which should include last year
# shares = self._tkr.get_shares()
@@ -484,11 +486,12 @@ class FastInfo:
class Quote:
def __init__(self, data: YfData, symbol: str, proxy=None):
def __init__(self, data: YfData, symbol: str, proxy=_SENTINEL_):
self._data = data
self._symbol = symbol
self.proxy = proxy
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self._info = None
self._retired_info = None
@@ -505,15 +508,15 @@ class Quote:
@property
def info(self) -> dict:
if self._info is None:
self._fetch_info(self.proxy)
self._fetch_complementary(self.proxy)
self._fetch_info()
self._fetch_complementary()
return self._info
@property
def sustainability(self) -> pd.DataFrame:
if self._sustainability is None:
result = self._fetch(self.proxy, modules=['esgScores'])
result = self._fetch(modules=['esgScores'])
if result is None:
self._sustainability = pd.DataFrame()
else:
@@ -527,7 +530,7 @@ class Quote:
@property
def recommendations(self) -> pd.DataFrame:
if self._recommendations is None:
result = self._fetch(self.proxy, modules=['recommendationTrend'])
result = self._fetch(modules=['recommendationTrend'])
if result is None:
self._recommendations = pd.DataFrame()
else:
@@ -541,7 +544,7 @@ class Quote:
@property
def upgrades_downgrades(self) -> pd.DataFrame:
if self._upgrades_downgrades is None:
result = self._fetch(self.proxy, modules=['upgradeDowngradeHistory'])
result = self._fetch(modules=['upgradeDowngradeHistory'])
if result is None:
self._upgrades_downgrades = pd.DataFrame()
else:
@@ -575,7 +578,7 @@ class Quote:
def valid_modules():
return quote_summary_valid_modules
def _fetch(self, proxy, modules: list):
def _fetch(self, modules: list):
if not isinstance(modules, list):
raise YFException("Should provide a list of modules, see available modules using `valid_modules`")
@@ -584,39 +587,61 @@ class Quote:
raise YFException("No valid modules provided, see available modules using `valid_modules`")
params_dict = {"modules": modules, "corsDomain": "finance.yahoo.com", "formatted": "false", "symbol": self._symbol}
try:
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_ + f"/{self._symbol}", user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=proxy)
result = self._data.get_raw_json(_QUOTE_SUMMARY_URL_ + f"/{self._symbol}", params=params_dict)
except requests.exceptions.HTTPError as e:
utils.get_yf_logger().error(str(e))
return None
return result
def _fetch_info(self, proxy):
def _fetch_additional_info(self):
params_dict = {"symbols": self._symbol, "formatted": "false"}
try:
result = self._data.get_raw_json(f"{_QUERY1_URL_}/v7/finance/quote?", params=params_dict)
except requests.exceptions.HTTPError as e:
utils.get_yf_logger().error(str(e))
return None
return result
def _fetch_info(self):
if self._already_fetched:
return
self._already_fetched = True
modules = ['financialData', 'quoteType', 'defaultKeyStatistics', 'assetProfile', 'summaryDetail']
result = self._fetch(proxy, modules=modules)
if result is None:
self._info = {}
return
result = self._fetch(modules=modules)
additional_info = self._fetch_additional_info()
if additional_info is not None and result is not None:
result.update(additional_info)
else:
result = additional_info
query1_info = {}
for quote in ["quoteSummary", "quoteResponse"]:
if quote in result and len(result[quote]["result"]) > 0:
result[quote]["result"][0]["symbol"] = self._symbol
query_info = next(
(info for info in result.get(quote, {}).get("result", [])
if info["symbol"] == self._symbol),
None,
)
if query_info:
query1_info.update(query_info)
# Normalize and flatten nested dictionaries while converting maxAge from days (1) to seconds (86400).
# This handles Yahoo Finance API inconsistency where maxAge is sometimes expressed in days instead of seconds.
processed_info = {}
for k, v in query1_info.items():
# Handle nested dictionary
if isinstance(v, dict):
for k1, v1 in v.items():
if v1 is not None:
processed_info[k1] = 86400 if k1 == "maxAge" and v1 == 1 else v1
elif v is not None:
processed_info[k] = v
query1_info = processed_info
result["quoteSummary"]["result"][0]["symbol"] = self._symbol
query1_info = next(
(info for info in result.get("quoteSummary", {}).get("result", []) if info["symbol"] == self._symbol),
None,
)
# Most keys that appear in multiple dicts have same value. Except 'maxAge' because
# Yahoo not consistent with days vs seconds. Fix it here:
for k in query1_info:
if "maxAge" in query1_info[k] and query1_info[k]["maxAge"] == 1:
query1_info[k]["maxAge"] = 86400
query1_info = {
k1: v1
for k, v in query1_info.items()
if isinstance(v, dict)
for k1, v1 in v.items()
if v1
}
# recursively format but only because of 'companyOfficers'
def _format(k, v):
@@ -631,17 +656,15 @@ class Quote:
else:
v2 = v
return v2
for k, v in query1_info.items():
query1_info[k] = _format(k, v)
self._info = query1_info
def _fetch_complementary(self, proxy):
self._info = {k: _format(k, v) for k, v in query1_info.items()}
def _fetch_complementary(self):
if self._already_fetched_complementary:
return
self._already_fetched_complementary = True
# self._scrape(proxy) # decrypt broken
self._fetch_info(proxy)
self._fetch_info()
if self._info is None:
return
@@ -654,7 +677,7 @@ class Quote:
# p = _re.compile(r'root\.App\.main = (.*);')
# url = 'https://finance.yahoo.com/quote/{}/key-statistics?p={}'.format(self._ticker.ticker, self._ticker.ticker)
# try:
# r = session.get(url, headers=utils.user_agent_headers)
# r = session.get(url)
# data = _json.loads(p.findall(r.text)[0])
# key_stats = data['context']['dispatcher']['stores']['QuoteTimeSeriesStore']["timeSeries"]
# for k in keys:
@@ -680,7 +703,7 @@ class Quote:
end = int(end.timestamp())
url += f"&period1={start}&period2={end}"
json_str = self._data.cache_get(url=url, proxy=proxy).text
json_str = self._data.cache_get(url=url).text
json_data = json.loads(json_str)
json_result = json_data.get("timeseries") or json_data.get("finance")
if json_result["error"] is not None:
@@ -694,7 +717,7 @@ class Quote:
def _fetch_calendar(self):
# secFilings return too old data, so not requesting it for now
result = self._fetch(self.proxy, modules=['calendarEvents'])
result = self._fetch(modules=['calendarEvents'])
if result is None:
self._calendar = {}
return
@@ -721,7 +744,7 @@ class Quote:
def _fetch_sec_filings(self):
result = self._fetch(self.proxy, modules=['secFilings'])
result = self._fetch(modules=['secFilings'])
if result is None:
return None

View File

@@ -1,4 +1,4 @@
from .screener import Screener
from .screener_query import EquityQuery
from .query import EquityQuery
from .screener import screen, PREDEFINED_SCREENER_QUERIES
__all__ = ['EquityQuery', 'Screener']
__all__ = ['EquityQuery', 'FundQuery', 'screen', 'PREDEFINED_SCREENER_QUERIES']

218
yfinance/screener/query.py Normal file
View File

@@ -0,0 +1,218 @@
from abc import ABC, abstractmethod
import numbers
from typing import List, Union, Dict, TypeVar, Tuple
from yfinance.const import EQUITY_SCREENER_EQ_MAP, EQUITY_SCREENER_FIELDS
from yfinance.const import FUND_SCREENER_EQ_MAP, FUND_SCREENER_FIELDS
from yfinance.exceptions import YFNotImplementedError
from ..utils import dynamic_docstring, generate_list_table_from_dict_universal
T = TypeVar('T', bound=Union[str, numbers.Real])
class QueryBase(ABC):
def __init__(self, operator: str, operand: Union[ List['QueryBase'], Tuple[str, Tuple[Union[str, numbers.Real], ...]] ]):
operator = operator.upper()
if not isinstance(operand, list):
raise TypeError('Invalid operand type')
if len(operand) <= 0:
raise ValueError('Invalid field for EquityQuery')
if operator == 'IS-IN':
self._validate_isin_operand(operand)
elif operator in {'OR','AND'}:
self._validate_or_and_operand(operand)
elif operator == 'EQ':
self._validate_eq_operand(operand)
elif operator == 'BTWN':
self._validate_btwn_operand(operand)
elif operator in {'GT','LT','GTE','LTE'}:
self._validate_gt_lt(operand)
else:
raise ValueError('Invalid Operator Value')
self.operator = operator
self.operands = operand
@property
@abstractmethod
def valid_fields(self) -> List:
raise YFNotImplementedError('valid_fields() needs to be implemented by child')
@property
@abstractmethod
def valid_values(self) -> Dict:
raise YFNotImplementedError('valid_values() needs to be implemented by child')
def _validate_or_and_operand(self, operand: List['QueryBase']) -> None:
if len(operand) <= 1:
raise ValueError('Operand must be length longer than 1')
if all(isinstance(e, QueryBase) for e in operand) is False:
raise TypeError(f'Operand must be type {type(self)} for OR/AND')
def _validate_eq_operand(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 2:
raise ValueError('Operand must be length 2 for EQ')
if not any(operand[0] in fields_by_type for fields_by_type in self.valid_fields.values()):
raise ValueError(f'Invalid field for {type(self)} "{operand[0]}"')
if operand[0] in self.valid_values:
vv = self.valid_values[operand[0]]
if isinstance(vv, dict):
# this data structure is slightly different to generate better docs,
# need to unpack here.
vv = set().union(*[e for e in vv.values()])
if operand[1] not in vv:
raise ValueError(f'Invalid EQ value "{operand[1]}"')
def _validate_btwn_operand(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 3:
raise ValueError('Operand must be length 3 for BTWN')
if not any(operand[0] in fields_by_type for fields_by_type in self.valid_fields.values()):
raise ValueError(f'Invalid field for {type(self)}')
if isinstance(operand[1], numbers.Real) is False:
raise TypeError('Invalid comparison type for BTWN')
if isinstance(operand[2], numbers.Real) is False:
raise TypeError('Invalid comparison type for BTWN')
def _validate_gt_lt(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 2:
raise ValueError('Operand must be length 2 for GT/LT')
if not any(operand[0] in fields_by_type for fields_by_type in self.valid_fields.values()):
raise ValueError(f'Invalid field for {type(self)} "{operand[0]}"')
if isinstance(operand[1], numbers.Real) is False:
raise TypeError('Invalid comparison type for GT/LT')
def _validate_isin_operand(self, operand: List['QueryBase']) -> None:
if len(operand) < 2:
raise ValueError('Operand must be length 2+ for IS-IN')
if not any(operand[0] in fields_by_type for fields_by_type in self.valid_fields.values()):
raise ValueError(f'Invalid field for {type(self)} "{operand[0]}"')
if operand[0] in self.valid_values:
vv = self.valid_values[operand[0]]
if isinstance(vv, dict):
# this data structure is slightly different to generate better docs,
# need to unpack here.
vv = set().union(*[e for e in vv.values()])
for i in range(1, len(operand)):
if operand[i] not in vv:
raise ValueError(f'Invalid EQ value "{operand[i]}"')
def to_dict(self) -> Dict:
op = self.operator
ops = self.operands
if self.operator == 'IS-IN':
# Expand to OR of EQ queries
op = 'OR'
ops = [type(self)('EQ', [self.operands[0], v]) for v in self.operands[1:]]
return {
"operator": op,
"operands": [o.to_dict() if isinstance(o, QueryBase) else o for o in ops]
}
def __repr__(self, indent=0) -> str:
indent_str = " " * indent
class_name = self.__class__.__name__
if isinstance(self.operands, list):
# For list operands, check if they contain any QueryBase objects
if any(isinstance(op, QueryBase) for op in self.operands):
# If there are nested queries, format them with newlines
operands_str = ",\n".join(
f"{indent_str} {op.__repr__(indent + 1) if isinstance(op, QueryBase) else repr(op)}"
for op in self.operands
)
return f"{class_name}({self.operator}, [\n{operands_str}\n{indent_str}])"
else:
# For lists of simple types, keep them on one line
return f"{class_name}({self.operator}, {repr(self.operands)})"
else:
# Handle single operand
return f"{class_name}({self.operator}, {repr(self.operands)})"
def __str__(self) -> str:
return self.__repr__()
class EquityQuery(QueryBase):
"""
The `EquityQuery` class constructs filters for stocks based on specific criteria such as region, sector, exchange, and peer group.
Start with value operations: `EQ` (equals), `IS-IN` (is in), `BTWN` (between), `GT` (greater than), `LT` (less than), `GTE` (greater or equal), `LTE` (less or equal).
Combine them with logical operations: `AND`, `OR`.
Example:
Predefined Yahoo query `aggressive_small_caps`:
.. code-block:: python
from yfinance import EquityQuery
EquityQuery('and', [
EquityQuery('is-in', ['exchange', 'NMS', 'NYQ']),
EquityQuery('lt', ["epsgrowth.lasttwelvemonths", 15])
])
"""
@dynamic_docstring({"valid_operand_fields_table": generate_list_table_from_dict_universal(EQUITY_SCREENER_FIELDS)})
@property
def valid_fields(self) -> Dict:
"""
Valid operands, grouped by category.
{valid_operand_fields_table}
"""
return EQUITY_SCREENER_FIELDS
@dynamic_docstring({"valid_values_table": generate_list_table_from_dict_universal(EQUITY_SCREENER_EQ_MAP, concat_keys=['exchange'])})
@property
def valid_values(self) -> Dict:
"""
Most operands take number values, but some have a restricted set of valid values.
{valid_values_table}
"""
return EQUITY_SCREENER_EQ_MAP
class FundQuery(QueryBase):
"""
The `FundQuery` class constructs filters for mutual funds based on specific criteria such as region, sector, exchange, and peer group.
Start with value operations: `EQ` (equals), `IS-IN` (is in), `BTWN` (between), `GT` (greater than), `LT` (less than), `GTE` (greater or equal), `LTE` (less or equal).
Combine them with logical operations: `AND`, `OR`.
Example:
Predefined Yahoo query `solid_large_growth_funds`:
.. code-block:: python
from yfinance import FundQuery
FundQuery('and', [
FundQuery('eq', ['categoryname', 'Large Growth']),
FundQuery('is-in', ['performanceratingoverall', 4, 5]),
FundQuery('lt', ['initialinvestment', 100001]),
FundQuery('lt', ['annualreturnnavy1categoryrank', 50]),
FundQuery('eq', ['exchange', 'NAS'])
])
"""
@dynamic_docstring({"valid_operand_fields_table": generate_list_table_from_dict_universal(FUND_SCREENER_FIELDS)})
@property
def valid_fields(self) -> Dict:
"""
Valid operands, grouped by category.
{valid_operand_fields_table}
"""
return FUND_SCREENER_FIELDS
@dynamic_docstring({"valid_values_table": generate_list_table_from_dict_universal(FUND_SCREENER_EQ_MAP)})
@property
def valid_values(self) -> Dict:
"""
Most operands take number values, but some have a restricted set of valid values.
{valid_values_table}
"""
return FUND_SCREENER_EQ_MAP

View File

@@ -1,188 +1,195 @@
from typing import Dict
from .query import EquityQuery as EqyQy
from .query import FundQuery as FndQy
from .query import QueryBase, EquityQuery, FundQuery
from yfinance import utils
from yfinance.const import _QUERY1_URL_, _SENTINEL_
from yfinance.data import YfData
from yfinance.const import _BASE_URL_, PREDEFINED_SCREENER_BODY_MAP
from .screener_query import Query
from ..utils import dynamic_docstring, generate_list_table_from_dict_of_dict
_SCREENER_URL_ = f"{_BASE_URL_}/v1/finance/screener"
from ..utils import dynamic_docstring, generate_list_table_from_dict_universal, print_once
class Screener:
from typing import Union
import requests
_SCREENER_URL_ = f"{_QUERY1_URL_}/v1/finance/screener"
_PREDEFINED_URL_ = f"{_SCREENER_URL_}/predefined/saved"
PREDEFINED_SCREENER_BODY_DEFAULTS = {
"offset":0, "count":25, "userId":"","userIdType":"guid"
}
PREDEFINED_SCREENER_QUERIES = {
'aggressive_small_caps': {"sortField":"eodvolume", "sortType":"desc",
"query": EqyQy('and', [EqyQy('is-in', ['exchange', 'NMS', 'NYQ']), EqyQy('lt', ["epsgrowth.lasttwelvemonths", 15])])},
'day_gainers': {"sortField":"percentchange", "sortType":"DESC",
"query": EqyQy('and', [EqyQy('gt', ['percentchange', 3]), EqyQy('eq', ['region', 'us']), EqyQy('gte', ['intradaymarketcap', 2000000000]), EqyQy('gte', ['intradayprice', 5]), EqyQy('gt', ['dayvolume', 15000])])},
'day_losers': {"sortField":"percentchange", "sortType":"ASC",
"query": EqyQy('and', [EqyQy('lt', ['percentchange', -2.5]), EqyQy('eq', ['region', 'us']), EqyQy('gte', ['intradaymarketcap', 2000000000]), EqyQy('gte', ['intradayprice', 5]), EqyQy('gt', ['dayvolume', 20000])])},
'growth_technology_stocks': {"sortField":"eodvolume", "sortType":"desc",
"query": EqyQy('and', [EqyQy('gte', ['quarterlyrevenuegrowth.quarterly', 25]), EqyQy('gte', ['epsgrowth.lasttwelvemonths', 25]), EqyQy('eq', ['sector', 'Technology']), EqyQy('is-in', ['exchange', 'NMS', 'NYQ'])])},
'most_actives': {"sortField":"dayvolume", "sortType":"DESC",
"query": EqyQy('and', [EqyQy('eq', ['region', 'us']), EqyQy('gte', ['intradaymarketcap', 2000000000]), EqyQy('gt', ['dayvolume', 5000000])])},
'most_shorted_stocks': {"count":25, "offset":0, "sortField":"short_percentage_of_shares_outstanding.value", "sortType":"DESC",
"query": EqyQy('and', [EqyQy('eq', ['region', 'us']), EqyQy('gt', ['intradayprice', 1]), EqyQy('gt', ['avgdailyvol3m', 200000])])},
'small_cap_gainers': {"sortField":"eodvolume", "sortType":"desc",
"query": EqyQy("and", [EqyQy("lt", ["intradaymarketcap",2000000000]), EqyQy("is-in", ["exchange", "NMS", "NYQ"])])},
'undervalued_growth_stocks': {"sortType":"DESC", "sortField":"eodvolume",
"query": EqyQy('and', [EqyQy('btwn', ['peratio.lasttwelvemonths', 0, 20]), EqyQy('lt', ['pegratio_5y', 1]), EqyQy('gte', ['epsgrowth.lasttwelvemonths', 25]), EqyQy('is-in', ['exchange', 'NMS', 'NYQ'])])},
'undervalued_large_caps': {"sortField":"eodvolume", "sortType":"desc",
"query": EqyQy('and', [EqyQy('btwn', ['peratio.lasttwelvemonths', 0, 20]), EqyQy('lt', ['pegratio_5y', 1]), EqyQy('btwn', ['intradaymarketcap', 10000000000, 100000000000]), EqyQy('is-in', ['exchange', 'NMS', 'NYQ'])])},
'conservative_foreign_funds': {"sortType":"DESC", "sortField":"fundnetassets",
"query": FndQy('and', [FndQy('is-in', ['categoryname', 'Foreign Large Value', 'Foreign Large Blend', 'Foreign Large Growth', 'Foreign Small/Mid Growth', 'Foreign Small/Mid Blend', 'Foreign Small/Mid Value']), FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('lt', ['initialinvestment', 100001]), FndQy('lt', ['annualreturnnavy1categoryrank', 50]), FndQy('is-in', ['riskratingoverall', 1, 2, 3]), FndQy('eq', ['exchange', 'NAS'])])},
'high_yield_bond': {"sortType":"DESC", "sortField":"fundnetassets",
"query": FndQy('and', [FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('lt', ['initialinvestment', 100001]), FndQy('lt', ['annualreturnnavy1categoryrank', 50]), FndQy('is-in', ['riskratingoverall', 1, 2, 3]), FndQy('eq', ['categoryname', 'High Yield Bond']), FndQy('eq', ['exchange', 'NAS'])])},
'portfolio_anchors': {"sortType":"DESC", "sortField":"fundnetassets",
"query": FndQy('and', [FndQy('eq', ['categoryname', 'Large Blend']), FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('lt', ['initialinvestment', 100001]), FndQy('lt', ['annualreturnnavy1categoryrank', 50]), FndQy('eq', ['exchange', 'NAS'])])},
'solid_large_growth_funds': {"sortType":"DESC", "sortField":"fundnetassets",
"query": FndQy('and', [FndQy('eq', ['categoryname', 'Large Growth']), FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('lt', ['initialinvestment', 100001]), FndQy('lt', ['annualreturnnavy1categoryrank', 50]), FndQy('eq', ['exchange', 'NAS'])])},
'solid_midcap_growth_funds': {"sortType":"DESC", "sortField":"fundnetassets",
"query": FndQy('and', [FndQy('eq', ['categoryname', 'Mid-Cap Growth']), FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('lt', ['initialinvestment', 100001]), FndQy('lt', ['annualreturnnavy1categoryrank', 50]), FndQy('eq', ['exchange', 'NAS'])])},
'top_mutual_funds': {"sortType":"DESC", "sortField":"percentchange",
"query": FndQy('and', [FndQy('gt', ['intradayprice', 15]), FndQy('is-in', ['performanceratingoverall', 4, 5]), FndQy('gt', ['initialinvestment', 1000]), FndQy('eq', ['exchange', 'NAS'])])}
}
@dynamic_docstring({"predefined_screeners": generate_list_table_from_dict_universal(PREDEFINED_SCREENER_QUERIES, bullets=True, title='Predefined queries (Dec-2024)')})
def screen(query: Union[str, EquityQuery, FundQuery],
offset: int = None,
size: int = None,
count: int = None,
sortField: str = None,
sortAsc: bool = None,
userId: str = None,
userIdType: str = None,
session = None, proxy = _SENTINEL_):
"""
The `Screener` class is used to execute the queries and return the filtered results.
Run a screen: predefined query, or custom query.
The Screener class provides methods to set and manipulate the body of a screener request,
fetch and parse the screener results, and access predefined screener bodies.
:Parameters:
* Defaults only apply if query = EquityQuery or FundQuery
query : str | Query:
The query to execute, either name of predefined or custom query.
For predefined list run yf.PREDEFINED_SCREENER_QUERIES.keys()
offset : int
The offset for the results. Default 0.
size : int
number of results to return. Default 100, maximum 250 (Yahoo)
Use count instead for predefined queries.
count : int
number of results to return. Default 25, maximum 250 (Yahoo)
Use size instead for custom queries.
sortField : str
field to sort by. Default "ticker"
sortAsc : bool
Sort ascending? Default False
userId : str
The user ID. Default empty.
userIdType : str
Type of user ID (e.g., "guid"). Default "guid".
Example: predefined query
.. code-block:: python
import yfinance as yf
response = yf.screen("aggressive_small_caps")
Example: custom query
.. code-block:: python
import yfinance as yf
from yfinance import EquityQuery
q = EquityQuery('and', [
EquityQuery('gt', ['percentchange', 3]),
EquityQuery('eq', ['region', 'us'])
])
response = yf.screen(q, sortField = 'percentchange', sortAsc = True)
To access predefineds query code
.. code-block:: python
import yfinance as yf
query = yf.PREDEFINED_SCREENER_QUERIES['aggressive_small_caps']
{predefined_screeners}
"""
def __init__(self, session=None, proxy=None):
"""
Args:
session (requests.Session, optional): A requests session object to be used for making HTTP requests. Defaults to None.
proxy (str, optional): A proxy URL to be used for making HTTP requests. Defaults to None.
.. seealso::
:attr:`Screener.predefined_bodies <yfinance.Screener.predefined_bodies>`
supported predefined screens
"""
self.proxy = proxy
self.session = session
if proxy is not _SENTINEL_:
print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
_data = YfData(session=session, proxy=proxy)
else:
_data = YfData(session=session)
self._data: YfData = YfData(session=session)
self._body: Dict = {}
self._response: Dict = {}
self._body_updated = False
self._accepted_body_keys = {"offset","size","sortField","sortType","quoteType","query","userId","userIdType"}
self._predefined_bodies = PREDEFINED_SCREENER_BODY_MAP.keys()
# Only use defaults when user NOT give a predefined, because
# Yahoo's predefined endpoint auto-applies defaults. Also,
# that endpoint might be ignoring these fields.
defaults = {
'offset': 0,
'count': 25,
'sortField': 'ticker',
'sortAsc': False,
'userId': "",
'userIdType': "guid"
}
@property
def body(self) -> Dict:
return self._body
@property
def response(self) -> Dict:
"""
Fetch screen result
if count is not None and count > 250:
raise ValueError("Yahoo limits query count to 250, reduce count.")
Example:
if size is not None and size > 250:
raise ValueError("Yahoo limits query size to 250, reduce size.")
.. code-block:: python
fields = {'offset': offset, 'count': count, "size": size, 'sortField': sortField, 'sortAsc': sortAsc, 'userId': userId, 'userIdType': userIdType}
result = screener.response
symbols = [quote['symbol'] for quote in result['quotes']]
"""
if self._body_updated or self._response is None:
self._fetch_and_parse()
self._body_updated = False
return self._response
@dynamic_docstring({"predefined_screeners": generate_list_table_from_dict_of_dict(PREDEFINED_SCREENER_BODY_MAP,bullets=False)})
@property
def predefined_bodies(self) -> Dict:
"""
Predefined Screeners
{predefined_screeners}
"""
return self._predefined_bodies
params_dict = {"corsDomain": "finance.yahoo.com", "formatted": "false", "lang": "en-US", "region": "US"}
def set_default_body(self, query: Query, offset: int = 0, size: int = 100, sortField: str = "ticker", sortType: str = "desc", quoteType: str = "equity", userId: str = "", userIdType: str = "guid") -> None:
"""
Set the default body using a custom query
post_query = None
if isinstance(query, str):
# post_query = PREDEFINED_SCREENER_QUERIES[query]
# Switch to Yahoo's predefined endpoint
Example:
if size is not None:
print_once("YF deprecation warning: 'size' argument is deprecated for predefined screens, set 'count' instead.")
count = size
size = None
fields['count'] = fields['size']
del fields['size']
.. code-block:: python
screener.set_default_body(qf)
"""
self._body_updated = True
self._body = {
"offset": offset,
"size": size,
"sortField": sortField,
"sortType": sortType,
"quoteType": quoteType,
"query": query.to_dict(),
"userId": userId,
"userIdType": userIdType
}
def set_predefined_body(self, k: str) -> None:
"""
Set a predefined body
Example:
.. code-block:: python
screener.set_predefined_body('day_gainers')
.. seealso::
:attr:`Screener.predefined_bodies <yfinance.Screener.predefined_bodies>`
supported predefined screens
"""
body = PREDEFINED_SCREENER_BODY_MAP.get(k, None)
if not body:
raise ValueError(f'Invalid key {k} provided for predefined screener')
self._body_updated = True
self._body = body
def set_body(self, body: Dict) -> None:
"""
Set the fully custom body
Example:
.. code-block:: python
screener.set_body({
"offset": 0,
"size": 100,
"sortField": "ticker",
"sortType": "desc",
"quoteType": "equity",
"query": qf.to_dict(),
"userId": "",
"userIdType": "guid"
})
"""
missing_keys = [key for key in self._accepted_body_keys if key not in body]
if missing_keys:
raise ValueError(f"Missing required keys in body: {missing_keys}")
extra_keys = [key for key in body if key not in self._accepted_body_keys]
if extra_keys:
raise ValueError(f"Body contains extra keys: {extra_keys}")
self._body_updated = True
self._body = body
def patch_body(self, values: Dict) -> None:
"""
Patch parts of the body
Example:
.. code-block:: python
screener.patch_body({"offset": 100})
"""
extra_keys = [key for key in values if key not in self._accepted_body_keys]
if extra_keys:
raise ValueError(f"Body contains extra keys: {extra_keys}")
self._body_updated = True
for k in values:
self._body[k] = values[k]
def _validate_body(self) -> None:
if not all(k in self._body for k in self._accepted_body_keys):
raise ValueError("Missing required keys in body")
def _fetch(self) -> Dict:
params_dict = {"corsDomain": "finance.yahoo.com", "formatted": "false", "lang": "en-US", "region": "US"}
response = self._data.post(_SCREENER_URL_, body=self.body, user_agent_headers=self._data.user_agent_headers, params=params_dict, proxy=self.proxy)
response.raise_for_status()
return response.json()
def _fetch_and_parse(self) -> None:
response = None
self._validate_body()
params_dict['scrIds'] = query
for k,v in fields.items():
if v is not None:
params_dict[k] = v
resp = _data.get(url=_PREDEFINED_URL_, params=params_dict)
try:
response = self._fetch()
self._response = response['finance']['result'][0]
except Exception as e:
logger = utils.get_yf_logger()
logger.error(f"Failed to get screener data for '{self._body.get('query', 'query not set')}' reason: {e}")
logger.debug("Got response: ")
logger.debug("-------------")
logger.debug(f" {response}")
logger.debug("-------------")
resp.raise_for_status()
except requests.exceptions.HTTPError:
if query not in PREDEFINED_SCREENER_QUERIES:
print(f"yfinance.screen: '{query}' is probably not a predefined query.")
raise
return resp.json()["finance"]["result"][0]
elif isinstance(query, QueryBase):
# Prepare other fields
for k in defaults:
if k not in fields or fields[k] is None:
fields[k] = defaults[k]
fields['sortType'] = 'ASC' if fields['sortAsc'] else 'DESC'
del fields['sortAsc']
post_query = fields
post_query['query'] = query
else:
raise ValueError(f'Query must be type str or QueryBase, not "{type(query)}"')
if query is None:
raise ValueError('No query provided')
if isinstance(post_query['query'], EqyQy):
post_query['quoteType'] = 'EQUITY'
elif isinstance(post_query['query'], FndQy):
post_query['quoteType'] = 'MUTUALFUND'
post_query['query'] = post_query['query'].to_dict()
# Fetch
response = _data.post(_SCREENER_URL_,
body=post_query,
params=params_dict)
response.raise_for_status()
return response.json()['finance']['result'][0]

View File

@@ -1,145 +0,0 @@
from abc import ABC, abstractmethod
import numbers
from typing import List, Union, Dict
from yfinance.const import EQUITY_SCREENER_EQ_MAP, EQUITY_SCREENER_FIELDS
from yfinance.exceptions import YFNotImplementedError
from ..utils import dynamic_docstring, generate_list_table_from_dict
class Query(ABC):
def __init__(self, operator: str, operand: Union[numbers.Real, str, List['Query']]):
self.operator = operator
self.operands = operand
@abstractmethod
def to_dict(self) -> Dict:
raise YFNotImplementedError('to_dict() needs to be implemented by children classes')
class EquityQuery(Query):
"""
The `EquityQuery` class constructs filters for stocks based on specific criteria such as region, sector, exchange, and peer group.
The queries support operators: `GT` (greater than), `LT` (less than), `BTWN` (between), `EQ` (equals), and logical operators `AND` and `OR` for combining multiple conditions.
Example:
Screen for stocks where the end-of-day price is greater than 3.
.. code-block:: python
gt = yf.EquityQuery('gt', ['eodprice', 3])
Screen for stocks where the average daily volume over the last 3 months is less than a very large number.
.. code-block:: python
lt = yf.EquityQuery('lt', ['avgdailyvol3m', 99999999999])
Screen for stocks where the intraday market cap is between 0 and 100 million.
.. code-block:: python
btwn = yf.EquityQuery('btwn', ['intradaymarketcap', 0, 100000000])
Screen for stocks in the Technology sector.
.. code-block:: python
eq = yf.EquityQuery('eq', ['sector', 'Technology'])
Combine queries using AND/OR.
.. code-block:: python
qt = yf.EquityQuery('and', [gt, lt])
qf = yf.EquityQuery('or', [qt, btwn, eq])
"""
def __init__(self, operator: str, operand: Union[numbers.Real, str, List['EquityQuery']]):
"""
.. seealso::
:attr:`EquityQuery.valid_operand_fields <yfinance.EquityQuery.valid_operand_fields>`
supported operand values for query
:attr:`EquityQuery.valid_eq_operand_map <yfinance.EquityQuery.valid_eq_operand_map>`
supported `EQ query operand parameters`
"""
operator = operator.upper()
if not isinstance(operand, list):
raise TypeError('Invalid operand type')
if len(operand) <= 0:
raise ValueError('Invalid field for Screener')
if operator in {'OR','AND'}:
self._validate_or_and_operand(operand)
elif operator == 'EQ':
self._validate_eq_operand(operand)
elif operator == 'BTWN':
self._validate_btwn_operand(operand)
elif operator in {'GT','LT'}:
self._validate_gt_lt(operand)
else:
raise ValueError('Invalid Operator Value')
self.operator = operator
self.operands = operand
self._valid_eq_operand_map = EQUITY_SCREENER_EQ_MAP
self._valid_operand_fields = EQUITY_SCREENER_FIELDS
@dynamic_docstring({"valid_eq_operand_map_table": generate_list_table_from_dict(EQUITY_SCREENER_EQ_MAP)})
@property
def valid_eq_operand_map(self) -> Dict:
"""
Valid Operand Map for Operator "EQ"
{valid_eq_operand_map_table}
"""
return self._valid_eq_operand_map
@dynamic_docstring({"valid_operand_fields_table": generate_list_table_from_dict(EQUITY_SCREENER_FIELDS)})
@property
def valid_operand_fields(self) -> Dict:
"""
Valid Operand Fields
{valid_operand_fields_table}
"""
return self._valid_operand_fields
def _validate_or_and_operand(self, operand: List['EquityQuery']) -> None:
if len(operand) <= 1:
raise ValueError('Operand must be length longer than 1')
if all(isinstance(e, EquityQuery) for e in operand) is False:
raise TypeError('Operand must be type EquityQuery for OR/AND')
def _validate_eq_operand(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 2:
raise ValueError('Operand must be length 2 for EQ')
if not any(operand[0] in fields_by_type for fields_by_type in EQUITY_SCREENER_FIELDS.values()):
raise ValueError('Invalid field for Screener')
if operand[0] not in EQUITY_SCREENER_EQ_MAP:
raise ValueError('Invalid EQ key')
if operand[1] not in EQUITY_SCREENER_EQ_MAP[operand[0]]:
raise ValueError('Invalid EQ value')
def _validate_btwn_operand(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 3:
raise ValueError('Operand must be length 3 for BTWN')
if not any(operand[0] in fields_by_type for fields_by_type in EQUITY_SCREENER_FIELDS.values()):
raise ValueError('Invalid field for Screener')
if isinstance(operand[1], numbers.Real) is False:
raise TypeError('Invalid comparison type for BTWN')
if isinstance(operand[2], numbers.Real) is False:
raise TypeError('Invalid comparison type for BTWN')
def _validate_gt_lt(self, operand: List[Union[str, numbers.Real]]) -> None:
if len(operand) != 2:
raise ValueError('Operand must be length 2 for GT/LT')
if not any(operand[0] in fields_by_type for fields_by_type in EQUITY_SCREENER_FIELDS.values()):
raise ValueError('Invalid field for Screener')
if isinstance(operand[1], numbers.Real) is False:
raise TypeError('Invalid comparison type for GT/LT')
def to_dict(self) -> Dict:
return {
"operator": self.operator,
"operands": [operand.to_dict() if isinstance(operand, EquityQuery) else operand for operand in self.operands]
}

161
yfinance/search.py Normal file
View File

@@ -0,0 +1,161 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# yfinance - market data downloader
# https://github.com/ranaroussi/yfinance
#
# Copyright 2017-2019 Ran Aroussi
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import json as _json
from . import utils
from .const import _BASE_URL_, _SENTINEL_
from .data import YfData
class Search:
def __init__(self, query, max_results=8, news_count=8, lists_count=8, include_cb=True, include_nav_links=False,
include_research=False, include_cultural_assets=False, enable_fuzzy_query=False, recommended=8,
session=None, proxy=_SENTINEL_, timeout=30, raise_errors=True):
"""
Fetches and organizes search results from Yahoo Finance, including stock quotes and news articles.
Args:
query: The search query (ticker symbol or company name).
max_results: Maximum number of stock quotes to return (default 8).
news_count: Number of news articles to include (default 8).
lists_count: Number of lists to include (default 8).
include_cb: Include the company breakdown (default True).
include_nav_links: Include the navigation links (default False).
include_research: Include the research reports (default False).
include_cultural_assets: Include the cultural assets (default False).
enable_fuzzy_query: Enable fuzzy search for typos (default False).
recommended: Recommended number of results to return (default 8).
session: Custom HTTP session for requests (default None).
timeout: Request timeout in seconds (default 30).
raise_errors: Raise exceptions on error (default True).
"""
self.session = session
self._data = YfData(session=self.session)
if proxy is not _SENTINEL_:
utils.print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
self.query = query
self.max_results = max_results
self.enable_fuzzy_query = enable_fuzzy_query
self.news_count = news_count
self.timeout = timeout
self.raise_errors = raise_errors
self.lists_count = lists_count
self.include_cb = include_cb
self.nav_links = include_nav_links
self.enable_research = include_research
self.enable_cultural_assets = include_cultural_assets
self.recommended = recommended
self._logger = utils.get_yf_logger()
self._response = {}
self._all = {}
self._quotes = []
self._news = []
self._lists = []
self._research = []
self._nav = []
self.search()
def search(self) -> 'Search':
"""Search using the query parameters defined in the constructor."""
url = f"{_BASE_URL_}/v1/finance/search"
params = {
"q": self.query,
"quotesCount": self.max_results,
"enableFuzzyQuery": self.enable_fuzzy_query,
"newsCount": self.news_count,
"quotesQueryId": "tss_match_phrase_query",
"newsQueryId": "news_cie_vespa",
"listsCount": self.lists_count,
"enableCb": self.include_cb,
"enableNavLinks": self.nav_links,
"enableResearchReports": self.enable_research,
"enableCulturalAssets": self.enable_cultural_assets,
"recommendedCount": self.recommended
}
self._logger.debug(f'{self.query}: Yahoo GET parameters: {str(dict(params))}')
data = self._data.cache_get(url=url, params=params, timeout=self.timeout)
if data is None or "Will be right back" in data.text:
raise RuntimeError("*** YAHOO! FINANCE IS CURRENTLY DOWN! ***\n"
"Our engineers are working quickly to resolve "
"the issue. Thank you for your patience.")
try:
data = data.json()
except _json.JSONDecodeError:
self._logger.error(f"{self.query}: Failed to retrieve search results and received faulty response instead.")
data = {}
self._response = data
# Filter quotes to only include symbols
self._quotes = [quote for quote in data.get("quotes", []) if "symbol" in quote]
self._news = data.get("news", [])
self._lists = data.get("lists", [])
self._research = data.get("researchReports", [])
self._nav = data.get("nav", [])
self._all = {"quotes": self._quotes, "news": self._news, "lists": self._lists, "research": self._research,
"nav": self._nav}
return self
@property
def quotes(self) -> 'list':
"""Get the quotes from the search results."""
return self._quotes
@property
def news(self) -> 'list':
"""Get the news from the search results."""
return self._news
@property
def lists(self) -> 'list':
"""Get the lists from the search results."""
return self._lists
@property
def research(self) -> 'list':
"""Get the research reports from the search results."""
return self._research
@property
def nav(self) -> 'list':
"""Get the navigation links from the search results."""
return self._nav
@property
def all(self) -> 'dict[str,list]':
"""Get all the results from the search results: filtered down version of response."""
return self._all
@property
def response(self) -> 'dict':
"""Get the raw response from the search results."""
return self._response

View File

@@ -27,11 +27,11 @@ from .scrapers.funds import FundsData
import pandas as _pd
from .base import TickerBase
from .const import _BASE_URL_
from .const import _BASE_URL_, _SENTINEL_
class Ticker(TickerBase):
def __init__(self, ticker, session=None, proxy=None):
def __init__(self, ticker, session=None, proxy=_SENTINEL_):
super(Ticker, self).__init__(ticker, session=session, proxy=proxy)
self._expirations = {}
self._underlying = {}
@@ -45,7 +45,7 @@ class Ticker(TickerBase):
else:
url = f"{_BASE_URL_}/v7/finance/options/{self.ticker}?date={date}"
r = self._data.get(url=url, proxy=self.proxy).json()
r = self._data.get(url=url).json()
if len(r.get('optionChain', {}).get('result', [])) > 0:
for exp in r['optionChain']['result'][0]['expirationDates']:
self._expirations[_pd.Timestamp(exp, unit='s').strftime('%Y-%m-%d')] = exp
@@ -201,6 +201,10 @@ class Ticker(TickerBase):
def quarterly_income_stmt(self) -> _pd.DataFrame:
return self.get_income_stmt(pretty=True, freq='quarterly')
@property
def ttm_income_stmt(self) -> _pd.DataFrame:
return self.get_income_stmt(pretty=True, freq='trailing')
@property
def incomestmt(self) -> _pd.DataFrame:
return self.income_stmt
@@ -209,6 +213,10 @@ class Ticker(TickerBase):
def quarterly_incomestmt(self) -> _pd.DataFrame:
return self.quarterly_income_stmt
@property
def ttm_incomestmt(self) -> _pd.DataFrame:
return self.ttm_income_stmt
@property
def financials(self) -> _pd.DataFrame:
return self.income_stmt
@@ -217,6 +225,10 @@ class Ticker(TickerBase):
def quarterly_financials(self) -> _pd.DataFrame:
return self.quarterly_income_stmt
@property
def ttm_financials(self) -> _pd.DataFrame:
return self.ttm_income_stmt
@property
def balance_sheet(self) -> _pd.DataFrame:
return self.get_balance_sheet(pretty=True)
@@ -241,6 +253,10 @@ class Ticker(TickerBase):
def quarterly_cash_flow(self) -> _pd.DataFrame:
return self.get_cash_flow(pretty=True, freq='quarterly')
@property
def ttm_cash_flow(self) -> _pd.DataFrame:
return self.get_cash_flow(pretty=True, freq='trailing')
@property
def cashflow(self) -> _pd.DataFrame:
return self.cash_flow
@@ -249,6 +265,10 @@ class Ticker(TickerBase):
def quarterly_cashflow(self) -> _pd.DataFrame:
return self.quarterly_cash_flow
@property
def ttm_cashflow(self) -> _pd.DataFrame:
return self.ttm_cash_flow
@property
def analyst_price_targets(self) -> dict:
return self.get_analyst_price_targets()
@@ -301,4 +321,4 @@ class Ticker(TickerBase):
@property
def funds_data(self) -> FundsData:
return self.get_funds_data()
return self.get_funds_data()

View File

@@ -22,9 +22,10 @@
from __future__ import print_function
from . import Ticker, multi
# from collections import namedtuple as _namedtuple
from .live import WebSocket
from .utils import print_once
from .data import YfData
from .const import _SENTINEL_
class Tickers:
@@ -38,6 +39,11 @@ class Tickers:
self.symbols = [ticker.upper() for ticker in tickers]
self.tickers = {ticker: Ticker(ticker, session=session) for ticker in self.symbols}
self._data = YfData(session=session)
self._message_handler = None
self.ws = None
# self.tickers = _namedtuple(
# "Tickers", ticker_objects.keys(), rename=True
# )(*ticker_objects.values())
@@ -45,10 +51,14 @@ class Tickers:
def history(self, period="1mo", interval="1d",
start=None, end=None, prepost=False,
actions=True, auto_adjust=True, repair=False,
proxy=None,
proxy=_SENTINEL_,
threads=True, group_by='column', progress=True,
timeout=10, **kwargs):
if proxy is not _SENTINEL_:
print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
return self.download(
period, interval,
start, end, prepost,
@@ -60,10 +70,14 @@ class Tickers:
def download(self, period="1mo", interval="1d",
start=None, end=None, prepost=False,
actions=True, auto_adjust=True, repair=False,
proxy=None,
proxy=_SENTINEL_,
threads=True, group_by='column', progress=True,
timeout=10, **kwargs):
if proxy is not _SENTINEL_:
print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
self._data._set_proxy(proxy)
data = multi.download(self.symbols,
start=start, end=end,
actions=actions,
@@ -72,7 +86,6 @@ class Tickers:
period=period,
interval=interval,
prepost=prepost,
proxy=proxy,
group_by='ticker',
threads=threads,
progress=progress,
@@ -90,3 +103,10 @@ class Tickers:
def news(self):
return {ticker: [item for item in Ticker(ticker).news] for ticker in self.symbols}
def live(self, message_handler=None, verbose=True):
self._message_handler = message_handler
self.ws = WebSocket(verbose=verbose)
self.ws.subscribe(self.symbols)
self.ws.listen(self._message_handler)

View File

@@ -23,6 +23,7 @@ from __future__ import print_function
import datetime as _datetime
import logging
import re
import re as _re
import sys as _sys
import threading
@@ -34,16 +35,10 @@ from typing import List, Optional
import numpy as _np
import pandas as _pd
import pytz as _tz
import requests as _requests
from dateutil.relativedelta import relativedelta
from pytz import UnknownTimeZoneError
from yfinance import const
from .const import _BASE_URL_
user_agent_headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
# From https://stackoverflow.com/a/59128615
def attributes(obj):
@@ -186,40 +181,46 @@ def is_isin(string):
return bool(_re.match("^([A-Z]{2})([A-Z0-9]{9})([0-9])$", string))
def get_all_by_isin(isin, proxy=None, session=None):
def get_all_by_isin(isin, proxy=const._SENTINEL_, session=None):
if not (is_isin(isin)):
raise ValueError("Invalid ISIN number")
session = session or _requests
url = f"{_BASE_URL_}/v1/finance/search?q={isin}"
data = session.get(url=url, proxies=proxy, headers=user_agent_headers)
try:
data = data.json()
ticker = data.get('quotes', [{}])[0]
return {
'ticker': {
'symbol': ticker['symbol'],
'shortname': ticker['shortname'],
'longname': ticker.get('longname',''),
'type': ticker['quoteType'],
'exchange': ticker['exchDisp'],
},
'news': data.get('news', [])
}
except Exception:
return {}
if proxy is not const._SENTINEL_:
print_once("YF deprecation warning: set proxy via new config function: yf.set_config(proxy=proxy)")
proxy = None
# Deferred this to prevent circular imports
from .search import Search
search = Search(query=isin, max_results=1, session=session, proxy=proxy)
# Extract the first quote and news
ticker = search.quotes[0] if search.quotes else {}
news = search.news
return {
'ticker': {
'symbol': ticker.get('symbol', ''),
'shortname': ticker.get('shortname', ''),
'longname': ticker.get('longname', ''),
'type': ticker.get('quoteType', ''),
'exchange': ticker.get('exchDisp', ''),
},
'news': news
}
def get_ticker_by_isin(isin, proxy=None, session=None):
def get_ticker_by_isin(isin, proxy=const._SENTINEL_, session=None):
data = get_all_by_isin(isin, proxy, session)
return data.get('ticker', {}).get('symbol', '')
def get_info_by_isin(isin, proxy=None, session=None):
def get_info_by_isin(isin, proxy=const._SENTINEL_, session=None):
data = get_all_by_isin(isin, proxy, session)
return data.get('ticker', {})
def get_news_by_isin(isin, proxy=None, session=None):
def get_news_by_isin(isin, proxy=const._SENTINEL_, session=None):
data = get_all_by_isin(isin, proxy, session)
return data.get('news', {})
@@ -427,26 +428,28 @@ def _parse_user_dt(dt, exchange_tz):
def _interval_to_timedelta(interval):
if interval == "1mo":
return relativedelta(months=1)
elif interval == "3mo":
return relativedelta(months=3)
elif interval == "6mo":
return relativedelta(months=6)
elif interval == "1y":
return relativedelta(years=1)
elif interval == "2y":
return relativedelta(years=2)
elif interval == "5y":
return relativedelta(years=5)
elif interval == "10y":
return relativedelta(years=10)
elif interval == "1wk":
return _pd.Timedelta(days=7)
if interval[-1] == "d":
return relativedelta(days=int(interval[:-1]))
elif interval[-2:] == "wk":
return relativedelta(weeks=int(interval[:-2]))
elif interval[-2:] == "mo":
return relativedelta(months=int(interval[:-2]))
elif interval[-1] == "y":
return relativedelta(years=int(interval[:-1]))
else:
return _pd.Timedelta(interval)
def is_valid_period_format(period):
"""Check if the provided period has a valid format."""
if period is None:
return False
# Regex pattern to match valid period formats like '1d', '2wk', '3mo', '1y'
valid_pattern = r"^[1-9]\d*(d|wk|mo|y)$"
return bool(re.match(valid_pattern, period))
def auto_adjust(data):
col_order = data.columns
df = data.copy()
@@ -521,7 +524,7 @@ def parse_actions(data):
splits = None
if "events" in data:
if "dividends" in data["events"]:
if "dividends" in data["events"] and len(data["events"]['dividends']) > 0:
dividends = _pd.DataFrame(
data=list(data["events"]["dividends"].values()))
dividends.set_index("date", inplace=True)
@@ -529,7 +532,7 @@ def parse_actions(data):
dividends.sort_index(inplace=True)
dividends.columns = ["Dividends"]
if "capitalGains" in data["events"]:
if "capitalGains" in data["events"] and len(data["events"]['capitalGains']) > 0:
capital_gains = _pd.DataFrame(
data=list(data["events"]["capitalGains"].values()))
capital_gains.set_index("date", inplace=True)
@@ -537,7 +540,7 @@ def parse_actions(data):
capital_gains.sort_index(inplace=True)
capital_gains.columns = ["Capital Gains"]
if "splits" in data["events"]:
if "splits" in data["events"] and len(data["events"]['splits']) > 0:
splits = _pd.DataFrame(
data=list(data["events"]["splits"].values()))
splits.set_index("date", inplace=True)
@@ -594,15 +597,40 @@ def fix_Yahoo_returning_prepost_unrequested(quotes, interval, tradingPeriods):
return quotes
def fix_Yahoo_returning_live_separate(quotes, interval, tz_exchange, repair=False, currency=None):
def _dts_in_same_interval(dt1, dt2, interval):
# Check if second date dt2 in interval starting at dt1
if interval == '1d':
last_rows_same_interval = dt1.date() == dt2.date()
elif interval == "1wk":
last_rows_same_interval = (dt2 - dt1).days < 7
elif interval == "1mo":
last_rows_same_interval = dt1.month == dt2.month
elif interval == "3mo":
shift = (dt1.month % 3) - 1
q1 = (dt1.month - shift - 1) // 3 + 1
q2 = (dt2.month - shift - 1) // 3 + 1
year_diff = dt2.year - dt1.year
quarter_diff = q2 - q1 + 4*year_diff
last_rows_same_interval = quarter_diff == 0
else:
last_rows_same_interval = (dt2 - dt1) < _pd.Timedelta(interval)
return last_rows_same_interval
def fix_Yahoo_returning_live_separate(quotes, interval, tz_exchange, prepost, repair=False, currency=None):
# Yahoo bug fix. If market is open today then Yahoo normally returns
# todays data as a separate row from rest-of week/month interval in above row.
# Seems to depend on what exchange e.g. crypto OK.
# Fix = merge them together
n = quotes.shape[0]
if n > 1:
dt1 = quotes.index[n - 1]
dt2 = quotes.index[n - 2]
if interval[-1] not in ['m', 'h']:
prepost = False
dropped_row = None
if len(quotes) > 1:
dt1 = quotes.index[-1]
dt2 = quotes.index[-2]
if quotes.index.tz is None:
dt1 = dt1.tz_localize("UTC")
dt2 = dt2.tz_localize("UTC")
@@ -613,25 +641,23 @@ def fix_Yahoo_returning_live_separate(quotes, interval, tz_exchange, repair=Fals
# - exception is volume, *slightly* greater on final row (and matches website)
if dt1.date() == dt2.date():
# Last two rows are on same day. Drop second-to-last row
dropped_row = quotes.iloc[-2]
quotes = _pd.concat([quotes.iloc[:-2], quotes.iloc[-1:]])
else:
if interval == "1wk":
last_rows_same_interval = dt1.year == dt2.year and dt1.week == dt2.week
elif interval == "1mo":
last_rows_same_interval = dt1.month == dt2.month
elif interval == "3mo":
last_rows_same_interval = dt1.year == dt2.year and dt1.quarter == dt2.quarter
else:
last_rows_same_interval = (dt1 - dt2) < _pd.Timedelta(interval)
if last_rows_same_interval:
if _dts_in_same_interval(dt2, dt1, interval):
# Last two rows are within same interval
idx1 = quotes.index[n - 1]
idx2 = quotes.index[n - 2]
idx1 = quotes.index[-1]
idx2 = quotes.index[-2]
if idx1 == idx2:
# Yahoo returning last interval duplicated, which means
# Yahoo is not returning live data (phew!)
return quotes
return quotes, None
if prepost:
# Possibly dt1 is just start of post-market
if dt1.second == 0:
# assume post-market interval
return quotes, None
ss = quotes['Stock Splits'].iloc[-2:].replace(0,1).prod()
if repair:
@@ -654,31 +680,30 @@ def fix_Yahoo_returning_live_separate(quotes, interval, tz_exchange, repair=Fals
for c in const._PRICE_COLNAMES_:
quotes.loc[idx2, c] *= 0.01
# quotes.loc[idx2, 'Stock Splits'] = 2 # wtf? why doing this?
if _np.isnan(quotes.loc[idx2, "Open"]):
quotes.loc[idx2, "Open"] = quotes["Open"].iloc[n - 1]
quotes.loc[idx2, "Open"] = quotes["Open"].iloc[-1]
# Note: nanmax() & nanmin() ignores NaNs, but still need to check not all are NaN to avoid warnings
if not _np.isnan(quotes["High"].iloc[n - 1]):
quotes.loc[idx2, "High"] = _np.nanmax([quotes["High"].iloc[n - 1], quotes["High"].iloc[n - 2]])
if not _np.isnan(quotes["High"].iloc[-1]):
quotes.loc[idx2, "High"] = _np.nanmax([quotes["High"].iloc[-1], quotes["High"].iloc[-2]])
if "Adj High" in quotes.columns:
quotes.loc[idx2, "Adj High"] = _np.nanmax([quotes["Adj High"].iloc[n - 1], quotes["Adj High"].iloc[n - 2]])
quotes.loc[idx2, "Adj High"] = _np.nanmax([quotes["Adj High"].iloc[-1], quotes["Adj High"].iloc[-2]])
if not _np.isnan(quotes["Low"].iloc[n - 1]):
quotes.loc[idx2, "Low"] = _np.nanmin([quotes["Low"].iloc[n - 1], quotes["Low"].iloc[n - 2]])
if not _np.isnan(quotes["Low"].iloc[-1]):
quotes.loc[idx2, "Low"] = _np.nanmin([quotes["Low"].iloc[-1], quotes["Low"].iloc[-2]])
if "Adj Low" in quotes.columns:
quotes.loc[idx2, "Adj Low"] = _np.nanmin([quotes["Adj Low"].iloc[n - 1], quotes["Adj Low"].iloc[n - 2]])
quotes.loc[idx2, "Adj Low"] = _np.nanmin([quotes["Adj Low"].iloc[-1], quotes["Adj Low"].iloc[-2]])
quotes.loc[idx2, "Close"] = quotes["Close"].iloc[n - 1]
quotes.loc[idx2, "Close"] = quotes["Close"].iloc[-1]
if "Adj Close" in quotes.columns:
quotes.loc[idx2, "Adj Close"] = quotes["Adj Close"].iloc[n - 1]
quotes.loc[idx2, "Volume"] += quotes["Volume"].iloc[n - 1]
quotes.loc[idx2, "Dividends"] += quotes["Dividends"].iloc[n - 1]
quotes.loc[idx2, "Adj Close"] = quotes["Adj Close"].iloc[-1]
quotes.loc[idx2, "Volume"] += quotes["Volume"].iloc[-1]
quotes.loc[idx2, "Dividends"] += quotes["Dividends"].iloc[-1]
if ss != 1.0:
quotes.loc[idx2, "Stock Splits"] = ss
quotes = quotes.drop(quotes.index[n - 1])
dropped_row = quotes.iloc[-1]
quotes = quotes.drop(quotes.index[-1])
return quotes
return quotes, dropped_row
def safe_merge_dfs(df_main, df_sub, interval):
@@ -949,10 +974,12 @@ def dynamic_docstring(placeholders: dict):
return func
return decorator
def _generate_table_configurations() -> str:
def _generate_table_configurations(title = None) -> str:
import textwrap
table = textwrap.dedent("""
.. list-table:: Permitted Keys/Values
if title is None:
title = "Permitted Keys/Values"
table = textwrap.dedent(f"""
.. list-table:: {title}
:widths: 25 75
:header-rows: 1
@@ -962,34 +989,134 @@ def _generate_table_configurations() -> str:
return table
def generate_list_table_from_dict(data: dict, bullets: bool=True) -> str:
def generate_list_table_from_dict(data: dict, bullets: bool=True, title: str=None) -> str:
"""
Generate a list-table for the docstring showing permitted keys/values.
"""
table = _generate_table_configurations()
for key, values in data.items():
value_str = ', '.join(sorted(values))
table += f" * - {key}\n"
if bullets:
table += " -\n"
table = _generate_table_configurations(title)
for k in sorted(data.keys()):
values = data[k]
table += ' '*3 + f"* - {k}\n"
lengths = [len(str(v)) for v in values]
if bullets and max(lengths) > 5:
table += ' '*5 + "-\n"
for value in sorted(values):
table += f" - {value}\n"
table += ' '*7 + f"- {value}\n"
else:
table += f" - {value_str}\n"
value_str = ', '.join(sorted(values))
table += ' '*5 + f"- {value_str}\n"
return table
def generate_list_table_from_dict_of_dict(data: dict, bullets: bool=True) -> str:
# def generate_list_table_from_dict_of_dict(data: dict, bullets: bool=True, title: str=None) -> str:
# """
# Generate a list-table for the docstring showing permitted keys/values.
# """
# table = _generate_table_configurations(title)
# for k in sorted(data.keys()):
# values = data[k]
# table += ' '*3 + f"* - {k}\n"
# if bullets:
# table += ' '*5 + "-\n"
# for value in sorted(values):
# table += ' '*7 + f"- {value}\n"
# else:
# table += ' '*5 + f"- {values}\n"
# return table
def generate_list_table_from_dict_universal(data: dict, bullets: bool=True, title: str=None, concat_keys=[]) -> str:
"""
Generate a list-table for the docstring showing permitted keys/values.
"""
table = _generate_table_configurations()
for key, values in data.items():
value_str = values
table += f" * - {key}\n"
if bullets:
table += " -\n"
for value in sorted(values):
table += f" - {value}\n"
table = _generate_table_configurations(title)
for k in data.keys():
values = data[k]
table += ' '*3 + f"* - {k}\n"
if isinstance(values, dict):
table_add = ''
concat_short_lines = k in concat_keys
if bullets:
k_keys = sorted(list(values.keys()))
current_line = ''
block_format = 'query' in k_keys
for i in range(len(k_keys)):
k2 = k_keys[i]
k2_values = values[k2]
k2_values_str = None
if isinstance(k2_values, set):
k2_values = list(k2_values)
elif isinstance(k2_values, dict) and len(k2_values) == 0:
k2_values = []
if isinstance(k2_values, list):
k2_values = sorted(k2_values)
all_scalar = all(isinstance(k2v, (int, float, str)) for k2v in k2_values)
if all_scalar:
k2_values_str = _re.sub(r"[{}\[\]']", "", str(k2_values))
if k2_values_str is None:
k2_values_str = str(k2_values)
if len(current_line) > 0 and (len(current_line) + len(k2_values_str) > 40):
# new line
table_add += current_line + '\n'
current_line = ''
if concat_short_lines:
if current_line == '':
current_line += ' '*5
if i == 0:
# Only add dash to first
current_line += "- "
else:
current_line += " "
# Don't draw bullet points:
current_line += '| '
else:
current_line += '. '
current_line += f"{k2}: " + k2_values_str
else:
table_add += ' '*5
if i == 0:
# Only add dash to first
table_add += "- "
else:
table_add += " "
if '\n' in k2_values_str:
# Block format multiple lines
table_add += '| ' + f"{k2}: " + "\n"
k2_values_str_lines = k2_values_str.split('\n')
for j in range(len(k2_values_str_lines)):
line = k2_values_str_lines[j]
table_add += ' '*7 + '|' + ' '*5 + line
if j < len(k2_values_str_lines)-1:
table_add += "\n"
else:
if block_format:
table_add += '| '
else:
table_add += '* '
table_add += f"{k2}: " + k2_values_str
table_add += "\n"
if current_line != '':
table_add += current_line + '\n'
else:
table_add += ' '*5 + f"- {values}\n"
table += table_add
else:
table += f" - {value_str}\n"
return table
lengths = [len(str(v)) for v in values]
if bullets and max(lengths) > 5:
table += ' '*5 + "-\n"
for value in sorted(values):
table += ' '*7 + f"- {value}\n"
else:
value_str = ', '.join(sorted(values))
table += ' '*5 + f"- {value_str}\n"
return table

View File

@@ -1 +1 @@
version = "0.2.50"
version = "0.2.58"