SPB Git

spb/wp40_uqo

Public MIT

WP40 RAID: Phase 0 audit + Phase 1 foundation (C++20 core, CPU backend, calendar, OLS/robust SE, realized measures, GARCH QML, nanobind, CLI, tests, docs)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Nov 2, 2026) parent 2ceeede Browse files

102 changed files +15,235 −21

102 changed files
Unified Split
added .github/workflows/ci.yml +22 −0
@@ -0,0 +1,22 @@
1 +name: ci
2 +on: [push, pull_request]
3 +jobs:
4 + cpu-linux:
5 + runs-on: ubuntu-24.04
6 + steps:
7 + - uses: actions/checkout@v4
8 + - run: sudo apt-get update && sudo apt-get install -y cmake ninja-build libeigen3-dev nlohmann-json3-dev catch2 libcurl4-openssl-dev
9 + - run: cmake --preset cpu-only -DRAID_WERROR=OFF
10 + - run: cmake --build --preset cpu-only
11 + - run: ctest --preset cpu-only
12 + - run: bash scripts/check_no_secrets.sh
13 + macos-metal:
14 + runs-on: macos-15
15 + steps:
16 + - uses: actions/checkout@v4
17 + - run: brew install cmake ninja eigen apache-arrow catch2 nlohmann-json
18 + - run: cmake --preset macos-release
19 + - run: cmake --build --preset macos-release
20 + - run: ctest --preset macos-release
21 + - run: ./build/macos-release/raid devices
22 + - run: ./build/macos-release/raid validate datasets/fixtures/synthetic_bars_1m.csv
modified .gitignore +8 −21
@@ -1,5 +1,4 @@
1 −#
2 −Build
1 +# Build
3 2 build/
4 3 build-*/
5 4 cmake-build-*/
@@ -13,38 +12,27 @@ wheelhouse/
13 12 *.so
14 13 *.air
15 14 *.metallib
16 −#
17 −Python
15 +# Python
18 16 __pycache__/
19 17 *.pyc
20 18 .pytest_cache/
21 19 .hypothesis/
22 20 .venv/
23 21 .ruff_cache/
24 −#
25 −Data
26 −—
27 −FirstRate
28 −private
29 −license:
30 −never
31 −commit
32 −real
33 −bars
22 +# Data — FirstRate private license: never commit real bars
34 23 datasets/cache/
35 24 datasets/real/
36 25 data/
26 +experiments/results/raw/
37 27 *.parquet
28 +*.arrow
38 29 !datasets/fixtures/*.parquet
39 30 !datasets/synthetic/*.parquet
40 −experiments/results/raw/*.arrow
41 −#
42 −Secrets
31 +# Secrets
43 32 .env
44 33 *.key
45 34 api-key*.txt
46 −#
47 −LaTeX
35 +# LaTeX
48 36 paper/*.aux
49 37 paper/*.log
50 38 paper/*.out
@@ -58,8 +46,7 @@ paper/*.blg
58 46 paper/*.synctex.gz
59 47 paper/*.run.xml
60 48 paper/*.bcf
61 −#
62 −macOS
49 +# macOS
63 50 .DS_Store
64 51 Icon?
65 52 logs/
added CITATION.cff +23 −0
@@ -0,0 +1,23 @@
1 +cff-version: 1.2.0
2 +message: "If you use RAID, please cite the working paper."
3 +title: "RAID: Research Architecture for Intraday Data"
4 +version: 0.1.0
5 +date-released: 2026-11-02
6 +authors:
7 + - family-names: Boucher
8 + given-names: Simon-Pierre
9 + email: simon-pierre.boucher@uqo.ca
10 + affiliation: "Université du Québec en Outaouais, Département des sciences administratives"
11 +license: MIT
12 +repository-code: "https://git.spboucher.ai/wp40_uqo"
13 +keywords: [high-frequency econometrics, realized volatility, GARCH, HAR, Apple Metal, GPU, C++20, reproducibility]
14 +preferred-citation:
15 + type: report
16 + title: "RAID: A Metal-Accelerated C++ Framework for Reproducible High-Frequency Financial Econometrics"
17 + authors:
18 + - family-names: Boucher
19 + given-names: Simon-Pierre
20 + institution:
21 + name: "Université du Québec en Outaouais"
22 + number: "40"
23 + year: 2026
added CMakeLists.txt +189 −0
@@ -0,0 +1,189 @@
1 +cmake_minimum_required(VERSION 3.28)
2 +project(raid VERSION 0.1.0 LANGUAGES CXX)
3 +
4 +# ---------------------------------------------------------------------------
5 +# RAID — Research Architecture for Intraday Data (UQO WP 40)
6 +# C++20 core + CPU backend (portable) + optional Metal backend (macOS arm64).
7 +# ---------------------------------------------------------------------------
8 +set(CMAKE_CXX_STANDARD 20)
9 +set(CMAKE_CXX_STANDARD_REQUIRED ON)
10 +set(CMAKE_CXX_EXTENSIONS OFF)
11 +set(CMAKE_POSITION_INDEPENDENT_CODE ON)
12 +set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
13 +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
14 + set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
15 +endif()
16 +
17 +option(RAID_ENABLE_METAL "Build the Metal backend (macOS only)" ${APPLE})
18 +option(RAID_WITH_ARROW "Build the Arrow/Parquet reader (requires Apache Arrow C++)" ON)
19 +option(RAID_WITH_ACCELERATE "Use Apple Accelerate BLAS/LAPACK through Eigen (macOS only)" ${APPLE})
20 +option(RAID_BUILD_TESTS "Build Catch2 tests" ON)
21 +option(RAID_BUILD_BENCH "Build benchmark executables" ON)
22 +option(RAID_BUILD_CLI "Build the raid command-line tool" ON)
23 +option(RAID_BUILD_PYTHON "Build the nanobind Python extension" OFF)
24 +option(RAID_NATIVE_ARCH "Tune for the host CPU (-mcpu=native)" ON)
25 +option(RAID_WERROR "Treat warnings as errors" OFF)
26 +
27 +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
28 +include(GNUInstallDirs)
29 +
30 +# ---- dependencies ----------------------------------------------------------
31 +find_package(Eigen3 REQUIRED CONFIG)
32 +find_package(nlohmann_json 3.11 REQUIRED CONFIG)
33 +find_package(CURL REQUIRED) # system libcurl (macOS SDK / Linux)
34 +find_package(Threads REQUIRED)
35 +if(RAID_WITH_ARROW)
36 + find_package(Arrow CONFIG QUIET)
37 + find_package(Parquet CONFIG QUIET)
38 + if(NOT Arrow_FOUND OR NOT Parquet_FOUND)
39 + message(WARNING "RAID_WITH_ARROW=ON but Arrow/Parquet not found; building without Arrow")
40 + set(RAID_WITH_ARROW OFF)
41 + endif()
42 +endif()
43 +
44 +# ---- compile options -------------------------------------------------------
45 +add_library(raid_options INTERFACE)
46 +target_compile_options(raid_options INTERFACE
47 + $<$<CXX_COMPILER_ID:Clang,AppleClang,GNU>:-Wall -Wextra -Wpedantic -Wshadow -Wconversion -Wno-sign-conversion>
48 + $<$<AND:$<CXX_COMPILER_ID:Clang,AppleClang,GNU>,$<BOOL:${RAID_WERROR}>>:-Werror>
49 + $<$<AND:$<CXX_COMPILER_ID:Clang,AppleClang,GNU>,$<CONFIG:Release>>:-O3>
50 +)
51 +if(RAID_NATIVE_ARCH AND CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64")
52 + target_compile_options(raid_options INTERFACE -mcpu=native)
53 +endif()
54 +# Floating-point semantics: strict IEEE (no -ffast-math) so that CPU FP64 is a true reference.
55 +target_compile_options(raid_options INTERFACE $<$<CXX_COMPILER_ID:Clang,AppleClang>:-ffp-model=precise>)
56 +
57 +# ---- core library ----------------------------------------------------------
58 +file(GLOB_RECURSE RAID_CORE_SOURCES CONFIGURE_DEPENDS
59 + src/core/*.cpp src/data/*.cpp src/statistics/*.cpp src/estimators/*.cpp src/models/*.cpp backends/cpu/*.cpp)
60 +if(NOT RAID_WITH_ARROW)
61 + list(FILTER RAID_CORE_SOURCES EXCLUDE REGEX ".*parquet_arrow\\.cpp$")
62 +endif()
63 +add_library(raid ${RAID_CORE_SOURCES})
64 +add_library(raid::raid ALIAS raid)
65 +target_include_directories(raid PUBLIC
66 + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
67 + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
68 +target_link_libraries(raid PUBLIC Eigen3::Eigen nlohmann_json::nlohmann_json Threads::Threads CURL::libcurl raid_options)
69 +target_compile_definitions(raid PUBLIC RAID_VERSION="${PROJECT_VERSION}")
70 +if(RAID_WITH_ARROW)
71 + target_link_libraries(raid PUBLIC Arrow::arrow_shared Parquet::parquet_shared)
72 + target_compile_definitions(raid PUBLIC RAID_WITH_ARROW=1)
73 +endif()
74 +if(APPLE AND RAID_WITH_ACCELERATE)
75 + target_compile_definitions(raid PUBLIC RAID_WITH_ACCELERATE=1 EIGEN_USE_BLAS=1 ACCELERATE_NEW_LAPACK=1 ACCELERATE_LAPACK_ILP64=0)
76 + target_link_libraries(raid PUBLIC "-framework Accelerate")
77 +endif()
78 +
79 +# ---- Metal backend ---------------------------------------------------------
80 +if(RAID_ENABLE_METAL)
81 + if(NOT APPLE)
82 + message(FATAL_ERROR "RAID_ENABLE_METAL requires macOS")
83 + endif()
84 + file(GLOB _raid_metal_probe CONFIGURE_DEPENDS backends/metal/host/*.mm)
85 + if(NOT _raid_metal_probe)
86 + message(STATUS "Metal backend sources not present yet (Phase 3): building without Metal")
87 + set(RAID_ENABLE_METAL OFF)
88 + endif()
89 +endif()
90 +if(RAID_ENABLE_METAL)
91 + enable_language(OBJCXX)
92 + set(CMAKE_OBJCXX_STANDARD 20)
93 + file(GLOB RAID_METAL_HOST CONFIGURE_DEPENDS backends/metal/host/*.mm backends/metal/host/*.cpp)
94 + file(GLOB RAID_METAL_SHADERS CONFIGURE_DEPENDS backends/metal/shaders/*.metal)
95 + add_library(raid_metal ${RAID_METAL_HOST})
96 + target_link_libraries(raid_metal PUBLIC raid "-framework Metal" "-framework Foundation")
97 + target_compile_options(raid_metal PRIVATE -fobjc-arc)
98 + target_compile_definitions(raid PUBLIC RAID_ENABLE_METAL=1)
99 + # Embed the MSL sources as a string (runtime compilation fallback / cold-compile benchmark)
100 + set(RAID_MSL_BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/raid_msl_bundle.cpp")
101 + add_custom_command(OUTPUT ${RAID_MSL_BUNDLE}
102 + COMMAND ${CMAKE_COMMAND} -DOUT=${RAID_MSL_BUNDLE} "-DSHADERS=${RAID_METAL_SHADERS}" -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/EmbedMSL.cmake
103 + DEPENDS ${RAID_METAL_SHADERS} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/EmbedMSL.cmake COMMENT "Embedding MSL sources")
104 + target_sources(raid_metal PRIVATE ${RAID_MSL_BUNDLE})
105 + # Optional offline metallib (requires the Metal Toolchain). Missing toolchain => runtime compile only.
106 + find_program(RAID_XCRUN xcrun)
107 + if(RAID_XCRUN AND RAID_METAL_SHADERS)
108 + execute_process(COMMAND ${RAID_XCRUN} -sdk macosx metal --version RESULT_VARIABLE _mt_rc OUTPUT_QUIET ERROR_QUIET)
109 + if(_mt_rc EQUAL 0)
110 + set(RAID_METALLIB "${CMAKE_CURRENT_BINARY_DIR}/raid.metallib")
111 + set(_airs)
112 + foreach(s ${RAID_METAL_SHADERS})
113 + get_filename_component(n ${s} NAME_WE)
114 + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${n}.air
115 + COMMAND ${RAID_XCRUN} -sdk macosx metal -std=metal3.2 -O2 -c ${s} -o ${CMAKE_CURRENT_BINARY_DIR}/${n}.air
116 + DEPENDS ${s} COMMENT "metal ${n}")
117 + list(APPEND _airs ${CMAKE_CURRENT_BINARY_DIR}/${n}.air)
118 + endforeach()
119 + add_custom_command(OUTPUT ${RAID_METALLIB} COMMAND ${RAID_XCRUN} -sdk macosx metallib ${_airs} -o ${RAID_METALLIB} DEPENDS ${_airs} COMMENT "metallib")
120 + add_custom_target(raid_metallib ALL DEPENDS ${RAID_METALLIB})
121 + add_dependencies(raid_metal raid_metallib)
122 + target_compile_definitions(raid_metal PRIVATE RAID_METALLIB_PATH="${RAID_METALLIB}")
123 + message(STATUS "Metal toolchain found: building raid.metallib")
124 + else()
125 + message(STATUS "Metal toolchain not found: runtime MSL compilation only")
126 + endif()
127 + endif()
128 +endif()
129 +
130 +# ---- CLI --------------------------------------------------------------------
131 +if(RAID_BUILD_CLI)
132 + add_executable(raid_cli cli/raid.cpp)
133 + set_target_properties(raid_cli PROPERTIES OUTPUT_NAME raid)
134 + target_link_libraries(raid_cli PRIVATE raid)
135 + if(RAID_ENABLE_METAL)
136 + target_link_libraries(raid_cli PRIVATE raid_metal)
137 + endif()
138 +endif()
139 +
140 +# ---- examples -----------------------------------------------------------------
141 +add_executable(example_minimal examples/cpp/minimal.cpp)
142 +target_link_libraries(example_minimal PRIVATE raid)
143 +if(RAID_ENABLE_METAL)
144 + target_link_libraries(example_minimal PRIVATE raid_metal)
145 +endif()
146 +
147 +# ---- tests ------------------------------------------------------------------
148 +if(RAID_BUILD_TESTS)
149 + find_package(Catch2 3 CONFIG REQUIRED)
150 + include(CTest)
151 + include(Catch)
152 + file(GLOB_RECURSE RAID_TEST_SOURCES CONFIGURE_DEPENDS tests/unit/*.cpp tests/property/*.cpp tests/reference/*.cpp tests/simulation/*.cpp tests/stress/*.cpp tests/integration/*.cpp)
153 + add_executable(raid_tests ${RAID_TEST_SOURCES})
154 + target_link_libraries(raid_tests PRIVATE raid Catch2::Catch2WithMain)
155 + target_compile_definitions(raid_tests PRIVATE RAID_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
156 + if(RAID_ENABLE_METAL)
157 + target_link_libraries(raid_tests PRIVATE raid_metal)
158 + endif()
159 + catch_discover_tests(raid_tests)
160 +endif()
161 +
162 +# ---- benchmarks ---------------------------------------------------------------
163 +if(RAID_BUILD_BENCH)
164 + file(GLOB RAID_BENCH_SOURCES CONFIGURE_DEPENDS benchmarks/micro/*.cpp benchmarks/end_to_end/*.cpp benchmarks/accuracy/*.cpp benchmarks/scalability/*.cpp)
165 + foreach(b ${RAID_BENCH_SOURCES})
166 + get_filename_component(n ${b} NAME_WE)
167 + add_executable(bench_${n} ${b})
168 + target_link_libraries(bench_${n} PRIVATE raid)
169 + if(RAID_ENABLE_METAL)
170 + target_link_libraries(bench_${n} PRIVATE raid_metal)
171 + endif()
172 + endforeach()
173 +endif()
174 +
175 +# ---- Python -------------------------------------------------------------------
176 +if(RAID_BUILD_PYTHON)
177 + add_subdirectory(bindings/python)
178 +endif()
179 +
180 +# ---- install -----------------------------------------------------------------
181 +install(TARGETS raid raid_options EXPORT raidTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
182 +if(RAID_ENABLE_METAL)
183 + install(TARGETS raid_metal EXPORT raidTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
184 +endif()
185 +if(RAID_BUILD_CLI)
186 + install(TARGETS raid_cli RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
187 +endif()
188 +install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
189 +install(EXPORT raidTargets NAMESPACE raid:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/raid)
added CMakePresets.json +25 −0
@@ -0,0 +1,25 @@
1 +{
2 + "version": 6,
3 + "configurePresets": [
4 + { "name": "base", "hidden": true, "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}",
5 + "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" } },
6 + { "name": "macos-release", "inherits": "base", "displayName": "macOS arm64 Release (CPU + Metal + Arrow)",
7 + "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "RAID_ENABLE_METAL": "ON", "RAID_WITH_ARROW": "ON", "CMAKE_PREFIX_PATH": "/opt/homebrew" } },
8 + { "name": "macos-debug", "inherits": "macos-release", "displayName": "macOS Debug + sanitizers",
9 + "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_CXX_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer", "CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address,undefined", "RAID_NATIVE_ARCH": "OFF" } },
10 + { "name": "cpu-only", "inherits": "base", "displayName": "Portable CPU-only build (Linux/macOS)",
11 + "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "RAID_ENABLE_METAL": "OFF", "RAID_WITH_ARROW": "OFF", "RAID_WITH_ACCELERATE": "OFF", "RAID_NATIVE_ARCH": "OFF" } },
12 + { "name": "bundle", "inherits": "base", "displayName": "Self-contained bundle for cluster nodes (E7)",
13 + "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "RAID_ENABLE_METAL": "ON", "RAID_WITH_ARROW": "OFF", "RAID_NATIVE_ARCH": "OFF", "RAID_BUILD_TESTS": "OFF", "CMAKE_OSX_DEPLOYMENT_TARGET": "26.0", "CMAKE_PREFIX_PATH": "/opt/homebrew", "CMAKE_CXX_FLAGS": "-mcpu=apple-m1" } }
14 + ],
15 + "buildPresets": [
16 + { "name": "macos-release", "configurePreset": "macos-release" },
17 + { "name": "macos-debug", "configurePreset": "macos-debug" },
18 + { "name": "cpu-only", "configurePreset": "cpu-only" },
19 + { "name": "bundle", "configurePreset": "bundle" }
20 + ],
21 + "testPresets": [
22 + { "name": "macos-release", "configurePreset": "macos-release", "output": { "outputOnFailure": true } },
23 + { "name": "cpu-only", "configurePreset": "cpu-only", "output": { "outputOnFailure": true } }
24 + ]
25 +}
added README.md +114 −0
@@ -0,0 +1,114 @@
1 +<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca -->
2 +# ⚡ RAID — Research Architecture for Intraday Data
3 +
4 +**UQO Working Paper No. 40** — *A Metal-Accelerated C++ Framework for Reproducible High-Frequency Financial Econometrics*
5 +
6 +[![Paper](https://img.shields.io/badge/paper-in%20progress-lightgrey?logo=latex&logoColor=white)](paper/)
7 +[![C++20](https://img.shields.io/badge/C%2B%2B-20-00599C?logo=cplusplus&logoColor=white)](CMakeLists.txt)
8 +[![Metal](https://img.shields.io/badge/Metal-4%20(FP32)-000000?logo=apple&logoColor=white)](backends/metal/)
9 +[![Python](https://img.shields.io/badge/python-3.12%2B%20nanobind-3776AB?logo=python&logoColor=white)](pyproject.toml)
10 +[![Data](https://img.shields.io/badge/data-FinData%20OS%20%C2%B7%20FirstRate%20(private)-4051b5)](docs/audit.md)
11 +[![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca)
12 +[![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca)
13 +
14 +> **TL;DR** — RAID asks whether heterogeneous high-frequency econometric workloads (realized measures, rolling/batched
15 +> regressions, HAR, GARCH-family QML, block bootstrap) can be turned into batched, fused, streaming computation on Apple
16 +> Silicon **without** losing estimator accuracy, inference validity or reproducibility. It is a C++20 library with a FP64
17 +> CPU reference backend, an optional FP32 Metal backend (Apple GPUs have no FP64), nanobind Python bindings, a CLI, a
18 +> FinData OS client, and a benchmark protocol that reports break-even points and the cases where the CPU wins.
19 +> Status: Phase 1 (foundation) — see `RESEARCH_STATUS.md`. No performance numbers are claimed yet.
20 +
21 +---
22 +
23 +## 📌 Status
24 +
25 +| Item | Value |
26 +|---|---|
27 +| Version | 0.1.0 (November 2026) — Phases 0–1 |
28 +| SSRN | not yet submitted |
29 +| Journal | targets: J. Financial Econometrics, J. Financial Data Science, J. Computational Finance |
30 +| Code & data | CPU core + tests build and pass on macOS 27 / Xcode 27.2; synthetic fixtures only in git; real bars via FinData OS (private license) |
31 +| Ledger | `RESEARCH_STATUS.md` · `docs/PROGRESS.md` · `docs/DECISIONS.md` · `docs/risks.md` |
32 +
33 +## 🎯 What this paper does
34 +
35 +Three falsifiable questions. **RQ1** At what data and batch sizes does Metal beat an optimized multicore CPU, once I/O,
36 +shader compilation, synchronization and transfers are counted? **RQ2** Does batched estimation raise throughput while
37 +preserving statistical coverage and convergence? **RQ3** Can an Arrow/Parquet-to-estimator pipeline materially reduce
38 +copies, memory pressure and end-to-end latency? Negative results are published. Tier A methods (returns, calendar-aware
39 +aggregation, RV/BPV/RSV/RQ/jumps/rCov, OLS/WLS/ridge with HC/HAC/cluster inference, HAR family, GARCH/GJR/EGARCH with
40 +Gaussian/Student-t QML, block bootstrap) are validated against R `highfrequency`/`rugarch` and Python
41 +`statsmodels`/`arch`; GPU results are validated against the FP64 CPU reference with per-method tolerances.
42 +
43 +## 🏆 Headline results
44 +
45 +None yet — benchmarks (E1–E7) run in Phase 6; every number in the paper will point to a record under
46 +`experiments/results/` listed in `experiments/manifests/`.
47 +
48 +## 🗂 Repository layout
49 +
50 +```
51 +wp40_raid/
52 +├── include/raid/{core,data,statistics,estimators,models,backend}/ # public C++20 headers
53 +├── src/… backends/cpu/ backends/metal/{host,shaders}/ # implementations (Metal: Phase 3)
54 +├── bindings/python/ python/raid/ cli/ # nanobind module, Python API, `raid` CLI
55 +├── tests/{unit,property,reference,simulation,stress,integration}/ # Catch2 (reference = vs statsmodels/arch/highfrequency)
56 +├── benchmarks/ experiments/{configs,scripts,results,manifests}/ # harness + tracked artifacts (Phase 6)
57 +├── datasets/{synthetic,fixtures}/ # synthetic only; real data cached outside git
58 +├── docs/ paper/ scripts/ .github/workflows/
59 +```
60 +
61 +## 🚀 Quick start
62 +
63 +```bash
64 +brew install cmake ninja eigen apache-arrow catch2 nlohmann-json # macOS
65 +cmake --preset macos-release && cmake --build --preset macos-release # CPU + Metal + Arrow
66 +ctest --preset macos-release # unit + reference tests
67 +./build/macos-release/raid devices
68 +./build/macos-release/raid validate datasets/fixtures/synthetic_bars_1m.csv
69 +./build/macos-release/raid estimate realized datasets/fixtures/synthetic_bars_1m.csv --backend auto
70 +uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python -e ".[dev]" # Python package (nanobind)
71 +```
72 +
73 +Linux / CPU-only: `cmake --preset cpu-only && cmake --build --preset cpu-only && ctest --preset cpu-only`.
74 +
75 +## 🗃 Data
76 +
77 +Market data come from the owner's **FinData OS** lakehouse (`https://findata.spboucher.ai/api/v1`, FirstRate Data under
78 +a private-use license): 1-minute OHLCV bars (bar-open timestamps, extended 04:00–20:00 ET, regular 09:30–16:00 with the
79 +16:00 closing print, zero-volume minutes absent at the source), dataset versions pinned via `X-Dataset-Version`. Raw
80 +bars are never committed; `datasets/fixtures/` contains synthetic bars generated by `scripts/make_fixtures.py`.
81 +
82 +## 🔬 Methodology
83 +
84 +See `docs/methods/registry.md` (one entry per method: equations, conventions, reference software and tolerance) and
85 +`docs/architecture/overview.md`.
86 +
87 +## 🖼 Figures & tables inventory
88 +
89 +To be generated in Phase 6–7 from `experiments/results/`.
90 +
91 +## ⚠️ Limitations
92 +
93 +Apple Metal has no FP64: GPU paths are FP32 with compensated reductions and FP64 combination on the CPU, and are only
94 +valid where the documented tolerance is met. No tick/quote data: microstructure-noise and order-flow methods are out of
95 +scope. Energy is reported only when measured.
96 +
97 +## 📖 Citation
98 +
99 +```bibtex
100 +@techreport{boucher2026raid,
101 + title = {RAID: A Metal-Accelerated C++ Framework for Reproducible High-Frequency Financial Econometrics},
102 + author = {Boucher, Simon-Pierre},
103 + institution = {Université du Québec en Outaouais, Département des sciences administratives},
104 + type = {UQO Working Paper}, number = {40}, year = {2026}
105 +}
106 +```
107 +
108 +## 👤 Author & contact
109 +
110 +Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca — Département des sciences administratives, UQO.
111 +
112 +## 📝 Notes
113 +
114 +Directory name `wp40_raid` (charter requirement) instead of the usual slug; git remote `gitsrv:srv/git/wp40_uqo.git`.
added RESEARCH_STATUS.md +40 −0
@@ -0,0 +1,40 @@
1 +# RESEARCH_STATUS.md — RAID (UQO WP 40)
2 +
3 +Last update: 2026-11-02 (Phase 1 passed). Legend: ✅ verified by tests/artifacts · 🧪 implemented, validation pending ·
4 +🧭 experimental · ⛔ blocked · ⏳ planned · ✖ not implemented (deliberately).
5 +
6 +## Phases
7 +| Phase | Gate | Status | Evidence |
8 +|---|---|---|---|
9 +| 0 Audit | scope & feasibility memo | ✅ passed 2026-11-02 | `docs/audit.md`, `docs/capabilities.md`, `docs/novelty_matrix.md`, `docs/risks.md`, `docs/PROGRESS.md` |
10 +| 1 Foundation | clean build + tests + docs | ✅ passed 2026-11-02 | `ctest` 26/26 (314 assertions), `pytest` 7/7, `docs/PROGRESS.md` Phase 1 |
11 +| 2 Data | offline synthetic tests + opt-in live tests | ⏳ | — |
12 +| 3 Numerical primitives | accuracy + measured break-even | ⏳ | — |
13 +| 4 Econometrics (Tier A) | references + Monte Carlo | ⏳ | — |
14 +| 5 Extensions (Tier B) | per-feature specs + tests | ⏳ | — |
15 +| 6 Benchmarking E1–E7 | every claim traceable | ⏳ | — |
16 +| 7 Manuscript | reproducible build, no placeholders | ⏳ | — |
17 +| 8 Independent review | clean-checkout reproduction | ⏳ | — |
18 +
19 +## Methods registry (summary; full entries in `docs/methods/registry.md` from Phase 4)
20 +| Method | Tier | CPU FP64 | Metal FP32 | Reference software | Status |
21 +|---|---|---|---|---|---|
22 +| returns (log/arith), lag/lead, rolling windows, calendar-aware aggregation | A | ✅ | ⏳ (Phase 3) | numpy; exchange_calendars (calendar exact 2000–2026) | ✅ CPU |
23 +| RV, BPV, RSV±, RQ, jump proxy, TriPV, rCov/rCorr | A | ✅ (numpy truth 1e−12) | ⏳ (Phase 3) | highfrequency 1.0.3 (R comparison Phase 4) | ✅ CPU |
24 +| OLS/WLS/ridge, HC0–3, HAC, cluster, rolling OLS | A | ✅ (statsmodels 1e−9) | ⏳ (sufficient stats, Phase 3) | statsmodels 0.15, scipy 1.18 | ✅ CPU |
25 +| HAR-RV, log-HAR, HAR-X, HARQ | A | ⏳ | ⏳ | highfrequency `HARmodel`, statsmodels | ⏳ |
26 +| GARCH(1,1), GJR, EGARCH (N, t), QMLE/Hessian/OPG SE, forecasts | A | ✅ (arch 8.0: loglik 5e−4, params 5 %) | ⏳ (batched likelihood, Phase 3) | arch 8.0 ✅, rugarch 1.5.6 (Phase 4) | ✅ CPU |
27 +| Bootstrap (stationary / circular block), Monte Carlo | A | ⏳ | ⏳ | arch.bootstrap | ⏳ |
28 +| VAR, GFEVD, Diebold–Yilmaz | B | ⏳ | ⏳ | statsmodels VAR | ⏳ |
29 +| Realized GARCH, HEAVY, DCC, PCA/shrinkage, Kalman | B | ✖ until Tier A passes | | | ⏳ |
30 +| Pre-averaging, realized kernels, MSRV, BNS test | C | ✖ (1-min bars) | | highfrequency | 🧭 only if validated |
31 +| Hawkes, order-flow, LOB methods | C | ✖ | ✖ | — | ✖ no admissible data (bars only) |
32 +
33 +## Blockers
34 +- None at Phase 0. Seven cluster nodes unreachable (m2m16, M2M32, M2M32b, M4M36, m4ma, m4mb, m4mc): E7 reports them as
35 + not tested unless they come back.
36 +
37 +## Next safe action
38 +Phase 2: FinData client (C++ libcurl: catalog, bars Arrow pages, exports with polling/download, provenance, cache,
39 +token bucket, retries), `raid data` CLI, offline tests with a recorded OpenAPI/fixture server, opt-in live tests
40 +(`RAID_LIVE=1`), aggregate-vs-FinData-5m check.
added backends/cpu/cpu_backend.cpp +115 −0
@@ -0,0 +1,115 @@
1 +// CPU reference backend: FP64, Neumaier-compensated per-series reductions, parallel over series.
2 +#include "raid/backend/backend.hpp"
3 +#include "raid/core/thread_pool.hpp"
4 +#include "raid/core/error.hpp"
5 +#include "raid/statistics/reductions.hpp"
6 +#include "raid/statistics/rolling.hpp"
7 +#include "raid/models/garch.hpp"
8 +#include <chrono>
9 +#include <thread>
10 +#include <cmath>
11 +#ifdef __APPLE__
12 +#include <sys/sysctl.h>
13 +#endif
14 +
15 +namespace raid::backend {
16 +
17 +namespace {
18 +struct Timer { std::chrono::steady_clock::time_point t0 = std::chrono::steady_clock::now(); f64 s() const { return std::chrono::duration<f64>(std::chrono::steady_clock::now() - t0).count(); } };
19 +void fill(KernelStats* st, const char* k, const Timer& t, usize bin, usize bout) { if (!st) return; st->kernel = k; st->backend = raid::Backend::cpu; st->precision = Precision::fp64; st->wall_seconds = t.s(); st->bytes_in = bin; st->bytes_out = bout; }
20 +}
21 +
22 +class CpuBackend final : public Backend {
23 + public:
24 + explicit CpuBackend(unsigned threads) : pool_(threads == 0 ? nullptr : std::make_unique<ThreadPool>(threads)) {}
25 + std::string name() const override { return "cpu"; }
26 + raid::Backend kind() const override { return raid::Backend::cpu; }
27 + bool available() const override { return true; }
28 + Device device() const override {
29 + Device d; d.kind = raid::Backend::cpu; d.supports_fp64 = true; d.unified_memory = true; d.compute_units = static_cast<int>(std::thread::hardware_concurrency());
30 +#ifdef __APPLE__
31 + char buf[256]; size_t n = sizeof buf; if (sysctlbyname("machdep.cpu.brand_string", buf, &n, nullptr, 0) == 0) d.name = std::string(buf, n - 1); else d.name = "cpu";
32 + i64 mem = 0; n = sizeof mem; if (sysctlbyname("hw.memsize", &mem, &n, nullptr, 0) == 0) d.memory_bytes = static_cast<u64>(mem);
33 +#else
34 + d.name = "cpu";
35 +#endif
36 + d.details = "threads=" + std::to_string(pool().size());
37 + return d;
38 + }
39 + ThreadPool& pool() const { return pool_ ? *pool_ : ThreadPool::global(); }
40 +
41 + template <class F> std::vector<f64> per_series(const Batch& b, F f) {
42 + std::vector<f64> out(b.n_series());
43 + pool().parallel_for(b.n_series(), [&](usize i0, usize i1) { for (usize i = i0; i < i1; ++i) out[i] = f(b.series(i)); });
44 + return out;
45 + }
46 +
47 + std::vector<f64> sum_squares(const Batch& b, KernelStats* st) override {
48 + Timer t; auto r = per_series(b, [](std::span<const f64> x) { return stats::sum_squares(x); }); fill(st, "sum_squares", t, b.values.size_bytes(), r.size() * 8); return r;
49 + }
50 + std::vector<f64> sum_abs_adjacent(const Batch& b, KernelStats* st) override {
51 + Timer t; auto r = per_series(b, [](std::span<const f64> x) { f64 s = 0, c = 0; for (usize i = 1; i < x.size(); ++i) { const f64 v = std::abs(x[i]) * std::abs(x[i - 1]), tt = s + v; if (std::abs(s) >= std::abs(v)) c += (s - tt) + v; else c += (v - tt) + s; s = tt; } return s + c; });
52 + fill(st, "sum_abs_adjacent", t, b.values.size_bytes(), r.size() * 8); return r;
53 + }
54 + void semivariances(const Batch& b, std::vector<f64>& neg, std::vector<f64>& pos, KernelStats* st) override {
55 + Timer t; neg.assign(b.n_series(), 0); pos.assign(b.n_series(), 0);
56 + pool().parallel_for(b.n_series(), [&](usize i0, usize i1) { for (usize i = i0; i < i1; ++i) { f64 sn = 0, cn = 0, sp = 0, cp = 0; for (f64 v : b.series(i)) { const f64 q = v * v; if (v < 0) { const f64 tt = sn + q; if (std::abs(sn) >= q) cn += (sn - tt) + q; else cn += (q - tt) + sn; sn = tt; } else if (v > 0) { const f64 tt = sp + q; if (std::abs(sp) >= q) cp += (sp - tt) + q; else cp += (q - tt) + sp; sp = tt; } } neg[i] = sn + cn; pos[i] = sp + cp; } });
57 + fill(st, "semivariances", t, b.values.size_bytes(), neg.size() * 16);
58 + }
59 + std::vector<f64> sum_fourth(const Batch& b, KernelStats* st) override {
60 + Timer t; auto r = per_series(b, [](std::span<const f64> x) { f64 s = 0, c = 0; for (f64 v : x) { const f64 q = v * v * v * v, tt = s + q; if (std::abs(s) >= q) c += (s - tt) + q; else c += (q - tt) + s; s = tt; } return s + c; });
61 + fill(st, "sum_fourth", t, b.values.size_bytes(), r.size() * 8); return r;
62 + }
63 + std::vector<f64> rolling_sum_squares(const Batch& b, usize window, KernelStats* st) override {
64 + Timer t; std::vector<f64> out(b.values.size());
65 + pool().parallel_for(b.n_series(), [&](usize i0, usize i1) { for (usize i = i0; i < i1; ++i) { auto x = b.series(i); std::vector<f64> sq(x.size()); for (usize j = 0; j < x.size(); ++j) sq[j] = x[j] * x[j]; auto r = stats::rolling_sum(sq, stats::RollingOptions{window, 0, 1024}); std::copy(r.begin(), r.end(), out.begin() + b.offsets[i]); } });
66 + fill(st, "rolling_sum_squares", t, b.values.size_bytes(), out.size() * 8); return out;
67 + }
68 + void regression_stats(std::span<const f64> x, std::span<const f64> y, std::span<const i64> offsets, usize k, std::vector<f64>& xtx, std::vector<f64>& xty, std::vector<f64>& yty, KernelStats* st) override {
69 + Timer t; const usize ns = offsets.size() - 1; xtx.assign(ns * k * k, 0); xty.assign(ns * k, 0); yty.assign(ns, 0);
70 + pool().parallel_for(ns, [&](usize i0, usize i1) { for (usize s = i0; s < i1; ++s) { const usize b0 = static_cast<usize>(offsets[s]), n = static_cast<usize>(offsets[s + 1] - offsets[s]);
71 + std::vector<f64> acc(k * k, 0), accc(k * k, 0), ay(k, 0), ayc(k, 0); f64 syy = 0, cyy = 0;
72 + for (usize r = 0; r < n; ++r) { const f64* xr = x.data() + (b0 + r) * k; const f64 yr = y[b0 + r];
73 + for (usize a = 0; a < k; ++a) { for (usize c = a; c < k; ++c) { const f64 v = xr[a] * xr[c], tt = acc[a * k + c] + v; if (std::abs(acc[a * k + c]) >= std::abs(v)) accc[a * k + c] += (acc[a * k + c] - tt) + v; else accc[a * k + c] += (v - tt) + acc[a * k + c]; acc[a * k + c] = tt; }
74 + const f64 v = xr[a] * yr, tt = ay[a] + v; if (std::abs(ay[a]) >= std::abs(v)) ayc[a] += (ay[a] - tt) + v; else ayc[a] += (v - tt) + ay[a]; ay[a] = tt; }
75 + const f64 q = yr * yr, tt = syy + q; if (std::abs(syy) >= q) cyy += (syy - tt) + q; else cyy += (q - tt) + syy; syy = tt; }
76 + for (usize a = 0; a < k; ++a) for (usize c = a; c < k; ++c) { const f64 v = acc[a * k + c] + accc[a * k + c]; xtx[s * k * k + a * k + c] = v; xtx[s * k * k + c * k + a] = v; }
77 + for (usize a = 0; a < k; ++a) xty[s * k + a] = ay[a] + ayc[a];
78 + yty[s] = syy + cyy; } });
79 + fill(st, "regression_stats", t, x.size_bytes() + y.size_bytes(), (xtx.size() + xty.size() + yty.size()) * 8);
80 + }
81 + std::vector<f64> garch_nll_batch(const Batch& returns, std::span<const f64> params, usize n_params, usize p, int model_code, f64 nu_fixed, KernelStats* st) override {
82 + Timer t; const usize ns = returns.n_series(); std::vector<f64> out(ns * n_params);
83 + pool().parallel_for(ns * n_params, [&](usize i0, usize i1) { for (usize idx = i0; idx < i1; ++idx) { const usize s = idx / n_params, q = idx % n_params; const f64* th = params.data() + (s * n_params + q) * p; out[idx] = models::garch_nll(returns.series(s), std::span<const f64>(th, p), static_cast<models::GarchModel>(model_code), nu_fixed); } });
84 + fill(st, "garch_nll_batch", t, returns.values.size_bytes() + params.size_bytes(), out.size() * 8); return out;
85 + }
86 + private:
87 + std::unique_ptr<ThreadPool> pool_;
88 +};
89 +
90 +std::shared_ptr<Backend> make_cpu_backend(unsigned threads) { return std::make_shared<CpuBackend>(threads); }
91 +
92 +std::shared_ptr<Backend> resolve(const ExecutionPlan& plan, std::string* reason) {
93 + auto why = [&](const std::string& s) { if (reason) *reason = s; };
94 + if (plan.backend == raid::Backend::cpu) { why("cpu requested"); return make_cpu_backend(plan.threads); }
95 +#ifdef RAID_ENABLE_METAL
96 + auto m = make_metal_backend(plan.precision);
97 + if (m && m->available()) { why(plan.backend == raid::Backend::metal ? "metal requested" : "auto: metal available"); return m; }
98 + if (plan.backend == raid::Backend::metal && !plan.allow_fallback) throw RaidError(ErrorCode::unsupported, "Metal backend requested but unavailable and fallback disabled");
99 + why("metal unavailable: falling back to cpu");
100 +#else
101 + if (plan.backend == raid::Backend::metal && !plan.allow_fallback) throw RaidError(ErrorCode::unsupported, "RAID built without Metal support");
102 + why(plan.backend == raid::Backend::metal ? "built without Metal: falling back to cpu" : "auto: cpu (no Metal in this build)");
103 +#endif
104 + return make_cpu_backend(plan.threads);
105 +}
106 +
107 +std::vector<Device> list_devices() {
108 + std::vector<Device> d; d.push_back(make_cpu_backend()->device());
109 +#ifdef RAID_ENABLE_METAL
110 + if (auto m = make_metal_backend()) if (m->available()) d.push_back(m->device());
111 +#endif
112 + return d;
113 +}
114 +
115 +} // namespace raid::backend
added bindings/python/CMakeLists.txt +9 −0
@@ -0,0 +1,9 @@
1 +find_package(Python 3.11 COMPONENTS Interpreter Development.Module REQUIRED)
2 +execute_process(COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT)
3 +find_package(nanobind CONFIG REQUIRED)
4 +nanobind_add_module(_core NB_STATIC raid_py.cpp)
5 +target_link_libraries(_core PRIVATE raid)
6 +if(RAID_ENABLE_METAL)
7 + target_link_libraries(_core PRIVATE raid_metal)
8 +endif()
9 +install(TARGETS _core LIBRARY DESTINATION raid)
added bindings/python/raid_py.cpp +102 −0
@@ -0,0 +1,102 @@
1 +// nanobind bindings for RAID. Arrays are passed as NumPy views (no copy for contiguous float64/int64), the GIL is
2 +// released around every heavy call, and results come back as dicts (JSON-like) plus NumPy arrays for vectors.
3 +#include <nanobind/nanobind.h>
4 +#include <nanobind/ndarray.h>
5 +#include <nanobind/stl/string.h>
6 +#include <nanobind/stl/vector.h>
7 +#include <nanobind/stl/optional.h>
8 +#include <nlohmann/json.hpp>
9 +#include "raid/core/types.hpp"
10 +#include "raid/core/error.hpp"
11 +#include "raid/backend/backend.hpp"
12 +#include "raid/estimators/ols.hpp"
13 +#include "raid/estimators/realized.hpp"
14 +#include "raid/models/garch.hpp"
15 +#include "raid/data/bar_series.hpp"
16 +#include "raid/data/calendar.hpp"
17 +#include "raid/data/returns.hpp"
18 +
19 +namespace nb = nanobind;
20 +using namespace raid;
21 +using json = nlohmann::json;
22 +using F64 = nb::ndarray<const double, nb::c_contig, nb::device::cpu>;
23 +using I64 = nb::ndarray<const int64_t, nb::c_contig, nb::device::cpu>;
24 +
25 +namespace {
26 +nb::object json_to_py(const json& j) {
27 + switch (j.type()) {
28 + case json::value_t::null: return nb::none();
29 + case json::value_t::boolean: return nb::bool_(j.get<bool>());
30 + case json::value_t::number_integer: return nb::int_(j.get<long long>());
31 + case json::value_t::number_unsigned: return nb::int_(j.get<unsigned long long>());
32 + case json::value_t::number_float: return nb::float_(j.get<double>());
33 + case json::value_t::string: return nb::str(j.get<std::string>().c_str());
34 + case json::value_t::array: { nb::list l; for (auto& v : j) l.append(json_to_py(v)); return l; }
35 + case json::value_t::object: { nb::dict d; for (auto& [k, v] : j.items()) d[k.c_str()] = json_to_py(v); return d; }
36 + default: return nb::none();
37 + }
38 +}
39 +nb::ndarray<nb::numpy, double> to_np(std::vector<double> v) {
40 + auto* data = new std::vector<double>(std::move(v));
41 + nb::capsule owner(data, [](void* p) noexcept { delete static_cast<std::vector<double>*>(p); });
42 + return nb::ndarray<nb::numpy, double>(data->data(), {data->size()}, owner);
43 +}
44 +nb::ndarray<nb::numpy, int64_t> to_np_i64(std::vector<int64_t> v) {
45 + auto* data = new std::vector<int64_t>(std::move(v));
46 + nb::capsule owner(data, [](void* p) noexcept { delete static_cast<std::vector<int64_t>*>(p); });
47 + return nb::ndarray<nb::numpy, int64_t>(data->data(), {data->size()}, owner);
48 +}
49 +} // namespace
50 +
51 +NB_MODULE(_core, m) {
52 + m.doc() = "RAID compiled core (C++20, CPU + optional Metal)";
53 + m.attr("__version__") = RAID_VERSION;
54 + nb::exception<RaidError>(m, "RaidError");
55 +
56 + m.def("devices", []() { json out = json::array(); for (auto& d : backend::list_devices()) out.push_back(d.to_json()); return json_to_py(out); });
57 +
58 + m.def("ols", [](F64 X, F64 y, const std::string& cov, int hac_lags, std::optional<I64> clusters, double ridge, std::vector<usize> unpen, std::optional<F64> weights, std::vector<std::string> names) {
59 + RAID_REQUIRE(X.ndim() == 2 && y.ndim() == 1 && X.shape(0) == y.shape(0), invalid_argument, "X (n,k), y (n,)");
60 + const Eigen::Index n = static_cast<Eigen::Index>(X.shape(0)), k = static_cast<Eigen::Index>(X.shape(1));
61 + Eigen::Map<const Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> Xm(X.data(), n, k);
62 + Eigen::Map<const Eigen::VectorXd> ym(y.data(), n);
63 + est::OlsOptions o; o.cov.type = stats::covtype_from_string(cov); o.cov.hac_lags = hac_lags; o.ridge_lambda = ridge; o.unpenalized = unpen; o.names = names;
64 + std::vector<i64> cl; if (clusters) { cl.assign(clusters->data(), clusters->data() + clusters->shape(0)); o.cov.clusters = cl; }
65 + std::vector<f64> w; if (weights) { w.assign(weights->data(), weights->data() + weights->shape(0)); o.weights = w; }
66 + Eigen::MatrixXd Xd = Xm; json out; { nb::gil_scoped_release rel; auto r = est::ols(Xd, ym, o); out = r.estimate.to_json(); }
67 + return json_to_py(out);
68 + }, nb::arg("X"), nb::arg("y"), nb::arg("cov") = "classical", nb::arg("hac_lags") = -1, nb::arg("clusters") = nb::none(), nb::arg("ridge_lambda") = 0.0, nb::arg("unpenalized") = std::vector<usize>{}, nb::arg("weights") = nb::none(), nb::arg("names") = std::vector<std::string>{});
69 +
70 + m.def("realized_measures", [](F64 r, I64 off, const std::string& backend_s, bool bpv_fs, bool deterministic) {
71 + est::RealizedOptions o; o.plan.backend = backend_from_string(backend_s); o.bpv_finite_sample = bpv_fs; o.plan.deterministic = deterministic;
72 + backend::Batch b{std::span<const f64>(r.data(), r.shape(0)), std::span<const i64>(off.data(), off.shape(0))};
73 + est::RealizedMeasures mres; { nb::gil_scoped_release rel; mres = est::realized_measures_batch(b, o); }
74 + nb::dict d; d["rv"] = to_np(mres.rv); d["bpv"] = to_np(mres.bpv); d["rsv_neg"] = to_np(mres.rsv_neg); d["rsv_pos"] = to_np(mres.rsv_pos); d["rq"] = to_np(mres.rq); d["jump"] = to_np(mres.jump); d["tripv"] = to_np(mres.tripv); d["ret"] = to_np(mres.daily_return);
75 + d["backend"] = std::string(to_string(mres.stats.backend)); d["precision"] = std::string(to_string(mres.stats.precision)); d["wall_seconds"] = mres.stats.wall_seconds; d["device_seconds"] = mres.stats.device_seconds; d["note"] = mres.stats.note; d["warnings"] = mres.warnings;
76 + return d;
77 + }, nb::arg("returns"), nb::arg("offsets"), nb::arg("backend") = "auto", nb::arg("bpv_finite_sample") = true, nb::arg("deterministic") = true);
78 +
79 + m.def("garch_fit", [](F64 r, const std::string& model, const std::string& dist, int horizon, const std::string& cov, int max_iter, double tol) {
80 + models::GarchFitOptions o; o.model = model == "gjr" ? models::GarchModel::gjr : (model == "egarch" ? models::GarchModel::egarch : models::GarchModel::garch);
81 + o.dist = dist == "student_t" || dist == "t" ? models::GarchDist::student_t : models::GarchDist::gaussian; o.forecast_horizon = horizon; o.cov = cov; o.max_iter = max_iter; o.tol = tol;
82 + std::span<const f64> rs(r.data(), r.shape(0)); json out; { nb::gil_scoped_release rel; out = models::garch_fit(rs, o).to_json(); }
83 + return json_to_py(out);
84 + }, nb::arg("returns"), nb::arg("model") = "garch", nb::arg("dist") = "gaussian", nb::arg("horizon") = 0, nb::arg("cov") = "qmle", nb::arg("max_iter") = 500, nb::arg("tol") = 1e-8);
85 +
86 + m.def("validate_bars", [](I64 t, F64 o, F64 h, F64 l, F64 c, F64 v, const std::string& symbol, const std::string& interval, const std::string& session) {
87 + BarSeries b; b.symbol = symbol; b.interval = interval_from_string(interval); const usize n = t.shape(0); b.reserve(n);
88 + for (usize i = 0; i < n; ++i) b.push_back(Timestamp(t.data()[i]), o.data()[i], h.data()[i], l.data()[i], c.data()[i], v.data()[i]);
89 + json out; { nb::gil_scoped_release rel; auto st = b.normalize(); MarketCalendar cal; auto q = b.validate(cal, session == "extended" ? SessionPolicy::extended : SessionPolicy::regular); q.duplicates = st.duplicates_removed; q.unsorted = st.reordered; out = q.to_json(); }
90 + return json_to_py(out);
91 + });
92 +
93 + m.def("calendar_sessions", [](const std::string& a, const std::string& b) { MarketCalendar cal; std::vector<std::string> out; for (auto d : cal.sessions(date_from_iso(a), date_from_iso(b))) out.push_back(d.iso()); return out; });
94 +
95 + m.def("intraday_returns", [](I64 t, F64 c, const std::string& kind) {
96 + BarSeries b; b.interval = Interval::m1; const usize n = t.shape(0); b.reserve(n);
97 + for (usize i = 0; i < n; ++i) b.push_back(Timestamp(t.data()[i]), c.data()[i], c.data()[i], c.data()[i], c.data()[i], 0.0);
98 + data::IntradayReturns ir; { nb::gil_scoped_release rel; b.normalize(); MarketCalendar cal; auto reg = b.filter_session(cal, SessionPolicy::regular); ir = data::intraday_returns(reg, kind == "arithmetic" ? data::ReturnKind::arithmetic : data::ReturnKind::log); }
99 + nb::dict d; d["r"] = to_np(ir.r); d["offsets"] = to_np_i64(ir.session_offsets); std::vector<std::string> s; for (auto dd : ir.session_dates) s.push_back(dd.iso()); d["sessions"] = s; d["overnight"] = to_np(ir.overnight); d["close_to_close"] = to_np(ir.close_to_close); d["open_to_close"] = to_np(ir.open_to_close);
100 + return d;
101 + });
102 +}
added cli/raid.cpp +120 −0
@@ -0,0 +1,120 @@
1 +// raid — command-line tool: devices | validate | estimate | data | benchmark (Phase 1: devices, validate, estimate on CSV/Parquet).
2 +#include <cstdio>
3 +#include <cstring>
4 +#include <iostream>
5 +#include <fstream>
6 +#include <string>
7 +#include <vector>
8 +#include <map>
9 +#include <nlohmann/json.hpp>
10 +#include "raid/core/types.hpp"
11 +#include "raid/core/error.hpp"
12 +#include "raid/core/manifest.hpp"
13 +#include "raid/core/hash.hpp"
14 +#include "raid/backend/backend.hpp"
15 +#include "raid/data/io.hpp"
16 +#include "raid/data/calendar.hpp"
17 +#include "raid/data/returns.hpp"
18 +#include "raid/estimators/realized.hpp"
19 +#include "raid/estimators/ols.hpp"
20 +#include "raid/models/garch.hpp"
21 +#ifdef RAID_WITH_FINDATA
22 +#include "raid/data/findata.hpp"
23 +#endif
24 +
25 +using namespace raid;
26 +using json = nlohmann::json;
27 +
28 +namespace {
29 +void usage() {
30 + std::fprintf(stderr,
31 + "raid %s — Research Architecture for Intraday Data (UQO WP 40)\n"
32 + " raid devices list backends/devices (JSON)\n"
33 + " raid validate <bars.csv|.parquet> [--session regular|extended] quality report per symbol (JSON)\n"
34 + " raid estimate realized <bars> [--backend auto|cpu|metal] [--bpv-no-fs] per-session realized measures\n"
35 + " raid estimate garch <bars> [--model garch|gjr|egarch] [--dist gaussian|student_t] [--horizon H] [--returns daily|intraday]\n"
36 + " raid estimate ols <csv y,x1,x2...> [--cov classical|hc0..hc3|hac|cluster] [--lags L]\n"
37 + " raid data ... FinData access (Phase 2)\n"
38 + " raid benchmark ... benchmark harness (Phase 3+)\n", RAID_VERSION);
39 +}
40 +std::string arg(const std::vector<std::string>& a, const std::string& key, const std::string& def = "") { for (usize i = 0; i + 1 < a.size(); ++i) if (a[i] == key) return a[i + 1]; return def; }
41 +bool flag(const std::vector<std::string>& a, const std::string& key) { for (auto& s : a) if (s == key) return true; return false; }
42 +
43 +std::map<std::string, BarSeries> load_bars(const std::string& path) {
44 + if (path.size() > 4 && path.substr(path.size() - 4) == ".csv") return data::read_bars_csv(path);
45 +#ifdef RAID_WITH_ARROW
46 + if (path.size() > 8 && path.substr(path.size() - 8) == ".parquet") return data::read_bars_parquet(path).series;
47 + if (path.size() > 6 && path.substr(path.size() - 6) == ".arrow") return data::read_bars_arrow_ipc(path).series;
48 +#endif
49 + throw RaidError(ErrorCode::io, "unsupported input format (csv"
50 +#ifdef RAID_WITH_ARROW
51 + ", parquet, arrow"
52 +#endif
53 + "): " + path);
54 +}
55 +
56 +int cmd_devices() {
57 + json out = json::array(); for (auto& d : backend::list_devices()) out.push_back(d.to_json());
58 + json j = {{"devices", out}, {"host", host_info()}}; std::cout << j.dump(1) << "\n"; return 0;
59 +}
60 +
61 +int cmd_validate(const std::vector<std::string>& a) {
62 + if (a.empty()) { usage(); return 2; }
63 + auto bars = load_bars(a[0]); MarketCalendar cal;
64 + const auto policy = arg(a, "--session", "regular") == "extended" ? SessionPolicy::extended : SessionPolicy::regular;
65 + json out = json::array();
66 + for (auto& [sym, b] : bars) { auto bb = b; auto st = bb.normalize(); auto q = bb.validate(cal, policy); q.duplicates = st.duplicates_removed; q.unsorted = st.reordered; out.push_back(q.to_json()); }
67 + std::cout << json({{"file", a[0]}, {"sha256", Sha256::of_file(a[0])}, {"reports", out}}).dump(1) << "\n"; return 0;
68 +}
69 +
70 +int cmd_estimate(const std::vector<std::string>& a) {
71 + if (a.size() < 2) { usage(); return 2; }
72 + const std::string what = a[0], path = a[1];
73 + ExecutionPlan plan; plan.backend = backend_from_string(arg(a, "--backend", "auto"));
74 + if (what == "realized") {
75 + auto bars = load_bars(path); MarketCalendar cal; json out = json::object();
76 + est::RealizedOptions ro; ro.plan = plan; ro.bpv_finite_sample = !flag(a, "--bpv-no-fs");
77 + for (auto& [sym, b0] : bars) { auto b = b0; b.normalize(); auto reg = b.filter_session(cal, SessionPolicy::regular); auto ir = data::intraday_returns(reg); auto m = est::realized_measures(ir, ro);
78 + json rows = json::array(); for (usize k = 0; k < m.sessions.size(); ++k) rows.push_back({{"session", m.sessions[k].iso()}, {"n", m.n_returns[k]}, {"rv", m.rv[k]}, {"bpv", m.bpv[k]}, {"rsv_neg", m.rsv_neg[k]}, {"rsv_pos", m.rsv_pos[k]}, {"rq", m.rq[k]}, {"jump", m.jump[k]}, {"tripv", m.tripv[k]}, {"ret", m.daily_return[k]}});
79 + out[sym] = {{"measures", rows}, {"backend", std::string(to_string(m.stats.backend))}, {"precision", std::string(to_string(m.stats.precision))}, {"wall_seconds", m.stats.wall_seconds}, {"note", m.stats.note}, {"warnings", m.warnings}}; }
80 + std::cout << out.dump(1) << "\n"; return 0;
81 + }
82 + if (what == "garch") {
83 + auto bars = load_bars(path); MarketCalendar cal; json out = json::object();
84 + models::GarchFitOptions go; const std::string mdl = arg(a, "--model", "garch"); go.model = mdl == "gjr" ? models::GarchModel::gjr : (mdl == "egarch" ? models::GarchModel::egarch : models::GarchModel::garch);
85 + go.dist = arg(a, "--dist", "gaussian") == "student_t" ? models::GarchDist::student_t : models::GarchDist::gaussian; go.forecast_horizon = std::stoi(arg(a, "--horizon", "0")); go.plan = plan;
86 + const bool intraday = arg(a, "--returns", "daily") == "intraday";
87 + for (auto& [sym, b0] : bars) { auto b = b0; b.normalize(); auto reg = b.filter_session(cal, SessionPolicy::regular); auto ir = data::intraday_returns(reg);
88 + std::vector<f64> r; if (intraday) r = ir.r; else for (f64 v : ir.close_to_close) if (std::isfinite(v)) r.push_back(v);
89 + try { auto e = models::garch_fit(r, go); out[sym] = e.to_json(); } catch (const RaidError& ex) { out[sym] = {{"error", ex.what()}}; } }
90 + std::cout << out.dump(1) << "\n"; return 0;
91 + }
92 + if (what == "ols") {
93 + std::ifstream f(path); RAID_REQUIRE(f.good(), io, "cannot open " + path); std::string line; std::getline(f, line);
94 + std::vector<std::string> names; { usize s = 0; for (usize i = 0; i <= line.size(); ++i) if (i == line.size() || line[i] == ',') { names.push_back(line.substr(s, i - s)); s = i + 1; } }
95 + std::vector<std::vector<f64>> rows; while (std::getline(f, line)) { if (line.empty()) continue; std::vector<f64> r; usize s = 0; for (usize i = 0; i <= line.size(); ++i) if (i == line.size() || line[i] == ',') { r.push_back(std::stod(line.substr(s, i - s))); s = i + 1; } rows.push_back(r); }
96 + const usize n = rows.size(), k = names.size() - 1; Eigen::MatrixXd X(n, k + 1); Eigen::VectorXd y(n);
97 + for (usize i = 0; i < n; ++i) { y[static_cast<Eigen::Index>(i)] = rows[i][0]; X(static_cast<Eigen::Index>(i), 0) = 1.0; for (usize j = 0; j < k; ++j) X(static_cast<Eigen::Index>(i), static_cast<Eigen::Index>(j + 1)) = rows[i][j + 1]; }
98 + est::OlsOptions oo; oo.cov.type = stats::covtype_from_string(arg(a, "--cov", "classical")); oo.cov.hac_lags = std::stoi(arg(a, "--lags", "-1")); oo.names = {"const"}; for (usize j = 1; j < names.size(); ++j) oo.names.push_back(names[j]);
99 + std::cout << est::ols(X, y, oo).estimate.to_json().dump(1) << "\n"; return 0;
100 + }
101 + usage(); return 2;
102 +}
103 +} // namespace
104 +
105 +int main(int argc, char** argv) {
106 + std::vector<std::string> a(argv + 1, argv + argc);
107 + if (a.empty()) { usage(); return 2; }
108 + try {
109 + const std::string cmd = a[0]; a.erase(a.begin());
110 + if (cmd == "devices") return cmd_devices();
111 + if (cmd == "validate") return cmd_validate(a);
112 + if (cmd == "estimate") return cmd_estimate(a);
113 +#ifdef RAID_WITH_FINDATA
114 + if (cmd == "data") return raid::findata::cli_main(a);
115 +#endif
116 + if (cmd == "benchmark") { std::fprintf(stderr, "benchmark: use the bench_* executables (Phase 3+)\n"); return 2; }
117 + usage(); return 2;
118 + } catch (const RaidError& e) { std::fprintf(stderr, "raid error: %s\n", e.what()); return 1; }
119 + catch (const std::exception& e) { std::fprintf(stderr, "error: %s\n", e.what()); return 1; }
120 +}
added cmake/EmbedMSL.cmake +9 −0
@@ -0,0 +1,9 @@
1 +# Concatenates all .metal sources into one C++ translation unit exposing raid::metal::msl_bundle().
2 +set(_out "namespace raid { namespace metal { const char* msl_bundle() { return R\"RAIDMSL(\n")
3 +set(_sep "")
4 +foreach(s ${SHADERS})
5 + file(READ ${s} _c)
6 + string(APPEND _out "// ---- ${s}\n${_c}\n")
7 +endforeach()
8 +string(APPEND _out ")RAIDMSL\"; } } }\n")
9 +file(WRITE ${OUT} "${_out}")
added datasets/fixtures/garch_returns.csv +3001 −0
@@ -0,0 +1,3001 @@
1 +r
2 +0.011072422834064762
3 +0.26419717930658304
4 +-0.21851176297919125
5 +-0.71786946816684827
6 +-0.36151152069885717
7 +-0.7881296612942581
8 +0.058670260517873274
9 +1.0733342762362461
10 +-0.39080156044833841
11 +-0.48823847071027499
12 +0.39964263623934315
13 +0.29034404854678919
14 +0.091604228184325648
15 +-0.69842852238128272
16 +-0.012407861200263512
17 +0.53409028940582892
18 +-1.000460866374995
19 +-0.34435361963238209
20 +-1.445312387227593
21 +-1.0480769746015295
22 +-1.5329821193560793
23 +-0.1990511989736049
24 +-1.0904542951973621
25 +0.24942283170572721
26 +0.14520445889141767
27 +-0.14756576306612232
28 +-2.0664217413815149
29 +-0.49193775618148405
30 +-0.034292079103251751
31 +0.11075413954560615
32 +-1.3170023079001998
33 +-0.41863521448216778
34 +-0.85067440857825916
35 +-0.70127771419719453
36 +0.93564776222957402
37 +-0.69768429917004526
38 +-0.018281428047814643
39 +0.76076854034763108
40 +-0.48408868802434796
41 +-0.083275969530873281
42 +0.10028392413912764
43 +0.061089557941656554
44 +-0.95272512493467665
45 +0.071015053686586518
46 +1.0783267281255364
47 +-1.2405926245105574
48 +0.732212120626764
49 +0.10998002693502507
50 +-0.51586140292130012
51 +1.633488674882128
52 +0.6765196509839575
53 +-1.0288429514126425
54 +0.075356149371336376
55 +0.50358174802987066
56 +-0.14923535953623748
57 +0.57380097820325127
58 +-0.044419388803233976
59 +0.54485694706983212
60 +1.1541375083044381
61 +-0.54502457125983583
62 +0.17536888803263362
63 +-0.36000995988060575
64 +0.1102815326357508
65 +-0.90904947026045124
66 +-0.44672699219587225
67 +-0.14321647268397883
68 +0.70038201171544501
69 +0.89328845597125806
70 +-1.0274275282601442
71 +-0.62906762493513191
72 +0.52853811655453631
73 +-1.5735746023476465
74 +-0.38679394987961691
75 +-0.071883085286639767
76 +1.0449566541107929
77 +0.58830413114494573
78 +-0.2618076361907965
79 +-0.29049925769195722
80 +-0.190586664304742
81 +1.2101034191817766
82 +-0.34047233871838045
83 +-0.23475031020307346
84 +0.28932325428100214
85 +-0.084226700879417263
86 +-0.14131885101844643
87 +-0.83155801921327266
88 +0.0011579423915692496
89 +-0.32491830736783556
90 +0.88161743756826438
91 +0.50771758597337291
92 +-0.0083094003886314324
93 +0.50910082841422244
94 +-0.24303774223136859
95 +0.78463427224506688
96 +0.00596703625330433
97 +0.43952252333976904
98 +-0.93605711167540628
99 +0.27131029761720932
100 +-1.2473892671189437
101 +-1.5904436269731992
102 +-0.24917345631045063
103 +-0.74048762245055355
104 +0.14667431682811879
105 +1.8413716061387979
106 +-0.73704190708685524
107 +-0.5459640051456881
108 +0.1902442164432237
109 +0.43256944149056992
110 +-0.13865399797427888
111 +-0.15984005578750593
112 +0.57792142147226577
113 +0.42735035675985727
114 +-0.8095821291619234
115 +-0.053314378264652053
116 +0.037687085104561362
117 +-0.80278587251406386
118 +0.21256388883825486
119 +-0.64845804105929161
120 +0.75779105238233802
121 +0.15937143108130292
122 +0.078109294625808928
123 +-0.43374340350290519
124 +-0.078535255908791721
125 +-1.4605487743086902
126 +-0.8921438353229858
127 +0.30318351734678073
128 +-1.6820586360624521
129 +0.7440995798771225
130 +-1.4957296758626248
131 +0.69635351557731195
132 +-0.74808616095481517
133 +0.70337337187671933
134 +0.12543592071729651
135 +-1.3120655570123372
136 +1.1226706137471836
137 +1.3123194725022
138 +-0.050996080826512913
139 +-0.23704964721808644
140 +-0.13075194290109712
141 +-0.82808344028175429
142 +0.954969987902062
143 +-0.46033045372441994
144 +-0.0336337907263679
145 +-0.65086632486237328
146 +-0.50870925908185838
147 +-1.0368322877564171
148 +1.060921209750135
149 +-0.12113220516797148
150 +0.81390985879874422
151 +0.021114048571604302
152 +-0.55676132147280954
153 +-0.25451465363568404
154 +-0.43591730010097568
155 +0.016267650086005503
156 +-0.28022409612412014
157 +-0.21890871581769769
158 +-1.0279537144199291
159 +-0.61709339231143134
160 +1.2947675705440422
161 +-0.53758793067872568
162 +-0.8424225645689869
163 +0.28505967650415814
164 +1.1377412681051116
165 +-1.1903936625828624
166 +-0.16760519540369156
167 +-0.51672517983076582
168 +-1.4410062069775296
169 +0.64912733896181751
170 +-0.010181968401999733
171 +0.070070430914385945
172 +-0.60876220738658549
173 +0.38169291502837849
174 +-0.42415348779155143
175 +-0.10366855188606164
176 +-0.85563222803264294
177 +-0.95259203192324104
178 +1.0869132185297881
179 +-0.40914439204796804
180 +0.24761509019250272
181 +-0.017034471947838234
182 +-0.33627146571690469
183 +-0.38363191777060934
184 +0.49323921605726118
185 +-0.22010576132270465
186 +-0.10389555376178547
187 +0.026475317430417207
188 +0.87032885514925373
189 +0.51846065420039256
190 +0.29512571813528188
191 +-0.40563061158536534
192 +-1.0037899796873468
193 +0.73046692687245351
194 +0.7486217182077175
195 +-0.098351770892031398
196 +0.42063895242649563
197 +0.59752067586419089
198 +0.6353231009957101
199 +0.70498749278338979
200 +-0.33585078719487188
201 +1.1483128971079277
202 +-0.9659285810953786
203 +0.69896259547029749
204 +0.40484880377407695
205 +0.69951195636057273
206 +1.4947833615889048
207 +1.2627494740515313
208 +-0.98797820867400665
209 +-1.4749747258490002
210 +0.76146115006187232
211 +-0.91463065292414913
212 +-0.0012991384613505654
213 +0.75478117975045655
214 +-1.4377725951488169
215 +-1.9272205320015232
216 +0.26751607040958963
217 +0.052826781053761936
218 +-0.22031826165235971
219 +0.045166636310053569
220 +-0.75465353794254519
221 +-1.3265814214242639
222 +-0.14194104577888933
223 +-0.8532631843311651
224 +-1.4485242891508827
225 +0.4776365445415523
226 +-0.045619388818183268
227 +0.36873713349153853
228 +-0.84519114275332141
229 +-0.55955600795123861
230 +-0.84382557826485993
231 +-0.74952911032420533
232 +0.17687499044173549
233 +-0.64403001669936832
234 +0.30563431151805337
235 +0.2870202111139315
236 +1.6328528835750056
237 +-1.195886039594195
238 +0.79786871696004158
239 +-0.06901676894706904
240 +-0.0020852320159351536
241 +-1.2097989212166529
242 +-0.38891991541971049
243 +0.64248050612790419
244 +-0.059586673007696565
245 +0.076882517044117027
246 +-0.2249268088749391
247 +0.92675736729784974
248 +-0.0073044177507355108
249 +-1.7289137755804918
250 +-0.59065336117958889
251 +-1.6790079999216334
252 +-2.9788711002535884
253 +-0.58201783124889772
254 +1.4586078451784759
255 +0.061765674872841715
256 +-1.2344202173927936
257 +-0.99048499824808611
258 +1.2001446709024182
259 +0.17592737325019017
260 +0.058918314599973667
261 +-0.042786996527384935
262 +0.046783425660386277
263 +0.75944911282442007
264 +0.51865335892130116
265 +0.20480058469596923
266 +-0.90861872139023159
267 +0.46154728936452888
268 +-0.5836236511267866
269 +0.94778356281387455
270 +-1.0874408486552256
271 +-0.11085217680271221
272 +0.0036925854188497465
273 +-1.0993002204390079
274 +1.4839615260627694
275 +1.3227823714632487
276 +-0.41826061306343948
277 +0.70764749704872887
278 +0.34866734686052225
279 +-2.2768327548851608
280 +0.25920875040141228
281 +-0.049303465472119209
282 +0.088122200280775442
283 +-0.97312861446497678
284 +-0.23663284048018091
285 +-0.14920481126734703
286 +1.0451767347650505
287 +0.30475415057367006
288 +0.0052101702959871281
289 +1.2975435160868878
290 +-0.47440584337400288
291 +-0.32425903239478271
292 +-1.5193593274105026
293 +1.4088153906623453
294 +0.90068288010352837
295 +0.8540197711193811
296 +0.62244116714153142
297 +0.10933177945393809
298 +0.19938634504825886
299 +-0.20633874311846515
300 +-0.16102502226251048
301 +0.054664759054972721
302 +1.2278970685305992
303 +0.47433184016906083
304 +-0.038178457674034182
305 +-0.4576164222371491
306 +-0.49687649616367524
307 +1.2783706101659642
308 +0.42908638226748519
309 +0.065064364948816011
310 +-0.26655263115571604
311 +-0.8619947058953209
312 +-0.043254328490620476
313 +0.69296005238027059
314 +-0.29741101746082949
315 +-0.16553667301898733
316 +-0.15812724363323266
317 +0.09216853445204419
318 +-1.1673763039495175
319 +-0.17248119328892283
320 +-0.64209401633970409
321 +0.68687766382783266
322 +-0.58184562606913048
323 +0.45263736908505242
324 +1.170334469674315
325 +-0.23866051831839075
326 +-0.45944486807662732
327 +0.15816927776204809
328 +0.0084543772904273253
329 +-0.73504283679445193
330 +0.35913672962503113
331 +1.521625848998732
332 +-0.19976950024159551
333 +-0.15187486315972609
334 +-0.80898260554381196
335 +0.26254342375514883
336 +-0.96147897808146621
337 +-0.87099505464319871
338 +1.0408306129848948
339 +-0.73508622517771061
340 +0.89986430763373437
341 +1.2753655890509292
342 +0.23311315730237522
343 +0.47586244664250732
344 +1.6300907094547246
345 +-0.16497023355322796
346 +-0.50474125864920683
347 +-1.147279015669916
348 +0.04648333390404645
349 +1.272688352558925
350 +0.85508876492017472
351 +-0.81868349195465484
352 +-0.74092801993621926
353 +-0.43005255836545558
354 +0.26062244210127689
355 +-0.16237966644039592
356 +0.18631225143679001
357 +0.24921768730888882
358 +-0.22672171746079806
359 +-0.02131979326090757
360 +0.16828996460732878
361 +-0.053373573542178303
362 +0.38438467521230202
363 +1.390607666059863
364 +0.4781499438843666
365 +0.053726069181316893
366 +-1.28792026948734
367 +0.32458474319720931
368 +-1.5433405348498619
369 +-1.1969153292711154
370 +0.76147540728591046
371 +0.62732820073999429
372 +-0.11956660448411567
373 +-1.4338065157041278
374 +-0.31918874815738724
375 +-0.57884684383712703
376 +0.55587795376764915
377 +1.9206305946345792
378 +0.21199807701255208
379 +-0.69672889398872062
380 +-1.0403276854319323
381 +-0.04078873744449539
382 +-0.14593235480999231
383 +-0.98148016584793807
384 +0.11119363297240394
385 +-0.96742671793956792
386 +0.96465776099183753
387 +0.92952664508654848
388 +0.95327729689129836
389 +-0.40463566849412402
390 +0.45174883662995047
391 +-0.10153236801948141
392 +-0.31120686875476444
393 +-0.26539610149416093
394 +-1.0275311299606713
395 +-1.1695078316247569
396 +0.67938206309279969
397 +-0.15017690472233455
398 +0.18750591527201427
399 +0.81573354924249875
400 +-1.3923951159283043
401 +-0.65886477741026828
402 +0.15848911905154192
403 +0.33489520570772691
404 +-0.29708282031497285
405 +0.83437957556324882
406 +0.17981241339139639
407 +-0.95135520056486034
408 +-0.74107894788231454
409 +0.66151410711703296
410 +0.3839684085916541
411 +-1.4997730563762803
412 +1.1557994721467157
413 +0.53003251525597928
414 +1.1609514471802784
415 +-0.32601805379589094
416 +-0.24366299934585661
417 +-0.93614911245539145
418 +2.1622067957147841
419 +-0.15822841876524402
420 +1.4897404761584296
421 +-0.61469986077922667
422 +0.16524185217379728
423 +-1.5301944391723517
424 +-0.35781135882255116
425 +0.93146550533431627
426 +-1.1589509795893567
427 +1.0233565812944465
428 +0.32908261476178297
429 +-0.9529257873520246
430 +-0.45301469930718957
431 +-0.40509009628713466
432 +-0.033858738011997014
433 +-0.45310452577823579
434 +-0.69305379664675992
435 +-0.24749889049051949
436 +-0.840862619445918
437 +-1.0643328001764543
438 +-0.030946960894252674
439 +0.74349634746429505
440 +-1.2586542918323693
441 +0.013017371075364902
442 +-0.53604044927776318
443 +-0.80175307770052573
444 +0.72100223257172757
445 +-0.42040289135448677
446 +1.2365969339320153
447 +-0.65098372133513538
448 +0.33530802290397316
449 +-0.17781641007655
450 +-0.60086928004571216
451 +0.4835668782996555
452 +-0.11356308638882834
453 +0.48221800317893021
454 +-0.026714343303755765
455 +-0.81871501633738375
456 +-0.068969583138998314
457 +0.049535233621512895
458 +0.72802705512937138
459 +-0.67474222327908551
460 +-0.019881109018316342
461 +-1.2780199580182428
462 +0.52568715729470761
463 +-0.83962734770248548
464 +-1.4255304966453333
465 +-0.039947699182933519
466 +0.92205549793607045
467 +-1.2599420912812853
468 +-0.92925534709548796
469 +-0.63575269900603115
470 +-0.96174292918984972
471 +0.33933146801553882
472 +-0.67671591854918012
473 +-0.59996328251746767
474 +0.49866326746916834
475 +-0.61465116281411947
476 +0.36549439565176911
477 +-0.77530776230600884
478 +-0.97404061087608962
479 +-1.5052922165376483
480 +1.6413047443117599
481 +-0.28776363200303262
482 +0.23121936815589464
483 +-0.017468591734145757
484 +0.14801425813118946
485 +0.051893882543609965
486 +1.5834654904254073
487 +-0.90503380166617953
488 +-1.3655235501103828
489 +-0.91560501087185775
490 +-1.2102113765822273
491 +0.70537971509300057
492 +0.76375233025408173
493 +-0.8648281556097025
494 +-1.2518609183063851
495 +-0.31918988660607445
496 +1.2698658823826658
497 +-2.6010163359534215
498 +0.57539580647934041
499 +-1.1148578549352963
500 +1.0948295882932084
501 +-1.1088692953645076
502 +-0.28554884239314271
503 +-1.5033470011071026
504 +-0.99756037831512123
505 +1.4283291030874106
506 +0.86406323390096551
507 +-0.40186572255238534
508 +-0.85788963454703582
509 +-1.8580138138096864
510 +-0.40101324673910854
511 +-0.02135666307800977
512 +-0.072640968360302233
513 +-0.079487950533314616
514 +-1.0301396623492645
515 +-0.05173870676828881
516 +-0.025046480343056163
517 +1.1491854831939456
518 +1.6860505429183603
519 +-0.12039037115646768
520 +-0.69908510282865699
521 +-0.049406264630987032
522 +-0.53086889717507479
523 +-0.64052778641616726
524 +-0.040864547555394842
525 +-0.87345469136109011
526 +0.5258553085452885
527 +-0.077266419408263398
528 +0.2154166850547907
529 +-0.13745602772768323
530 +-0.5653175634652805
531 +-0.7362907639588776
532 +-0.17768039278379749
533 +-0.41678052628342632
534 +0.19019014873431453
535 +0.0066373216467133572
536 +-1.0077899822727405
537 +0.061737760528573875
538 +-1.00815648405594
539 +-0.47117346697259366
540 +-0.217980151696545
541 +-1.5738557355468079
542 +0.085993148440996758
543 +0.13275086622077939
544 +-0.1159879123719388
545 +-0.32218076135556134
546 +-0.27869173276938541
547 +-0.73470747305291018
548 +-0.19735910785022998
549 +-0.40873503340156547
550 +0.078948226974884461
551 +-0.88236418710349696
552 +0.18850481846119257
553 +0.11701067836158131
554 +-0.094318105539679398
555 +-0.30952500159328866
556 +0.40885130638908218
557 +-1.1871893514293759
558 +0.3598212113901722
559 +0.19277846055420189
560 +0.22029185836198881
561 +0.29111329759391141
562 +-0.46496662474061362
563 +-0.17826320530173026
564 +0.46744730872336249
565 +0.31889608915556261
566 +0.15730861062199356
567 +-1.0587877523116112
568 +0.40724968137903894
569 +0.86841396179350883
570 +0.76674812240266732
571 +0.18722458909381492
572 +-1.1539490912968722
573 +0.74630821352476595
574 +-0.10560585889625285
575 +-1.944107645317533
576 +0.34030215968539124
577 +-1.2697438712856466
578 +-1.1378270317887731
579 +-0.56194403788231384
580 +1.1386555138006462
581 +-0.3240941216559855
582 +0.24872462027946499
583 +1.5149622247903924
584 +1.4538078923649858
585 +-0.087096648265554355
586 +-0.21067172330140793
587 +-1.1133477317895708
588 +-0.61789013936535209
589 +0.38936650275809714
590 +0.3556913677425439
591 +0.10436539342933847
592 +0.84226806676355126
593 +-0.63831489138239472
594 +-0.036753412227385721
595 +0.60663517911038534
596 +0.48346471571081745
597 +0.86840414436404023
598 +0.33133162072762362
599 +-0.23649831036354207
600 +0.2938726362585809
601 +-0.76458780342099197
602 +-1.267511354595048
603 +0.48461787357395253
604 +-0.034542083216428161
605 +0.25428274282089119
606 +-1.313349561491628
607 +-0.28984392806194964
608 +-0.47416963553961627
609 +-0.68031607880767553
610 +-1.7912934551244357
611 +-0.28508761877221378
612 +0.78355864465777036
613 +0.33748115059635725
614 +-0.49646776347699995
615 +-0.0023755280926481045
616 +0.62616744542134017
617 +-2.2250444774652092
618 +-0.10681163610153448
619 +0.50562137318592759
620 +0.62069571171973004
621 +1.5120636586138572
622 +1.0594280908840457
623 +0.30060109631730969
624 +0.28381607075367654
625 +0.70666717924211375
626 +-0.46313958045674919
627 +-0.024660833346892709
628 +0.77335400561904866
629 +1.6567061444445788
630 +-0.13356316482097846
631 +-0.032534716493808569
632 +0.18017951418262471
633 +1.1362821231002607
634 +-0.016009558913344706
635 +1.2416519025716761
636 +-0.82614773011207165
637 +-0.15093401088834343
638 +-0.15754076729469074
639 +0.66081923437728884
640 +0.87031464370960132
641 +-1.2408329151133974
642 +-0.77521964257151943
643 +0.29848780997590568
644 +-0.54278242153325529
645 +-1.2538212004234917
646 +0.90337922680063931
647 +0.43664073084320132
648 +0.42861362703371969
649 +-0.3869875830697323
650 +0.85557967966464554
651 +-0.18839441721953781
652 +0.89884220062533227
653 +-0.73676598360359691
654 +-0.69005212130361193
655 +0.1774087604143294
656 +-0.55343129367819366
657 +0.54828285661471698
658 +0.21579266571745298
659 +-0.70824526022542811
660 +0.066947761765449115
661 +-0.25979722325236942
662 +0.70418916115064245
663 +-0.47222964838392301
664 +-0.3229306594947246
665 +0.91864253121915695
666 +1.7262451198877942
667 +1.7018143279490512
668 +0.067520910352136448
669 +0.20392352173120948
670 +1.336694092791763
671 +-0.10141360619991743
672 +-0.84234709170118927
673 +0.11203927071977297
674 +0.39485790423314621
675 +-0.68435129407232098
676 +-1.3626645855644273
677 +-1.2424659250481962
678 +0.60606401252653186
679 +-0.65974125793625915
680 +-0.11357539451725401
681 +0.19144537063565972
682 +0.52706750328997254
683 +-0.26638643168189685
684 +0.41417155654067755
685 +-0.70164604008723319
686 +-0.2795229857791991
687 +-0.79714296440415933
688 +0.90923157870361426
689 +-0.011811531703702962
690 +-0.57389213427650965
691 +-0.2671057049618919
692 +-0.16181080887870317
693 +0.54435358414670931
694 +-1.2030492133378179
695 +-0.81568882310024271
696 +-0.29353401522481309
697 +2.0113318221667864
698 +0.86607254794127231
699 +-0.089611454087717271
700 +0.63047328482126708
701 +1.7831408164107307
702 +-0.20747767158819722
703 +-0.32209689212001869
704 +1.0836681003777817
705 +0.45310342250028379
706 +0.60039286404114856
707 +-0.43115669589491745
708 +1.6516429910434822
709 +1.5673567766532757
710 +0.54932174083497953
711 +0.6489417519924725
712 +-1.853623311600366
713 +0.63943770096794939
714 +-0.17785582107286274
715 +0.41812873668166428
716 +0.63718442777433182
717 +-0.29901197574749333
718 +-1.4854595437178721
719 +0.35038662472086479
720 +-0.65984344334054268
721 +-0.28480301201847336
722 +-0.51760792397635691
723 +-0.2837337764412794
724 +-1.9358491392059929
725 +1.1439133739365228
726 +0.24842301642190173
727 +1.0285765824130457
728 +1.8329806907524342
729 +0.032242467669343057
730 +-1.7115906131649958
731 +-0.88801956855355058
732 +-1.1900437374555171
733 +-0.49232665123881247
734 +0.0878042318101733
735 +-1.8885099375680552
736 +0.35747722518938924
737 +-1.4794577559759579
738 +0.31123406824751582
739 +-0.097731049308595913
740 +-0.28949360372089816
741 +-0.057940821864350393
742 +-0.47845820751228141
743 +-0.53400727725161945
744 +-1.4616500622792965
745 +-0.017099477990256524
746 +1.6534686099652625
747 +1.877091991033927
748 +1.3411592648586712
749 +0.73025153915760643
750 +-0.66755045149982195
751 +1.4278680222898992
752 +-0.04640026223290554
753 +-0.057093584582614022
754 +-0.26539963623925483
755 +0.094716071241412458
756 +-0.38026941547995718
757 +-0.063581763928177146
758 +-0.91951020671977923
759 +-0.31235204302962066
760 +1.9383719534031709
761 +-0.054891417349560746
762 +-0.2064705594323418
763 +0.48101261921088645
764 +0.62552872791202663
765 +-0.94743069652473655
766 +-0.1695127645109781
767 +0.78778784612333608
768 +0.2383166684832832
769 +0.11107797357353728
770 +1.2713028676889577
771 +-0.56207705017877829
772 +0.079108853831781067
773 +-0.41506088568788174
774 +1.2117680666539175
775 +-1.6200653687317239
776 +-0.58960265671005452
777 +-0.45688321597762238
778 +0.58522840554827948
779 +0.52903778695953085
780 +1.1881753458442794
781 +-1.3542379284581534
782 +0.68506581216509244
783 +-0.25083862217296299
784 +-0.56848403683447901
785 +0.47305795489103536
786 +-0.7672747177288789
787 +-1.7430283847521246
788 +-0.32826725708895815
789 +-1.3271982441883807
790 +-0.58713486201974208
791 +0.34644200341921039
792 +0.28618467420577398
793 +1.3834225554251391
794 +-0.16951809712010252
795 +-1.3348140487018294
796 +-0.67581236608776574
797 +-0.81436074936583658
798 +-1.0775885417517173
799 +0.40350543649639192
800 +-0.56094427983958894
801 +-1.7149540376343138
802 +0.66141323436940536
803 +-0.092579846878260888
804 +0.32982021595471467
805 +0.10265416087723553
806 +0.5503124182881588
807 +0.04210553934560169
808 +1.0307934698312096
809 +0.36703027599791138
810 +0.33368089784641952
811 +0.34263772000128406
812 +-1.1537805313218197
813 +-0.12598235981294126
814 +-0.19985607485636142
815 +0.17494710991916715
816 +-1.0510181190543908
817 +1.322517312350211
818 +0.097757846225347542
819 +-0.98627404192118384
820 +-1.4181647886539681
821 +-0.23692154018475239
822 +-0.066962744386639947
823 +-0.59234246369643595
824 +0.086572551056439559
825 +-0.51176884825332503
826 +0.45462760563697024
827 +-0.56715273124579879
828 +-0.020503635497368715
829 +0.77136351270675629
830 +2.0242773135043319
831 +-0.88844703933873148
832 +-0.40439389106287299
833 +-0.72449227418913531
834 +0.69166842740189372
835 +-0.97966708889240595
836 +-0.41161856748002285
837 +-0.015305812558600947
838 +-0.80752396794574555
839 +-0.79176909956749408
840 +-0.38890615960114111
841 +-1.7233865408634028
842 +-1.2854291598232539
843 +-0.37007091460520264
844 +0.14335005406055984
845 +-0.15292544765833935
846 +-1.509476213876096
847 +-0.40888299299575442
848 +0.71648673803276364
849 +0.49764272243714675
850 +-0.057948414423553259
851 +-0.73787234786406941
852 +0.54083803508716022
853 +-0.47110584586063725
854 +-0.94929618783067915
855 +-0.65722395657565169
856 +1.2086289108149026
857 +0.19789536429357241
858 +0.97794270516728454
859 +-0.3951203218355353
860 +0.78989845269600989
861 +-0.49051121384778207
862 +-0.11940454981500932
863 +2.0129335404387572
864 +0.7066446293965537
865 +-0.4400611126876986
866 +-0.064714162670960043
867 +0.29036444168207992
868 +1.0290010094447317
869 +-0.40783820402905174
870 +-1.4525903202790622
871 +-0.23727299728804552
872 +0.023295419897724323
873 +0.10243449175867515
874 +1.0968189661565635
875 +0.27726612462098837
876 +0.6826064996132486
877 +-0.89716655011273083
878 +0.73198887974662863
879 +1.7498416933979375
880 +0.70619679585408368
881 +0.23599872192504806
882 +0.14402780388796946
883 +1.5292800384395915
884 +-0.82231757548306172
885 +-0.089366343436488929
886 +0.41130462642208304
887 +0.64672333194384657
888 +-0.36094068926144252
889 +0.26608851030950054
890 +-0.21718569310614105
891 +0.10667583228559233
892 +-0.094012835879013171
893 +-0.87322932822111954
894 +-0.0065943745779682133
895 +0.68715281952419072
896 +-0.73861174823096198
897 +-0.17789548614462017
898 +0.51994164344029548
899 +-0.80659310420561581
900 +0.15119497564407786
901 +-0.79659878327152223
902 +0.88413118764740595
903 +1.8198980632832156
904 +1.7670738498921403
905 +-0.19488465296029575
906 +0.68375323044114045
907 +0.11878818851660827
908 +0.099488280333701079
909 +1.3339530273815994
910 +-1.15967603609591
911 +0.96325953779460083
912 +-0.034344494360045594
913 +1.2523350243217435
914 +0.17926806717108829
915 +-0.58294656488636687
916 +0.25110970029684515
917 +0.63626561036540774
918 +0.040162649176262284
919 +0.41251126288110113
920 +-0.41390633546353672
921 +-1.7014391863344112
922 +0.79739374980696442
923 +0.61944913195625217
924 +0.13767675434783211
925 +0.06760314254283116
926 +0.86346089063565012
927 +-0.36883609610180035
928 +-0.56631216807703511
929 +-0.14264630970081796
930 +0.95459807913427752
931 +-1.1105198798500868
932 +1.0000625493716659
933 +-0.52867406912431947
934 +-0.90671499638672237
935 +1.0689319365141241
936 +-0.07287830198739069
937 +-1.0769664431631827
938 +-0.29609140347114132
939 +0.78893371471784901
940 +1.007553979900601
941 +-0.35240518342055432
942 +0.34863042189118743
943 +0.59487128085535379
944 +-0.51403926466788796
945 +0.29591040923114459
946 +-0.01525696538486949
947 +-0.40692964152135874
948 +-0.36904747486310502
949 +0.061098454879113188
950 +0.032401699267961596
951 +-0.40815642706468225
952 +-0.30325414781957855
953 +0.82180694565185641
954 +0.16878956716640198
955 +0.65894959364608818
956 +0.89713565739251311
957 +0.45446516543573839
958 +1.7133833554666396
959 +-0.67627179869310716
960 +0.67949717837671386
961 +-0.25228728780813359
962 +1.512101952877521
963 +1.4751986730449713
964 +-1.7548054577187382
965 +-0.92420114762354311
966 +0.64732037546444865
967 +0.75459666923108215
968 +0.6960383857027661
969 +-0.055114919442490494
970 +0.41709179775331423
971 +0.58241143771836723
972 +-0.057344104879887274
973 +0.87765276365412748
974 +-1.9067752410282415
975 +0.60163276183747916
976 +-0.93870916756587819
977 +0.8899876982141911
978 +-0.19922252525316791
979 +-0.78272667856122979
980 +0.34178188411102917
981 +-0.78142068386265917
982 +-0.78050973440343274
983 +-1.3439606799097199
984 +-0.013937757700728774
985 +0.44398114266030841
986 +0.88774040854788983
987 +-0.11200497314322487
988 +0.89149774505145229
989 +0.025195539283463853
990 +-0.067165023107764815
991 +0.47457903807493762
992 +0.85754995073291129
993 +-0.26591932008757163
994 +-0.18371853876067948
995 +-0.11564181207418169
996 +0.073578229595081104
997 +-0.67053020926596441
998 +0.79106063686339012
999 +-0.29757214714236241
1000 +0.3608999311730457
1001 +-0.61012159012643952
1002 +0.28021115666407415
1003 +0.30148803221496423
1004 +-0.29997090659955034
1005 +1.4859846698794124
1006 +0.30427347733118798
1007 +1.3983298991851631
1008 +0.80427582279780974
1009 +-0.53962360194671122
1010 +-0.3039912620651522
1011 +0.36224563022897077
1012 +0.058683696680855671
1013 +0.048635046323670834
1014 +-0.2096904242002513
1015 +-1.3585991430167046
1016 +-0.17162133015706121
1017 +-1.7447343282847423
1018 +0.33354628676140247
1019 +-0.60894481430008296
1020 +-0.59417531457426997
1021 +-0.17349924908881617
1022 +0.23349106362075506
1023 +-1.1419551303208519
1024 +-1.4411845182970902
1025 +-0.92253337733437513
1026 +-1.7840945598994491
1027 +-0.90512365581741538
1028 +1.5092749340545777
1029 +-1.0207675472637558
1030 +0.64480338314903651
1031 +-1.3019443768364041
1032 +0.3014591531758532
1033 +-0.29311314904810759
1034 +-0.045256681768612757
1035 +0.52135092007085926
1036 +1.5615776697953321
1037 +0.190860078143649
1038 +0.122486947308329
1039 +-0.84799858782475246
1040 +0.52390378292156792
1041 +-0.20334621347011639
1042 +0.71539550321293444
1043 +-0.026874468314669005
1044 +1.4462762602786594
1045 +-1.713845640089664
1046 +-0.26645422285880888
1047 +0.81099307956705013
1048 +-0.306639203385347
1049 +-0.68905176234106846
1050 +-0.2225926728449665
1051 +-1.1701855377039567
1052 +0.11424252659368923
1053 +2.0975566913994008
1054 +1.1061389743396772
1055 +-1.056528630157638
1056 +-0.83187810662001949
1057 +-0.37645873973751814
1058 +0.94580693097878299
1059 +-0.754041428860586
1060 +-0.62550682912104749
1061 +0.81270665456224078
1062 +0.78964717463703105
1063 +-0.32479485122497354
1064 +-0.96925362711967578
1065 +-1.3575708309065468
1066 +-0.6284796270526517
1067 +-1.9990915905032944
1068 +0.74924646470973355
1069 +-0.60152615753333794
1070 +0.46826816704800134
1071 +1.7490952053393007
1072 +1.1658768705832985
1073 +-1.1299867053563064
1074 +0.87385632150057435
1075 +1.1481093491002476
1076 +-0.7267135357945218
1077 +-0.91623549697796003
1078 +-0.095926478849922739
1079 +-1.4921253171893556
1080 +1.4394668406846503
1081 +-2.3861700596621653
1082 +-1.2126163503776846
1083 +-0.28688082167451079
1084 +-0.23204186684376768
1085 +0.18146807540040402
1086 +0.28148982427171204
1087 +-0.19754019710321505
1088 +1.083570293154374
1089 +-2.0197851265881517
1090 +0.0098309298881875933
1091 +-0.70119679418738079
1092 +0.13961799087184712
1093 +0.21965669780918459
1094 +-0.83261239556395628
1095 +-0.57885344994672472
1096 +0.7263954797701192
1097 +0.32238961274552497
1098 +-0.58525787874099033
1099 +1.7729106173476497
1100 +2.160857696716894
1101 +-1.4900972355572641
1102 +0.32644341846558772
1103 +2.5619016264166627
1104 +0.90263158033463187
1105 +0.25683913684739723
1106 +-0.21458511020456236
1107 +-0.55533327776734298
1108 +-0.20652070973334483
1109 +-0.53424627508606126
1110 +0.72980872100731509
1111 +-0.36903666537390417
1112 +-0.39978033858156403
1113 +-1.0818806641876366
1114 +-0.035505599216940749
1115 +-0.78870574451269715
1116 +-0.15066029385209267
1117 +0.91364750861256183
1118 +0.32857297536371416
1119 +0.44041530514687061
1120 +0.3087261071625963
1121 +0.058720205880406003
1122 +-0.092669514261450314
1123 +-0.23347628333502138
1124 +0.60098328394489942
1125 +-0.83190283931725006
1126 +1.0640543732864194
1127 +0.037513218841477902
1128 +-0.5826960496210486
1129 +-0.37564419944244942
1130 +-0.51738261709797961
1131 +0.13410350879333807
1132 +-0.53708893836944183
1133 +0.87811118627865636
1134 +-0.59425821724907246
1135 +-1.7445926523257689
1136 +-0.61475408354692973
1137 +-1.6906291662572006
1138 +-0.026318501395127238
1139 +0.94955832782606997
1140 +0.58660047902240187
1141 +-1.1635368295570594
1142 +-0.67247662227129779
1143 +1.5856293004165984
1144 +0.30715793176288103
1145 +0.013747298686797731
1146 +0.94567841535836628
1147 +2.1904325835169707
1148 +1.2994014158079885
1149 +0.15033229730987341
1150 +0.35622791377755897
1151 +0.59657351266491521
1152 +-0.56162414039809883
1153 +-0.96016678414306311
1154 +0.058150518117308848
1155 +-0.83649035935294502
1156 +-0.044787882166088366
1157 +0.093538167014867335
1158 +1.9965901712175225
1159 +-0.7908138920608182
1160 +-0.10352858095757646
1161 +-0.13902728706157766
1162 +0.39660327072052576
1163 +0.91700885467672755
1164 +-0.41672244768910016
1165 +-0.69191744630830487
1166 +-1.3840467685361726
1167 +-0.81161113897515791
1168 +0.48436693992355317
1169 +0.049663476712144911
1170 +-0.85138090899462449
1171 +-0.30734157178158683
1172 +0.036281226684582654
1173 +0.4215398545850727
1174 +-0.468155135585969
1175 +-0.18969495984670956
1176 +-1.4151493474268271
1177 +-0.94942449128120288
1178 +1.3740152249043391
1179 +-1.9136662718444226
1180 +-0.31411651543615515
1181 +0.21490087988453183
1182 +-0.33074459700560971
1183 +-0.70897643240140418
1184 +-0.043879919949313999
1185 +0.0057271523554019658
1186 +-0.059020275423258418
1187 +-1.5338920922289432
1188 +-0.11914618982390961
1189 +-0.72145523872792627
1190 +-0.45646870143418006
1191 +0.200392062289346
1192 +0.5364423347240056
1193 +0.73933208860637745
1194 +-0.39386179927484888
1195 +0.75142058931217104
1196 +0.95406488618522267
1197 +0.93816475196600579
1198 +1.1587326778256288
1199 +-0.11369012270415318
1200 +-0.13459717488595513
1201 +0.68110478035481314
1202 +-1.0984792822059775
1203 +0.18442169304643752
1204 +-0.42291374755695277
1205 +-0.28700208927678922
1206 +-1.3702331324410939
1207 +-0.73538650601907329
1208 +-0.0071255411108585073
1209 +0.73640433825509954
1210 +0.81916991616212231
1211 +-0.055943615352930444
1212 +-0.14222985857683398
1213 +-0.64579183542523821
1214 +0.32743660913306671
1215 +-0.182606645855593
1216 +0.47402977483369058
1217 +1.3425140227535877
1218 +-0.016093137259627618
1219 +-1.1734388451693682
1220 +-0.69580218323940202
1221 +-1.1834601909359741
1222 +-1.001633158631412
1223 +1.1281900703830223
1224 +0.20798906155222469
1225 +-1.2876586456323325
1226 +0.58727367444954293
1227 +1.1078043074968045
1228 +-0.30845497581346443
1229 +-0.57535601889942234
1230 +-0.27864481639763039
1231 +0.24861858821448363
1232 +0.53598143897277217
1233 +0.97172979534745185
1234 +1.0111911850733026
1235 +1.0044544879699282
1236 +1.1679130444980541
1237 +0.58567435268168466
1238 +-1.3055221512238258
1239 +-0.10648464068645502
1240 +0.2823465077901724
1241 +-0.31534414859253945
1242 +0.76930090069990487
1243 +-0.29001521714523215
1244 +-0.74708987311055686
1245 +1.1927376722122607
1246 +0.57255967413193343
1247 +0.19317306863498079
1248 +0.76845320359650049
1249 +0.88077133564655086
1250 +0.29171465641568067
1251 +-1.9837371776394699
1252 +-0.60587645553996039
1253 +-0.40013424053851676
1254 +-0.8562203010130609
1255 +0.18486725923597636
1256 +1.0346955070957562
1257 +-0.41199697484511105
1258 +-0.9599541127351483
1259 +1.7598997431530772
1260 +-0.40941788684905173
1261 +-1.1103386557437098
1262 +0.22859136850942885
1263 +0.39160956451996676
1264 +-0.60890626540653359
1265 +0.69576647229678401
1266 +-0.40946548951443279
1267 +-0.77076185238228845
1268 +0.16096303487231936
1269 +0.64756146797281722
1270 +-0.51119480933664374
1271 +0.27902684566834074
1272 +-0.064764186336906907
1273 +2.2264714450765899
1274 +-0.63936128104271039
1275 +1.2611105485932175
1276 +-0.038361455455880419
1277 +-0.10396660956197483
1278 +0.64248787977134292
1279 +0.78489764026817277
1280 +1.1044903076046289
1281 +0.2986682411376933
1282 +-0.50595706988787748
1283 +-0.44556151873227756
1284 +0.43535192992440724
1285 +0.48758803233336162
1286 +1.1455626430059171
1287 +0.35964509412966394
1288 +0.88071624389758962
1289 +1.2653401562894007
1290 +0.15131422304257419
1291 +-1.235349315269934
1292 +-1.0112992552834996
1293 +-1.2493486135148271
1294 +1.4422134060028253
1295 +-0.7810185682590377
1296 +1.1493645358243429
1297 +0.55785503865268093
1298 +1.5842883312983449
1299 +0.97320730163578351
1300 +-0.087989097616252412
1301 +-0.17604912969326983
1302 +0.087137456850539308
1303 +0.16464541210341524
1304 +-0.4471544442615874
1305 +-0.01765094172889705
1306 +1.3433066973361178
1307 +-1.4607917877481393
1308 +0.24409089829922137
1309 +-0.79144337045198543
1310 +0.17464518984677396
1311 +0.73186596809967119
1312 +-0.039253808190231478
1313 +0.65578717115163043
1314 +-1.3096833911354888
1315 +0.96688811954529608
1316 +-0.51519358125611259
1317 +0.54404834291394055
1318 +0.16447473296225426
1319 +-2.1320722227549727
1320 +-0.70212916786255219
1321 +0.21494201709297694
1322 +1.4167712709314435
1323 +0.27894758550272819
1324 +0.24512277067093124
1325 +-1.2472072597160664
1326 +1.3152701205339234
1327 +1.6992351418016798
1328 +0.038130423645543803
1329 +-0.1998938643392649
1330 +-1.4942599103263601
1331 +0.86186452923948087
1332 +2.5925139931491401
1333 +0.79407077730064202
1334 +1.3631974575391859
1335 +0.59473726360086177
1336 +-1.0251041438184947
1337 +1.4038807600413785
1338 +-1.2941177532951456
1339 +-0.21386898347285346
1340 +0.29694131162881249
1341 +0.8916252861502173
1342 +0.42101543396522667
1343 +0.38246128750957503
1344 +-0.70486580873106075
1345 +-1.1848236719695333
1346 +0.067812366631050558
1347 +-0.63934194382447296
1348 +-1.1695163943324196
1349 +-1.1514150972580479
1350 +-0.44583303567976512
1351 +-1.6766054202120979
1352 +-1.2881885993075164
1353 +-1.5917985523335889
1354 +0.1951492730800734
1355 +0.41191729622504125
1356 +1.9367601688661034
1357 +-1.5281448652930678
1358 +-0.70528184196933807
1359 +0.95073320459402078
1360 +-0.21112733808062506
1361 +-0.31353927074337673
1362 +1.6549778678114553
1363 +-0.32991949998689724
1364 +-1.1191974683156669
1365 +-1.2818198734498649
1366 +0.34391599248680199
1367 +0.30532260153312901
1368 +-1.2817468415601512
1369 +-0.93596382263451527
1370 +0.52124604708841926
1371 +0.55023244703222085
1372 +-0.58051097428130838
1373 +0.57205509635492124
1374 +0.51833013277654982
1375 +-1.54861428731138
1376 +-0.27756120655213007
1377 +0.38323257260822424
1378 +-0.49433304581121384
1379 +-1.8420613727141339
1380 +-0.25643730134836096
1381 +0.69979833374163147
1382 +1.441880708563652
1383 +-2.046654706796708
1384 +2.6810422055796828
1385 +-1.2932539253030277
1386 +1.1128651855466245
1387 +1.4151177721763721
1388 +1.1330748050517423
1389 +0.17912802307072598
1390 +-1.2577257397197319
1391 +0.69425737570882629
1392 +-0.75258787839368479
1393 +-2.626425049565265
1394 +3.3217633355414868
1395 +0.96576787066819225
1396 +2.3980854906819524
1397 +-1.2392742702859125
1398 +1.9833378943760698
1399 +2.179503151307431
1400 +2.1814820814151448
1401 +-0.020228161838577632
1402 +-1.6337763964141541
1403 +-0.23162357095410638
1404 +-2.8740019785633764
1405 +-2.3961806978034956
1406 +0.14412499569164969
1407 +-1.3766547763248951
1408 +-0.21648516746240873
1409 +-0.13418123867054188
1410 +2.4642114844536978
1411 +1.7487032138476708
1412 +-0.050319471302029628
1413 +1.5705868614624761
1414 +-0.99507037577068558
1415 +-0.41426788438446105
1416 +1.1159669533997605
1417 +-1.4747412342938671
1418 +-0.32444000462441447
1419 +-1.5184107913100622
1420 +0.14709030159039996
1421 +1.8473163908150534
1422 +-0.86345697928247522
1423 +0.26675182137536763
1424 +-0.97547245613688316
1425 +-1.2355884572632969
1426 +-1.3291945506669567
1427 +1.5946026021566126
1428 +2.6336715329200473
1429 +0.60046635453681507
1430 +-0.8382068856877456
1431 +0.82535834468689129
1432 +-0.3678639747449135
1433 +0.88672613959696489
1434 +0.32281151023292942
1435 +0.30133719402923459
1436 +0.62351823629790859
1437 +-0.56291306069973845
1438 +-0.38123233720742722
1439 +-1.6139399087359338
1440 +-0.42585834594209865
1441 +-1.3580876676030293
1442 +-0.13221828712002029
1443 +-0.90383819812236776
1444 +0.10610994576558515
1445 +0.42827191326379638
1446 +-1.2722334986679156
1447 +-0.74241161984035153
1448 +-0.85385518444360231
1449 +0.69093982651774399
1450 +1.5476742652944229
1451 +0.81291960813449116
1452 +-0.31636546979000085
1453 +1.3450746652766534
1454 +-1.4075786262643648
1455 +1.4554455806164091
1456 +-0.6399193333823755
1457 +-2.6912314953021705
1458 +2.9788713749413223
1459 +2.0120673571824255
1460 +-1.3310900481754639
1461 +0.22710294549050564
1462 +-0.25510067199087055
1463 +0.13173403892545046
1464 +-1.6923220856444829
1465 +-0.78776288019031437
1466 +0.54460635709772565
1467 +0.25687079770915111
1468 +1.2955090862202643
1469 +0.095774071533298241
1470 +2.4530356924433536
1471 +-0.80973537686645192
1472 +0.30042475817837067
1473 +-2.0654381000899615
1474 +-1.4248452146857609
1475 +1.538021065362702
1476 +-1.0843537480872478
1477 +0.61795943792307251
1478 +-0.058777070139556999
1479 +-1.1130603838722903
1480 +-0.3623892437359903
1481 +-0.52342432262971184
1482 +-0.48285552036514662
1483 +0.75318707414056818
1484 +0.64344553194752607
1485 +-0.54042644916173799
1486 +-0.83752329654846835
1487 +0.27206797439085145
1488 +-0.080504180819819623
1489 +0.91662387196817507
1490 +2.3561949600436227
1491 +0.8604318729178313
1492 +-0.024595685155473182
1493 +-0.1561893146281331
1494 +-0.79418401489204593
1495 +-0.83344346759472177
1496 +-0.91750495384420316
1497 +-0.35490749052984105
1498 +-0.37524671983817137
1499 +0.66664513512752666
1500 +-0.33855518613561808
1501 +-0.15903506322540392
1502 +-1.0100325051156824
1503 +1.4083268879045301
1504 +0.46016941300626346
1505 +1.5692093977279098
1506 +0.74265783629080429
1507 +1.3651661741700822
1508 +-0.22266066272284163
1509 +0.66403753578587121
1510 +2.4448472404408559
1511 +-1.2528861910421369
1512 +1.2316034527551023
1513 +1.7789012093765593
1514 +0.46615022751410018
1515 +0.81486506975882511
1516 +1.3324769957317593
1517 +-0.68939788055189766
1518 +0.43655852234476439
1519 +-0.87309552474653662
1520 +-0.67047256885626128
1521 +-0.60079470896634068
1522 +-0.12879589631788169
1523 +0.14819640537752962
1524 +0.42600256084777294
1525 +-1.2673853018425578
1526 +1.8444111162849788
1527 +1.1608380662418261
1528 +0.73747245428963215
1529 +-0.34307573683977344
1530 +-0.075719950587571916
1531 +0.52235491760204211
1532 +0.38773971661644774
1533 +-1.5003873611251723
1534 +0.70887168834772574
1535 +2.7273530244607729
1536 +-2.0233445923761431
1537 +1.1657959566774441
1538 +0.43539243691661195
1539 +-0.11459456605973209
1540 +1.4910759055164771
1541 +-1.2896920963652536
1542 +0.18970958821157932
1543 +1.5727782431958168
1544 +-0.20544909365779221
1545 +-0.43302683499344857
1546 +0.1284748477891699
1547 +-0.43479392729428756
1548 +1.5204388364371746
1549 +-0.90639323834997654
1550 +0.88531654941688998
1551 +-1.2344662250833955
1552 +0.68345028436768585
1553 +-0.093739056995106415
1554 +-2.4722790155007552
1555 +0.0034561734860460609
1556 +-1.1198638094231377
1557 +-0.46004972422328638
1558 +1.5947840447277146
1559 +-1.1776903134048573
1560 +-1.1189613391380937
1561 +1.541339734996398
1562 +0.13612503098864595
1563 +1.6326728993483606
1564 +0.36125374548149375
1565 +-0.91942385372497493
1566 +-0.059118769564244035
1567 +1.2521542382092019
1568 +0.97077220729654445
1569 +0.010899452294038471
1570 +0.057999416497773355
1571 +-0.097594502133349553
1572 +-0.52812907188028468
1573 +1.7767401836927139
1574 +0.017046431144490386
1575 +-1.0669080226763081
1576 +-0.44737651031401632
1577 +0.6917254622000395
1578 +0.60476873342735371
1579 +-0.11528717212244856
1580 +-0.58573007854153025
1581 +0.031060271932834511
1582 +-1.4302594867508143
1583 +-1.1677296432525999
1584 +0.74752058347339334
1585 +-0.42874995421105866
1586 +0.3467459778528455
1587 +1.0820296910721323
1588 +0.59100389791897034
1589 +0.028202156273404
1590 +1.8459857324909965
1591 +0.64003115351873563
1592 +-0.31960557499179326
1593 +0.67541209279586356
1594 +0.37690030064032881
1595 +-0.74478412199652588
1596 +0.074119557690954269
1597 +-0.13168949904871433
1598 +-1.6434501288376275
1599 +-0.14642133269523691
1600 +-0.24073390478822937
1601 +-0.36999683344802348
1602 +-1.3918440382047992
1603 +-0.30720545950362099
1604 +-0.024767330848989771
1605 +0.097271628344478722
1606 +-0.94163156285925809
1607 +0.54752004044397429
1608 +-1.01250678685768
1609 +-0.18175179127116467
1610 +1.1058728771775201
1611 +-0.58571130942388105
1612 +-0.42552778118602252
1613 +0.91236343927382435
1614 +-0.31613111126765359
1615 +-0.237941628640856
1616 +0.19143665551192404
1617 +0.85557790580778381
1618 +-1.7861608365067008
1619 +-0.73567196889408437
1620 +-0.89134070411703714
1621 +-0.96362580368046447
1622 +-0.76243016099181515
1623 +-0.74441215595587529
1624 +0.27930902477161274
1625 +-0.76735074321439156
1626 +0.11684955124948199
1627 +0.35226514176914531
1628 +-0.60172503805074407
1629 +0.118807888093172
1630 +1.3468664969747992
1631 +0.28633013968263032
1632 +-0.52634709431985471
1633 +-0.044106593708138152
1634 +-0.73775571816288155
1635 +0.23170470059548354
1636 +0.70396388598210624
1637 +-0.65015504004144453
1638 +-0.1585131044289331
1639 +0.89078039780555718
1640 +-0.38992520484676718
1641 +0.15938663857894803
1642 +-0.79038765516282483
1643 +-0.63755649482659682
1644 +-0.39545333246047154
1645 +1.6790652923273208
1646 +-0.33434146928302355
1647 +-0.42820386481061973
1648 +-0.44924801061814995
1649 +-0.12340881064007629
1650 +0.52854925289209231
1651 +0.15871378761807226
1652 +1.5979055224545704
1653 +0.18912437076364486
1654 +1.1977309847700521
1655 +0.24423757401436205
1656 +0.51217944844967578
1657 +-1.1729609266512777
1658 +-0.097387509648897932
1659 +-0.047000469200227497
1660 +-0.18667240885377942
1661 +-1.7010814698204106
1662 +0.77513482977752168
1663 +-0.32498895256317001
1664 +-0.3615690299091639
1665 +-0.20263476416403753
1666 +-0.1763021606775646
1667 +0.33624489384504647
1668 +-0.99349276498473249
1669 +-0.74140540765602281
1670 +0.24511489750117105
1671 +0.12571403012491855
1672 +-0.28399665783470174
1673 +-0.43181918821942172
1674 +-0.62719937519216029
1675 +-0.034638131619142143
1676 +0.89886331068956238
1677 +-0.80239423300620605
1678 +1.1934860193928307
1679 +0.69214734845104253
1680 +-0.35552976621373839
1681 +0.63290951679416707
1682 +-1.1524997638501917
1683 +-1.4111280767051129
1684 +-1.1048933401709506
1685 +-0.35062919513041857
1686 +-0.27062056334204054
1687 +-0.42505471211316831
1688 +0.092668986465571174
1689 +-1.727994256046224
1690 +0.44953801054812675
1691 +-1.2259146382061148
1692 +-0.58064815798946734
1693 +-0.35377371719013451
1694 +-0.98820758848219115
1695 +-1.1857189098319558
1696 +-0.88765378959072516
1697 +-0.00064315901622635785
1698 +0.52334640089736773
1699 +0.49358297628226927
1700 +-0.82961676307596222
1701 +-0.66016116526204394
1702 +-0.7643674802787086
1703 +0.38815433499386243
1704 +-1.6740965713871616
1705 +1.1153343989262952
1706 +-0.42851133382592388
1707 +-0.68462062788719702
1708 +0.30815398781165743
1709 +0.89755345046320678
1710 +0.30555223834308498
1711 +0.89969014564949834
1712 +0.12419510446979833
1713 +1.0319986598037139
1714 +1.0620935774120606
1715 +-0.07545257685236155
1716 +1.2179581938595563
1717 +0.1523755277929327
1718 +0.083387001304024197
1719 +-0.75111205029877504
1720 +-0.22865397410357455
1721 +0.64052461672877559
1722 +-1.0496310349835178
1723 +0.54672652709649894
1724 +0.29509154723414915
1725 +0.23307948627351166
1726 +-1.7327742792686476
1727 +-0.079608944664893599
1728 +0.55945290705875095
1729 +-0.62908543806700179
1730 +0.085117903050788826
1731 +-1.9263378337021033
1732 +0.6195153721277169
1733 +-0.58261881191615439
1734 +0.77850210306312773
1735 +-1.6066163424285309
1736 +0.65321688899307784
1737 +-0.20685654479349369
1738 +0.73064816830846524
1739 +-0.80892223905577942
1740 +-0.5354583509609947
1741 +1.9584238788817796
1742 +-0.78140927570364693
1743 +-0.65593961253653865
1744 +-0.24691968269109704
1745 +-0.91590192064000631
1746 +1.0885052872102032
1747 +1.5880285279581714
1748 +-0.66449862834169693
1749 +-1.617099459640966
1750 +1.1655464683617764
1751 +1.1082051106267625
1752 +0.82499226414386895
1753 +1.1423568202088337
1754 +-0.84305124347290938
1755 +-0.15393615349928752
1756 +-1.2981754747637155
1757 +-1.3572770366003184
1758 +0.9762948303650667
1759 +-0.64824397823872792
1760 +2.2029169024465318
1761 +0.088270397082837918
1762 +-0.64382781476909046
1763 +0.80766163126621915
1764 +1.7852342086195303
1765 +0.51326901867212693
1766 +-1.2175919708244001
1767 +0.38668476796837592
1768 +1.368205752107259
1769 +-0.4856082011536681
1770 +-0.74838262686423862
1771 +0.99212440748477226
1772 +0.14486907649270156
1773 +-1.0222375688100291
1774 +-0.34667014313041306
1775 +-0.6827004681852733
1776 +0.27832574041412977
1777 +0.10698473278850329
1778 +1.0024054149917565
1779 +0.62824596306568026
1780 +-1.3369738500373496
1781 +0.37372075823018913
1782 +0.79470965704614771
1783 +0.4073386327047363
1784 +0.8910425259066681
1785 +-0.46188302935510717
1786 +-0.7938066307483328
1787 +0.79671705581409813
1788 +-0.89086316895760176
1789 +-1.8274850135811096
1790 +0.96104451514944245
1791 +-0.66141873090752601
1792 +-0.26987324716728378
1793 +-1.2376251205627453
1794 +-1.2009889343236937
1795 +-1.0653831944463359
1796 +-0.32752639759341262
1797 +0.34789385398584782
1798 +-2.0404626952146852
1799 +0.74961503138939101
1800 +-1.1344952759621525
1801 +-1.0289228234726586
1802 +0.67010990225682621
1803 +-0.061402564231558578
1804 +-1.4181470656066932
1805 +1.7788750622810541
1806 +-0.86091983481508128
1807 +0.25726559351196715
1808 +0.20407804052457504
1809 +1.3416713501221782
1810 +-0.42941734818021982
1811 +0.9592126385637465
1812 +-0.68713617469554222
1813 +1.0500099062098267
1814 +-0.70050810355936044
1815 +-0.32309417661214596
1816 +1.71286497172801
1817 +0.31253682252666004
1818 +0.11205062153163776
1819 +2.038461257959717
1820 +0.36816703377537963
1821 +-0.77730646290686589
1822 +0.71022379079942233
1823 +-1.0998945330239547
1824 +1.0777749191718111
1825 +1.1560066135627827
1826 +-0.53907947130507938
1827 +-0.57956527095099053
1828 +0.17280881929149441
1829 +0.022716629689355033
1830 +-0.84589691970967629
1831 +0.50731790496611429
1832 +-1.7489750484091746
1833 +-0.39202067446895239
1834 +-0.35676625311877069
1835 +-0.23268294127441672
1836 +0.27655452450652485
1837 +-1.0327676772819323
1838 +0.51739044015719893
1839 +-0.14306204818238177
1840 +-0.53043743121136677
1841 +-1.1140901807995593
1842 +-0.98823852952112601
1843 +0.317974186716177
1844 +-0.79769344455128843
1845 +0.063889408933866937
1846 +0.88205703973525829
1847 +0.86459915408052901
1848 +1.3089062129003104
1849 +-0.24625333160871288
1850 +-0.90852182886331656
1851 +0.88015004862528301
1852 +0.27491803585072283
1853 +0.95201526866324249
1854 +0.01935910191272534
1855 +0.99952216215835565
1856 +0.72086172135703197
1857 +0.60945251847673554
1858 +0.42767398171739696
1859 +0.33504225334995713
1860 +0.19736927074593044
1861 +0.18839191353597007
1862 +0.77879882856895866
1863 +-0.39055217302534601
1864 +1.3532228094764531
1865 +-0.076912783531091253
1866 +0.79995315440917292
1867 +-0.062733012378269476
1868 +-0.18499327442963695
1869 +1.5898299369893936
1870 +-0.25041705200235304
1871 +-1.0441545115248936
1872 +-0.5911234634684206
1873 +-0.25462426897163154
1874 +1.7737944112871908
1875 +0.19473607950885349
1876 +0.82497773633128779
1877 +-0.86167971388647924
1878 +0.31732624275778504
1879 +0.58308566398255857
1880 +1.5302028483066084
1881 +-0.61133741534253239
1882 +0.54162247137931763
1883 +0.27248871656132934
1884 +-0.85739370890807887
1885 +-0.0065809659806119209
1886 +-0.20943879900596979
1887 +-1.8887061515231258
1888 +0.55221310793418099
1889 +0.4910772434193853
1890 +-0.37397004721721361
1891 +-1.1384228969964476
1892 +1.3072558205207745
1893 +0.25024318422806446
1894 +0.90621743198874816
1895 +1.2551559206284773
1896 +-0.461431419806973
1897 +0.73106727112689451
1898 +-0.20235339412475314
1899 +-0.043811809634004176
1900 +-0.061951728235305238
1901 +0.0089156560409624323
1902 +0.90694153919924303
1903 +0.11088050011638247
1904 +-0.11277945911636308
1905 +-0.20683391005586219
1906 +0.2734290422101372
1907 +-0.67126957557424882
1908 +-0.37440598172793771
1909 +-0.029600291262285063
1910 +-0.41209605815801675
1911 +-0.077841027333458421
1912 +-0.43679652638915856
1913 +1.4710940530305112
1914 +1.0608605555878081
1915 +0.3749529504075228
1916 +-0.032852699261140858
1917 +1.7279856198969148
1918 +0.28800954377162591
1919 +-0.063218514038183113
1920 +0.25996213143912228
1921 +0.25762750503402465
1922 +1.1317723760524896
1923 +-0.0055501165221988162
1924 +1.6961376685117606
1925 +-0.76031449840615251
1926 +0.61351951263099613
1927 +-0.85106743023012255
1928 +1.5751705763065202
1929 +-0.29120089734568061
1930 +-0.041776738817492456
1931 +0.81185294411312536
1932 +1.0968523697009358
1933 +-0.96799935145417337
1934 +-0.29652959823106889
1935 +-1.1983804167155092
1936 +0.13191512693540935
1937 +-0.077808445943245028
1938 +-0.28518475420558592
1939 +-0.55791423949372787
1940 +-0.30722463789351384
1941 +-0.59323507456136204
1942 +0.43516818021489428
1943 +1.2137181341977779
1944 +-1.5819870918179737
1945 +-0.092329235001104806
1946 +-0.35003678680653927
1947 +0.42593824354501864
1948 +-0.78112569402454257
1949 +-0.11191385197245346
1950 +-0.83747833317871967
1951 +0.5819761344929788
1952 +0.090832205295858545
1953 +-0.11887628192693424
1954 +0.30010270874320005
1955 +-0.18043501518781943
1956 +-1.1723794844641189
1957 +0.48323683591704891
1958 +0.23682567480977409
1959 +-0.1093290118146749
1960 +0.76043664279352852
1961 +0.94644479615671795
1962 +-0.84687788551337495
1963 +-0.61024775601215586
1964 +1.2349593288369913
1965 +1.1792510767650644
1966 +-0.61635511508697138
1967 +-0.98293326012226589
1968 +-0.53316581577148603
1969 +-0.40911831132050097
1970 +-1.3019577112415364
1971 +0.036872927514645139
1972 +-1.0680231963906384
1973 +-1.0286155758564484
1974 +0.80686142603067956
1975 +-0.58272370545154462
1976 +-0.051273649605059937
1977 +0.53697288926894204
1978 +0.68325992503813782
1979 +-0.26781690372992273
1980 +0.045716959050145577
1981 +-0.64512099858786454
1982 +1.3951954344439785
1983 +0.55437443505122397
1984 +-0.90387882793391472
1985 +0.013393490382004533
1986 +0.59380058757859966
1987 +0.39932501303648721
1988 +1.4746163434106738
1989 +1.1778938438795277
1990 +-0.46016755066189374
1991 +-0.066460779361414202
1992 +-1.0636448459167664
1993 +0.22303309417520065
1994 +0.13623184275820452
1995 +2.2222127853467022
1996 +0.1019135694411227
1997 +-1.9073690712307481
1998 +-0.65496704966752139
1999 +0.11910853029640156
2000 +-1.1745386656412147
2001 +-0.8175532584911519
2002 +-0.3356788758090633
2003 +0.32521062135058032
2004 +-0.13883869483251027
2005 +-0.77050619893932515
2006 +0.69841210777251517
2007 +-0.45769523122367956
2008 +-0.41572169327336711
2009 +-1.1470414662656414
2010 +-0.66612616843350259
2011 +0.56641522353594498
2012 +-1.3544018028328011
2013 +-0.052589884265936838
2014 +0.62582310774427086
2015 +-0.31032970351254907
2016 +0.20983604803513167
2017 +-0.90212959196038855
2018 +1.0920355825599781
2019 +0.93926320011942477
2020 +0.21041605396832153
2021 +-1.4519189883499399
2022 +-0.90860730133009959
2023 +0.87059065330770169
2024 +1.5188725338933571
2025 +0.28379089572376415
2026 +1.1329801007860913
2027 +-0.54455210071829963
2028 +-0.15988827352839655
2029 +0.011004438152815807
2030 +0.37126949957575456
2031 +-1.2715673550937097
2032 +0.82711395465413673
2033 +1.1572567715310498
2034 +-1.0065161251332093
2035 +-1.1995288484909397
2036 +0.32935932268030238
2037 +-0.57230966390653615
2038 +-2.0700917617529848
2039 +0.79775181719694188
2040 +0.15966624086690145
2041 +-0.43556836131989346
2042 +1.9428347303135951
2043 +0.14747604177831655
2044 +-0.71365871930363356
2045 +0.10577230788971725
2046 +-0.9473585871229957
2047 +-0.69158730542749036
2048 +0.36160047615495561
2049 +-0.48305420797832643
2050 +-0.38431708109084173
2051 +1.4416405099799272
2052 +0.78116611117457635
2053 +0.72537043372836385
2054 +0.47709388216394355
2055 +0.43018989151608095
2056 +1.2516020684026581
2057 +-0.0071628399598194139
2058 +1.5996122774191732
2059 +-0.85513711914280155
2060 +-0.22117367903726684
2061 +-1.2092007457254432
2062 +-0.30096451116986572
2063 +0.46824167047470311
2064 +1.2698470691671107
2065 +-0.58241489903352117
2066 +0.014670966356676661
2067 +-0.29855861135884126
2068 +-0.61184670978776456
2069 +-0.98317853489581875
2070 +0.061361120671487177
2071 +-1.4238793314397864
2072 +0.10634350051092462
2073 +0.027828830782401379
2074 +-0.53704274850183842
2075 +-0.82207655391457446
2076 +-1.1351865485345487
2077 +1.5995287095958564
2078 +-1.2020026225319824
2079 +1.4440679638824938
2080 +0.58114487958501615
2081 +-0.32980510413978859
2082 +-1.0441562571279563
2083 +0.96692450562567422
2084 +1.5991182547693503
2085 +-0.88878068751666972
2086 +-0.2755716669256279
2087 +0.98888852789753112
2088 +0.32278721334506744
2089 +1.8274791419949896
2090 +-0.54524499755104305
2091 +0.52702582440895629
2092 +-1.1577647001919227
2093 +1.9900301175156154
2094 +-0.73454356573950852
2095 +-2.2013445787120274
2096 +-0.12703418963669935
2097 +-0.13686426361299206
2098 +1.9631337746925619
2099 +-0.35592187061475944
2100 +-0.0032393691247868412
2101 +0.61133864856724651
2102 +1.5820904815818622
2103 +-0.054715581260053416
2104 +1.0406089116381163
2105 +0.52230560312179997
2106 +-0.2761634401592255
2107 +0.082915014428150843
2108 +0.03621438366579148
2109 +-0.80534496262833188
2110 +1.0861965310887198
2111 +-1.2336334186275955
2112 +1.0848833596292908
2113 +0.89296325317116321
2114 +-0.075749949423983956
2115 +-0.67664404648242371
2116 +-0.19097155197706892
2117 +0.41972033060878589
2118 +0.64240128050244982
2119 +0.25208517355935511
2120 +0.83032254724358467
2121 +-0.4526778165465255
2122 +0.20211400684845574
2123 +-1.2500609429308294
2124 +0.64905193478990031
2125 +0.13730477557291426
2126 +-0.32824387271092142
2127 +0.94064030693711653
2128 +0.57224495622900684
2129 +-2.2619600096693384
2130 +0.047493764416004121
2131 +-1.3199422752844767
2132 +1.0108149906109964
2133 +2.3481371985725583
2134 +-0.53569380719573212
2135 +0.086480569950423469
2136 +-0.23936733179034744
2137 +0.34853034641479885
2138 +0.61594851868958211
2139 +1.1993761574617738
2140 +-0.91583099145806768
2141 +1.4793607431325642
2142 +-0.89055154160261119
2143 +0.27602164848263483
2144 +1.0925603104743096
2145 +0.6806988488887471
2146 +-0.8596011171242508
2147 +-0.63729105145700959
2148 +-0.41026430082144283
2149 +-0.03555225820101756
2150 +1.0055110897487007
2151 +-1.1217723090163851
2152 +0.42608773255698695
2153 +0.54317024680039061
2154 +0.49085550099764746
2155 +0.40545938287444921
2156 +1.2758771768723027
2157 +0.43124929181980981
2158 +0.73716762941404268
2159 +0.48634278734646014
2160 +1.5041716785654877
2161 +-1.6641505673826142
2162 +1.2120659851484785
2163 +-0.23810026348961741
2164 +-0.24973830632086591
2165 +-0.86461733016958997
2166 +-1.6725954851582008
2167 +-0.35454932381420617
2168 +-0.6298645787625945
2169 +0.4630642568173633
2170 +-1.3123768748464497
2171 +1.3326050828448575
2172 +0.26735113958227713
2173 +-0.21847067425149927
2174 +-0.62731556104627706
2175 +-0.6881996819077183
2176 +-0.98316519468068619
2177 +-0.47213331314208684
2178 +0.015266364757654003
2179 +-0.1406921020354692
2180 +-1.1656504999473907
2181 +-0.21725373760941424
2182 +-0.73746895071244034
2183 +0.14359842922325414
2184 +1.535491843144265
2185 +0.55442706648736928
2186 +-0.25893302001028851
2187 +-1.3567638112287781
2188 +-1.2315573629008689
2189 +-1.508267984670681
2190 +0.69274441493087946
2191 +-0.69921795571697209
2192 +0.06732429501363249
2193 +-0.54455372071142094
2194 +0.090063290174172472
2195 +1.2108619330827528
2196 +-0.59208832879404549
2197 +-0.28597409636846921
2198 +-0.67542816605160316
2199 +0.74890379683282882
2200 +-0.85411829356492286
2201 +-0.94875357921725045
2202 +-1.1759774605959401
2203 +-1.2241022283821259
2204 +0.43304600054952741
2205 +2.272201607710624
2206 +-0.98222779864333931
2207 +0.95368265822471265
2208 +0.25727527738870948
2209 +-1.0446072364570644
2210 +-0.25537630423271745
2211 +-0.20742093151884183
2212 +-0.61796717861606876
2213 +1.7407245543486203
2214 +-1.8113752366049996
2215 +0.39626311848406975
2216 +0.33690396148592733
2217 +-0.54607859443726747
2218 +0.15055251252273719
2219 +0.81263778956240418
2220 +0.1487301090484156
2221 +0.37939272501758303
2222 +0.61086028790152158
2223 +-1.731899570219553
2224 +1.3754320217517904
2225 +2.172536229162648
2226 +1.0314820632133446
2227 +1.0577540636596614
2228 +-1.4374430093872141
2229 +-0.11395731392042383
2230 +-0.81283909997581494
2231 +-0.57658955423582903
2232 +0.95520209714285065
2233 +-0.77126847056436409
2234 +-0.11482655725067956
2235 +-1.7694693380474444
2236 +-0.14689392711858693
2237 +0.096521092867633856
2238 +-0.64807602273999732
2239 +-0.65225723507402777
2240 +1.7219746494967487
2241 +-1.1552438915548788
2242 +-1.0101781237788843
2243 +-0.77463309485158172
2244 +1.1582166945206713
2245 +2.0383372405787634
2246 +0.35586165059604019
2247 +-0.71504835130951638
2248 +-0.41468188379283372
2249 +1.0402995299955053
2250 +-0.87128081070585872
2251 +1.4043325727858857
2252 +1.4023300085618868
2253 +0.080431674313445445
2254 +0.63843949413702072
2255 +0.72565952125997835
2256 +1.4726377010698652
2257 +-1.0116062618967012
2258 +1.156326133490355
2259 +-0.35636890685018408
2260 +-0.72026750508825921
2261 +0.10636496606120634
2262 +-0.18566260405898879
2263 +-0.86873987164184296
2264 +-1.4108971314843655
2265 +-0.86015535598425374
2266 +1.3455814247468076
2267 +1.8617750410813976
2268 +0.66423329741227177
2269 +1.1797071012871876
2270 +-0.50267193679988487
2271 +-0.064749906122865242
2272 +0.27602687296431655
2273 +-0.98110294821019706
2274 +-0.90012617936979411
2275 +0.099177617965264878
2276 +-0.27618750927575214
2277 +-0.9187614893301993
2278 +0.34906039339724776
2279 +-0.21621455081705093
2280 +0.86878198618741487
2281 +0.0056246020743079966
2282 +-0.23797580983014036
2283 +0.11346572390170627
2284 +-0.12668102589919397
2285 +-0.51149345014284786
2286 +-0.30188156599280563
2287 +0.58402542624163156
2288 +0.50427937689184987
2289 +0.9880971807451836
2290 +-1.3103982910816967
2291 +-0.31286578634612683
2292 +-0.32484991771058208
2293 +0.14663620785550299
2294 +-0.34326133289354233
2295 +-0.38604896354797841
2296 +0.60828759760876006
2297 +0.14602322126732348
2298 +-0.86747196777656321
2299 +1.0332074771453916
2300 +0.79575208671693332
2301 +-0.44562536200236846
2302 +0.66324394968599221
2303 +-0.56751756787183349
2304 +0.89069311809928775
2305 +-0.16285002922689615
2306 +-0.61610283132591825
2307 +-0.28067693550896056
2308 +-0.57848923453501566
2309 +0.15742962283079778
2310 +0.14231368073575301
2311 +0.036666502542481549
2312 +-0.39876456294076856
2313 +-2.6646717792456225
2314 +0.096991034601802445
2315 +-1.7182013071481301
2316 +0.24635815996457641
2317 +1.0743884161316344
2318 +0.26896979973147933
2319 +-0.34861896442379919
2320 +-0.15185239866509978
2321 +-0.10675990501602392
2322 +-0.46044621260046248
2323 +-0.48237972919282002
2324 +-0.75874775722635057
2325 +0.99886065827701043
2326 +-0.0031264857233353951
2327 +0.79917854090273888
2328 +-0.19681778014259668
2329 +0.068532761372180978
2330 +-0.12547462734086473
2331 +0.37146035428690216
2332 +0.64787848891892574
2333 +0.19509362356113097
2334 +-0.50242826463428258
2335 +-0.58072696828428694
2336 +1.2667268015898761
2337 +-0.21320878385926664
2338 +-0.21815339702835101
2339 +1.1404793694689941
2340 +0.88015605940682307
2341 +0.44161142924154212
2342 +-0.30892479063125922
2343 +1.8613424183615013
2344 +0.35448134836211154
2345 +0.47974566635103333
2346 +-0.13466325810978877
2347 +-1.1600071916982313
2348 +-1.1260202483441772
2349 +0.36396951861496024
2350 +0.34410994440375509
2351 +-0.19079087117319302
2352 +-0.95047871484726643
2353 +-1.1883165578327899
2354 +-0.27080809702010655
2355 +-1.211928655976326
2356 +0.78766855755000453
2357 +1.0041196853897207
2358 +2.4744395376994435
2359 +0.89994166128671227
2360 +-0.58390979492529593
2361 +-0.84443545878340975
2362 +-3.3388441497946824
2363 +-0.70581893929570305
2364 +-0.19704559587392448
2365 +1.1023747717946659
2366 +0.69276438812572461
2367 +0.65044698048791216
2368 +0.23678276600074272
2369 +0.68942971430583411
2370 +1.4678608510083961
2371 +-1.0858777642474384
2372 +-0.45930964668813939
2373 +-1.3777700542505644
2374 +1.6569885636892128
2375 +1.3747390193805888
2376 +0.80961512456670759
2377 +-1.2406246497553053
2378 +0.19122983354179887
2379 +-0.22812575204770552
2380 +0.089596350761756649
2381 +-0.16976043973601193
2382 +0.49314277179570493
2383 +-0.34944550785194306
2384 +0.7706810694503341
2385 +0.22347198919777903
2386 +-0.2431522221483865
2387 +-0.084560937786497065
2388 +-0.35429932490537625
2389 +0.67217721156298671
2390 +-0.21015024404952953
2391 +0.24486536880583445
2392 +-0.29739508833288592
2393 +-1.1374907441656246
2394 +0.73666582089649901
2395 +-0.83995826270102047
2396 +0.56042874926634312
2397 +0.3477727203774294
2398 +-1.301694744831188
2399 +-0.77508940242995972
2400 +-0.41779124132729251
2401 +-0.66295137630596512
2402 +-0.95593037701898165
2403 +0.62370551485444869
2404 +-0.18716455863567341
2405 +0.32139805086414197
2406 +-0.33211789445589629
2407 +0.24929301552791544
2408 +-0.56973209715464646
2409 +-0.010417929864332822
2410 +0.45068108594659351
2411 +0.043908970307143934
2412 +-0.32882879014981786
2413 +-0.78870688094722663
2414 +0.13523289248120496
2415 +0.264204256851928
2416 +-0.17844376701216039
2417 +-0.54507360352385981
2418 +0.40273662493407786
2419 +1.7983033023159254
2420 +-0.23706215990267199
2421 +0.28013819194531603
2422 +0.30784077983581676
2423 +-1.9862359924953827
2424 +0.11965456396125007
2425 +-0.60021778417277349
2426 +1.1930721667373196
2427 +-0.2124336688193216
2428 +-0.6555782630612631
2429 +-0.17561222262517973
2430 +0.14847496924794862
2431 +-0.44591138881476944
2432 +-0.032363832523639773
2433 +-1.0584099678235279
2434 +-0.17262494218742011
2435 +0.62726027864862077
2436 +1.571717612030914
2437 +0.6128319544526758
2438 +0.23968324689608161
2439 +0.98952328027530978
2440 +0.86520150719232103
2441 +1.4123226672365672
2442 +0.96472750252065864
2443 +-0.094457345721782174
2444 +0.23344150046337708
2445 +0.16151599144439549
2446 +0.26003360002844894
2447 +0.17267658291075347
2448 +-0.61341877125050415
2449 +-1.6607639825606015
2450 +-0.5706385544999949
2451 +-1.7203536451498809
2452 +0.072514318565577982
2453 +0.014061927159827068
2454 +-1.4522533642683291
2455 +0.6378322223974332
2456 +0.78959896132893925
2457 +0.095642256693363945
2458 +1.462739962282213
2459 +1.7136167338912514
2460 +-1.1534914540999766
2461 +1.0179879999468315
2462 +0.43778871805495728
2463 +0.40610682425261796
2464 +0.8739481400060175
2465 +-0.65172899078205526
2466 +-0.52768107636380501
2467 +-0.72751939895255635
2468 +-0.65822409774737844
2469 +-0.076304073618928409
2470 +-1.2314035494801872
2471 +-0.9106417567906
2472 +0.5200420448522548
2473 +-0.051658391875116297
2474 +0.33486984698880073
2475 +-1.5627065974561145
2476 +-0.68552984866596556
2477 +-0.47826471352082373
2478 +0.038127741443375829
2479 +-0.48496082851900535
2480 +0.78726567665029956
2481 +-0.038566881421453453
2482 +0.023876784984815894
2483 +0.020819496820661657
2484 +0.56514005659834932
2485 +-0.35797231867177093
2486 +0.87551934075651217
2487 +0.37009489249416089
2488 +0.12910375476151306
2489 +0.041752261303742301
2490 +0.39969246560183186
2491 +0.76471294844772619
2492 +0.72115278708503239
2493 +0.2948629953689596
2494 +0.66667543822562569
2495 +0.099082299506691382
2496 +0.93906640592542356
2497 +-0.010234347137836749
2498 +-1.5436540994513084
2499 +1.1011634691975518
2500 +0.10011860594968332
2501 +-0.9477002646784215
2502 +-0.15439032558628604
2503 +-0.70821552717583391
2504 +1.716346157544133
2505 +0.44945044840098575
2506 +-1.3497738457715991
2507 +0.50114503311104874
2508 +-0.34212737249364367
2509 +1.6678560419201975
2510 +-0.960935360695507
2511 +-2.0650217393542838
2512 +0.076614925173813866
2513 +-0.33112293407183668
2514 +-0.38749849693473254
2515 +-1.9841326487330917
2516 +0.44093233136714105
2517 +1.6552966734151726
2518 +-1.9419328755078182
2519 +1.2776246659575643
2520 +-0.60636812807535856
2521 +2.4916559527506275
2522 +0.51705466018943791
2523 +-0.20169477651787499
2524 +1.2134424213612809
2525 +0.58121413970961511
2526 +-0.61631721972842679
2527 +0.74308386211973887
2528 +-0.50723139252318572
2529 +-1.7574016249234568
2530 +2.116486282935901
2531 +-0.37761875055130939
2532 +-0.64423295169003369
2533 +0.36525658962055724
2534 +-1.5777028638629165
2535 +-1.4088247533064471
2536 +-0.52101635566129267
2537 +-0.52776947705020327
2538 +0.082535215365664855
2539 +1.1078758907707651
2540 +-0.45472170112845434
2541 +0.48159826691701946
2542 +0.57280630020862988
2543 +-0.98572922952939301
2544 +0.22048460251094357
2545 +-0.83640302212245698
2546 +0.96240687503770317
2547 +0.41872184815613772
2548 +0.024522663375588602
2549 +-1.1400201213566432
2550 +0.11173574458705308
2551 +-0.64665073425765796
2552 +0.60951690187228758
2553 +-0.090335544283664748
2554 +-0.65831196134129422
2555 +0.76840342823063978
2556 +0.60196128144031769
2557 +-0.47320028767666128
2558 +0.94587910792333973
2559 +-0.23380381403303277
2560 +-0.2380520971117577
2561 +0.10767624561149898
2562 +-0.57333438394013303
2563 +-0.33142408524512273
2564 +-0.11260863023186096
2565 +1.1613782001278905
2566 +1.1867930406375951
2567 +-0.20085412815908632
2568 +1.2976623853251559
2569 +-0.026172001417183309
2570 +0.32117571273357198
2571 +0.72045063509533191
2572 +0.24493063917166041
2573 +1.9195976406641715
2574 +0.22560027136110763
2575 +-1.0263062071265638
2576 +1.1537655283618227
2577 +-0.35769764871327281
2578 +-0.25586367267496918
2579 +-2.5471133088226909
2580 +1.0231586534917962
2581 +0.83389296043128991
2582 +0.80338742145614284
2583 +0.96805384899845792
2584 +1.6571770449919236
2585 +-0.036678076877520803
2586 +0.93190326218682806
2587 +-0.71599008972044265
2588 +-0.33003169457126469
2589 +0.99968879548361644
2590 +0.37656373128698561
2591 +-1.2100848078949598
2592 +0.34662735059750993
2593 +-0.1563203657570649
2594 +-0.71557943527330736
2595 +0.39189846847846688
2596 +-0.33873290118677357
2597 +-1.3179772003655841
2598 +-0.96610017563443573
2599 +1.5746444771826322
2600 +-1.4000595549488284
2601 +0.22360247395243607
2602 +0.5788561379610313
2603 +0.59538086793620071
2604 +-1.0942743909093331
2605 +-0.28324504444536103
2606 +0.13541534002008243
2607 +0.70502171746225561
2608 +-0.54597489734820226
2609 +-0.98014339344655954
2610 +0.872933314742662
2611 +0.9632450161002547
2612 +0.33156295510010442
2613 +-0.50825197649766041
2614 +0.35169148630348845
2615 +0.10020094630838609
2616 +0.68699667369763429
2617 +-0.99770865205183945
2618 +0.10562541859620517
2619 +-0.11817474320590111
2620 +-0.86743196517529741
2621 +0.18267846412205374
2622 +0.037462359353392045
2623 +-0.30699794273818709
2624 +0.31214969895852285
2625 +-1.0597076899463149
2626 +-0.031854890599893611
2627 +0.34081949013273793
2628 +0.22530944640120515
2629 +0.81519415421677466
2630 +-0.90158289816689463
2631 +-1.1579524984328031
2632 +0.20246995030856133
2633 +0.3698868022732954
2634 +1.6644875980813632
2635 +0.5350648305016249
2636 +-0.72452204821807797
2637 +0.68568075864704525
2638 +-0.69511219556988568
2639 +-1.2247691040426274
2640 +2.2510602161019095
2641 +0.32842945273601315
2642 +0.69002114987155871
2643 +0.53785415253330571
2644 +1.6742796018757642
2645 +0.28510935423452427
2646 +1.1572783306127623
2647 +-0.96712350979908357
2648 +-1.3121818902396865
2649 +1.3925115340116341
2650 +1.4706690775733136
2651 +0.5281896677238388
2652 +0.2337857219015326
2653 +0.16977475028953948
2654 +-0.63307876965153931
2655 +1.4257299685233693
2656 +0.63582289759975474
2657 +0.48229387888998387
2658 +0.35380741307612062
2659 +0.94604666818236105
2660 +0.46223018346665173
2661 +0.66487703352939831
2662 +-1.0064966162945019
2663 +0.45820248269413433
2664 +1.8979233067540071
2665 +-0.4788345193127535
2666 +-0.10890268097487928
2667 +0.81144054089164608
2668 +0.86556352004586823
2669 +0.56691951911305083
2670 +-1.4107531541480371
2671 +0.46853076936642424
2672 +-1.0501671692872512
2673 +-0.73597018426354155
2674 +0.50147491265107769
2675 +-0.25056791072580958
2676 +0.70724226833270976
2677 +2.7030788714354346
2678 +0.81062775505513263
2679 +0.74260889280495168
2680 +-0.88181989103767333
2681 +-0.62387662964498336
2682 +-1.0184178241968433
2683 +-0.5047829871530557
2684 +-1.0223006094542202
2685 +-0.61511743644084194
2686 +-0.18442271493011031
2687 +-0.89760355297382655
2688 +-1.276383800442223
2689 +-1.2542384281806578
2690 +0.43966042465696969
2691 +0.06526463255132875
2692 +0.93345451363890941
2693 +0.95104454804965199
2694 +-0.29750217440987681
2695 +0.60106192858351071
2696 +-1.2439954006146001
2697 +2.0528183671678892
2698 +1.1868715826841494
2699 +-0.20304174730421978
2700 +-1.1091374274849775
2701 +0.37763307521538475
2702 +-1.7531485615074875
2703 +-0.76753083582983972
2704 +0.74597208100237522
2705 +0.08301846095782825
2706 +-0.45140623372057709
2707 +0.8842349410726984
2708 +-0.94146960224265963
2709 +0.27101682089658152
2710 +-0.43529327547523461
2711 +-0.73347781471374651
2712 +0.41410562237653381
2713 +-0.83982227741432403
2714 +1.6411235653786131
2715 +-0.5242814861097348
2716 +1.796087131930113
2717 +-1.0419441392713693
2718 +0.59357484414906336
2719 +-1.1228116613878361
2720 +-1.2670715275863385
2721 +0.16464542619047817
2722 +0.64743490662295677
2723 +-1.1695568283353994
2724 +1.1213073777944305
2725 +-0.74432516754397138
2726 +0.13263814030224039
2727 +0.35533747163742097
2728 +0.53860691292048901
2729 +-1.5625308177698871
2730 +1.5041876798495353
2731 +0.5484507967254475
2732 +-0.38952798198016314
2733 +-0.92927581698147554
2734 +-1.5436734864467394
2735 +-1.2941977422584079
2736 +0.54141318240852787
2737 +-0.31536294027186595
2738 +-1.0419398102752404
2739 +-0.48239289501944671
2740 +1.4418208830320565
2741 +-0.30313027159941097
2742 +-0.52944712818728801
2743 +1.2339876216328465
2744 +0.43686102399163623
2745 +0.050043488478372346
2746 +-0.52542622390591498
2747 +-1.336935927393031
2748 +-1.0423387693771142
2749 +-0.42581359011899045
2750 +-0.18520752142585092
2751 +0.31911173605609866
2752 +0.4789649009186086
2753 +0.19666257017249245
2754 +0.19078553648284174
2755 +-0.80049886305972839
2756 +-1.7342404602771098
2757 +-0.45057241255240799
2758 +-0.81867067701202545
2759 +-0.55639026270209102
2760 +-0.22520579554173059
2761 +-1.0329124137804826
2762 +-0.93708820472531229
2763 +-0.076264040083659709
2764 +0.10726645147246872
2765 +-0.52926249901717637
2766 +0.41564438038632351
2767 +-0.16620483052061533
2768 +-0.79422365007038875
2769 +0.042378413386067362
2770 +1.4787509844719187
2771 +-0.55297539015185049
2772 +0.97306542863245604
2773 +1.1629041617161169
2774 +1.2958466850799544
2775 +-0.71915423094333053
2776 +1.7826960134895875
2777 +0.11997504245298499
2778 +-0.22324980299232819
2779 +-0.19640782263823237
2780 +0.53608535573021676
2781 +0.054045051478353479
2782 +-0.13884791973096589
2783 +1.0671714460369619
2784 +-0.59745381135160047
2785 +-0.85912557162915615
2786 +0.67476090936413335
2787 +0.59630353568251693
2788 +0.91352790872771106
2789 +-0.88368604610113088
2790 +0.91810765905135394
2791 +0.41784469629227095
2792 +1.4768969272265895
2793 +-1.0860505050081286
2794 +0.20445817922541393
2795 +-0.23140833363682584
2796 +-1.3424218329959592
2797 +-0.62249661468372763
2798 +0.9954600723997078
2799 +-0.40327432430196003
2800 +-0.61473997391614055
2801 +0.75298760772545537
2802 +0.85294545202972538
2803 +0.85281799765854527
2804 +-0.66566762790503065
2805 +-0.039279595318193992
2806 +0.86590468739551696
2807 +-0.53781879955547107
2808 +-0.60908415209747013
2809 +0.68969680420393065
2810 +1.2881061322509011
2811 +-0.97027157314733226
2812 +-2.2239632408285108
2813 +-1.4074586087677925
2814 +-1.002523952567085
2815 +-0.12708253691791399
2816 +0.60492060204917852
2817 +-0.12879515960662805
2818 +-0.63521475339973288
2819 +0.14928048129206037
2820 +-0.84124796687467995
2821 +-0.031468651442295298
2822 +-0.54305045369940974
2823 +2.2907774527295994
2824 +0.80684545934273666
2825 +-0.79453907103630594
2826 +-0.93990030753028941
2827 +-0.40619950830382956
2828 +-1.5159608085893079
2829 +-0.69484300918060549
2830 +-0.69141001847806505
2831 +0.83781287782895852
2832 +-0.38644556169189553
2833 +-0.7081011633326022
2834 +-1.1952208995190907
2835 +-1.068522796551356
2836 +-0.051332623617290601
2837 +-0.18350604775568732
2838 +1.0053295758875134
2839 +-0.5465487157015233
2840 +0.93325566448679709
2841 +0.23510561944082425
2842 +0.0060329459344527709
2843 +-1.6691868382667552
2844 +-1.1511763616907646
2845 +0.68814288530696477
2846 +1.2726181982516562
2847 +0.20078687422938069
2848 +0.69646324439379748
2849 +-0.35307020478112655
2850 +-0.31379101019276417
2851 +-0.55623121906471262
2852 +0.83277339680089735
2853 +0.29989172286734189
2854 +-0.1842103947159871
2855 +-0.25697591284821558
2856 +0.45465052094644803
2857 +0.26533350328731742
2858 +-0.637319907175529
2859 +1.3454869309034372
2860 +0.22106114163498405
2861 +0.018442650411600106
2862 +1.1771402433606846
2863 +0.84812035816478737
2864 +-0.062433445562987487
2865 +0.44228359019432251
2866 +-0.84247983513787594
2867 +-0.50572192495373769
2868 +-1.7928419195022762
2869 +1.0843819922524507
2870 +-1.6829644910190187
2871 +0.65597327401505967
2872 +-0.76480790608508142
2873 +-0.89417150663809541
2874 +-0.1696612802821528
2875 +0.24908211443000627
2876 +0.54630982847267739
2877 +1.5394519710083012
2878 +0.3362641879323276
2879 +0.79335823980872366
2880 +-0.51922370972294896
2881 +0.63128126897675785
2882 +0.14195931512787371
2883 +-0.37973811396235713
2884 +-0.069425545994818191
2885 +-0.040285212619486463
2886 +0.16182858595170965
2887 +0.32327614551131351
2888 +-0.38192339110637319
2889 +-0.55488632238632885
2890 +0.57891708920275275
2891 +-1.2793334523516759
2892 +-0.48569322705815199
2893 +1.24324742825594
2894 +-2.2287546350324456
2895 +-0.64970522517098261
2896 +0.65412387526007532
2897 +-1.5117508234778607
2898 +2.5034279773653858
2899 +-2.8014577207809599
2900 +1.7676656134870452
2901 +1.9437265702496858
2902 +1.1743688181931837
2903 +-0.26683995495136442
2904 +0.4398978214997204
2905 +-1.033674411385102
2906 +0.93708416539309902
2907 +-1.2490063682601102
2908 +-0.29703160446517962
2909 +1.0902897207627718
2910 +-1.1883798438386881
2911 +-0.38110027020618281
2912 +0.18111298644167156
2913 +-1.3438569748654123
2914 +1.201938294886765
2915 +0.35987960760067517
2916 +-1.501689533023989
2917 +-0.038120658051894137
2918 +-0.75941468349408081
2919 +-0.63289787726472091
2920 +0.083650326046936743
2921 +-0.65163432067857041
2922 +0.89615896580240417
2923 +-0.63543764646035439
2924 +0.89675668062255964
2925 +-0.029471818110436997
2926 +0.76207938465083025
2927 +-0.46297808500604787
2928 +-0.42414524558570899
2929 +-0.96370866408340516
2930 +0.50377919230001855
2931 +0.79968160280487044
2932 +1.7948313718022344
2933 +1.1911593009731507
2934 +0.24213163735972867
2935 +-0.18104226919695146
2936 +0.35325567043128914
2937 +-0.013985276975708403
2938 +1.2457420065189999
2939 +0.8318521339788939
2940 +-0.71755524893586942
2941 +-0.58426479427729472
2942 +1.1780843669781675
2943 +0.27947487031816437
2944 +-0.18831415940502547
2945 +1.0032349427590381
2946 +-0.31892626615464409
2947 +-0.2230001226784051
2948 +-0.36661968532612549
2949 +-1.5682995730766671
2950 +0.75704439298944515
2951 +-1.0303309742160647
2952 +-0.4859112122083914
2953 +-0.62846259835166629
2954 +0.62832131824200599
2955 +-0.047795577627658348
2956 +0.022706409672746775
2957 +-1.3454725331686188
2958 +-0.064095757057282599
2959 +-1.2132919108433793
2960 +0.27296217985891552
2961 +0.31746341785865451
2962 +-0.0043184724474266186
2963 +1.6567733751554099
2964 +0.47014366877533792
2965 +0.52075211354498496
2966 +0.13028350213901654
2967 +-0.14938085333891801
2968 +0.79267634223106298
2969 +0.9058690376480345
2970 +-1.0594241548439103
2971 +0.89548975364670269
2972 +0.44412466282024649
2973 +0.80910390131761467
2974 +0.3985315481481983
2975 +-1.0105335030494567
2976 +-0.96958542779709711
2977 +1.5536277818145348
2978 +0.23624050629499083
2979 +-1.2300238653161426
2980 +0.32251754703933949
2981 +-0.30779509639566022
2982 +-1.5738276510732474
2983 +-2.07620866242473
2984 +-1.5962149599543773
2985 +0.29153639329583214
2986 +-0.038303620224917186
2987 +-0.23269717472005058
2988 +0.27959892154158505
2989 +0.56448031817960986
2990 +-1.8951843185294512
2991 +-0.28514063975104198
2992 +-0.77925434532078397
2993 +-1.1527765172361215
2994 +-0.51135179017986787
2995 +-0.10464485475526175
2996 +-0.2318082695489303
2997 +-1.2785716325809653
2998 +-0.4299654748104717
2999 +1.8084844026664446
3000 +-1.0004555215950257
3001 +-1.6058727601647032
added datasets/fixtures/ols_design.csv +501 −0
@@ -0,0 +1,501 @@
1 +y,x1,x2
2 +-4.5612779028794668,1.1173001725460026,4.0532101583018108
3 +-3.0197773516417161,-0.0064280128216051705,5.9245073795332246
4 +-5.3183200597940719,0.010452480246923114,6.9335663717092366
5 +2.8094399870063329,1.7082130625177403,0.63474545430430984
6 +0.58412801890756805,-0.29964656936159462,0.035553163602841664
7 +0.6950501710375383,-0.19239715114660974,-2.0004971846678412
8 +4.1574243929457317,0.92650406223978943,0.25698527448586739
9 +-1.621858065229028,-1.6948633821794175,0.3459392318174781
10 +-0.10345100009519703,0.4805936840792257,1.343239999572837
11 +2.4426730808888157,0.81959897197913734,-0.055170600023131566
12 +1.8165190568800789,0.47092002532803012,-1.1911574274897863
13 +0.049987020223003276,-1.2580786136979545,-0.73174439585141804
14 +3.8721342298439891,1.596234157976842,-1.932426674834292
15 +0.2514732597940057,0.32628444493278413,0.29231388213040144
16 +-0.22652990780137605,1.1976241928505766,-0.64400954463469628
17 +-3.5789220862817324,-0.29647012636637293,5.8711687053857782
18 +-0.21305245242227516,-1.0620979492122138,-1.170482821683994
19 +-0.11272050461036298,0.73884901098441369,-0.34042296141030293
20 +1.1595286549236574,0.38294045796585185,0.18879344344424698
21 +-1.698986689183724,-0.054002825663941663,1.5294760489480324
22 +5.2404153912009175,3.0143643328862106,-2.5556098722070346
23 +-2.1602457126565167,-1.8144965187335289,1.4473514079269585
24 +-2.0163169317315695,0.32133184967200512,4.1695343918680328
25 +1.0110040685582482,-0.41166184444221648,-0.15058619565761977
26 +0.31856594423922668,-0.76608965264903761,-1.071123595145163
27 +-3.2230487674715729,-0.89789433575526778,5.2127930458873832
28 +0.934792113974247,-0.24155619127638073,-1.052644320719712
29 +-2.9296366738067645,-0.088983534671128378,2.9259284932219556
30 +-1.2761146331536757,0.71937687311561316,3.1213063380597599
31 +2.3534425864269721,1.2314368020818576,-0.4459128029868642
32 +-2.9816018357749772,-1.7069058337686089,-0.026208470394343708
33 +-0.61283167421764828,-0.92570032545321457,1.5274983300644309
34 +0.87120310933118339,0.44088241252475191,2.9028346127435247
35 +-1.7275302827806114,-0.80118789308405214,2.5148901976734495
36 +-0.50808810268218285,0.33080604631713767,1.1498674697872306
37 +6.0057196991995312,2.0799593418917603,-3.3180498093610229
38 +-3.3742832587087275,0.35432808823766165,4.0265470470288935
39 +-4.1068153136946481,-1.2469870493202928,-0.35476849496856477
40 +-2.3448389261518652,-0.18565136426821369,3.4874302523786818
41 +-0.5736777272099457,0.28135890754165938,1.1785654435369866
42 +1.0302866931524703,1.1730880000634323,3.1814835998286388
43 +0.074055256000397751,0.74113963435472585,0.51542969916635539
44 +2.132351762570933,0.65627231787385631,1.162237146728426
45 +1.0428879592670195,-0.23943309458425541,-0.26377253037322634
46 +-0.13306453413589625,-0.87227749521895737,-0.25413197677651045
47 +3.3979117187636314,0.96447191489661765,1.5090614668255311
48 +3.4796762491183464,0.82190723208208116,-2.4382126459790596
49 +-4.0958668218406533,-1.2005984350724936,3.5459532978344686
50 +1.8892049937955515,1.3035597333292201,-2.5196569502129851
51 +-3.1221029809123699,-0.76649662763010318,3.3805553806044091
52 +-2.8847485382244491,1.1844793523155843,2.6843242067824358
53 +-0.39413579918877439,0.47557892718074224,0.36329661822877135
54 +-2.9839189873183898,-0.44987839943769631,3.1726096455989068
55 +-1.3552014869364795,-0.087257790333533827,3.1649224963003619
56 +4.0001790524458674,2.3672283970499177,-0.91978896857636783
57 +4.0923588043674712,1.439992847417922,-1.0899944333398306
58 +0.88951111892515256,0.75777759965761859,0.89634452235945983
59 +1.2778720635312029,1.4764946690841343,4.9360289833904503
60 +-2.8330436604971965,0.39861107554096104,4.3139924737603446
61 +-6.0636652107760467,-1.3102225766347888,4.7260866907479322
62 +-2.7908860740855737,-0.94798988258025774,0.69617068185451769
63 +-1.2152671746300308,0.47831467818977597,1.9306648897721246
64 +-3.0399033060716012,0.15723967659086252,2.0802345005343033
65 +-5.8734174462393565,-1.4375583952965976,0.86079779679695645
66 +-1.2953509202580493,-1.1748065744229406,0.70053314551276813
67 +-1.5313622801541069,-0.40473278522498779,4.0012425757142047
68 +-2.7699777094484093,0.30307249685477922,2.4199815816429995
69 +-2.8331173717498204,-0.19382083453310744,1.2732915074131681
70 +-2.0190571830041768,-0.054827204811529195,3.6978760975823546
71 +-3.6938905534617286,0.47848582228162578,4.6044774217962683
72 +1.267276861870041,-0.64701128987121281,-1.8526014560166666
73 +-3.1082471796081697,-0.48586120386367165,5.5823613234673264
74 +1.9675128570859888,0.44357650861477221,0.98027697155045157
75 +5.2760844668624074,1.7357012980119078,-1.0760597058625949
76 +-1.3989007615639566,-0.21895852477512215,1.8486418758723064
77 +0.95656488846461585,-0.21899194919829129,3.7281836686228416
78 +-6.9562810820086467,-2.2751949381092365,3.8282678957051877
79 +2.6695528663063173,2.1106197425198214,2.2895214351637363
80 +0.47134650518336008,0.26933752998163879,4.1512128288600918
81 +2.0175579956201628,2.2169027698217958,-0.84329775084685443
82 +-1.1679399518111055,-0.44515796718401174,0.60588374666671285
83 +-0.10310291997474372,-0.12827867914525923,0.46359186652726736
84 +1.7536217685288706,1.9604887772040798,1.0537216839803603
85 +0.87594895338010215,-0.28075896895283942,-1.532496520285993
86 +-0.57853247885056402,-0.80009671707795549,0.96870731723671455
87 +0.59334976053929056,1.381032125645308,0.97719514715967759
88 +2.6419928200326104,0.21835448708979058,0.44771362032108775
89 +2.5698901945073302,0.54415831257362113,-0.92820034574999166
90 +-0.14654684893863712,-1.6053476381664904,-1.0891893177056788
91 +2.0512846347949827,0.31040193948827249,-0.4214614400885921
92 +2.8865431907024393,0.95198052418781687,-0.95527778115710826
93 +-0.0017031929635409337,-1.0295353260916478,1.200438502373812
94 +-1.0186727212012525,-0.63756802027887494,-1.3081118017287885
95 +1.0583545095586375,-0.62112221122064648,-1.7124703260039911
96 +-1.7003036065668191,0.52493666272761064,4.4081059909904212
97 +-1.0571684680865037,2.2167580856388178,2.0176226931592707
98 +-1.5003499348754978,0.017287399219382528,1.6728901160688059
99 +1.7513601675449335,0.62358292363902823,0.92366915629595292
100 +-1.5379382366038856,-0.027735084624868119,4.192588106974898
101 +-0.77463829255699568,0.11839131766429604,1.1016186559218937
102 +3.7272523274388139,1.8133797079109315,2.21949476175807
103 +3.764297214384003,0.98853969075095549,-2.974845488782575
104 +4.079248827242334,1.5539523260834618,-2.6418317792144652
105 +-1.3492032660487778,-0.4748352166974017,0.83680137773425556
106 +1.6622290435326312,-0.014031183632571029,0.47631617135507098
107 +1.9801129877951982,0.52961340479740715,0.46381444966182295
108 +1.2926021243914776,0.52336380397620563,0.10038624884475489
109 +0.90944281869408428,0.49439521583135487,-0.24024223802124478
110 +-0.92891198438036582,-0.61161839437291543,1.8584587672149944
111 +-4.6596844985970272,-1.1369601478519518,0.90269966630943876
112 +-1.9799162576097629,-0.12354883343711168,3.2149745931583222
113 +-3.1276467218202755,-0.32320897202213161,4.2781728863281163
114 +-1.2220339832512457,-0.47107651559326552,1.3556767929537341
115 +2.734044220012791,0.52798917007800739,-1.3177576024248734
116 +-2.7713398967447169,0.11073879495439455,2.7580817440222569
117 +-5.553602050408716,-1.4944482597517466,2.3623646016074922
118 +-7.1909830021795971,-1.9816869166972049,4.2166277595953421
119 +-0.51302223347276321,2.3428211583029035,-1.1594019609179407
120 +-1.7996202949343851,0.56865387687809221,3.4252200979303553
121 +5.7829094256763129,0.61380517144619207,-4.5071056358571857
122 +-1.0746520534390611,-0.26078108422790464,3.29855841409133
123 +2.8821197867368777,1.5729102855189951,-2.3408680940509412
124 +0.55624358477743452,-0.21798948672634866,0.66221037512569325
125 +1.4956675018535701,0.59300070309697339,1.8725457089380033
126 +-1.4164259432961976,-1.254054304294294,-0.10590155289859848
127 +5.9100582402718054,1.5778272835248148,-3.5671842000031324
128 +1.9384181140300485,1.4338231889831872,-1.8241085734330293
129 +-3.6914823675702486,-1.080634728708451,3.0744967724356433
130 +-4.4032439063875142,-1.3253572839309415,4.3914039631918644
131 +3.4156258019223067,0.93462513061280927,0.081761441143643809
132 +3.0769781085470722,2.2486621848477433,2.4630865775601292
133 +-0.7804173106846447,-0.28882857131956879,0.99529882491409272
134 +-0.62581066546777242,0.70340901630966035,1.7585403453135002
135 +-2.0704313220679906,0.51217066685243373,2.739937892492696
136 +-1.0250146517990821,-0.66861799229107199,2.6860507718449265
137 +-5.7168416663099393,-0.98325018314757873,1.7009242621798633
138 +-0.66694105087903588,0.55186206862087961,1.2735296935725235
139 +2.7567276832804417,-0.33425231875842493,-2.2607470260178428
140 +0.42477914033102082,0.32619671097533143,-1.8394965240069978
141 +5.1186193670963327,0.38759668267785269,-0.28263038727598921
142 +1.1110816454168417,-0.74472252440138809,-1.5741849565706905
143 +1.7037128419670065,0.66726897841924171,-0.24030464382485373
144 +-2.4001230671368772,-0.75983630298435967,2.8249682695459262
145 +3.0552334854718488,2.0278813669967324,-2.5510607563452079
146 +-2.0248036569776171,-0.68070164007525669,1.789671340906291
147 +-1.7856624142472037,-0.41406359411765248,2.6830734611654892
148 +0.67468018551912312,0.51361405669038063,0.32038709312264368
149 +-4.9874991303584215,-2.1808052709556427,-0.84310635216226015
150 +-3.3494737524381302,-0.74781813428197086,2.0457644094434055
151 +2.404767974188184,-0.49185789830443633,-0.82123061981858259
152 +0.12244941210744398,-0.37409747842231805,-0.27766330158431241
153 +2.0363709048321832,1.3598807365561008,-0.5210594456522748
154 +5.4798688452558819,1.0508081832478284,-2.2773038942889938
155 +-5.4240404270845648,-2.6016830199172674,-0.47556632953619049
156 +-1.7557143212194966,0.85028180992433799,3.2428292491690915
157 +-4.4223446380421958,-1.3824522296451016,3.3093461204247907
158 +1.9906471758778144,-0.27273534629335372,-0.24690561195162308
159 +2.2693770667244082,0.098265852705973655,-1.9957145503449505
160 +8.1407098728304792,1.5537061772338048,-1.4262127878796602
161 +1.960530028687737,0.31780175388433923,1.5091008882779811
162 +2.2097420722319443,1.0443597185978084,2.4297463838259086
163 +0.41066386609752703,1.1411898311099358,-1.4516776211059059
164 +1.952936082686036,-0.79846728342106355,-1.2040521020897583
165 +-0.48340494300619813,-0.13022873198495122,0.7902576337126912
166 +-3.0318807131750449,-0.51489858754964835,0.031143271114187465
167 +0.00089309755360811316,-0.33325045973146705,1.4349286061201731
168 +-1.3690281461805491,-0.59435825502477635,0.11465971711780654
169 +-0.12636702487510854,-1.3926909992617913,0.23648670778971437
170 +0.88875561796634261,-0.79478746973177883,-3.3675277004413315
171 +3.260390987015465,0.51681165668943829,0.7515142461934744
172 +0.26514014216984316,0.13319896424875979,-0.62361323720603212
173 +4.1113412288375173,1.2514113597695637,0.65627394269619233
174 +2.459551434884685,1.1283262410562995,1.0843343338172775
175 +0.23639346344970152,0.96600872291851247,3.015486498717264
176 +-1.379411216035044,-0.61848321725405786,1.4738909190724887
177 +4.5516638324184697,0.45251672070694993,0.067714360835285259
178 +0.46570278454724057,0.08481881219825016,0.1548239272324694
179 +1.0281055507062153,-0.50763159520113244,-0.49064763758503593
180 +2.2333689384827173,-0.063969967705223882,-1.5322313898478073
181 +1.8167695254492349,0.58735159490386779,-1.0574084776342905
182 +3.8191581808765616,1.7724574303992999,0.49223865464641303
183 +-0.71561648290225266,0.1850615578200584,0.95380968881228534
184 +-1.5425998964471241,0.08974214833775479,1.5562713865059838
185 +-7.4494987530654946,-0.88715672605415152,5.1661398584993927
186 +-0.17574980051775596,-0.28095140631994686,-0.11221892780791176
187 +-3.1661444123399871,-0.8720359723826745,2.7179467997579865
188 +-1.8009784773912054,-0.3943043370722662,1.5964962282939945
189 +-3.1700242739844624,-0.12723599268480695,5.0020369920454888
190 +0.15067114112298291,-0.15548515764326615,0.1514560666071828
191 +-2.6936710326300775,-0.67513866392197974,3.0038077383616022
192 +3.2689363172586643,0.55761756189137046,1.3037202677755144
193 +-3.06785238387753,-0.67631382143591201,2.584842146128989
194 +-0.98835951855201976,-0.1957493716254616,1.8502330803670781
195 +-3.6283153680689622,-1.7944080482332414,-0.53526330503403186
196 +1.9152686761323381,-0.17539990681485318,-1.7941988241531517
197 +0.0085562293959976499,-0.043941605307798996,0.70389842019504067
198 +0.62814869326904399,0.41894880774146759,2.0283977182198201
199 +4.1088062157065259,0.72874858802686182,-0.2144927542935553
200 +-2.4563153486567431,-0.59110098717252701,1.7135686186629067
201 +0.480896960201873,1.8393499124654096,4.9106847143178758
202 +-1.6154565623564989,0.32084445929100863,2.2983031805056862
203 +-2.2403918050112082,-0.35633308718893542,1.6142143733818457
204 +1.7969436899491273,-0.085510299367208512,-0.3478144034693218
205 +2.0206796126169215,0.18028365932962814,-2.5077960686947209
206 +-1.1629041885225304,-0.51155625132252869,1.0953789743230822
207 +-0.22467357288712567,-0.030177091421674292,1.2715927444001929
208 +2.8396868111390932,0.22950530438487096,-1.7049782006914067
209 +3.2414533833773005,0.074092406106571848,-1.432824987299453
210 +0.64781206527595336,0.4131182298014297,2.1242916599741664
211 +2.8541013595829305,0.67712163774295453,-2.9338171992758419
212 +3.5953280374431928,0.14736126212541145,-3.0965547349483735
213 +-1.1679067083686989,1.0814987453919338,5.6944770060880945
214 +-3.1529027718810392,-1.3716376436327928,2.5029751604996004
215 +1.2685178548915381,-3.0568535527975604,-0.82600084701608911
216 +1.1759097816617958,0.55679155290899529,-0.081512817548337724
217 +-0.86229145756968095,-0.8081436973195576,1.7521875026208147
218 +-1.9337630073264678,-0.48981721980090953,1.5394836635374032
219 +-1.6441109389695425,-0.77542195517104529,2.397864679979921
220 +-0.66525064263642952,-1.0900382186000175,-2.0846303909085742
221 +0.63652878839821536,0.23157563681754006,-0.87599469213951453
222 +-3.3411493555865244,-0.57875804283379095,2.6005475858442861
223 +-3.6945462350016269,-1.0843085248920579,3.5259606549912026
224 +0.66708234425949231,1.159988969944072,1.5232665501129068
225 +1.4922158447363278,0.39613905345904443,-1.7679493855637221
226 +-6.8114255629681555,-1.7509576045936552,1.4871575547802753
227 +-0.23416237182071931,-0.86622778538432532,2.0086285396130847
228 +-2.741854307038408,-1.4434092544390946,2.4178234189111225
229 +-3.4915606587072636,-0.98828599896310343,1.2012531763381868
230 +-3.2185699365881351,0.34573258564170994,2.9396643835558258
231 +2.468649457424676,1.3061581580843342,0.97280806832596955
232 +1.2739496112858057,-1.3152018946135542,-0.22649036721316484
233 +-2.6774872678441985,-1.1015549302259571,5.6602178056827581
234 +-0.25299259384053663,1.1874764446847521,1.5454145841109839
235 +0.013092072679290689,0.22459553125451834,-0.64235672643873309
236 +-1.5196760745344107,-0.71303377004449398,2.8553409070902207
237 +-0.82386771297794437,-0.19745959999107879,0.69802719591965823
238 +-0.94603048711054616,0.26616952543011591,1.5237150628068914
239 +0.63153068778744292,1.3276706950690738,0.81047222990154755
240 +0.87611152382122959,-0.35691016951067583,-0.45402645408518416
241 +-1.3120359618765194,0.87725796312645643,2.6460656781054546
242 +-1.794473120558385,1.8979793339778677,1.7743780967295519
243 +3.4998383416112615,1.0291565851741409,-0.8560742644382906
244 +-0.50128822455541977,0.30284131355822647,5.740720854163345
245 +0.9357688119309362,0.4520461665784008,0.2080915587674631
246 +-1.8997306434373527,-0.78613842543818935,0.60177562935840523
247 +-0.50012365767961819,0.10583893173351955,-0.92208620256691121
248 +1.5455034951912454,0.82762561898888465,1.9177000485940527
249 +0.12326457007100045,0.03863863330613055,0.010292245679148326
250 +3.5114861940876487,0.04443714199872989,-2.6749816467040675
251 +3.26966142470441,1.8192228165881672,0.52656486281092363
252 +0.936508713131327,0.62327511974568706,3.1596168825776778
253 +0.29272275081129451,-0.077953355591119516,1.4108280998280869
254 +2.4822148877109966,1.6179676895878472,1.4563439087761312
255 +5.2116308159529989,0.8790656974650729,-2.551162949128142
256 +-1.0836105036208703,-0.23495283923361623,1.9848474582806515
257 +-3.3303683355165541,-0.18497976726897783,2.4199058677921039
258 +-3.736328353602933,-0.27587365030140587,4.8247863086343159
259 +0.77345515454680092,0.26068152841366871,0.42849513537180295
260 +6.6940123895652182,2.6970877283197887,-0.079667570634733842
261 +-2.8540536941474479,0.21743857489754004,5.1609966318493683
262 +-2.9704408817726886,-1.3717217299526687,1.356695030297832
263 +0.17528239222796838,0.11211064570881642,-0.58014990188117177
264 +-5.3088106898917502,0.91798121717378289,3.8048320405485945
265 +6.8030903088977528,3.0897978014204197,1.8741464495085733
266 +5.0387841215270903,1.1897606526106344,-1.2796531543160383
267 +2.8688922206948355,0.72164328068530292,-0.7391711892139452
268 +-0.069852195704241504,-0.11734457259082767,1.1366811923326439
269 +0.59069947026242242,0.43064695516492113,-0.81048080117348387
270 +2.8485462697896224,0.28699987302048491,-2.1827750163002912
271 +0.43302073503987226,0.52377996429739737,3.3082336398621872
272 +-0.88309771161602058,-1.0561027145350863,1.4596971829153758
273 +6.3128414868184546,2.0145262332370235,-1.6811402762557752
274 +3.9456195406957479,1.0868178782442595,-1.2967483595082254
275 +-0.62630005570029357,-1.1482573356274255,-1.0648424541414077
276 +0.75914474547999777,0.57407100482712858,0.47147959556803032
277 +4.6326624049086895,1.4155193945675555,-1.5453697887790523
278 +-0.79554556969503587,-0.16913841524087159,0.64614088551335769
279 +0.22246236780602158,0.4109863374896543,2.9312113096349242
280 +0.74443648854311784,0.34968530459562341,1.4220785673270311
281 +-1.7549046645975135,-0.27955889510565668,2.1796414295673023
282 +0.70382272503304399,-0.55177111439806259,0.69424977609266403
283 +-0.23202093245037425,0.30762869122028674,2.918349851157588
284 +0.11011109240553241,-0.26275514050833793,2.9003864832378197
285 +-3.6698704188823466,-0.40966631577404616,1.5793832936554779
286 +1.700091522446662,0.62240174565481976,0.66801353783049355
287 +-0.21258603855250102,1.0284719944957219,2.5019215490839186
288 +4.369941416506034,2.2546963845953512,-0.83688772785312038
289 +-2.2056054706094335,-0.25208770934764246,2.8713631310316376
290 +-1.012814375195384,0.061191078255586014,4.5401394329431435
291 +-0.1013690911191496,0.0035728457208048735,-0.061428479281051551
292 +3.2479511266630783,1.4914410604017017,0.043373733213940668
293 +-1.7393765459775778,-1.0766032903138747,1.8669366931001663
294 +0.41247357421222386,0.006091151000794901,1.2045305713594596
295 +-1.4207153100323389,0.98226594982088744,3.9869086054529395
296 +-0.34585417143050301,0.068045117434747199,1.9436313013957984
297 +-1.0082718008845917,-1.027912002188148,1.748939477700004
298 +0.47253377552146913,0.60227960480268272,3.0872924874881105
299 +1.968727922879558,0.31154911932800183,0.18242773522471145
300 +0.17233413574448497,0.56351197419547405,0.28013477316322
301 +-2.5408977083926718,-1.1152160134818725,-0.55897645314713462
302 +-4.8542549822535008,-0.67443040749686656,3.2035822817850867
303 +-0.82394715164606414,-0.19639769517555636,0.88013448750061085
304 +0.57462178154173404,0.9219554687884155,1.9335265125524195
305 +1.5202351373937444,1.0369434660089301,-0.37205478128225211
306 +-1.4076073760747405,-0.23972993827101791,0.93273188730946954
307 +-4.4125534395699129,-0.4435030382605229,4.5902964711172682
308 +-1.868345243496814,-0.89277840786336882,0.51896437048016386
309 +0.70595864257578411,0.52033858465403082,1.2801942219547897
310 +-2.5673260408549701,-0.71246478072750352,1.8902522054415125
311 +1.5053906087311417,1.8165524475737598,2.6852554662755597
312 +-0.83827992535395102,0.50862185947806604,3.1222056493915957
313 +-6.4762068061173412,-1.4129928959214506,4.4269908079765052
314 +-2.3652256476340372,-0.86028243966262508,0.86788610619755113
315 +0.79067058766944154,-1.6539669054748389,-2.3495286220755651
316 +-2.7878239214775489,-1.1263869549647456,-1.1067003078435711
317 +-3.3930965353184672,-1.0320403064906063,1.2547853447704238
318 +2.2424487740903678,0.90686003484349709,1.6495420362454838
319 +0.88471753368949613,0.041001781006222898,-1.4726276988376932
320 +-2.9845148179429466,0.633991451618794,4.329962475909241
321 +6.1133361655958121,2.0266329733404209,-1.866883517899701
322 +-3.8664194268473802,-1.6178875567880713,1.5987004841274408
323 +1.3748405460702275,1.0003066978640902,2.4357422520544523
324 +1.1579116541431909,-0.25537566388844213,-2.1593251091624097
325 +0.9923410472720231,0.054366330971663934,-0.11160682272331335
326 +-3.8655520032445283,-1.5373118799568974,1.972361147841496
327 +-3.5290601531144818,0.25798500711892819,3.6951309639210521
328 +-3.7440128265917005,-0.84421971087248282,2.1646126257643035
329 +-0.57727359905962095,-0.31817350337420497,2.8874414815240037
330 +-0.69455143553026832,0.036564676577255616,1.8357294298612568
331 +0.98107030431806619,0.50248213320498203,3.1851877041577645
332 +-1.5082793669481025,0.35178193526377599,1.4217054767910127
333 +-1.2247104119143402,-0.33991748818719486,0.15890986815096997
334 +-3.2055621489518069,-1.4793103566313897,2.0028790120128863
335 +5.1199849706871454,1.6444784636200707,-0.71161398525836561
336 +2.2508344397898119,0.050206297728234053,0.54835754223544608
337 +3.1654199367331026,0.11675154615193374,0.23981099272250239
338 +-0.96013551187351531,-0.66373574465451968,2.0388949676488877
339 +-0.61721807724518063,-0.73738786342646945,-0.32516530939721777
340 +-2.0490818262395787,-0.74717510914778729,1.3548549882809167
341 +-0.76108314711522274,-0.15687208019079635,1.3012331565577568
342 +3.1929286724782155,0.17077552435703863,-3.5749492171924535
343 +-0.93145145357080428,0.40701266619810472,1.1294808073899352
344 +3.3087254578573249,0.57859982083335348,-1.7512684124262283
345 +0.42018867418025563,1.4108189123483883,0.059356322580994325
346 +0.61836949769947724,0.38945715516238361,0.95337901116669665
347 +-2.610683078769886,-0.28365164520689157,2.983895952445812
348 +7.5350414011463815,0.72463464180083814,-3.664063080454361
349 +-0.31696474840038324,1.0942097473372177,2.1258087356575235
350 +2.8416043374312823,0.69287656521208929,-2.3224247628889381
351 +2.1853690649457747,0.92267374924502699,2.3767720351082904
352 +0.082223371697856429,1.6640695827134599,0.36846761515090376
353 +4.3045963869772521,2.0573240740457419,0.45229022967331045
354 +0.16856557883232348,0.97282289701734592,1.3027936881992663
355 +1.0434982341548298,0.98626900074344503,2.7858220558419031
356 +2.7416560282323919,0.49466075613934118,2.1492534883482675
357 +1.248492801286929,0.75288744977078803,1.1229046384580506
358 +4.3647296597362875,1.7774932682070606,-1.7633946510451888
359 +-1.4520999876897724,-0.59130919292135098,1.0301046998081058
360 +-1.2035307273497158,0.3848672571973944,1.8400870731367902
361 +3.2078877568955866,1.0248506194612812,1.1674516155450099
362 +-3.0071882924429798,-0.64474723654140464,1.8310947141063687
363 +8.9267375494639278,2.462957115933587,-1.6861469057826262
364 +-1.2749041226554034,0.21922581719420106,1.3545635214536071
365 +-1.4720273591138373,0.1844110635958455,3.4110877424142232
366 +1.3285963959144629,0.21499527409418909,-1.3564419308008469
367 +1.2333698584978898,0.50588591401618821,0.47446859095110216
368 +-6.2363908455731725,-1.1124020784648618,4.4824244032274159
369 +-1.8988355495784814,0.98367779200244654,4.0066650802122021
370 +4.6560729750446734,1.391533700521858,-3.309397959630517
371 +-0.86701514458975271,-0.036900712288260126,1.2986976448143779
372 +-2.9909807335713743,-1.4641105564694583,2.3739045217383916
373 +-2.1445268366027781,-0.12096650104264538,4.6062699847238529
374 +5.1223029923507761,2.65545419634691,0.083237822752541324
375 +3.9510167388872759,1.1004301924671305,-0.96790551042025386
376 +-1.9449397328228992,-0.41461201388350089,0.65260664467906992
377 +-1.2684455274455915,-1.6556650620230522,-0.3525646315445965
378 +-1.8114407398633818,-0.21394132468540333,1.1949962833179963
379 +1.8857094174751881,0.23857564936001641,-0.8687110190966405
380 +0.15732377938510156,-0.35238368421413008,0.99220010361983269
381 +-1.4998055643327763,-0.67236425438459613,1.4660963656680062
382 +-1.5119400647907499,0.10800176887667146,1.416857860200357
383 +2.0978393085164915,2.1033172461094027,1.086224085500882
384 +-0.77871150021752622,0.2416828277982454,0.68019534337705068
385 +1.5401214610569283,1.3160989800628184,2.6968594481659736
386 +-3.663778825244481,-1.2859938734687528,-0.99473084661377342
387 +-1.6600163908714038,0.75510101971562238,3.2023694879424749
388 +-1.0277092647283281,0.12751410762245713,1.4711570741007267
389 +1.6283951107779076,-0.28124713546205848,-1.9047657428391567
390 +1.1359870382329991,-0.37075204093473901,0.2006917407065133
391 +3.1112213355963743,1.4144136050192628,-2.4084237259218386
392 +0.82965092044685518,0.68914590007981547,1.1507755175093046
393 +1.2818812894137543,0.81073329194906585,2.5747589736921999
394 +-2.8901202653651952,-1.5436070576648044,-0.57538912518178487
395 +3.4263808423832689,0.68212550385680881,-1.2296051642925336
396 +-0.63839106911013799,0.56876530402423775,-1.7440749674788258
397 +-3.2791471496161981,-1.2500729229118135,1.6250806838270793
398 +0.24959725833219981,1.485760292261612,4.8243592075748012
399 +0.20943753491292871,0.61115060541562216,2.7674819003003277
400 +1.5686298414685471,0.81584599714998796,-0.29565549737269503
401 +-3.755201007417297,0.97054156007136572,2.2133770834915101
402 +-2.5907976544134028,-0.63481849600595475,1.2155615850710777
403 +-1.3291575987512234,-0.79724190069409995,2.8944176813367921
404 +1.3369335008064502,0.67809352308473536,2.620337295974668
405 +-2.3856851317923069,-1.0649194005034477,1.654536252399414
406 +-1.881916375032836,0.26318876862286283,-0.14852414033295958
407 +1.2554520260476847,0.22070107735410657,1.6020666819761331
408 +-0.035700974570095134,1.8914075675118887,3.4401311045436906
409 +-0.14572252484669923,-1.0347428442748747,-2.3917555085124791
410 +-0.23123375572465654,-0.0059765123067982689,1.5683718354830896
411 +-0.29532628980239006,-0.58394389694530668,1.0230640945543747
412 +-0.97148821622229531,0.74971924882796348,1.7259765418121222
413 +-0.23983362936963903,-0.20741637745053637,1.6212747238304022
414 +-1.1786613833966828,-0.58605957860416058,0.29242245463808736
415 +2.0338595863602373,0.78179077682335241,2.0265912339502035
416 +-0.37940870394328363,1.7954620987149006,2.3167145336521489
417 +-0.68155848700687049,-0.27817432215000998,1.5667434258251096
418 +0.90503766707574318,-0.75660394236921369,-1.4488601603336209
419 +-0.37376828439581405,0.1239439833441054,1.5418129590278196
420 +-1.7959357662204549,0.23406049809483392,2.2453696244978341
421 +0.32475181042159862,0.026852408108611153,-0.010334306457789655
422 +-1.1611966121886947,0.098235874883807417,2.6519227223876021
423 +-3.8354121949689501,0.082596995088708006,2.4867459858467544
424 +-3.6357544959837074,-0.13193817935107308,1.8712286930065385
425 +0.13456139166519332,1.0352721554876672,0.98807844823411628
426 +2.227674096353935,1.0897239103370846,0.92092993853895178
427 +2.5735433546158806,0.38079272320238305,-0.24812681189500174
428 +-1.0144862199718245,0.66857323326981533,2.1753974920271304
429 +2.8481327693473202,1.123406936039081,-0.40932932651396725
430 +0.61261253907942492,0.41060091166299301,1.7298989851747577
431 +-3.4975643600124275,-0.74419381425719799,2.8570262793063099
432 +-1.974614594727214,-1.3740093915359783,-1.0747660705367301
433 +-0.72419168493572683,-1.0105381833711724,-0.36105543630462922
434 +4.7024818246419402,1.0254747947989398,-0.92629461422007386
435 +0.50922208022610527,-0.35306318366641548,-0.88880819022282598
436 +5.7081804478725626,1.0690690823965909,-2.6671466976077078
437 +5.5624396062889989,0.79401703272130875,-4.0133617036886928
438 +-0.16006632166852652,-0.9331154922519812,3.3310475119867782
439 +1.9398008264205342,0.57199591139832762,0.92277040401805277
440 +1.1051522400136677,0.52067741964913472,0.59798845042310966
441 +-0.047538907857911705,-0.43639586188997709,-1.358059327845385
442 +0.17144532301687665,-0.72715271337001264,-0.50424520390528671
443 +5.0417395744932865,1.2334101951020953,-1.7337380039323422
444 +4.8563244342938141,2.1055709975597829,1.0648225572648824
445 +1.1103829244192407,1.1521221195289577,0.99317563186939872
446 +3.2693398260641753,2.025150974781651,1.4991254668196017
447 +-7.0404293526975952,-2.2163767846358118,0.9986192517717094
448 +-0.45362359362170412,-1.0409729911939238,0.44463363185570559
449 +-2.5188643592835791,0.19110424792138536,4.4398642886502966
450 +-0.50965127670110877,-0.84151765802651768,2.0136673975438351
451 +2.8891102604270196,-1.9845559825505481,-0.54568795603604925
452 +2.6374945735163138,-0.20108083482722269,-0.32405422341226409
453 +-3.3335924112685857,-1.0317287539860265,2.4578221754172493
454 +-3.0086246235454466,-0.9880322513898514,-0.79027297224369808
455 +1.6834685117245423,1.2846523067043578,1.4111186819530812
456 +2.2565171218102407,0.89525153512607802,-0.19373100612569982
457 +2.3056244854581109,1.8201407634265219,1.7505450774319706
458 +-3.1065535532335327,-0.12756789805268667,2.949213204052807
459 +-1.183231233704495,-0.53780590868218436,2.2229805607749658
460 +0.91749029822525374,0.51271857132738807,-0.63639334202068043
461 +-2.5568166485483763,-0.69615084664033255,4.2402859679868499
462 +-0.85373445679293558,-0.018568414568495676,1.9240062807608522
463 +-0.064750673583189089,-1.0732601253466374,0.59262187174679115
464 +-3.0344499232793023,-1.6553326456577271,2.2603678791762754
465 +0.77682039381721402,0.027765373754238317,-0.89325218787308613
466 +-2.0187364809033164,-0.15621565139337498,3.6190616341040358
467 +2.0609886684569663,1.4440543156548464,0.22572299398800411
468 +-1.9107912952739958,-1.6143113997865792,-0.70382213018928663
469 +-5.2399386056598285,-0.89735779723429809,2.8470605848694017
470 +-1.7216189091158154,0.6551514751363654,3.2354798414671624
471 +-1.2472077866975524,-0.089826358012822932,4.7573988603126658
472 +0.21679061439302122,0.02649270146490907,0.030105802087893152
473 +-1.0982076997637624,-2.2641589074636093,1.0306181771244203
474 +2.528712503191064,1.8569242914286217,0.066128619007035594
475 +-0.83661222914993338,0.3171627523427481,2.7335789267156345
476 +1.4698905479524571,-0.81795626566085577,-1.6224128417357271
477 +3.4451577608340602,1.3797861839608074,-0.40624532622182152
478 +1.2917476445214746,0.17862134896634518,-0.10710835460665002
479 +1.3237110937108496,0.29113779038131038,0.71846051214212414
480 +-1.5026979287660001,0.98616318869586361,2.8311671051230975
481 +2.6988469137247857,1.0868297128393576,-1.6959945213102197
482 +-1.6372787969984008,-0.021573125221012936,3.2456096758139319
483 +-0.48958652779278533,1.7445675804506007,3.3125014376170485
484 +0.35338026944706219,0.43431581736870295,1.6191999624660407
485 +0.24011326694150159,-0.64250641420114485,-2.7337960662634138
486 +-0.86676811319927127,1.0435935755480144,2.9399771669451047
487 +1.8108068475231831,1.302342104926475,1.6672625712533744
488 +-0.018121781390543878,0.22611717306157714,1.7017379058279827
489 +-1.0806924675752276,0.46569834056997789,1.1394784593595049
490 +0.93248371506900041,0.65795417851246452,1.8240324835452153
491 +1.8646365486806162,-0.13090379501754684,-1.8287210828267617
492 +1.1797085052657226,0.61514023178055111,2.9457772913315639
493 +0.80978289295331352,0.71806765777344062,1.2178577941531006
494 +-0.58189757920565222,-0.28821934768787877,-0.038471843269472394
495 +-0.22862656520692382,-0.44192028725963345,-0.83303781265246646
496 +-1.8382855167146253,-0.033603279063023198,2.5078898858963505
497 +2.6500676539522905,0.76517182626646851,1.0244959212993314
498 +2.0343719560357334,0.038839592470126826,-0.5271034138730184
499 +0.62334022946760193,0.82178934834262007,1.3550654240473921
500 +0.89531800332682876,-0.52956644238015971,-0.14801877636440364
501 +-4.7902369938344922,-1.8755612900491676,1.3350987871149052
added datasets/fixtures/reference_values.json +205 −0
@@ -0,0 +1,205 @@
1 +{
2 + "xnys": {
3 + "error": "Parameter `start` receieved as '2000-01-01 00:00:00' although cannot be earlier than the first session of calendar 'XNYS' ('2000-01-03 00:00:00')."
4 + },
5 + "ols": {
6 + "params": [
7 + 0.48509298369994414,
8 + 1.586399015329462,
9 + -0.7191987914380686
10 + ],
11 + "bse": [
12 + 0.07303469773518995,
13 + 0.06558049890471142,
14 + 0.03274758391439592
15 + ],
16 + "pvalues": [
17 + 8.139232194716345e-11,
18 + 5.1208101493492376e-86,
19 + 3.204325387846493e-75
20 + ],
21 + "rsquared": 0.7093448992540408,
22 + "ssr": 1023.517718906137,
23 + "hc0_bse": [
24 + 0.0746188155692467,
25 + 0.08841664375675018,
26 + 0.033698887214658906
27 + ],
28 + "hc3_bse": [
29 + 0.07536192610204652,
30 + 0.0896538890523896,
31 + 0.03405918663001956
32 + ],
33 + "hac5_bse": [
34 + 0.07283623587730476,
35 + 0.08526994367059415,
36 + 0.028496784696237225
37 + ],
38 + "cluster_bse": [
39 + 0.07832605149877382,
40 + 0.09583865529692047,
41 + 0.027592182084934833
42 + ],
43 + "statsmodels_version": "0.15.0",
44 + "t_pvalues": {
45 + "1.96_inf": 0.04999579029644087,
46 + "2.0_10": 0.07338803477074037,
47 + "-3.0_30": 0.005389964065651945
48 + }
49 + },
50 + "garch": {
51 + "arch_version": "8.0.0",
52 + "garch.normal": {
53 + "params": {
54 + "mu": -0.018552301817037327,
55 + "omega": 0.04456678062435632,
56 + "alpha[1]": 0.043882339819977544,
57 + "beta[1]": 0.8984499845956962
58 + },
59 + "std_err": {
60 + "mu": 0.015770918764014756,
61 + "omega": 0.02095439747853077,
62 + "alpha[1]": 0.01355864171915268,
63 + "beta[1]": 0.038186553946244095
64 + },
65 + "loglik": -3839.897060269192,
66 + "converged": true,
67 + "forecast_h5": [
68 + 0.9445405390091833,
69 + 0.9346378622537134,
70 + 0.9253062498487944,
71 + 0.9165127698407209,
72 + 0.9082263893850102
73 + ]
74 + },
75 + "garch.t": {
76 + "params": {
77 + "mu": -0.018864984951552585,
78 + "omega": 0.044185430526973386,
79 + "alpha[1]": 0.04369042961874116,
80 + "beta[1]": 0.8991938477390383,
81 + "nu": 180.62373641942352
82 + },
83 + "std_err": {
84 + "mu": 0.015788381000022268,
85 + "omega": 0.02093333693124186,
86 + "alpha[1]": 0.013545469606394668,
87 + "beta[1]": 0.03814754874268342,
88 + "nu": 59.51387152641135
89 + },
90 + "loglik": -3840.2469899434755,
91 + "converged": true,
92 + "forecast_h5": [
93 + 0.9445249900209312,
94 + 0.9347631931892229,
95 + 0.9255589484378443,
96 + 0.9168804107768165,
97 + 0.908697554065776
98 + ]
99 + },
100 + "gjr.normal": {
101 + "params": {
102 + "mu": -0.01949563772235262,
103 + "omega": 0.04686734081285113,
104 + "alpha[1]": 0.04043614960832323,
105 + "gamma[1]": 0.010269607655730819,
106 + "beta[1]": 0.8939520272344033
107 + },
108 + "std_err": {
109 + "mu": 0.015767773268107837,
110 + "omega": 0.022100089628801174,
111 + "alpha[1]": 0.011900105648605762,
112 + "gamma[1]": 0.017622959818983232,
113 + "beta[1]": 0.04002129323510432
114 + },
115 + "loglik": -3839.684717833968,
116 + "converged": true,
117 + "forecast_h5": [
118 + 0.9742373840134511,
119 + 0.9621857517218887,
120 + 0.9508629662293742,
121 + 0.9402249490539532,
122 + 0.9302302874488766
123 + ]
124 + },
125 + "gjr.t": {
126 + "params": {
127 + "mu": -0.019744786744584894,
128 + "omega": 0.04650474645245339,
129 + "alpha[1]": 0.04034412904679538,
130 + "gamma[1]": 0.010147079314090299,
131 + "beta[1]": 0.8946278675173491,
132 + "nu": 209.03534917192758
133 + },
134 + "std_err": {
135 + "mu": 0.015783359776270562,
136 + "omega": 0.022079942658866127,
137 + "alpha[1]": 0.011899729523140161,
138 + "gamma[1]": 0.017588144140335254,
139 + "beta[1]": 0.04001172144460027,
140 + "nu": 70.39356746327314
141 + },
142 + "loglik": -3839.987469365162,
143 + "converged": true,
144 + "forecast_h5": [
145 + 0.97413907276844,
146 + 0.9622398334670741,
147 + 0.9510540066773973,
148 + 0.9405388201348182,
149 + 0.9306540659629335
150 + ]
151 + },
152 + "egarch.normal": {
153 + "params": {
154 + "mu": -0.023542748033361573,
155 + "omega": -0.012526850360310232,
156 + "alpha[1]": 0.08835394413713242,
157 + "gamma[1]": -0.0012546159582673168,
158 + "beta[1]": 0.9538458920802841
159 + },
160 + "std_err": {
161 + "mu": 0.015734161581353993,
162 + "omega": 0.009023090596269955,
163 + "alpha[1]": 0.035471025830432386,
164 + "gamma[1]": 0.01095682773870517,
165 + "beta[1]": 0.03225083625319582
166 + },
167 + "loglik": -3839.447707494319,
168 + "converged": true,
169 + "forecast_h5": [
170 + 0.9428008577891447,
171 + 0.9346706334289873,
172 + 0.927072499422232,
173 + 0.9203215917709793,
174 + 0.913180400216695
175 + ]
176 + },
177 + "egarch.t": {
178 + "params": {
179 + "mu": -0.02372540097236844,
180 + "omega": -0.01238149906774485,
181 + "alpha[1]": 0.08796800334206091,
182 + "gamma[1]": -0.0011872571668195672,
183 + "beta[1]": 0.9542524612943474,
184 + "nu": 252.6444270491323
185 + },
186 + "std_err": {
187 + "mu": 0.015748028698851963,
188 + "omega": 0.008998194296555295,
189 + "alpha[1]": 0.035560241031303175,
190 + "gamma[1]": 0.010916375813692057,
191 + "beta[1]": 0.03223986965517421,
192 + "nu": 93.40607023002937
193 + },
194 + "loglik": -3839.692851041078,
195 + "converged": true,
196 + "forecast_h5": [
197 + 0.9422973309992873,
198 + 0.934283584998299,
199 + 0.9277022823725718,
200 + 0.9209925337261364,
201 + 0.9142751954934147
202 + ]
203 + }
204 + }
205 +}
\ No newline at end of file
added datasets/fixtures/synthetic_bars_1m.csv +6818 −0
@@ -0,0 +1,6818 @@
1 +symbol,timestamp_utc,open,high,low,close,volume
2 +SYN1,2024-11-25T09:00:00Z,100.0,100.0064,99.9755,99.9924,1.0
3 +SYN1,2024-11-25T09:02:00Z,99.9924,100.0336,99.9896,100.0223,120.0
4 +SYN1,2024-11-25T09:03:00Z,100.0223,100.0351,100.0014,100.0222,249.0
5 +SYN1,2024-11-25T09:04:00Z,100.0222,100.026,99.9524,99.9664,128.0
6 +SYN1,2024-11-25T09:05:00Z,99.9664,99.9875,99.9549,99.9844,249.0
7 +SYN1,2024-11-25T09:06:00Z,99.9844,100.0551,99.9832,100.0409,237.0
8 +SYN1,2024-11-25T09:07:00Z,100.0409,100.0409,99.9896,100.0017,177.0
9 +SYN1,2024-11-25T09:08:00Z,100.0017,100.0117,99.9595,99.9734,159.0
10 +SYN1,2024-11-25T09:11:00Z,99.9734,100.007,99.9666,100.0014,57.0
11 +SYN1,2024-11-25T09:12:00Z,100.0014,100.07,99.9991,100.0627,107.0
12 +SYN1,2024-11-25T09:14:00Z,100.0627,100.0673,99.9903,100.0058,113.0
13 +SYN1,2024-11-25T09:16:00Z,100.0058,100.041,100.0033,100.0298,62.0
14 +SYN1,2024-11-25T09:19:00Z,100.0298,100.0536,100.0237,100.0516,61.0
15 +SYN1,2024-11-25T09:21:00Z,100.0516,100.1469,100.0489,100.1416,160.0
16 +SYN1,2024-11-25T09:22:00Z,100.1416,100.2073,100.1216,100.2033,24.0
17 +SYN1,2024-11-25T09:25:00Z,100.2033,100.2196,100.1991,100.2113,151.0
18 +SYN1,2024-11-25T09:29:00Z,100.2113,100.2315,100.1952,100.2199,127.0
19 +SYN1,2024-11-25T09:33:00Z,100.2199,100.2783,100.2084,100.2732,68.0
20 +SYN1,2024-11-25T09:38:00Z,100.2732,100.2824,100.2355,100.2381,210.0
21 +SYN1,2024-11-25T09:40:00Z,100.2381,100.2425,100.1934,100.1953,66.0
22 +SYN1,2024-11-25T09:41:00Z,100.1953,100.2164,100.1883,100.2111,17.0
23 +SYN1,2024-11-25T09:42:00Z,100.2111,100.2492,100.1913,100.2408,229.0
24 +SYN1,2024-11-25T09:43:00Z,100.2408,100.2481,100.217,100.2292,281.0
25 +SYN1,2024-11-25T09:44:00Z,100.2292,100.2317,100.2138,100.2181,191.0
26 +SYN1,2024-11-25T09:45:00Z,100.2181,100.2186,100.1841,100.1971,174.0
27 +SYN1,2024-11-25T09:46:00Z,100.1971,100.2156,100.1763,100.2011,189.0
28 +SYN1,2024-11-25T09:47:00Z,100.2011,100.2526,100.195,100.2381,28.0
29 +SYN1,2024-11-25T09:50:00Z,100.2381,100.2507,100.2366,100.248,88.0
30 +SYN1,2024-11-25T09:51:00Z,100.248,100.2809,100.2444,100.2745,160.0
31 +SYN1,2024-11-25T09:53:00Z,100.2745,100.2844,100.2674,100.2836,206.0
32 +SYN1,2024-11-25T09:54:00Z,100.2836,100.2897,100.2775,100.2874,191.0
33 +SYN1,2024-11-25T09:55:00Z,100.2874,100.3035,100.2622,100.2769,51.0
34 +SYN1,2024-11-25T09:59:00Z,100.2769,100.2917,100.2687,100.2791,196.0
35 +SYN1,2024-11-25T10:00:00Z,100.2791,100.2958,100.2697,100.2932,124.0
36 +SYN1,2024-11-25T10:01:00Z,100.2932,100.3036,100.2663,100.2767,197.0
37 +SYN1,2024-11-25T10:02:00Z,100.2767,100.2929,100.2597,100.2599,250.0
38 +SYN1,2024-11-25T10:03:00Z,100.2599,100.2826,100.2516,100.2822,97.0
39 +SYN1,2024-11-25T10:05:00Z,100.2822,100.2908,100.2561,100.2735,205.0
40 +SYN1,2024-11-25T10:07:00Z,100.2735,100.2759,100.1831,100.1946,244.0
41 +SYN1,2024-11-25T10:08:00Z,100.1946,100.198,100.1414,100.1431,21.0
42 +SYN1,2024-11-25T10:11:00Z,100.1431,100.2322,100.1355,100.2171,199.0
43 +SYN1,2024-11-25T10:12:00Z,100.2171,100.2473,100.2049,100.2128,174.0
44 +SYN1,2024-11-25T10:14:00Z,100.2128,100.218,100.1681,100.1826,228.0
45 +SYN1,2024-11-25T10:15:00Z,100.1826,100.2161,100.1684,100.203,142.0
46 +SYN1,2024-11-25T10:18:00Z,100.203,100.2267,100.201,100.2173,290.0
47 +SYN1,2024-11-25T10:20:00Z,100.2173,100.2241,100.1768,100.1883,272.0
48 +SYN1,2024-11-25T10:22:00Z,100.1883,100.1984,100.1677,100.1732,68.0
49 +SYN1,2024-11-25T10:30:00Z,100.1732,100.1948,100.1416,100.1534,274.0
50 +SYN1,2024-11-25T10:34:00Z,100.1534,100.1687,100.1486,100.1651,119.0
51 +SYN1,2024-11-25T10:36:00Z,100.1651,100.183,100.1368,100.1385,255.0
52 +SYN1,2024-11-25T10:37:00Z,100.1385,100.1435,100.0664,100.0932,211.0
53 +SYN1,2024-11-25T10:38:00Z,100.0932,100.111,100.0919,100.1076,121.0
54 +SYN1,2024-11-25T10:39:00Z,100.1076,100.1187,100.0901,100.0962,270.0
55 +SYN1,2024-11-25T10:41:00Z,100.0962,100.1147,100.0714,100.0836,261.0
56 +SYN1,2024-11-25T10:43:00Z,100.0836,100.0899,100.0629,100.0654,279.0
57 +SYN1,2024-11-25T10:44:00Z,100.0654,100.0997,100.0627,100.0971,93.0
58 +SYN1,2024-11-25T10:47:00Z,100.0971,100.0992,100.0849,100.0961,55.0
59 +SYN1,2024-11-25T10:48:00Z,100.0961,100.0991,100.0578,100.0605,89.0
60 +SYN1,2024-11-25T10:50:00Z,100.0605,100.0677,100.0456,100.0571,198.0
61 +SYN1,2024-11-25T10:51:00Z,100.0571,100.0639,100.0329,100.0399,45.0
62 +SYN1,2024-11-25T10:52:00Z,100.0399,100.0967,100.0277,100.0853,39.0
63 +SYN1,2024-11-25T10:53:00Z,100.0853,100.122,100.083,100.1133,274.0
64 +SYN1,2024-11-25T10:54:00Z,100.1133,100.1599,100.1102,100.1513,180.0
65 +SYN1,2024-11-25T10:56:00Z,100.1513,100.1547,100.138,100.1406,291.0
66 +SYN1,2024-11-25T10:58:00Z,100.1406,100.1673,100.134,100.1669,169.0
67 +SYN1,2024-11-25T11:00:00Z,100.1669,100.1728,100.1045,100.1135,25.0
68 +SYN1,2024-11-25T11:01:00Z,100.1135,100.1301,100.0778,100.0792,69.0
69 +SYN1,2024-11-25T11:03:00Z,100.0792,100.1293,100.07,100.1284,197.0
70 +SYN1,2024-11-25T11:05:00Z,100.1284,100.1291,100.1121,100.1228,203.0
71 +SYN1,2024-11-25T11:06:00Z,100.1228,100.1466,100.1085,100.1351,49.0
72 +SYN1,2024-11-25T11:07:00Z,100.1351,100.1545,100.1316,100.1372,138.0
73 +SYN1,2024-11-25T11:08:00Z,100.1372,100.18,100.1361,100.1597,148.0
74 +SYN1,2024-11-25T11:10:00Z,100.1597,100.1615,100.1448,100.1529,149.0
75 +SYN1,2024-11-25T11:11:00Z,100.1529,100.1615,100.0734,100.0855,192.0
76 +SYN1,2024-11-25T11:12:00Z,100.0855,100.1058,100.0414,100.0554,133.0
77 +SYN1,2024-11-25T11:14:00Z,100.0554,100.0806,100.0548,100.0742,20.0
78 +SYN1,2024-11-25T11:15:00Z,100.0742,100.0869,100.0672,100.0794,133.0
79 +SYN1,2024-11-25T11:16:00Z,100.0794,100.095,100.0735,100.0899,212.0
80 +SYN1,2024-11-25T11:17:00Z,100.0899,100.1725,100.086,100.1496,92.0
81 +SYN1,2024-11-25T11:18:00Z,100.1496,100.1588,100.1185,100.1198,3.0
82 +SYN1,2024-11-25T11:22:00Z,100.1198,100.2268,100.1188,100.2181,54.0
83 +SYN1,2024-11-25T11:25:00Z,100.2181,100.2901,100.2174,100.2849,171.0
84 +SYN1,2024-11-25T11:28:00Z,100.2849,100.316,100.2835,100.3108,95.0
85 +SYN1,2024-11-25T11:29:00Z,100.3108,100.3774,100.2904,100.3748,54.0
86 +SYN1,2024-11-25T11:30:00Z,100.3748,100.4109,100.3711,100.4028,247.0
87 +SYN1,2024-11-25T11:31:00Z,100.4028,100.4131,100.3633,100.3698,107.0
88 +SYN1,2024-11-25T11:33:00Z,100.3698,100.3838,100.3647,100.3791,110.0
89 +SYN1,2024-11-25T11:34:00Z,100.3791,100.4548,100.3641,100.4503,87.0
90 +SYN1,2024-11-25T11:35:00Z,100.4503,100.4519,100.4207,100.425,33.0
91 +SYN1,2024-11-25T11:36:00Z,100.425,100.4354,100.413,100.4217,117.0
92 +SYN1,2024-11-25T11:37:00Z,100.4217,100.4255,100.401,100.409,155.0
93 +SYN1,2024-11-25T11:40:00Z,100.409,100.4284,100.3583,100.3646,130.0
94 +SYN1,2024-11-25T11:42:00Z,100.3646,100.3672,100.3425,100.3429,36.0
95 +SYN1,2024-11-25T11:45:00Z,100.3429,100.3445,100.2889,100.2929,107.0
96 +SYN1,2024-11-25T11:46:00Z,100.2929,100.2931,100.2603,100.2726,204.0
97 +SYN1,2024-11-25T11:47:00Z,100.2726,100.2923,100.2528,100.2572,85.0
98 +SYN1,2024-11-25T11:48:00Z,100.2572,100.2748,100.2286,100.2355,189.0
99 +SYN1,2024-11-25T11:50:00Z,100.2355,100.237,100.186,100.2001,236.0
100 +SYN1,2024-11-25T11:51:00Z,100.2001,100.217,100.1747,100.1795,239.0
101 +SYN1,2024-11-25T11:56:00Z,100.1795,100.1849,100.1637,100.1837,106.0
102 +SYN1,2024-11-25T11:58:00Z,100.1837,100.1946,100.0638,100.0794,288.0
103 +SYN1,2024-11-25T12:01:00Z,100.0794,100.0993,100.0644,100.0937,146.0
104 +SYN1,2024-11-25T12:02:00Z,100.0937,100.0964,100.078,100.0824,217.0
105 +SYN1,2024-11-25T12:03:00Z,100.0824,100.1403,100.0673,100.1246,200.0
106 +SYN1,2024-11-25T12:05:00Z,100.1246,100.1486,100.1196,100.1444,31.0
107 +SYN1,2024-11-25T12:07:00Z,100.1444,100.2178,100.1183,100.2119,63.0
108 +SYN1,2024-11-25T12:10:00Z,100.2119,100.2528,100.2099,100.2429,247.0
109 +SYN1,2024-11-25T12:11:00Z,100.2429,100.288,100.2273,100.2852,160.0
110 +SYN1,2024-11-25T12:13:00Z,100.2852,100.2856,100.2596,100.2719,254.0
111 +SYN1,2024-11-25T12:16:00Z,100.2719,100.2762,100.2533,100.2543,56.0
112 +SYN1,2024-11-25T12:17:00Z,100.2543,100.2717,100.2448,100.2687,190.0
113 +SYN1,2024-11-25T12:18:00Z,100.2687,100.3083,100.2672,100.3002,30.0
114 +SYN1,2024-11-25T12:19:00Z,100.3002,100.3013,100.2112,100.218,224.0
115 +SYN1,2024-11-25T12:20:00Z,100.218,100.2817,100.2068,100.279,175.0
116 +SYN1,2024-11-25T12:21:00Z,100.279,100.3582,100.275,100.3431,54.0
117 +SYN1,2024-11-25T12:24:00Z,100.3431,100.3509,100.2437,100.2611,42.0
118 +SYN1,2024-11-25T12:25:00Z,100.2611,100.3192,100.2459,100.314,228.0
119 +SYN1,2024-11-25T12:26:00Z,100.314,100.3141,100.2769,100.3009,89.0
120 +SYN1,2024-11-25T12:28:00Z,100.3009,100.348,100.2965,100.3455,188.0
121 +SYN1,2024-11-25T12:31:00Z,100.3455,100.3861,100.3412,100.3669,141.0
122 +SYN1,2024-11-25T12:33:00Z,100.3669,100.3872,100.3404,100.3822,57.0
123 +SYN1,2024-11-25T12:35:00Z,100.3822,100.4116,100.3665,100.4049,259.0
124 +SYN1,2024-11-25T12:36:00Z,100.4049,100.4405,100.4029,100.4331,235.0
125 +SYN1,2024-11-25T12:37:00Z,100.4331,100.4337,100.3679,100.3707,50.0
126 +SYN1,2024-11-25T12:38:00Z,100.3707,100.3835,100.3185,100.3218,44.0
127 +SYN1,2024-11-25T12:40:00Z,100.3218,100.3253,100.3005,100.3166,66.0
128 +SYN1,2024-11-25T12:42:00Z,100.3166,100.3938,100.3111,100.3859,234.0
129 +SYN1,2024-11-25T12:44:00Z,100.3859,100.3911,100.3769,100.3907,198.0
130 +SYN1,2024-11-25T12:45:00Z,100.3907,100.4123,100.3805,100.4077,9.0
131 +SYN1,2024-11-25T12:46:00Z,100.4077,100.4134,100.4024,100.4106,297.0
132 +SYN1,2024-11-25T12:48:00Z,100.4106,100.4171,100.3676,100.3699,249.0
133 +SYN1,2024-11-25T12:49:00Z,100.3699,100.3749,100.3195,100.3259,70.0
134 +SYN1,2024-11-25T12:50:00Z,100.3259,100.3319,100.2918,100.3064,145.0
135 +SYN1,2024-11-25T12:51:00Z,100.3064,100.3422,100.3041,100.3393,151.0
136 +SYN1,2024-11-25T12:52:00Z,100.3393,100.3432,100.2679,100.2726,283.0
137 +SYN1,2024-11-25T12:54:00Z,100.2726,100.3118,100.2516,100.3089,299.0
138 +SYN1,2024-11-25T12:55:00Z,100.3089,100.3154,100.2092,100.2266,237.0
139 +SYN1,2024-11-25T12:57:00Z,100.2266,100.2346,100.1905,100.2085,172.0
140 +SYN1,2024-11-25T12:59:00Z,100.2085,100.2242,100.1341,100.1428,105.0
141 +SYN1,2024-11-25T13:00:00Z,100.1428,100.1473,100.1426,100.1436,143.0
142 +SYN1,2024-11-25T13:01:00Z,100.1436,100.1501,100.1289,100.131,52.0
143 +SYN1,2024-11-25T13:02:00Z,100.131,100.145,100.1113,100.1176,150.0
144 +SYN1,2024-11-25T13:03:00Z,100.1176,100.1198,100.0451,100.0451,273.0
145 +SYN1,2024-11-25T13:04:00Z,100.0451,100.0461,100.0091,100.0298,226.0
146 +SYN1,2024-11-25T13:06:00Z,100.0298,100.09,100.0192,100.0803,140.0
147 +SYN1,2024-11-25T13:07:00Z,100.0803,100.0945,100.073,100.0902,29.0
148 +SYN1,2024-11-25T13:09:00Z,100.0902,100.1089,100.0616,100.0688,238.0
149 +SYN1,2024-11-25T13:11:00Z,100.0688,100.1009,100.0672,100.0941,156.0
150 +SYN1,2024-11-25T13:12:00Z,100.0941,100.0996,100.0452,100.0503,287.0
151 +SYN1,2024-11-25T13:13:00Z,100.0503,100.0523,100.0218,100.0301,62.0
152 +SYN1,2024-11-25T13:16:00Z,100.0301,100.064,100.0231,100.0606,283.0
153 +SYN1,2024-11-25T13:17:00Z,100.0606,100.0688,100.0186,100.0328,286.0
154 +SYN1,2024-11-25T13:18:00Z,100.0328,100.0452,99.9801,99.9805,145.0
155 +SYN1,2024-11-25T13:19:00Z,99.9805,100.0192,99.9773,100.017,266.0
156 +SYN1,2024-11-25T13:20:00Z,100.017,100.0189,99.9957,100.0183,38.0
157 +SYN1,2024-11-25T13:21:00Z,100.0183,100.0544,100.0174,100.0436,18.0
158 +SYN1,2024-11-25T13:22:00Z,100.0436,100.0606,100.0265,100.0527,15.0
159 +SYN1,2024-11-25T13:24:00Z,100.0527,100.0578,99.9807,99.9903,116.0
160 +SYN1,2024-11-25T13:26:00Z,99.9903,99.9991,99.9114,99.9115,261.0
161 +SYN1,2024-11-25T13:27:00Z,99.9115,99.9374,99.9091,99.9217,117.0
162 +SYN1,2024-11-25T13:28:00Z,99.9217,99.9713,99.9148,99.9665,1.0
163 +SYN1,2024-11-25T13:29:00Z,99.9665,99.9699,99.9461,99.9545,19.0
164 +SYN1,2024-11-25T13:30:00Z,99.9545,99.9611,99.9321,99.939,191.0
165 +SYN1,2024-11-25T13:35:00Z,99.939,99.9597,99.9288,99.9542,43.0
166 +SYN1,2024-11-25T13:36:00Z,99.9542,99.9756,99.9118,99.922,258.0
167 +SYN1,2024-11-25T13:38:00Z,99.922,99.9361,99.8877,99.9031,204.0
168 +SYN1,2024-11-25T13:41:00Z,99.9031,99.9127,99.8935,99.9103,163.0
169 +SYN1,2024-11-25T13:42:00Z,99.9103,99.9147,99.8973,99.8987,147.0
170 +SYN1,2024-11-25T13:46:00Z,99.8987,99.9277,99.8933,99.9268,153.0
171 +SYN1,2024-11-25T13:47:00Z,99.9268,99.9668,99.9249,99.9615,150.0
172 +SYN1,2024-11-25T13:48:00Z,99.9615,99.9992,99.9508,99.9842,142.0
173 +SYN1,2024-11-25T13:49:00Z,99.9842,100.0151,99.9798,100.012,239.0
174 +SYN1,2024-11-25T13:55:00Z,100.012,100.0151,99.9722,99.9768,178.0
175 +SYN1,2024-11-25T13:57:00Z,99.9768,100.0004,99.9174,99.9486,38.0
176 +SYN1,2024-11-25T13:58:00Z,99.9486,99.9878,99.8318,99.8429,155.0
177 +SYN1,2024-11-25T13:59:00Z,99.8429,99.8479,99.8351,99.8356,91.0
178 +SYN1,2024-11-25T14:01:00Z,99.8356,99.906,99.824,99.9021,152.0
179 +SYN1,2024-11-25T14:02:00Z,99.9021,99.9171,99.8914,99.9052,271.0
180 +SYN1,2024-11-25T14:03:00Z,99.9052,100.0156,99.9018,100.0012,216.0
181 +SYN1,2024-11-25T14:04:00Z,100.0012,100.0161,99.9991,100.01,31.0
182 +SYN1,2024-11-25T14:06:00Z,100.01,100.0618,100.0053,100.0552,23.0
183 +SYN1,2024-11-25T14:07:00Z,100.0552,100.1255,100.0415,100.1237,170.0
184 +SYN1,2024-11-25T14:09:00Z,100.1237,100.1641,100.1174,100.1589,38.0
185 +SYN1,2024-11-25T14:10:00Z,100.1589,100.2641,100.1536,100.2454,258.0
186 +SYN1,2024-11-25T14:12:00Z,100.2454,100.2622,100.1759,100.177,151.0
187 +SYN1,2024-11-25T14:13:00Z,100.177,100.2223,100.165,100.2181,5.0
188 +SYN1,2024-11-25T14:15:00Z,100.2181,100.2742,100.2145,100.2605,62.0
189 +SYN1,2024-11-25T14:17:00Z,100.2605,100.2772,100.2575,100.2688,237.0
190 +SYN1,2024-11-25T14:19:00Z,100.2688,100.3595,100.2676,100.348,144.0
191 +SYN1,2024-11-25T14:20:00Z,100.348,100.3573,100.3062,100.3125,84.0
192 +SYN1,2024-11-25T14:21:00Z,100.3125,100.3167,100.3041,100.3143,62.0
193 +SYN1,2024-11-25T14:22:00Z,100.3143,100.3226,100.2849,100.3065,249.0
194 +SYN1,2024-11-25T14:23:00Z,100.3065,100.3277,100.2648,100.2803,32.0
195 +SYN1,2024-11-25T14:24:00Z,100.2803,100.2814,100.2395,100.2481,65.0
196 +SYN1,2024-11-25T14:25:00Z,100.2481,100.2561,100.1569,100.171,159.0
197 +SYN1,2024-11-25T14:27:00Z,100.171,100.2577,100.1632,100.2505,133.0
198 +SYN1,2024-11-25T14:28:00Z,100.2505,100.2658,100.2258,100.2284,117.0
199 +SYN1,2024-11-25T14:29:00Z,100.2284,100.2571,100.2246,100.2545,211.0
200 +SYN1,2024-11-25T14:30:00Z,100.2545,100.2668,100.234,100.2443,3052.0
201 +SYN1,2024-11-25T14:31:00Z,100.2443,100.2528,100.1807,100.1812,4919.0
202 +SYN1,2024-11-25T14:32:00Z,100.1812,100.1851,100.0826,100.0936,2268.0
203 +SYN1,2024-11-25T14:33:00Z,100.0936,100.1371,100.0802,100.1286,3953.0
204 +SYN1,2024-11-25T14:34:00Z,100.1286,100.2287,100.1248,100.2123,635.0
205 +SYN1,2024-11-25T14:35:00Z,100.2123,100.2268,100.2116,100.2136,1404.0
206 +SYN1,2024-11-25T14:36:00Z,100.2136,100.2213,100.0425,100.0599,3086.0
207 +SYN1,2024-11-25T14:37:00Z,100.0599,100.062,100.0202,100.0209,4235.0
208 +SYN1,2024-11-25T14:38:00Z,100.0209,100.0286,99.7688,99.7711,2156.0
209 +SYN1,2024-11-25T14:39:00Z,99.7711,99.7743,99.66,99.6613,2354.0
210 +SYN1,2024-11-25T14:40:00Z,99.6613,99.6809,99.6196,99.6298,4168.0
211 +SYN1,2024-11-25T14:41:00Z,99.6298,99.7258,99.613,99.7038,3688.0
212 +SYN1,2024-11-25T14:42:00Z,99.7038,99.8456,99.7035,99.8434,2755.0
213 +SYN1,2024-11-25T14:43:00Z,99.8434,99.8821,99.8369,99.8687,1796.0
214 +SYN1,2024-11-25T14:44:00Z,99.8687,99.8758,99.8528,99.853,1108.0
215 +SYN1,2024-11-25T14:45:00Z,99.853,99.854,99.8096,99.8153,298.0
216 +SYN1,2024-11-25T14:46:00Z,99.8153,99.9351,99.8015,99.9296,1299.0
217 +SYN1,2024-11-25T14:47:00Z,99.9296,100.0457,99.9238,100.034,3010.0
218 +SYN1,2024-11-25T14:48:00Z,100.034,100.0766,100.0152,100.0672,1365.0
219 +SYN1,2024-11-25T14:49:00Z,100.0672,100.0745,99.9952,100.0151,2667.0
220 +SYN1,2024-11-25T14:50:00Z,100.0151,100.0278,99.9949,99.9961,2784.0
221 +SYN1,2024-11-25T14:51:00Z,99.9961,100.0006,99.94,99.9404,2890.0
222 +SYN1,2024-11-25T14:52:00Z,99.9404,99.964,99.9312,99.9588,4510.0
223 +SYN1,2024-11-25T14:53:00Z,99.9588,100.0586,99.9491,100.0553,712.0
224 +SYN1,2024-11-25T14:54:00Z,100.0553,100.0573,99.9722,99.9743,2577.0
225 +SYN1,2024-11-25T14:56:00Z,99.9743,99.992,99.9531,99.9842,4836.0
226 +SYN1,2024-11-25T14:57:00Z,99.9842,99.9877,99.9524,99.9624,4111.0
227 +SYN1,2024-11-25T14:58:00Z,99.9624,100.0063,99.9486,99.9896,4361.0
228 +SYN1,2024-11-25T14:59:00Z,99.9896,99.993,99.9202,99.9231,4887.0
229 +SYN1,2024-11-25T15:00:00Z,99.9231,99.9317,99.8972,99.9021,1702.0
230 +SYN1,2024-11-25T15:01:00Z,99.9021,99.9119,99.8419,99.8595,1277.0
231 +SYN1,2024-11-25T15:02:00Z,99.8595,99.9214,99.8555,99.9132,2477.0
232 +SYN1,2024-11-25T15:03:00Z,99.9132,99.9218,99.9068,99.9138,1840.0
233 +SYN1,2024-11-25T15:04:00Z,99.9138,99.9241,99.875,99.8825,1910.0
234 +SYN1,2024-11-25T15:05:00Z,99.8825,99.8896,99.8514,99.8595,2011.0
235 +SYN1,2024-11-25T15:06:00Z,99.8595,99.8643,99.8354,99.8439,2444.0
236 +SYN1,2024-11-25T15:07:00Z,99.8439,99.8771,99.8333,99.8687,1542.0
237 +SYN1,2024-11-25T15:08:00Z,99.8687,99.8935,99.8178,99.8226,538.0
238 +SYN1,2024-11-25T15:09:00Z,99.8226,99.8875,99.8161,99.8713,1052.0
239 +SYN1,2024-11-25T15:10:00Z,99.8713,99.8943,99.8709,99.8835,1020.0
240 +SYN1,2024-11-25T15:11:00Z,99.8835,99.8874,99.7626,99.7751,2708.0
241 +SYN1,2024-11-25T15:12:00Z,99.7751,99.7827,99.7409,99.761,4483.0
242 +SYN1,2024-11-25T15:13:00Z,99.761,99.8148,99.7587,99.799,3045.0
243 +SYN1,2024-11-25T15:14:00Z,99.799,99.8167,99.7885,99.8072,1855.0
244 +SYN1,2024-11-25T15:15:00Z,99.8072,99.8173,99.6577,99.6647,2527.0
245 +SYN1,2024-11-25T15:16:00Z,99.6647,99.6716,99.5715,99.5742,742.0
246 +SYN1,2024-11-25T15:17:00Z,99.5742,99.6703,99.5678,99.6696,4145.0
247 +SYN1,2024-11-25T15:18:00Z,99.6696,99.6702,99.5445,99.5578,3094.0
248 +SYN1,2024-11-25T15:19:00Z,99.5578,99.6679,99.5577,99.6601,144.0
249 +SYN1,2024-11-25T15:20:00Z,99.6601,99.8455,99.6365,99.8407,4278.0
250 +SYN1,2024-11-25T15:22:00Z,99.8407,99.8472,99.6991,99.7225,3578.0
251 +SYN1,2024-11-25T15:23:00Z,99.7225,99.9491,99.7172,99.9393,3684.0
252 +SYN1,2024-11-25T15:24:00Z,99.9393,100.0509,99.9333,100.0483,4368.0
253 +SYN1,2024-11-25T15:25:00Z,100.0483,100.0965,100.0444,100.0922,2313.0
254 +SYN1,2024-11-25T15:26:00Z,100.0922,100.0984,99.9881,99.9928,1870.0
255 +SYN1,2024-11-25T15:27:00Z,99.9928,100.0552,99.9896,100.0472,2418.0
256 +SYN1,2024-11-25T15:28:00Z,100.0472,100.0979,100.0452,100.0964,2390.0
257 +SYN1,2024-11-25T15:29:00Z,100.0964,100.2077,100.0944,100.2071,2045.0
258 +SYN1,2024-11-25T15:30:00Z,100.2071,100.2157,100.0706,100.0786,3410.0
259 +SYN1,2024-11-25T15:31:00Z,100.0786,100.0913,100.0731,100.0826,3998.0
260 +SYN1,2024-11-25T15:32:00Z,100.0826,100.1169,100.074,100.1037,1412.0
261 +SYN1,2024-11-25T15:33:00Z,100.1037,100.1109,100.0603,100.076,4912.0
262 +SYN1,2024-11-25T15:34:00Z,100.076,100.0855,100.0353,100.0539,4348.0
263 +SYN1,2024-11-25T15:35:00Z,100.0539,100.062,100.0062,100.0181,3593.0
264 +SYN1,2024-11-25T15:36:00Z,100.0181,100.047,100.0072,100.0401,4868.0
265 +SYN1,2024-11-25T15:37:00Z,100.0401,100.0581,99.9296,99.9443,4110.0
266 +SYN1,2024-11-25T15:38:00Z,99.9443,99.9483,99.9035,99.9066,4164.0
267 +SYN1,2024-11-25T15:39:00Z,99.9066,99.9133,99.8005,99.801,4790.0
268 +SYN1,2024-11-25T15:40:00Z,99.801,99.8058,99.6828,99.6867,3463.0
269 +SYN1,2024-11-25T15:41:00Z,99.6867,99.6887,99.5889,99.5942,2673.0
270 +SYN1,2024-11-25T15:42:00Z,99.5942,99.7192,99.5832,99.7089,2474.0
271 +SYN1,2024-11-25T15:44:00Z,99.7089,99.723,99.6313,99.6321,2396.0
272 +SYN1,2024-11-25T15:45:00Z,99.6321,99.6392,99.6278,99.6342,4551.0
273 +SYN1,2024-11-25T15:46:00Z,99.6342,99.6366,99.5238,99.5351,4594.0
274 +SYN1,2024-11-25T15:47:00Z,99.5351,99.5895,99.5294,99.5719,1960.0
275 +SYN1,2024-11-25T15:48:00Z,99.5719,99.6117,99.5529,99.6055,1815.0
276 +SYN1,2024-11-25T15:50:00Z,99.6055,99.6745,99.6019,99.6725,367.0
277 +SYN1,2024-11-25T15:51:00Z,99.6725,99.7308,99.6612,99.7284,2680.0
278 +SYN1,2024-11-25T15:52:00Z,99.7284,99.7442,99.6706,99.6827,521.0
279 +SYN1,2024-11-25T15:53:00Z,99.6827,99.8998,99.6821,99.8892,324.0
280 +SYN1,2024-11-25T15:54:00Z,99.8892,99.9835,99.8844,99.9607,1445.0
281 +SYN1,2024-11-25T15:55:00Z,99.9607,99.9746,99.9214,99.9298,1162.0
282 +SYN1,2024-11-25T15:56:00Z,99.9298,99.9404,99.904,99.9121,2646.0
283 +SYN1,2024-11-25T15:57:00Z,99.9121,99.9168,99.9055,99.9105,3489.0
284 +SYN1,2024-11-25T15:58:00Z,99.9105,99.9917,99.9018,99.9764,1744.0
285 +SYN1,2024-11-25T15:59:00Z,99.9764,99.979,99.9227,99.9299,3332.0
286 +SYN1,2024-11-25T16:00:00Z,99.9299,99.9883,99.9293,99.9867,4122.0
287 +SYN1,2024-11-25T16:01:00Z,99.9867,100.0458,99.9642,100.0451,4605.0
288 +SYN1,2024-11-25T16:02:00Z,100.0451,100.0946,100.0432,100.0915,4713.0
289 +SYN1,2024-11-25T16:03:00Z,100.0915,100.1048,100.014,100.0152,1777.0
290 +SYN1,2024-11-25T16:04:00Z,100.0152,100.1098,100.0083,100.106,281.0
291 +SYN1,2024-11-25T16:05:00Z,100.106,100.1139,100.0379,100.042,4810.0
292 +SYN1,2024-11-25T16:07:00Z,100.042,100.062,100.037,100.0576,106.0
293 +SYN1,2024-11-25T16:08:00Z,100.0576,100.0613,99.981,99.9813,1907.0
294 +SYN1,2024-11-25T16:09:00Z,99.9813,99.9879,99.972,99.9808,2697.0
295 +SYN1,2024-11-25T16:10:00Z,99.9808,100.0649,99.9734,100.0607,4771.0
296 +SYN1,2024-11-25T16:11:00Z,100.0607,100.1519,100.0493,100.1432,2569.0
297 +SYN1,2024-11-25T16:12:00Z,100.1432,100.1496,100.071,100.0833,871.0
298 +SYN1,2024-11-25T16:13:00Z,100.0833,100.0889,100.0364,100.0407,611.0
299 +SYN1,2024-11-25T16:14:00Z,100.0407,100.0697,100.0291,100.0518,126.0
300 +SYN1,2024-11-25T16:15:00Z,100.0518,100.1206,100.0413,100.1168,3210.0
301 +SYN1,2024-11-25T16:16:00Z,100.1168,100.1226,100.0933,100.0985,1337.0
302 +SYN1,2024-11-25T16:17:00Z,100.0985,100.1733,100.0967,100.1567,1500.0
303 +SYN1,2024-11-25T16:18:00Z,100.1567,100.1695,99.9721,99.9808,3526.0
304 +SYN1,2024-11-25T16:19:00Z,99.9808,100.0229,99.9708,100.0117,3589.0
305 +SYN1,2024-11-25T16:20:00Z,100.0117,100.0183,99.9783,99.9853,3949.0
306 +SYN1,2024-11-25T16:21:00Z,99.9853,99.9883,99.8925,99.9097,2890.0
307 +SYN1,2024-11-25T16:22:00Z,99.9097,99.9135,99.8189,99.8361,1167.0
308 +SYN1,2024-11-25T16:23:00Z,99.8361,99.8427,99.7945,99.811,830.0
309 +SYN1,2024-11-25T16:24:00Z,99.811,99.8635,99.8087,99.8394,2048.0
310 +SYN1,2024-11-25T16:25:00Z,99.8394,99.8669,99.7469,99.7474,3487.0
311 +SYN1,2024-11-25T16:26:00Z,99.7474,99.75,99.6716,99.684,4274.0
312 +SYN1,2024-11-25T16:28:00Z,99.684,99.8225,99.6809,99.8208,4158.0
313 +SYN1,2024-11-25T16:29:00Z,99.8208,99.8341,99.6489,99.6557,2437.0
314 +SYN1,2024-11-25T16:31:00Z,99.6557,99.6676,99.6007,99.6088,1898.0
315 +SYN1,2024-11-25T16:32:00Z,99.6088,99.6181,99.5996,99.6178,237.0
316 +SYN1,2024-11-25T16:33:00Z,99.6178,99.6799,99.6163,99.6765,3097.0
317 +SYN1,2024-11-25T16:34:00Z,99.6765,99.6929,99.6152,99.6334,4790.0
318 +SYN1,2024-11-25T16:35:00Z,99.6334,99.6668,99.6274,99.6503,4117.0
319 +SYN1,2024-11-25T16:36:00Z,99.6503,99.7637,99.649,99.7425,3300.0
320 +SYN1,2024-11-25T16:37:00Z,99.7425,99.7637,99.7355,99.7615,2029.0
321 +SYN1,2024-11-25T16:38:00Z,99.7615,99.768,99.6708,99.6754,2281.0
322 +SYN1,2024-11-25T16:39:00Z,99.6754,99.6889,99.6087,99.6119,323.0
323 +SYN1,2024-11-25T16:40:00Z,99.6119,99.6244,99.5992,99.6002,3190.0
324 +SYN1,2024-11-25T16:41:00Z,99.6002,99.6594,99.5892,99.6529,3376.0
325 +SYN1,2024-11-25T16:42:00Z,99.6529,99.6616,99.6006,99.6107,4550.0
326 +SYN1,2024-11-25T16:43:00Z,99.6107,99.6601,99.6015,99.6567,943.0
327 +SYN1,2024-11-25T16:45:00Z,99.6567,99.661,99.5901,99.5963,4663.0
328 +SYN1,2024-11-25T16:46:00Z,99.5963,99.5991,99.5228,99.5257,2337.0
329 +SYN1,2024-11-25T16:47:00Z,99.5257,99.5312,99.3059,99.3085,707.0
330 +SYN1,2024-11-25T16:48:00Z,99.3085,99.4345,99.3067,99.4267,4917.0
331 +SYN1,2024-11-25T16:49:00Z,99.4267,99.4338,99.321,99.331,3046.0
332 +SYN1,2024-11-25T16:50:00Z,99.331,99.3363,99.224,99.2362,2457.0
333 +SYN1,2024-11-25T16:51:00Z,99.2362,99.2501,99.149,99.1622,1251.0
334 +SYN1,2024-11-25T16:52:00Z,99.1622,99.2143,99.1448,99.2102,1133.0
335 +SYN1,2024-11-25T16:53:00Z,99.2102,99.3604,99.1978,99.3387,3055.0
336 +SYN1,2024-11-25T16:54:00Z,99.3387,99.3488,99.2969,99.2978,313.0
337 +SYN1,2024-11-25T16:55:00Z,99.2978,99.3092,99.2244,99.2249,1708.0
338 +SYN1,2024-11-25T16:56:00Z,99.2249,99.2574,99.2208,99.2542,3818.0
339 +SYN1,2024-11-25T16:57:00Z,99.2542,99.2695,99.2363,99.2616,1976.0
340 +SYN1,2024-11-25T16:58:00Z,99.2616,99.2792,99.2498,99.2746,143.0
341 +SYN1,2024-11-25T16:59:00Z,99.2746,99.3132,99.2539,99.3057,3615.0
342 +SYN1,2024-11-25T17:00:00Z,99.3057,99.3644,99.3011,99.361,4783.0
343 +SYN1,2024-11-25T17:01:00Z,99.361,99.457,99.3573,99.4449,286.0
344 +SYN1,2024-11-25T17:02:00Z,99.4449,99.4566,99.3432,99.3585,954.0
345 +SYN1,2024-11-25T17:03:00Z,99.3585,99.4446,99.3578,99.4375,2886.0
346 +SYN1,2024-11-25T17:04:00Z,99.4375,99.5112,99.4246,99.5035,1478.0
347 +SYN1,2024-11-25T17:05:00Z,99.5035,99.5179,99.3612,99.3661,2130.0
348 +SYN1,2024-11-25T17:06:00Z,99.3661,99.3679,99.3622,99.3648,847.0
349 +SYN1,2024-11-25T17:07:00Z,99.3648,99.3717,99.3488,99.3575,1152.0
350 +SYN1,2024-11-25T17:08:00Z,99.3575,99.3619,99.3421,99.3463,463.0
351 +SYN1,2024-11-25T17:09:00Z,99.3463,99.3502,99.3026,99.3057,1250.0
352 +SYN1,2024-11-25T17:10:00Z,99.3057,99.3288,99.2838,99.2904,289.0
353 +SYN1,2024-11-25T17:11:00Z,99.2904,99.308,99.2398,99.2417,1847.0
354 +SYN1,2024-11-25T17:12:00Z,99.2417,99.257,99.1803,99.1825,1158.0
355 +SYN1,2024-11-25T17:13:00Z,99.1825,99.1981,99.0653,99.0843,4495.0
356 +SYN1,2024-11-25T17:14:00Z,99.0843,99.103,99.0792,99.0987,747.0
357 +SYN1,2024-11-25T17:15:00Z,99.0987,99.1711,99.0978,99.1536,1108.0
358 +SYN1,2024-11-25T17:17:00Z,99.1536,99.2195,99.1515,99.2121,3682.0
359 +SYN1,2024-11-25T17:18:00Z,99.2121,99.2253,99.1601,99.1645,2743.0
360 +SYN1,2024-11-25T17:19:00Z,99.1645,99.1672,99.0021,99.0081,2096.0
361 +SYN1,2024-11-25T17:20:00Z,99.0081,99.1385,98.9941,99.1275,1653.0
362 +SYN1,2024-11-25T17:21:00Z,99.1275,99.1429,99.1173,99.1297,3102.0
363 +SYN1,2024-11-25T17:22:00Z,99.1297,99.1389,99.1266,99.1327,4610.0
364 +SYN1,2024-11-25T17:23:00Z,99.1327,99.1533,99.1209,99.1263,3661.0
365 +SYN1,2024-11-25T17:24:00Z,99.1263,99.1315,98.9984,99.0103,1178.0
366 +SYN1,2024-11-25T17:25:00Z,99.0103,99.1073,99.0035,99.1069,3335.0
367 +SYN1,2024-11-25T17:26:00Z,99.1069,99.1123,99.1044,99.111,3567.0
368 +SYN1,2024-11-25T17:27:00Z,99.111,99.1192,99.0223,99.0302,1487.0
369 +SYN1,2024-11-25T17:28:00Z,99.0302,99.0314,98.9534,98.9676,689.0
370 +SYN1,2024-11-25T17:29:00Z,98.9676,99.0607,98.9401,99.0558,631.0
371 +SYN1,2024-11-25T17:30:00Z,99.0558,99.0607,99.0263,99.0404,3230.0
372 +SYN1,2024-11-25T17:31:00Z,99.0404,99.0457,98.9738,98.9793,1260.0
373 +SYN1,2024-11-25T17:32:00Z,98.9793,99.0787,98.9778,99.0744,3348.0
374 +SYN1,2024-11-25T17:33:00Z,99.0744,99.085,99.0185,99.0273,1480.0
375 +SYN1,2024-11-25T17:34:00Z,99.0273,99.0281,98.9569,98.969,3475.0
376 +SYN1,2024-11-25T17:35:00Z,98.969,99.1876,98.9683,99.1867,760.0
377 +SYN1,2024-11-25T17:36:00Z,99.1867,99.2054,99.1138,99.1141,2533.0
378 +SYN1,2024-11-25T17:37:00Z,99.1141,99.2127,99.092,99.2074,860.0
379 +SYN1,2024-11-25T17:38:00Z,99.2074,99.2278,99.1993,99.2205,3430.0
380 +SYN1,2024-11-25T17:39:00Z,99.2205,99.2549,99.2193,99.2515,1315.0
381 +SYN1,2024-11-25T17:40:00Z,99.2515,99.3211,99.2479,99.3182,4777.0
382 +SYN1,2024-11-25T17:41:00Z,99.3182,99.4371,99.3098,99.432,1957.0
383 +SYN1,2024-11-25T17:42:00Z,99.432,99.4418,99.3706,99.3825,912.0
384 +SYN1,2024-11-25T17:43:00Z,99.3825,99.3995,99.3364,99.3484,2017.0
385 +SYN1,2024-11-25T17:44:00Z,99.3484,99.3549,99.2999,99.3274,429.0
386 +SYN1,2024-11-25T17:45:00Z,99.3274,99.3285,99.2313,99.2418,1765.0
387 +SYN1,2024-11-25T17:46:00Z,99.2418,99.3714,99.2406,99.3655,3086.0
388 +SYN1,2024-11-25T17:47:00Z,99.3655,99.3679,99.3558,99.3647,2189.0
389 +SYN1,2024-11-25T17:48:00Z,99.3647,99.3655,99.2291,99.2347,2894.0
390 +SYN1,2024-11-25T17:49:00Z,99.2347,99.2825,99.2318,99.2636,2075.0
391 +SYN1,2024-11-25T17:50:00Z,99.2636,99.2712,99.2279,99.233,1455.0
392 +SYN1,2024-11-25T17:51:00Z,99.233,99.2403,99.121,99.1215,4117.0
393 +SYN1,2024-11-25T17:52:00Z,99.1215,99.1375,99.0784,99.087,2011.0
394 +SYN1,2024-11-25T17:53:00Z,99.087,99.146,99.0752,99.136,2909.0
395 +SYN1,2024-11-25T17:54:00Z,99.136,99.1413,99.0974,99.102,2062.0
396 +SYN1,2024-11-25T17:55:00Z,99.102,99.1023,99.0644,99.0649,1282.0
397 +SYN1,2024-11-25T17:56:00Z,99.0649,99.0677,98.968,98.9821,2906.0
398 +SYN1,2024-11-25T17:57:00Z,98.9821,98.9971,98.978,98.9909,594.0
399 +SYN1,2024-11-25T17:58:00Z,98.9909,98.9945,98.9345,98.9355,2269.0
400 +SYN1,2024-11-25T17:59:00Z,98.9355,98.95,98.8621,98.8698,4126.0
401 +SYN1,2024-11-25T18:00:00Z,98.8698,98.8732,98.8419,98.8524,4773.0
402 +SYN1,2024-11-25T18:01:00Z,98.8524,98.8991,98.8375,98.894,1308.0
403 +SYN1,2024-11-25T18:02:00Z,98.894,98.9776,98.8934,98.9746,3792.0
404 +SYN1,2024-11-25T18:03:00Z,98.9746,98.9789,98.8717,98.8753,2774.0
405 +SYN1,2024-11-25T18:04:00Z,98.8753,98.9857,98.8726,98.9684,2460.0
406 +SYN1,2024-11-25T18:05:00Z,98.9684,99.0122,98.9592,98.9976,1538.0
407 +SYN1,2024-11-25T18:06:00Z,98.9976,99.0003,98.9637,98.9757,608.0
408 +SYN1,2024-11-25T18:07:00Z,98.9757,99.0475,98.9646,99.0459,2367.0
409 +SYN1,2024-11-25T18:08:00Z,99.0459,99.2427,99.0415,99.2401,1875.0
410 +SYN1,2024-11-25T18:09:00Z,99.2401,99.2487,99.228,99.2295,466.0
411 +SYN1,2024-11-25T18:10:00Z,99.2295,99.2353,99.2214,99.2308,429.0
412 +SYN1,2024-11-25T18:11:00Z,99.2308,99.2332,99.105,99.1103,4780.0
413 +SYN1,2024-11-25T18:12:00Z,99.1103,99.1206,99.1,99.1165,4099.0
414 +SYN1,2024-11-25T18:13:00Z,99.1165,99.1336,99.1164,99.129,2258.0
415 +SYN1,2024-11-25T18:14:00Z,99.129,99.1513,99.0529,99.0575,3337.0
416 +SYN1,2024-11-25T18:15:00Z,99.0575,99.1598,99.0393,99.1568,3746.0
417 +SYN1,2024-11-25T18:16:00Z,99.1568,99.2125,99.1403,99.1939,2392.0
418 +SYN1,2024-11-25T18:17:00Z,99.1939,99.2257,99.1901,99.213,250.0
419 +SYN1,2024-11-25T18:18:00Z,99.213,99.2165,99.0676,99.0718,3945.0
420 +SYN1,2024-11-25T18:19:00Z,99.0718,99.1075,99.0709,99.0957,3895.0
421 +SYN1,2024-11-25T18:20:00Z,99.0957,99.0992,99.001,99.009,3164.0
422 +SYN1,2024-11-25T18:21:00Z,99.009,99.0111,98.9967,98.999,2728.0
423 +SYN1,2024-11-25T18:22:00Z,98.999,99.017,98.9983,99.0145,4134.0
424 +SYN1,2024-11-25T18:23:00Z,99.0145,99.076,99.0076,99.0644,657.0
425 +SYN1,2024-11-25T18:24:00Z,99.0644,99.1199,99.0532,99.1155,1818.0
426 +SYN1,2024-11-25T18:25:00Z,99.1155,99.124,99.0391,99.0427,1054.0
427 +SYN1,2024-11-25T18:26:00Z,99.0427,99.047,98.9065,98.9109,1286.0
428 +SYN1,2024-11-25T18:27:00Z,98.9109,98.9247,98.9003,98.9035,183.0
429 +SYN1,2024-11-25T18:28:00Z,98.9035,99.0302,98.8987,99.0203,1335.0
430 +SYN1,2024-11-25T18:29:00Z,99.0203,99.0353,98.9597,98.9622,1175.0
431 +SYN1,2024-11-25T18:30:00Z,98.9622,99.0913,98.938,99.0816,2615.0
432 +SYN1,2024-11-25T18:31:00Z,99.0816,99.3006,99.0692,99.2805,1057.0
433 +SYN1,2024-11-25T18:32:00Z,99.2805,99.293,99.0725,99.0762,4499.0
434 +SYN1,2024-11-25T18:33:00Z,99.0762,99.1054,99.0717,99.1005,3740.0
435 +SYN1,2024-11-25T18:34:00Z,99.1005,99.136,99.0967,99.133,2179.0
436 +SYN1,2024-11-25T18:35:00Z,99.133,99.1337,99.0771,99.091,1732.0
437 +SYN1,2024-11-25T18:36:00Z,99.091,99.1002,99.0893,99.0995,1248.0
438 +SYN1,2024-11-25T18:37:00Z,99.0995,99.1865,99.0938,99.1817,220.0
439 +SYN1,2024-11-25T18:38:00Z,99.1817,99.198,99.1725,99.188,1756.0
440 +SYN1,2024-11-25T18:39:00Z,99.188,99.2245,99.1843,99.2193,2334.0
441 +SYN1,2024-11-25T18:40:00Z,99.2193,99.3205,99.2132,99.3152,2715.0
442 +SYN1,2024-11-25T18:41:00Z,99.3152,99.3672,99.3097,99.3635,3702.0
443 +SYN1,2024-11-25T18:42:00Z,99.3635,99.4555,99.3498,99.4488,1142.0
444 +SYN1,2024-11-25T18:43:00Z,99.4488,99.5274,99.4282,99.5248,2093.0
445 +SYN1,2024-11-25T18:44:00Z,99.5248,99.6279,99.5207,99.6151,1266.0
446 +SYN1,2024-11-25T18:45:00Z,99.6151,99.6215,99.5458,99.5487,1635.0
447 +SYN1,2024-11-25T18:46:00Z,99.5487,99.6728,99.5391,99.6639,794.0
448 +SYN1,2024-11-25T18:47:00Z,99.6639,99.7506,99.6611,99.7486,4816.0
449 +SYN1,2024-11-25T18:48:00Z,99.7486,99.7672,99.7427,99.7619,789.0
450 +SYN1,2024-11-25T18:49:00Z,99.7619,99.7643,99.6922,99.6938,4286.0
451 +SYN1,2024-11-25T18:50:00Z,99.6938,99.7379,99.6884,99.7373,4063.0
452 +SYN1,2024-11-25T18:51:00Z,99.7373,99.74,99.7257,99.7279,796.0
453 +SYN1,2024-11-25T18:52:00Z,99.7279,99.7434,99.7231,99.7308,1286.0
454 +SYN1,2024-11-25T18:53:00Z,99.7308,99.7384,99.6767,99.6925,4071.0
455 +SYN1,2024-11-25T18:54:00Z,99.6925,99.8144,99.6735,99.8006,4933.0
456 +SYN1,2024-11-25T18:55:00Z,99.8006,99.8251,99.7965,99.8171,570.0
457 +SYN1,2024-11-25T18:56:00Z,99.8171,99.8294,99.707,99.7127,4257.0
458 +SYN1,2024-11-25T18:57:00Z,99.7127,99.7286,99.6353,99.6375,2136.0
459 +SYN1,2024-11-25T18:58:00Z,99.6375,99.6905,99.6333,99.6773,4487.0
460 +SYN1,2024-11-25T18:59:00Z,99.6773,99.6849,99.6541,99.6664,2037.0
461 +SYN1,2024-11-25T19:01:00Z,99.6664,99.671,99.5394,99.5475,4914.0
462 +SYN1,2024-11-25T19:03:00Z,99.5475,99.6153,99.5321,99.613,2520.0
463 +SYN1,2024-11-25T19:04:00Z,99.613,99.6143,99.5142,99.5217,2383.0
464 +SYN1,2024-11-25T19:05:00Z,99.5217,99.6177,99.5045,99.6082,4248.0
465 +SYN1,2024-11-25T19:06:00Z,99.6082,99.616,99.5801,99.583,3208.0
466 +SYN1,2024-11-25T19:07:00Z,99.583,99.5846,99.4839,99.5006,2961.0
467 +SYN1,2024-11-25T19:08:00Z,99.5006,99.6397,99.4977,99.6323,3307.0
468 +SYN1,2024-11-25T19:09:00Z,99.6323,99.6396,99.6029,99.6115,4466.0
469 +SYN1,2024-11-25T19:10:00Z,99.6115,99.626,99.5561,99.5647,3388.0
470 +SYN1,2024-11-25T19:11:00Z,99.5647,99.6513,99.5616,99.6463,2584.0
471 +SYN1,2024-11-25T19:12:00Z,99.6463,99.6661,99.5816,99.5928,2676.0
472 +SYN1,2024-11-25T19:13:00Z,99.5928,99.5942,99.4576,99.4659,4470.0
473 +SYN1,2024-11-25T19:14:00Z,99.4659,99.5092,99.4606,99.4906,2899.0
474 +SYN1,2024-11-25T19:15:00Z,99.4906,99.496,99.4844,99.4945,1444.0
475 +SYN1,2024-11-25T19:16:00Z,99.4945,99.4962,99.4387,99.4435,3031.0
476 +SYN1,2024-11-25T19:17:00Z,99.4435,99.4527,99.396,99.3977,2350.0
477 +SYN1,2024-11-25T19:18:00Z,99.3977,99.5247,99.3788,99.5126,612.0
478 +SYN1,2024-11-25T19:19:00Z,99.5126,99.516,99.4673,99.4715,1332.0
479 +SYN1,2024-11-25T19:20:00Z,99.4715,99.4871,99.4632,99.4657,3164.0
480 +SYN1,2024-11-25T19:21:00Z,99.4657,99.496,99.4522,99.4909,3497.0
481 +SYN1,2024-11-25T19:22:00Z,99.4909,99.5026,99.4794,99.4861,3813.0
482 +SYN1,2024-11-25T19:23:00Z,99.4861,99.5657,99.4842,99.5621,3328.0
483 +SYN1,2024-11-25T19:24:00Z,99.5621,99.6559,99.5599,99.648,3910.0
484 +SYN1,2024-11-25T19:25:00Z,99.648,99.6528,99.6432,99.648,1589.0
485 +SYN1,2024-11-25T19:26:00Z,99.648,99.6496,99.6088,99.6197,841.0
486 +SYN1,2024-11-25T19:27:00Z,99.6197,99.6586,99.606,99.6432,4944.0
487 +SYN1,2024-11-25T19:28:00Z,99.6432,99.7582,99.6395,99.7537,4736.0
488 +SYN1,2024-11-25T19:29:00Z,99.7537,99.7917,99.7377,99.7846,3085.0
489 +SYN1,2024-11-25T19:30:00Z,99.7846,99.8005,99.7844,99.7933,508.0
490 +SYN1,2024-11-25T19:31:00Z,99.7933,99.7963,99.7086,99.7163,3565.0
491 +SYN1,2024-11-25T19:32:00Z,99.7163,99.7382,99.6357,99.6371,4447.0
492 +SYN1,2024-11-25T19:33:00Z,99.6371,99.6445,99.5642,99.5648,3943.0
493 +SYN1,2024-11-25T19:34:00Z,99.5648,99.566,99.4981,99.5013,4937.0
494 +SYN1,2024-11-25T19:35:00Z,99.5013,99.5101,99.4668,99.4725,4058.0
495 +SYN1,2024-11-25T19:36:00Z,99.4725,99.4941,99.4606,99.4926,671.0
496 +SYN1,2024-11-25T19:37:00Z,99.4926,99.6058,99.476,99.5998,3726.0
497 +SYN1,2024-11-25T19:38:00Z,99.5998,99.6148,99.5257,99.5368,3529.0
498 +SYN1,2024-11-25T19:39:00Z,99.5368,99.5395,99.463,99.4734,1265.0
499 +SYN1,2024-11-25T19:40:00Z,99.4734,99.4962,99.4721,99.4958,4280.0
500 +SYN1,2024-11-25T19:41:00Z,99.4958,99.5627,99.4913,99.562,1434.0
501 +SYN1,2024-11-25T19:42:00Z,99.562,99.6522,99.5542,99.6489,2228.0
502 +SYN1,2024-11-25T19:43:00Z,99.6489,99.7307,99.6484,99.7276,4775.0
503 +SYN1,2024-11-25T19:44:00Z,99.7276,99.7299,99.6681,99.6878,1091.0
504 +SYN1,2024-11-25T19:45:00Z,99.6878,99.7326,99.6753,99.7278,858.0
505 +SYN1,2024-11-25T19:46:00Z,99.7278,99.8682,99.7134,99.8569,431.0
506 +SYN1,2024-11-25T19:47:00Z,99.8569,99.8676,99.7828,99.7859,985.0
507 +SYN1,2024-11-25T19:48:00Z,99.7859,99.7915,99.6924,99.7156,4508.0
508 +SYN1,2024-11-25T19:49:00Z,99.7156,99.7326,99.6031,99.6051,2112.0
509 +SYN1,2024-11-25T19:50:00Z,99.6051,99.6147,99.5289,99.5393,4279.0
510 +SYN1,2024-11-25T19:51:00Z,99.5393,99.6975,99.5392,99.6798,4282.0
511 +SYN1,2024-11-25T19:52:00Z,99.6798,99.6819,99.6639,99.6676,3837.0
512 +SYN1,2024-11-25T19:53:00Z,99.6676,99.7131,99.6593,99.6999,1843.0
513 +SYN1,2024-11-25T19:54:00Z,99.6999,99.9194,99.6925,99.9186,1102.0
514 +SYN1,2024-11-25T19:55:00Z,99.9186,99.9309,99.7503,99.7661,1650.0
515 +SYN1,2024-11-25T19:56:00Z,99.7661,99.7763,99.7035,99.7101,742.0
516 +SYN1,2024-11-25T19:57:00Z,99.7101,99.7149,99.5735,99.5735,3002.0
517 +SYN1,2024-11-25T19:58:00Z,99.5735,99.6478,99.5711,99.6358,3655.0
518 +SYN1,2024-11-25T19:59:00Z,99.6358,99.6477,99.5204,99.5364,1754.0
519 +SYN1,2024-11-25T20:01:00Z,99.5364,99.6496,99.531,99.6457,3241.0
520 +SYN1,2024-11-25T20:03:00Z,99.6457,99.6465,99.4885,99.5036,3594.0
521 +SYN1,2024-11-25T20:04:00Z,99.5036,99.5762,99.4938,99.5714,1614.0
522 +SYN1,2024-11-25T20:05:00Z,99.5714,99.5773,99.4289,99.4407,268.0
523 +SYN1,2024-11-25T20:06:00Z,99.4407,99.4898,99.4369,99.4755,492.0
524 +SYN1,2024-11-25T20:07:00Z,99.4755,99.5381,99.475,99.5367,1342.0
525 +SYN1,2024-11-25T20:08:00Z,99.5367,99.5455,99.4538,99.4597,4432.0
526 +SYN1,2024-11-25T20:09:00Z,99.4597,99.5721,99.4595,99.5663,327.0
527 +SYN1,2024-11-25T20:10:00Z,99.5663,99.6238,99.5656,99.622,380.0
528 +SYN1,2024-11-25T20:11:00Z,99.622,99.7642,99.6081,99.7527,3194.0
529 +SYN1,2024-11-25T20:12:00Z,99.7527,99.7564,99.7492,99.7545,4026.0
530 +SYN1,2024-11-25T20:13:00Z,99.7545,99.8317,99.7519,99.8258,1093.0
531 +SYN1,2024-11-25T20:14:00Z,99.8258,99.8318,99.8113,99.8203,1757.0
532 +SYN1,2024-11-25T20:15:00Z,99.8203,99.8247,99.8015,99.804,2790.0
533 +SYN1,2024-11-25T20:16:00Z,99.804,99.9066,99.7912,99.8976,1798.0
534 +SYN1,2024-11-25T20:17:00Z,99.8976,99.9178,99.8894,99.9089,3405.0
535 +SYN1,2024-11-25T20:18:00Z,99.9089,99.9342,99.8857,99.9273,780.0
536 +SYN1,2024-11-25T20:19:00Z,99.9273,99.9354,99.9143,99.9152,2751.0
537 +SYN1,2024-11-25T20:20:00Z,99.9152,99.9248,99.9127,99.9137,1737.0
538 +SYN1,2024-11-25T20:21:00Z,99.9137,99.9839,99.9087,99.9678,1946.0
539 +SYN1,2024-11-25T20:22:00Z,99.9678,99.9825,99.9622,99.9652,2824.0
540 +SYN1,2024-11-25T20:23:00Z,99.9652,99.9814,99.9175,99.9301,3452.0
541 +SYN1,2024-11-25T20:24:00Z,99.9301,100.1298,99.9234,100.1227,2882.0
542 +SYN1,2024-11-25T20:25:00Z,100.1227,100.1338,100.0961,100.0995,1325.0
543 +SYN1,2024-11-25T20:26:00Z,100.0995,100.1399,100.0845,100.1343,3962.0
544 +SYN1,2024-11-25T20:27:00Z,100.1343,100.152,100.1134,100.1476,1870.0
545 +SYN1,2024-11-25T20:28:00Z,100.1476,100.3148,100.1258,100.3138,654.0
546 +SYN1,2024-11-25T20:29:00Z,100.3138,100.4186,100.3131,100.4083,184.0
547 +SYN1,2024-11-25T20:30:00Z,100.4083,100.4149,100.3766,100.3832,2116.0
548 +SYN1,2024-11-25T20:31:00Z,100.3832,100.3906,100.2168,100.2292,1844.0
549 +SYN1,2024-11-25T20:32:00Z,100.2292,100.2443,100.1026,100.1143,250.0
550 +SYN1,2024-11-25T20:33:00Z,100.1143,100.1362,100.1022,100.1027,2672.0
551 +SYN1,2024-11-25T20:34:00Z,100.1027,100.2773,100.1009,100.2669,1698.0
552 +SYN1,2024-11-25T20:35:00Z,100.2669,100.2856,100.2575,100.2784,4301.0
553 +SYN1,2024-11-25T20:37:00Z,100.2784,100.3144,100.2762,100.2987,1647.0
554 +SYN1,2024-11-25T20:38:00Z,100.2987,100.3669,100.2939,100.362,1049.0
555 +SYN1,2024-11-25T20:39:00Z,100.362,100.3636,100.2237,100.2245,4972.0
556 +SYN1,2024-11-25T20:40:00Z,100.2245,100.2797,100.2177,100.2748,3629.0
557 +SYN1,2024-11-25T20:41:00Z,100.2748,100.287,100.2717,100.2752,2789.0
558 +SYN1,2024-11-25T20:42:00Z,100.2752,100.3509,100.2518,100.3484,4986.0
559 +SYN1,2024-11-25T20:43:00Z,100.3484,100.3542,100.1334,100.1457,3990.0
560 +SYN1,2024-11-25T20:44:00Z,100.1457,100.2003,100.1433,100.191,2823.0
561 +SYN1,2024-11-25T20:45:00Z,100.191,100.2035,100.1751,100.1838,1542.0
562 +SYN1,2024-11-25T20:46:00Z,100.1838,100.2828,100.1773,100.274,2604.0
563 +SYN1,2024-11-25T20:47:00Z,100.274,100.2828,100.1383,100.1475,1951.0
564 +SYN1,2024-11-25T20:48:00Z,100.1475,100.1582,100.1245,100.135,658.0
565 +SYN1,2024-11-25T20:49:00Z,100.135,100.1445,100.0557,100.0627,4234.0
566 +SYN1,2024-11-25T20:50:00Z,100.0627,100.1223,100.0549,100.1212,4827.0
567 +SYN1,2024-11-25T20:51:00Z,100.1212,100.1218,100.0828,100.0916,3981.0
568 +SYN1,2024-11-25T20:52:00Z,100.0916,100.1522,100.0845,100.1479,3579.0
569 +SYN1,2024-11-25T20:53:00Z,100.1479,100.1651,100.1438,100.1495,4900.0
570 +SYN1,2024-11-25T20:54:00Z,100.1495,100.3582,100.149,100.3529,3705.0
571 +SYN1,2024-11-25T20:55:00Z,100.3529,100.4455,100.35,100.4401,3863.0
572 +SYN1,2024-11-25T20:56:00Z,100.4401,100.4417,100.3634,100.4029,1823.0
573 +SYN1,2024-11-25T20:57:00Z,100.4029,100.4095,100.3629,100.3724,1478.0
574 +SYN1,2024-11-25T20:58:00Z,100.3724,100.4632,100.3692,100.4444,2690.0
575 +SYN1,2024-11-25T20:59:00Z,100.4444,100.6493,100.4427,100.6412,3382.0
576 +SYN1,2024-11-25T21:00:00Z,100.6412,100.6473,100.5778,100.5789,4006.0
577 +SYN1,2024-11-25T21:01:00Z,100.5789,100.5946,100.5743,100.5833,28.0
578 +SYN1,2024-11-25T21:03:00Z,100.5833,100.5894,100.5807,100.589,11.0
579 +SYN1,2024-11-25T21:05:00Z,100.589,100.5928,100.5497,100.5638,190.0
580 +SYN1,2024-11-25T21:07:00Z,100.5638,100.637,100.5574,100.6088,186.0
581 +SYN1,2024-11-25T21:09:00Z,100.6088,100.6224,100.6044,100.6223,270.0
582 +SYN1,2024-11-25T21:11:00Z,100.6223,100.6254,100.5879,100.5905,23.0
583 +SYN1,2024-11-25T21:12:00Z,100.5905,100.5946,100.5277,100.5341,228.0
584 +SYN1,2024-11-25T21:15:00Z,100.5341,100.5625,100.5268,100.5529,192.0
585 +SYN1,2024-11-25T21:16:00Z,100.5529,100.5574,100.517,100.5295,136.0
586 +SYN1,2024-11-25T21:17:00Z,100.5295,100.5331,100.504,100.5053,102.0
587 +SYN1,2024-11-25T21:18:00Z,100.5053,100.5706,100.504,100.5636,228.0
588 +SYN1,2024-11-25T21:20:00Z,100.5636,100.5693,100.5479,100.5491,71.0
589 +SYN1,2024-11-25T21:21:00Z,100.5491,100.5545,100.5028,100.5059,291.0
590 +SYN1,2024-11-25T21:22:00Z,100.5059,100.5127,100.4809,100.4922,244.0
591 +SYN1,2024-11-25T21:23:00Z,100.4922,100.5123,100.4577,100.4644,167.0
592 +SYN1,2024-11-25T21:25:00Z,100.4644,100.5198,100.4507,100.5177,63.0
593 +SYN1,2024-11-25T21:29:00Z,100.5177,100.53,100.5149,100.5235,271.0
594 +SYN1,2024-11-25T21:30:00Z,100.5235,100.5507,100.5082,100.5461,95.0
595 +SYN1,2024-11-25T21:31:00Z,100.5461,100.5671,100.5054,100.5142,110.0
596 +SYN1,2024-11-25T21:34:00Z,100.5142,100.5205,100.5046,100.5197,192.0
597 +SYN1,2024-11-25T21:38:00Z,100.5197,100.5318,100.4697,100.4797,37.0
598 +SYN1,2024-11-25T21:39:00Z,100.4797,100.4851,100.4588,100.4616,213.0
599 +SYN1,2024-11-25T21:40:00Z,100.4616,100.4756,100.4555,100.4737,125.0
600 +SYN1,2024-11-25T21:43:00Z,100.4737,100.4761,100.4566,100.463,38.0
601 +SYN1,2024-11-25T21:46:00Z,100.463,100.48,100.4523,100.4583,30.0
602 +SYN1,2024-11-25T21:49:00Z,100.4583,100.4751,100.4,100.4054,243.0
603 +SYN1,2024-11-25T21:50:00Z,100.4054,100.4218,100.3514,100.36,32.0
604 +SYN1,2024-11-25T21:51:00Z,100.36,100.4098,100.3419,100.4031,18.0
605 +SYN1,2024-11-25T21:54:00Z,100.4031,100.4493,100.3788,100.4472,129.0
606 +SYN1,2024-11-25T21:56:00Z,100.4472,100.5203,100.4332,100.5091,269.0
607 +SYN1,2024-11-25T21:57:00Z,100.5091,100.5403,100.5088,100.5386,56.0
608 +SYN1,2024-11-25T21:58:00Z,100.5386,100.5454,100.4774,100.4886,255.0
609 +SYN1,2024-11-25T21:59:00Z,100.4886,100.4912,100.4639,100.4724,217.0
610 +SYN1,2024-11-25T22:00:00Z,100.4724,100.479,100.4575,100.4627,166.0
611 +SYN1,2024-11-25T22:01:00Z,100.4627,100.4641,100.4337,100.4404,129.0
612 +SYN1,2024-11-25T22:02:00Z,100.4404,100.5029,100.4307,100.4992,8.0
613 +SYN1,2024-11-25T22:03:00Z,100.4992,100.5747,100.4982,100.5688,281.0
614 +SYN1,2024-11-25T22:05:00Z,100.5688,100.5847,100.5614,100.584,269.0
615 +SYN1,2024-11-25T22:07:00Z,100.584,100.5979,100.5417,100.5503,56.0
616 +SYN1,2024-11-25T22:08:00Z,100.5503,100.5513,100.4361,100.4517,53.0
617 +SYN1,2024-11-25T22:09:00Z,100.4517,100.4651,100.4514,100.463,123.0
618 +SYN1,2024-11-25T22:10:00Z,100.463,100.5611,100.4548,100.5561,30.0
619 +SYN1,2024-11-25T22:11:00Z,100.5561,100.5743,100.4675,100.4759,79.0
620 +SYN1,2024-11-25T22:13:00Z,100.4759,100.4954,100.4696,100.4875,87.0
621 +SYN1,2024-11-25T22:15:00Z,100.4875,100.5253,100.475,100.5227,279.0
622 +SYN1,2024-11-25T22:16:00Z,100.5227,100.6279,100.5008,100.6217,197.0
623 +SYN1,2024-11-25T22:17:00Z,100.6217,100.625,100.6163,100.6181,26.0
624 +SYN1,2024-11-25T22:18:00Z,100.6181,100.6192,100.5762,100.5849,255.0
625 +SYN1,2024-11-25T22:19:00Z,100.5849,100.6367,100.5734,100.6174,58.0
626 +SYN1,2024-11-25T22:20:00Z,100.6174,100.6342,100.6091,100.6187,105.0
627 +SYN1,2024-11-25T22:21:00Z,100.6187,100.6254,100.5946,100.5968,220.0
628 +SYN1,2024-11-25T22:23:00Z,100.5968,100.6015,100.5674,100.578,200.0
629 +SYN1,2024-11-25T22:26:00Z,100.578,100.5834,100.5777,100.583,132.0
630 +SYN1,2024-11-25T22:27:00Z,100.583,100.5841,100.5798,100.5835,182.0
631 +SYN1,2024-11-25T22:30:00Z,100.5835,100.6376,100.5769,100.6298,146.0
632 +SYN1,2024-11-25T22:31:00Z,100.6298,100.6839,100.6258,100.6767,48.0
633 +SYN1,2024-11-25T22:32:00Z,100.6767,100.7366,100.6674,100.7194,125.0
634 +SYN1,2024-11-25T22:34:00Z,100.7194,100.7336,100.7067,100.7177,131.0
635 +SYN1,2024-11-25T22:35:00Z,100.7177,100.7698,100.7038,100.7583,180.0
636 +SYN1,2024-11-25T22:36:00Z,100.7583,100.7598,100.7278,100.7318,176.0
637 +SYN1,2024-11-25T22:37:00Z,100.7318,100.7419,100.674,100.6854,36.0
638 +SYN1,2024-11-25T22:38:00Z,100.6854,100.7404,100.685,100.7311,15.0
639 +SYN1,2024-11-25T22:39:00Z,100.7311,100.7439,100.7257,100.7386,260.0
640 +SYN1,2024-11-25T22:40:00Z,100.7386,100.8388,100.7296,100.8316,39.0
641 +SYN1,2024-11-25T22:41:00Z,100.8316,100.8517,100.8174,100.8495,186.0
642 +SYN1,2024-11-25T22:42:00Z,100.8495,100.919,100.8395,100.9009,104.0
643 +SYN1,2024-11-25T22:43:00Z,100.9009,100.9181,100.8719,100.9169,174.0
644 +SYN1,2024-11-25T22:44:00Z,100.9169,100.9267,100.8875,100.8959,213.0
645 +SYN1,2024-11-25T22:45:00Z,100.8959,100.9654,100.8901,100.952,182.0
646 +SYN1,2024-11-25T22:46:00Z,100.952,100.9647,100.9411,100.9472,44.0
647 +SYN1,2024-11-25T22:51:00Z,100.9472,100.9965,100.944,100.9929,47.0
648 +SYN1,2024-11-25T22:53:00Z,100.9929,101.0588,100.9839,101.0525,5.0
649 +SYN1,2024-11-25T22:55:00Z,101.0525,101.0902,101.0442,101.074,78.0
650 +SYN1,2024-11-25T22:58:00Z,101.074,101.119,101.0531,101.1123,263.0
651 +SYN1,2024-11-25T22:59:00Z,101.1123,101.1261,101.098,101.104,104.0
652 +SYN1,2024-11-25T23:03:00Z,101.104,101.1592,101.094,101.1522,178.0
653 +SYN1,2024-11-25T23:04:00Z,101.1522,101.1789,101.1408,101.1778,110.0
654 +SYN1,2024-11-25T23:06:00Z,101.1778,101.1952,101.1241,101.1361,230.0
655 +SYN1,2024-11-25T23:07:00Z,101.1361,101.1834,101.1346,101.1738,230.0
656 +SYN1,2024-11-25T23:09:00Z,101.1738,101.1899,101.1412,101.1501,63.0
657 +SYN1,2024-11-25T23:13:00Z,101.1501,101.1652,101.1411,101.144,57.0
658 +SYN1,2024-11-25T23:15:00Z,101.144,101.1674,101.1303,101.1659,101.0
659 +SYN1,2024-11-25T23:16:00Z,101.1659,101.1727,101.1368,101.15,39.0
660 +SYN1,2024-11-25T23:17:00Z,101.15,101.1661,101.0766,101.0804,297.0
661 +SYN1,2024-11-25T23:23:00Z,101.0804,101.105,101.0801,101.1013,221.0
662 +SYN1,2024-11-25T23:25:00Z,101.1013,101.1743,101.1005,101.1635,273.0
663 +SYN1,2024-11-25T23:26:00Z,101.1635,101.1927,101.1585,101.1855,226.0
664 +SYN1,2024-11-25T23:29:00Z,101.1855,101.2774,101.1708,101.2604,77.0
665 +SYN1,2024-11-25T23:30:00Z,101.2604,101.2783,101.2555,101.2651,23.0
666 +SYN1,2024-11-25T23:32:00Z,101.2651,101.3074,101.2642,101.294,152.0
667 +SYN1,2024-11-25T23:33:00Z,101.294,101.3302,101.2906,101.3194,294.0
668 +SYN1,2024-11-25T23:34:00Z,101.3194,101.3466,101.3039,101.342,12.0
669 +SYN1,2024-11-25T23:37:00Z,101.342,101.3926,101.3333,101.3876,163.0
670 +SYN1,2024-11-25T23:38:00Z,101.3876,101.4027,101.3712,101.3764,86.0
671 +SYN1,2024-11-25T23:39:00Z,101.3764,101.4243,101.3697,101.4162,195.0
672 +SYN1,2024-11-25T23:41:00Z,101.4162,101.4173,101.3424,101.3558,126.0
673 +SYN1,2024-11-25T23:43:00Z,101.3558,101.3605,101.2928,101.3037,249.0
674 +SYN1,2024-11-25T23:45:00Z,101.3037,101.3327,101.3022,101.3077,172.0
675 +SYN1,2024-11-25T23:46:00Z,101.3077,101.3454,101.292,101.3445,290.0
676 +SYN1,2024-11-25T23:49:00Z,101.3445,101.3779,101.3307,101.3755,59.0
677 +SYN1,2024-11-25T23:50:00Z,101.3755,101.4196,101.3616,101.4093,182.0
678 +SYN1,2024-11-25T23:51:00Z,101.4093,101.4178,101.3727,101.3781,26.0
679 +SYN1,2024-11-25T23:53:00Z,101.3781,101.4007,101.3485,101.3618,290.0
680 +SYN1,2024-11-25T23:54:00Z,101.3618,101.3675,101.3005,101.3027,175.0
681 +SYN1,2024-11-25T23:56:00Z,101.3027,101.3083,101.2549,101.2706,33.0
682 +SYN1,2024-11-25T23:58:00Z,101.2706,101.2753,101.1944,101.1984,98.0
683 +SYN1,2024-11-25T23:59:00Z,101.1984,101.2064,101.1878,101.2025,124.0
684 +SYN1,2024-11-26T00:01:00Z,101.2025,101.2029,101.202,101.2022,274.0
685 +SYN1,2024-11-26T00:02:00Z,101.2022,101.2246,101.1631,101.18,255.0
686 +SYN1,2024-11-26T00:04:00Z,101.18,101.258,101.1766,101.2563,201.0
687 +SYN1,2024-11-26T00:05:00Z,101.2563,101.2656,101.2263,101.2268,194.0
688 +SYN1,2024-11-26T00:06:00Z,101.2268,101.2276,101.1206,101.1277,247.0
689 +SYN1,2024-11-26T00:07:00Z,101.1277,101.1321,101.1185,101.1218,12.0
690 +SYN1,2024-11-26T00:08:00Z,101.1218,101.1592,101.1209,101.1365,259.0
691 +SYN1,2024-11-26T00:11:00Z,101.1365,101.1426,101.1232,101.1257,106.0
692 +SYN1,2024-11-26T00:12:00Z,101.1257,101.126,101.0764,101.0832,175.0
693 +SYN1,2024-11-26T00:13:00Z,101.0832,101.0942,101.0274,101.035,153.0
694 +SYN1,2024-11-26T00:15:00Z,101.035,101.035,101.0031,101.0166,220.0
695 +SYN1,2024-11-26T00:16:00Z,101.0166,101.0675,101.0067,101.0623,76.0
696 +SYN1,2024-11-26T00:19:00Z,101.0623,101.0725,100.991,101.0048,159.0
697 +SYN1,2024-11-26T00:21:00Z,101.0048,101.0216,101.0008,101.0107,227.0
698 +SYN1,2024-11-26T00:22:00Z,101.0107,101.0297,100.9862,101.0199,120.0
699 +SYN1,2024-11-26T00:23:00Z,101.0199,101.039,101.0073,101.0322,249.0
700 +SYN1,2024-11-26T00:24:00Z,101.0322,101.0556,101.0306,101.0548,123.0
701 +SYN1,2024-11-26T00:25:00Z,101.0548,101.076,101.0429,101.0495,100.0
702 +SYN1,2024-11-26T00:27:00Z,101.0495,101.1264,101.0376,101.1204,175.0
703 +SYN1,2024-11-26T00:28:00Z,101.1204,101.1577,101.1112,101.1512,255.0
704 +SYN1,2024-11-26T00:31:00Z,101.1512,101.1712,101.1375,101.1619,276.0
705 +SYN1,2024-11-26T00:33:00Z,101.1619,101.1711,101.1346,101.1387,97.0
706 +SYN1,2024-11-26T00:34:00Z,101.1387,101.1618,101.1246,101.1286,216.0
707 +SYN1,2024-11-26T00:35:00Z,101.1286,101.1712,101.1219,101.1611,59.0
708 +SYN1,2024-11-26T00:37:00Z,101.1611,101.1811,101.16,101.1804,103.0
709 +SYN1,2024-11-26T00:39:00Z,101.1804,101.1962,101.1664,101.1837,135.0
710 +SYN1,2024-11-26T00:41:00Z,101.1837,101.2167,101.1786,101.215,19.0
711 +SYN1,2024-11-26T00:42:00Z,101.215,101.2215,101.2119,101.2193,10.0
712 +SYN1,2024-11-26T00:46:00Z,101.2193,101.2885,101.2008,101.2815,64.0
713 +SYN1,2024-11-26T00:47:00Z,101.2815,101.3541,101.2754,101.3515,182.0
714 +SYN1,2024-11-26T00:48:00Z,101.3515,101.3672,101.3184,101.3336,295.0
715 +SYN1,2024-11-26T00:49:00Z,101.3336,101.3346,101.3067,101.3074,223.0
716 +SYN1,2024-11-26T00:52:00Z,101.3074,101.3412,101.3029,101.3372,67.0
717 +SYN1,2024-11-26T00:53:00Z,101.3372,101.3913,101.3369,101.3712,97.0
718 +SYN1,2024-11-26T00:54:00Z,101.3712,101.4104,101.3623,101.3955,180.0
719 +SYN1,2024-11-26T00:55:00Z,101.3955,101.4306,101.3725,101.4281,62.0
720 +SYN1,2024-11-26T00:58:00Z,101.4281,101.4954,101.4,101.491,212.0
721 +SYN1,2024-11-26T00:59:00Z,101.491,101.5032,101.478,101.4807,176.0
722 +SYN1,2024-11-26T09:00:00Z,101.4807,101.4876,101.4549,101.4656,216.0
723 +SYN1,2024-11-26T09:01:00Z,101.4656,101.4752,101.4364,101.4422,94.0
724 +SYN1,2024-11-26T09:03:00Z,101.4422,101.4633,101.4195,101.4609,258.0
725 +SYN1,2024-11-26T09:04:00Z,101.4609,101.4732,101.3912,101.3955,144.0
726 +SYN1,2024-11-26T09:05:00Z,101.3955,101.4739,101.3923,101.4554,117.0
727 +SYN1,2024-11-26T09:06:00Z,101.4554,101.4608,101.4543,101.4543,34.0
728 +SYN1,2024-11-26T09:07:00Z,101.4543,101.4779,101.4503,101.4557,251.0
729 +SYN1,2024-11-26T09:10:00Z,101.4557,101.4602,101.4168,101.4337,90.0
730 +SYN1,2024-11-26T09:11:00Z,101.4337,101.4719,101.4153,101.452,82.0
731 +SYN1,2024-11-26T09:12:00Z,101.452,101.4706,101.4249,101.4261,3.0
732 +SYN1,2024-11-26T09:15:00Z,101.4261,101.4395,101.4076,101.4098,56.0
733 +SYN1,2024-11-26T09:16:00Z,101.4098,101.4262,101.3643,101.3707,117.0
734 +SYN1,2024-11-26T09:19:00Z,101.3707,101.3765,101.354,101.3681,214.0
735 +SYN1,2024-11-26T09:21:00Z,101.3681,101.3754,101.3448,101.3451,19.0
736 +SYN1,2024-11-26T09:24:00Z,101.3451,101.3455,101.3307,101.3399,85.0
737 +SYN1,2024-11-26T09:25:00Z,101.3399,101.4099,101.3378,101.3975,15.0
738 +SYN1,2024-11-26T09:26:00Z,101.3975,101.4024,101.3763,101.3853,207.0
739 +SYN1,2024-11-26T09:27:00Z,101.3853,101.3858,101.3701,101.3771,253.0
740 +SYN1,2024-11-26T09:28:00Z,101.3771,101.3923,101.3591,101.3862,146.0
741 +SYN1,2024-11-26T09:29:00Z,101.3862,101.3868,101.3649,101.3692,263.0
742 +SYN1,2024-11-26T09:30:00Z,101.3692,101.3696,101.341,101.3516,184.0
743 +SYN1,2024-11-26T09:32:00Z,101.3516,101.3647,101.3175,101.3289,105.0
744 +SYN1,2024-11-26T09:34:00Z,101.3289,101.3425,101.2875,101.307,256.0
745 +SYN1,2024-11-26T09:36:00Z,101.307,101.3419,101.2978,101.3281,135.0
746 +SYN1,2024-11-26T09:38:00Z,101.3281,101.3329,101.2901,101.2951,224.0
747 +SYN1,2024-11-26T09:40:00Z,101.2951,101.2992,101.2735,101.2833,26.0
748 +SYN1,2024-11-26T09:41:00Z,101.2833,101.2873,101.2656,101.2679,1.0
749 +SYN1,2024-11-26T09:42:00Z,101.2679,101.2754,101.2393,101.2397,295.0
750 +SYN1,2024-11-26T09:43:00Z,101.2397,101.2424,101.2029,101.2063,38.0
751 +SYN1,2024-11-26T09:46:00Z,101.2063,101.2293,101.2027,101.2127,211.0
752 +SYN1,2024-11-26T09:48:00Z,101.2127,101.2364,101.2107,101.236,91.0
753 +SYN1,2024-11-26T09:49:00Z,101.236,101.2429,101.2098,101.211,94.0
754 +SYN1,2024-11-26T09:51:00Z,101.211,101.2252,101.2004,101.2216,77.0
755 +SYN1,2024-11-26T09:53:00Z,101.2216,101.2342,101.1662,101.1693,296.0
756 +SYN1,2024-11-26T09:54:00Z,101.1693,101.174,101.1263,101.1294,209.0
757 +SYN1,2024-11-26T09:56:00Z,101.1294,101.1646,101.1157,101.1461,219.0
758 +SYN1,2024-11-26T09:57:00Z,101.1461,101.1519,101.1166,101.1252,164.0
759 +SYN1,2024-11-26T09:58:00Z,101.1252,101.238,101.1209,101.2272,83.0
760 +SYN1,2024-11-26T09:59:00Z,101.2272,101.2315,101.2252,101.2266,154.0
761 +SYN1,2024-11-26T10:00:00Z,101.2266,101.2569,101.2222,101.2387,253.0
762 +SYN1,2024-11-26T10:01:00Z,101.2387,101.275,101.2375,101.2629,42.0
763 +SYN1,2024-11-26T10:02:00Z,101.2629,101.2774,101.2608,101.2733,258.0
764 +SYN1,2024-11-26T10:05:00Z,101.2733,101.2904,101.2647,101.2843,149.0
765 +SYN1,2024-11-26T10:06:00Z,101.2843,101.3526,101.26,101.3367,106.0
766 +SYN1,2024-11-26T10:08:00Z,101.3367,101.4214,101.3273,101.4114,1.0
767 +SYN1,2024-11-26T10:12:00Z,101.4114,101.4944,101.3983,101.4846,246.0
768 +SYN1,2024-11-26T10:13:00Z,101.4846,101.4999,101.4803,101.4933,275.0
769 +SYN1,2024-11-26T10:14:00Z,101.4933,101.5571,101.4928,101.5512,32.0
770 +SYN1,2024-11-26T10:16:00Z,101.5512,101.5518,101.5181,101.5214,205.0
771 +SYN1,2024-11-26T10:18:00Z,101.5214,101.5279,101.4772,101.4823,141.0
772 +SYN1,2024-11-26T10:19:00Z,101.4823,101.4848,101.4654,101.4803,183.0
773 +SYN1,2024-11-26T10:20:00Z,101.4803,101.4947,101.4413,101.4421,27.0
774 +SYN1,2024-11-26T10:21:00Z,101.4421,101.4889,101.4377,101.4752,44.0
775 +SYN1,2024-11-26T10:22:00Z,101.4752,101.5201,101.4693,101.5183,57.0
776 +SYN1,2024-11-26T10:23:00Z,101.5183,101.5546,101.5155,101.5519,177.0
777 +SYN1,2024-11-26T10:24:00Z,101.5519,101.562,101.5026,101.5114,126.0
778 +SYN1,2024-11-26T10:25:00Z,101.5114,101.5332,101.5092,101.5317,238.0
779 +SYN1,2024-11-26T10:28:00Z,101.5317,101.6313,101.5284,101.6181,192.0
780 +SYN1,2024-11-26T10:29:00Z,101.6181,101.6389,101.5887,101.5953,104.0
781 +SYN1,2024-11-26T10:30:00Z,101.5953,101.6148,101.5714,101.5832,44.0
782 +SYN1,2024-11-26T10:31:00Z,101.5832,101.5871,101.5368,101.5647,53.0
783 +SYN1,2024-11-26T10:32:00Z,101.5647,101.6105,101.5572,101.6072,266.0
784 +SYN1,2024-11-26T10:33:00Z,101.6072,101.6179,101.5706,101.5719,284.0
785 +SYN1,2024-11-26T10:34:00Z,101.5719,101.6394,101.5567,101.6285,196.0
786 +SYN1,2024-11-26T10:35:00Z,101.6285,101.6849,101.6247,101.6834,227.0
787 +SYN1,2024-11-26T10:36:00Z,101.6834,101.6963,101.6452,101.6546,271.0
788 +SYN1,2024-11-26T10:38:00Z,101.6546,101.6731,101.6212,101.6263,69.0
789 +SYN1,2024-11-26T10:39:00Z,101.6263,101.6319,101.6134,101.6157,285.0
790 +SYN1,2024-11-26T10:40:00Z,101.6157,101.6473,101.6135,101.6383,113.0
791 +SYN1,2024-11-26T10:43:00Z,101.6383,101.6416,101.5388,101.5531,205.0
792 +SYN1,2024-11-26T10:45:00Z,101.5531,101.598,101.5525,101.5904,158.0
793 +SYN1,2024-11-26T10:46:00Z,101.5904,101.6286,101.5816,101.6242,188.0
794 +SYN1,2024-11-26T10:48:00Z,101.6242,101.669,101.6124,101.663,249.0
795 +SYN1,2024-11-26T10:51:00Z,101.663,101.7163,101.6534,101.7112,248.0
796 +SYN1,2024-11-26T10:52:00Z,101.7112,101.744,101.7107,101.7419,255.0
797 +SYN1,2024-11-26T11:01:00Z,101.7419,101.7498,101.7186,101.7308,299.0
798 +SYN1,2024-11-26T11:02:00Z,101.7308,101.8193,101.7294,101.8143,209.0
799 +SYN1,2024-11-26T11:04:00Z,101.8143,101.8264,101.8076,101.8089,25.0
800 +SYN1,2024-11-26T11:05:00Z,101.8089,101.8168,101.7892,101.7927,241.0
801 +SYN1,2024-11-26T11:09:00Z,101.7927,101.7997,101.7284,101.7414,264.0
802 +SYN1,2024-11-26T11:10:00Z,101.7414,101.7552,101.698,101.6999,193.0
803 +SYN1,2024-11-26T11:11:00Z,101.6999,101.7049,101.5517,101.5602,153.0
804 +SYN1,2024-11-26T11:12:00Z,101.5602,101.6709,101.5518,101.6698,40.0
805 +SYN1,2024-11-26T11:16:00Z,101.6698,101.7242,101.6544,101.7189,142.0
806 +SYN1,2024-11-26T11:17:00Z,101.7189,101.7315,101.6646,101.6678,255.0
807 +SYN1,2024-11-26T11:21:00Z,101.6678,101.6956,101.6591,101.6899,91.0
808 +SYN1,2024-11-26T11:22:00Z,101.6899,101.7213,101.6881,101.6915,53.0
809 +SYN1,2024-11-26T11:23:00Z,101.6915,101.7,101.6205,101.627,189.0
810 +SYN1,2024-11-26T11:24:00Z,101.627,101.6658,101.6213,101.6605,235.0
811 +SYN1,2024-11-26T11:26:00Z,101.6605,101.6645,101.6124,101.6223,229.0
812 +SYN1,2024-11-26T11:27:00Z,101.6223,101.6485,101.6082,101.6429,202.0
813 +SYN1,2024-11-26T11:28:00Z,101.6429,101.6669,101.642,101.6618,84.0
814 +SYN1,2024-11-26T11:29:00Z,101.6618,101.6932,101.6586,101.6789,119.0
815 +SYN1,2024-11-26T11:32:00Z,101.6789,101.6797,101.6425,101.6445,206.0
816 +SYN1,2024-11-26T11:34:00Z,101.6445,101.6665,101.641,101.6569,226.0
817 +SYN1,2024-11-26T11:38:00Z,101.6569,101.6728,101.5383,101.5465,122.0
818 +SYN1,2024-11-26T11:39:00Z,101.5465,101.5734,101.5354,101.5684,163.0
819 +SYN1,2024-11-26T11:40:00Z,101.5684,101.5771,101.5181,101.5275,182.0
820 +SYN1,2024-11-26T11:41:00Z,101.5275,101.5467,101.4895,101.4912,116.0
821 +SYN1,2024-11-26T11:44:00Z,101.4912,101.4913,101.4753,101.4758,59.0
822 +SYN1,2024-11-26T11:45:00Z,101.4758,101.5455,101.4733,101.5371,249.0
823 +SYN1,2024-11-26T11:46:00Z,101.5371,101.5372,101.5212,101.5232,278.0
824 +SYN1,2024-11-26T11:50:00Z,101.5232,101.5305,101.4813,101.482,186.0
825 +SYN1,2024-11-26T11:51:00Z,101.482,101.5083,101.4777,101.5046,108.0
826 +SYN1,2024-11-26T11:53:00Z,101.5046,101.5268,101.413,101.4285,82.0
827 +SYN1,2024-11-26T11:54:00Z,101.4285,101.4515,101.4109,101.4452,208.0
828 +SYN1,2024-11-26T11:56:00Z,101.4452,101.4477,101.386,101.4027,153.0
829 +SYN1,2024-11-26T11:58:00Z,101.4027,101.4633,101.398,101.4549,211.0
830 +SYN1,2024-11-26T11:59:00Z,101.4549,101.6082,101.4459,101.5999,287.0
831 +SYN1,2024-11-26T12:00:00Z,101.5999,101.6347,101.5984,101.6269,45.0
832 +SYN1,2024-11-26T12:06:00Z,101.6269,101.6823,101.6139,101.674,119.0
833 +SYN1,2024-11-26T12:07:00Z,101.674,101.6854,101.6521,101.6682,68.0
834 +SYN1,2024-11-26T12:08:00Z,101.6682,101.7286,101.653,101.7244,40.0
835 +SYN1,2024-11-26T12:09:00Z,101.7244,101.7564,101.7236,101.752,81.0
836 +SYN1,2024-11-26T12:10:00Z,101.752,101.7726,101.6586,101.662,89.0
837 +SYN1,2024-11-26T12:12:00Z,101.662,101.6707,101.6353,101.6464,133.0
838 +SYN1,2024-11-26T12:14:00Z,101.6464,101.6829,101.6422,101.6827,259.0
839 +SYN1,2024-11-26T12:17:00Z,101.6827,101.6864,101.6578,101.6705,236.0
840 +SYN1,2024-11-26T12:18:00Z,101.6705,101.6856,101.5989,101.6139,106.0
841 +SYN1,2024-11-26T12:20:00Z,101.6139,101.6178,101.5521,101.5542,173.0
842 +SYN1,2024-11-26T12:22:00Z,101.5542,101.5677,101.5292,101.54,277.0
843 +SYN1,2024-11-26T12:24:00Z,101.54,101.611,101.5372,101.597,24.0
844 +SYN1,2024-11-26T12:25:00Z,101.597,101.6008,101.5793,101.5836,37.0
845 +SYN1,2024-11-26T12:28:00Z,101.5836,101.6027,101.5786,101.5941,230.0
846 +SYN1,2024-11-26T12:29:00Z,101.5941,101.6074,101.5609,101.5802,233.0
847 +SYN1,2024-11-26T12:30:00Z,101.5802,101.5956,101.5409,101.556,118.0
848 +SYN1,2024-11-26T12:32:00Z,101.556,101.592,101.5429,101.5892,294.0
849 +SYN1,2024-11-26T12:35:00Z,101.5892,101.6241,101.5832,101.6223,156.0
850 +SYN1,2024-11-26T12:37:00Z,101.6223,101.6321,101.6131,101.6234,299.0
851 +SYN1,2024-11-26T12:38:00Z,101.6234,101.6261,101.6123,101.6155,115.0
852 +SYN1,2024-11-26T12:39:00Z,101.6155,101.7155,101.6103,101.7045,99.0
853 +SYN1,2024-11-26T12:40:00Z,101.7045,101.7112,101.6923,101.7069,146.0
854 +SYN1,2024-11-26T12:41:00Z,101.7069,101.7475,101.6926,101.7401,34.0
855 +SYN1,2024-11-26T12:42:00Z,101.7401,101.7427,101.6925,101.701,14.0
856 +SYN1,2024-11-26T12:43:00Z,101.701,101.7017,101.6435,101.6582,210.0
857 +SYN1,2024-11-26T12:44:00Z,101.6582,101.6631,101.5829,101.5992,252.0
858 +SYN1,2024-11-26T12:45:00Z,101.5992,101.6184,101.5895,101.6041,156.0
859 +SYN1,2024-11-26T12:46:00Z,101.6041,101.6188,101.5542,101.5643,122.0
860 +SYN1,2024-11-26T12:47:00Z,101.5643,101.5674,101.5358,101.5375,186.0
861 +SYN1,2024-11-26T12:53:00Z,101.5375,101.5407,101.5088,101.5095,261.0
862 +SYN1,2024-11-26T12:55:00Z,101.5095,101.5118,101.4481,101.4648,64.0
863 +SYN1,2024-11-26T12:57:00Z,101.4648,101.5209,101.4624,101.5165,209.0
864 +SYN1,2024-11-26T12:58:00Z,101.5165,101.6193,101.4904,101.6156,87.0
865 +SYN1,2024-11-26T12:59:00Z,101.6156,101.6232,101.6106,101.6174,295.0
866 +SYN1,2024-11-26T13:00:00Z,101.6174,101.6324,101.6002,101.6053,69.0
867 +SYN1,2024-11-26T13:01:00Z,101.6053,101.6525,101.5999,101.6516,49.0
868 +SYN1,2024-11-26T13:02:00Z,101.6516,101.6703,101.6443,101.6636,163.0
869 +SYN1,2024-11-26T13:03:00Z,101.6636,101.6719,101.6281,101.6357,195.0
870 +SYN1,2024-11-26T13:04:00Z,101.6357,101.7232,101.6188,101.7117,117.0
871 +SYN1,2024-11-26T13:06:00Z,101.7117,101.7137,101.7065,101.7107,126.0
872 +SYN1,2024-11-26T13:07:00Z,101.7107,101.746,101.7051,101.7342,231.0
873 +SYN1,2024-11-26T13:08:00Z,101.7342,101.7447,101.6678,101.6752,7.0
874 +SYN1,2024-11-26T13:10:00Z,101.6752,101.6803,101.6537,101.6568,275.0
875 +SYN1,2024-11-26T13:11:00Z,101.6568,101.711,101.6513,101.708,123.0
876 +SYN1,2024-11-26T13:13:00Z,101.708,101.7127,101.6468,101.661,266.0
877 +SYN1,2024-11-26T13:15:00Z,101.661,101.6961,101.6551,101.6934,146.0
878 +SYN1,2024-11-26T13:16:00Z,101.6934,101.7502,101.6913,101.7421,186.0
879 +SYN1,2024-11-26T13:18:00Z,101.7421,101.8073,101.7376,101.8,247.0
880 +SYN1,2024-11-26T13:19:00Z,101.8,101.878,101.7912,101.8763,290.0
881 +SYN1,2024-11-26T13:22:00Z,101.8763,101.9285,101.8707,101.9217,266.0
882 +SYN1,2024-11-26T13:23:00Z,101.9217,101.9286,101.8904,101.8951,197.0
883 +SYN1,2024-11-26T13:24:00Z,101.8951,101.9409,101.8904,101.9369,91.0
884 +SYN1,2024-11-26T13:25:00Z,101.9369,101.9525,101.9265,101.9362,270.0
885 +SYN1,2024-11-26T13:26:00Z,101.9362,101.9798,101.9224,101.9707,13.0
886 +SYN1,2024-11-26T13:30:00Z,101.9707,102.0846,101.9636,102.0748,181.0
887 +SYN1,2024-11-26T13:33:00Z,102.0748,102.0828,102.0718,102.0788,38.0
888 +SYN1,2024-11-26T13:35:00Z,102.0788,102.0796,102.0215,102.0223,65.0
889 +SYN1,2024-11-26T13:37:00Z,102.0223,102.0305,101.9751,101.9793,204.0
890 +SYN1,2024-11-26T13:40:00Z,101.9793,102.0092,101.9659,102.0073,247.0
891 +SYN1,2024-11-26T13:41:00Z,102.0073,102.012,101.9827,101.9971,8.0
892 +SYN1,2024-11-26T13:42:00Z,101.9971,102.0024,101.952,101.9663,130.0
893 +SYN1,2024-11-26T13:43:00Z,101.9663,102.0438,101.957,102.0146,96.0
894 +SYN1,2024-11-26T13:45:00Z,102.0146,102.0151,101.9616,101.9679,154.0
895 +SYN1,2024-11-26T13:46:00Z,101.9679,101.9686,101.9091,101.913,243.0
896 +SYN1,2024-11-26T13:47:00Z,101.913,101.9294,101.9089,101.9283,3.0
897 +SYN1,2024-11-26T13:48:00Z,101.9283,101.9365,101.8206,101.8282,251.0
898 +SYN1,2024-11-26T13:51:00Z,101.8282,101.9053,101.8001,101.9008,279.0
899 +SYN1,2024-11-26T13:52:00Z,101.9008,101.9482,101.8859,101.9298,218.0
900 +SYN1,2024-11-26T13:54:00Z,101.9298,101.9369,101.8942,101.9062,67.0
901 +SYN1,2024-11-26T13:56:00Z,101.9062,101.9127,101.8805,101.8935,128.0
902 +SYN1,2024-11-26T13:57:00Z,101.8935,101.9087,101.8875,101.9042,193.0
903 +SYN1,2024-11-26T14:00:00Z,101.9042,101.9179,101.8967,101.9167,128.0
904 +SYN1,2024-11-26T14:01:00Z,101.9167,101.9389,101.9119,101.9386,215.0
905 +SYN1,2024-11-26T14:02:00Z,101.9386,101.9438,101.9293,101.9374,159.0
906 +SYN1,2024-11-26T14:03:00Z,101.9374,101.9411,101.9355,101.9387,87.0
907 +SYN1,2024-11-26T14:04:00Z,101.9387,101.9677,101.9289,101.9502,59.0
908 +SYN1,2024-11-26T14:05:00Z,101.9502,101.9782,101.9496,101.9676,151.0
909 +SYN1,2024-11-26T14:06:00Z,101.9676,102.0962,101.9621,102.0956,266.0
910 +SYN1,2024-11-26T14:08:00Z,102.0956,102.1009,102.0296,102.0331,23.0
911 +SYN1,2024-11-26T14:09:00Z,102.0331,102.0422,102.0068,102.0085,64.0
912 +SYN1,2024-11-26T14:11:00Z,102.0085,102.0102,102.0031,102.0052,253.0
913 +SYN1,2024-11-26T14:12:00Z,102.0052,102.0579,102.0015,102.0412,55.0
914 +SYN1,2024-11-26T14:13:00Z,102.0412,102.0463,101.9984,102.0104,156.0
915 +SYN1,2024-11-26T14:14:00Z,102.0104,102.0138,101.9947,101.9966,267.0
916 +SYN1,2024-11-26T14:15:00Z,101.9966,102.0571,101.9891,102.0445,207.0
917 +SYN1,2024-11-26T14:16:00Z,102.0445,102.0531,102.0271,102.0279,273.0
918 +SYN1,2024-11-26T14:19:00Z,102.0279,102.0792,102.0169,102.0753,243.0
919 +SYN1,2024-11-26T14:20:00Z,102.0753,102.0834,102.07,102.0825,149.0
920 +SYN1,2024-11-26T14:22:00Z,102.0825,102.1655,102.0812,102.156,106.0
921 +SYN1,2024-11-26T14:23:00Z,102.156,102.1697,102.1265,102.1408,235.0
922 +SYN1,2024-11-26T14:24:00Z,102.1408,102.1447,102.1122,102.116,127.0
923 +SYN1,2024-11-26T14:26:00Z,102.116,102.1515,102.1146,102.1465,194.0
924 +SYN1,2024-11-26T14:27:00Z,102.1465,102.152,102.1237,102.1368,199.0
925 +SYN1,2024-11-26T14:30:00Z,102.1368,102.1471,102.0768,102.0834,3283.0
926 +SYN1,2024-11-26T14:31:00Z,102.0834,102.108,102.0637,102.0639,1773.0
927 +SYN1,2024-11-26T14:32:00Z,102.0639,102.073,101.8608,101.8752,1295.0
928 +SYN1,2024-11-26T14:33:00Z,101.8752,101.8885,101.7456,101.7492,3569.0
929 +SYN1,2024-11-26T14:34:00Z,101.7492,101.7873,101.7448,101.7716,752.0
930 +SYN1,2024-11-26T14:35:00Z,101.7716,101.7737,101.7377,101.7452,4435.0
931 +SYN1,2024-11-26T14:36:00Z,101.7452,101.8398,101.7393,101.8245,4630.0
932 +SYN1,2024-11-26T14:37:00Z,101.8245,101.8738,101.8043,101.8722,1134.0
933 +SYN1,2024-11-26T14:38:00Z,101.8722,101.9198,101.8588,101.902,3954.0
934 +SYN1,2024-11-26T14:39:00Z,101.902,102.0,101.8978,101.9957,2295.0
935 +SYN1,2024-11-26T14:40:00Z,101.9957,102.0027,101.9072,101.9114,1438.0
936 +SYN1,2024-11-26T14:41:00Z,101.9114,101.9549,101.9112,101.9479,870.0
937 +SYN1,2024-11-26T14:42:00Z,101.9479,102.0034,101.9349,101.9965,3604.0
938 +SYN1,2024-11-26T14:43:00Z,101.9965,102.0511,101.9954,102.0305,3864.0
939 +SYN1,2024-11-26T14:44:00Z,102.0305,102.0547,102.0265,102.0464,3791.0
940 +SYN1,2024-11-26T14:45:00Z,102.0464,102.058,102.0073,102.0175,1193.0
941 +SYN1,2024-11-26T14:46:00Z,102.0175,102.051,101.9354,101.9509,1728.0
942 +SYN1,2024-11-26T14:47:00Z,101.9509,102.0956,101.9386,102.084,3557.0
943 +SYN1,2024-11-26T14:48:00Z,102.084,102.1713,102.0816,102.1639,3749.0
944 +SYN1,2024-11-26T14:49:00Z,102.1639,102.2837,102.1548,102.2817,2059.0
945 +SYN1,2024-11-26T14:50:00Z,102.2817,102.3665,102.2743,102.3624,1617.0
946 +SYN1,2024-11-26T14:51:00Z,102.3624,102.3856,102.3511,102.3546,4321.0
947 +SYN1,2024-11-26T14:52:00Z,102.3546,102.3583,102.3499,102.3534,2940.0
948 +SYN1,2024-11-26T14:53:00Z,102.3534,102.3535,102.333,102.338,3151.0
949 +SYN1,2024-11-26T14:54:00Z,102.338,102.3833,102.3195,102.3832,994.0
950 +SYN1,2024-11-26T14:55:00Z,102.3832,102.389,102.1534,102.1569,1391.0
951 +SYN1,2024-11-26T14:56:00Z,102.1569,102.166,102.1133,102.1155,3472.0
952 +SYN1,2024-11-26T14:57:00Z,102.1155,102.1297,102.1058,102.1277,1408.0
953 +SYN1,2024-11-26T14:58:00Z,102.1277,102.1418,102.096,102.1037,324.0
954 +SYN1,2024-11-26T14:59:00Z,102.1037,102.1115,101.9367,101.9625,339.0
955 +SYN1,2024-11-26T15:00:00Z,101.9625,101.9711,101.8976,101.9036,4149.0
956 +SYN1,2024-11-26T15:01:00Z,101.9036,101.9094,101.6491,101.675,4138.0
957 +SYN1,2024-11-26T15:02:00Z,101.675,101.7333,101.6706,101.7251,847.0
958 +SYN1,2024-11-26T15:03:00Z,101.7251,101.7309,101.606,101.6107,2411.0
959 +SYN1,2024-11-26T15:04:00Z,101.6107,101.6879,101.6071,101.6715,3673.0
960 +SYN1,2024-11-26T15:05:00Z,101.6715,101.7416,101.6665,101.7397,2305.0
961 +SYN1,2024-11-26T15:06:00Z,101.7397,101.7642,101.7275,101.7571,690.0
962 +SYN1,2024-11-26T15:07:00Z,101.7571,101.8297,101.7547,101.8178,1448.0
963 +SYN1,2024-11-26T15:08:00Z,101.8178,101.8837,101.8128,101.8681,389.0
964 +SYN1,2024-11-26T15:09:00Z,101.8681,101.9697,101.8642,101.9643,1293.0
965 +SYN1,2024-11-26T15:10:00Z,101.9643,102.073,101.963,102.0671,1453.0
966 +SYN1,2024-11-26T15:11:00Z,102.0671,102.0833,102.0294,102.0377,3269.0
967 +SYN1,2024-11-26T15:12:00Z,102.0377,102.2343,102.0361,102.2228,2264.0
968 +SYN1,2024-11-26T15:13:00Z,102.2228,102.2255,102.0617,102.0699,492.0
969 +SYN1,2024-11-26T15:14:00Z,102.0699,102.0776,102.0405,102.0519,4396.0
970 +SYN1,2024-11-26T15:15:00Z,102.0519,102.1165,102.0431,102.0962,152.0
971 +SYN1,2024-11-26T15:16:00Z,102.0962,102.1498,102.0884,102.1349,1580.0
972 +SYN1,2024-11-26T15:17:00Z,102.1349,102.2688,102.1255,102.2523,165.0
973 +SYN1,2024-11-26T15:18:00Z,102.2523,102.2524,102.1471,102.163,3387.0
974 +SYN1,2024-11-26T15:19:00Z,102.163,102.2246,102.1504,102.2212,784.0
975 +SYN1,2024-11-26T15:20:00Z,102.2212,102.2736,102.2172,102.2686,2863.0
976 +SYN1,2024-11-26T15:21:00Z,102.2686,102.2938,102.2629,102.2851,4417.0
977 +SYN1,2024-11-26T15:22:00Z,102.2851,102.2881,102.1921,102.1994,1605.0
978 +SYN1,2024-11-26T15:23:00Z,102.1994,102.276,102.1979,102.2599,1347.0
979 +SYN1,2024-11-26T15:24:00Z,102.2599,102.2773,102.25,102.271,1320.0
980 +SYN1,2024-11-26T15:25:00Z,102.271,102.2789,102.2437,102.245,549.0
981 +SYN1,2024-11-26T15:26:00Z,102.245,102.3705,102.2348,102.3586,797.0
982 +SYN1,2024-11-26T15:27:00Z,102.3586,102.4689,102.351,102.4639,819.0
983 +SYN1,2024-11-26T15:28:00Z,102.4639,102.4659,102.3427,102.3449,122.0
984 +SYN1,2024-11-26T15:29:00Z,102.3449,102.3496,102.3221,102.325,652.0
985 +SYN1,2024-11-26T15:30:00Z,102.325,102.4149,102.3136,102.4055,1946.0
986 +SYN1,2024-11-26T15:31:00Z,102.4055,102.4705,102.3864,102.4663,1461.0
987 +SYN1,2024-11-26T15:32:00Z,102.4663,102.5337,102.466,102.5195,963.0
988 +SYN1,2024-11-26T15:33:00Z,102.5195,102.5224,102.4907,102.4907,500.0
989 +SYN1,2024-11-26T15:34:00Z,102.4907,102.546,102.4905,102.5398,1322.0
990 +SYN1,2024-11-26T15:35:00Z,102.5398,102.5731,102.5356,102.5703,1263.0
991 +SYN1,2024-11-26T15:36:00Z,102.5703,102.6202,102.5656,102.6016,2241.0
992 +SYN1,2024-11-26T15:37:00Z,102.6016,102.6025,102.542,102.5443,3841.0
993 +SYN1,2024-11-26T15:38:00Z,102.5443,102.6233,102.5386,102.621,3548.0
994 +SYN1,2024-11-26T15:39:00Z,102.621,102.745,102.6141,102.7364,4902.0
995 +SYN1,2024-11-26T15:40:00Z,102.7364,102.8181,102.7253,102.8127,219.0
996 +SYN1,2024-11-26T15:41:00Z,102.8127,102.8386,102.8057,102.8269,4617.0
997 +SYN1,2024-11-26T15:42:00Z,102.8269,102.9621,102.8171,102.952,1939.0
998 +SYN1,2024-11-26T15:43:00Z,102.952,102.9738,102.9056,102.9082,379.0
999 +SYN1,2024-11-26T15:44:00Z,102.9082,102.9183,102.8892,102.8968,1477.0
1000 +SYN1,2024-11-26T15:45:00Z,102.8968,103.0494,102.8888,103.0447,3556.0
1001 +SYN1,2024-11-26T15:46:00Z,103.0447,103.0538,102.9854,102.9862,1842.0
1002 +SYN1,2024-11-26T15:47:00Z,102.9862,102.9989,102.9856,102.9858,2951.0
1003 +SYN1,2024-11-26T15:48:00Z,102.9858,103.0441,102.9824,103.0346,3354.0
1004 +SYN1,2024-11-26T15:49:00Z,103.0346,103.0483,102.9926,103.0012,4831.0
1005 +SYN1,2024-11-26T15:50:00Z,103.0012,103.0049,102.8816,102.9007,2277.0
1006 +SYN1,2024-11-26T15:51:00Z,102.9007,102.922,102.8115,102.8119,734.0
1007 +SYN1,2024-11-26T15:52:00Z,102.8119,102.8122,102.7105,102.7201,3269.0
1008 +SYN1,2024-11-26T15:53:00Z,102.7201,102.7248,102.6768,102.6818,4282.0
1009 +SYN1,2024-11-26T15:54:00Z,102.6818,102.6887,102.6236,102.6239,566.0
1010 +SYN1,2024-11-26T15:55:00Z,102.6239,102.6319,102.6202,102.6293,1669.0
1011 +SYN1,2024-11-26T15:56:00Z,102.6293,102.6354,102.4761,102.4898,571.0
1012 +SYN1,2024-11-26T15:57:00Z,102.4898,102.5239,102.47,102.5194,727.0
1013 +SYN1,2024-11-26T15:58:00Z,102.5194,102.52,102.4601,102.4643,2148.0
1014 +SYN1,2024-11-26T15:59:00Z,102.4643,102.4678,102.3138,102.3228,212.0
1015 +SYN1,2024-11-26T16:00:00Z,102.3228,102.3288,102.2898,102.3068,3331.0
1016 +SYN1,2024-11-26T16:01:00Z,102.3068,102.3248,102.301,102.3126,192.0
1017 +SYN1,2024-11-26T16:02:00Z,102.3126,102.3198,102.2841,102.2869,4805.0
1018 +SYN1,2024-11-26T16:03:00Z,102.2869,102.3656,102.2804,102.3368,1027.0
1019 +SYN1,2024-11-26T16:04:00Z,102.3368,102.3582,102.3219,102.3543,4536.0
1020 +SYN1,2024-11-26T16:05:00Z,102.3543,102.5099,102.3504,102.4985,2819.0
1021 +SYN1,2024-11-26T16:06:00Z,102.4985,102.5135,102.3847,102.3919,506.0
1022 +SYN1,2024-11-26T16:07:00Z,102.3919,102.4307,102.391,102.4147,2256.0
1023 +SYN1,2024-11-26T16:08:00Z,102.4147,102.4177,102.3316,102.3404,4339.0
1024 +SYN1,2024-11-26T16:09:00Z,102.3404,102.4035,102.3238,102.4012,2805.0
1025 +SYN1,2024-11-26T16:10:00Z,102.4012,102.5017,102.3949,102.4884,2595.0
1026 +SYN1,2024-11-26T16:11:00Z,102.4884,102.5044,102.3665,102.3744,3395.0
1027 +SYN1,2024-11-26T16:12:00Z,102.3744,102.3821,102.2976,102.3283,140.0
1028 +SYN1,2024-11-26T16:13:00Z,102.3283,102.399,102.3281,102.3945,3967.0
1029 +SYN1,2024-11-26T16:14:00Z,102.3945,102.4067,102.3166,102.3257,1779.0
1030 +SYN1,2024-11-26T16:15:00Z,102.3257,102.3339,102.2959,102.3142,4563.0
1031 +SYN1,2024-11-26T16:16:00Z,102.3142,102.3193,102.2282,102.2311,2036.0
1032 +SYN1,2024-11-26T16:17:00Z,102.2311,102.2404,102.2106,102.2159,992.0
1033 +SYN1,2024-11-26T16:18:00Z,102.2159,102.2161,102.1756,102.1769,1827.0
1034 +SYN1,2024-11-26T16:19:00Z,102.1769,102.2476,102.1678,102.2319,1988.0
1035 +SYN1,2024-11-26T16:20:00Z,102.2319,102.2359,102.1345,102.1412,4620.0
1036 +SYN1,2024-11-26T16:21:00Z,102.1412,102.2264,102.1288,102.2228,222.0
1037 +SYN1,2024-11-26T16:22:00Z,102.2228,102.3157,102.2183,102.3065,4471.0
1038 +SYN1,2024-11-26T16:23:00Z,102.3065,102.3246,102.2999,102.3032,2414.0
1039 +SYN1,2024-11-26T16:24:00Z,102.3032,102.3144,102.1329,102.1342,3104.0
1040 +SYN1,2024-11-26T16:25:00Z,102.1342,102.1425,101.8882,101.8947,4103.0
1041 +SYN1,2024-11-26T16:26:00Z,101.8947,101.8963,101.8561,101.8796,1640.0
1042 +SYN1,2024-11-26T16:27:00Z,101.8796,101.9598,101.8707,101.9594,1291.0
1043 +SYN1,2024-11-26T16:28:00Z,101.9594,102.0842,101.9461,102.0831,3370.0
1044 +SYN1,2024-11-26T16:29:00Z,102.0831,102.2294,102.0812,102.2174,840.0
1045 +SYN1,2024-11-26T16:30:00Z,102.2174,102.2347,102.1632,102.1747,1089.0
1046 +SYN1,2024-11-26T16:31:00Z,102.1747,102.1749,102.1331,102.1431,4373.0
1047 +SYN1,2024-11-26T16:32:00Z,102.1431,102.1671,102.1382,102.1616,4239.0
1048 +SYN1,2024-11-26T16:33:00Z,102.1616,102.1713,102.0059,102.011,667.0
1049 +SYN1,2024-11-26T16:34:00Z,102.011,102.0362,101.9945,102.0335,1366.0
1050 +SYN1,2024-11-26T16:35:00Z,102.0335,102.0369,101.9068,101.9208,403.0
1051 +SYN1,2024-11-26T16:36:00Z,101.9208,101.9592,101.9151,101.9505,1556.0
1052 +SYN1,2024-11-26T16:37:00Z,101.9505,101.9506,101.8739,101.8816,4833.0
1053 +SYN1,2024-11-26T16:38:00Z,101.8816,101.8822,101.8393,101.8564,3283.0
1054 +SYN1,2024-11-26T16:40:00Z,101.8564,101.8593,101.5844,101.6074,4064.0
1055 +SYN1,2024-11-26T16:41:00Z,101.6074,101.6565,101.607,101.654,3885.0
1056 +SYN1,2024-11-26T16:42:00Z,101.654,101.6837,101.6463,101.6738,3888.0
1057 +SYN1,2024-11-26T16:43:00Z,101.6738,101.6799,101.5586,101.5763,2123.0
1058 +SYN1,2024-11-26T16:44:00Z,101.5763,101.5807,101.4941,101.5082,673.0
1059 +SYN1,2024-11-26T16:45:00Z,101.5082,101.5341,101.4951,101.5307,4308.0
1060 +SYN1,2024-11-26T16:46:00Z,101.5307,101.66,101.5204,101.6512,4876.0
1061 +SYN1,2024-11-26T16:47:00Z,101.6512,101.6871,101.642,101.6764,588.0
1062 +SYN1,2024-11-26T16:48:00Z,101.6764,101.7006,101.668,101.6909,4254.0
1063 +SYN1,2024-11-26T16:49:00Z,101.6909,101.6926,101.5489,101.5556,3683.0
1064 +SYN1,2024-11-26T16:50:00Z,101.5556,101.7039,101.5517,101.703,502.0
1065 +SYN1,2024-11-26T16:51:00Z,101.703,101.7176,101.6731,101.681,2844.0
1066 +SYN1,2024-11-26T16:52:00Z,101.681,101.7438,101.6755,101.7337,1595.0
1067 +SYN1,2024-11-26T16:53:00Z,101.7337,101.7879,101.7247,101.7841,1009.0
1068 +SYN1,2024-11-26T16:54:00Z,101.7841,101.8016,101.7756,101.8003,775.0
1069 +SYN1,2024-11-26T16:56:00Z,101.8003,101.8038,101.7126,101.72,1805.0
1070 +SYN1,2024-11-26T16:57:00Z,101.72,101.7933,101.716,101.7814,2579.0
1071 +SYN1,2024-11-26T16:58:00Z,101.7814,101.8707,101.7791,101.8669,1604.0
1072 +SYN1,2024-11-26T16:59:00Z,101.8669,101.9304,101.8635,101.9003,3146.0
1073 +SYN1,2024-11-26T17:00:00Z,101.9003,101.9142,101.8098,101.8174,4783.0
1074 +SYN1,2024-11-26T17:01:00Z,101.8174,101.8176,101.7469,101.7472,2620.0
1075 +SYN1,2024-11-26T17:02:00Z,101.7472,101.7624,101.7411,101.7508,4726.0
1076 +SYN1,2024-11-26T17:03:00Z,101.7508,101.7715,101.66,101.667,3242.0
1077 +SYN1,2024-11-26T17:04:00Z,101.667,101.6726,101.6566,101.6691,4598.0
1078 +SYN1,2024-11-26T17:05:00Z,101.6691,101.9328,101.6669,101.926,3508.0
1079 +SYN1,2024-11-26T17:06:00Z,101.926,101.9756,101.9098,101.9724,2330.0
1080 +SYN1,2024-11-26T17:07:00Z,101.9724,101.9814,101.9627,101.9628,2227.0
1081 +SYN1,2024-11-26T17:08:00Z,101.9628,101.977,101.948,101.9713,4486.0
1082 +SYN1,2024-11-26T17:09:00Z,101.9713,101.9725,101.8492,101.852,904.0
1083 +SYN1,2024-11-26T17:10:00Z,101.852,101.8837,101.847,101.8833,392.0
1084 +SYN1,2024-11-26T17:11:00Z,101.8833,101.9397,101.8783,101.9391,4876.0
1085 +SYN1,2024-11-26T17:12:00Z,101.9391,101.9401,101.854,101.8595,774.0
1086 +SYN1,2024-11-26T17:13:00Z,101.8595,101.8687,101.7961,101.8048,4504.0
1087 +SYN1,2024-11-26T17:14:00Z,101.8048,101.816,101.7635,101.7685,2814.0
1088 +SYN1,2024-11-26T17:15:00Z,101.7685,101.7817,101.6842,101.6851,2125.0
1089 +SYN1,2024-11-26T17:16:00Z,101.6851,101.7613,101.6768,101.7502,3721.0
1090 +SYN1,2024-11-26T17:17:00Z,101.7502,101.7607,101.7388,101.7599,867.0
1091 +SYN1,2024-11-26T17:18:00Z,101.7599,101.8532,101.7413,101.8486,1767.0
1092 +SYN1,2024-11-26T17:19:00Z,101.8486,101.8557,101.7649,101.7659,4797.0
1093 +SYN1,2024-11-26T17:20:00Z,101.7659,101.8826,101.7623,101.8605,2383.0
1094 +SYN1,2024-11-26T17:21:00Z,101.8605,101.9472,101.8562,101.9412,1910.0
1095 +SYN1,2024-11-26T17:22:00Z,101.9412,101.9602,101.8586,101.8647,3668.0
1096 +SYN1,2024-11-26T17:23:00Z,101.8647,101.8758,101.8134,101.847,2401.0
1097 +SYN1,2024-11-26T17:24:00Z,101.847,101.8962,101.8369,101.8868,4185.0
1098 +SYN1,2024-11-26T17:25:00Z,101.8868,101.8905,101.6634,101.6669,2397.0
1099 +SYN1,2024-11-26T17:26:00Z,101.6669,101.6797,101.6633,101.6787,2310.0
1100 +SYN1,2024-11-26T17:27:00Z,101.6787,101.6998,101.5823,101.5899,647.0
1101 +SYN1,2024-11-26T17:28:00Z,101.5899,101.6626,101.5894,101.6519,231.0
1102 +SYN1,2024-11-26T17:29:00Z,101.6519,101.6813,101.6375,101.6809,1848.0
1103 +SYN1,2024-11-26T17:30:00Z,101.6809,101.7184,101.6748,101.7016,4989.0
1104 +SYN1,2024-11-26T17:31:00Z,101.7016,101.7063,101.6566,101.6677,1283.0
1105 +SYN1,2024-11-26T17:32:00Z,101.6677,101.6883,101.6601,101.6852,2601.0
1106 +SYN1,2024-11-26T17:33:00Z,101.6852,101.6938,101.6172,101.6195,4559.0
1107 +SYN1,2024-11-26T17:34:00Z,101.6195,101.6279,101.5714,101.5801,352.0
1108 +SYN1,2024-11-26T17:35:00Z,101.5801,101.5874,101.4711,101.484,1193.0
1109 +SYN1,2024-11-26T17:36:00Z,101.484,101.5685,101.48,101.5613,2378.0
1110 +SYN1,2024-11-26T17:37:00Z,101.5613,101.6586,101.5573,101.6545,540.0
1111 +SYN1,2024-11-26T17:38:00Z,101.6545,101.6834,101.6511,101.6784,4430.0
1112 +SYN1,2024-11-26T17:39:00Z,101.6784,101.6972,101.6286,101.6325,3397.0
1113 +SYN1,2024-11-26T17:40:00Z,101.6325,101.6939,101.6293,101.6867,767.0
1114 +SYN1,2024-11-26T17:41:00Z,101.6867,101.6879,101.6079,101.6194,1715.0
1115 +SYN1,2024-11-26T17:42:00Z,101.6194,101.6352,101.4196,101.4501,2181.0
1116 +SYN1,2024-11-26T17:43:00Z,101.4501,101.5307,101.4431,101.5178,1333.0
1117 +SYN1,2024-11-26T17:44:00Z,101.5178,101.5301,101.5027,101.5297,3219.0
1118 +SYN1,2024-11-26T17:45:00Z,101.5297,101.5609,101.5254,101.5567,4333.0
1119 +SYN1,2024-11-26T17:46:00Z,101.5567,101.6466,101.5534,101.6437,4193.0
1120 +SYN1,2024-11-26T17:47:00Z,101.6437,101.7107,101.6399,101.6981,4837.0
1121 +SYN1,2024-11-26T17:48:00Z,101.6981,101.7326,101.6951,101.7281,488.0
1122 +SYN1,2024-11-26T17:49:00Z,101.7281,101.7304,101.6872,101.703,2068.0
1123 +SYN1,2024-11-26T17:50:00Z,101.703,101.7612,101.6987,101.7488,3259.0
1124 +SYN1,2024-11-26T17:51:00Z,101.7488,101.8537,101.7462,101.8476,4442.0
1125 +SYN1,2024-11-26T17:52:00Z,101.8476,101.9424,101.8469,101.9365,3078.0
1126 +SYN1,2024-11-26T17:53:00Z,101.9365,102.0167,101.9278,102.0015,4669.0
1127 +SYN1,2024-11-26T17:54:00Z,102.0015,102.1163,102.0013,102.1146,1405.0
1128 +SYN1,2024-11-26T17:55:00Z,102.1146,102.1223,102.0485,102.0583,319.0
1129 +SYN1,2024-11-26T17:56:00Z,102.0583,102.0586,102.0046,102.0086,754.0
1130 +SYN1,2024-11-26T17:57:00Z,102.0086,102.0719,102.0065,102.07,2566.0
1131 +SYN1,2024-11-26T17:58:00Z,102.07,102.0803,101.9731,101.9935,3409.0
1132 +SYN1,2024-11-26T17:59:00Z,101.9935,102.2406,101.9911,102.2291,304.0
1133 +SYN1,2024-11-26T18:00:00Z,102.2291,102.2371,102.0696,102.0864,396.0
1134 +SYN1,2024-11-26T18:01:00Z,102.0864,102.2108,102.0689,102.2027,1100.0
1135 +SYN1,2024-11-26T18:03:00Z,102.2027,102.2122,102.1401,102.1579,2403.0
1136 +SYN1,2024-11-26T18:04:00Z,102.1579,102.1817,102.1355,102.1452,821.0
1137 +SYN1,2024-11-26T18:05:00Z,102.1452,102.1652,102.1395,102.1633,1564.0
1138 +SYN1,2024-11-26T18:06:00Z,102.1633,102.1676,102.0342,102.0374,3139.0
1139 +SYN1,2024-11-26T18:07:00Z,102.0374,102.0426,101.9767,101.9801,2949.0
1140 +SYN1,2024-11-26T18:08:00Z,101.9801,101.981,101.8118,101.8203,4118.0
1141 +SYN1,2024-11-26T18:09:00Z,101.8203,101.8257,101.7366,101.7398,3146.0
1142 +SYN1,2024-11-26T18:10:00Z,101.7398,101.8198,101.73,101.8156,4113.0
1143 +SYN1,2024-11-26T18:11:00Z,101.8156,101.838,101.6902,101.6927,2452.0
1144 +SYN1,2024-11-26T18:12:00Z,101.6927,101.7132,101.6741,101.7024,1832.0
1145 +SYN1,2024-11-26T18:13:00Z,101.7024,101.7727,101.6883,101.7675,1279.0
1146 +SYN1,2024-11-26T18:14:00Z,101.7675,101.879,101.7608,101.8747,844.0
1147 +SYN1,2024-11-26T18:15:00Z,101.8747,101.8897,101.8164,101.8411,469.0
1148 +SYN1,2024-11-26T18:16:00Z,101.8411,101.8614,101.7825,101.8029,1769.0
1149 +SYN1,2024-11-26T18:17:00Z,101.8029,101.9355,101.7972,101.9217,2685.0
1150 +SYN1,2024-11-26T18:18:00Z,101.9217,101.9895,101.9198,101.9787,906.0
1151 +SYN1,2024-11-26T18:19:00Z,101.9787,101.9788,101.8518,101.8593,1286.0
1152 +SYN1,2024-11-26T18:20:00Z,101.8593,101.8792,101.8473,101.874,1540.0
1153 +SYN1,2024-11-26T18:21:00Z,101.874,101.9266,101.8674,101.9251,3584.0
1154 +SYN1,2024-11-26T18:22:00Z,101.9251,101.9275,101.8998,101.9182,3011.0
1155 +SYN1,2024-11-26T18:23:00Z,101.9182,101.9655,101.9087,101.9649,139.0
1156 +SYN1,2024-11-26T18:24:00Z,101.9649,102.0787,101.9639,102.0743,2979.0
1157 +SYN1,2024-11-26T18:25:00Z,102.0743,102.0775,101.9988,102.0169,161.0
1158 +SYN1,2024-11-26T18:26:00Z,102.0169,102.02,101.9201,101.9231,3510.0
1159 +SYN1,2024-11-26T18:27:00Z,101.9231,101.9446,101.7976,101.8174,2955.0
1160 +SYN1,2024-11-26T18:28:00Z,101.8174,101.8318,101.7139,101.7191,3530.0
1161 +SYN1,2024-11-26T18:29:00Z,101.7191,101.7398,101.7148,101.7341,2719.0
1162 +SYN1,2024-11-26T18:30:00Z,101.7341,101.7479,101.6852,101.6876,2817.0
1163 +SYN1,2024-11-26T18:31:00Z,101.6876,101.7497,101.6818,101.7452,509.0
1164 +SYN1,2024-11-26T18:32:00Z,101.7452,101.8838,101.745,101.8741,2818.0
1165 +SYN1,2024-11-26T18:33:00Z,101.8741,101.9277,101.852,101.9251,1806.0
1166 +SYN1,2024-11-26T18:34:00Z,101.9251,101.9412,101.8166,101.8207,918.0
1167 +SYN1,2024-11-26T18:35:00Z,101.8207,101.8324,101.7257,101.7328,2148.0
1168 +SYN1,2024-11-26T18:36:00Z,101.7328,101.7503,101.6446,101.6449,2819.0
1169 +SYN1,2024-11-26T18:37:00Z,101.6449,101.6468,101.6057,101.6075,1842.0
1170 +SYN1,2024-11-26T18:38:00Z,101.6075,101.6838,101.6074,101.6653,4440.0
1171 +SYN1,2024-11-26T18:39:00Z,101.6653,101.8061,101.6558,101.7981,960.0
1172 +SYN1,2024-11-26T18:40:00Z,101.7981,101.9009,101.798,101.877,4980.0
1173 +SYN1,2024-11-26T18:41:00Z,101.877,101.88,101.8555,101.8587,3948.0
1174 +SYN1,2024-11-26T18:42:00Z,101.8587,101.9115,101.8559,101.9082,766.0
1175 +SYN1,2024-11-26T18:43:00Z,101.9082,101.9208,101.899,101.9151,2760.0
1176 +SYN1,2024-11-26T18:44:00Z,101.9151,101.9172,101.8202,101.8269,683.0
1177 +SYN1,2024-11-26T18:45:00Z,101.8269,101.8304,101.7595,101.7665,1904.0
1178 +SYN1,2024-11-26T18:46:00Z,101.7665,101.7964,101.7598,101.7843,4491.0
1179 +SYN1,2024-11-26T18:47:00Z,101.7843,101.817,101.7737,101.8056,2516.0
1180 +SYN1,2024-11-26T18:48:00Z,101.8056,101.8169,101.7931,101.8072,3278.0
1181 +SYN1,2024-11-26T18:49:00Z,101.8072,101.8128,101.7332,101.7355,2889.0
1182 +SYN1,2024-11-26T18:50:00Z,101.7355,101.7441,101.675,101.6806,2516.0
1183 +SYN1,2024-11-26T18:51:00Z,101.6806,101.6888,101.6703,101.6704,2148.0
1184 +SYN1,2024-11-26T18:52:00Z,101.6704,101.6841,101.6587,101.6811,1860.0
1185 +SYN1,2024-11-26T18:53:00Z,101.6811,101.6936,101.6466,101.6495,3513.0
1186 +SYN1,2024-11-26T18:54:00Z,101.6495,101.6577,101.578,101.5908,2743.0
1187 +SYN1,2024-11-26T18:55:00Z,101.5908,101.5971,101.4854,101.493,4553.0
1188 +SYN1,2024-11-26T18:56:00Z,101.493,101.533,101.4664,101.5231,3401.0
1189 +SYN1,2024-11-26T18:57:00Z,101.5231,101.5913,101.4986,101.5911,1877.0
1190 +SYN1,2024-11-26T18:58:00Z,101.5911,101.5937,101.5665,101.5682,4049.0
1191 +SYN1,2024-11-26T18:59:00Z,101.5682,101.5861,101.5575,101.5737,600.0
1192 +SYN1,2024-11-26T19:00:00Z,101.5737,101.5841,101.5508,101.5623,1685.0
1193 +SYN1,2024-11-26T19:02:00Z,101.5623,101.5643,101.5256,101.537,1839.0
1194 +SYN1,2024-11-26T19:03:00Z,101.537,101.5527,101.4913,101.4929,1772.0
1195 +SYN1,2024-11-26T19:04:00Z,101.4929,101.5016,101.4788,101.4801,2464.0
1196 +SYN1,2024-11-26T19:05:00Z,101.4801,101.5235,101.478,101.5071,1559.0
1197 +SYN1,2024-11-26T19:06:00Z,101.5071,101.5812,101.5047,101.5757,4082.0
1198 +SYN1,2024-11-26T19:07:00Z,101.5757,101.5785,101.4566,101.4637,2390.0
1199 +SYN1,2024-11-26T19:08:00Z,101.4637,101.4731,101.3705,101.379,2448.0
1200 +SYN1,2024-11-26T19:10:00Z,101.379,101.4488,101.3648,101.4415,474.0
1201 +SYN1,2024-11-26T19:11:00Z,101.4415,101.4429,101.3693,101.3741,343.0
1202 +SYN1,2024-11-26T19:12:00Z,101.3741,101.4067,101.3667,101.4021,340.0
1203 +SYN1,2024-11-26T19:14:00Z,101.4021,101.4075,101.3972,101.4022,2960.0
1204 +SYN1,2024-11-26T19:15:00Z,101.4022,101.5309,101.3885,101.5298,2892.0
1205 +SYN1,2024-11-26T19:16:00Z,101.5298,101.5346,101.4742,101.4812,3962.0
1206 +SYN1,2024-11-26T19:17:00Z,101.4812,101.5483,101.4806,101.5365,3041.0
1207 +SYN1,2024-11-26T19:18:00Z,101.5365,101.6577,101.5283,101.6488,2538.0
1208 +SYN1,2024-11-26T19:19:00Z,101.6488,101.6604,101.6283,101.6581,3960.0
1209 +SYN1,2024-11-26T19:20:00Z,101.6581,101.6624,101.6118,101.613,3257.0
1210 +SYN1,2024-11-26T19:22:00Z,101.613,101.6265,101.5518,101.5534,2141.0
1211 +SYN1,2024-11-26T19:23:00Z,101.5534,101.6375,101.5438,101.6287,3597.0
1212 +SYN1,2024-11-26T19:24:00Z,101.6287,101.6957,101.6269,101.6868,711.0
1213 +SYN1,2024-11-26T19:25:00Z,101.6868,101.6877,101.6814,101.6835,2880.0
1214 +SYN1,2024-11-26T19:26:00Z,101.6835,101.6916,101.6356,101.6416,1312.0
1215 +SYN1,2024-11-26T19:27:00Z,101.6416,101.6465,101.6177,101.6218,2476.0
1216 +SYN1,2024-11-26T19:29:00Z,101.6218,101.6526,101.6127,101.6412,978.0
1217 +SYN1,2024-11-26T19:30:00Z,101.6412,101.6527,101.593,101.5961,688.0
1218 +SYN1,2024-11-26T19:31:00Z,101.5961,101.6162,101.5949,101.6153,3741.0
1219 +SYN1,2024-11-26T19:32:00Z,101.6153,101.6422,101.6002,101.6343,992.0
1220 +SYN1,2024-11-26T19:33:00Z,101.6343,101.6474,101.5421,101.5432,1846.0
1221 +SYN1,2024-11-26T19:34:00Z,101.5432,101.6532,101.5385,101.6529,3173.0
1222 +SYN1,2024-11-26T19:35:00Z,101.6529,101.7152,101.6439,101.7032,460.0
1223 +SYN1,2024-11-26T19:36:00Z,101.7032,101.7071,101.6518,101.6723,4624.0
1224 +SYN1,2024-11-26T19:37:00Z,101.6723,101.6737,101.6578,101.6654,2500.0
1225 +SYN1,2024-11-26T19:38:00Z,101.6654,101.675,101.5158,101.5265,2125.0
1226 +SYN1,2024-11-26T19:39:00Z,101.5265,101.5289,101.4643,101.4679,3808.0
1227 +SYN1,2024-11-26T19:40:00Z,101.4679,101.4825,101.4252,101.4258,4278.0
1228 +SYN1,2024-11-26T19:41:00Z,101.4258,101.5744,101.4195,101.5686,577.0
1229 +SYN1,2024-11-26T19:42:00Z,101.5686,101.5722,101.5402,101.5428,2864.0
1230 +SYN1,2024-11-26T19:43:00Z,101.5428,101.5493,101.4614,101.4701,1280.0
1231 +SYN1,2024-11-26T19:44:00Z,101.4701,101.4806,101.3838,101.3871,3288.0
1232 +SYN1,2024-11-26T19:45:00Z,101.3871,101.3908,101.2968,101.2973,3724.0
1233 +SYN1,2024-11-26T19:46:00Z,101.2973,101.3164,101.2869,101.3042,2187.0
1234 +SYN1,2024-11-26T19:47:00Z,101.3042,101.3082,101.2793,101.2885,459.0
1235 +SYN1,2024-11-26T19:48:00Z,101.2885,101.3058,101.2351,101.2399,1046.0
1236 +SYN1,2024-11-26T19:49:00Z,101.2399,101.2457,101.1929,101.1934,4478.0
1237 +SYN1,2024-11-26T19:50:00Z,101.1934,101.2007,101.1893,101.1973,3774.0
1238 +SYN1,2024-11-26T19:51:00Z,101.1973,101.3875,101.191,101.3611,2830.0
1239 +SYN1,2024-11-26T19:53:00Z,101.3611,101.3822,101.3579,101.3713,831.0
1240 +SYN1,2024-11-26T19:54:00Z,101.3713,101.3733,101.2336,101.2431,4739.0
1241 +SYN1,2024-11-26T19:55:00Z,101.2431,101.2487,101.1683,101.179,1377.0
1242 +SYN1,2024-11-26T19:56:00Z,101.179,101.1796,101.0982,101.1079,1747.0
1243 +SYN1,2024-11-26T19:57:00Z,101.1079,101.3332,101.1034,101.3254,2795.0
1244 +SYN1,2024-11-26T19:58:00Z,101.3254,101.3294,101.166,101.184,2430.0
1245 +SYN1,2024-11-26T19:59:00Z,101.184,101.191,101.1593,101.1701,2461.0
1246 +SYN1,2024-11-26T20:00:00Z,101.1701,101.1707,100.9298,100.939,921.0
1247 +SYN1,2024-11-26T20:01:00Z,100.939,100.9398,100.9253,100.9292,4176.0
1248 +SYN1,2024-11-26T20:02:00Z,100.9292,100.9333,100.8975,100.9063,3482.0
1249 +SYN1,2024-11-26T20:03:00Z,100.9063,100.908,100.7622,100.7637,660.0
1250 +SYN1,2024-11-26T20:04:00Z,100.7637,100.8621,100.7558,100.861,1869.0
1251 +SYN1,2024-11-26T20:05:00Z,100.861,100.8763,100.655,100.6586,3332.0
1252 +SYN1,2024-11-26T20:06:00Z,100.6586,100.6979,100.6522,100.6815,922.0
1253 +SYN1,2024-11-26T20:07:00Z,100.6815,100.694,100.5569,100.5657,4993.0
1254 +SYN1,2024-11-26T20:08:00Z,100.5657,100.5675,100.4865,100.5007,1660.0
1255 +SYN1,2024-11-26T20:09:00Z,100.5007,100.5697,100.4966,100.5633,4437.0
1256 +SYN1,2024-11-26T20:10:00Z,100.5633,100.5636,100.4852,100.4934,2546.0
1257 +SYN1,2024-11-26T20:11:00Z,100.4934,100.6118,100.4837,100.6117,4825.0
1258 +SYN1,2024-11-26T20:12:00Z,100.6117,100.6367,100.5217,100.5474,4610.0
1259 +SYN1,2024-11-26T20:13:00Z,100.5474,100.567,100.4712,100.472,3694.0
1260 +SYN1,2024-11-26T20:14:00Z,100.472,100.5871,100.4697,100.5797,650.0
1261 +SYN1,2024-11-26T20:15:00Z,100.5797,100.5824,100.5061,100.5142,458.0
1262 +SYN1,2024-11-26T20:16:00Z,100.5142,100.5369,100.5048,100.5098,888.0
1263 +SYN1,2024-11-26T20:17:00Z,100.5098,100.5133,100.4442,100.4444,497.0
1264 +SYN1,2024-11-26T20:18:00Z,100.4444,100.4609,100.4304,100.4309,869.0
1265 +SYN1,2024-11-26T20:19:00Z,100.4309,100.4523,100.4288,100.4521,3310.0
1266 +SYN1,2024-11-26T20:20:00Z,100.4521,100.456,100.3177,100.3341,4216.0
1267 +SYN1,2024-11-26T20:21:00Z,100.3341,100.3469,100.2552,100.271,181.0
1268 +SYN1,2024-11-26T20:22:00Z,100.271,100.281,100.252,100.268,1576.0
1269 +SYN1,2024-11-26T20:23:00Z,100.268,100.2737,100.1953,100.1956,542.0
1270 +SYN1,2024-11-26T20:24:00Z,100.1956,100.3854,100.1914,100.3752,4855.0
1271 +SYN1,2024-11-26T20:25:00Z,100.3752,100.5692,100.3578,100.5643,1877.0
1272 +SYN1,2024-11-26T20:26:00Z,100.5643,100.5647,100.4912,100.4954,1995.0
1273 +SYN1,2024-11-26T20:27:00Z,100.4954,100.496,100.3859,100.386,3434.0
1274 +SYN1,2024-11-26T20:28:00Z,100.386,100.3909,100.3721,100.3876,255.0
1275 +SYN1,2024-11-26T20:29:00Z,100.3876,100.3951,100.2571,100.2669,4700.0
1276 +SYN1,2024-11-26T20:30:00Z,100.2669,100.2671,100.1582,100.1689,2800.0
1277 +SYN1,2024-11-26T20:31:00Z,100.1689,100.3039,100.157,100.3036,3851.0
1278 +SYN1,2024-11-26T20:32:00Z,100.3036,100.3307,100.2997,100.3306,3022.0
1279 +SYN1,2024-11-26T20:33:00Z,100.3306,100.433,100.3175,100.4153,2109.0
1280 +SYN1,2024-11-26T20:34:00Z,100.4153,100.4218,100.3274,100.3414,891.0
1281 +SYN1,2024-11-26T20:35:00Z,100.3414,100.3515,100.3004,100.3047,2914.0
1282 +SYN1,2024-11-26T20:36:00Z,100.3047,100.3165,100.2782,100.2832,3086.0
1283 +SYN1,2024-11-26T20:37:00Z,100.2832,100.3348,100.2639,100.331,1140.0
1284 +SYN1,2024-11-26T20:38:00Z,100.331,100.4182,100.3265,100.4064,3183.0
1285 +SYN1,2024-11-26T20:39:00Z,100.4064,100.4065,100.308,100.3124,2379.0
1286 +SYN1,2024-11-26T20:40:00Z,100.3124,100.3144,100.2128,100.2132,2742.0
1287 +SYN1,2024-11-26T20:41:00Z,100.2132,100.2465,100.2019,100.234,1430.0
1288 +SYN1,2024-11-26T20:42:00Z,100.234,100.2543,100.2286,100.2493,2893.0
1289 +SYN1,2024-11-26T20:43:00Z,100.2493,100.2666,100.2323,100.2643,1051.0
1290 +SYN1,2024-11-26T20:44:00Z,100.2643,100.2789,100.1681,100.1713,1817.0
1291 +SYN1,2024-11-26T20:45:00Z,100.1713,100.1892,100.1521,100.1855,871.0
1292 +SYN1,2024-11-26T20:46:00Z,100.1855,100.2472,100.1837,100.2404,2257.0
1293 +SYN1,2024-11-26T20:47:00Z,100.2404,100.2492,100.1781,100.1916,2237.0
1294 +SYN1,2024-11-26T20:48:00Z,100.1916,100.2939,100.1719,100.2812,3542.0
1295 +SYN1,2024-11-26T20:49:00Z,100.2812,100.2863,100.2296,100.2341,2347.0
1296 +SYN1,2024-11-26T20:50:00Z,100.2341,100.2495,100.1156,100.1222,2187.0
1297 +SYN1,2024-11-26T20:51:00Z,100.1222,100.1259,100.0294,100.0458,858.0
1298 +SYN1,2024-11-26T20:52:00Z,100.0458,100.06,100.0306,100.0581,2004.0
1299 +SYN1,2024-11-26T20:53:00Z,100.0581,100.1325,100.0527,100.1195,671.0
1300 +SYN1,2024-11-26T20:55:00Z,100.1195,100.1341,100.0751,100.0843,415.0
1301 +SYN1,2024-11-26T20:56:00Z,100.0843,100.1449,100.079,100.1355,1615.0
1302 +SYN1,2024-11-26T20:57:00Z,100.1355,100.1754,100.1297,100.1708,357.0
1303 +SYN1,2024-11-26T20:58:00Z,100.1708,100.1804,100.0688,100.0752,1881.0
1304 +SYN1,2024-11-26T20:59:00Z,100.0752,100.0826,99.9735,99.98,1767.0
1305 +SYN1,2024-11-26T21:00:00Z,99.98,99.9851,99.8393,99.8714,4154.0
1306 +SYN1,2024-11-26T21:01:00Z,99.8714,99.895,99.8585,99.8941,133.0
1307 +SYN1,2024-11-26T21:04:00Z,99.8941,99.9375,99.8937,99.9227,190.0
1308 +SYN1,2024-11-26T21:06:00Z,99.9227,99.943,99.9159,99.9331,229.0
1309 +SYN1,2024-11-26T21:07:00Z,99.9331,99.9488,99.9292,99.9479,115.0
1310 +SYN1,2024-11-26T21:09:00Z,99.9479,100.0051,99.9284,100.0042,119.0
1311 +SYN1,2024-11-26T21:10:00Z,100.0042,100.0158,100.0017,100.0041,161.0
1312 +SYN1,2024-11-26T21:12:00Z,100.0041,100.0176,99.9818,99.9838,50.0
1313 +SYN1,2024-11-26T21:13:00Z,99.9838,99.9953,99.9701,99.9902,20.0
1314 +SYN1,2024-11-26T21:17:00Z,99.9902,100.0181,99.9626,100.0114,16.0
1315 +SYN1,2024-11-26T21:19:00Z,100.0114,100.0185,99.9996,100.0114,114.0
1316 +SYN1,2024-11-26T21:21:00Z,100.0114,100.0367,99.9992,100.0049,211.0
1317 +SYN1,2024-11-26T21:22:00Z,100.0049,100.0078,99.9978,100.0024,283.0
1318 +SYN1,2024-11-26T21:23:00Z,100.0024,100.011,99.9713,99.975,101.0
1319 +SYN1,2024-11-26T21:24:00Z,99.975,99.9771,99.9254,99.9304,156.0
1320 +SYN1,2024-11-26T21:25:00Z,99.9304,99.9448,99.8957,99.9008,286.0
1321 +SYN1,2024-11-26T21:26:00Z,99.9008,99.9251,99.8709,99.8893,93.0
1322 +SYN1,2024-11-26T21:27:00Z,99.8893,99.9119,99.865,99.8699,265.0
1323 +SYN1,2024-11-26T21:28:00Z,99.8699,99.8792,99.862,99.877,105.0
1324 +SYN1,2024-11-26T21:31:00Z,99.877,99.8773,99.8741,99.8758,82.0
1325 +SYN1,2024-11-26T21:32:00Z,99.8758,99.8906,99.8245,99.8309,27.0
1326 +SYN1,2024-11-26T21:33:00Z,99.8309,99.8339,99.7597,99.7598,107.0
1327 +SYN1,2024-11-26T21:34:00Z,99.7598,99.7708,99.7473,99.7666,82.0
1328 +SYN1,2024-11-26T21:36:00Z,99.7666,99.7894,99.7527,99.7731,219.0
1329 +SYN1,2024-11-26T21:48:00Z,99.7731,99.7803,99.7424,99.7485,175.0
1330 +SYN1,2024-11-26T21:49:00Z,99.7485,99.7595,99.7005,99.7067,238.0
1331 +SYN1,2024-11-26T21:53:00Z,99.7067,99.7125,99.7048,99.7076,11.0
1332 +SYN1,2024-11-26T21:55:00Z,99.7076,99.7149,99.6941,99.7042,4.0
1333 +SYN1,2024-11-26T21:56:00Z,99.7042,99.7168,99.687,99.7043,94.0
1334 +SYN1,2024-11-26T21:57:00Z,99.7043,99.726,99.6924,99.7161,29.0
1335 +SYN1,2024-11-26T21:59:00Z,99.7161,99.7551,99.7108,99.7388,8.0
1336 +SYN1,2024-11-26T22:00:00Z,99.7388,99.741,99.7027,99.7041,102.0
1337 +SYN1,2024-11-26T22:02:00Z,99.7041,99.7139,99.6942,99.7117,56.0
1338 +SYN1,2024-11-26T22:04:00Z,99.7117,99.7165,99.6939,99.7,61.0
1339 +SYN1,2024-11-26T22:05:00Z,99.7,99.7208,99.6996,99.7117,182.0
1340 +SYN1,2024-11-26T22:07:00Z,99.7117,99.7375,99.7111,99.7282,56.0
1341 +SYN1,2024-11-26T22:09:00Z,99.7282,99.7299,99.685,99.6947,44.0
1342 +SYN1,2024-11-26T22:10:00Z,99.6947,99.7077,99.6873,99.6996,30.0
1343 +SYN1,2024-11-26T22:12:00Z,99.6996,99.7124,99.6937,99.7077,268.0
1344 +SYN1,2024-11-26T22:14:00Z,99.7077,99.7108,99.6488,99.6604,258.0
1345 +SYN1,2024-11-26T22:15:00Z,99.6604,99.697,99.6484,99.681,205.0
1346 +SYN1,2024-11-26T22:16:00Z,99.681,99.6918,99.642,99.6634,62.0
1347 +SYN1,2024-11-26T22:17:00Z,99.6634,99.7081,99.6577,99.7004,174.0
1348 +SYN1,2024-11-26T22:18:00Z,99.7004,99.7013,99.6684,99.677,212.0
1349 +SYN1,2024-11-26T22:19:00Z,99.677,99.6788,99.656,99.6575,221.0
1350 +SYN1,2024-11-26T22:20:00Z,99.6575,99.6597,99.6284,99.6321,11.0
1351 +SYN1,2024-11-26T22:21:00Z,99.6321,99.663,99.6216,99.6513,165.0
1352 +SYN1,2024-11-26T22:24:00Z,99.6513,99.6984,99.6486,99.6918,27.0
1353 +SYN1,2024-11-26T22:25:00Z,99.6918,99.7048,99.6693,99.6696,243.0
1354 +SYN1,2024-11-26T22:27:00Z,99.6696,99.7115,99.6626,99.6951,33.0
1355 +SYN1,2024-11-26T22:28:00Z,99.6951,99.6964,99.6739,99.6809,43.0
1356 +SYN1,2024-11-26T22:29:00Z,99.6809,99.7507,99.6553,99.7484,203.0
1357 +SYN1,2024-11-26T22:31:00Z,99.7484,99.7598,99.7196,99.7279,291.0
1358 +SYN1,2024-11-26T22:32:00Z,99.7279,99.7326,99.7243,99.7273,137.0
1359 +SYN1,2024-11-26T22:33:00Z,99.7273,99.7303,99.6664,99.6826,67.0
1360 +SYN1,2024-11-26T22:35:00Z,99.6826,99.6892,99.6157,99.6161,294.0
1361 +SYN1,2024-11-26T22:39:00Z,99.6161,99.6319,99.6048,99.6201,27.0
1362 +SYN1,2024-11-26T22:40:00Z,99.6201,99.6627,99.6108,99.641,291.0
1363 +SYN1,2024-11-26T22:41:00Z,99.641,99.644,99.5871,99.5935,13.0
1364 +SYN1,2024-11-26T22:43:00Z,99.5935,99.6121,99.5854,99.6034,289.0
1365 +SYN1,2024-11-26T22:44:00Z,99.6034,99.6745,99.5831,99.6623,250.0
1366 +SYN1,2024-11-26T22:47:00Z,99.6623,99.6714,99.6054,99.6235,286.0
1367 +SYN1,2024-11-26T22:49:00Z,99.6235,99.63,99.5868,99.6017,155.0
1368 +SYN1,2024-11-26T22:50:00Z,99.6017,99.606,99.5834,99.5853,216.0
1369 +SYN1,2024-11-26T22:51:00Z,99.5853,99.6328,99.5759,99.6035,77.0
1370 +SYN1,2024-11-26T22:52:00Z,99.6035,99.6348,99.5976,99.6166,265.0
1371 +SYN1,2024-11-26T22:54:00Z,99.6166,99.6939,99.5975,99.6864,115.0
1372 +SYN1,2024-11-26T22:55:00Z,99.6864,99.6952,99.6632,99.6658,249.0
1373 +SYN1,2024-11-26T22:56:00Z,99.6658,99.6764,99.5999,99.6119,155.0
1374 +SYN1,2024-11-26T22:57:00Z,99.6119,99.6119,99.5874,99.5891,256.0
1375 +SYN1,2024-11-26T22:58:00Z,99.5891,99.6015,99.5785,99.5846,112.0
1376 +SYN1,2024-11-26T22:59:00Z,99.5846,99.6199,99.5595,99.6165,193.0
1377 +SYN1,2024-11-26T23:02:00Z,99.6165,99.6376,99.6096,99.6335,296.0
1378 +SYN1,2024-11-26T23:04:00Z,99.6335,99.66,99.6252,99.6506,58.0
1379 +SYN1,2024-11-26T23:05:00Z,99.6506,99.6625,99.6307,99.6368,52.0
1380 +SYN1,2024-11-26T23:07:00Z,99.6368,99.6924,99.6318,99.6832,264.0
1381 +SYN1,2024-11-26T23:09:00Z,99.6832,99.701,99.6784,99.701,251.0
1382 +SYN1,2024-11-26T23:13:00Z,99.701,99.7109,99.6792,99.6934,215.0
1383 +SYN1,2024-11-26T23:14:00Z,99.6934,99.6981,99.6857,99.6966,217.0
1384 +SYN1,2024-11-26T23:15:00Z,99.6966,99.723,99.6945,99.7159,130.0
1385 +SYN1,2024-11-26T23:19:00Z,99.7159,99.7338,99.7122,99.7252,282.0
1386 +SYN1,2024-11-26T23:20:00Z,99.7252,99.7419,99.7133,99.7375,41.0
1387 +SYN1,2024-11-26T23:21:00Z,99.7375,99.755,99.736,99.7473,170.0
1388 +SYN1,2024-11-26T23:22:00Z,99.7473,99.7503,99.6994,99.7009,251.0
1389 +SYN1,2024-11-26T23:23:00Z,99.7009,99.7243,99.6857,99.7229,166.0
1390 +SYN1,2024-11-26T23:28:00Z,99.7229,99.7606,99.7201,99.7574,166.0
1391 +SYN1,2024-11-26T23:30:00Z,99.7574,99.7685,99.735,99.7363,24.0
1392 +SYN1,2024-11-26T23:31:00Z,99.7363,99.7402,99.7259,99.7291,45.0
1393 +SYN1,2024-11-26T23:32:00Z,99.7291,99.7313,99.6904,99.7037,5.0
1394 +SYN1,2024-11-26T23:33:00Z,99.7037,99.729,99.7002,99.7094,38.0
1395 +SYN1,2024-11-26T23:34:00Z,99.7094,99.7146,99.7086,99.7142,221.0
1396 +SYN1,2024-11-26T23:35:00Z,99.7142,99.7231,99.7051,99.7094,147.0
1397 +SYN1,2024-11-26T23:36:00Z,99.7094,99.7181,99.7024,99.7138,113.0
1398 +SYN1,2024-11-26T23:37:00Z,99.7138,99.7182,99.6498,99.6537,253.0
1399 +SYN1,2024-11-26T23:40:00Z,99.6537,99.731,99.6506,99.7242,11.0
1400 +SYN1,2024-11-26T23:41:00Z,99.7242,99.7402,99.671,99.6891,128.0
1401 +SYN1,2024-11-26T23:42:00Z,99.6891,99.6952,99.6715,99.6849,117.0
1402 +SYN1,2024-11-26T23:45:00Z,99.6849,99.7729,99.6832,99.7532,269.0
1403 +SYN1,2024-11-26T23:46:00Z,99.7532,99.7974,99.7454,99.7905,68.0
1404 +SYN1,2024-11-26T23:47:00Z,99.7905,99.7918,99.7738,99.7746,23.0
1405 +SYN1,2024-11-26T23:48:00Z,99.7746,99.7804,99.762,99.7635,16.0
1406 +SYN1,2024-11-26T23:49:00Z,99.7635,99.8381,99.7523,99.8248,174.0
1407 +SYN1,2024-11-26T23:52:00Z,99.8248,99.8251,99.7834,99.7835,287.0
1408 +SYN1,2024-11-26T23:54:00Z,99.7835,99.8127,99.7785,99.8105,155.0
1409 +SYN1,2024-11-27T00:00:00Z,99.8105,99.8184,99.7711,99.7736,98.0
1410 +SYN1,2024-11-27T00:03:00Z,99.7736,99.7797,99.7207,99.7315,207.0
1411 +SYN1,2024-11-27T00:05:00Z,99.7315,99.7437,99.7186,99.7232,69.0
1412 +SYN1,2024-11-27T00:06:00Z,99.7232,99.7313,99.6095,99.6187,229.0
1413 +SYN1,2024-11-27T00:07:00Z,99.6187,99.6229,99.5838,99.5858,208.0
1414 +SYN1,2024-11-27T00:10:00Z,99.5858,99.6298,99.5686,99.6259,74.0
1415 +SYN1,2024-11-27T00:11:00Z,99.6259,99.6539,99.6245,99.648,11.0
1416 +SYN1,2024-11-27T00:12:00Z,99.648,99.6487,99.6096,99.619,155.0
1417 +SYN1,2024-11-27T00:17:00Z,99.619,99.6255,99.5689,99.5782,292.0
1418 +SYN1,2024-11-27T00:19:00Z,99.5782,99.5886,99.5601,99.5654,126.0
1419 +SYN1,2024-11-27T00:20:00Z,99.5654,99.5796,99.5591,99.5675,65.0
1420 +SYN1,2024-11-27T00:21:00Z,99.5675,99.5731,99.5156,99.5178,143.0
1421 +SYN1,2024-11-27T00:22:00Z,99.5178,99.5242,99.5069,99.5151,84.0
1422 +SYN1,2024-11-27T00:26:00Z,99.5151,99.5593,99.5072,99.555,151.0
1423 +SYN1,2024-11-27T00:29:00Z,99.555,99.5589,99.5131,99.5141,192.0
1424 +SYN1,2024-11-27T00:32:00Z,99.5141,99.5581,99.509,99.5551,246.0
1425 +SYN1,2024-11-27T00:33:00Z,99.5551,99.5603,99.5299,99.5519,145.0
1426 +SYN1,2024-11-27T00:34:00Z,99.5519,99.5588,99.5423,99.5465,71.0
1427 +SYN1,2024-11-27T00:35:00Z,99.5465,99.5571,99.5406,99.549,68.0
1428 +SYN1,2024-11-27T00:37:00Z,99.549,99.5555,99.4589,99.4634,185.0
1429 +SYN1,2024-11-27T00:38:00Z,99.4634,99.4903,99.4467,99.4837,15.0
1430 +SYN1,2024-11-27T00:40:00Z,99.4837,99.5077,99.4609,99.4632,86.0
1431 +SYN1,2024-11-27T00:42:00Z,99.4632,99.4866,99.4528,99.4804,207.0
1432 +SYN1,2024-11-27T00:46:00Z,99.4804,99.4968,99.4735,99.4868,218.0
1433 +SYN1,2024-11-27T00:48:00Z,99.4868,99.5056,99.4604,99.5027,92.0
1434 +SYN1,2024-11-27T00:49:00Z,99.5027,99.5312,99.4996,99.5146,214.0
1435 +SYN1,2024-11-27T00:50:00Z,99.5146,99.5172,99.488,99.5024,96.0
1436 +SYN1,2024-11-27T00:53:00Z,99.5024,99.6013,99.4967,99.5966,76.0
1437 +SYN1,2024-11-27T00:54:00Z,99.5966,99.5972,99.5164,99.5218,157.0
1438 +SYN1,2024-11-27T00:56:00Z,99.5218,99.5327,99.4448,99.4588,196.0
1439 +SYN1,2024-11-27T09:00:00Z,99.4588,99.473,99.413,99.4307,72.0
1440 +SYN1,2024-11-27T09:02:00Z,99.4307,99.4396,99.37,99.3748,227.0
1441 +SYN1,2024-11-27T09:05:00Z,99.3748,99.3826,99.354,99.3602,68.0
1442 +SYN1,2024-11-27T09:08:00Z,99.3602,99.3683,99.3462,99.3625,101.0
1443 +SYN1,2024-11-27T09:15:00Z,99.3625,99.4223,99.3538,99.4176,255.0
1444 +SYN1,2024-11-27T09:17:00Z,99.4176,99.4236,99.3988,99.4001,269.0
1445 +SYN1,2024-11-27T09:19:00Z,99.4001,99.4021,99.3919,99.3976,250.0
1446 +SYN1,2024-11-27T09:20:00Z,99.3976,99.4409,99.3756,99.4362,105.0
1447 +SYN1,2024-11-27T09:21:00Z,99.4362,99.4515,99.4269,99.4463,160.0
1448 +SYN1,2024-11-27T09:26:00Z,99.4463,99.4484,99.4332,99.441,219.0
1449 +SYN1,2024-11-27T09:27:00Z,99.441,99.4477,99.4015,99.4112,22.0
1450 +SYN1,2024-11-27T09:28:00Z,99.4112,99.4199,99.3977,99.3989,15.0
1451 +SYN1,2024-11-27T09:29:00Z,99.3989,99.4371,99.3745,99.4363,288.0
1452 +SYN1,2024-11-27T09:31:00Z,99.4363,99.4409,99.4302,99.4404,264.0
1453 +SYN1,2024-11-27T09:34:00Z,99.4404,99.4411,99.41,99.4195,130.0
1454 +SYN1,2024-11-27T09:35:00Z,99.4195,99.4458,99.4144,99.4424,131.0
1455 +SYN1,2024-11-27T09:38:00Z,99.4424,99.5266,99.4407,99.5091,93.0
1456 +SYN1,2024-11-27T09:40:00Z,99.5091,99.5328,99.5088,99.5242,127.0
1457 +SYN1,2024-11-27T09:42:00Z,99.5242,99.5911,99.5215,99.5743,205.0
1458 +SYN1,2024-11-27T09:44:00Z,99.5743,99.6321,99.5628,99.6288,296.0
1459 +SYN1,2024-11-27T09:48:00Z,99.6288,99.6503,99.621,99.6291,41.0
1460 +SYN1,2024-11-27T09:51:00Z,99.6291,99.6406,99.6041,99.61,90.0
1461 +SYN1,2024-11-27T09:54:00Z,99.61,99.6235,99.5533,99.5617,2.0
1462 +SYN1,2024-11-27T09:56:00Z,99.5617,99.5885,99.5567,99.5768,216.0
1463 +SYN1,2024-11-27T09:58:00Z,99.5768,99.595,99.5598,99.5719,184.0
1464 +SYN1,2024-11-27T09:59:00Z,99.5719,99.5754,99.5358,99.5422,250.0
1465 +SYN1,2024-11-27T10:01:00Z,99.5422,99.5549,99.4421,99.449,8.0
1466 +SYN1,2024-11-27T10:03:00Z,99.449,99.5223,99.4422,99.5131,213.0
1467 +SYN1,2024-11-27T10:04:00Z,99.5131,99.5197,99.4951,99.5006,19.0
1468 +SYN1,2024-11-27T10:05:00Z,99.5006,99.5042,99.4974,99.4982,290.0
1469 +SYN1,2024-11-27T10:06:00Z,99.4982,99.5342,99.4922,99.5183,267.0
1470 +SYN1,2024-11-27T10:08:00Z,99.5183,99.5329,99.4553,99.4684,202.0
1471 +SYN1,2024-11-27T10:09:00Z,99.4684,99.4734,99.4604,99.4646,104.0
1472 +SYN1,2024-11-27T10:10:00Z,99.4646,99.5352,99.4591,99.5022,200.0
1473 +SYN1,2024-11-27T10:11:00Z,99.5022,99.5255,99.4903,99.5163,179.0
1474 +SYN1,2024-11-27T10:13:00Z,99.5163,99.5206,99.4839,99.4879,3.0
1475 +SYN1,2024-11-27T10:14:00Z,99.4879,99.4946,99.4811,99.4873,286.0
1476 +SYN1,2024-11-27T10:15:00Z,99.4873,99.5053,99.4507,99.4654,248.0
1477 +SYN1,2024-11-27T10:16:00Z,99.4654,99.4762,99.4589,99.4703,272.0
1478 +SYN1,2024-11-27T10:17:00Z,99.4703,99.4725,99.4581,99.4598,259.0
1479 +SYN1,2024-11-27T10:19:00Z,99.4598,99.4795,99.4539,99.4637,43.0
1480 +SYN1,2024-11-27T10:20:00Z,99.4637,99.4646,99.4449,99.451,254.0
1481 +SYN1,2024-11-27T10:21:00Z,99.451,99.4893,99.4229,99.4803,2.0
1482 +SYN1,2024-11-27T10:22:00Z,99.4803,99.5143,99.4696,99.5014,188.0
1483 +SYN1,2024-11-27T10:23:00Z,99.5014,99.5243,99.4961,99.509,93.0
1484 +SYN1,2024-11-27T10:24:00Z,99.509,99.561,99.4941,99.5487,135.0
1485 +SYN1,2024-11-27T10:25:00Z,99.5487,99.5641,99.5276,99.5427,218.0
1486 +SYN1,2024-11-27T10:27:00Z,99.5427,99.5572,99.4507,99.4586,44.0
1487 +SYN1,2024-11-27T10:28:00Z,99.4586,99.5315,99.4551,99.5091,39.0
1488 +SYN1,2024-11-27T10:30:00Z,99.5091,99.5211,99.5039,99.5045,196.0
1489 +SYN1,2024-11-27T10:32:00Z,99.5045,99.5237,99.4949,99.5232,165.0
1490 +SYN1,2024-11-27T10:34:00Z,99.5232,99.5256,99.5107,99.5133,128.0
1491 +SYN1,2024-11-27T10:35:00Z,99.5133,99.5305,99.4779,99.5011,258.0
1492 +SYN1,2024-11-27T10:36:00Z,99.5011,99.5115,99.4798,99.4799,32.0
1493 +SYN1,2024-11-27T10:37:00Z,99.4799,99.4917,99.4796,99.4897,173.0
1494 +SYN1,2024-11-27T10:38:00Z,99.4897,99.5096,99.4771,99.4862,256.0
1495 +SYN1,2024-11-27T10:40:00Z,99.4862,99.5207,99.4733,99.5184,168.0
1496 +SYN1,2024-11-27T10:41:00Z,99.5184,99.5268,99.5119,99.5216,241.0
1497 +SYN1,2024-11-27T10:42:00Z,99.5216,99.5303,99.5175,99.5256,287.0
1498 +SYN1,2024-11-27T10:46:00Z,99.5256,99.6243,99.5201,99.5961,280.0
1499 +SYN1,2024-11-27T10:49:00Z,99.5961,99.6509,99.5897,99.6352,288.0
1500 +SYN1,2024-11-27T10:52:00Z,99.6352,99.6616,99.6296,99.6454,233.0
1501 +SYN1,2024-11-27T10:56:00Z,99.6454,99.6927,99.644,99.6874,170.0
1502 +SYN1,2024-11-27T10:59:00Z,99.6874,99.7618,99.6745,99.7441,214.0
1503 +SYN1,2024-11-27T11:00:00Z,99.7441,99.7582,99.6971,99.7002,20.0
1504 +SYN1,2024-11-27T11:01:00Z,99.7002,99.7233,99.6696,99.7216,151.0
1505 +SYN1,2024-11-27T11:03:00Z,99.7216,99.7675,99.7213,99.7572,148.0
1506 +SYN1,2024-11-27T11:04:00Z,99.7572,99.7963,99.755,99.7903,288.0
1507 +SYN1,2024-11-27T11:08:00Z,99.7903,99.8022,99.7634,99.7643,280.0
1508 +SYN1,2024-11-27T11:09:00Z,99.7643,99.7647,99.7558,99.7581,110.0
1509 +SYN1,2024-11-27T11:11:00Z,99.7581,99.8164,99.7399,99.8072,219.0
1510 +SYN1,2024-11-27T11:12:00Z,99.8072,99.8117,99.7683,99.7786,286.0
1511 +SYN1,2024-11-27T11:15:00Z,99.7786,99.858,99.7556,99.8508,116.0
1512 +SYN1,2024-11-27T11:17:00Z,99.8508,99.8601,99.7837,99.797,240.0
1513 +SYN1,2024-11-27T11:18:00Z,99.797,99.8205,99.7899,99.8047,118.0
1514 +SYN1,2024-11-27T11:19:00Z,99.8047,99.8241,99.7028,99.7092,217.0
1515 +SYN1,2024-11-27T11:22:00Z,99.7092,99.7228,99.6363,99.6444,52.0
1516 +SYN1,2024-11-27T11:23:00Z,99.6444,99.6817,99.6418,99.6742,50.0
1517 +SYN1,2024-11-27T11:24:00Z,99.6742,99.6747,99.5888,99.6115,152.0
1518 +SYN1,2024-11-27T11:28:00Z,99.6115,99.6664,99.5923,99.654,231.0
1519 +SYN1,2024-11-27T11:31:00Z,99.654,99.6594,99.5832,99.596,140.0
1520 +SYN1,2024-11-27T11:32:00Z,99.596,99.5982,99.5923,99.5968,108.0
1521 +SYN1,2024-11-27T11:33:00Z,99.5968,99.6379,99.5925,99.634,46.0
1522 +SYN1,2024-11-27T11:37:00Z,99.634,99.6587,99.6339,99.6574,244.0
1523 +SYN1,2024-11-27T11:38:00Z,99.6574,99.6828,99.6545,99.6765,272.0
1524 +SYN1,2024-11-27T11:39:00Z,99.6765,99.6793,99.6483,99.6579,153.0
1525 +SYN1,2024-11-27T11:40:00Z,99.6579,99.6637,99.6168,99.6172,114.0
1526 +SYN1,2024-11-27T11:41:00Z,99.6172,99.6289,99.576,99.5836,151.0
1527 +SYN1,2024-11-27T11:42:00Z,99.5836,99.5895,99.5542,99.5569,62.0
1528 +SYN1,2024-11-27T11:43:00Z,99.5569,99.5598,99.4778,99.4817,15.0
1529 +SYN1,2024-11-27T11:47:00Z,99.4817,99.4936,99.4541,99.4598,278.0
1530 +SYN1,2024-11-27T11:48:00Z,99.4598,99.4653,99.4403,99.4436,161.0
1531 +SYN1,2024-11-27T11:49:00Z,99.4436,99.4491,99.4056,99.4166,67.0
1532 +SYN1,2024-11-27T11:50:00Z,99.4166,99.429,99.4017,99.4103,70.0
1533 +SYN1,2024-11-27T11:51:00Z,99.4103,99.4609,99.4087,99.4502,58.0
1534 +SYN1,2024-11-27T11:52:00Z,99.4502,99.452,99.4264,99.4279,235.0
1535 +SYN1,2024-11-27T11:53:00Z,99.4279,99.4386,99.3899,99.3916,198.0
1536 +SYN1,2024-11-27T11:55:00Z,99.3916,99.4462,99.3777,99.4253,129.0
1537 +SYN1,2024-11-27T11:57:00Z,99.4253,99.4285,99.3402,99.3621,88.0
1538 +SYN1,2024-11-27T11:58:00Z,99.3621,99.3676,99.3236,99.3328,157.0
1539 +SYN1,2024-11-27T11:59:00Z,99.3328,99.4969,99.3324,99.4869,165.0
1540 +SYN1,2024-11-27T12:00:00Z,99.4869,99.4906,99.4198,99.4353,183.0
1541 +SYN1,2024-11-27T12:01:00Z,99.4353,99.4361,99.3836,99.3908,256.0
1542 +SYN1,2024-11-27T12:02:00Z,99.3908,99.3978,99.3884,99.3896,54.0
1543 +SYN1,2024-11-27T12:03:00Z,99.3896,99.4694,99.3834,99.4515,12.0
1544 +SYN1,2024-11-27T12:04:00Z,99.4515,99.4549,99.4189,99.425,114.0
1545 +SYN1,2024-11-27T12:08:00Z,99.425,99.5043,99.424,99.5036,228.0
1546 +SYN1,2024-11-27T12:09:00Z,99.5036,99.5194,99.4847,99.516,118.0
1547 +SYN1,2024-11-27T12:10:00Z,99.516,99.529,99.5106,99.5117,236.0
1548 +SYN1,2024-11-27T12:11:00Z,99.5117,99.5987,99.5086,99.5978,273.0
1549 +SYN1,2024-11-27T12:13:00Z,99.5978,99.6044,99.5351,99.559,223.0
1550 +SYN1,2024-11-27T12:15:00Z,99.559,99.5591,99.4538,99.4574,273.0
1551 +SYN1,2024-11-27T12:16:00Z,99.4574,99.4723,99.4507,99.471,195.0
1552 +SYN1,2024-11-27T12:18:00Z,99.471,99.5491,99.4636,99.5423,24.0
1553 +SYN1,2024-11-27T12:20:00Z,99.5423,99.5816,99.5322,99.5699,110.0
1554 +SYN1,2024-11-27T12:21:00Z,99.5699,99.5887,99.5689,99.5865,161.0
1555 +SYN1,2024-11-27T12:25:00Z,99.5865,99.6776,99.5765,99.6708,114.0
1556 +SYN1,2024-11-27T12:26:00Z,99.6708,99.704,99.6548,99.6903,259.0
1557 +SYN1,2024-11-27T12:29:00Z,99.6903,99.6975,99.6861,99.6895,261.0
1558 +SYN1,2024-11-27T12:32:00Z,99.6895,99.7,99.6861,99.6917,140.0
1559 +SYN1,2024-11-27T12:36:00Z,99.6917,99.6928,99.6667,99.6704,60.0
1560 +SYN1,2024-11-27T12:37:00Z,99.6704,99.6758,99.6575,99.6627,49.0
1561 +SYN1,2024-11-27T12:39:00Z,99.6627,99.6686,99.6044,99.6096,259.0
1562 +SYN1,2024-11-27T12:41:00Z,99.6096,99.6131,99.5653,99.5668,140.0
1563 +SYN1,2024-11-27T12:42:00Z,99.5668,99.627,99.5599,99.6075,170.0
1564 +SYN1,2024-11-27T12:44:00Z,99.6075,99.6252,99.5823,99.5866,2.0
1565 +SYN1,2024-11-27T12:45:00Z,99.5866,99.5886,99.5233,99.526,201.0
1566 +SYN1,2024-11-27T12:48:00Z,99.526,99.5281,99.5031,99.5081,228.0
1567 +SYN1,2024-11-27T12:49:00Z,99.5081,99.5084,99.473,99.4781,70.0
1568 +SYN1,2024-11-27T12:50:00Z,99.4781,99.4956,99.4546,99.4623,162.0
1569 +SYN1,2024-11-27T12:51:00Z,99.4623,99.5006,99.4582,99.4784,248.0
1570 +SYN1,2024-11-27T12:54:00Z,99.4784,99.4804,99.4504,99.4557,171.0
1571 +SYN1,2024-11-27T12:55:00Z,99.4557,99.458,99.3855,99.3996,139.0
1572 +SYN1,2024-11-27T12:56:00Z,99.3996,99.4092,99.3891,99.4028,240.0
1573 +SYN1,2024-11-27T12:57:00Z,99.4028,99.4566,99.402,99.4445,208.0
1574 +SYN1,2024-11-27T12:58:00Z,99.4445,99.451,99.3963,99.4077,271.0
1575 +SYN1,2024-11-27T12:59:00Z,99.4077,99.4582,99.4043,99.4578,142.0
1576 +SYN1,2024-11-27T13:01:00Z,99.4578,99.4614,99.41,99.4151,52.0
1577 +SYN1,2024-11-27T13:03:00Z,99.4151,99.4298,99.4139,99.4229,114.0
1578 +SYN1,2024-11-27T13:05:00Z,99.4229,99.4275,99.381,99.3903,235.0
1579 +SYN1,2024-11-27T13:06:00Z,99.3903,99.4262,99.3776,99.4147,222.0
1580 +SYN1,2024-11-27T13:08:00Z,99.4147,99.4216,99.3884,99.3973,67.0
1581 +SYN1,2024-11-27T13:09:00Z,99.3973,99.4014,99.3808,99.3881,231.0
1582 +SYN1,2024-11-27T13:12:00Z,99.3881,99.3927,99.3821,99.3822,249.0
1583 +SYN1,2024-11-27T13:13:00Z,99.3822,99.3834,99.3551,99.3657,154.0
1584 +SYN1,2024-11-27T13:15:00Z,99.3657,99.3725,99.3432,99.3526,155.0
1585 +SYN1,2024-11-27T13:16:00Z,99.3526,99.3629,99.3291,99.3344,78.0
1586 +SYN1,2024-11-27T13:17:00Z,99.3344,99.3486,99.2785,99.285,289.0
1587 +SYN1,2024-11-27T13:18:00Z,99.285,99.3047,99.2725,99.2988,31.0
1588 +SYN1,2024-11-27T13:19:00Z,99.2988,99.3155,99.2719,99.2787,82.0
1589 +SYN1,2024-11-27T13:21:00Z,99.2787,99.2974,99.2762,99.2849,52.0
1590 +SYN1,2024-11-27T13:22:00Z,99.2849,99.3219,99.2837,99.3049,280.0
1591 +SYN1,2024-11-27T13:23:00Z,99.3049,99.314,99.2485,99.2526,208.0
1592 +SYN1,2024-11-27T13:24:00Z,99.2526,99.2598,99.2397,99.2485,291.0
1593 +SYN1,2024-11-27T13:31:00Z,99.2485,99.2529,99.1581,99.1801,204.0
1594 +SYN1,2024-11-27T13:33:00Z,99.1801,99.2292,99.1699,99.2276,180.0
1595 +SYN1,2024-11-27T13:35:00Z,99.2276,99.2615,99.2109,99.2377,252.0
1596 +SYN1,2024-11-27T13:37:00Z,99.2377,99.2412,99.2038,99.2112,99.0
1597 +SYN1,2024-11-27T13:38:00Z,99.2112,99.216,99.153,99.156,202.0
1598 +SYN1,2024-11-27T13:40:00Z,99.156,99.2523,99.149,99.2521,67.0
1599 +SYN1,2024-11-27T13:41:00Z,99.2521,99.2573,99.2236,99.2274,196.0
1600 +SYN1,2024-11-27T13:42:00Z,99.2274,99.2344,99.1915,99.2139,298.0
1601 +SYN1,2024-11-27T13:44:00Z,99.2139,99.2422,99.1964,99.2364,66.0
1602 +SYN1,2024-11-27T13:45:00Z,99.2364,99.2418,99.2058,99.2089,112.0
1603 +SYN1,2024-11-27T13:46:00Z,99.2089,99.2241,99.1685,99.1717,128.0
1604 +SYN1,2024-11-27T13:49:00Z,99.1717,99.1771,99.1413,99.1523,46.0
1605 +SYN1,2024-11-27T13:50:00Z,99.1523,99.2256,99.1467,99.2086,152.0
1606 +SYN1,2024-11-27T13:55:00Z,99.2086,99.2401,99.1971,99.2271,190.0
1607 +SYN1,2024-11-27T13:58:00Z,99.2271,99.2427,99.1577,99.1654,67.0
1608 +SYN1,2024-11-27T13:59:00Z,99.1654,99.2058,99.159,99.2051,270.0
1609 +SYN1,2024-11-27T14:00:00Z,99.2051,99.2129,99.1535,99.1731,7.0
1610 +SYN1,2024-11-27T14:01:00Z,99.1731,99.2042,99.1646,99.1911,243.0
1611 +SYN1,2024-11-27T14:04:00Z,99.1911,99.2204,99.191,99.2142,228.0
1612 +SYN1,2024-11-27T14:06:00Z,99.2142,99.2228,99.1924,99.1974,262.0
1613 +SYN1,2024-11-27T14:07:00Z,99.1974,99.1994,99.1624,99.1661,251.0
1614 +SYN1,2024-11-27T14:09:00Z,99.1661,99.1801,99.1586,99.1757,149.0
1615 +SYN1,2024-11-27T14:11:00Z,99.1757,99.1993,99.1694,99.196,138.0
1616 +SYN1,2024-11-27T14:12:00Z,99.196,99.2218,99.1938,99.204,61.0
1617 +SYN1,2024-11-27T14:13:00Z,99.204,99.2162,99.154,99.1596,286.0
1618 +SYN1,2024-11-27T14:14:00Z,99.1596,99.163,99.107,99.129,271.0
1619 +SYN1,2024-11-27T14:15:00Z,99.129,99.1428,99.0877,99.0951,159.0
1620 +SYN1,2024-11-27T14:16:00Z,99.0951,99.1277,99.0842,99.1203,246.0
1621 +SYN1,2024-11-27T14:17:00Z,99.1203,99.135,99.0743,99.0893,33.0
1622 +SYN1,2024-11-27T14:18:00Z,99.0893,99.1448,99.0724,99.1312,293.0
1623 +SYN1,2024-11-27T14:21:00Z,99.1312,99.1528,99.0931,99.0993,17.0
1624 +SYN1,2024-11-27T14:22:00Z,99.0993,99.1898,99.0911,99.189,166.0
1625 +SYN1,2024-11-27T14:24:00Z,99.189,99.2086,99.1542,99.1767,157.0
1626 +SYN1,2024-11-27T14:26:00Z,99.1767,99.1924,99.1413,99.1445,217.0
1627 +SYN1,2024-11-27T14:27:00Z,99.1445,99.2526,99.1415,99.2416,192.0
1628 +SYN1,2024-11-27T14:28:00Z,99.2416,99.2676,99.2375,99.2579,205.0
1629 +SYN1,2024-11-27T14:30:00Z,99.2579,99.3251,99.2544,99.3186,749.0
1630 +SYN1,2024-11-27T14:31:00Z,99.3186,99.3289,99.2597,99.2764,753.0
1631 +SYN1,2024-11-27T14:32:00Z,99.2764,99.2872,99.2741,99.2829,4559.0
1632 +SYN1,2024-11-27T14:33:00Z,99.2829,99.2871,99.2104,99.2122,3999.0
1633 +SYN1,2024-11-27T14:34:00Z,99.2122,99.245,99.2038,99.238,1325.0
1634 +SYN1,2024-11-27T14:35:00Z,99.238,99.243,99.2186,99.2333,3487.0
1635 +SYN1,2024-11-27T14:36:00Z,99.2333,99.246,99.1928,99.2018,3296.0
1636 +SYN1,2024-11-27T14:37:00Z,99.2018,99.2089,99.1565,99.1605,973.0
1637 +SYN1,2024-11-27T14:38:00Z,99.1605,99.2518,99.1548,99.2471,4200.0
1638 +SYN1,2024-11-27T14:39:00Z,99.2471,99.2571,99.2355,99.2402,1140.0
1639 +SYN1,2024-11-27T14:40:00Z,99.2402,99.2495,99.155,99.159,1510.0
1640 +SYN1,2024-11-27T14:41:00Z,99.159,99.1596,99.1085,99.1108,4743.0
1641 +SYN1,2024-11-27T14:42:00Z,99.1108,99.1175,99.1025,99.1034,2578.0
1642 +SYN1,2024-11-27T14:43:00Z,99.1034,99.1238,99.097,99.0992,3150.0
1643 +SYN1,2024-11-27T14:44:00Z,99.0992,99.256,99.0915,99.2558,100.0
1644 +SYN1,2024-11-27T14:45:00Z,99.2558,99.2675,99.1275,99.1342,2953.0
1645 +SYN1,2024-11-27T14:46:00Z,99.1342,99.1507,99.0665,99.0747,3312.0
1646 +SYN1,2024-11-27T14:47:00Z,99.0747,99.0879,99.0424,99.0513,1803.0
1647 +SYN1,2024-11-27T14:48:00Z,99.0513,99.0581,99.0089,99.0112,1096.0
1648 +SYN1,2024-11-27T14:49:00Z,99.0112,99.0606,99.0023,99.0496,4661.0
1649 +SYN1,2024-11-27T14:50:00Z,99.0496,99.055,99.0102,99.0198,4939.0
1650 +SYN1,2024-11-27T14:51:00Z,99.0198,99.1074,99.012,99.1065,4977.0
1651 +SYN1,2024-11-27T14:53:00Z,99.1065,99.1489,99.1062,99.14,4962.0
1652 +SYN1,2024-11-27T14:54:00Z,99.14,99.1914,99.1396,99.1846,2688.0
1653 +SYN1,2024-11-27T14:55:00Z,99.1846,99.2134,99.1842,99.2071,4168.0
1654 +SYN1,2024-11-27T14:56:00Z,99.2071,99.2102,99.0982,99.1055,4717.0
1655 +SYN1,2024-11-27T14:57:00Z,99.1055,99.1286,98.9753,98.9817,686.0
1656 +SYN1,2024-11-27T14:58:00Z,98.9817,98.9903,98.9594,98.9763,1905.0
1657 +SYN1,2024-11-27T14:59:00Z,98.9763,99.0952,98.9711,99.0932,896.0
1658 +SYN1,2024-11-27T15:00:00Z,99.0932,99.0968,99.0201,99.0242,808.0
1659 +SYN1,2024-11-27T15:01:00Z,99.0242,99.0359,99.0026,99.0037,2092.0
1660 +SYN1,2024-11-27T15:02:00Z,99.0037,99.0498,98.9953,99.0453,354.0
1661 +SYN1,2024-11-27T15:03:00Z,99.0453,99.0551,98.9957,99.0077,4463.0
1662 +SYN1,2024-11-27T15:04:00Z,99.0077,99.0564,98.989,99.0485,3439.0
1663 +SYN1,2024-11-27T15:05:00Z,99.0485,99.0669,98.9881,98.995,951.0
1664 +SYN1,2024-11-27T15:06:00Z,98.995,99.0095,98.9636,98.9659,1911.0
1665 +SYN1,2024-11-27T15:07:00Z,98.9659,99.0063,98.9554,98.9808,4490.0
1666 +SYN1,2024-11-27T15:08:00Z,98.9808,98.9838,98.8849,98.8965,2176.0
1667 +SYN1,2024-11-27T15:09:00Z,98.8965,98.8982,98.8589,98.8696,1095.0
1668 +SYN1,2024-11-27T15:10:00Z,98.8696,98.9507,98.8581,98.9491,3142.0
1669 +SYN1,2024-11-27T15:11:00Z,98.9491,98.9534,98.8521,98.8612,4165.0
1670 +SYN1,2024-11-27T15:12:00Z,98.8612,98.9614,98.8493,98.9605,3719.0
1671 +SYN1,2024-11-27T15:13:00Z,98.9605,98.9704,98.9086,98.911,1365.0
1672 +SYN1,2024-11-27T15:14:00Z,98.911,98.9197,98.8343,98.8474,3435.0
1673 +SYN1,2024-11-27T15:15:00Z,98.8474,98.8969,98.8368,98.8917,348.0
1674 +SYN1,2024-11-27T15:16:00Z,98.8917,98.9934,98.8878,98.9923,780.0
1675 +SYN1,2024-11-27T15:17:00Z,98.9923,98.9986,98.9309,98.9349,3026.0
1676 +SYN1,2024-11-27T15:18:00Z,98.9349,98.9846,98.9332,98.9726,4887.0
1677 +SYN1,2024-11-27T15:19:00Z,98.9726,98.978,98.9131,98.9313,2470.0
1678 +SYN1,2024-11-27T15:20:00Z,98.9313,98.9316,98.9095,98.9109,4065.0
1679 +SYN1,2024-11-27T15:21:00Z,98.9109,98.969,98.8968,98.9573,2701.0
1680 +SYN1,2024-11-27T15:22:00Z,98.9573,99.0345,98.9561,99.0188,3668.0
1681 +SYN1,2024-11-27T15:23:00Z,99.0188,99.0697,98.9943,99.0597,2325.0
1682 +SYN1,2024-11-27T15:24:00Z,99.0597,99.1051,99.047,99.0949,1116.0
1683 +SYN1,2024-11-27T15:25:00Z,99.0949,99.2806,99.0938,99.2699,2158.0
1684 +SYN1,2024-11-27T15:26:00Z,99.2699,99.3727,99.2628,99.3503,3649.0
1685 +SYN1,2024-11-27T15:27:00Z,99.3503,99.3929,99.3493,99.3875,2835.0
1686 +SYN1,2024-11-27T15:28:00Z,99.3875,99.3987,99.3443,99.3468,3926.0
1687 +SYN1,2024-11-27T15:29:00Z,99.3468,99.3706,99.3418,99.3499,2858.0
1688 +SYN1,2024-11-27T15:30:00Z,99.3499,99.3551,99.3267,99.3388,3392.0
1689 +SYN1,2024-11-27T15:31:00Z,99.3388,99.3631,99.3254,99.3507,973.0
1690 +SYN1,2024-11-27T15:32:00Z,99.3507,99.3539,99.219,99.2343,2097.0
1691 +SYN1,2024-11-27T15:34:00Z,99.2343,99.2568,99.2053,99.2067,2463.0
1692 +SYN1,2024-11-27T15:35:00Z,99.2067,99.2076,99.1562,99.1592,4271.0
1693 +SYN1,2024-11-27T15:36:00Z,99.1592,99.1669,99.033,99.0481,535.0
1694 +SYN1,2024-11-27T15:37:00Z,99.0481,99.2232,99.0466,99.2147,2372.0
1695 +SYN1,2024-11-27T15:38:00Z,99.2147,99.2267,99.1568,99.1588,1399.0
1696 +SYN1,2024-11-27T15:39:00Z,99.1588,99.1868,99.153,99.1808,4057.0
1697 +SYN1,2024-11-27T15:40:00Z,99.1808,99.1836,99.1269,99.1371,320.0
1698 +SYN1,2024-11-27T15:41:00Z,99.1371,99.1436,99.1079,99.1337,4917.0
1699 +SYN1,2024-11-27T15:42:00Z,99.1337,99.1356,99.1082,99.1203,2465.0
1700 +SYN1,2024-11-27T15:43:00Z,99.1203,99.1412,99.1179,99.1359,1808.0
1701 +SYN1,2024-11-27T15:44:00Z,99.1359,99.138,99.0732,99.0738,1815.0
1702 +SYN1,2024-11-27T15:45:00Z,99.0738,99.1828,99.0712,99.1802,1811.0
1703 +SYN1,2024-11-27T15:46:00Z,99.1802,99.2615,99.1665,99.2461,2292.0
1704 +SYN1,2024-11-27T15:47:00Z,99.2461,99.3311,99.2427,99.3232,945.0
1705 +SYN1,2024-11-27T15:48:00Z,99.3232,99.4279,99.3193,99.423,1529.0
1706 +SYN1,2024-11-27T15:49:00Z,99.423,99.5586,99.4001,99.5402,3738.0
1707 +SYN1,2024-11-27T15:50:00Z,99.5402,99.587,99.5335,99.5686,4097.0
1708 +SYN1,2024-11-27T15:51:00Z,99.5686,99.5787,99.4406,99.4535,2586.0
1709 +SYN1,2024-11-27T15:52:00Z,99.4535,99.4689,99.4483,99.4632,2057.0
1710 +SYN1,2024-11-27T15:53:00Z,99.4632,99.4666,99.4483,99.4495,4758.0
1711 +SYN1,2024-11-27T15:54:00Z,99.4495,99.4974,99.4448,99.4854,3117.0
1712 +SYN1,2024-11-27T15:55:00Z,99.4854,99.5076,99.4381,99.4521,3347.0
1713 +SYN1,2024-11-27T15:56:00Z,99.4521,99.4521,99.4042,99.4055,3059.0
1714 +SYN1,2024-11-27T15:57:00Z,99.4055,99.4946,99.3889,99.4778,3237.0
1715 +SYN1,2024-11-27T15:58:00Z,99.4778,99.4839,99.3266,99.3312,1648.0
1716 +SYN1,2024-11-27T15:59:00Z,99.3312,99.355,99.2666,99.2724,910.0
1717 +SYN1,2024-11-27T16:00:00Z,99.2724,99.3341,99.2688,99.3266,292.0
1718 +SYN1,2024-11-27T16:01:00Z,99.3266,99.335,99.2984,99.3014,487.0
1719 +SYN1,2024-11-27T16:02:00Z,99.3014,99.3084,99.2569,99.2606,4543.0
1720 +SYN1,2024-11-27T16:03:00Z,99.2606,99.2651,99.1108,99.1254,4674.0
1721 +SYN1,2024-11-27T16:04:00Z,99.1254,99.1438,98.9811,99.0012,2948.0
1722 +SYN1,2024-11-27T16:05:00Z,99.0012,99.0093,98.8262,98.833,3384.0
1723 +SYN1,2024-11-27T16:06:00Z,98.833,98.8407,98.7761,98.779,4028.0
1724 +SYN1,2024-11-27T16:07:00Z,98.779,98.8411,98.7724,98.8382,2213.0
1725 +SYN1,2024-11-27T16:08:00Z,98.8382,99.0138,98.8231,99.0049,3698.0
1726 +SYN1,2024-11-27T16:09:00Z,99.0049,99.0471,98.9875,99.0355,4070.0
1727 +SYN1,2024-11-27T16:10:00Z,99.0355,99.1268,99.0096,99.1232,3617.0
1728 +SYN1,2024-11-27T16:11:00Z,99.1232,99.1376,99.1026,99.1029,3870.0
1729 +SYN1,2024-11-27T16:12:00Z,99.1029,99.1037,99.0822,99.0927,3783.0
1730 +SYN1,2024-11-27T16:13:00Z,99.0927,99.1335,99.0844,99.1231,3632.0
1731 +SYN1,2024-11-27T16:14:00Z,99.1231,99.2032,99.1215,99.1977,1776.0
1732 +SYN1,2024-11-27T16:15:00Z,99.1977,99.2632,99.1904,99.2435,3239.0
1733 +SYN1,2024-11-27T16:16:00Z,99.2435,99.2733,99.2395,99.2703,3934.0
1734 +SYN1,2024-11-27T16:17:00Z,99.2703,99.2849,99.2131,99.2209,3645.0
1735 +SYN1,2024-11-27T16:18:00Z,99.2209,99.247,99.2072,99.2451,3092.0
1736 +SYN1,2024-11-27T16:19:00Z,99.2451,99.4257,99.2355,99.4174,2471.0
1737 +SYN1,2024-11-27T16:20:00Z,99.4174,99.4665,99.407,99.4547,1704.0
1738 +SYN1,2024-11-27T16:21:00Z,99.4547,99.4781,99.3745,99.3832,1450.0
1739 +SYN1,2024-11-27T16:22:00Z,99.3832,99.3907,99.2799,99.2885,4808.0
1740 +SYN1,2024-11-27T16:23:00Z,99.2885,99.353,99.2679,99.3513,1185.0
1741 +SYN1,2024-11-27T16:24:00Z,99.3513,99.372,99.0861,99.0989,2015.0
1742 +SYN1,2024-11-27T16:25:00Z,99.0989,99.1561,99.0761,99.155,677.0
1743 +SYN1,2024-11-27T16:26:00Z,99.155,99.1623,99.0698,99.0904,1940.0
1744 +SYN1,2024-11-27T16:27:00Z,99.0904,99.0954,99.001,99.0206,1127.0
1745 +SYN1,2024-11-27T16:28:00Z,99.0206,99.0617,99.0152,99.0535,4918.0
1746 +SYN1,2024-11-27T16:29:00Z,99.0535,99.1599,99.0432,99.1479,173.0
1747 +SYN1,2024-11-27T16:30:00Z,99.1479,99.2376,99.131,99.2296,3381.0
1748 +SYN1,2024-11-27T16:31:00Z,99.2296,99.2312,99.2014,99.2094,607.0
1749 +SYN1,2024-11-27T16:32:00Z,99.2094,99.2214,99.185,99.1903,3168.0
1750 +SYN1,2024-11-27T16:33:00Z,99.1903,99.3036,99.1839,99.3023,4741.0
1751 +SYN1,2024-11-27T16:34:00Z,99.3023,99.3084,99.2529,99.2724,3127.0
1752 +SYN1,2024-11-27T16:35:00Z,99.2724,99.2883,99.1473,99.1489,4133.0
1753 +SYN1,2024-11-27T16:36:00Z,99.1489,99.1934,99.1311,99.1911,2670.0
1754 +SYN1,2024-11-27T16:37:00Z,99.1911,99.2603,99.1838,99.2595,1045.0
1755 +SYN1,2024-11-27T16:38:00Z,99.2595,99.2955,99.256,99.2747,3188.0
1756 +SYN1,2024-11-27T16:39:00Z,99.2747,99.2753,99.2028,99.2079,4005.0
1757 +SYN1,2024-11-27T16:40:00Z,99.2079,99.4006,99.1889,99.3877,2206.0
1758 +SYN1,2024-11-27T16:41:00Z,99.3877,99.4211,99.3817,99.4105,3066.0
1759 +SYN1,2024-11-27T16:42:00Z,99.4105,99.4801,99.408,99.4629,1754.0
1760 +SYN1,2024-11-27T16:43:00Z,99.4629,99.4821,99.4612,99.4739,3041.0
1761 +SYN1,2024-11-27T16:44:00Z,99.4739,99.4746,99.4337,99.4361,2947.0
1762 +SYN1,2024-11-27T16:45:00Z,99.4361,99.5219,99.4334,99.4983,759.0
1763 +SYN1,2024-11-27T16:46:00Z,99.4983,99.5051,99.3837,99.3875,1237.0
1764 +SYN1,2024-11-27T16:47:00Z,99.3875,99.4021,99.3409,99.3546,3998.0
1765 +SYN1,2024-11-27T16:49:00Z,99.3546,99.3698,99.2773,99.2799,3328.0
1766 +SYN1,2024-11-27T16:50:00Z,99.2799,99.3049,99.2796,99.3026,2564.0
1767 +SYN1,2024-11-27T16:51:00Z,99.3026,99.3075,99.2283,99.2453,4322.0
1768 +SYN1,2024-11-27T16:52:00Z,99.2453,99.3041,99.2411,99.2976,555.0
1769 +SYN1,2024-11-27T16:53:00Z,99.2976,99.2991,99.2709,99.2959,833.0
1770 +SYN1,2024-11-27T16:54:00Z,99.2959,99.3033,99.1331,99.1458,2398.0
1771 +SYN1,2024-11-27T16:55:00Z,99.1458,99.2414,99.1428,99.2408,3483.0
1772 +SYN1,2024-11-27T16:56:00Z,99.2408,99.3908,99.2381,99.3767,3950.0
1773 +SYN1,2024-11-27T16:57:00Z,99.3767,99.3971,99.3653,99.3956,3234.0
1774 +SYN1,2024-11-27T16:58:00Z,99.3956,99.3965,99.3867,99.3933,1615.0
1775 +SYN1,2024-11-27T16:59:00Z,99.3933,99.4628,99.392,99.4425,3859.0
1776 +SYN1,2024-11-27T17:00:00Z,99.4425,99.4442,99.3158,99.3222,387.0
1777 +SYN1,2024-11-27T17:01:00Z,99.3222,99.326,99.2344,99.2392,3502.0
1778 +SYN1,2024-11-27T17:02:00Z,99.2392,99.2444,99.2308,99.243,4132.0
1779 +SYN1,2024-11-27T17:03:00Z,99.243,99.2456,99.2294,99.2297,4031.0
1780 +SYN1,2024-11-27T17:04:00Z,99.2297,99.2372,99.1767,99.1824,3922.0
1781 +SYN1,2024-11-27T17:05:00Z,99.1824,99.2118,99.182,99.2029,3589.0
1782 +SYN1,2024-11-27T17:06:00Z,99.2029,99.219,99.1142,99.1186,2297.0
1783 +SYN1,2024-11-27T17:07:00Z,99.1186,99.1297,99.0848,99.089,3371.0
1784 +SYN1,2024-11-27T17:08:00Z,99.089,99.0959,98.9014,98.9045,3065.0
1785 +SYN1,2024-11-27T17:09:00Z,98.9045,98.9519,98.8907,98.9256,3362.0
1786 +SYN1,2024-11-27T17:10:00Z,98.9256,99.0355,98.9207,99.0233,2727.0
1787 +SYN1,2024-11-27T17:11:00Z,99.0233,99.0274,98.862,98.8674,3264.0
1788 +SYN1,2024-11-27T17:12:00Z,98.8674,98.9107,98.8652,98.9062,3447.0
1789 +SYN1,2024-11-27T17:13:00Z,98.9062,99.0188,98.8925,99.0175,2764.0
1790 +SYN1,2024-11-27T17:14:00Z,99.0175,99.0451,99.0103,99.0356,2917.0
1791 +SYN1,2024-11-27T17:15:00Z,99.0356,99.041,98.94,98.94,800.0
1792 +SYN1,2024-11-27T17:16:00Z,98.94,98.949,98.885,98.8911,831.0
1793 +SYN1,2024-11-27T17:17:00Z,98.8911,99.0044,98.8841,99.0,511.0
1794 +SYN1,2024-11-27T17:19:00Z,99.0,99.0033,98.9814,98.9883,963.0
1795 +SYN1,2024-11-27T17:20:00Z,98.9883,98.9944,98.8726,98.8784,3596.0
1796 +SYN1,2024-11-27T17:21:00Z,98.8784,99.0127,98.8641,99.0101,3725.0
1797 +SYN1,2024-11-27T17:22:00Z,99.0101,99.0524,99.0064,99.0472,3354.0
1798 +SYN1,2024-11-27T17:23:00Z,99.0472,99.0645,99.0398,99.0543,2395.0
1799 +SYN1,2024-11-27T17:24:00Z,99.0543,99.0605,98.9776,98.9919,2301.0
1800 +SYN1,2024-11-27T17:25:00Z,98.9919,99.0953,98.9858,99.0952,3287.0
1801 +SYN1,2024-11-27T17:26:00Z,99.0952,99.1004,98.9997,99.0128,3136.0
1802 +SYN1,2024-11-27T17:28:00Z,99.0128,99.0765,99.0104,99.0724,4183.0
1803 +SYN1,2024-11-27T17:29:00Z,99.0724,99.0733,99.0569,99.0597,3971.0
1804 +SYN1,2024-11-27T17:30:00Z,99.0597,99.1138,99.0564,99.106,3103.0
1805 +SYN1,2024-11-27T17:31:00Z,99.106,99.2026,99.1025,99.2018,1645.0
1806 +SYN1,2024-11-27T17:32:00Z,99.2018,99.2066,99.1406,99.1477,1003.0
1807 +SYN1,2024-11-27T17:33:00Z,99.1477,99.1542,99.107,99.1076,4772.0
1808 +SYN1,2024-11-27T17:34:00Z,99.1076,99.1124,99.0758,99.0799,1835.0
1809 +SYN1,2024-11-27T17:35:00Z,99.0799,99.1292,99.0778,99.1251,3864.0
1810 +SYN1,2024-11-27T17:36:00Z,99.1251,99.1263,99.1087,99.112,2314.0
1811 +SYN1,2024-11-27T17:37:00Z,99.112,99.1283,99.0643,99.0669,2516.0
1812 +SYN1,2024-11-27T17:38:00Z,99.0669,99.0691,98.9637,98.9693,2842.0
1813 +SYN1,2024-11-27T17:39:00Z,98.9693,99.117,98.9602,99.1036,1675.0
1814 +SYN1,2024-11-27T17:40:00Z,99.1036,99.1122,99.0584,99.0627,2201.0
1815 +SYN1,2024-11-27T17:41:00Z,99.0627,99.1689,99.0494,99.1573,2933.0
1816 +SYN1,2024-11-27T17:42:00Z,99.1573,99.1744,99.1518,99.1671,3934.0
1817 +SYN1,2024-11-27T17:43:00Z,99.1671,99.1691,99.1177,99.1264,3470.0
1818 +SYN1,2024-11-27T17:44:00Z,99.1264,99.2045,99.1143,99.2019,4273.0
1819 +SYN1,2024-11-27T17:45:00Z,99.2019,99.2232,99.2015,99.2064,1473.0
1820 +SYN1,2024-11-27T17:46:00Z,99.2064,99.2086,99.187,99.1871,4465.0
1821 +SYN1,2024-11-27T17:47:00Z,99.1871,99.1907,99.1517,99.1643,4816.0
1822 +SYN1,2024-11-27T17:48:00Z,99.1643,99.1669,98.9425,98.9474,1979.0
1823 +SYN1,2024-11-27T17:49:00Z,98.9474,98.9561,98.8698,98.8721,1968.0
1824 +SYN1,2024-11-27T17:50:00Z,98.8721,98.8865,98.6962,98.7004,2424.0
1825 +SYN1,2024-11-27T17:51:00Z,98.7004,98.702,98.6639,98.6718,2193.0
1826 +SYN1,2024-11-27T17:52:00Z,98.6718,98.673,98.5446,98.5507,2023.0
1827 +SYN1,2024-11-27T17:53:00Z,98.5507,98.6618,98.5385,98.6508,3956.0
1828 +SYN1,2024-11-27T17:54:00Z,98.6508,98.6595,98.6473,98.6513,4155.0
1829 +SYN1,2024-11-27T17:55:00Z,98.6513,98.6538,98.4153,98.4166,4365.0
1830 +SYN1,2024-11-27T17:56:00Z,98.4166,98.4243,98.3935,98.404,1068.0
1831 +SYN1,2024-11-27T17:57:00Z,98.404,98.4151,98.4004,98.4118,4773.0
1832 +SYN1,2024-11-27T17:58:00Z,98.4118,98.4256,98.3053,98.3066,1772.0
1833 +SYN1,2024-11-27T17:59:00Z,98.3066,98.3087,98.2745,98.2803,3679.0
1834 +SYN1,2024-11-27T18:00:00Z,98.2803,98.4004,98.2768,98.3911,2821.0
1835 +SYN1,2024-11-27T18:01:00Z,98.3911,98.4159,98.3798,98.407,4691.0
1836 +SYN1,2024-11-27T18:02:00Z,98.407,98.4181,98.3599,98.3634,578.0
1837 +SYN1,2024-11-27T18:03:00Z,98.3634,98.3991,98.3559,98.3977,4424.0
1838 +SYN1,2024-11-27T18:04:00Z,98.3977,98.4632,98.3906,98.4601,255.0
1839 +SYN1,2024-11-27T18:05:00Z,98.4601,98.5122,98.4523,98.5081,1266.0
1840 +SYN1,2024-11-27T18:06:00Z,98.5081,98.6657,98.4943,98.6567,2100.0
1841 +SYN1,2024-11-27T18:07:00Z,98.6567,98.6602,98.6078,98.6138,828.0
1842 +SYN1,2024-11-27T18:08:00Z,98.6138,98.6143,98.4847,98.4936,4650.0
1843 +SYN1,2024-11-27T18:09:00Z,98.4936,98.5042,98.4551,98.4591,3604.0
1844 +SYN1,2024-11-27T18:10:00Z,98.4591,98.467,98.4516,98.4553,4877.0
1845 +SYN1,2024-11-27T18:11:00Z,98.4553,98.4556,98.3573,98.3676,3712.0
1846 +SYN1,2024-11-27T18:12:00Z,98.3676,98.374,98.302,98.3211,2065.0
1847 +SYN1,2024-11-27T18:13:00Z,98.3211,98.4516,98.3154,98.4353,2245.0
1848 +SYN1,2024-11-27T18:14:00Z,98.4353,98.4513,98.4235,98.45,4036.0
1849 +SYN1,2024-11-27T18:15:00Z,98.45,98.4591,98.3542,98.3752,1664.0
1850 +SYN1,2024-11-27T18:16:00Z,98.3752,98.3856,98.3661,98.3662,4501.0
1851 +SYN1,2024-11-27T18:17:00Z,98.3662,98.3754,98.3453,98.3589,3414.0
1852 +SYN1,2024-11-27T18:18:00Z,98.3589,98.3623,98.2229,98.2242,1403.0
1853 +SYN1,2024-11-27T18:19:00Z,98.2242,98.2254,98.1281,98.1476,3338.0
1854 +SYN1,2024-11-27T18:20:00Z,98.1476,98.1522,98.1349,98.1353,1295.0
1855 +SYN1,2024-11-27T18:21:00Z,98.1353,98.1495,98.127,98.1306,353.0
1856 +SYN1,2024-11-27T18:22:00Z,98.1306,98.1318,98.0771,98.0799,4809.0
1857 +SYN1,2024-11-27T18:23:00Z,98.0799,98.1209,98.0695,98.114,924.0
1858 +SYN1,2024-11-27T18:24:00Z,98.114,98.1775,98.1048,98.1681,4249.0
1859 +SYN1,2024-11-27T18:25:00Z,98.1681,98.2842,98.1577,98.2719,1711.0
1860 +SYN1,2024-11-27T18:26:00Z,98.2719,98.2767,98.1566,98.1627,591.0
1861 +SYN1,2024-11-27T18:27:00Z,98.1627,98.3337,98.1541,98.3183,4644.0
1862 +SYN1,2024-11-27T18:28:00Z,98.3183,98.3359,98.2769,98.2776,1889.0
1863 +SYN1,2024-11-27T18:29:00Z,98.2776,98.3703,98.2768,98.3654,733.0
1864 +SYN1,2024-11-27T18:30:00Z,98.3654,98.4779,98.3516,98.4533,2637.0
1865 +SYN1,2024-11-27T18:31:00Z,98.4533,98.4589,98.3585,98.3723,1188.0
1866 +SYN1,2024-11-27T18:32:00Z,98.3723,98.4746,98.3576,98.4658,549.0
1867 +SYN1,2024-11-27T18:33:00Z,98.4658,98.5702,98.4614,98.5518,1862.0
1868 +SYN1,2024-11-27T18:34:00Z,98.5518,98.6866,98.5506,98.6779,1044.0
1869 +SYN1,2024-11-27T18:35:00Z,98.6779,98.707,98.6702,98.7038,1237.0
1870 +SYN1,2024-11-27T18:36:00Z,98.7038,98.8567,98.6839,98.8486,204.0
1871 +SYN1,2024-11-27T18:37:00Z,98.8486,98.8559,98.7972,98.8012,3380.0
1872 +SYN1,2024-11-27T18:39:00Z,98.8012,98.8094,98.7679,98.7728,2987.0
1873 +SYN1,2024-11-27T18:40:00Z,98.7728,98.7753,98.6057,98.6065,2885.0
1874 +SYN1,2024-11-27T18:41:00Z,98.6065,98.6069,98.5645,98.5794,1382.0
1875 +SYN1,2024-11-27T18:42:00Z,98.5794,98.6014,98.5582,98.5656,2496.0
1876 +SYN1,2024-11-27T18:43:00Z,98.5656,98.6435,98.5581,98.6412,1091.0
1877 +SYN1,2024-11-27T18:44:00Z,98.6412,98.8138,98.6402,98.7988,1103.0
1878 +SYN1,2024-11-27T18:45:00Z,98.7988,98.8042,98.6722,98.6778,4062.0
1879 +SYN1,2024-11-27T18:46:00Z,98.6778,98.6876,98.6479,98.655,2276.0
1880 +SYN1,2024-11-27T18:47:00Z,98.655,98.7835,98.649,98.7674,4258.0
1881 +SYN1,2024-11-27T18:48:00Z,98.7674,98.79,98.7521,98.7597,2055.0
1882 +SYN1,2024-11-27T18:51:00Z,98.7597,98.7835,98.7484,98.7833,4496.0
1883 +SYN1,2024-11-27T18:52:00Z,98.7833,98.7878,98.7214,98.7362,1800.0
1884 +SYN1,2024-11-27T18:53:00Z,98.7362,98.7933,98.7308,98.7824,3028.0
1885 +SYN1,2024-11-27T18:54:00Z,98.7824,98.7986,98.7808,98.7966,177.0
1886 +SYN1,2024-11-27T18:55:00Z,98.7966,98.8104,98.6878,98.6958,4883.0
1887 +SYN1,2024-11-27T18:56:00Z,98.6958,98.6996,98.6445,98.6537,907.0
1888 +SYN1,2024-11-27T18:57:00Z,98.6537,98.6653,98.6252,98.6257,2112.0
1889 +SYN1,2024-11-27T18:58:00Z,98.6257,98.6949,98.6234,98.6747,1746.0
1890 +SYN1,2024-11-27T18:59:00Z,98.6747,98.6915,98.6506,98.6511,2317.0
1891 +SYN1,2024-11-27T19:00:00Z,98.6511,98.6707,98.6436,98.6705,2408.0
1892 +SYN1,2024-11-27T19:01:00Z,98.6705,98.68,98.5298,98.5436,901.0
1893 +SYN1,2024-11-27T19:02:00Z,98.5436,98.5903,98.5346,98.588,4395.0
1894 +SYN1,2024-11-27T19:03:00Z,98.588,98.5882,98.4837,98.488,2476.0
1895 +SYN1,2024-11-27T19:04:00Z,98.488,98.5027,98.4875,98.4971,4961.0
1896 +SYN1,2024-11-27T19:05:00Z,98.4971,98.5453,98.4929,98.5416,4949.0
1897 +SYN1,2024-11-27T19:06:00Z,98.5416,98.5585,98.4625,98.4665,4663.0
1898 +SYN1,2024-11-27T19:07:00Z,98.4665,98.4701,98.3482,98.359,4305.0
1899 +SYN1,2024-11-27T19:09:00Z,98.359,98.374,98.2385,98.2449,2222.0
1900 +SYN1,2024-11-27T19:10:00Z,98.2449,98.2543,98.1736,98.1881,2841.0
1901 +SYN1,2024-11-27T19:11:00Z,98.1881,98.2203,98.173,98.2087,4850.0
1902 +SYN1,2024-11-27T19:12:00Z,98.2087,98.2159,98.133,98.1344,2159.0
1903 +SYN1,2024-11-27T19:13:00Z,98.1344,98.1718,98.1293,98.1636,914.0
1904 +SYN1,2024-11-27T19:14:00Z,98.1636,98.1702,98.08,98.0839,4393.0
1905 +SYN1,2024-11-27T19:15:00Z,98.0839,98.2203,98.0837,98.2189,3281.0
1906 +SYN1,2024-11-27T19:16:00Z,98.2189,98.2764,98.197,98.2723,806.0
1907 +SYN1,2024-11-27T19:17:00Z,98.2723,98.3675,98.263,98.3665,4766.0
1908 +SYN1,2024-11-27T19:18:00Z,98.3665,98.3689,98.3382,98.3391,2570.0
1909 +SYN1,2024-11-27T19:19:00Z,98.3391,98.5509,98.3155,98.543,587.0
1910 +SYN1,2024-11-27T19:20:00Z,98.543,98.5602,98.5394,98.5472,255.0
1911 +SYN1,2024-11-27T19:21:00Z,98.5472,98.557,98.5303,98.5465,2301.0
1912 +SYN1,2024-11-27T19:22:00Z,98.5465,98.6031,98.5446,98.5991,4521.0
1913 +SYN1,2024-11-27T19:23:00Z,98.5991,98.6031,98.5511,98.5617,3122.0
1914 +SYN1,2024-11-27T19:24:00Z,98.5617,98.5664,98.5306,98.5351,1359.0
1915 +SYN1,2024-11-27T19:25:00Z,98.5351,98.6172,98.5136,98.6081,1345.0
1916 +SYN1,2024-11-27T19:26:00Z,98.6081,98.6966,98.6062,98.6886,2478.0
1917 +SYN1,2024-11-27T19:27:00Z,98.6886,98.7006,98.5563,98.5674,936.0
1918 +SYN1,2024-11-27T19:28:00Z,98.5674,98.6775,98.5648,98.6633,4551.0
1919 +SYN1,2024-11-27T19:29:00Z,98.6633,98.8022,98.6484,98.8004,1674.0
1920 +SYN1,2024-11-27T19:30:00Z,98.8004,98.8029,98.7283,98.7409,2918.0
1921 +SYN1,2024-11-27T19:31:00Z,98.7409,98.8541,98.7209,98.842,412.0
1922 +SYN1,2024-11-27T19:32:00Z,98.842,98.8523,98.792,98.8032,4286.0
1923 +SYN1,2024-11-27T19:33:00Z,98.8032,98.8674,98.7752,98.8628,1996.0
1924 +SYN1,2024-11-27T19:34:00Z,98.8628,98.8886,98.8578,98.8845,3413.0
1925 +SYN1,2024-11-27T19:35:00Z,98.8845,99.0499,98.8754,99.0319,4990.0
1926 +SYN1,2024-11-27T19:36:00Z,99.0319,99.0398,98.8729,98.8884,509.0
1927 +SYN1,2024-11-27T19:37:00Z,98.8884,98.9074,98.8867,98.9045,4861.0
1928 +SYN1,2024-11-27T19:38:00Z,98.9045,98.9069,98.75,98.7536,2735.0
1929 +SYN1,2024-11-27T19:39:00Z,98.7536,98.7589,98.6738,98.6863,4963.0
1930 +SYN1,2024-11-27T19:40:00Z,98.6863,98.7003,98.6179,98.6206,723.0
1931 +SYN1,2024-11-27T19:41:00Z,98.6206,98.6335,98.4983,98.505,4248.0
1932 +SYN1,2024-11-27T19:42:00Z,98.505,98.5308,98.4376,98.4433,3769.0
1933 +SYN1,2024-11-27T19:43:00Z,98.4433,98.4484,98.4425,98.4437,3456.0
1934 +SYN1,2024-11-27T19:44:00Z,98.4437,98.4895,98.4289,98.4726,2126.0
1935 +SYN1,2024-11-27T19:45:00Z,98.4726,98.498,98.4697,98.4886,493.0
1936 +SYN1,2024-11-27T19:46:00Z,98.4886,98.704,98.4866,98.7004,3837.0
1937 +SYN1,2024-11-27T19:47:00Z,98.7004,98.7351,98.6881,98.7267,184.0
1938 +SYN1,2024-11-27T19:48:00Z,98.7267,98.7565,98.7116,98.7441,4622.0
1939 +SYN1,2024-11-27T19:49:00Z,98.7441,98.771,98.6523,98.6541,2162.0
1940 +SYN1,2024-11-27T19:50:00Z,98.6541,98.6592,98.5986,98.6033,2696.0
1941 +SYN1,2024-11-27T19:51:00Z,98.6033,98.6186,98.5051,98.5109,4875.0
1942 +SYN1,2024-11-27T19:52:00Z,98.5109,98.5129,98.3927,98.401,2163.0
1943 +SYN1,2024-11-27T19:53:00Z,98.401,98.4102,98.398,98.3999,4496.0
1944 +SYN1,2024-11-27T19:54:00Z,98.3999,98.4005,98.3355,98.3454,4501.0
1945 +SYN1,2024-11-27T19:55:00Z,98.3454,98.3476,98.2877,98.2968,1047.0
1946 +SYN1,2024-11-27T19:56:00Z,98.2968,98.3286,98.2964,98.3275,4531.0
1947 +SYN1,2024-11-27T19:57:00Z,98.3275,98.3399,98.2923,98.3064,2152.0
1948 +SYN1,2024-11-27T19:58:00Z,98.3064,98.3135,98.2372,98.2386,3497.0
1949 +SYN1,2024-11-27T19:59:00Z,98.2386,98.2413,98.1815,98.1878,3119.0
1950 +SYN1,2024-11-27T20:00:00Z,98.1878,98.2012,98.134,98.1403,2850.0
1951 +SYN1,2024-11-27T20:01:00Z,98.1403,98.1583,98.1397,98.1499,2738.0
1952 +SYN1,2024-11-27T20:02:00Z,98.1499,98.2318,98.1473,98.2245,3636.0
1953 +SYN1,2024-11-27T20:03:00Z,98.2245,98.3157,98.196,98.3039,2213.0
1954 +SYN1,2024-11-27T20:04:00Z,98.3039,98.3169,98.2923,98.3139,3740.0
1955 +SYN1,2024-11-27T20:06:00Z,98.3139,98.3178,98.1872,98.1959,2963.0
1956 +SYN1,2024-11-27T20:07:00Z,98.1959,98.2101,98.1387,98.1429,4486.0
1957 +SYN1,2024-11-27T20:08:00Z,98.1429,98.146,98.0585,98.0734,2124.0
1958 +SYN1,2024-11-27T20:11:00Z,98.0734,98.0872,97.9893,98.0005,338.0
1959 +SYN1,2024-11-27T20:12:00Z,98.0005,98.0218,97.8487,97.8641,1790.0
1960 +SYN1,2024-11-27T20:13:00Z,97.8641,97.9077,97.8583,97.8886,1291.0
1961 +SYN1,2024-11-27T20:14:00Z,97.8886,97.8954,97.8525,97.8548,4329.0
1962 +SYN1,2024-11-27T20:15:00Z,97.8548,97.8593,97.8131,97.8186,2478.0
1963 +SYN1,2024-11-27T20:16:00Z,97.8186,97.929,97.8162,97.9274,2638.0
1964 +SYN1,2024-11-27T20:17:00Z,97.9274,97.9357,97.912,97.9254,1246.0
1965 +SYN1,2024-11-27T20:18:00Z,97.9254,97.9987,97.9139,97.996,1558.0
1966 +SYN1,2024-11-27T20:19:00Z,97.996,98.0736,97.9825,98.0631,101.0
1967 +SYN1,2024-11-27T20:20:00Z,98.0631,98.07,98.0133,98.0232,1446.0
1968 +SYN1,2024-11-27T20:21:00Z,98.0232,98.0303,97.9178,97.928,4466.0
1969 +SYN1,2024-11-27T20:22:00Z,97.928,97.9305,97.8508,97.8521,688.0
1970 +SYN1,2024-11-27T20:23:00Z,97.8521,97.9088,97.8353,97.903,4719.0
1971 +SYN1,2024-11-27T20:24:00Z,97.903,97.914,97.9027,97.9102,543.0
1972 +SYN1,2024-11-27T20:25:00Z,97.9102,97.9145,97.8904,97.8936,1338.0
1973 +SYN1,2024-11-27T20:26:00Z,97.8936,97.8961,97.7952,97.8046,1293.0
1974 +SYN1,2024-11-27T20:27:00Z,97.8046,97.8066,97.7811,97.7867,3587.0
1975 +SYN1,2024-11-27T20:28:00Z,97.7867,97.7998,97.6255,97.6321,3571.0
1976 +SYN1,2024-11-27T20:29:00Z,97.6321,97.6409,97.6061,97.6156,4924.0
1977 +SYN1,2024-11-27T20:30:00Z,97.6156,97.6757,97.5969,97.6673,2718.0
1978 +SYN1,2024-11-27T20:31:00Z,97.6673,97.7125,97.6608,97.7101,2479.0
1979 +SYN1,2024-11-27T20:32:00Z,97.7101,97.7112,97.6219,97.6297,1302.0
1980 +SYN1,2024-11-27T20:33:00Z,97.6297,97.6411,97.4623,97.4752,1334.0
1981 +SYN1,2024-11-27T20:34:00Z,97.4752,97.4767,97.4635,97.466,4097.0
1982 +SYN1,2024-11-27T20:35:00Z,97.466,97.471,97.4593,97.4701,4755.0
1983 +SYN1,2024-11-27T20:36:00Z,97.4701,97.5641,97.4548,97.5468,4021.0
1984 +SYN1,2024-11-27T20:37:00Z,97.5468,97.5618,97.5253,97.5609,4595.0
1985 +SYN1,2024-11-27T20:38:00Z,97.5609,97.6798,97.5577,97.6708,2141.0
1986 +SYN1,2024-11-27T20:39:00Z,97.6708,97.6759,97.4912,97.4983,1899.0
1987 +SYN1,2024-11-27T20:40:00Z,97.4983,97.5093,97.4185,97.4281,1615.0
1988 +SYN1,2024-11-27T20:41:00Z,97.4281,97.5333,97.4216,97.5321,284.0
1989 +SYN1,2024-11-27T20:42:00Z,97.5321,97.6271,97.5179,97.6175,1035.0
1990 +SYN1,2024-11-27T20:43:00Z,97.6175,97.6194,97.509,97.5128,3890.0
1991 +SYN1,2024-11-27T20:44:00Z,97.5128,97.5272,97.4399,97.4427,3495.0
1992 +SYN1,2024-11-27T20:45:00Z,97.4427,97.4598,97.4341,97.4351,3346.0
1993 +SYN1,2024-11-27T20:46:00Z,97.4351,97.4503,97.4228,97.4372,471.0
1994 +SYN1,2024-11-27T20:47:00Z,97.4372,97.4519,97.4319,97.4354,1611.0
1995 +SYN1,2024-11-27T20:48:00Z,97.4354,97.5178,97.4242,97.5019,323.0
1996 +SYN1,2024-11-27T20:49:00Z,97.5019,97.5541,97.4944,97.5516,3915.0
1997 +SYN1,2024-11-27T20:50:00Z,97.5516,97.5882,97.548,97.5688,2754.0
1998 +SYN1,2024-11-27T20:51:00Z,97.5688,97.58,97.5556,97.5711,815.0
1999 +SYN1,2024-11-27T20:52:00Z,97.5711,97.6373,97.5654,97.6363,827.0
2000 +SYN1,2024-11-27T20:53:00Z,97.6363,97.6487,97.6023,97.603,2706.0
2001 +SYN1,2024-11-27T20:54:00Z,97.603,97.6127,97.5389,97.5407,4071.0
2002 +SYN1,2024-11-27T20:55:00Z,97.5407,97.5484,97.5271,97.5419,1889.0
2003 +SYN1,2024-11-27T20:56:00Z,97.5419,97.5572,97.54,97.5559,1450.0
2004 +SYN1,2024-11-27T20:57:00Z,97.5559,97.5663,97.4637,97.4759,2135.0
2005 +SYN1,2024-11-27T20:58:00Z,97.4759,97.4919,97.4619,97.4891,3801.0
2006 +SYN1,2024-11-27T20:59:00Z,97.4891,97.4943,97.4862,97.4937,637.0
2007 +SYN1,2024-11-27T21:00:00Z,97.4937,97.502,97.3494,97.3722,1045.0
2008 +SYN1,2024-11-27T21:01:00Z,97.3722,97.383,97.339,97.3454,257.0
2009 +SYN1,2024-11-27T21:02:00Z,97.3454,97.3867,97.3328,97.3814,203.0
2010 +SYN1,2024-11-27T21:04:00Z,97.3814,97.437,97.3776,97.418,183.0
2011 +SYN1,2024-11-27T21:05:00Z,97.418,97.4956,97.4159,97.4821,274.0
2012 +SYN1,2024-11-27T21:06:00Z,97.4821,97.5315,97.4575,97.52,234.0
2013 +SYN1,2024-11-27T21:07:00Z,97.52,97.558,97.5087,97.5437,99.0
2014 +SYN1,2024-11-27T21:08:00Z,97.5437,97.5495,97.5062,97.5091,221.0
2015 +SYN1,2024-11-27T21:10:00Z,97.5091,97.5102,97.4609,97.4698,279.0
2016 +SYN1,2024-11-27T21:12:00Z,97.4698,97.4917,97.4576,97.4777,272.0
2017 +SYN1,2024-11-27T21:13:00Z,97.4777,97.5016,97.4228,97.425,161.0
2018 +SYN1,2024-11-27T21:14:00Z,97.425,97.4895,97.4226,97.4792,140.0
2019 +SYN1,2024-11-27T21:15:00Z,97.4792,97.4875,97.4324,97.439,144.0
2020 +SYN1,2024-11-27T21:16:00Z,97.439,97.4564,97.4204,97.4301,269.0
2021 +SYN1,2024-11-27T21:17:00Z,97.4301,97.4665,97.4188,97.4591,80.0
2022 +SYN1,2024-11-27T21:19:00Z,97.4591,97.5051,97.4488,97.4882,103.0
2023 +SYN1,2024-11-27T21:20:00Z,97.4882,97.4941,97.4458,97.4468,222.0
2024 +SYN1,2024-11-27T21:22:00Z,97.4468,97.4659,97.442,97.4516,208.0
2025 +SYN1,2024-11-27T21:25:00Z,97.4516,97.4519,97.445,97.4516,64.0
2026 +SYN1,2024-11-27T21:27:00Z,97.4516,97.4716,97.428,97.431,149.0
2027 +SYN1,2024-11-27T21:29:00Z,97.431,97.4324,97.3058,97.3187,182.0
2028 +SYN1,2024-11-27T21:30:00Z,97.3187,97.3741,97.3009,97.3553,109.0
2029 +SYN1,2024-11-27T21:34:00Z,97.3553,97.3656,97.331,97.3369,9.0
2030 +SYN1,2024-11-27T21:35:00Z,97.3369,97.3422,97.3001,97.3042,24.0
2031 +SYN1,2024-11-27T21:36:00Z,97.3042,97.3094,97.1957,97.2198,285.0
2032 +SYN1,2024-11-27T21:37:00Z,97.2198,97.2936,97.2176,97.2745,60.0
2033 +SYN1,2024-11-27T21:38:00Z,97.2745,97.2867,97.2614,97.2861,134.0
2034 +SYN1,2024-11-27T21:39:00Z,97.2861,97.2886,97.2524,97.2623,202.0
2035 +SYN1,2024-11-27T21:40:00Z,97.2623,97.2791,97.2413,97.2463,52.0
2036 +SYN1,2024-11-27T21:41:00Z,97.2463,97.263,97.2338,97.2554,259.0
2037 +SYN1,2024-11-27T21:43:00Z,97.2554,97.2719,97.2322,97.2502,292.0
2038 +SYN1,2024-11-27T21:44:00Z,97.2502,97.2626,97.1882,97.2002,274.0
2039 +SYN1,2024-11-27T21:45:00Z,97.2002,97.201,97.1605,97.1738,219.0
2040 +SYN1,2024-11-27T21:46:00Z,97.1738,97.1773,97.1216,97.1372,263.0
2041 +SYN1,2024-11-27T21:48:00Z,97.1372,97.1599,97.1319,97.135,95.0
2042 +SYN1,2024-11-27T21:51:00Z,97.135,97.2073,97.1333,97.2052,282.0
2043 +SYN1,2024-11-27T21:53:00Z,97.2052,97.2113,97.2037,97.2091,155.0
2044 +SYN1,2024-11-27T21:56:00Z,97.2091,97.2204,97.1841,97.1856,9.0
2045 +SYN1,2024-11-27T21:57:00Z,97.1856,97.2106,97.181,97.196,206.0
2046 +SYN1,2024-11-27T21:58:00Z,97.196,97.2231,97.1771,97.2076,177.0
2047 +SYN1,2024-11-27T22:02:00Z,97.2076,97.2091,97.1873,97.1888,22.0
2048 +SYN1,2024-11-27T22:04:00Z,97.1888,97.2364,97.1844,97.2277,39.0
2049 +SYN1,2024-11-27T22:05:00Z,97.2277,97.25,97.2214,97.245,67.0
2050 +SYN1,2024-11-27T22:08:00Z,97.245,97.2667,97.2445,97.2594,100.0
2051 +SYN1,2024-11-27T22:09:00Z,97.2594,97.2894,97.2497,97.2788,252.0
2052 +SYN1,2024-11-27T22:10:00Z,97.2788,97.2794,97.2279,97.248,228.0
2053 +SYN1,2024-11-27T22:14:00Z,97.248,97.2491,97.2371,97.2374,295.0
2054 +SYN1,2024-11-27T22:17:00Z,97.2374,97.2712,97.2365,97.2638,37.0
2055 +SYN1,2024-11-27T22:20:00Z,97.2638,97.2744,97.2499,97.2734,46.0
2056 +SYN1,2024-11-27T22:24:00Z,97.2734,97.308,97.2714,97.3008,188.0
2057 +SYN1,2024-11-27T22:26:00Z,97.3008,97.3065,97.2183,97.2222,173.0
2058 +SYN1,2024-11-27T22:29:00Z,97.2222,97.2309,97.2091,97.2186,66.0
2059 +SYN1,2024-11-27T22:32:00Z,97.2186,97.2284,97.2041,97.2141,126.0
2060 +SYN1,2024-11-27T22:33:00Z,97.2141,97.2221,97.2034,97.2187,272.0
2061 +SYN1,2024-11-27T22:34:00Z,97.2187,97.2757,97.217,97.2731,238.0
2062 +SYN1,2024-11-27T22:35:00Z,97.2731,97.326,97.2702,97.3253,132.0
2063 +SYN1,2024-11-27T22:37:00Z,97.3253,97.326,97.2898,97.2969,282.0
2064 +SYN1,2024-11-27T22:38:00Z,97.2969,97.3062,97.2332,97.2358,295.0
2065 +SYN1,2024-11-27T22:39:00Z,97.2358,97.2931,97.229,97.2926,200.0
2066 +SYN1,2024-11-27T22:41:00Z,97.2926,97.2953,97.2657,97.2771,36.0
2067 +SYN1,2024-11-27T22:42:00Z,97.2771,97.3154,97.2677,97.2976,95.0
2068 +SYN1,2024-11-27T22:43:00Z,97.2976,97.3078,97.2932,97.306,72.0
2069 +SYN1,2024-11-27T22:44:00Z,97.306,97.3227,97.285,97.3201,26.0
2070 +SYN1,2024-11-27T22:45:00Z,97.3201,97.3398,97.2686,97.2696,117.0
2071 +SYN1,2024-11-27T22:46:00Z,97.2696,97.272,97.2209,97.2312,102.0
2072 +SYN1,2024-11-27T22:47:00Z,97.2312,97.2962,97.2221,97.264,97.0
2073 +SYN1,2024-11-27T22:48:00Z,97.264,97.2696,97.2352,97.2376,264.0
2074 +SYN1,2024-11-27T22:49:00Z,97.2376,97.2466,97.1977,97.2191,150.0
2075 +SYN1,2024-11-27T22:50:00Z,97.2191,97.2346,97.153,97.1544,276.0
2076 +SYN1,2024-11-27T22:52:00Z,97.1544,97.2215,97.1543,97.2175,277.0
2077 +SYN1,2024-11-27T22:53:00Z,97.2175,97.2257,97.2079,97.2106,43.0
2078 +SYN1,2024-11-27T22:54:00Z,97.2106,97.2149,97.178,97.1856,195.0
2079 +SYN1,2024-11-27T22:55:00Z,97.1856,97.1949,97.1571,97.1611,251.0
2080 +SYN1,2024-11-27T22:56:00Z,97.1611,97.18,97.1605,97.1748,91.0
2081 +SYN1,2024-11-27T23:02:00Z,97.1748,97.1775,97.0817,97.0876,92.0
2082 +SYN1,2024-11-27T23:03:00Z,97.0876,97.1709,97.0748,97.1396,151.0
2083 +SYN1,2024-11-27T23:04:00Z,97.1396,97.1598,97.1277,97.1395,214.0
2084 +SYN1,2024-11-27T23:05:00Z,97.1395,97.1568,97.0532,97.0567,202.0
2085 +SYN1,2024-11-27T23:09:00Z,97.0567,97.0582,97.0285,97.0368,27.0
2086 +SYN1,2024-11-27T23:12:00Z,97.0368,97.045,97.0232,97.0235,47.0
2087 +SYN1,2024-11-27T23:13:00Z,97.0235,97.0347,97.0132,97.0159,128.0
2088 +SYN1,2024-11-27T23:15:00Z,97.0159,97.0318,96.9702,96.9752,236.0
2089 +SYN1,2024-11-27T23:17:00Z,96.9752,96.984,96.9114,96.9153,290.0
2090 +SYN1,2024-11-27T23:18:00Z,96.9153,96.9215,96.8779,96.8789,67.0
2091 +SYN1,2024-11-27T23:20:00Z,96.8789,96.9196,96.87,96.9079,292.0
2092 +SYN1,2024-11-27T23:22:00Z,96.9079,96.933,96.9017,96.9316,51.0
2093 +SYN1,2024-11-27T23:23:00Z,96.9316,96.964,96.9232,96.9559,139.0
2094 +SYN1,2024-11-27T23:24:00Z,96.9559,96.9621,96.886,96.8944,55.0
2095 +SYN1,2024-11-27T23:25:00Z,96.8944,96.9058,96.8045,96.8182,292.0
2096 +SYN1,2024-11-27T23:26:00Z,96.8182,96.8213,96.7858,96.7965,273.0
2097 +SYN1,2024-11-27T23:27:00Z,96.7965,96.8582,96.7906,96.8519,29.0
2098 +SYN1,2024-11-27T23:29:00Z,96.8519,96.883,96.8395,96.8806,22.0
2099 +SYN1,2024-11-27T23:30:00Z,96.8806,96.8906,96.8392,96.8459,8.0
2100 +SYN1,2024-11-27T23:33:00Z,96.8459,96.8531,96.7486,96.7639,259.0
2101 +SYN1,2024-11-27T23:34:00Z,96.7639,96.7762,96.7549,96.7722,12.0
2102 +SYN1,2024-11-27T23:35:00Z,96.7722,96.7845,96.7583,96.7638,33.0
2103 +SYN1,2024-11-27T23:36:00Z,96.7638,96.793,96.7496,96.7868,83.0
2104 +SYN1,2024-11-27T23:37:00Z,96.7868,96.8213,96.7735,96.8076,276.0
2105 +SYN1,2024-11-27T23:43:00Z,96.8076,96.8283,96.793,96.823,238.0
2106 +SYN1,2024-11-27T23:46:00Z,96.823,96.8632,96.8202,96.8573,75.0
2107 +SYN1,2024-11-27T23:47:00Z,96.8573,96.8594,96.8105,96.8202,84.0
2108 +SYN1,2024-11-27T23:48:00Z,96.8202,96.8214,96.7926,96.8063,256.0
2109 +SYN1,2024-11-27T23:49:00Z,96.8063,96.8233,96.7665,96.7706,60.0
2110 +SYN1,2024-11-27T23:51:00Z,96.7706,96.8203,96.7695,96.8165,284.0
2111 +SYN1,2024-11-27T23:54:00Z,96.8165,96.8428,96.8143,96.8395,56.0
2112 +SYN1,2024-11-27T23:55:00Z,96.8395,96.8784,96.8355,96.8783,87.0
2113 +SYN1,2024-11-27T23:57:00Z,96.8783,96.8858,96.8762,96.8777,153.0
2114 +SYN1,2024-11-27T23:58:00Z,96.8777,96.8985,96.8251,96.8382,82.0
2115 +SYN1,2024-11-28T00:02:00Z,96.8382,96.8492,96.8221,96.8302,220.0
2116 +SYN1,2024-11-28T00:06:00Z,96.8302,96.8455,96.8167,96.8188,107.0
2117 +SYN1,2024-11-28T00:07:00Z,96.8188,96.8199,96.7935,96.8109,282.0
2118 +SYN1,2024-11-28T00:08:00Z,96.8109,96.8116,96.7534,96.7717,214.0
2119 +SYN1,2024-11-28T00:09:00Z,96.7717,96.7729,96.7267,96.7394,136.0
2120 +SYN1,2024-11-28T00:11:00Z,96.7394,96.7483,96.7389,96.7481,254.0
2121 +SYN1,2024-11-28T00:13:00Z,96.7481,96.7485,96.6716,96.6717,274.0
2122 +SYN1,2024-11-28T00:18:00Z,96.6717,96.7018,96.662,96.6875,105.0
2123 +SYN1,2024-11-28T00:21:00Z,96.6875,96.688,96.6783,96.681,89.0
2124 +SYN1,2024-11-28T00:23:00Z,96.681,96.6952,96.6507,96.6512,175.0
2125 +SYN1,2024-11-28T00:24:00Z,96.6512,96.7377,96.6337,96.7321,291.0
2126 +SYN1,2024-11-28T00:25:00Z,96.7321,96.8284,96.7262,96.8264,119.0
2127 +SYN1,2024-11-28T00:27:00Z,96.8264,96.8271,96.7339,96.7418,135.0
2128 +SYN1,2024-11-28T00:28:00Z,96.7418,96.7573,96.6466,96.6477,76.0
2129 +SYN1,2024-11-28T00:29:00Z,96.6477,96.6696,96.6443,96.6551,28.0
2130 +SYN1,2024-11-28T00:30:00Z,96.6551,96.6554,96.5912,96.5964,98.0
2131 +SYN1,2024-11-28T00:31:00Z,96.5964,96.5978,96.5395,96.5431,238.0
2132 +SYN1,2024-11-28T00:32:00Z,96.5431,96.5501,96.5362,96.5478,226.0
2133 +SYN1,2024-11-28T00:33:00Z,96.5478,96.6128,96.5403,96.5924,260.0
2134 +SYN1,2024-11-28T00:35:00Z,96.5924,96.6,96.5802,96.599,139.0
2135 +SYN1,2024-11-28T00:37:00Z,96.599,96.613,96.5987,96.6119,236.0
2136 +SYN1,2024-11-28T00:39:00Z,96.6119,96.6408,96.6086,96.621,249.0
2137 +SYN1,2024-11-28T00:40:00Z,96.621,96.6259,96.6111,96.6128,129.0
2138 +SYN1,2024-11-28T00:41:00Z,96.6128,96.6141,96.5809,96.586,174.0
2139 +SYN1,2024-11-28T00:42:00Z,96.586,96.6016,96.5352,96.5585,110.0
2140 +SYN1,2024-11-28T00:44:00Z,96.5585,96.5979,96.5533,96.5944,131.0
2141 +SYN1,2024-11-28T00:45:00Z,96.5944,96.6033,96.5869,96.591,27.0
2142 +SYN1,2024-11-28T00:49:00Z,96.591,96.6339,96.578,96.6276,237.0
2143 +SYN1,2024-11-28T00:50:00Z,96.6276,96.6663,96.6098,96.6435,56.0
2144 +SYN1,2024-11-28T00:51:00Z,96.6435,96.6978,96.6357,96.6899,259.0
2145 +SYN1,2024-11-28T00:53:00Z,96.6899,96.6904,96.6322,96.6401,153.0
2146 +SYN1,2024-11-28T00:54:00Z,96.6401,96.6549,96.6335,96.647,236.0
2147 +SYN1,2024-11-28T00:55:00Z,96.647,96.6613,96.5888,96.5919,123.0
2148 +SYN1,2024-11-28T00:56:00Z,96.5919,96.6107,96.5797,96.6075,207.0
2149 +SYN1,2024-11-28T00:57:00Z,96.6075,96.6598,96.6032,96.6423,229.0
2150 +SYN1,2024-11-28T00:58:00Z,96.6423,96.6654,96.6325,96.6596,240.0
2151 +SYN1,2024-11-29T09:00:00Z,96.6596,96.679,96.6545,96.6666,72.0
2152 +SYN1,2024-11-29T09:02:00Z,96.6666,96.6831,96.6665,96.6775,238.0
2153 +SYN1,2024-11-29T09:04:00Z,96.6775,96.6955,96.6671,96.6942,101.0
2154 +SYN1,2024-11-29T09:06:00Z,96.6942,96.7127,96.673,96.6745,88.0
2155 +SYN1,2024-11-29T09:07:00Z,96.6745,96.6754,96.656,96.6596,243.0
2156 +SYN1,2024-11-29T09:13:00Z,96.6596,96.6718,96.6439,96.6688,102.0
2157 +SYN1,2024-11-29T09:14:00Z,96.6688,96.6825,96.6623,96.6789,297.0
2158 +SYN1,2024-11-29T09:16:00Z,96.6789,96.6854,96.6428,96.6607,52.0
2159 +SYN1,2024-11-29T09:17:00Z,96.6607,96.6624,96.6366,96.6493,221.0
2160 +SYN1,2024-11-29T09:20:00Z,96.6493,96.6513,96.6195,96.6208,113.0
2161 +SYN1,2024-11-29T09:22:00Z,96.6208,96.6229,96.5585,96.5684,73.0
2162 +SYN1,2024-11-29T09:23:00Z,96.5684,96.6002,96.5629,96.5988,73.0
2163 +SYN1,2024-11-29T09:26:00Z,96.5988,96.6003,96.5746,96.5751,64.0
2164 +SYN1,2024-11-29T09:28:00Z,96.5751,96.5802,96.5509,96.5537,173.0
2165 +SYN1,2024-11-29T09:29:00Z,96.5537,96.574,96.539,96.5395,295.0
2166 +SYN1,2024-11-29T09:30:00Z,96.5395,96.5478,96.527,96.539,138.0
2167 +SYN1,2024-11-29T09:31:00Z,96.539,96.5426,96.4891,96.4898,140.0
2168 +SYN1,2024-11-29T09:32:00Z,96.4898,96.4935,96.4683,96.4706,167.0
2169 +SYN1,2024-11-29T09:34:00Z,96.4706,96.4785,96.4333,96.4367,151.0
2170 +SYN1,2024-11-29T09:35:00Z,96.4367,96.5017,96.4359,96.5011,141.0
2171 +SYN1,2024-11-29T09:36:00Z,96.5011,96.5027,96.4926,96.4938,51.0
2172 +SYN1,2024-11-29T09:37:00Z,96.4938,96.4985,96.4815,96.4971,41.0
2173 +SYN1,2024-11-29T09:38:00Z,96.4971,96.4999,96.4328,96.4552,270.0
2174 +SYN1,2024-11-29T09:39:00Z,96.4552,96.5229,96.448,96.5218,136.0
2175 +SYN1,2024-11-29T09:41:00Z,96.5218,96.5511,96.506,96.5484,291.0
2176 +SYN1,2024-11-29T09:42:00Z,96.5484,96.5495,96.527,96.5274,238.0
2177 +SYN1,2024-11-29T09:44:00Z,96.5274,96.5399,96.5271,96.5349,134.0
2178 +SYN1,2024-11-29T09:45:00Z,96.5349,96.5465,96.5215,96.5452,217.0
2179 +SYN1,2024-11-29T09:46:00Z,96.5452,96.5679,96.5379,96.5518,114.0
2180 +SYN1,2024-11-29T09:47:00Z,96.5518,96.5678,96.5516,96.567,202.0
2181 +SYN1,2024-11-29T09:48:00Z,96.567,96.5813,96.5548,96.5694,14.0
2182 +SYN1,2024-11-29T09:49:00Z,96.5694,96.6467,96.5644,96.6401,163.0
2183 +SYN1,2024-11-29T09:52:00Z,96.6401,96.7351,96.6369,96.7301,138.0
2184 +SYN1,2024-11-29T09:53:00Z,96.7301,96.7465,96.7233,96.732,145.0
2185 +SYN1,2024-11-29T09:54:00Z,96.732,96.74,96.7144,96.7243,88.0
2186 +SYN1,2024-11-29T09:55:00Z,96.7243,96.7467,96.7015,96.7446,35.0
2187 +SYN1,2024-11-29T09:56:00Z,96.7446,96.7619,96.7416,96.7524,1.0
2188 +SYN1,2024-11-29T10:01:00Z,96.7524,96.7561,96.7247,96.7322,230.0
2189 +SYN1,2024-11-29T10:02:00Z,96.7322,96.7609,96.7168,96.7571,207.0
2190 +SYN1,2024-11-29T10:04:00Z,96.7571,96.7612,96.7255,96.7295,124.0
2191 +SYN1,2024-11-29T10:07:00Z,96.7295,96.7425,96.6632,96.6655,293.0
2192 +SYN1,2024-11-29T10:12:00Z,96.6655,96.6701,96.644,96.6547,103.0
2193 +SYN1,2024-11-29T10:13:00Z,96.6547,96.6686,96.6506,96.6616,79.0
2194 +SYN1,2024-11-29T10:14:00Z,96.6616,96.6672,96.6097,96.6142,218.0
2195 +SYN1,2024-11-29T10:16:00Z,96.6142,96.6394,96.6028,96.6382,50.0
2196 +SYN1,2024-11-29T10:18:00Z,96.6382,96.6736,96.6376,96.6678,220.0
2197 +SYN1,2024-11-29T10:19:00Z,96.6678,96.6879,96.592,96.6174,116.0
2198 +SYN1,2024-11-29T10:20:00Z,96.6174,96.65,96.6073,96.6393,81.0
2199 +SYN1,2024-11-29T10:22:00Z,96.6393,96.6504,96.6304,96.65,268.0
2200 +SYN1,2024-11-29T10:24:00Z,96.65,96.6679,96.608,96.6262,131.0
2201 +SYN1,2024-11-29T10:27:00Z,96.6262,96.6298,96.6029,96.6036,22.0
2202 +SYN1,2024-11-29T10:28:00Z,96.6036,96.6049,96.5822,96.6042,29.0
2203 +SYN1,2024-11-29T10:29:00Z,96.6042,96.6407,96.6019,96.6402,137.0
2204 +SYN1,2024-11-29T10:34:00Z,96.6402,96.6459,96.6055,96.6172,272.0
2205 +SYN1,2024-11-29T10:36:00Z,96.6172,96.6351,96.5856,96.586,156.0
2206 +SYN1,2024-11-29T10:37:00Z,96.586,96.6415,96.5817,96.6359,139.0
2207 +SYN1,2024-11-29T10:38:00Z,96.6359,96.6487,96.6352,96.6425,183.0
2208 +SYN1,2024-11-29T10:42:00Z,96.6425,96.667,96.6417,96.6639,10.0
2209 +SYN1,2024-11-29T10:44:00Z,96.6639,96.6658,96.6445,96.6446,49.0
2210 +SYN1,2024-11-29T10:47:00Z,96.6446,96.6454,96.6045,96.61,234.0
2211 +SYN1,2024-11-29T10:49:00Z,96.61,96.6242,96.5795,96.5915,95.0
2212 +SYN1,2024-11-29T10:52:00Z,96.5915,96.6381,96.5831,96.634,79.0
2213 +SYN1,2024-11-29T10:54:00Z,96.634,96.6706,96.6235,96.6633,269.0
2214 +SYN1,2024-11-29T10:55:00Z,96.6633,96.6686,96.5946,96.5963,2.0
2215 +SYN1,2024-11-29T10:58:00Z,96.5963,96.6061,96.5686,96.5727,190.0
2216 +SYN1,2024-11-29T11:01:00Z,96.5727,96.5866,96.5584,96.5601,38.0
2217 +SYN1,2024-11-29T11:02:00Z,96.5601,96.5798,96.5392,96.5636,52.0
2218 +SYN1,2024-11-29T11:04:00Z,96.5636,96.5685,96.5536,96.5565,43.0
2219 +SYN1,2024-11-29T11:05:00Z,96.5565,96.5855,96.544,96.5796,115.0
2220 +SYN1,2024-11-29T11:06:00Z,96.5796,96.625,96.5763,96.6248,140.0
2221 +SYN1,2024-11-29T11:07:00Z,96.6248,96.6347,96.5642,96.579,158.0
2222 +SYN1,2024-11-29T11:09:00Z,96.579,96.621,96.5784,96.6173,173.0
2223 +SYN1,2024-11-29T11:12:00Z,96.6173,96.6339,96.6074,96.6328,190.0
2224 +SYN1,2024-11-29T11:13:00Z,96.6328,96.6376,96.5655,96.5658,277.0
2225 +SYN1,2024-11-29T11:15:00Z,96.5658,96.588,96.5341,96.5368,224.0
2226 +SYN1,2024-11-29T11:16:00Z,96.5368,96.5867,96.5354,96.5731,77.0
2227 +SYN1,2024-11-29T11:18:00Z,96.5731,96.5817,96.4981,96.5021,90.0
2228 +SYN1,2024-11-29T11:19:00Z,96.5021,96.5051,96.4443,96.4605,129.0
2229 +SYN1,2024-11-29T11:22:00Z,96.4605,96.4662,96.351,96.3558,77.0
2230 +SYN1,2024-11-29T11:24:00Z,96.3558,96.4135,96.3409,96.41,159.0
2231 +SYN1,2024-11-29T11:28:00Z,96.41,96.4314,96.3369,96.3398,43.0
2232 +SYN1,2024-11-29T11:29:00Z,96.3398,96.35,96.307,96.3076,46.0
2233 +SYN1,2024-11-29T11:30:00Z,96.3076,96.3526,96.2842,96.3521,134.0
2234 +SYN1,2024-11-29T11:31:00Z,96.3521,96.36,96.3401,96.3461,209.0
2235 +SYN1,2024-11-29T11:33:00Z,96.3461,96.358,96.2532,96.2588,90.0
2236 +SYN1,2024-11-29T11:35:00Z,96.2588,96.3321,96.2588,96.3293,182.0
2237 +SYN1,2024-11-29T11:36:00Z,96.3293,96.3379,96.3129,96.3137,279.0
2238 +SYN1,2024-11-29T11:39:00Z,96.3137,96.3348,96.1946,96.1951,237.0
2239 +SYN1,2024-11-29T11:41:00Z,96.1951,96.2283,96.1911,96.2184,148.0
2240 +SYN1,2024-11-29T11:42:00Z,96.2184,96.2329,96.2098,96.2326,287.0
2241 +SYN1,2024-11-29T11:43:00Z,96.2326,96.3297,96.2296,96.3144,168.0
2242 +SYN1,2024-11-29T11:44:00Z,96.3144,96.402,96.2941,96.3843,191.0
2243 +SYN1,2024-11-29T11:46:00Z,96.3843,96.3888,96.2743,96.2893,90.0
2244 +SYN1,2024-11-29T11:47:00Z,96.2893,96.3031,96.2659,96.2954,108.0
2245 +SYN1,2024-11-29T11:48:00Z,96.2954,96.3396,96.2861,96.32,300.0
2246 +SYN1,2024-11-29T11:49:00Z,96.32,96.3345,96.3042,96.3092,75.0
2247 +SYN1,2024-11-29T11:50:00Z,96.3092,96.3158,96.3031,96.3066,194.0
2248 +SYN1,2024-11-29T11:52:00Z,96.3066,96.3362,96.305,96.3352,100.0
2249 +SYN1,2024-11-29T11:54:00Z,96.3352,96.3707,96.326,96.3621,172.0
2250 +SYN1,2024-11-29T11:55:00Z,96.3621,96.3664,96.304,96.3129,178.0
2251 +SYN1,2024-11-29T11:56:00Z,96.3129,96.3431,96.3047,96.343,191.0
2252 +SYN1,2024-11-29T11:57:00Z,96.343,96.3524,96.3304,96.3472,30.0
2253 +SYN1,2024-11-29T11:58:00Z,96.3472,96.3571,96.3229,96.33,256.0
2254 +SYN1,2024-11-29T12:02:00Z,96.33,96.3393,96.3185,96.3312,218.0
2255 +SYN1,2024-11-29T12:04:00Z,96.3312,96.3316,96.3193,96.3232,182.0
2256 +SYN1,2024-11-29T12:07:00Z,96.3232,96.3429,96.3221,96.3327,163.0
2257 +SYN1,2024-11-29T12:08:00Z,96.3327,96.342,96.33,96.3389,287.0
2258 +SYN1,2024-11-29T12:09:00Z,96.3389,96.3479,96.2839,96.2915,165.0
2259 +SYN1,2024-11-29T12:10:00Z,96.2915,96.2933,96.251,96.258,256.0
2260 +SYN1,2024-11-29T12:13:00Z,96.258,96.2623,96.2308,96.2457,288.0
2261 +SYN1,2024-11-29T12:15:00Z,96.2457,96.2487,96.2205,96.2338,112.0
2262 +SYN1,2024-11-29T12:20:00Z,96.2338,96.2507,96.2289,96.2501,100.0
2263 +SYN1,2024-11-29T12:21:00Z,96.2501,96.2508,96.221,96.2339,116.0
2264 +SYN1,2024-11-29T12:25:00Z,96.2339,96.2437,96.2338,96.2429,285.0
2265 +SYN1,2024-11-29T12:26:00Z,96.2429,96.2626,96.2374,96.2567,96.0
2266 +SYN1,2024-11-29T12:29:00Z,96.2567,96.2595,96.2474,96.2539,26.0
2267 +SYN1,2024-11-29T12:34:00Z,96.2539,96.2663,96.2354,96.2355,114.0
2268 +SYN1,2024-11-29T12:35:00Z,96.2355,96.2527,96.2344,96.2394,289.0
2269 +SYN1,2024-11-29T12:36:00Z,96.2394,96.2752,96.2333,96.2707,285.0
2270 +SYN1,2024-11-29T12:39:00Z,96.2707,96.2762,96.2474,96.2527,294.0
2271 +SYN1,2024-11-29T12:40:00Z,96.2527,96.2625,96.2437,96.2616,202.0
2272 +SYN1,2024-11-29T12:42:00Z,96.2616,96.2708,96.2338,96.2434,161.0
2273 +SYN1,2024-11-29T12:43:00Z,96.2434,96.2977,96.2422,96.2917,33.0
2274 +SYN1,2024-11-29T12:45:00Z,96.2917,96.3017,96.2716,96.2754,295.0
2275 +SYN1,2024-11-29T12:46:00Z,96.2754,96.342,96.2717,96.3313,185.0
2276 +SYN1,2024-11-29T12:48:00Z,96.3313,96.3385,96.3013,96.3026,36.0
2277 +SYN1,2024-11-29T12:49:00Z,96.3026,96.3058,96.2692,96.278,289.0
2278 +SYN1,2024-11-29T12:50:00Z,96.278,96.3728,96.2639,96.3647,30.0
2279 +SYN1,2024-11-29T12:51:00Z,96.3647,96.372,96.3369,96.3404,34.0
2280 +SYN1,2024-11-29T12:55:00Z,96.3404,96.3439,96.2674,96.2727,267.0
2281 +SYN1,2024-11-29T12:57:00Z,96.2727,96.2915,96.2545,96.2903,197.0
2282 +SYN1,2024-11-29T12:59:00Z,96.2903,96.3736,96.2771,96.3709,62.0
2283 +SYN1,2024-11-29T13:00:00Z,96.3709,96.4229,96.3647,96.4127,94.0
2284 +SYN1,2024-11-29T13:01:00Z,96.4127,96.4223,96.403,96.4034,291.0
2285 +SYN1,2024-11-29T13:02:00Z,96.4034,96.4079,96.4014,96.4048,200.0
2286 +SYN1,2024-11-29T13:04:00Z,96.4048,96.4996,96.3993,96.4923,111.0
2287 +SYN1,2024-11-29T13:05:00Z,96.4923,96.5449,96.4863,96.5397,151.0
2288 +SYN1,2024-11-29T13:07:00Z,96.5397,96.596,96.5314,96.5797,231.0
2289 +SYN1,2024-11-29T13:08:00Z,96.5797,96.5802,96.5327,96.5402,152.0
2290 +SYN1,2024-11-29T13:09:00Z,96.5402,96.5491,96.5165,96.5313,249.0
2291 +SYN1,2024-11-29T13:10:00Z,96.5313,96.54,96.4859,96.5063,200.0
2292 +SYN1,2024-11-29T13:11:00Z,96.5063,96.5327,96.5027,96.517,30.0
2293 +SYN1,2024-11-29T13:12:00Z,96.517,96.527,96.5084,96.5244,127.0
2294 +SYN1,2024-11-29T13:13:00Z,96.5244,96.5362,96.5121,96.5228,62.0
2295 +SYN1,2024-11-29T13:14:00Z,96.5228,96.5312,96.4732,96.4772,63.0
2296 +SYN1,2024-11-29T13:15:00Z,96.4772,96.481,96.4735,96.4774,191.0
2297 +SYN1,2024-11-29T13:16:00Z,96.4774,96.4903,96.4396,96.4482,173.0
2298 +SYN1,2024-11-29T13:17:00Z,96.4482,96.4513,96.4215,96.4257,174.0
2299 +SYN1,2024-11-29T13:18:00Z,96.4257,96.4725,96.4003,96.4564,104.0
2300 +SYN1,2024-11-29T13:19:00Z,96.4564,96.4693,96.4326,96.4661,107.0
2301 +SYN1,2024-11-29T13:21:00Z,96.4661,96.467,96.4313,96.4379,296.0
2302 +SYN1,2024-11-29T13:24:00Z,96.4379,96.4584,96.4379,96.4444,34.0
2303 +SYN1,2024-11-29T13:25:00Z,96.4444,96.4865,96.4315,96.4833,132.0
2304 +SYN1,2024-11-29T13:27:00Z,96.4833,96.4926,96.4547,96.4737,232.0
2305 +SYN1,2024-11-29T13:28:00Z,96.4737,96.571,96.4569,96.5561,173.0
2306 +SYN1,2024-11-29T13:33:00Z,96.5561,96.5834,96.5556,96.5681,14.0
2307 +SYN1,2024-11-29T13:35:00Z,96.5681,96.5708,96.5559,96.5657,231.0
2308 +SYN1,2024-11-29T13:36:00Z,96.5657,96.5739,96.4749,96.4784,40.0
2309 +SYN1,2024-11-29T13:37:00Z,96.4784,96.5099,96.4763,96.5013,217.0
2310 +SYN1,2024-11-29T13:43:00Z,96.5013,96.519,96.4852,96.4852,62.0
2311 +SYN1,2024-11-29T13:44:00Z,96.4852,96.5239,96.4852,96.5142,39.0
2312 +SYN1,2024-11-29T13:46:00Z,96.5142,96.5529,96.5115,96.5396,7.0
2313 +SYN1,2024-11-29T13:47:00Z,96.5396,96.5807,96.53,96.5771,298.0
2314 +SYN1,2024-11-29T13:49:00Z,96.5771,96.6415,96.5763,96.6372,236.0
2315 +SYN1,2024-11-29T13:51:00Z,96.6372,96.7421,96.633,96.737,93.0
2316 +SYN1,2024-11-29T13:52:00Z,96.737,96.7599,96.7337,96.7515,199.0
2317 +SYN1,2024-11-29T13:53:00Z,96.7515,96.7909,96.743,96.7774,116.0
2318 +SYN1,2024-11-29T13:54:00Z,96.7774,96.7848,96.7241,96.7257,147.0
2319 +SYN1,2024-11-29T13:55:00Z,96.7257,96.8365,96.7213,96.8363,139.0
2320 +SYN1,2024-11-29T13:57:00Z,96.8363,96.8412,96.8172,96.8266,56.0
2321 +SYN1,2024-11-29T14:00:00Z,96.8266,96.8314,96.7805,96.7838,15.0
2322 +SYN1,2024-11-29T14:01:00Z,96.7838,96.8095,96.7814,96.8057,277.0
2323 +SYN1,2024-11-29T14:03:00Z,96.8057,96.8248,96.802,96.8232,114.0
2324 +SYN1,2024-11-29T14:04:00Z,96.8232,96.878,96.8065,96.8689,194.0
2325 +SYN1,2024-11-29T14:05:00Z,96.8689,96.9349,96.8605,96.9321,134.0
2326 +SYN1,2024-11-29T14:06:00Z,96.9321,96.9381,96.9155,96.936,3.0
2327 +SYN1,2024-11-29T14:07:00Z,96.936,96.9455,96.9225,96.9314,140.0
2328 +SYN1,2024-11-29T14:08:00Z,96.9314,96.9507,96.9305,96.9407,80.0
2329 +SYN1,2024-11-29T14:09:00Z,96.9407,96.9442,96.9399,96.9437,171.0
2330 +SYN1,2024-11-29T14:11:00Z,96.9437,96.9485,96.9025,96.9094,68.0
2331 +SYN1,2024-11-29T14:12:00Z,96.9094,96.9238,96.8651,96.8767,71.0
2332 +SYN1,2024-11-29T14:13:00Z,96.8767,96.881,96.8573,96.8746,17.0
2333 +SYN1,2024-11-29T14:15:00Z,96.8746,96.9248,96.8742,96.9174,37.0
2334 +SYN1,2024-11-29T14:17:00Z,96.9174,96.936,96.8908,96.8968,157.0
2335 +SYN1,2024-11-29T14:20:00Z,96.8968,96.9075,96.8924,96.8971,115.0
2336 +SYN1,2024-11-29T14:21:00Z,96.8971,96.9039,96.8564,96.8613,84.0
2337 +SYN1,2024-11-29T14:24:00Z,96.8613,96.8814,96.8515,96.877,17.0
2338 +SYN1,2024-11-29T14:26:00Z,96.877,97.0032,96.8696,96.9866,193.0
2339 +SYN1,2024-11-29T14:27:00Z,96.9866,97.0532,96.9667,97.0488,15.0
2340 +SYN1,2024-11-29T14:28:00Z,97.0488,97.0759,97.0433,97.0707,96.0
2341 +SYN1,2024-11-29T14:29:00Z,97.0707,97.0826,97.0476,97.051,257.0
2342 +SYN1,2024-11-29T14:30:00Z,97.051,97.14,97.041,97.1297,2618.0
2343 +SYN1,2024-11-29T14:31:00Z,97.1297,97.1425,96.9658,96.9668,1959.0
2344 +SYN1,2024-11-29T14:32:00Z,96.9668,96.9782,96.9004,96.908,397.0
2345 +SYN1,2024-11-29T14:33:00Z,96.908,96.9477,96.9045,96.9417,4457.0
2346 +SYN1,2024-11-29T14:34:00Z,96.9417,97.0046,96.9389,96.9972,2945.0
2347 +SYN1,2024-11-29T14:35:00Z,96.9972,97.0122,96.9151,96.9218,384.0
2348 +SYN1,2024-11-29T14:36:00Z,96.9218,97.0372,96.9087,97.0352,411.0
2349 +SYN1,2024-11-29T14:37:00Z,97.0352,97.1127,97.0299,97.0893,4874.0
2350 +SYN1,2024-11-29T14:38:00Z,97.0893,97.1143,97.0023,97.0196,3960.0
2351 +SYN1,2024-11-29T14:39:00Z,97.0196,97.0504,97.0046,97.0452,2700.0
2352 +SYN1,2024-11-29T14:40:00Z,97.0452,97.0574,96.9704,96.9902,4534.0
2353 +SYN1,2024-11-29T14:41:00Z,96.9902,97.0375,96.9843,97.0371,1808.0
2354 +SYN1,2024-11-29T14:42:00Z,97.0371,97.0407,96.9921,97.002,4372.0
2355 +SYN1,2024-11-29T14:43:00Z,97.002,97.0695,96.999,97.0572,4733.0
2356 +SYN1,2024-11-29T14:44:00Z,97.0572,97.0858,97.0531,97.069,2146.0
2357 +SYN1,2024-11-29T14:45:00Z,97.069,97.0839,96.89,96.9012,833.0
2358 +SYN1,2024-11-29T14:46:00Z,96.9012,96.9194,96.9004,96.9075,1226.0
2359 +SYN1,2024-11-29T14:47:00Z,96.9075,96.9821,96.8932,96.9813,408.0
2360 +SYN1,2024-11-29T14:48:00Z,96.9813,97.0753,96.9619,97.072,4893.0
2361 +SYN1,2024-11-29T14:49:00Z,97.072,97.12,97.0518,97.1063,221.0
2362 +SYN1,2024-11-29T14:50:00Z,97.1063,97.1161,96.9746,96.9852,4872.0
2363 +SYN1,2024-11-29T14:51:00Z,96.9852,97.0332,96.9776,97.0241,839.0
2364 +SYN1,2024-11-29T14:52:00Z,97.0241,97.0404,96.9841,96.9954,3553.0
2365 +SYN1,2024-11-29T14:53:00Z,96.9954,96.9998,96.9324,96.9376,565.0
2366 +SYN1,2024-11-29T14:54:00Z,96.9376,96.9381,96.9129,96.9292,3933.0
2367 +SYN1,2024-11-29T14:55:00Z,96.9292,96.9323,96.8948,96.8976,111.0
2368 +SYN1,2024-11-29T14:56:00Z,96.8976,96.959,96.8972,96.9549,172.0
2369 +SYN1,2024-11-29T14:57:00Z,96.9549,96.9947,96.954,96.9839,3989.0
2370 +SYN1,2024-11-29T14:58:00Z,96.9839,97.0366,96.971,97.0225,1016.0
2371 +SYN1,2024-11-29T14:59:00Z,97.0225,97.0876,97.0054,97.0833,4886.0
2372 +SYN1,2024-11-29T15:00:00Z,97.0833,97.1191,97.0732,97.1158,4118.0
2373 +SYN1,2024-11-29T15:01:00Z,97.1158,97.2011,97.1104,97.1868,597.0
2374 +SYN1,2024-11-29T15:02:00Z,97.1868,97.2751,97.1663,97.2743,3677.0
2375 +SYN1,2024-11-29T15:03:00Z,97.2743,97.3814,97.2709,97.3769,1068.0
2376 +SYN1,2024-11-29T15:04:00Z,97.3769,97.3837,97.2431,97.2436,113.0
2377 +SYN1,2024-11-29T15:05:00Z,97.2436,97.3983,97.2297,97.3944,4501.0
2378 +SYN1,2024-11-29T15:06:00Z,97.3944,97.4077,97.3249,97.3393,1544.0
2379 +SYN1,2024-11-29T15:07:00Z,97.3393,97.3404,97.2657,97.2844,4224.0
2380 +SYN1,2024-11-29T15:08:00Z,97.2844,97.3028,97.1953,97.2045,4525.0
2381 +SYN1,2024-11-29T15:09:00Z,97.2045,97.2195,97.1775,97.1934,1574.0
2382 +SYN1,2024-11-29T15:10:00Z,97.1934,97.1973,97.1609,97.1656,2375.0
2383 +SYN1,2024-11-29T15:11:00Z,97.1656,97.1681,97.1515,97.1677,2005.0
2384 +SYN1,2024-11-29T15:12:00Z,97.1677,97.2559,97.1665,97.2429,1549.0
2385 +SYN1,2024-11-29T15:13:00Z,97.2429,97.2441,97.1556,97.1645,310.0
2386 +SYN1,2024-11-29T15:14:00Z,97.1645,97.1715,97.1026,97.1185,4422.0
2387 +SYN1,2024-11-29T15:15:00Z,97.1185,97.1264,97.0459,97.0587,2777.0
2388 +SYN1,2024-11-29T15:16:00Z,97.0587,97.169,97.0499,97.1556,3229.0
2389 +SYN1,2024-11-29T15:17:00Z,97.1556,97.1814,97.1518,97.1794,4774.0
2390 +SYN1,2024-11-29T15:18:00Z,97.1794,97.1816,97.1109,97.1174,1040.0
2391 +SYN1,2024-11-29T15:19:00Z,97.1174,97.1215,97.111,97.1182,469.0
2392 +SYN1,2024-11-29T15:20:00Z,97.1182,97.2301,97.1023,97.2101,294.0
2393 +SYN1,2024-11-29T15:21:00Z,97.2101,97.213,97.1837,97.192,380.0
2394 +SYN1,2024-11-29T15:22:00Z,97.192,97.2075,97.1139,97.1182,2591.0
2395 +SYN1,2024-11-29T15:23:00Z,97.1182,97.1648,97.1069,97.1582,3485.0
2396 +SYN1,2024-11-29T15:24:00Z,97.1582,97.1661,97.0703,97.0843,1863.0
2397 +SYN1,2024-11-29T15:25:00Z,97.0843,97.1469,97.0734,97.1397,4102.0
2398 +SYN1,2024-11-29T15:26:00Z,97.1397,97.1489,97.0791,97.0853,2626.0
2399 +SYN1,2024-11-29T15:27:00Z,97.0853,97.0948,96.9034,96.9135,1580.0
2400 +SYN1,2024-11-29T15:28:00Z,96.9135,96.9165,96.8906,96.8985,2139.0
2401 +SYN1,2024-11-29T15:30:00Z,96.8985,96.9483,96.8914,96.9435,4384.0
2402 +SYN1,2024-11-29T15:31:00Z,96.9435,97.1445,96.935,97.1212,652.0
2403 +SYN1,2024-11-29T15:32:00Z,97.1212,97.1316,97.0602,97.0784,920.0
2404 +SYN1,2024-11-29T15:33:00Z,97.0784,97.0941,97.0757,97.0827,272.0
2405 +SYN1,2024-11-29T15:34:00Z,97.0827,97.1629,97.0745,97.1525,1041.0
2406 +SYN1,2024-11-29T15:35:00Z,97.1525,97.2396,97.1523,97.2261,4122.0
2407 +SYN1,2024-11-29T15:36:00Z,97.2261,97.2341,97.0372,97.0419,2112.0
2408 +SYN1,2024-11-29T15:37:00Z,97.0419,97.0514,96.9624,96.9714,4818.0
2409 +SYN1,2024-11-29T15:38:00Z,96.9714,97.021,96.9609,97.0141,3868.0
2410 +SYN1,2024-11-29T15:39:00Z,97.0141,97.0519,97.0,97.0499,3816.0
2411 +SYN1,2024-11-29T15:40:00Z,97.0499,97.0701,96.9465,96.9501,1824.0
2412 +SYN1,2024-11-29T15:41:00Z,96.9501,96.966,96.9487,96.9495,138.0
2413 +SYN1,2024-11-29T15:42:00Z,96.9495,97.0711,96.9397,97.0687,3575.0
2414 +SYN1,2024-11-29T15:43:00Z,97.0687,97.0959,97.0616,97.0929,2154.0
2415 +SYN1,2024-11-29T15:44:00Z,97.0929,97.1086,97.007,97.0242,362.0
2416 +SYN1,2024-11-29T15:45:00Z,97.0242,97.033,97.0083,97.0126,972.0
2417 +SYN1,2024-11-29T15:46:00Z,97.0126,97.0392,97.0026,97.0361,4242.0
2418 +SYN1,2024-11-29T15:47:00Z,97.0361,97.0776,97.0354,97.069,2809.0
2419 +SYN1,2024-11-29T15:48:00Z,97.069,97.0786,97.0254,97.0296,4541.0
2420 +SYN1,2024-11-29T15:49:00Z,97.0296,97.2382,97.0263,97.2265,701.0
2421 +SYN1,2024-11-29T15:50:00Z,97.2265,97.2347,97.1978,97.2106,2283.0
2422 +SYN1,2024-11-29T15:51:00Z,97.2106,97.2152,97.1134,97.1176,186.0
2423 +SYN1,2024-11-29T15:53:00Z,97.1176,97.1243,96.9771,96.9822,4611.0
2424 +SYN1,2024-11-29T15:54:00Z,96.9822,97.0618,96.9704,97.0531,1540.0
2425 +SYN1,2024-11-29T15:55:00Z,97.0531,97.1325,97.0484,97.1105,3218.0
2426 +SYN1,2024-11-29T15:56:00Z,97.1105,97.1117,97.0876,97.0917,384.0
2427 +SYN1,2024-11-29T15:57:00Z,97.0917,97.1991,97.0788,97.1949,538.0
2428 +SYN1,2024-11-29T15:58:00Z,97.1949,97.3248,97.1878,97.3131,2882.0
2429 +SYN1,2024-11-29T15:59:00Z,97.3131,97.3325,97.3035,97.33,1883.0
2430 +SYN1,2024-11-29T16:00:00Z,97.33,97.3823,97.3241,97.3788,3346.0
2431 +SYN1,2024-11-29T16:01:00Z,97.3788,97.3879,97.3668,97.3765,555.0
2432 +SYN1,2024-11-29T16:02:00Z,97.3765,97.3932,97.3491,97.3581,4607.0
2433 +SYN1,2024-11-29T16:03:00Z,97.3581,97.3645,97.3059,97.3097,790.0
2434 +SYN1,2024-11-29T16:04:00Z,97.3097,97.328,97.2465,97.2575,4894.0
2435 +SYN1,2024-11-29T16:06:00Z,97.2575,97.2662,97.2245,97.2247,3191.0
2436 +SYN1,2024-11-29T16:07:00Z,97.2247,97.2255,97.1812,97.1853,3113.0
2437 +SYN1,2024-11-29T16:08:00Z,97.1853,97.2041,97.0321,97.0384,4574.0
2438 +SYN1,2024-11-29T16:09:00Z,97.0384,97.0427,96.9845,96.9931,1469.0
2439 +SYN1,2024-11-29T16:10:00Z,96.9931,97.0512,96.9856,97.0456,4681.0
2440 +SYN1,2024-11-29T16:11:00Z,97.0456,97.0482,96.9447,96.9569,409.0
2441 +SYN1,2024-11-29T16:12:00Z,96.9569,96.9659,96.9437,96.9563,3909.0
2442 +SYN1,2024-11-29T16:13:00Z,96.9563,96.966,96.8499,96.8622,1953.0
2443 +SYN1,2024-11-29T16:14:00Z,96.8622,96.8969,96.8524,96.8856,4752.0
2444 +SYN1,2024-11-29T16:16:00Z,96.8856,96.8982,96.7548,96.7648,3728.0
2445 +SYN1,2024-11-29T16:17:00Z,96.7648,96.7667,96.7065,96.7138,4984.0
2446 +SYN1,2024-11-29T16:18:00Z,96.7138,96.7543,96.6983,96.7517,1263.0
2447 +SYN1,2024-11-29T16:19:00Z,96.7517,96.8562,96.7465,96.8534,4411.0
2448 +SYN1,2024-11-29T16:20:00Z,96.8534,96.866,96.7899,96.8025,1411.0
2449 +SYN1,2024-11-29T16:21:00Z,96.8025,96.8041,96.7835,96.7916,1590.0
2450 +SYN1,2024-11-29T16:22:00Z,96.7916,96.8812,96.7764,96.8762,4716.0
2451 +SYN1,2024-11-29T16:23:00Z,96.8762,96.9576,96.8609,96.9536,1920.0
2452 +SYN1,2024-11-29T16:24:00Z,96.9536,96.9599,96.868,96.8724,1319.0
2453 +SYN1,2024-11-29T16:26:00Z,96.8724,96.8773,96.7171,96.718,1766.0
2454 +SYN1,2024-11-29T16:27:00Z,96.718,96.7271,96.6946,96.6975,459.0
2455 +SYN1,2024-11-29T16:28:00Z,96.6975,96.757,96.6845,96.7544,4898.0
2456 +SYN1,2024-11-29T16:29:00Z,96.7544,96.8533,96.7537,96.8363,4741.0
2457 +SYN1,2024-11-29T16:30:00Z,96.8363,96.8452,96.7441,96.7529,2419.0
2458 +SYN1,2024-11-29T16:31:00Z,96.7529,96.7544,96.7401,96.7406,3129.0
2459 +SYN1,2024-11-29T16:32:00Z,96.7406,96.7438,96.7162,96.7164,1909.0
2460 +SYN1,2024-11-29T16:33:00Z,96.7164,96.912,96.7135,96.8994,3891.0
2461 +SYN1,2024-11-29T16:35:00Z,96.8994,97.0794,96.8866,97.0779,4727.0
2462 +SYN1,2024-11-29T16:36:00Z,97.0779,97.0919,96.9791,96.9891,2001.0
2463 +SYN1,2024-11-29T16:37:00Z,96.9891,96.9984,96.8921,96.9019,803.0
2464 +SYN1,2024-11-29T16:38:00Z,96.9019,96.9963,96.9008,96.9875,2504.0
2465 +SYN1,2024-11-29T16:39:00Z,96.9875,96.9898,96.9609,96.9732,2652.0
2466 +SYN1,2024-11-29T16:40:00Z,96.9732,96.9877,96.9363,96.9374,512.0
2467 +SYN1,2024-11-29T16:41:00Z,96.9374,96.9455,96.878,96.8849,3706.0
2468 +SYN1,2024-11-29T16:42:00Z,96.8849,96.9872,96.8837,96.9856,3807.0
2469 +SYN1,2024-11-29T16:43:00Z,96.9856,97.1126,96.9831,97.1095,4038.0
2470 +SYN1,2024-11-29T16:44:00Z,97.1095,97.1229,96.9552,96.963,1205.0
2471 +SYN1,2024-11-29T16:45:00Z,96.963,97.087,96.9521,97.0832,2690.0
2472 +SYN1,2024-11-29T16:46:00Z,97.0832,97.1476,97.0739,97.1361,2756.0
2473 +SYN1,2024-11-29T16:47:00Z,97.1361,97.1874,97.1358,97.1815,3085.0
2474 +SYN1,2024-11-29T16:48:00Z,97.1815,97.1969,97.1479,97.1523,189.0
2475 +SYN1,2024-11-29T16:49:00Z,97.1523,97.1562,97.0961,97.1141,3776.0
2476 +SYN1,2024-11-29T16:50:00Z,97.1141,97.1156,97.1006,97.1108,4962.0
2477 +SYN1,2024-11-29T16:51:00Z,97.1108,97.1238,97.0489,97.0585,690.0
2478 +SYN1,2024-11-29T16:52:00Z,97.0585,97.0741,97.0279,97.0343,2127.0
2479 +SYN1,2024-11-29T16:54:00Z,97.0343,97.1042,97.021,97.0996,2512.0
2480 +SYN1,2024-11-29T16:55:00Z,97.0996,97.1165,97.0521,97.0527,1304.0
2481 +SYN1,2024-11-29T16:56:00Z,97.0527,97.0652,97.0377,97.0417,3469.0
2482 +SYN1,2024-11-29T16:57:00Z,97.0417,97.0624,97.0372,97.0544,3472.0
2483 +SYN1,2024-11-29T16:58:00Z,97.0544,97.0598,96.917,96.9303,2226.0
2484 +SYN1,2024-11-29T16:59:00Z,96.9303,96.9387,96.9027,96.9084,4859.0
2485 +SYN1,2024-11-29T17:00:00Z,96.9084,96.9847,96.8985,96.9781,2449.0
2486 +SYN1,2024-11-29T17:01:00Z,96.9781,97.0007,96.9739,96.9895,821.0
2487 +SYN1,2024-11-29T17:02:00Z,96.9895,97.0087,96.9894,97.0083,3320.0
2488 +SYN1,2024-11-29T17:03:00Z,97.0083,97.0187,96.9537,96.9554,2832.0
2489 +SYN1,2024-11-29T17:04:00Z,96.9554,97.0124,96.9493,97.007,1805.0
2490 +SYN1,2024-11-29T17:05:00Z,97.007,97.0171,96.9836,96.9945,2740.0
2491 +SYN1,2024-11-29T17:06:00Z,96.9945,97.0898,96.9832,97.0774,2154.0
2492 +SYN1,2024-11-29T17:07:00Z,97.0774,97.0829,96.9709,96.9771,1722.0
2493 +SYN1,2024-11-29T17:08:00Z,96.9771,97.1428,96.9715,97.1264,1884.0
2494 +SYN1,2024-11-29T17:09:00Z,97.1264,97.1443,97.1145,97.1333,4627.0
2495 +SYN1,2024-11-29T17:10:00Z,97.1333,97.2033,97.1228,97.191,4427.0
2496 +SYN1,2024-11-29T17:11:00Z,97.191,97.1981,97.097,97.0974,2898.0
2497 +SYN1,2024-11-29T17:12:00Z,97.0974,97.0996,97.0594,97.0805,3964.0
2498 +SYN1,2024-11-29T17:13:00Z,97.0805,97.1069,97.063,97.1015,917.0
2499 +SYN1,2024-11-29T17:14:00Z,97.1015,97.1162,97.0134,97.0147,373.0
2500 +SYN1,2024-11-29T17:15:00Z,97.0147,97.0208,96.9739,96.9798,4541.0
2501 +SYN1,2024-11-29T17:16:00Z,96.9798,97.0928,96.9796,97.0927,2537.0
2502 +SYN1,2024-11-29T17:17:00Z,97.0927,97.102,97.0723,97.0741,3604.0
2503 +SYN1,2024-11-29T17:18:00Z,97.0741,97.0836,97.0668,97.0722,1883.0
2504 +SYN1,2024-11-29T17:19:00Z,97.0722,97.2163,97.062,97.2141,895.0
2505 +SYN1,2024-11-29T17:20:00Z,97.2141,97.2426,97.2042,97.2323,4348.0
2506 +SYN1,2024-11-29T17:21:00Z,97.2323,97.3208,97.2311,97.2949,4445.0
2507 +SYN1,2024-11-29T17:22:00Z,97.2949,97.3183,97.2159,97.2164,4073.0
2508 +SYN1,2024-11-29T17:23:00Z,97.2164,97.2351,97.1955,97.2071,4600.0
2509 +SYN1,2024-11-29T17:24:00Z,97.2071,97.3266,97.1924,97.311,4804.0
2510 +SYN1,2024-11-29T17:25:00Z,97.311,97.3394,97.3097,97.3226,1951.0
2511 +SYN1,2024-11-29T17:26:00Z,97.3226,97.3323,97.2928,97.3055,752.0
2512 +SYN1,2024-11-29T17:28:00Z,97.3055,97.5446,97.2919,97.5369,1066.0
2513 +SYN1,2024-11-29T17:29:00Z,97.5369,97.5497,97.4486,97.4545,4959.0
2514 +SYN1,2024-11-29T17:30:00Z,97.4545,97.4647,97.333,97.3363,1868.0
2515 +SYN1,2024-11-29T17:31:00Z,97.3363,97.337,97.3225,97.3247,4095.0
2516 +SYN1,2024-11-29T17:32:00Z,97.3247,97.3255,97.3055,97.3123,3501.0
2517 +SYN1,2024-11-29T17:33:00Z,97.3123,97.3164,97.2852,97.2966,2391.0
2518 +SYN1,2024-11-29T17:34:00Z,97.2966,97.3645,97.2909,97.3638,1713.0
2519 +SYN1,2024-11-29T17:35:00Z,97.3638,97.3687,97.2328,97.2416,4123.0
2520 +SYN1,2024-11-29T17:36:00Z,97.2416,97.2639,97.2364,97.2612,3163.0
2521 +SYN1,2024-11-29T17:37:00Z,97.2612,97.2975,97.2585,97.2807,3404.0
2522 +SYN1,2024-11-29T17:38:00Z,97.2807,97.2852,97.2539,97.2591,2038.0
2523 +SYN1,2024-11-29T17:39:00Z,97.2591,97.2681,97.1457,97.1458,1206.0
2524 +SYN1,2024-11-29T17:40:00Z,97.1458,97.1603,97.0511,97.0555,2044.0
2525 +SYN1,2024-11-29T17:41:00Z,97.0555,97.1105,97.0527,97.1059,2372.0
2526 +SYN1,2024-11-29T17:42:00Z,97.1059,97.1085,97.0836,97.086,1858.0
2527 +SYN1,2024-11-29T17:43:00Z,97.086,97.0917,96.9902,97.0014,1443.0
2528 +SYN1,2024-11-29T17:44:00Z,97.0014,97.0154,96.9544,96.9559,152.0
2529 +SYN1,2024-11-29T17:45:00Z,96.9559,97.0275,96.9456,97.0264,2576.0
2530 +SYN1,2024-11-29T17:46:00Z,97.0264,97.0471,97.0168,97.0436,1396.0
2531 +SYN1,2024-11-29T17:47:00Z,97.0436,97.0451,96.9792,96.9935,3354.0
2532 +SYN1,2024-11-29T17:48:00Z,96.9935,97.0055,96.9912,97.0047,1164.0
2533 +SYN1,2024-11-29T17:49:00Z,97.0047,97.0343,96.9918,97.0323,1526.0
2534 +SYN1,2024-11-29T17:50:00Z,97.0323,97.0439,97.0109,97.0245,924.0
2535 +SYN1,2024-11-29T17:51:00Z,97.0245,97.0263,96.999,97.0043,2621.0
2536 +SYN1,2024-11-29T17:52:00Z,97.0043,97.0342,97.0042,97.0311,1483.0
2537 +SYN1,2024-11-29T17:53:00Z,97.0311,97.0383,96.9651,96.9875,2922.0
2538 +SYN1,2024-11-29T17:54:00Z,96.9875,97.0949,96.9846,97.0908,3541.0
2539 +SYN1,2024-11-29T17:55:00Z,97.0908,97.1095,96.9352,96.942,4784.0
2540 +SYN1,2024-11-29T17:56:00Z,96.942,96.9502,96.8788,96.8839,3167.0
2541 +SYN1,2024-11-29T17:57:00Z,96.8839,96.887,96.8726,96.8786,4850.0
2542 +SYN1,2024-11-29T17:58:00Z,96.8786,97.0133,96.8752,96.9923,3454.0
2543 +SYN1,2024-11-29T17:59:00Z,96.9923,96.9967,96.9482,96.9574,2078.0
2544 +SYN1,2024-11-29T18:00:00Z,96.9574,96.9968,96.9357,96.9934,3738.0
2545 +SYN1,2024-11-29T18:01:00Z,96.9934,97.0107,96.9783,96.9875,114.0
2546 +SYN1,2024-11-29T18:02:00Z,96.9875,97.0092,96.973,97.007,5.0
2547 +SYN1,2024-11-29T18:03:00Z,97.007,97.0539,96.9896,97.0463,29.0
2548 +SYN1,2024-11-29T18:04:00Z,97.0463,97.0582,97.0397,97.0502,259.0
2549 +SYN1,2024-11-29T18:06:00Z,97.0502,97.1067,97.0482,97.0923,138.0
2550 +SYN1,2024-11-29T18:09:00Z,97.0923,97.0967,97.0527,97.0549,262.0
2551 +SYN1,2024-11-29T18:11:00Z,97.0549,97.0851,97.0321,97.0794,103.0
2552 +SYN1,2024-11-29T18:12:00Z,97.0794,97.1229,97.0695,97.1102,285.0
2553 +SYN1,2024-11-29T18:14:00Z,97.1102,97.1363,97.1009,97.1348,180.0
2554 +SYN1,2024-11-29T18:15:00Z,97.1348,97.1723,97.1297,97.1685,55.0
2555 +SYN1,2024-11-29T18:16:00Z,97.1685,97.2695,97.1556,97.2624,181.0
2556 +SYN1,2024-11-29T18:17:00Z,97.2624,97.2904,97.253,97.282,72.0
2557 +SYN1,2024-11-29T18:18:00Z,97.282,97.2848,97.2305,97.2388,70.0
2558 +SYN1,2024-11-29T18:20:00Z,97.2388,97.2494,97.215,97.2462,182.0
2559 +SYN1,2024-11-29T18:21:00Z,97.2462,97.2663,97.2428,97.2517,235.0
2560 +SYN1,2024-11-29T18:23:00Z,97.2517,97.2563,97.1666,97.171,248.0
2561 +SYN1,2024-11-29T18:24:00Z,97.171,97.1834,97.1174,97.1244,114.0
2562 +SYN1,2024-11-29T18:25:00Z,97.1244,97.1807,97.1109,97.1748,118.0
2563 +SYN1,2024-11-29T18:28:00Z,97.1748,97.195,97.1214,97.1308,186.0
2564 +SYN1,2024-11-29T18:29:00Z,97.1308,97.1901,97.1266,97.1862,38.0
2565 +SYN1,2024-11-29T18:30:00Z,97.1862,97.1934,97.1687,97.1718,111.0
2566 +SYN1,2024-11-29T18:32:00Z,97.1718,97.2451,97.1695,97.2438,219.0
2567 +SYN1,2024-11-29T18:33:00Z,97.2438,97.3725,97.2389,97.3681,295.0
2568 +SYN1,2024-11-29T18:34:00Z,97.3681,97.3702,97.3442,97.353,91.0
2569 +SYN1,2024-11-29T18:40:00Z,97.353,97.3758,97.3138,97.3201,120.0
2570 +SYN1,2024-11-29T18:43:00Z,97.3201,97.3533,97.29,97.2965,181.0
2571 +SYN1,2024-11-29T18:45:00Z,97.2965,97.3176,97.2901,97.3132,48.0
2572 +SYN1,2024-11-29T18:47:00Z,97.3132,97.3173,97.2331,97.2475,33.0
2573 +SYN1,2024-11-29T18:49:00Z,97.2475,97.2617,97.1971,97.2019,215.0
2574 +SYN1,2024-11-29T18:50:00Z,97.2019,97.2268,97.2015,97.2179,159.0
2575 +SYN1,2024-11-29T18:51:00Z,97.2179,97.2284,97.1636,97.1722,256.0
2576 +SYN1,2024-11-29T18:52:00Z,97.1722,97.1909,97.1518,97.1804,178.0
2577 +SYN1,2024-11-29T18:53:00Z,97.1804,97.1828,97.1315,97.1324,298.0
2578 +SYN1,2024-11-29T18:54:00Z,97.1324,97.147,97.092,97.0979,104.0
2579 +SYN1,2024-11-29T18:55:00Z,97.0979,97.1513,97.0946,97.1459,200.0
2580 +SYN1,2024-11-29T18:56:00Z,97.1459,97.1766,97.139,97.1649,30.0
2581 +SYN1,2024-11-29T18:57:00Z,97.1649,97.2122,97.1642,97.1995,85.0
2582 +SYN1,2024-11-29T18:58:00Z,97.1995,97.2569,97.1973,97.2509,280.0
2583 +SYN1,2024-11-29T18:59:00Z,97.2509,97.2522,97.2283,97.2513,128.0
2584 +SYN1,2024-11-29T19:00:00Z,97.2513,97.2584,97.233,97.2576,11.0
2585 +SYN1,2024-11-29T19:01:00Z,97.2576,97.2618,97.2331,97.2379,142.0
2586 +SYN1,2024-11-29T19:02:00Z,97.2379,97.2406,97.1901,97.2016,223.0
2587 +SYN1,2024-11-29T19:03:00Z,97.2016,97.2423,97.1962,97.2247,46.0
2588 +SYN1,2024-11-29T19:05:00Z,97.2247,97.2381,97.1664,97.1922,297.0
2589 +SYN1,2024-11-29T19:06:00Z,97.1922,97.2671,97.1873,97.2574,114.0
2590 +SYN1,2024-11-29T19:07:00Z,97.2574,97.2593,97.2088,97.2167,152.0
2591 +SYN1,2024-11-29T19:08:00Z,97.2167,97.2194,97.1824,97.1939,201.0
2592 +SYN1,2024-11-29T19:09:00Z,97.1939,97.1975,97.17,97.17,232.0
2593 +SYN1,2024-11-29T19:10:00Z,97.17,97.174,97.16,97.1649,93.0
2594 +SYN1,2024-11-29T19:11:00Z,97.1649,97.1651,97.1421,97.1503,98.0
2595 +SYN1,2024-11-29T19:15:00Z,97.1503,97.1721,97.1445,97.1598,102.0
2596 +SYN1,2024-11-29T19:19:00Z,97.1598,97.1868,97.1583,97.1735,231.0
2597 +SYN1,2024-11-29T19:20:00Z,97.1735,97.2111,97.1724,97.2007,173.0
2598 +SYN1,2024-11-29T19:23:00Z,97.2007,97.215,97.1849,97.2135,64.0
2599 +SYN1,2024-11-29T19:24:00Z,97.2135,97.2141,97.1963,97.2103,52.0
2600 +SYN1,2024-11-29T19:25:00Z,97.2103,97.2178,97.1853,97.1927,18.0
2601 +SYN1,2024-11-29T19:27:00Z,97.1927,97.1995,97.1318,97.1357,9.0
2602 +SYN1,2024-11-29T19:28:00Z,97.1357,97.17,97.13,97.1686,181.0
2603 +SYN1,2024-11-29T19:29:00Z,97.1686,97.1894,97.1589,97.1826,139.0
2604 +SYN1,2024-11-29T19:30:00Z,97.1826,97.1853,97.1562,97.1587,150.0
2605 +SYN1,2024-11-29T19:31:00Z,97.1587,97.1937,97.1532,97.1896,144.0
2606 +SYN1,2024-11-29T19:33:00Z,97.1896,97.1916,97.1704,97.1782,114.0
2607 +SYN1,2024-11-29T19:34:00Z,97.1782,97.1848,97.1233,97.1299,297.0
2608 +SYN1,2024-11-29T19:35:00Z,97.1299,97.1489,97.1115,97.148,214.0
2609 +SYN1,2024-11-29T19:37:00Z,97.148,97.1586,97.1355,97.1541,158.0
2610 +SYN1,2024-11-29T19:38:00Z,97.1541,97.1667,97.1138,97.1165,32.0
2611 +SYN1,2024-11-29T19:40:00Z,97.1165,97.187,97.1122,97.1725,226.0
2612 +SYN1,2024-11-29T19:41:00Z,97.1725,97.2054,97.1705,97.2053,158.0
2613 +SYN1,2024-11-29T19:42:00Z,97.2053,97.2285,97.2048,97.2135,17.0
2614 +SYN1,2024-11-29T19:44:00Z,97.2135,97.214,97.1872,97.1983,213.0
2615 +SYN1,2024-11-29T19:48:00Z,97.1983,97.2669,97.189,97.2634,3.0
2616 +SYN1,2024-11-29T19:51:00Z,97.2634,97.2738,97.2184,97.2283,60.0
2617 +SYN1,2024-11-29T19:52:00Z,97.2283,97.2331,97.1907,97.2058,232.0
2618 +SYN1,2024-11-29T19:53:00Z,97.2058,97.2166,97.1322,97.1507,207.0
2619 +SYN1,2024-11-29T19:54:00Z,97.1507,97.1944,97.1439,97.1773,134.0
2620 +SYN1,2024-11-29T19:58:00Z,97.1773,97.1802,97.1669,97.1747,146.0
2621 +SYN1,2024-11-29T19:59:00Z,97.1747,97.1845,97.1535,97.1656,100.0
2622 +SYN1,2024-11-29T20:00:00Z,97.1656,97.199,97.1619,97.1857,177.0
2623 +SYN1,2024-11-29T20:01:00Z,97.1857,97.2267,97.1792,97.2249,67.0
2624 +SYN1,2024-11-29T20:03:00Z,97.2249,97.2874,97.2212,97.285,60.0
2625 +SYN1,2024-11-29T20:05:00Z,97.285,97.2936,97.2616,97.2652,76.0
2626 +SYN1,2024-11-29T20:06:00Z,97.2652,97.2691,97.1994,97.2081,34.0
2627 +SYN1,2024-11-29T20:07:00Z,97.2081,97.2518,97.2036,97.2386,218.0
2628 +SYN1,2024-11-29T20:15:00Z,97.2386,97.2454,97.1928,97.2041,274.0
2629 +SYN1,2024-11-29T20:16:00Z,97.2041,97.2206,97.1736,97.1792,104.0
2630 +SYN1,2024-11-29T20:17:00Z,97.1792,97.1813,97.1223,97.1231,3.0
2631 +SYN1,2024-11-29T20:18:00Z,97.1231,97.1436,97.0025,97.0056,109.0
2632 +SYN1,2024-11-29T20:20:00Z,97.0056,97.0084,96.9807,96.9997,209.0
2633 +SYN1,2024-11-29T20:22:00Z,96.9997,97.0087,96.98,96.9824,266.0
2634 +SYN1,2024-11-29T20:23:00Z,96.9824,97.0205,96.9819,97.0135,156.0
2635 +SYN1,2024-11-29T20:24:00Z,97.0135,97.0469,97.0022,97.0397,89.0
2636 +SYN1,2024-11-29T20:25:00Z,97.0397,97.0438,97.0256,97.0393,289.0
2637 +SYN1,2024-11-29T20:26:00Z,97.0393,97.0987,97.0297,97.0926,95.0
2638 +SYN1,2024-11-29T20:27:00Z,97.0926,97.1307,97.0879,97.1253,49.0
2639 +SYN1,2024-11-29T20:28:00Z,97.1253,97.1775,97.1253,97.1756,65.0
2640 +SYN1,2024-11-29T20:29:00Z,97.1756,97.2026,97.1637,97.2013,293.0
2641 +SYN1,2024-11-29T20:30:00Z,97.2013,97.2268,97.1859,97.205,163.0
2642 +SYN1,2024-11-29T20:32:00Z,97.205,97.2138,97.2017,97.2062,262.0
2643 +SYN1,2024-11-29T20:34:00Z,97.2062,97.2195,97.17,97.1751,89.0
2644 +SYN1,2024-11-29T20:35:00Z,97.1751,97.2082,97.1706,97.1956,50.0
2645 +SYN1,2024-11-29T20:36:00Z,97.1956,97.1991,97.175,97.1752,165.0
2646 +SYN1,2024-11-29T20:37:00Z,97.1752,97.1908,97.1712,97.1897,100.0
2647 +SYN1,2024-11-29T20:38:00Z,97.1897,97.1989,97.1571,97.1662,242.0
2648 +SYN1,2024-11-29T20:41:00Z,97.1662,97.2116,97.1614,97.196,158.0
2649 +SYN1,2024-11-29T20:43:00Z,97.196,97.2043,97.1869,97.2038,256.0
2650 +SYN1,2024-11-29T20:44:00Z,97.2038,97.2633,97.2018,97.2632,144.0
2651 +SYN1,2024-11-29T20:46:00Z,97.2632,97.3029,97.2624,97.2996,228.0
2652 +SYN1,2024-11-29T20:47:00Z,97.2996,97.3141,97.2974,97.3091,34.0
2653 +SYN1,2024-11-29T20:48:00Z,97.3091,97.3091,97.2651,97.2843,286.0
2654 +SYN1,2024-11-29T20:51:00Z,97.2843,97.3017,97.214,97.231,173.0
2655 +SYN1,2024-11-29T20:52:00Z,97.231,97.2335,97.1891,97.1935,203.0
2656 +SYN1,2024-11-29T20:56:00Z,97.1935,97.2416,97.1929,97.2261,157.0
2657 +SYN1,2024-11-29T20:57:00Z,97.2261,97.2755,97.2174,97.2619,121.0
2658 +SYN1,2024-11-29T20:58:00Z,97.2619,97.2723,97.1866,97.1967,103.0
2659 +SYN1,2024-11-29T20:59:00Z,97.1967,97.2317,97.1854,97.2231,248.0
2660 +SYN1,2024-11-29T21:00:00Z,97.2231,97.2361,97.223,97.2253,113.0
2661 +SYN1,2024-11-29T21:04:00Z,97.2253,97.2435,97.135,97.1405,83.0
2662 +SYN1,2024-11-29T21:05:00Z,97.1405,97.1492,97.1287,97.1298,105.0
2663 +SYN1,2024-11-29T21:07:00Z,97.1298,97.1359,97.0887,97.1075,267.0
2664 +SYN1,2024-11-29T21:08:00Z,97.1075,97.1253,97.1034,97.1142,73.0
2665 +SYN1,2024-11-29T21:09:00Z,97.1142,97.1225,97.0726,97.0908,131.0
2666 +SYN1,2024-11-29T21:10:00Z,97.0908,97.1121,97.074,97.0764,101.0
2667 +SYN1,2024-11-29T21:12:00Z,97.0764,97.0922,97.0758,97.0864,124.0
2668 +SYN1,2024-11-29T21:13:00Z,97.0864,97.1435,97.0823,97.1351,108.0
2669 +SYN1,2024-11-29T21:15:00Z,97.1351,97.1371,97.1176,97.1323,199.0
2670 +SYN1,2024-11-29T21:17:00Z,97.1323,97.1489,97.1253,97.1461,116.0
2671 +SYN1,2024-11-29T21:20:00Z,97.1461,97.1466,97.1231,97.138,28.0
2672 +SYN1,2024-11-29T21:22:00Z,97.138,97.141,97.1013,97.121,266.0
2673 +SYN1,2024-11-29T21:23:00Z,97.121,97.1223,97.0955,97.0963,133.0
2674 +SYN1,2024-11-29T21:24:00Z,97.0963,97.1098,97.0382,97.0462,57.0
2675 +SYN1,2024-11-29T21:26:00Z,97.0462,97.0558,97.0033,97.0112,269.0
2676 +SYN1,2024-11-29T21:27:00Z,97.0112,97.0147,96.9585,96.9602,262.0
2677 +SYN1,2024-11-29T21:28:00Z,96.9602,96.9807,96.9588,96.9693,140.0
2678 +SYN1,2024-11-29T21:29:00Z,96.9693,96.9813,96.9687,96.971,212.0
2679 +SYN1,2024-11-29T21:31:00Z,96.971,96.9722,96.951,96.9609,197.0
2680 +SYN1,2024-11-29T21:32:00Z,96.9609,96.9745,96.953,96.9553,238.0
2681 +SYN1,2024-11-29T21:33:00Z,96.9553,96.9859,96.9484,96.9857,3.0
2682 +SYN1,2024-11-29T21:34:00Z,96.9857,96.9987,96.9151,96.9169,117.0
2683 +SYN1,2024-11-29T21:35:00Z,96.9169,96.9347,96.9054,96.9146,293.0
2684 +SYN1,2024-11-29T21:36:00Z,96.9146,96.926,96.8885,96.9235,231.0
2685 +SYN1,2024-11-29T21:38:00Z,96.9235,96.9248,96.9166,96.9196,138.0
2686 +SYN1,2024-11-29T21:39:00Z,96.9196,96.925,96.9053,96.9058,177.0
2687 +SYN1,2024-11-29T21:41:00Z,96.9058,96.957,96.8987,96.9517,25.0
2688 +SYN1,2024-11-29T21:43:00Z,96.9517,96.962,96.9343,96.9448,163.0
2689 +SYN1,2024-11-29T21:44:00Z,96.9448,96.9462,96.8804,96.884,152.0
2690 +SYN1,2024-11-29T21:45:00Z,96.884,96.908,96.8784,96.9016,211.0
2691 +SYN1,2024-11-29T21:46:00Z,96.9016,96.9045,96.8804,96.8807,81.0
2692 +SYN1,2024-11-29T21:49:00Z,96.8807,96.8864,96.8681,96.8762,38.0
2693 +SYN1,2024-11-29T21:50:00Z,96.8762,96.882,96.8747,96.8779,168.0
2694 +SYN1,2024-11-29T21:52:00Z,96.8779,96.8843,96.8443,96.8594,232.0
2695 +SYN1,2024-11-29T21:55:00Z,96.8594,96.8662,96.7824,96.7921,291.0
2696 +SYN1,2024-11-29T21:57:00Z,96.7921,96.8026,96.7669,96.782,22.0
2697 +SYN1,2024-11-29T21:58:00Z,96.782,96.8618,96.7792,96.8552,291.0
2698 +SYN1,2024-11-29T21:59:00Z,96.8552,96.8625,96.7903,96.796,206.0
2699 +SYN1,2024-12-02T09:00:00Z,96.796,96.8307,96.7899,96.8237,187.0
2700 +SYN1,2024-12-02T09:01:00Z,96.8237,96.8736,96.8165,96.8721,188.0
2701 +SYN1,2024-12-02T09:03:00Z,96.8721,96.8883,96.8464,96.851,38.0
2702 +SYN1,2024-12-02T09:04:00Z,96.851,96.8823,96.832,96.87,219.0
2703 +SYN1,2024-12-02T09:05:00Z,96.87,96.8719,96.7802,96.7908,123.0
2704 +SYN1,2024-12-02T09:07:00Z,96.7908,96.7973,96.7839,96.7946,265.0
2705 +SYN1,2024-12-02T09:09:00Z,96.7946,96.8748,96.7818,96.863,123.0
2706 +SYN1,2024-12-02T09:10:00Z,96.863,96.8753,96.862,96.8722,43.0
2707 +SYN1,2024-12-02T09:12:00Z,96.8722,96.8802,96.8492,96.8641,139.0
2708 +SYN1,2024-12-02T09:13:00Z,96.8641,96.8833,96.8534,96.8682,200.0
2709 +SYN1,2024-12-02T09:14:00Z,96.8682,96.937,96.8576,96.9236,52.0
2710 +SYN1,2024-12-02T09:15:00Z,96.9236,96.9273,96.8995,96.9088,190.0
2711 +SYN1,2024-12-02T09:17:00Z,96.9088,96.9201,96.8754,96.8757,162.0
2712 +SYN1,2024-12-02T09:18:00Z,96.8757,96.8839,96.8327,96.8333,44.0
2713 +SYN1,2024-12-02T09:19:00Z,96.8333,96.8333,96.7783,96.7889,126.0
2714 +SYN1,2024-12-02T09:20:00Z,96.7889,96.8433,96.7851,96.8341,164.0
2715 +SYN1,2024-12-02T09:21:00Z,96.8341,96.8585,96.8287,96.8494,5.0
2716 +SYN1,2024-12-02T09:23:00Z,96.8494,96.8734,96.8474,96.8692,244.0
2717 +SYN1,2024-12-02T09:24:00Z,96.8692,96.8697,96.8009,96.8136,254.0
2718 +SYN1,2024-12-02T09:25:00Z,96.8136,96.8161,96.7977,96.8049,147.0
2719 +SYN1,2024-12-02T09:26:00Z,96.8049,96.8227,96.7138,96.7375,134.0
2720 +SYN1,2024-12-02T09:29:00Z,96.7375,96.7641,96.7196,96.7631,232.0
2721 +SYN1,2024-12-02T09:30:00Z,96.7631,96.7814,96.7513,96.7648,267.0
2722 +SYN1,2024-12-02T09:31:00Z,96.7648,96.7676,96.7142,96.716,154.0
2723 +SYN1,2024-12-02T09:32:00Z,96.716,96.7628,96.711,96.7609,114.0
2724 +SYN1,2024-12-02T09:35:00Z,96.7609,96.7678,96.7335,96.7509,167.0
2725 +SYN1,2024-12-02T09:36:00Z,96.7509,96.7516,96.7205,96.7291,117.0
2726 +SYN1,2024-12-02T09:37:00Z,96.7291,96.7566,96.7133,96.7327,87.0
2727 +SYN1,2024-12-02T09:38:00Z,96.7327,96.7593,96.7133,96.7234,91.0
2728 +SYN1,2024-12-02T09:39:00Z,96.7234,96.7239,96.7175,96.7223,260.0
2729 +SYN1,2024-12-02T09:40:00Z,96.7223,96.742,96.7062,96.7321,39.0
2730 +SYN1,2024-12-02T09:42:00Z,96.7321,96.7481,96.7232,96.7464,4.0
2731 +SYN1,2024-12-02T09:43:00Z,96.7464,96.7711,96.7387,96.7633,239.0
2732 +SYN1,2024-12-02T09:45:00Z,96.7633,96.7712,96.7563,96.7691,69.0
2733 +SYN1,2024-12-02T09:47:00Z,96.7691,96.7831,96.7587,96.762,295.0
2734 +SYN1,2024-12-02T09:50:00Z,96.762,96.8631,96.7619,96.8567,225.0
2735 +SYN1,2024-12-02T09:52:00Z,96.8567,96.8656,96.8321,96.8388,1.0
2736 +SYN1,2024-12-02T09:53:00Z,96.8388,96.8614,96.8387,96.8528,205.0
2737 +SYN1,2024-12-02T09:55:00Z,96.8528,96.8694,96.7746,96.7918,199.0
2738 +SYN1,2024-12-02T09:56:00Z,96.7918,96.8057,96.7911,96.8038,282.0
2739 +SYN1,2024-12-02T09:58:00Z,96.8038,96.8105,96.7831,96.7849,139.0
2740 +SYN1,2024-12-02T09:59:00Z,96.7849,96.8263,96.7839,96.8191,33.0
2741 +SYN1,2024-12-02T10:00:00Z,96.8191,96.88,96.8123,96.8702,51.0
2742 +SYN1,2024-12-02T10:01:00Z,96.8702,96.9463,96.8493,96.9416,117.0
2743 +SYN1,2024-12-02T10:04:00Z,96.9416,96.9417,96.9097,96.9192,192.0
2744 +SYN1,2024-12-02T10:05:00Z,96.9192,96.9247,96.8789,96.8956,298.0
2745 +SYN1,2024-12-02T10:07:00Z,96.8956,96.9076,96.855,96.8799,72.0
2746 +SYN1,2024-12-02T10:09:00Z,96.8799,96.9068,96.875,96.8993,20.0
2747 +SYN1,2024-12-02T10:10:00Z,96.8993,96.947,96.8957,96.9451,132.0
2748 +SYN1,2024-12-02T10:11:00Z,96.9451,96.9588,96.9104,96.9125,227.0
2749 +SYN1,2024-12-02T10:12:00Z,96.9125,96.9198,96.8964,96.9184,45.0
2750 +SYN1,2024-12-02T10:15:00Z,96.9184,96.9423,96.9169,96.9285,127.0
2751 +SYN1,2024-12-02T10:17:00Z,96.9285,96.9586,96.9264,96.9492,98.0
2752 +SYN1,2024-12-02T10:19:00Z,96.9492,97.0019,96.9415,96.9945,177.0
2753 +SYN1,2024-12-02T10:20:00Z,96.9945,97.0002,96.982,96.9866,96.0
2754 +SYN1,2024-12-02T10:21:00Z,96.9866,97.0401,96.975,97.0364,182.0
2755 +SYN1,2024-12-02T10:23:00Z,97.0364,97.0453,97.019,97.0217,223.0
2756 +SYN1,2024-12-02T10:25:00Z,97.0217,97.0277,96.9871,96.9941,196.0
2757 +SYN1,2024-12-02T10:26:00Z,96.9941,97.0097,96.9606,96.9626,127.0
2758 +SYN1,2024-12-02T10:29:00Z,96.9626,96.9633,96.9368,96.9427,185.0
2759 +SYN1,2024-12-02T10:30:00Z,96.9427,96.9744,96.9324,96.9676,176.0
2760 +SYN1,2024-12-02T10:31:00Z,96.9676,97.0236,96.9611,97.0225,180.0
2761 +SYN1,2024-12-02T10:32:00Z,97.0225,97.027,96.9828,97.0055,11.0
2762 +SYN1,2024-12-02T10:33:00Z,97.0055,97.0137,96.9979,97.0107,264.0
2763 +SYN1,2024-12-02T10:34:00Z,97.0107,97.0648,97.0076,97.0525,212.0
2764 +SYN1,2024-12-02T10:36:00Z,97.0525,97.0641,97.0057,97.0202,98.0
2765 +SYN1,2024-12-02T10:37:00Z,97.0202,97.0261,96.9974,96.998,213.0
2766 +SYN1,2024-12-02T10:38:00Z,96.998,97.0663,96.9972,97.0482,206.0
2767 +SYN1,2024-12-02T10:39:00Z,97.0482,97.0745,97.0376,97.0427,16.0
2768 +SYN1,2024-12-02T10:41:00Z,97.0427,97.0992,97.0287,97.0843,34.0
2769 +SYN1,2024-12-02T10:42:00Z,97.0843,97.1547,97.0828,97.1512,56.0
2770 +SYN1,2024-12-02T10:43:00Z,97.1512,97.1847,97.1506,97.1814,255.0
2771 +SYN1,2024-12-02T10:46:00Z,97.1814,97.2648,97.1715,97.2562,114.0
2772 +SYN1,2024-12-02T10:48:00Z,97.2562,97.2778,97.2465,97.2493,6.0
2773 +SYN1,2024-12-02T10:49:00Z,97.2493,97.2593,97.2008,97.2091,14.0
2774 +SYN1,2024-12-02T10:50:00Z,97.2091,97.2364,97.1576,97.169,75.0
2775 +SYN1,2024-12-02T10:51:00Z,97.169,97.1724,97.1159,97.1346,246.0
2776 +SYN1,2024-12-02T10:53:00Z,97.1346,97.1422,97.1229,97.1373,152.0
2777 +SYN1,2024-12-02T10:56:00Z,97.1373,97.15,97.1278,97.1377,179.0
2778 +SYN1,2024-12-02T10:57:00Z,97.1377,97.2341,97.1341,97.2301,23.0
2779 +SYN1,2024-12-02T10:58:00Z,97.2301,97.2795,97.2225,97.2747,294.0
2780 +SYN1,2024-12-02T10:59:00Z,97.2747,97.3432,97.2599,97.3294,285.0
2781 +SYN1,2024-12-02T11:00:00Z,97.3294,97.4082,97.317,97.4006,165.0
2782 +SYN1,2024-12-02T11:03:00Z,97.4006,97.4172,97.3838,97.3981,239.0
2783 +SYN1,2024-12-02T11:04:00Z,97.3981,97.4182,97.3911,97.4114,5.0
2784 +SYN1,2024-12-02T11:06:00Z,97.4114,97.4198,97.35,97.3634,171.0
2785 +SYN1,2024-12-02T11:07:00Z,97.3634,97.3898,97.3469,97.3761,196.0
2786 +SYN1,2024-12-02T11:10:00Z,97.3761,97.3784,97.3578,97.3646,115.0
2787 +SYN1,2024-12-02T11:11:00Z,97.3646,97.3685,97.357,97.3674,51.0
2788 +SYN1,2024-12-02T11:12:00Z,97.3674,97.3795,97.3492,97.356,289.0
2789 +SYN1,2024-12-02T11:15:00Z,97.356,97.373,97.3138,97.3147,222.0
2790 +SYN1,2024-12-02T11:16:00Z,97.3147,97.319,97.2744,97.2754,243.0
2791 +SYN1,2024-12-02T11:17:00Z,97.2754,97.2815,97.2498,97.268,200.0
2792 +SYN1,2024-12-02T11:18:00Z,97.268,97.3198,97.2506,97.3131,237.0
2793 +SYN1,2024-12-02T11:20:00Z,97.3131,97.3247,97.2842,97.291,5.0
2794 +SYN1,2024-12-02T11:21:00Z,97.291,97.3339,97.276,97.3255,138.0
2795 +SYN1,2024-12-02T11:22:00Z,97.3255,97.33,97.2709,97.2856,294.0
2796 +SYN1,2024-12-02T11:23:00Z,97.2856,97.296,97.2737,97.289,228.0
2797 +SYN1,2024-12-02T11:25:00Z,97.289,97.2955,97.2263,97.2358,257.0
2798 +SYN1,2024-12-02T11:27:00Z,97.2358,97.2874,97.2312,97.2842,113.0
2799 +SYN1,2024-12-02T11:28:00Z,97.2842,97.2886,97.2592,97.2716,211.0
2800 +SYN1,2024-12-02T11:31:00Z,97.2716,97.2875,97.2561,97.2651,21.0
2801 +SYN1,2024-12-02T11:32:00Z,97.2651,97.3223,97.2598,97.3208,75.0
2802 +SYN1,2024-12-02T11:35:00Z,97.3208,97.326,97.2023,97.2087,169.0
2803 +SYN1,2024-12-02T11:36:00Z,97.2087,97.262,97.2063,97.2452,231.0
2804 +SYN1,2024-12-02T11:38:00Z,97.2452,97.2477,97.1704,97.1776,192.0
2805 +SYN1,2024-12-02T11:40:00Z,97.1776,97.2009,97.1694,97.198,223.0
2806 +SYN1,2024-12-02T11:43:00Z,97.198,97.2279,97.1905,97.2193,77.0
2807 +SYN1,2024-12-02T11:44:00Z,97.2193,97.2535,97.1991,97.2463,178.0
2808 +SYN1,2024-12-02T11:47:00Z,97.2463,97.2574,97.2069,97.2083,84.0
2809 +SYN1,2024-12-02T11:48:00Z,97.2083,97.2099,97.1962,97.2029,111.0
2810 +SYN1,2024-12-02T11:50:00Z,97.2029,97.2485,97.1897,97.2463,4.0
2811 +SYN1,2024-12-02T11:51:00Z,97.2463,97.2576,97.1992,97.2056,150.0
2812 +SYN1,2024-12-02T11:52:00Z,97.2056,97.2887,97.1883,97.285,136.0
2813 +SYN1,2024-12-02T11:53:00Z,97.285,97.2867,97.2478,97.2647,45.0
2814 +SYN1,2024-12-02T11:55:00Z,97.2647,97.2934,97.2641,97.2828,190.0
2815 +SYN1,2024-12-02T11:57:00Z,97.2828,97.2994,97.2816,97.296,217.0
2816 +SYN1,2024-12-02T11:58:00Z,97.296,97.2977,97.2362,97.2432,79.0
2817 +SYN1,2024-12-02T12:00:00Z,97.2432,97.246,97.1779,97.1904,8.0
2818 +SYN1,2024-12-02T12:01:00Z,97.1904,97.2131,97.1814,97.2006,99.0
2819 +SYN1,2024-12-02T12:02:00Z,97.2006,97.2119,97.1567,97.1622,233.0
2820 +SYN1,2024-12-02T12:03:00Z,97.1622,97.1987,97.1558,97.1948,113.0
2821 +SYN1,2024-12-02T12:04:00Z,97.1948,97.1967,97.1819,97.1958,219.0
2822 +SYN1,2024-12-02T12:08:00Z,97.1958,97.2128,97.1536,97.1669,138.0
2823 +SYN1,2024-12-02T12:10:00Z,97.1669,97.1932,97.1592,97.1824,298.0
2824 +SYN1,2024-12-02T12:12:00Z,97.1824,97.2552,97.1783,97.2337,221.0
2825 +SYN1,2024-12-02T12:13:00Z,97.2337,97.2674,97.2319,97.2611,161.0
2826 +SYN1,2024-12-02T12:14:00Z,97.2611,97.2624,97.1629,97.1787,18.0
2827 +SYN1,2024-12-02T12:15:00Z,97.1787,97.1823,97.1396,97.147,220.0
2828 +SYN1,2024-12-02T12:17:00Z,97.147,97.2225,97.1404,97.2013,218.0
2829 +SYN1,2024-12-02T12:18:00Z,97.2013,97.2102,97.1848,97.197,227.0
2830 +SYN1,2024-12-02T12:20:00Z,97.197,97.208,97.1775,97.1787,262.0
2831 +SYN1,2024-12-02T12:21:00Z,97.1787,97.1861,97.1436,97.1633,5.0
2832 +SYN1,2024-12-02T12:22:00Z,97.1633,97.1906,97.1528,97.1882,9.0
2833 +SYN1,2024-12-02T12:23:00Z,97.1882,97.2211,97.1881,97.2165,279.0
2834 +SYN1,2024-12-02T12:25:00Z,97.2165,97.2278,97.1952,97.2019,268.0
2835 +SYN1,2024-12-02T12:26:00Z,97.2019,97.2698,97.1945,97.2559,217.0
2836 +SYN1,2024-12-02T12:29:00Z,97.2559,97.2994,97.2492,97.2908,279.0
2837 +SYN1,2024-12-02T12:33:00Z,97.2908,97.297,97.2782,97.2889,35.0
2838 +SYN1,2024-12-02T12:34:00Z,97.2889,97.3027,97.2764,97.2968,276.0
2839 +SYN1,2024-12-02T12:35:00Z,97.2968,97.3129,97.2246,97.2348,285.0
2840 +SYN1,2024-12-02T12:36:00Z,97.2348,97.2433,97.179,97.1866,68.0
2841 +SYN1,2024-12-02T12:38:00Z,97.1866,97.1872,97.1493,97.1733,202.0
2842 +SYN1,2024-12-02T12:39:00Z,97.1733,97.2289,97.1635,97.2149,176.0
2843 +SYN1,2024-12-02T12:40:00Z,97.2149,97.2381,97.2054,97.2374,119.0
2844 +SYN1,2024-12-02T12:43:00Z,97.2374,97.3314,97.2177,97.3275,142.0
2845 +SYN1,2024-12-02T12:44:00Z,97.3275,97.3353,97.3047,97.306,262.0
2846 +SYN1,2024-12-02T12:45:00Z,97.306,97.324,97.2894,97.318,212.0
2847 +SYN1,2024-12-02T12:47:00Z,97.318,97.3251,97.2932,97.2943,284.0
2848 +SYN1,2024-12-02T12:48:00Z,97.2943,97.3164,97.2844,97.3162,14.0
2849 +SYN1,2024-12-02T12:50:00Z,97.3162,97.3433,97.3088,97.3293,82.0
2850 +SYN1,2024-12-02T12:54:00Z,97.3293,97.3464,97.317,97.3422,244.0
2851 +SYN1,2024-12-02T12:56:00Z,97.3422,97.3573,97.2747,97.289,269.0
2852 +SYN1,2024-12-02T13:00:00Z,97.289,97.3004,97.2803,97.2969,293.0
2853 +SYN1,2024-12-02T13:02:00Z,97.2969,97.2997,97.2716,97.2793,34.0
2854 +SYN1,2024-12-02T13:05:00Z,97.2793,97.3131,97.278,97.3081,99.0
2855 +SYN1,2024-12-02T13:06:00Z,97.3081,97.3268,97.273,97.2779,72.0
2856 +SYN1,2024-12-02T13:07:00Z,97.2779,97.3174,97.2753,97.3103,40.0
2857 +SYN1,2024-12-02T13:08:00Z,97.3103,97.3122,97.2612,97.2739,57.0
2858 +SYN1,2024-12-02T13:10:00Z,97.2739,97.2842,97.2688,97.2825,276.0
2859 +SYN1,2024-12-02T13:13:00Z,97.2825,97.2917,97.2457,97.2629,280.0
2860 +SYN1,2024-12-02T13:14:00Z,97.2629,97.2711,97.2076,97.2249,267.0
2861 +SYN1,2024-12-02T13:15:00Z,97.2249,97.2496,97.2231,97.2472,189.0
2862 +SYN1,2024-12-02T13:17:00Z,97.2472,97.2533,97.2204,97.2317,259.0
2863 +SYN1,2024-12-02T13:18:00Z,97.2317,97.3015,97.227,97.3004,163.0
2864 +SYN1,2024-12-02T13:22:00Z,97.3004,97.3101,97.2477,97.2564,90.0
2865 +SYN1,2024-12-02T13:23:00Z,97.2564,97.2627,97.2379,97.2396,193.0
2866 +SYN1,2024-12-02T13:24:00Z,97.2396,97.2707,97.2322,97.2658,282.0
2867 +SYN1,2024-12-02T13:27:00Z,97.2658,97.3049,97.2605,97.2978,142.0
2868 +SYN1,2024-12-02T13:29:00Z,97.2978,97.3691,97.2941,97.3605,216.0
2869 +SYN1,2024-12-02T13:30:00Z,97.3605,97.395,97.3499,97.3881,157.0
2870 +SYN1,2024-12-02T13:33:00Z,97.3881,97.39,97.3129,97.3176,8.0
2871 +SYN1,2024-12-02T13:36:00Z,97.3176,97.3226,97.3128,97.321,253.0
2872 +SYN1,2024-12-02T13:38:00Z,97.321,97.362,97.3164,97.3596,4.0
2873 +SYN1,2024-12-02T13:39:00Z,97.3596,97.3693,97.3081,97.3272,174.0
2874 +SYN1,2024-12-02T13:40:00Z,97.3272,97.328,97.2864,97.2904,128.0
2875 +SYN1,2024-12-02T13:42:00Z,97.2904,97.2942,97.2647,97.2664,203.0
2876 +SYN1,2024-12-02T13:45:00Z,97.2664,97.2886,97.257,97.2613,141.0
2877 +SYN1,2024-12-02T13:48:00Z,97.2613,97.2639,97.2014,97.2098,233.0
2878 +SYN1,2024-12-02T13:49:00Z,97.2098,97.2412,97.195,97.222,81.0
2879 +SYN1,2024-12-02T13:50:00Z,97.222,97.248,97.216,97.245,224.0
2880 +SYN1,2024-12-02T13:51:00Z,97.245,97.25,97.1443,97.1491,81.0
2881 +SYN1,2024-12-02T13:52:00Z,97.1491,97.1802,97.1448,97.171,10.0
2882 +SYN1,2024-12-02T13:54:00Z,97.171,97.1752,97.1532,97.1625,167.0
2883 +SYN1,2024-12-02T13:57:00Z,97.1625,97.1819,97.1026,97.1166,4.0
2884 +SYN1,2024-12-02T13:59:00Z,97.1166,97.1335,97.0795,97.0803,220.0
2885 +SYN1,2024-12-02T14:02:00Z,97.0803,97.09,97.0476,97.0559,119.0
2886 +SYN1,2024-12-02T14:04:00Z,97.0559,97.1481,97.0532,97.1343,189.0
2887 +SYN1,2024-12-02T14:07:00Z,97.1343,97.143,97.046,97.0583,18.0
2888 +SYN1,2024-12-02T14:10:00Z,97.0583,97.1023,97.0364,97.0858,269.0
2889 +SYN1,2024-12-02T14:13:00Z,97.0858,97.1086,97.0761,97.1005,111.0
2890 +SYN1,2024-12-02T14:14:00Z,97.1005,97.11,97.0827,97.0848,135.0
2891 +SYN1,2024-12-02T14:15:00Z,97.0848,97.1566,97.0844,97.1512,138.0
2892 +SYN1,2024-12-02T14:16:00Z,97.1512,97.1608,97.0728,97.0786,67.0
2893 +SYN1,2024-12-02T14:17:00Z,97.0786,97.0824,96.9912,97.016,238.0
2894 +SYN1,2024-12-02T14:19:00Z,97.016,97.0242,97.0015,97.0098,2.0
2895 +SYN1,2024-12-02T14:22:00Z,97.0098,97.0863,97.0086,97.0785,210.0
2896 +SYN1,2024-12-02T14:23:00Z,97.0785,97.0895,97.0637,97.0664,173.0
2897 +SYN1,2024-12-02T14:25:00Z,97.0664,97.0734,97.0225,97.0288,152.0
2898 +SYN1,2024-12-02T14:27:00Z,97.0288,97.0301,97.0095,97.0133,169.0
2899 +SYN1,2024-12-02T14:28:00Z,97.0133,97.0185,96.9659,96.9785,277.0
2900 +SYN1,2024-12-02T14:29:00Z,96.9785,97.0668,96.9765,97.0665,138.0
2901 +SYN1,2024-12-02T14:30:00Z,97.0665,97.1137,97.0576,97.1091,3194.0
2902 +SYN1,2024-12-02T14:32:00Z,97.1091,97.1138,97.076,97.0958,3466.0
2903 +SYN1,2024-12-02T14:33:00Z,97.0958,97.1048,96.9679,96.9727,795.0
2904 +SYN1,2024-12-02T14:34:00Z,96.9727,96.9942,96.9726,96.9899,3114.0
2905 +SYN1,2024-12-02T14:35:00Z,96.9899,97.0745,96.9815,97.0679,798.0
2906 +SYN1,2024-12-02T14:36:00Z,97.0679,97.0794,96.9783,96.9827,4274.0
2907 +SYN1,2024-12-02T14:37:00Z,96.9827,97.0923,96.9764,97.084,2053.0
2908 +SYN1,2024-12-02T14:38:00Z,97.084,97.0845,97.0611,97.0653,2765.0
2909 +SYN1,2024-12-02T14:39:00Z,97.0653,97.1588,97.0513,97.1472,3142.0
2910 +SYN1,2024-12-02T14:40:00Z,97.1472,97.1696,97.1338,97.1654,2091.0
2911 +SYN1,2024-12-02T14:41:00Z,97.1654,97.1936,97.1576,97.1835,838.0
2912 +SYN1,2024-12-02T14:42:00Z,97.1835,97.191,97.1544,97.1753,769.0
2913 +SYN1,2024-12-02T14:43:00Z,97.1753,97.1819,97.1705,97.1728,1438.0
2914 +SYN1,2024-12-02T14:44:00Z,97.1728,97.1745,97.034,97.0373,3646.0
2915 +SYN1,2024-12-02T14:45:00Z,97.0373,97.1431,97.0369,97.1372,2357.0
2916 +SYN1,2024-12-02T14:46:00Z,97.1372,97.2792,97.1275,97.2584,4051.0
2917 +SYN1,2024-12-02T14:47:00Z,97.2584,97.3372,97.2575,97.334,1966.0
2918 +SYN1,2024-12-02T14:48:00Z,97.334,97.3353,97.2992,97.3062,598.0
2919 +SYN1,2024-12-02T14:49:00Z,97.3062,97.3086,97.252,97.2603,2827.0
2920 +SYN1,2024-12-02T14:50:00Z,97.2603,97.2727,97.1747,97.1768,2474.0
2921 +SYN1,2024-12-02T14:51:00Z,97.1768,97.1958,97.0396,97.0501,1743.0
2922 +SYN1,2024-12-02T14:52:00Z,97.0501,97.1806,97.045,97.1806,1599.0
2923 +SYN1,2024-12-02T14:53:00Z,97.1806,97.1828,97.1772,97.1772,4433.0
2924 +SYN1,2024-12-02T14:54:00Z,97.1772,97.1793,96.9973,97.0261,3683.0
2925 +SYN1,2024-12-02T14:55:00Z,97.0261,97.0336,97.0092,97.0155,592.0
2926 +SYN1,2024-12-02T14:56:00Z,97.0155,97.0262,96.8422,96.8491,2868.0
2927 +SYN1,2024-12-02T14:57:00Z,96.8491,96.8494,96.8096,96.821,2645.0
2928 +SYN1,2024-12-02T14:58:00Z,96.821,96.8849,96.8191,96.8812,3021.0
2929 +SYN1,2024-12-02T14:59:00Z,96.8812,96.9554,96.8756,96.9477,1715.0
2930 +SYN1,2024-12-02T15:00:00Z,96.9477,96.9543,96.8666,96.8688,987.0
2931 +SYN1,2024-12-02T15:01:00Z,96.8688,96.9659,96.8535,96.9649,2974.0
2932 +SYN1,2024-12-02T15:02:00Z,96.9649,96.9974,96.9624,96.9945,1294.0
2933 +SYN1,2024-12-02T15:03:00Z,96.9945,97.101,96.9857,97.0911,1210.0
2934 +SYN1,2024-12-02T15:04:00Z,97.0911,97.1025,97.0425,97.0596,985.0
2935 +SYN1,2024-12-02T15:05:00Z,97.0596,97.168,97.0529,97.155,4106.0
2936 +SYN1,2024-12-02T15:06:00Z,97.155,97.1685,97.051,97.0525,4300.0
2937 +SYN1,2024-12-02T15:07:00Z,97.0525,97.2672,97.0451,97.2617,3930.0
2938 +SYN1,2024-12-02T15:08:00Z,97.2617,97.3314,97.2537,97.3309,2774.0
2939 +SYN1,2024-12-02T15:09:00Z,97.3309,97.3962,97.3228,97.3913,3328.0
2940 +SYN1,2024-12-02T15:10:00Z,97.3913,97.3926,97.2681,97.2849,2801.0
2941 +SYN1,2024-12-02T15:11:00Z,97.2849,97.2864,97.2691,97.2799,4728.0
2942 +SYN1,2024-12-02T15:12:00Z,97.2799,97.2911,97.2705,97.2876,4798.0
2943 +SYN1,2024-12-02T15:13:00Z,97.2876,97.3022,97.269,97.2938,188.0
2944 +SYN1,2024-12-02T15:14:00Z,97.2938,97.3006,97.2537,97.259,4052.0
2945 +SYN1,2024-12-02T15:15:00Z,97.259,97.295,97.2476,97.2948,3283.0
2946 +SYN1,2024-12-02T15:16:00Z,97.2948,97.2952,97.1931,97.1973,2108.0
2947 +SYN1,2024-12-02T15:17:00Z,97.1973,97.2243,97.1953,97.2222,3444.0
2948 +SYN1,2024-12-02T15:18:00Z,97.2222,97.2229,97.1427,97.151,2560.0
2949 +SYN1,2024-12-02T15:19:00Z,97.151,97.2155,97.132,97.2048,4158.0
2950 +SYN1,2024-12-02T15:20:00Z,97.2048,97.2178,97.1932,97.1984,304.0
2951 +SYN1,2024-12-02T15:21:00Z,97.1984,97.2175,96.9838,97.0006,1663.0
2952 +SYN1,2024-12-02T15:22:00Z,97.0006,97.1057,96.9942,97.0977,2411.0
2953 +SYN1,2024-12-02T15:23:00Z,97.0977,97.0981,96.9997,97.0028,1347.0
2954 +SYN1,2024-12-02T15:24:00Z,97.0028,97.1302,96.9943,97.1292,2653.0
2955 +SYN1,2024-12-02T15:25:00Z,97.1292,97.1978,97.1168,97.1902,2172.0
2956 +SYN1,2024-12-02T15:26:00Z,97.1902,97.209,97.1865,97.1994,3093.0
2957 +SYN1,2024-12-02T15:27:00Z,97.1994,97.2039,97.1944,97.1955,1336.0
2958 +SYN1,2024-12-02T15:28:00Z,97.1955,97.2252,97.1891,97.2209,432.0
2959 +SYN1,2024-12-02T15:29:00Z,97.2209,97.2491,97.2044,97.2469,1143.0
2960 +SYN1,2024-12-02T15:30:00Z,97.2469,97.2569,97.1653,97.1729,1112.0
2961 +SYN1,2024-12-02T15:32:00Z,97.1729,97.2099,97.1659,97.1973,1564.0
2962 +SYN1,2024-12-02T15:33:00Z,97.1973,97.2228,97.1933,97.2206,2092.0
2963 +SYN1,2024-12-02T15:34:00Z,97.2206,97.2654,97.2192,97.2612,403.0
2964 +SYN1,2024-12-02T15:35:00Z,97.2612,97.2745,97.2277,97.2687,3757.0
2965 +SYN1,2024-12-02T15:36:00Z,97.2687,97.2746,97.0816,97.0855,3796.0
2966 +SYN1,2024-12-02T15:37:00Z,97.0855,97.0879,97.0229,97.0433,2697.0
2967 +SYN1,2024-12-02T15:38:00Z,97.0433,97.0539,97.006,97.0194,255.0
2968 +SYN1,2024-12-02T15:40:00Z,97.0194,97.0705,97.012,97.0466,2816.0
2969 +SYN1,2024-12-02T15:41:00Z,97.0466,97.0737,97.0253,97.0642,2078.0
2970 +SYN1,2024-12-02T15:42:00Z,97.0642,97.1445,97.0593,97.1385,144.0
2971 +SYN1,2024-12-02T15:43:00Z,97.1385,97.1504,97.1375,97.1452,2844.0
2972 +SYN1,2024-12-02T15:44:00Z,97.1452,97.1563,97.066,97.0687,4255.0
2973 +SYN1,2024-12-02T15:45:00Z,97.0687,97.0747,97.0663,97.0673,4220.0
2974 +SYN1,2024-12-02T15:46:00Z,97.0673,97.0919,97.0615,97.0906,4629.0
2975 +SYN1,2024-12-02T15:47:00Z,97.0906,97.0939,97.0529,97.057,1611.0
2976 +SYN1,2024-12-02T15:48:00Z,97.057,97.0601,96.8454,96.8525,3867.0
2977 +SYN1,2024-12-02T15:49:00Z,96.8525,96.9413,96.8407,96.9412,3038.0
2978 +SYN1,2024-12-02T15:50:00Z,96.9412,96.9561,96.8703,96.875,773.0
2979 +SYN1,2024-12-02T15:51:00Z,96.875,96.883,96.7662,96.786,2450.0
2980 +SYN1,2024-12-02T15:52:00Z,96.786,96.7872,96.6762,96.6932,1614.0
2981 +SYN1,2024-12-02T15:53:00Z,96.6932,96.6933,96.6511,96.6663,3574.0
2982 +SYN1,2024-12-02T15:54:00Z,96.6663,96.6697,96.6414,96.6506,2777.0
2983 +SYN1,2024-12-02T15:55:00Z,96.6506,96.652,96.4763,96.4912,3278.0
2984 +SYN1,2024-12-02T15:56:00Z,96.4912,96.6485,96.4886,96.6379,1546.0
2985 +SYN1,2024-12-02T15:57:00Z,96.6379,96.6437,96.5485,96.5496,4230.0
2986 +SYN1,2024-12-02T15:58:00Z,96.5496,96.5594,96.4779,96.4804,3068.0
2987 +SYN1,2024-12-02T15:59:00Z,96.4804,96.4875,96.4668,96.4756,1959.0
2988 +SYN1,2024-12-02T16:00:00Z,96.4756,96.5304,96.4716,96.523,2013.0
2989 +SYN1,2024-12-02T16:01:00Z,96.523,96.5239,96.4828,96.489,1989.0
2990 +SYN1,2024-12-02T16:02:00Z,96.489,96.4997,96.4425,96.45,4398.0
2991 +SYN1,2024-12-02T16:03:00Z,96.45,96.4623,96.4172,96.4198,4097.0
2992 +SYN1,2024-12-02T16:04:00Z,96.4198,96.4429,96.3474,96.3479,4757.0
2993 +SYN1,2024-12-02T16:05:00Z,96.3479,96.3622,96.3092,96.3127,1074.0
2994 +SYN1,2024-12-02T16:06:00Z,96.3127,96.4162,96.2976,96.415,2628.0
2995 +SYN1,2024-12-02T16:07:00Z,96.415,96.4278,96.3329,96.3408,4252.0
2996 +SYN1,2024-12-02T16:08:00Z,96.3408,96.4866,96.3348,96.4856,4943.0
2997 +SYN1,2024-12-02T16:09:00Z,96.4856,96.4964,96.4175,96.4301,1632.0
2998 +SYN1,2024-12-02T16:10:00Z,96.4301,96.4549,96.4256,96.4538,2655.0
2999 +SYN1,2024-12-02T16:11:00Z,96.4538,96.4595,96.3489,96.3522,3680.0
3000 +SYN1,2024-12-02T16:12:00Z,96.3522,96.3647,96.2892,96.2962,3510.0
3001 +SYN1,2024-12-02T16:13:00Z,96.2962,96.3789,96.2916,96.3754,325.0
3002 +SYN1,2024-12-02T16:14:00Z,96.3754,96.4831,96.3563,96.4788,3966.0
3003 +SYN1,2024-12-02T16:15:00Z,96.4788,96.4956,96.4673,96.49,2186.0
3004 +SYN1,2024-12-02T16:16:00Z,96.49,96.5549,96.4782,96.5501,4391.0
3005 +SYN1,2024-12-02T16:17:00Z,96.5501,96.5609,96.4111,96.4207,1306.0
3006 +SYN1,2024-12-02T16:18:00Z,96.4207,96.4261,96.4043,96.4106,2434.0
3007 +SYN1,2024-12-02T16:19:00Z,96.4106,96.4129,96.3521,96.3616,1758.0
3008 +SYN1,2024-12-02T16:20:00Z,96.3616,96.4249,96.3607,96.424,4016.0
3009 +SYN1,2024-12-02T16:21:00Z,96.424,96.4373,96.3223,96.3379,660.0
3010 +SYN1,2024-12-02T16:22:00Z,96.3379,96.465,96.3139,96.4632,229.0
3011 +SYN1,2024-12-02T16:23:00Z,96.4632,96.5327,96.4413,96.5315,259.0
3012 +SYN1,2024-12-02T16:26:00Z,96.5315,96.5363,96.5169,96.5216,2574.0
3013 +SYN1,2024-12-02T16:27:00Z,96.5216,96.6806,96.5207,96.6671,4542.0
3014 +SYN1,2024-12-02T16:28:00Z,96.6671,96.6731,96.5998,96.6014,201.0
3015 +SYN1,2024-12-02T16:29:00Z,96.6014,96.6465,96.586,96.6426,2109.0
3016 +SYN1,2024-12-02T16:31:00Z,96.6426,96.6734,96.6381,96.6689,1830.0
3017 +SYN1,2024-12-02T16:32:00Z,96.6689,96.7013,96.6638,96.665,3679.0
3018 +SYN1,2024-12-02T16:33:00Z,96.665,96.679,96.6627,96.6692,3217.0
3019 +SYN1,2024-12-02T16:34:00Z,96.6692,96.732,96.6645,96.7221,4326.0
3020 +SYN1,2024-12-02T16:35:00Z,96.7221,96.7501,96.6736,96.6784,4398.0
3021 +SYN1,2024-12-02T16:36:00Z,96.6784,96.6879,96.6623,96.6821,444.0
3022 +SYN1,2024-12-02T16:37:00Z,96.6821,96.6931,96.6258,96.6411,4850.0
3023 +SYN1,2024-12-02T16:38:00Z,96.6411,96.643,96.475,96.4792,4619.0
3024 +SYN1,2024-12-02T16:39:00Z,96.4792,96.5129,96.4723,96.512,603.0
3025 +SYN1,2024-12-02T16:40:00Z,96.512,96.6874,96.4984,96.686,2950.0
3026 +SYN1,2024-12-02T16:41:00Z,96.686,96.7103,96.6781,96.7072,785.0
3027 +SYN1,2024-12-02T16:42:00Z,96.7072,96.7116,96.6316,96.6579,2642.0
3028 +SYN1,2024-12-02T16:43:00Z,96.6579,96.6795,96.651,96.6748,544.0
3029 +SYN1,2024-12-02T16:44:00Z,96.6748,96.7575,96.671,96.7412,1309.0
3030 +SYN1,2024-12-02T16:45:00Z,96.7412,96.7497,96.7067,96.7172,2673.0
3031 +SYN1,2024-12-02T16:46:00Z,96.7172,96.9054,96.7137,96.8929,416.0
3032 +SYN1,2024-12-02T16:47:00Z,96.8929,96.8964,96.7715,96.7715,1390.0
3033 +SYN1,2024-12-02T16:48:00Z,96.7715,96.8085,96.7567,96.8077,4126.0
3034 +SYN1,2024-12-02T16:49:00Z,96.8077,96.8113,96.7624,96.7688,1188.0
3035 +SYN1,2024-12-02T16:50:00Z,96.7688,96.7763,96.6597,96.6639,2293.0
3036 +SYN1,2024-12-02T16:51:00Z,96.6639,96.6685,96.5052,96.5141,2043.0
3037 +SYN1,2024-12-02T16:52:00Z,96.5141,96.6721,96.4978,96.6595,865.0
3038 +SYN1,2024-12-02T16:53:00Z,96.6595,96.6654,96.6289,96.6373,1237.0
3039 +SYN1,2024-12-02T16:54:00Z,96.6373,96.7086,96.6332,96.6932,3063.0
3040 +SYN1,2024-12-02T16:55:00Z,96.6932,96.7834,96.6856,96.7633,752.0
3041 +SYN1,2024-12-02T16:56:00Z,96.7633,96.8429,96.7494,96.8363,1257.0
3042 +SYN1,2024-12-02T16:57:00Z,96.8363,96.8514,96.7543,96.7586,3643.0
3043 +SYN1,2024-12-02T16:58:00Z,96.7586,96.7603,96.7423,96.7444,3062.0
3044 +SYN1,2024-12-02T16:59:00Z,96.7444,96.8111,96.7434,96.7894,2822.0
3045 +SYN1,2024-12-02T17:00:00Z,96.7894,96.7929,96.6678,96.6721,3267.0
3046 +SYN1,2024-12-02T17:01:00Z,96.6721,96.6901,96.6104,96.6153,3446.0
3047 +SYN1,2024-12-02T17:02:00Z,96.6153,96.6233,96.5226,96.536,1986.0
3048 +SYN1,2024-12-02T17:03:00Z,96.536,96.5518,96.4643,96.4648,1450.0
3049 +SYN1,2024-12-02T17:04:00Z,96.4648,96.4976,96.4582,96.4824,4614.0
3050 +SYN1,2024-12-02T17:05:00Z,96.4824,96.494,96.4394,96.4424,4483.0
3051 +SYN1,2024-12-02T17:06:00Z,96.4424,96.449,96.4238,96.4298,2581.0
3052 +SYN1,2024-12-02T17:07:00Z,96.4298,96.5744,96.4252,96.5739,2643.0
3053 +SYN1,2024-12-02T17:08:00Z,96.5739,96.5748,96.5276,96.528,1500.0
3054 +SYN1,2024-12-02T17:09:00Z,96.528,96.5675,96.5266,96.5593,4737.0
3055 +SYN1,2024-12-02T17:10:00Z,96.5593,96.5679,96.5548,96.5574,4215.0
3056 +SYN1,2024-12-02T17:11:00Z,96.5574,96.5741,96.5512,96.5674,1220.0
3057 +SYN1,2024-12-02T17:12:00Z,96.5674,96.6222,96.5626,96.6189,4091.0
3058 +SYN1,2024-12-02T17:13:00Z,96.6189,96.6242,96.5752,96.5761,3604.0
3059 +SYN1,2024-12-02T17:14:00Z,96.5761,96.7232,96.5758,96.716,1228.0
3060 +SYN1,2024-12-02T17:15:00Z,96.716,96.7872,96.7105,96.7768,1084.0
3061 +SYN1,2024-12-02T17:16:00Z,96.7768,96.9574,96.7723,96.9462,4303.0
3062 +SYN1,2024-12-02T17:17:00Z,96.9462,97.015,96.9385,97.002,2079.0
3063 +SYN1,2024-12-02T17:18:00Z,97.002,97.0065,96.8945,96.9052,4361.0
3064 +SYN1,2024-12-02T17:20:00Z,96.9052,96.9651,96.8974,96.9529,4272.0
3065 +SYN1,2024-12-02T17:21:00Z,96.9529,97.0466,96.9331,97.0344,3242.0
3066 +SYN1,2024-12-02T17:22:00Z,97.0344,97.0722,97.027,97.0617,881.0
3067 +SYN1,2024-12-02T17:23:00Z,97.0617,97.1827,97.046,97.1732,4715.0
3068 +SYN1,2024-12-02T17:24:00Z,97.1732,97.1816,97.1276,97.1296,333.0
3069 +SYN1,2024-12-02T17:25:00Z,97.1296,97.1322,97.1211,97.1256,162.0
3070 +SYN1,2024-12-02T17:26:00Z,97.1256,97.2351,97.1159,97.2339,966.0
3071 +SYN1,2024-12-02T17:27:00Z,97.2339,97.2511,97.2019,97.2227,436.0
3072 +SYN1,2024-12-02T17:28:00Z,97.2227,97.2617,97.2192,97.2492,3706.0
3073 +SYN1,2024-12-02T17:29:00Z,97.2492,97.2527,97.1469,97.1508,2635.0
3074 +SYN1,2024-12-02T17:30:00Z,97.1508,97.1541,97.1436,97.1484,291.0
3075 +SYN1,2024-12-02T17:31:00Z,97.1484,97.1616,97.1011,97.1104,3006.0
3076 +SYN1,2024-12-02T17:32:00Z,97.1104,97.1294,97.1025,97.1278,1711.0
3077 +SYN1,2024-12-02T17:33:00Z,97.1278,97.1408,97.0839,97.1105,4323.0
3078 +SYN1,2024-12-02T17:34:00Z,97.1105,97.2416,97.099,97.2349,2446.0
3079 +SYN1,2024-12-02T17:35:00Z,97.2349,97.2461,97.1737,97.1798,2581.0
3080 +SYN1,2024-12-02T17:36:00Z,97.1798,97.1887,97.1359,97.1471,2224.0
3081 +SYN1,2024-12-02T17:37:00Z,97.1471,97.1521,96.9342,96.9403,1464.0
3082 +SYN1,2024-12-02T17:38:00Z,96.9403,96.9827,96.937,96.9735,593.0
3083 +SYN1,2024-12-02T17:39:00Z,96.9735,96.9781,96.9375,96.9635,714.0
3084 +SYN1,2024-12-02T17:40:00Z,96.9635,96.9747,96.8916,96.8956,3910.0
3085 +SYN1,2024-12-02T17:41:00Z,96.8956,96.8961,96.8471,96.8478,539.0
3086 +SYN1,2024-12-02T17:42:00Z,96.8478,96.8547,96.7368,96.7474,508.0
3087 +SYN1,2024-12-02T17:43:00Z,96.7474,96.8364,96.7428,96.8344,1096.0
3088 +SYN1,2024-12-02T17:44:00Z,96.8344,96.8848,96.8275,96.8708,4339.0
3089 +SYN1,2024-12-02T17:45:00Z,96.8708,96.9236,96.863,96.9151,520.0
3090 +SYN1,2024-12-02T17:46:00Z,96.9151,97.0574,96.8968,97.0546,2008.0
3091 +SYN1,2024-12-02T17:47:00Z,97.0546,97.1034,97.042,97.1016,4965.0
3092 +SYN1,2024-12-02T17:48:00Z,97.1016,97.1495,97.0971,97.1475,3684.0
3093 +SYN1,2024-12-02T17:49:00Z,97.1475,97.1581,97.0767,97.0821,3063.0
3094 +SYN1,2024-12-02T17:50:00Z,97.0821,97.088,96.9364,96.9665,909.0
3095 +SYN1,2024-12-02T17:51:00Z,96.9665,97.0439,96.9657,97.0408,2203.0
3096 +SYN1,2024-12-02T17:52:00Z,97.0408,97.1313,97.0273,97.1255,2801.0
3097 +SYN1,2024-12-02T17:53:00Z,97.1255,97.1383,97.0394,97.0608,4202.0
3098 +SYN1,2024-12-02T17:54:00Z,97.0608,97.0729,97.0227,97.0292,3499.0
3099 +SYN1,2024-12-02T17:55:00Z,97.0292,97.1339,97.021,97.132,3643.0
3100 +SYN1,2024-12-02T17:56:00Z,97.132,97.2735,97.1082,97.2661,2943.0
3101 +SYN1,2024-12-02T17:57:00Z,97.2661,97.3358,97.2639,97.3321,1188.0
3102 +SYN1,2024-12-02T17:58:00Z,97.3321,97.3792,97.3293,97.3783,4384.0
3103 +SYN1,2024-12-02T17:59:00Z,97.3783,97.5097,97.3636,97.5076,2157.0
3104 +SYN1,2024-12-02T18:00:00Z,97.5076,97.5115,97.4756,97.4809,372.0
3105 +SYN1,2024-12-02T18:01:00Z,97.4809,97.4999,97.4745,97.4857,1236.0
3106 +SYN1,2024-12-02T18:02:00Z,97.4857,97.4905,97.4621,97.4745,4564.0
3107 +SYN1,2024-12-02T18:03:00Z,97.4745,97.6329,97.4554,97.6289,4003.0
3108 +SYN1,2024-12-02T18:04:00Z,97.6289,97.6913,97.6192,97.6812,1188.0
3109 +SYN1,2024-12-02T18:05:00Z,97.6812,97.6881,97.5827,97.5891,829.0
3110 +SYN1,2024-12-02T18:06:00Z,97.5891,97.6022,97.5444,97.5466,1129.0
3111 +SYN1,2024-12-02T18:07:00Z,97.5466,97.5504,97.4134,97.418,822.0
3112 +SYN1,2024-12-02T18:08:00Z,97.418,97.4288,97.397,97.3992,1576.0
3113 +SYN1,2024-12-02T18:09:00Z,97.3992,97.4059,97.3518,97.3582,3685.0
3114 +SYN1,2024-12-02T18:10:00Z,97.3582,97.3994,97.3456,97.3907,152.0
3115 +SYN1,2024-12-02T18:11:00Z,97.3907,97.3928,97.3526,97.359,4790.0
3116 +SYN1,2024-12-02T18:12:00Z,97.359,97.3657,97.3521,97.3548,4426.0
3117 +SYN1,2024-12-02T18:13:00Z,97.3548,97.3913,97.3439,97.3888,2746.0
3118 +SYN1,2024-12-02T18:14:00Z,97.3888,97.4404,97.3816,97.4395,655.0
3119 +SYN1,2024-12-02T18:15:00Z,97.4395,97.4466,97.3487,97.3515,3025.0
3120 +SYN1,2024-12-02T18:16:00Z,97.3515,97.3523,97.2466,97.2547,1858.0
3121 +SYN1,2024-12-02T18:17:00Z,97.2547,97.27,97.2452,97.2482,1089.0
3122 +SYN1,2024-12-02T18:18:00Z,97.2482,97.3347,97.2451,97.3015,3829.0
3123 +SYN1,2024-12-02T18:19:00Z,97.3015,97.4301,97.2951,97.4259,1475.0
3124 +SYN1,2024-12-02T18:20:00Z,97.4259,97.5165,97.4179,97.5085,2025.0
3125 +SYN1,2024-12-02T18:21:00Z,97.5085,97.5132,97.4805,97.4838,414.0
3126 +SYN1,2024-12-02T18:22:00Z,97.4838,97.4916,97.4404,97.4453,569.0
3127 +SYN1,2024-12-02T18:23:00Z,97.4453,97.5265,97.4436,97.5217,3938.0
3128 +SYN1,2024-12-02T18:24:00Z,97.5217,97.5439,97.5179,97.543,1990.0
3129 +SYN1,2024-12-02T18:25:00Z,97.543,97.5533,97.5279,97.5515,2292.0
3130 +SYN1,2024-12-02T18:26:00Z,97.5515,97.5653,97.4571,97.4681,3337.0
3131 +SYN1,2024-12-02T18:28:00Z,97.4681,97.6424,97.4643,97.6382,824.0
3132 +SYN1,2024-12-02T18:29:00Z,97.6382,97.649,97.5465,97.5593,1249.0
3133 +SYN1,2024-12-02T18:30:00Z,97.5593,97.5719,97.5433,97.5544,3898.0
3134 +SYN1,2024-12-02T18:31:00Z,97.5544,97.6443,97.5528,97.6344,1077.0
3135 +SYN1,2024-12-02T18:32:00Z,97.6344,97.7079,97.6306,97.6944,4151.0
3136 +SYN1,2024-12-02T18:33:00Z,97.6944,97.7536,97.6934,97.7473,926.0
3137 +SYN1,2024-12-02T18:34:00Z,97.7473,97.7597,97.6988,97.7098,1367.0
3138 +SYN1,2024-12-02T18:35:00Z,97.7098,97.7119,97.601,97.603,376.0
3139 +SYN1,2024-12-02T18:36:00Z,97.603,97.6906,97.5925,97.6682,1283.0
3140 +SYN1,2024-12-02T18:38:00Z,97.6682,97.6985,97.6622,97.697,4463.0
3141 +SYN1,2024-12-02T18:39:00Z,97.697,97.7017,97.6753,97.6782,1587.0
3142 +SYN1,2024-12-02T18:40:00Z,97.6782,97.6803,97.6704,97.6717,4531.0
3143 +SYN1,2024-12-02T18:41:00Z,97.6717,97.6825,97.6017,97.622,4678.0
3144 +SYN1,2024-12-02T18:42:00Z,97.622,97.6244,97.5225,97.5263,3419.0
3145 +SYN1,2024-12-02T18:43:00Z,97.5263,97.5805,97.525,97.5801,2680.0
3146 +SYN1,2024-12-02T18:44:00Z,97.5801,97.6399,97.5736,97.6336,2524.0
3147 +SYN1,2024-12-02T18:45:00Z,97.6336,97.7447,97.6281,97.7435,773.0
3148 +SYN1,2024-12-02T18:46:00Z,97.7435,97.7446,97.7089,97.7192,1921.0
3149 +SYN1,2024-12-02T18:47:00Z,97.7192,97.7295,97.5136,97.525,3865.0
3150 +SYN1,2024-12-02T18:48:00Z,97.525,97.5908,97.5146,97.5842,2423.0
3151 +SYN1,2024-12-02T18:49:00Z,97.5842,97.6153,97.5738,97.6062,522.0
3152 +SYN1,2024-12-02T18:50:00Z,97.6062,97.7044,97.5982,97.6972,624.0
3153 +SYN1,2024-12-02T18:52:00Z,97.6972,97.7223,97.5942,97.6215,4324.0
3154 +SYN1,2024-12-02T18:53:00Z,97.6215,97.7678,97.6215,97.7626,3863.0
3155 +SYN1,2024-12-02T18:54:00Z,97.7626,97.7673,97.5697,97.5727,1541.0
3156 +SYN1,2024-12-02T18:55:00Z,97.5727,97.5787,97.5626,97.5727,4036.0
3157 +SYN1,2024-12-02T18:56:00Z,97.5727,97.5735,97.513,97.5192,4877.0
3158 +SYN1,2024-12-02T18:57:00Z,97.5192,97.623,97.5153,97.6159,3458.0
3159 +SYN1,2024-12-02T18:58:00Z,97.6159,97.661,97.6137,97.6598,1415.0
3160 +SYN1,2024-12-02T18:59:00Z,97.6598,97.6601,97.537,97.5492,3532.0
3161 +SYN1,2024-12-02T19:00:00Z,97.5492,97.6006,97.5414,97.5982,3018.0
3162 +SYN1,2024-12-02T19:01:00Z,97.5982,97.6063,97.5755,97.5857,684.0
3163 +SYN1,2024-12-02T19:02:00Z,97.5857,97.661,97.5781,97.661,2672.0
3164 +SYN1,2024-12-02T19:03:00Z,97.661,97.6713,97.6297,97.6353,3406.0
3165 +SYN1,2024-12-02T19:04:00Z,97.6353,97.6436,97.6299,97.6363,3682.0
3166 +SYN1,2024-12-02T19:05:00Z,97.6363,97.746,97.6358,97.7296,3926.0
3167 +SYN1,2024-12-02T19:06:00Z,97.7296,97.7395,97.6554,97.6618,2880.0
3168 +SYN1,2024-12-02T19:07:00Z,97.6618,97.7555,97.6508,97.7397,2632.0
3169 +SYN1,2024-12-02T19:08:00Z,97.7397,97.8121,97.7308,97.8069,2186.0
3170 +SYN1,2024-12-02T19:09:00Z,97.8069,97.9051,97.803,97.8949,137.0
3171 +SYN1,2024-12-02T19:10:00Z,97.8949,97.9026,97.8918,97.899,1119.0
3172 +SYN1,2024-12-02T19:12:00Z,97.899,97.9087,97.8241,97.8269,2043.0
3173 +SYN1,2024-12-02T19:13:00Z,97.8269,97.8349,97.8087,97.8132,4134.0
3174 +SYN1,2024-12-02T19:14:00Z,97.8132,97.8177,97.8009,97.8032,412.0
3175 +SYN1,2024-12-02T19:15:00Z,97.8032,97.8135,97.7863,97.7972,4753.0
3176 +SYN1,2024-12-02T19:16:00Z,97.7972,97.8105,97.7098,97.7261,2121.0
3177 +SYN1,2024-12-02T19:17:00Z,97.7261,97.8026,97.7244,97.7967,2270.0
3178 +SYN1,2024-12-02T19:18:00Z,97.7967,97.8,97.6927,97.6947,3200.0
3179 +SYN1,2024-12-02T19:19:00Z,97.6947,97.7027,97.603,97.6062,1488.0
3180 +SYN1,2024-12-02T19:20:00Z,97.6062,97.6193,97.5227,97.5339,2976.0
3181 +SYN1,2024-12-02T19:21:00Z,97.5339,97.535,97.5327,97.5333,3880.0
3182 +SYN1,2024-12-02T19:22:00Z,97.5333,97.6496,97.5187,97.6474,1872.0
3183 +SYN1,2024-12-02T19:23:00Z,97.6474,97.7852,97.64,97.7831,4163.0
3184 +SYN1,2024-12-02T19:24:00Z,97.7831,97.7852,97.6646,97.6687,2165.0
3185 +SYN1,2024-12-02T19:25:00Z,97.6687,97.6716,97.6013,97.6021,4817.0
3186 +SYN1,2024-12-02T19:26:00Z,97.6021,97.6695,97.5936,97.6691,3697.0
3187 +SYN1,2024-12-02T19:27:00Z,97.6691,97.6752,97.5876,97.5896,3750.0
3188 +SYN1,2024-12-02T19:28:00Z,97.5896,97.5972,97.5259,97.5269,4509.0
3189 +SYN1,2024-12-02T19:29:00Z,97.5269,97.5281,97.4532,97.4569,1976.0
3190 +SYN1,2024-12-02T19:30:00Z,97.4569,97.4734,97.4035,97.4142,3539.0
3191 +SYN1,2024-12-02T19:31:00Z,97.4142,97.4174,97.3321,97.3332,4961.0
3192 +SYN1,2024-12-02T19:32:00Z,97.3332,97.34,97.2101,97.22,3421.0
3193 +SYN1,2024-12-02T19:33:00Z,97.22,97.2253,97.081,97.0955,4453.0
3194 +SYN1,2024-12-02T19:34:00Z,97.0955,97.1022,97.089,97.0959,1193.0
3195 +SYN1,2024-12-02T19:35:00Z,97.0959,97.1056,97.0366,97.0384,2675.0
3196 +SYN1,2024-12-02T19:36:00Z,97.0384,97.0525,96.9449,96.9552,4762.0
3197 +SYN1,2024-12-02T19:37:00Z,96.9552,97.0283,96.9488,97.0175,4142.0
3198 +SYN1,2024-12-02T19:38:00Z,97.0175,97.0272,96.9768,96.9847,3715.0
3199 +SYN1,2024-12-02T19:39:00Z,96.9847,97.0356,96.9799,97.0298,3801.0
3200 +SYN1,2024-12-02T19:40:00Z,97.0298,97.1134,97.0219,97.1118,4334.0
3201 +SYN1,2024-12-02T19:41:00Z,97.1118,97.1123,97.0095,97.0101,4004.0
3202 +SYN1,2024-12-02T19:42:00Z,97.0101,97.1327,97.0095,97.1282,1394.0
3203 +SYN1,2024-12-02T19:43:00Z,97.1282,97.2079,97.1252,97.2058,1269.0
3204 +SYN1,2024-12-02T19:44:00Z,97.2058,97.2124,97.0853,97.0987,1648.0
3205 +SYN1,2024-12-02T19:45:00Z,97.0987,97.1356,97.0827,97.1271,3547.0
3206 +SYN1,2024-12-02T19:46:00Z,97.1271,97.2117,97.1199,97.2099,3413.0
3207 +SYN1,2024-12-02T19:47:00Z,97.2099,97.2622,97.1996,97.2423,3311.0
3208 +SYN1,2024-12-02T19:48:00Z,97.2423,97.3148,97.2379,97.3081,3097.0
3209 +SYN1,2024-12-02T19:49:00Z,97.3081,97.3201,97.1214,97.1427,3160.0
3210 +SYN1,2024-12-02T19:50:00Z,97.1427,97.1542,97.0992,97.1084,3273.0
3211 +SYN1,2024-12-02T19:51:00Z,97.1084,97.1491,97.1013,97.1369,4579.0
3212 +SYN1,2024-12-02T19:52:00Z,97.1369,97.1556,97.1244,97.1524,2351.0
3213 +SYN1,2024-12-02T19:53:00Z,97.1524,97.1724,97.1478,97.1615,595.0
3214 +SYN1,2024-12-02T19:54:00Z,97.1615,97.2849,97.1598,97.2838,3873.0
3215 +SYN1,2024-12-02T19:57:00Z,97.2838,97.2894,97.2303,97.2341,1313.0
3216 +SYN1,2024-12-02T19:58:00Z,97.2341,97.42,97.2298,97.4132,2001.0
3217 +SYN1,2024-12-02T19:59:00Z,97.4132,97.4161,97.3306,97.343,1537.0
3218 +SYN1,2024-12-02T20:00:00Z,97.343,97.3611,97.2981,97.3137,1862.0
3219 +SYN1,2024-12-02T20:01:00Z,97.3137,97.3213,97.1384,97.1551,2049.0
3220 +SYN1,2024-12-02T20:02:00Z,97.1551,97.3,97.1369,97.2917,1072.0
3221 +SYN1,2024-12-02T20:03:00Z,97.2917,97.3673,97.2913,97.3466,178.0
3222 +SYN1,2024-12-02T20:04:00Z,97.3466,97.4097,97.3409,97.4022,642.0
3223 +SYN1,2024-12-02T20:05:00Z,97.4022,97.5371,97.4005,97.5322,3738.0
3224 +SYN1,2024-12-02T20:06:00Z,97.5322,97.5783,97.5312,97.5719,3525.0
3225 +SYN1,2024-12-02T20:07:00Z,97.5719,97.5728,97.5624,97.5705,736.0
3226 +SYN1,2024-12-02T20:08:00Z,97.5705,97.6261,97.5607,97.6125,3157.0
3227 +SYN1,2024-12-02T20:09:00Z,97.6125,97.6845,97.602,97.6639,3266.0
3228 +SYN1,2024-12-02T20:10:00Z,97.6639,97.674,97.6268,97.6279,534.0
3229 +SYN1,2024-12-02T20:11:00Z,97.6279,97.6343,97.619,97.6232,3872.0
3230 +SYN1,2024-12-02T20:12:00Z,97.6232,97.6343,97.4648,97.4786,1450.0
3231 +SYN1,2024-12-02T20:13:00Z,97.4786,97.4896,97.3118,97.3172,4677.0
3232 +SYN1,2024-12-02T20:14:00Z,97.3172,97.3396,97.2798,97.3035,4930.0
3233 +SYN1,2024-12-02T20:15:00Z,97.3035,97.3215,97.2983,97.3125,2733.0
3234 +SYN1,2024-12-02T20:16:00Z,97.3125,97.3188,97.1089,97.1214,4290.0
3235 +SYN1,2024-12-02T20:17:00Z,97.1214,97.1294,97.0912,97.0949,1208.0
3236 +SYN1,2024-12-02T20:18:00Z,97.0949,97.1846,97.0823,97.1801,1781.0
3237 +SYN1,2024-12-02T20:19:00Z,97.1801,97.1842,97.1754,97.1784,3062.0
3238 +SYN1,2024-12-02T20:20:00Z,97.1784,97.2526,97.1689,97.2481,3616.0
3239 +SYN1,2024-12-02T20:21:00Z,97.2481,97.2599,97.2104,97.217,4696.0
3240 +SYN1,2024-12-02T20:22:00Z,97.217,97.2259,97.1916,97.1969,594.0
3241 +SYN1,2024-12-02T20:23:00Z,97.1969,97.2026,97.0846,97.0857,4337.0
3242 +SYN1,2024-12-02T20:24:00Z,97.0857,97.0986,96.9485,96.9633,739.0
3243 +SYN1,2024-12-02T20:25:00Z,96.9633,96.9794,96.9185,96.9202,4256.0
3244 +SYN1,2024-12-02T20:26:00Z,96.9202,96.9247,96.8349,96.8473,1217.0
3245 +SYN1,2024-12-02T20:28:00Z,96.8473,96.8686,96.7404,96.7419,2495.0
3246 +SYN1,2024-12-02T20:29:00Z,96.7419,96.8073,96.7407,96.7952,1887.0
3247 +SYN1,2024-12-02T20:30:00Z,96.7952,96.8371,96.7817,96.8294,3924.0
3248 +SYN1,2024-12-02T20:31:00Z,96.8294,96.8459,96.7273,96.7277,1832.0
3249 +SYN1,2024-12-02T20:32:00Z,96.7277,96.9128,96.725,96.8941,446.0
3250 +SYN1,2024-12-02T20:33:00Z,96.8941,96.9517,96.8745,96.9512,758.0
3251 +SYN1,2024-12-02T20:34:00Z,96.9512,96.9921,96.944,96.9896,3109.0
3252 +SYN1,2024-12-02T20:35:00Z,96.9896,96.9926,96.8847,96.895,3803.0
3253 +SYN1,2024-12-02T20:36:00Z,96.895,96.9119,96.7202,96.7353,4636.0
3254 +SYN1,2024-12-02T20:37:00Z,96.7353,96.7502,96.6968,96.6996,4946.0
3255 +SYN1,2024-12-02T20:38:00Z,96.6996,96.7075,96.6689,96.6741,4399.0
3256 +SYN1,2024-12-02T20:39:00Z,96.6741,96.7145,96.6699,96.7014,3511.0
3257 +SYN1,2024-12-02T20:40:00Z,96.7014,96.762,96.6947,96.7596,2529.0
3258 +SYN1,2024-12-02T20:42:00Z,96.7596,96.7634,96.7389,96.7398,1642.0
3259 +SYN1,2024-12-02T20:44:00Z,96.7398,96.8653,96.7378,96.8628,3077.0
3260 +SYN1,2024-12-02T20:45:00Z,96.8628,96.8659,96.8231,96.8241,4982.0
3261 +SYN1,2024-12-02T20:46:00Z,96.8241,96.8823,96.8111,96.8656,2145.0
3262 +SYN1,2024-12-02T20:47:00Z,96.8656,96.8694,96.8473,96.8514,4660.0
3263 +SYN1,2024-12-02T20:48:00Z,96.8514,96.8537,96.8407,96.8415,2958.0
3264 +SYN1,2024-12-02T20:49:00Z,96.8415,96.9162,96.8191,96.9059,3637.0
3265 +SYN1,2024-12-02T20:50:00Z,96.9059,97.0353,96.9048,97.0339,953.0
3266 +SYN1,2024-12-02T20:51:00Z,97.0339,97.0354,96.8905,96.9063,3565.0
3267 +SYN1,2024-12-02T20:52:00Z,96.9063,96.9096,96.8873,96.9008,4826.0
3268 +SYN1,2024-12-02T20:53:00Z,96.9008,96.9174,96.8921,96.9159,3471.0
3269 +SYN1,2024-12-02T20:54:00Z,96.9159,96.972,96.9146,96.957,4012.0
3270 +SYN1,2024-12-02T20:55:00Z,96.957,96.9782,96.9559,96.9686,1196.0
3271 +SYN1,2024-12-02T20:56:00Z,96.9686,97.0572,96.9612,97.0519,3366.0
3272 +SYN1,2024-12-02T20:57:00Z,97.0519,97.0554,96.9658,96.9813,1643.0
3273 +SYN1,2024-12-02T20:58:00Z,96.9813,96.9836,96.9378,96.9478,2143.0
3274 +SYN1,2024-12-02T20:59:00Z,96.9478,96.9548,96.8826,96.889,2155.0
3275 +SYN1,2024-12-02T21:00:00Z,96.889,96.8926,96.8281,96.835,4685.0
3276 +SYN1,2024-12-02T21:01:00Z,96.835,96.8891,96.8302,96.8841,197.0
3277 +SYN1,2024-12-02T21:02:00Z,96.8841,96.8907,96.8531,96.8563,104.0
3278 +SYN1,2024-12-02T21:03:00Z,96.8563,96.9191,96.8494,96.9117,209.0
3279 +SYN1,2024-12-02T21:04:00Z,96.9117,96.9117,96.866,96.8821,72.0
3280 +SYN1,2024-12-02T21:05:00Z,96.8821,96.8887,96.8585,96.8609,36.0
3281 +SYN1,2024-12-02T21:06:00Z,96.8609,96.9668,96.8608,96.964,153.0
3282 +SYN1,2024-12-02T21:07:00Z,96.964,96.971,96.9439,96.9492,228.0
3283 +SYN1,2024-12-02T21:09:00Z,96.9492,96.9771,96.9473,96.9742,68.0
3284 +SYN1,2024-12-02T21:10:00Z,96.9742,96.9771,96.9009,96.9011,214.0
3285 +SYN1,2024-12-02T21:11:00Z,96.9011,96.9141,96.8959,96.9047,244.0
3286 +SYN1,2024-12-02T21:12:00Z,96.9047,96.9136,96.8806,96.8817,275.0
3287 +SYN1,2024-12-02T21:16:00Z,96.8817,96.9273,96.8782,96.9247,285.0
3288 +SYN1,2024-12-02T21:17:00Z,96.9247,96.9478,96.9211,96.9457,251.0
3289 +SYN1,2024-12-02T21:19:00Z,96.9457,96.9647,96.8763,96.877,17.0
3290 +SYN1,2024-12-02T21:25:00Z,96.877,96.8859,96.8184,96.8258,149.0
3291 +SYN1,2024-12-02T21:26:00Z,96.8258,96.8263,96.7956,96.8036,172.0
3292 +SYN1,2024-12-02T21:28:00Z,96.8036,96.8426,96.7888,96.8399,105.0
3293 +SYN1,2024-12-02T21:29:00Z,96.8399,96.8403,96.7991,96.8089,4.0
3294 +SYN1,2024-12-02T21:30:00Z,96.8089,96.8298,96.8058,96.8284,74.0
3295 +SYN1,2024-12-02T21:31:00Z,96.8284,96.8298,96.7838,96.7971,74.0
3296 +SYN1,2024-12-02T21:32:00Z,96.7971,96.8359,96.7894,96.8311,98.0
3297 +SYN1,2024-12-02T21:33:00Z,96.8311,96.8433,96.7506,96.7614,174.0
3298 +SYN1,2024-12-02T21:34:00Z,96.7614,96.7967,96.7495,96.7729,205.0
3299 +SYN1,2024-12-02T21:35:00Z,96.7729,96.7928,96.7708,96.7852,44.0
3300 +SYN1,2024-12-02T21:39:00Z,96.7852,96.7889,96.7673,96.7686,35.0
3301 +SYN1,2024-12-02T21:40:00Z,96.7686,96.788,96.7469,96.7871,234.0
3302 +SYN1,2024-12-02T21:42:00Z,96.7871,96.7918,96.7533,96.755,129.0
3303 +SYN1,2024-12-02T21:43:00Z,96.755,96.773,96.7463,96.7632,193.0
3304 +SYN1,2024-12-02T21:44:00Z,96.7632,96.8092,96.7551,96.7931,100.0
3305 +SYN1,2024-12-02T21:45:00Z,96.7931,96.8002,96.7112,96.7227,94.0
3306 +SYN1,2024-12-02T21:47:00Z,96.7227,96.7236,96.702,96.7077,48.0
3307 +SYN1,2024-12-02T21:49:00Z,96.7077,96.7151,96.6552,96.6637,238.0
3308 +SYN1,2024-12-02T21:51:00Z,96.6637,96.6655,96.6334,96.653,246.0
3309 +SYN1,2024-12-02T21:54:00Z,96.653,96.6719,96.6484,96.6718,298.0
3310 +SYN1,2024-12-02T21:55:00Z,96.6718,96.7211,96.6638,96.7194,35.0
3311 +SYN1,2024-12-02T21:56:00Z,96.7194,96.7444,96.6608,96.6714,240.0
3312 +SYN1,2024-12-02T21:59:00Z,96.6714,96.6995,96.6655,96.6836,209.0
3313 +SYN1,2024-12-02T22:00:00Z,96.6836,96.7194,96.6764,96.7157,144.0
3314 +SYN1,2024-12-02T22:02:00Z,96.7157,96.748,96.6896,96.7377,93.0
3315 +SYN1,2024-12-02T22:03:00Z,96.7377,96.8034,96.7302,96.785,264.0
3316 +SYN1,2024-12-02T22:05:00Z,96.785,96.7856,96.7628,96.778,5.0
3317 +SYN1,2024-12-02T22:06:00Z,96.778,96.8895,96.7759,96.8894,47.0
3318 +SYN1,2024-12-02T22:07:00Z,96.8894,96.9191,96.8856,96.9146,257.0
3319 +SYN1,2024-12-02T22:08:00Z,96.9146,96.9426,96.9098,96.9414,273.0
3320 +SYN1,2024-12-02T22:09:00Z,96.9414,96.946,96.928,96.9299,209.0
3321 +SYN1,2024-12-02T22:10:00Z,96.9299,96.9432,96.9029,96.9091,60.0
3322 +SYN1,2024-12-02T22:11:00Z,96.9091,96.9982,96.902,96.9944,162.0
3323 +SYN1,2024-12-02T22:13:00Z,96.9944,97.0256,96.9923,97.0139,130.0
3324 +SYN1,2024-12-02T22:16:00Z,97.0139,97.0296,96.9667,96.9828,229.0
3325 +SYN1,2024-12-02T22:19:00Z,96.9828,96.9846,96.9647,96.9648,12.0
3326 +SYN1,2024-12-02T22:20:00Z,96.9648,96.9703,96.9009,96.9102,72.0
3327 +SYN1,2024-12-02T22:21:00Z,96.9102,96.911,96.8515,96.8633,89.0
3328 +SYN1,2024-12-02T22:22:00Z,96.8633,96.8664,96.8609,96.8664,269.0
3329 +SYN1,2024-12-02T22:23:00Z,96.8664,96.8742,96.8601,96.8641,207.0
3330 +SYN1,2024-12-02T22:24:00Z,96.8641,96.8685,96.8101,96.8179,109.0
3331 +SYN1,2024-12-02T22:25:00Z,96.8179,96.8297,96.793,96.7949,235.0
3332 +SYN1,2024-12-02T22:26:00Z,96.7949,96.8241,96.7925,96.815,174.0
3333 +SYN1,2024-12-02T22:27:00Z,96.815,96.8416,96.8019,96.8225,98.0
3334 +SYN1,2024-12-02T22:28:00Z,96.8225,96.87,96.8066,96.8668,276.0
3335 +SYN1,2024-12-02T22:29:00Z,96.8668,96.9013,96.8597,96.8895,33.0
3336 +SYN1,2024-12-02T22:30:00Z,96.8895,96.8963,96.8683,96.8697,253.0
3337 +SYN1,2024-12-02T22:31:00Z,96.8697,96.8741,96.7998,96.8231,31.0
3338 +SYN1,2024-12-02T22:34:00Z,96.8231,96.8286,96.7971,96.8062,229.0
3339 +SYN1,2024-12-02T22:36:00Z,96.8062,96.883,96.7989,96.8689,266.0
3340 +SYN1,2024-12-02T22:37:00Z,96.8689,96.9139,96.8593,96.9003,200.0
3341 +SYN1,2024-12-02T22:38:00Z,96.9003,96.969,96.8964,96.9596,263.0
3342 +SYN1,2024-12-02T22:39:00Z,96.9596,96.9689,96.9576,96.96,100.0
3343 +SYN1,2024-12-02T22:41:00Z,96.96,96.9782,96.9414,96.9781,8.0
3344 +SYN1,2024-12-02T22:42:00Z,96.9781,96.9815,96.9361,96.9402,90.0
3345 +SYN1,2024-12-02T22:43:00Z,96.9402,96.951,96.8994,96.9113,125.0
3346 +SYN1,2024-12-02T22:44:00Z,96.9113,96.9433,96.904,96.9204,20.0
3347 +SYN1,2024-12-02T22:45:00Z,96.9204,96.9572,96.9203,96.9438,21.0
3348 +SYN1,2024-12-02T22:46:00Z,96.9438,96.9486,96.9015,96.9114,151.0
3349 +SYN1,2024-12-02T22:49:00Z,96.9114,96.9622,96.9107,96.9481,193.0
3350 +SYN1,2024-12-02T22:50:00Z,96.9481,96.9511,96.9169,96.9218,107.0
3351 +SYN1,2024-12-02T22:51:00Z,96.9218,96.9339,96.8598,96.8617,84.0
3352 +SYN1,2024-12-02T22:53:00Z,96.8617,96.8659,96.8278,96.834,177.0
3353 +SYN1,2024-12-02T22:55:00Z,96.834,96.8342,96.7916,96.793,172.0
3354 +SYN1,2024-12-02T22:59:00Z,96.793,96.8369,96.792,96.822,48.0
3355 +SYN1,2024-12-02T23:00:00Z,96.822,96.83,96.8173,96.8194,254.0
3356 +SYN1,2024-12-02T23:01:00Z,96.8194,96.8504,96.8098,96.8403,178.0
3357 +SYN1,2024-12-02T23:03:00Z,96.8403,96.9179,96.833,96.9051,105.0
3358 +SYN1,2024-12-02T23:07:00Z,96.9051,96.9729,96.899,96.954,194.0
3359 +SYN1,2024-12-02T23:10:00Z,96.954,97.0056,96.95,96.9898,102.0
3360 +SYN1,2024-12-02T23:12:00Z,96.9898,96.99,96.9233,96.9361,175.0
3361 +SYN1,2024-12-02T23:13:00Z,96.9361,96.9453,96.9089,96.9141,13.0
3362 +SYN1,2024-12-02T23:14:00Z,96.9141,96.918,96.8457,96.853,144.0
3363 +SYN1,2024-12-02T23:15:00Z,96.853,96.8654,96.8457,96.8595,153.0
3364 +SYN1,2024-12-02T23:16:00Z,96.8595,96.8753,96.8333,96.8433,98.0
3365 +SYN1,2024-12-02T23:19:00Z,96.8433,96.8446,96.8176,96.8237,4.0
3366 +SYN1,2024-12-02T23:22:00Z,96.8237,96.8313,96.7315,96.7344,2.0
3367 +SYN1,2024-12-02T23:25:00Z,96.7344,96.7358,96.7083,96.7106,164.0
3368 +SYN1,2024-12-02T23:29:00Z,96.7106,96.7142,96.6236,96.6237,165.0
3369 +SYN1,2024-12-02T23:30:00Z,96.6237,96.64,96.5886,96.5912,62.0
3370 +SYN1,2024-12-02T23:31:00Z,96.5912,96.5922,96.5605,96.5681,73.0
3371 +SYN1,2024-12-02T23:32:00Z,96.5681,96.5806,96.5556,96.5592,273.0
3372 +SYN1,2024-12-02T23:33:00Z,96.5592,96.6017,96.5574,96.5987,79.0
3373 +SYN1,2024-12-02T23:34:00Z,96.5987,96.6095,96.5668,96.5674,150.0
3374 +SYN1,2024-12-02T23:39:00Z,96.5674,96.569,96.5581,96.5632,36.0
3375 +SYN1,2024-12-02T23:40:00Z,96.5632,96.5838,96.5418,96.547,260.0
3376 +SYN1,2024-12-02T23:43:00Z,96.547,96.5564,96.5174,96.5319,251.0
3377 +SYN1,2024-12-02T23:45:00Z,96.5319,96.5908,96.5285,96.5823,152.0
3378 +SYN1,2024-12-02T23:46:00Z,96.5823,96.587,96.5605,96.5755,166.0
3379 +SYN1,2024-12-02T23:47:00Z,96.5755,96.5836,96.563,96.5821,279.0
3380 +SYN1,2024-12-02T23:49:00Z,96.5821,96.5915,96.547,96.5477,293.0
3381 +SYN1,2024-12-02T23:51:00Z,96.5477,96.5559,96.523,96.5301,103.0
3382 +SYN1,2024-12-02T23:52:00Z,96.5301,96.5911,96.5233,96.5779,24.0
3383 +SYN1,2024-12-02T23:58:00Z,96.5779,96.6163,96.5758,96.6105,17.0
3384 +SYN1,2024-12-03T00:02:00Z,96.6105,96.6262,96.6068,96.6101,270.0
3385 +SYN1,2024-12-03T00:03:00Z,96.6101,96.6278,96.597,96.6188,298.0
3386 +SYN1,2024-12-03T00:04:00Z,96.6188,96.6385,96.6004,96.6064,187.0
3387 +SYN1,2024-12-03T00:05:00Z,96.6064,96.6401,96.6001,96.6213,59.0
3388 +SYN1,2024-12-03T00:06:00Z,96.6213,96.6966,96.6095,96.6766,109.0
3389 +SYN1,2024-12-03T00:07:00Z,96.6766,96.7798,96.6741,96.774,192.0
3390 +SYN1,2024-12-03T00:09:00Z,96.774,96.7793,96.6911,96.6958,80.0
3391 +SYN1,2024-12-03T00:10:00Z,96.6958,96.6961,96.6278,96.628,26.0
3392 +SYN1,2024-12-03T00:11:00Z,96.628,96.6304,96.5867,96.5888,129.0
3393 +SYN1,2024-12-03T00:12:00Z,96.5888,96.6008,96.5624,96.564,201.0
3394 +SYN1,2024-12-03T00:15:00Z,96.564,96.5756,96.4889,96.494,250.0
3395 +SYN1,2024-12-03T00:16:00Z,96.494,96.5192,96.4901,96.5073,19.0
3396 +SYN1,2024-12-03T00:17:00Z,96.5073,96.5117,96.4852,96.4869,118.0
3397 +SYN1,2024-12-03T00:18:00Z,96.4869,96.5157,96.4838,96.5131,46.0
3398 +SYN1,2024-12-03T00:19:00Z,96.5131,96.5333,96.5033,96.5046,197.0
3399 +SYN1,2024-12-03T00:20:00Z,96.5046,96.5172,96.4562,96.461,244.0
3400 +SYN1,2024-12-03T00:24:00Z,96.461,96.471,96.4481,96.4483,212.0
3401 +SYN1,2024-12-03T00:27:00Z,96.4483,96.4703,96.4481,96.4647,287.0
3402 +SYN1,2024-12-03T00:29:00Z,96.4647,96.5221,96.4532,96.5082,51.0
3403 +SYN1,2024-12-03T00:30:00Z,96.5082,96.5164,96.501,96.5119,176.0
3404 +SYN1,2024-12-03T00:31:00Z,96.5119,96.5172,96.5004,96.5016,288.0
3405 +SYN1,2024-12-03T00:33:00Z,96.5016,96.506,96.4976,96.4989,11.0
3406 +SYN1,2024-12-03T00:37:00Z,96.4989,96.5102,96.4769,96.4885,64.0
3407 +SYN1,2024-12-03T00:38:00Z,96.4885,96.536,96.4833,96.519,255.0
3408 +SYN1,2024-12-03T00:40:00Z,96.519,96.5201,96.5044,96.5197,133.0
3409 +SYN1,2024-12-03T00:41:00Z,96.5197,96.6264,96.5113,96.6147,263.0
3410 +SYN1,2024-12-03T00:42:00Z,96.6147,96.7193,96.593,96.6999,140.0
3411 +SYN1,2024-12-03T00:43:00Z,96.6999,96.7031,96.6607,96.6614,44.0
3412 +SYN1,2024-12-03T00:44:00Z,96.6614,96.6628,96.6346,96.6358,153.0
3413 +SYN1,2024-12-03T00:45:00Z,96.6358,96.6682,96.629,96.6675,77.0
3414 +SYN1,2024-12-03T00:47:00Z,96.6675,96.7007,96.6641,96.6914,130.0
3415 +SYN1,2024-12-03T00:49:00Z,96.6914,96.7209,96.6759,96.7172,254.0
3416 +SYN1,2024-12-03T00:51:00Z,96.7172,96.7446,96.7109,96.7393,3.0
3417 +SYN1,2024-12-03T00:55:00Z,96.7393,96.7749,96.7198,96.774,14.0
3418 +SYN1,2024-12-03T00:56:00Z,96.774,96.7783,96.7648,96.7723,51.0
3419 +SYN1,2024-12-03T00:58:00Z,96.7723,96.8088,96.7581,96.7963,46.0
3420 +SYN1,2024-12-03T00:59:00Z,96.7963,96.8082,96.7707,96.7792,207.0
3421 +SYN2,2024-11-25T09:00:00Z,25.0,25.0065,24.996,25.0044,165.0
3422 +SYN2,2024-11-25T09:03:00Z,25.0044,25.0058,24.9751,24.9773,157.0
3423 +SYN2,2024-11-25T09:04:00Z,24.9773,24.9917,24.9758,24.9902,239.0
3424 +SYN2,2024-11-25T09:07:00Z,24.9902,24.9932,24.9714,24.9752,203.0
3425 +SYN2,2024-11-25T09:08:00Z,24.9752,24.9758,24.9631,24.9665,173.0
3426 +SYN2,2024-11-25T09:09:00Z,24.9665,24.9682,24.9419,24.9428,215.0
3427 +SYN2,2024-11-25T09:10:00Z,24.9428,24.9445,24.9385,24.9404,29.0
3428 +SYN2,2024-11-25T09:13:00Z,24.9404,24.9429,24.8815,24.8833,137.0
3429 +SYN2,2024-11-25T09:14:00Z,24.8833,24.8878,24.8822,24.8853,108.0
3430 +SYN2,2024-11-25T09:15:00Z,24.8853,24.8859,24.8536,24.8553,30.0
3431 +SYN2,2024-11-25T09:16:00Z,24.8553,24.8559,24.8423,24.8458,66.0
3432 +SYN2,2024-11-25T09:18:00Z,24.8458,24.8463,24.8235,24.8239,113.0
3433 +SYN2,2024-11-25T09:19:00Z,24.8239,24.8272,24.7939,24.7955,189.0
3434 +SYN2,2024-11-25T09:20:00Z,24.7955,24.8262,24.7947,24.8242,288.0
3435 +SYN2,2024-11-25T09:21:00Z,24.8242,24.8315,24.8216,24.8299,155.0
3436 +SYN2,2024-11-25T09:22:00Z,24.8299,24.8619,24.8296,24.86,171.0
3437 +SYN2,2024-11-25T09:25:00Z,24.86,24.8951,24.8599,24.8929,167.0
3438 +SYN2,2024-11-25T09:28:00Z,24.8929,24.9241,24.8916,24.9238,203.0
3439 +SYN2,2024-11-25T09:31:00Z,24.9238,24.9269,24.9039,24.9113,142.0
3440 +SYN2,2024-11-25T09:32:00Z,24.9113,24.9126,24.9,24.9015,28.0
3441 +SYN2,2024-11-25T09:33:00Z,24.9015,24.9153,24.9003,24.9104,2.0
3442 +SYN2,2024-11-25T09:36:00Z,24.9104,24.9285,24.9085,24.9238,179.0
3443 +SYN2,2024-11-25T09:37:00Z,24.9238,24.9249,24.8994,24.9006,191.0
3444 +SYN2,2024-11-25T09:41:00Z,24.9006,24.9256,24.8973,24.9211,143.0
3445 +SYN2,2024-11-25T09:42:00Z,24.9211,24.9225,24.8908,24.8928,267.0
3446 +SYN2,2024-11-25T09:43:00Z,24.8928,24.9204,24.8901,24.9194,274.0
3447 +SYN2,2024-11-25T09:44:00Z,24.9194,24.9212,24.909,24.9098,203.0
3448 +SYN2,2024-11-25T09:45:00Z,24.9098,24.9116,24.909,24.91,53.0
3449 +SYN2,2024-11-25T09:46:00Z,24.91,24.9106,24.8708,24.8722,28.0
3450 +SYN2,2024-11-25T09:47:00Z,24.8722,24.9005,24.8713,24.8983,15.0
3451 +SYN2,2024-11-25T09:48:00Z,24.8983,24.9009,24.8776,24.8783,58.0
3452 +SYN2,2024-11-25T09:50:00Z,24.8783,24.882,24.8781,24.8798,252.0
3453 +SYN2,2024-11-25T09:51:00Z,24.8798,24.8811,24.8548,24.8568,216.0
3454 +SYN2,2024-11-25T09:52:00Z,24.8568,24.8606,24.8455,24.8498,32.0
3455 +SYN2,2024-11-25T09:53:00Z,24.8498,24.8511,24.819,24.8191,190.0
3456 +SYN2,2024-11-25T09:55:00Z,24.8191,24.838,24.818,24.8328,263.0
3457 +SYN2,2024-11-25T09:57:00Z,24.8328,24.8443,24.8281,24.8422,16.0
3458 +SYN2,2024-11-25T09:58:00Z,24.8422,24.8534,24.84,24.8521,198.0
3459 +SYN2,2024-11-25T10:00:00Z,24.8521,24.8891,24.8512,24.8891,127.0
3460 +SYN2,2024-11-25T10:02:00Z,24.8891,24.8895,24.8847,24.8864,10.0
3461 +SYN2,2024-11-25T10:07:00Z,24.8864,24.8895,24.8761,24.8782,11.0
3462 +SYN2,2024-11-25T10:08:00Z,24.8782,24.8816,24.8571,24.8604,61.0
3463 +SYN2,2024-11-25T10:09:00Z,24.8604,24.8795,24.8575,24.8792,213.0
3464 +SYN2,2024-11-25T10:11:00Z,24.8792,24.8882,24.8737,24.8855,171.0
3465 +SYN2,2024-11-25T10:12:00Z,24.8855,24.8927,24.8807,24.8894,100.0
3466 +SYN2,2024-11-25T10:13:00Z,24.8894,24.9146,24.8886,24.9137,297.0
3467 +SYN2,2024-11-25T10:14:00Z,24.9137,24.9228,24.913,24.9228,54.0
3468 +SYN2,2024-11-25T10:15:00Z,24.9228,24.9241,24.9167,24.9178,57.0
3469 +SYN2,2024-11-25T10:17:00Z,24.9178,24.9264,24.9161,24.9246,81.0
3470 +SYN2,2024-11-25T10:22:00Z,24.9246,24.9314,24.919,24.9258,223.0
3471 +SYN2,2024-11-25T10:23:00Z,24.9258,24.9456,24.9238,24.9448,235.0
3472 +SYN2,2024-11-25T10:24:00Z,24.9448,24.9626,24.9446,24.961,181.0
3473 +SYN2,2024-11-25T10:26:00Z,24.961,24.9659,24.9589,24.9602,300.0
3474 +SYN2,2024-11-25T10:28:00Z,24.9602,24.9616,24.9276,24.9288,87.0
3475 +SYN2,2024-11-25T10:29:00Z,24.9288,24.9515,24.9247,24.9461,103.0
3476 +SYN2,2024-11-25T10:30:00Z,24.9461,24.961,24.9422,24.9567,188.0
3477 +SYN2,2024-11-25T10:34:00Z,24.9567,24.9576,24.9328,24.9337,122.0
3478 +SYN2,2024-11-25T10:35:00Z,24.9337,24.9505,24.9297,24.9477,263.0
3479 +SYN2,2024-11-25T10:37:00Z,24.9477,24.9518,24.9274,24.9302,190.0
3480 +SYN2,2024-11-25T10:38:00Z,24.9302,24.9413,24.9279,24.9402,224.0
3481 +SYN2,2024-11-25T10:39:00Z,24.9402,24.9446,24.9395,24.9438,43.0
3482 +SYN2,2024-11-25T10:40:00Z,24.9438,24.9484,24.9219,24.9245,71.0
3483 +SYN2,2024-11-25T10:43:00Z,24.9245,24.9637,24.9241,24.9582,277.0
3484 +SYN2,2024-11-25T10:45:00Z,24.9582,24.9963,24.9574,24.995,140.0
3485 +SYN2,2024-11-25T10:46:00Z,24.995,24.9968,24.9853,24.9863,138.0
3486 +SYN2,2024-11-25T10:47:00Z,24.9863,24.9938,24.9846,24.9921,162.0
3487 +SYN2,2024-11-25T10:49:00Z,24.9921,24.9935,24.9814,24.9861,22.0
3488 +SYN2,2024-11-25T10:50:00Z,24.9861,24.9879,24.9775,24.9808,95.0
3489 +SYN2,2024-11-25T10:52:00Z,24.9808,24.9809,24.9572,24.9609,30.0
3490 +SYN2,2024-11-25T10:57:00Z,24.9609,24.9705,24.9603,24.9678,161.0
3491 +SYN2,2024-11-25T10:59:00Z,24.9678,25.0032,24.964,25.0016,28.0
3492 +SYN2,2024-11-25T11:00:00Z,25.0016,25.0052,24.986,24.9883,274.0
3493 +SYN2,2024-11-25T11:02:00Z,24.9883,24.9956,24.9871,24.994,108.0
3494 +SYN2,2024-11-25T11:03:00Z,24.994,25.0051,24.9932,25.0021,273.0
3495 +SYN2,2024-11-25T11:04:00Z,25.0021,25.0076,24.9814,24.9826,10.0
3496 +SYN2,2024-11-25T11:05:00Z,24.9826,24.984,24.9471,24.9509,129.0
3497 +SYN2,2024-11-25T11:06:00Z,24.9509,24.9521,24.9049,24.9055,296.0
3498 +SYN2,2024-11-25T11:07:00Z,24.9055,24.9259,24.9038,24.921,2.0
3499 +SYN2,2024-11-25T11:09:00Z,24.921,24.9212,24.9092,24.9135,171.0
3500 +SYN2,2024-11-25T11:10:00Z,24.9135,24.9153,24.9101,24.9122,221.0
3501 +SYN2,2024-11-25T11:11:00Z,24.9122,24.9192,24.9106,24.9185,97.0
3502 +SYN2,2024-11-25T11:13:00Z,24.9185,24.9362,24.9166,24.9353,135.0
3503 +SYN2,2024-11-25T11:14:00Z,24.9353,24.9384,24.9336,24.9371,288.0
3504 +SYN2,2024-11-25T11:16:00Z,24.9371,24.9796,24.9368,24.9774,266.0
3505 +SYN2,2024-11-25T11:18:00Z,24.9774,24.9776,24.9587,24.9598,268.0
3506 +SYN2,2024-11-25T11:24:00Z,24.9598,24.9616,24.9492,24.9515,147.0
3507 +SYN2,2024-11-25T11:28:00Z,24.9515,24.9743,24.9498,24.9727,23.0
3508 +SYN2,2024-11-25T11:30:00Z,24.9727,24.9895,24.9714,24.9875,53.0
3509 +SYN2,2024-11-25T11:31:00Z,24.9875,24.9892,24.9717,24.9742,296.0
3510 +SYN2,2024-11-25T11:32:00Z,24.9742,24.9881,24.9737,24.9867,86.0
3511 +SYN2,2024-11-25T11:33:00Z,24.9867,24.9883,24.9614,24.9632,110.0
3512 +SYN2,2024-11-25T11:35:00Z,24.9632,24.976,24.9604,24.9747,36.0
3513 +SYN2,2024-11-25T11:37:00Z,24.9747,24.9759,24.9683,24.9713,197.0
3514 +SYN2,2024-11-25T11:38:00Z,24.9713,24.973,24.9376,24.9439,54.0
3515 +SYN2,2024-11-25T11:40:00Z,24.9439,24.9451,24.9193,24.9226,93.0
3516 +SYN2,2024-11-25T11:43:00Z,24.9226,24.9252,24.9203,24.9238,253.0
3517 +SYN2,2024-11-25T11:50:00Z,24.9238,24.9318,24.9231,24.9291,281.0
3518 +SYN2,2024-11-25T11:51:00Z,24.9291,24.9299,24.9204,24.9208,37.0
3519 +SYN2,2024-11-25T11:52:00Z,24.9208,24.9456,24.9191,24.9453,265.0
3520 +SYN2,2024-11-25T11:54:00Z,24.9453,24.9469,24.9393,24.9407,217.0
3521 +SYN2,2024-11-25T11:55:00Z,24.9407,24.9693,24.9378,24.9665,205.0
3522 +SYN2,2024-11-25T11:56:00Z,24.9665,24.9896,24.9624,24.987,175.0
3523 +SYN2,2024-11-25T11:57:00Z,24.987,24.9882,24.9444,24.9481,138.0
3524 +SYN2,2024-11-25T11:59:00Z,24.9481,24.9711,24.9464,24.9697,56.0
3525 +SYN2,2024-11-25T12:00:00Z,24.9697,24.9708,24.9645,24.9678,138.0
3526 +SYN2,2024-11-25T12:01:00Z,24.9678,24.9748,24.9615,24.9731,154.0
3527 +SYN2,2024-11-25T12:03:00Z,24.9731,24.974,24.9546,24.9572,220.0
3528 +SYN2,2024-11-25T12:04:00Z,24.9572,24.962,24.9371,24.9378,103.0
3529 +SYN2,2024-11-25T12:05:00Z,24.9378,24.953,24.9338,24.9513,173.0
3530 +SYN2,2024-11-25T12:06:00Z,24.9513,24.9577,24.9507,24.9571,222.0
3531 +SYN2,2024-11-25T12:08:00Z,24.9571,24.9593,24.9336,24.934,136.0
3532 +SYN2,2024-11-25T12:09:00Z,24.934,24.9369,24.9327,24.9364,138.0
3533 +SYN2,2024-11-25T12:12:00Z,24.9364,24.9375,24.9052,24.9066,14.0
3534 +SYN2,2024-11-25T12:13:00Z,24.9066,24.9335,24.9042,24.9294,196.0
3535 +SYN2,2024-11-25T12:14:00Z,24.9294,24.942,24.9275,24.9387,98.0
3536 +SYN2,2024-11-25T12:16:00Z,24.9387,24.9463,24.9376,24.9462,169.0
3537 +SYN2,2024-11-25T12:17:00Z,24.9462,24.9589,24.9422,24.9557,168.0
3538 +SYN2,2024-11-25T12:20:00Z,24.9557,24.9568,24.8987,24.9003,296.0
3539 +SYN2,2024-11-25T12:22:00Z,24.9003,24.9006,24.8888,24.8899,91.0
3540 +SYN2,2024-11-25T12:24:00Z,24.8899,24.8902,24.8824,24.8848,101.0
3541 +SYN2,2024-11-25T12:25:00Z,24.8848,24.8854,24.8721,24.8752,247.0
3542 +SYN2,2024-11-25T12:26:00Z,24.8752,24.8845,24.8706,24.8845,182.0
3543 +SYN2,2024-11-25T12:31:00Z,24.8845,24.9159,24.8843,24.9148,174.0
3544 +SYN2,2024-11-25T12:32:00Z,24.9148,24.9151,24.9048,24.9049,294.0
3545 +SYN2,2024-11-25T12:33:00Z,24.9049,24.9087,24.8792,24.8818,163.0
3546 +SYN2,2024-11-25T12:34:00Z,24.8818,24.8882,24.8782,24.8878,145.0
3547 +SYN2,2024-11-25T12:35:00Z,24.8878,24.8908,24.8742,24.8778,53.0
3548 +SYN2,2024-11-25T12:39:00Z,24.8778,24.9054,24.8772,24.9031,176.0
3549 +SYN2,2024-11-25T12:42:00Z,24.9031,24.9031,24.8835,24.8857,167.0
3550 +SYN2,2024-11-25T12:48:00Z,24.8857,24.9099,24.8809,24.9056,102.0
3551 +SYN2,2024-11-25T12:49:00Z,24.9056,24.9086,24.8796,24.8798,99.0
3552 +SYN2,2024-11-25T12:50:00Z,24.8798,24.8805,24.8558,24.8578,62.0
3553 +SYN2,2024-11-25T12:52:00Z,24.8578,24.86,24.8534,24.8555,92.0
3554 +SYN2,2024-11-25T12:54:00Z,24.8555,24.8655,24.8515,24.8624,292.0
3555 +SYN2,2024-11-25T12:58:00Z,24.8624,24.8685,24.8623,24.8668,213.0
3556 +SYN2,2024-11-25T12:59:00Z,24.8668,24.8684,24.835,24.8374,273.0
3557 +SYN2,2024-11-25T13:00:00Z,24.8374,24.838,24.8169,24.8196,12.0
3558 +SYN2,2024-11-25T13:03:00Z,24.8196,24.8457,24.8194,24.8421,244.0
3559 +SYN2,2024-11-25T13:05:00Z,24.8421,24.8429,24.8024,24.8043,260.0
3560 +SYN2,2024-11-25T13:06:00Z,24.8043,24.8355,24.8011,24.8341,57.0
3561 +SYN2,2024-11-25T13:08:00Z,24.8341,24.8388,24.8073,24.8089,72.0
3562 +SYN2,2024-11-25T13:11:00Z,24.8089,24.8104,24.7896,24.7899,56.0
3563 +SYN2,2024-11-25T13:14:00Z,24.7899,24.8159,24.7889,24.8126,75.0
3564 +SYN2,2024-11-25T13:16:00Z,24.8126,24.8139,24.8033,24.8036,114.0
3565 +SYN2,2024-11-25T13:17:00Z,24.8036,24.8087,24.7855,24.787,228.0
3566 +SYN2,2024-11-25T13:20:00Z,24.787,24.7946,24.7858,24.7937,119.0
3567 +SYN2,2024-11-25T13:22:00Z,24.7937,24.8197,24.7928,24.8189,168.0
3568 +SYN2,2024-11-25T13:24:00Z,24.8189,24.8346,24.8165,24.8334,297.0
3569 +SYN2,2024-11-25T13:30:00Z,24.8334,24.8367,24.7976,24.8017,126.0
3570 +SYN2,2024-11-25T13:33:00Z,24.8017,24.8059,24.7918,24.7936,238.0
3571 +SYN2,2024-11-25T13:34:00Z,24.7936,24.7985,24.7921,24.7934,230.0
3572 +SYN2,2024-11-25T13:35:00Z,24.7934,24.7954,24.7678,24.7692,63.0
3573 +SYN2,2024-11-25T13:37:00Z,24.7692,24.811,24.7633,24.8093,281.0
3574 +SYN2,2024-11-25T13:38:00Z,24.8093,24.8133,24.7841,24.7856,242.0
3575 +SYN2,2024-11-25T13:41:00Z,24.7856,24.7858,24.7692,24.7725,71.0
3576 +SYN2,2024-11-25T13:42:00Z,24.7725,24.7931,24.7676,24.7918,172.0
3577 +SYN2,2024-11-25T13:43:00Z,24.7918,24.793,24.7897,24.7926,282.0
3578 +SYN2,2024-11-25T13:45:00Z,24.7926,24.7959,24.7721,24.7733,129.0
3579 +SYN2,2024-11-25T13:47:00Z,24.7733,24.7877,24.7716,24.7866,296.0
3580 +SYN2,2024-11-25T13:48:00Z,24.7866,24.7909,24.7764,24.7769,42.0
3581 +SYN2,2024-11-25T13:49:00Z,24.7769,24.795,24.7747,24.7936,31.0
3582 +SYN2,2024-11-25T13:51:00Z,24.7936,24.7941,24.7602,24.7633,37.0
3583 +SYN2,2024-11-25T13:52:00Z,24.7633,24.7651,24.7561,24.7586,199.0
3584 +SYN2,2024-11-25T13:53:00Z,24.7586,24.7591,24.7567,24.7589,297.0
3585 +SYN2,2024-11-25T13:55:00Z,24.7589,24.7659,24.758,24.7619,123.0
3586 +SYN2,2024-11-25T13:59:00Z,24.7619,24.7684,24.7594,24.7663,110.0
3587 +SYN2,2024-11-25T14:01:00Z,24.7663,24.7683,24.7563,24.7596,157.0
3588 +SYN2,2024-11-25T14:03:00Z,24.7596,24.7772,24.7586,24.774,52.0
3589 +SYN2,2024-11-25T14:04:00Z,24.774,24.7896,24.7735,24.7882,129.0
3590 +SYN2,2024-11-25T14:05:00Z,24.7882,24.8098,24.7851,24.8086,61.0
3591 +SYN2,2024-11-25T14:09:00Z,24.8086,24.811,24.7635,24.7642,182.0
3592 +SYN2,2024-11-25T14:11:00Z,24.7642,24.7667,24.7628,24.7646,238.0
3593 +SYN2,2024-11-25T14:12:00Z,24.7646,24.7654,24.7552,24.7606,223.0
3594 +SYN2,2024-11-25T14:14:00Z,24.7606,24.7661,24.7561,24.7568,133.0
3595 +SYN2,2024-11-25T14:15:00Z,24.7568,24.758,24.7371,24.7401,33.0
3596 +SYN2,2024-11-25T14:17:00Z,24.7401,24.7512,24.7384,24.7507,143.0
3597 +SYN2,2024-11-25T14:18:00Z,24.7507,24.7515,24.7163,24.7177,199.0
3598 +SYN2,2024-11-25T14:19:00Z,24.7177,24.7467,24.7173,24.7431,155.0
3599 +SYN2,2024-11-25T14:20:00Z,24.7431,24.746,24.7374,24.7391,40.0
3600 +SYN2,2024-11-25T14:21:00Z,24.7391,24.752,24.738,24.7461,97.0
3601 +SYN2,2024-11-25T14:22:00Z,24.7461,24.7541,24.7436,24.7538,172.0
3602 +SYN2,2024-11-25T14:24:00Z,24.7538,24.7621,24.7525,24.7618,71.0
3603 +SYN2,2024-11-25T14:26:00Z,24.7618,24.7848,24.7592,24.7835,43.0
3604 +SYN2,2024-11-25T14:29:00Z,24.7835,24.7886,24.7821,24.7865,36.0
3605 +SYN2,2024-11-25T14:30:00Z,24.7865,24.7872,24.7371,24.7421,2451.0
3606 +SYN2,2024-11-25T14:31:00Z,24.7421,24.7805,24.742,24.7776,580.0
3607 +SYN2,2024-11-25T14:32:00Z,24.7776,24.7782,24.7611,24.7629,2119.0
3608 +SYN2,2024-11-25T14:33:00Z,24.7629,24.7674,24.7524,24.756,2764.0
3609 +SYN2,2024-11-25T14:35:00Z,24.756,24.8582,24.7505,24.8574,4129.0
3610 +SYN2,2024-11-25T14:36:00Z,24.8574,24.8864,24.8566,24.8837,2207.0
3611 +SYN2,2024-11-25T14:37:00Z,24.8837,24.8998,24.8834,24.8995,1560.0
3612 +SYN2,2024-11-25T14:38:00Z,24.8995,24.9267,24.8972,24.9204,1676.0
3613 +SYN2,2024-11-25T14:40:00Z,24.9204,24.9375,24.9187,24.9358,675.0
3614 +SYN2,2024-11-25T14:41:00Z,24.9358,24.9688,24.9345,24.9684,4972.0
3615 +SYN2,2024-11-25T14:42:00Z,24.9684,24.9735,24.9615,24.9644,2697.0
3616 +SYN2,2024-11-25T14:43:00Z,24.9644,24.9922,24.9635,24.9875,842.0
3617 +SYN2,2024-11-25T14:44:00Z,24.9875,24.9922,24.9605,24.9631,4354.0
3618 +SYN2,2024-11-25T14:45:00Z,24.9631,24.9691,24.9627,24.9659,104.0
3619 +SYN2,2024-11-25T14:46:00Z,24.9659,25.0115,24.964,25.0109,2742.0
3620 +SYN2,2024-11-25T14:47:00Z,25.0109,25.0134,24.9987,25.0024,4634.0
3621 +SYN2,2024-11-25T14:48:00Z,25.0024,25.0045,24.9647,24.9663,2538.0
3622 +SYN2,2024-11-25T14:49:00Z,24.9663,24.9764,24.9659,24.9747,3537.0
3623 +SYN2,2024-11-25T14:50:00Z,24.9747,25.0075,24.9746,25.0075,402.0
3624 +SYN2,2024-11-25T14:51:00Z,25.0075,25.032,25.0074,25.0282,566.0
3625 +SYN2,2024-11-25T14:52:00Z,25.0282,25.03,24.9417,24.9439,4768.0
3626 +SYN2,2024-11-25T14:53:00Z,24.9439,24.9474,24.9438,24.9446,2108.0
3627 +SYN2,2024-11-25T14:54:00Z,24.9446,24.9692,24.9441,24.9687,3246.0
3628 +SYN2,2024-11-25T14:56:00Z,24.9687,25.026,24.962,25.0223,3568.0
3629 +SYN2,2024-11-25T14:57:00Z,25.0223,25.0231,25.0096,25.0109,3995.0
3630 +SYN2,2024-11-25T14:58:00Z,25.0109,25.0527,25.0107,25.0524,451.0
3631 +SYN2,2024-11-25T14:59:00Z,25.0524,25.0734,25.052,25.0718,2554.0
3632 +SYN2,2024-11-25T15:00:00Z,25.0718,25.0732,25.0683,25.0717,2406.0
3633 +SYN2,2024-11-25T15:01:00Z,25.0717,25.0723,25.0312,25.0315,3842.0
3634 +SYN2,2024-11-25T15:02:00Z,25.0315,25.0324,24.9851,24.9854,3702.0
3635 +SYN2,2024-11-25T15:03:00Z,24.9854,24.9907,24.9607,24.9631,1095.0
3636 +SYN2,2024-11-25T15:04:00Z,24.9631,25.0205,24.9604,25.0196,1394.0
3637 +SYN2,2024-11-25T15:05:00Z,25.0196,25.0202,25.0053,25.0077,4431.0
3638 +SYN2,2024-11-25T15:06:00Z,25.0077,25.0798,25.0064,25.0772,237.0
3639 +SYN2,2024-11-25T15:07:00Z,25.0772,25.0959,25.0769,25.0952,3302.0
3640 +SYN2,2024-11-25T15:08:00Z,25.0952,25.1144,25.0909,25.1142,1544.0
3641 +SYN2,2024-11-25T15:09:00Z,25.1142,25.1652,25.1106,25.1629,4281.0
3642 +SYN2,2024-11-25T15:10:00Z,25.1629,25.169,25.1426,25.1475,1211.0
3643 +SYN2,2024-11-25T15:11:00Z,25.1475,25.1493,25.1337,25.1376,1105.0
3644 +SYN2,2024-11-25T15:12:00Z,25.1376,25.1386,25.0714,25.0741,382.0
3645 +SYN2,2024-11-25T15:13:00Z,25.0741,25.1299,25.0683,25.1299,4313.0
3646 +SYN2,2024-11-25T15:14:00Z,25.1299,25.1571,25.1253,25.1568,4881.0
3647 +SYN2,2024-11-25T15:15:00Z,25.1568,25.2125,25.1555,25.2111,4364.0
3648 +SYN2,2024-11-25T15:16:00Z,25.2111,25.2345,25.2099,25.2316,4215.0
3649 +SYN2,2024-11-25T15:17:00Z,25.2316,25.2319,25.2308,25.231,1544.0
3650 +SYN2,2024-11-25T15:18:00Z,25.231,25.2648,25.2308,25.2642,2043.0
3651 +SYN2,2024-11-25T15:19:00Z,25.2642,25.2821,25.2626,25.2812,551.0
3652 +SYN2,2024-11-25T15:20:00Z,25.2812,25.3043,25.2808,25.3034,240.0
3653 +SYN2,2024-11-25T15:21:00Z,25.3034,25.3037,25.267,25.2718,1146.0
3654 +SYN2,2024-11-25T15:22:00Z,25.2718,25.2763,25.2434,25.2468,3103.0
3655 +SYN2,2024-11-25T15:23:00Z,25.2468,25.2532,25.2458,25.2517,2188.0
3656 +SYN2,2024-11-25T15:24:00Z,25.2517,25.2891,25.251,25.2867,3683.0
3657 +SYN2,2024-11-25T15:25:00Z,25.2867,25.3345,25.2849,25.3328,1515.0
3658 +SYN2,2024-11-25T15:26:00Z,25.3328,25.3373,25.3081,25.3128,3264.0
3659 +SYN2,2024-11-25T15:27:00Z,25.3128,25.3159,25.3003,25.3013,4953.0
3660 +SYN2,2024-11-25T15:28:00Z,25.3013,25.3114,25.3005,25.3053,1138.0
3661 +SYN2,2024-11-25T15:29:00Z,25.3053,25.3082,25.2455,25.2496,1808.0
3662 +SYN2,2024-11-25T15:30:00Z,25.2496,25.309,25.2484,25.3078,527.0
3663 +SYN2,2024-11-25T15:31:00Z,25.3078,25.3655,25.3061,25.3647,3426.0
3664 +SYN2,2024-11-25T15:32:00Z,25.3647,25.3666,25.3053,25.3067,3728.0
3665 +SYN2,2024-11-25T15:33:00Z,25.3067,25.3234,25.3057,25.3197,3340.0
3666 +SYN2,2024-11-25T15:34:00Z,25.3197,25.3393,25.3181,25.3366,2021.0
3667 +SYN2,2024-11-25T15:35:00Z,25.3366,25.3369,25.2853,25.2854,2783.0
3668 +SYN2,2024-11-25T15:36:00Z,25.2854,25.2864,25.2128,25.2139,2302.0
3669 +SYN2,2024-11-25T15:37:00Z,25.2139,25.2418,25.2117,25.2416,813.0
3670 +SYN2,2024-11-25T15:38:00Z,25.2416,25.2416,25.2187,25.2218,888.0
3671 +SYN2,2024-11-25T15:39:00Z,25.2218,25.2224,25.171,25.1715,4315.0
3672 +SYN2,2024-11-25T15:41:00Z,25.1715,25.1881,25.1694,25.187,3966.0
3673 +SYN2,2024-11-25T15:42:00Z,25.187,25.2595,25.1866,25.2557,3897.0
3674 +SYN2,2024-11-25T15:43:00Z,25.2557,25.258,25.2261,25.2271,2902.0
3675 +SYN2,2024-11-25T15:44:00Z,25.2271,25.2395,25.2252,25.238,3647.0
3676 +SYN2,2024-11-25T15:45:00Z,25.238,25.2399,25.1866,25.188,1630.0
3677 +SYN2,2024-11-25T15:46:00Z,25.188,25.1887,25.1538,25.1558,348.0
3678 +SYN2,2024-11-25T15:47:00Z,25.1558,25.1594,25.1409,25.1422,2072.0
3679 +SYN2,2024-11-25T15:48:00Z,25.1422,25.1424,25.0546,25.0579,4423.0
3680 +SYN2,2024-11-25T15:49:00Z,25.0579,25.0592,25.0243,25.0266,2250.0
3681 +SYN2,2024-11-25T15:50:00Z,25.0266,25.0698,25.0238,25.0696,4257.0
3682 +SYN2,2024-11-25T15:51:00Z,25.0696,25.071,25.0462,25.0485,606.0
3683 +SYN2,2024-11-25T15:52:00Z,25.0485,25.0915,25.0463,25.089,701.0
3684 +SYN2,2024-11-25T15:53:00Z,25.089,25.0911,25.0244,25.0268,218.0
3685 +SYN2,2024-11-25T15:54:00Z,25.0268,25.0698,25.0256,25.0679,4952.0
3686 +SYN2,2024-11-25T15:55:00Z,25.0679,25.0689,25.0366,25.0366,4852.0
3687 +SYN2,2024-11-25T15:56:00Z,25.0366,25.0379,24.9168,24.9178,1525.0
3688 +SYN2,2024-11-25T15:57:00Z,24.9178,24.9512,24.9147,24.9478,1538.0
3689 +SYN2,2024-11-25T15:58:00Z,24.9478,24.9545,24.9469,24.9512,1754.0
3690 +SYN2,2024-11-25T15:59:00Z,24.9512,24.9874,24.9502,24.9847,3177.0
3691 +SYN2,2024-11-25T16:00:00Z,24.9847,25.0005,24.9845,24.9975,1313.0
3692 +SYN2,2024-11-25T16:01:00Z,24.9975,25.0045,24.9962,25.0032,1603.0
3693 +SYN2,2024-11-25T16:02:00Z,25.0032,25.0048,24.9666,24.9698,297.0
3694 +SYN2,2024-11-25T16:03:00Z,24.9698,25.0102,24.9677,25.0072,4947.0
3695 +SYN2,2024-11-25T16:04:00Z,25.0072,25.0272,25.0072,25.0242,4475.0
3696 +SYN2,2024-11-25T16:05:00Z,25.0242,25.0242,25.0046,25.0087,4277.0
3697 +SYN2,2024-11-25T16:06:00Z,25.0087,25.0208,25.0062,25.0179,4825.0
3698 +SYN2,2024-11-25T16:07:00Z,25.0179,25.0211,24.9151,24.9168,2577.0
3699 +SYN2,2024-11-25T16:08:00Z,24.9168,24.9328,24.9138,24.9325,4333.0
3700 +SYN2,2024-11-25T16:09:00Z,24.9325,24.9377,24.8854,24.8872,3774.0
3701 +SYN2,2024-11-25T16:10:00Z,24.8872,24.9409,24.8835,24.9399,2904.0
3702 +SYN2,2024-11-25T16:11:00Z,24.9399,24.9418,24.9016,24.9039,1367.0
3703 +SYN2,2024-11-25T16:12:00Z,24.9039,24.911,24.9019,24.9076,3591.0
3704 +SYN2,2024-11-25T16:13:00Z,24.9076,24.9619,24.9075,24.9584,3548.0
3705 +SYN2,2024-11-25T16:14:00Z,24.9584,24.9592,24.9422,24.9442,4897.0
3706 +SYN2,2024-11-25T16:15:00Z,24.9442,24.9681,24.9427,24.9663,4367.0
3707 +SYN2,2024-11-25T16:16:00Z,24.9663,25.0226,24.9655,25.0206,3390.0
3708 +SYN2,2024-11-25T16:17:00Z,25.0206,25.0209,25.0066,25.0073,3711.0
3709 +SYN2,2024-11-25T16:18:00Z,25.0073,25.0213,25.0068,25.0192,4204.0
3710 +SYN2,2024-11-25T16:19:00Z,25.0192,25.0234,25.0076,25.0102,985.0
3711 +SYN2,2024-11-25T16:20:00Z,25.0102,25.0526,25.0098,25.0498,4047.0
3712 +SYN2,2024-11-25T16:21:00Z,25.0498,25.051,25.0451,25.0461,218.0
3713 +SYN2,2024-11-25T16:22:00Z,25.0461,25.0474,25.0439,25.0441,1689.0
3714 +SYN2,2024-11-25T16:23:00Z,25.0441,25.0445,24.979,24.9794,4336.0
3715 +SYN2,2024-11-25T16:24:00Z,24.9794,25.0194,24.9771,25.0163,4827.0
3716 +SYN2,2024-11-25T16:25:00Z,25.0163,25.0508,25.0163,25.0481,3333.0
3717 +SYN2,2024-11-25T16:26:00Z,25.0481,25.0727,25.0447,25.0696,1663.0
3718 +SYN2,2024-11-25T16:27:00Z,25.0696,25.1318,25.0688,25.1283,3713.0
3719 +SYN2,2024-11-25T16:28:00Z,25.1283,25.1838,25.1268,25.1785,3624.0
3720 +SYN2,2024-11-25T16:29:00Z,25.1785,25.1829,25.1705,25.1728,734.0
3721 +SYN2,2024-11-25T16:30:00Z,25.1728,25.1748,25.147,25.1488,1897.0
3722 +SYN2,2024-11-25T16:31:00Z,25.1488,25.1538,25.1453,25.1515,4648.0
3723 +SYN2,2024-11-25T16:32:00Z,25.1515,25.1623,25.1506,25.1617,2434.0
3724 +SYN2,2024-11-25T16:33:00Z,25.1617,25.1618,25.1106,25.1123,158.0
3725 +SYN2,2024-11-25T16:34:00Z,25.1123,25.1162,25.0994,25.1009,2052.0
3726 +SYN2,2024-11-25T16:35:00Z,25.1009,25.1107,25.0966,25.1091,139.0
3727 +SYN2,2024-11-25T16:37:00Z,25.1091,25.1314,25.1054,25.1302,2282.0
3728 +SYN2,2024-11-25T16:38:00Z,25.1302,25.1342,25.1264,25.1328,253.0
3729 +SYN2,2024-11-25T16:39:00Z,25.1328,25.1552,25.1323,25.1514,1409.0
3730 +SYN2,2024-11-25T16:40:00Z,25.1514,25.1537,25.1057,25.109,4981.0
3731 +SYN2,2024-11-25T16:41:00Z,25.109,25.162,25.1087,25.1601,1719.0
3732 +SYN2,2024-11-25T16:42:00Z,25.1601,25.1975,25.1572,25.192,854.0
3733 +SYN2,2024-11-25T16:43:00Z,25.192,25.1929,25.1617,25.1623,445.0
3734 +SYN2,2024-11-25T16:44:00Z,25.1623,25.1628,25.1343,25.1367,994.0
3735 +SYN2,2024-11-25T16:45:00Z,25.1367,25.1534,25.1356,25.1525,163.0
3736 +SYN2,2024-11-25T16:46:00Z,25.1525,25.1537,25.0924,25.0936,1047.0
3737 +SYN2,2024-11-25T16:47:00Z,25.0936,25.0957,25.0898,25.0906,2778.0
3738 +SYN2,2024-11-25T16:48:00Z,25.0906,25.1228,25.0898,25.1216,4334.0
3739 +SYN2,2024-11-25T16:50:00Z,25.1216,25.1349,25.1189,25.1283,1317.0
3740 +SYN2,2024-11-25T16:51:00Z,25.1283,25.1367,25.1276,25.1316,3853.0
3741 +SYN2,2024-11-25T16:52:00Z,25.1316,25.1352,25.1314,25.1324,2033.0
3742 +SYN2,2024-11-25T16:53:00Z,25.1324,25.1324,25.1227,25.1259,3058.0
3743 +SYN2,2024-11-25T16:54:00Z,25.1259,25.1453,25.122,25.1451,3508.0
3744 +SYN2,2024-11-25T16:55:00Z,25.1451,25.1952,25.1429,25.1947,4148.0
3745 +SYN2,2024-11-25T16:56:00Z,25.1947,25.1961,25.1334,25.1364,4677.0
3746 +SYN2,2024-11-25T16:57:00Z,25.1364,25.1387,25.0925,25.0997,3645.0
3747 +SYN2,2024-11-25T16:58:00Z,25.0997,25.1068,25.0993,25.1052,1541.0
3748 +SYN2,2024-11-25T16:59:00Z,25.1052,25.1482,25.1044,25.1465,1610.0
3749 +SYN2,2024-11-25T17:00:00Z,25.1465,25.1508,25.1445,25.1508,2759.0
3750 +SYN2,2024-11-25T17:01:00Z,25.1508,25.1745,25.1485,25.1708,3868.0
3751 +SYN2,2024-11-25T17:02:00Z,25.1708,25.172,25.1654,25.1662,4930.0
3752 +SYN2,2024-11-25T17:03:00Z,25.1662,25.2046,25.1644,25.2032,2542.0
3753 +SYN2,2024-11-25T17:04:00Z,25.2032,25.2567,25.2025,25.2525,297.0
3754 +SYN2,2024-11-25T17:05:00Z,25.2525,25.2677,25.2511,25.2664,3780.0
3755 +SYN2,2024-11-25T17:06:00Z,25.2664,25.3028,25.2646,25.298,1774.0
3756 +SYN2,2024-11-25T17:07:00Z,25.298,25.3067,25.2976,25.3037,1714.0
3757 +SYN2,2024-11-25T17:08:00Z,25.3037,25.3075,25.2422,25.2426,3357.0
3758 +SYN2,2024-11-25T17:09:00Z,25.2426,25.2561,25.2424,25.2552,2274.0
3759 +SYN2,2024-11-25T17:10:00Z,25.2552,25.2865,25.2533,25.2837,590.0
3760 +SYN2,2024-11-25T17:11:00Z,25.2837,25.2849,25.2681,25.2696,678.0
3761 +SYN2,2024-11-25T17:12:00Z,25.2696,25.3241,25.2684,25.3202,1247.0
3762 +SYN2,2024-11-25T17:13:00Z,25.3202,25.3217,25.2927,25.2935,4814.0
3763 +SYN2,2024-11-25T17:14:00Z,25.2935,25.308,25.2918,25.3075,628.0
3764 +SYN2,2024-11-25T17:15:00Z,25.3075,25.3258,25.3014,25.3215,2317.0
3765 +SYN2,2024-11-25T17:16:00Z,25.3215,25.3518,25.3131,25.3515,4954.0
3766 +SYN2,2024-11-25T17:17:00Z,25.3515,25.3545,25.3113,25.3141,2413.0
3767 +SYN2,2024-11-25T17:18:00Z,25.3141,25.3145,25.2838,25.2843,4575.0
3768 +SYN2,2024-11-25T17:19:00Z,25.2843,25.3076,25.2806,25.3059,4571.0
3769 +SYN2,2024-11-25T17:20:00Z,25.3059,25.3101,25.3051,25.3098,661.0
3770 +SYN2,2024-11-25T17:21:00Z,25.3098,25.312,25.2543,25.2571,2932.0
3771 +SYN2,2024-11-25T17:22:00Z,25.2571,25.2589,25.2267,25.2288,2742.0
3772 +SYN2,2024-11-25T17:23:00Z,25.2288,25.2337,25.2283,25.2313,4940.0
3773 +SYN2,2024-11-25T17:24:00Z,25.2313,25.2357,25.2285,25.2299,1989.0
3774 +SYN2,2024-11-25T17:25:00Z,25.2299,25.2999,25.2299,25.299,1154.0
3775 +SYN2,2024-11-25T17:26:00Z,25.299,25.3051,25.2885,25.2907,3328.0
3776 +SYN2,2024-11-25T17:27:00Z,25.2907,25.2915,25.2578,25.2606,467.0
3777 +SYN2,2024-11-25T17:28:00Z,25.2606,25.2975,25.2582,25.2952,1592.0
3778 +SYN2,2024-11-25T17:29:00Z,25.2952,25.3949,25.2942,25.3918,3648.0
3779 +SYN2,2024-11-25T17:30:00Z,25.3918,25.3933,25.375,25.3765,1899.0
3780 +SYN2,2024-11-25T17:31:00Z,25.3765,25.3766,25.338,25.3439,2045.0
3781 +SYN2,2024-11-25T17:32:00Z,25.3439,25.3451,25.3436,25.3446,4175.0
3782 +SYN2,2024-11-25T17:33:00Z,25.3446,25.346,25.339,25.3393,4211.0
3783 +SYN2,2024-11-25T17:34:00Z,25.3393,25.3401,25.3331,25.3358,2143.0
3784 +SYN2,2024-11-25T17:35:00Z,25.3358,25.3371,25.3309,25.3325,1827.0
3785 +SYN2,2024-11-25T17:36:00Z,25.3325,25.3599,25.3315,25.359,4758.0
3786 +SYN2,2024-11-25T17:37:00Z,25.359,25.3635,25.2862,25.2892,4980.0
3787 +SYN2,2024-11-25T17:38:00Z,25.2892,25.2904,25.2702,25.2716,1206.0
3788 +SYN2,2024-11-25T17:39:00Z,25.2716,25.3696,25.269,25.365,3438.0
3789 +SYN2,2024-11-25T17:40:00Z,25.365,25.3664,25.2978,25.3018,3824.0
3790 +SYN2,2024-11-25T17:41:00Z,25.3018,25.3068,25.2529,25.2534,2062.0
3791 +SYN2,2024-11-25T17:42:00Z,25.2534,25.255,25.1993,25.2015,1232.0
3792 +SYN2,2024-11-25T17:43:00Z,25.2015,25.2062,25.0862,25.0879,4773.0
3793 +SYN2,2024-11-25T17:44:00Z,25.0879,25.0889,25.0521,25.0539,1571.0
3794 +SYN2,2024-11-25T17:45:00Z,25.0539,25.0931,25.0538,25.0917,3857.0
3795 +SYN2,2024-11-25T17:46:00Z,25.0917,25.16,25.0907,25.1566,2469.0
3796 +SYN2,2024-11-25T17:47:00Z,25.1566,25.2688,25.155,25.2628,4904.0
3797 +SYN2,2024-11-25T17:48:00Z,25.2628,25.2727,25.2606,25.2706,3992.0
3798 +SYN2,2024-11-25T17:49:00Z,25.2706,25.2715,25.2422,25.2427,2917.0
3799 +SYN2,2024-11-25T17:50:00Z,25.2427,25.2798,25.2423,25.279,4740.0
3800 +SYN2,2024-11-25T17:51:00Z,25.279,25.2941,25.2771,25.2902,578.0
3801 +SYN2,2024-11-25T17:52:00Z,25.2902,25.3677,25.2863,25.3677,1144.0
3802 +SYN2,2024-11-25T17:54:00Z,25.3677,25.3758,25.3651,25.3733,4652.0
3803 +SYN2,2024-11-25T17:55:00Z,25.3733,25.4013,25.3693,25.4004,3716.0
3804 +SYN2,2024-11-25T17:56:00Z,25.4004,25.4015,25.344,25.3451,3804.0
3805 +SYN2,2024-11-25T17:57:00Z,25.3451,25.3467,25.3318,25.3337,2684.0
3806 +SYN2,2024-11-25T17:58:00Z,25.3337,25.3793,25.3315,25.3785,4053.0
3807 +SYN2,2024-11-25T17:59:00Z,25.3785,25.4042,25.3748,25.4034,2145.0
3808 +SYN2,2024-11-25T18:00:00Z,25.4034,25.4035,25.3899,25.3922,1339.0
3809 +SYN2,2024-11-25T18:01:00Z,25.3922,25.4034,25.3904,25.4019,3321.0
3810 +SYN2,2024-11-25T18:02:00Z,25.4019,25.4061,25.3807,25.3819,4598.0
3811 +SYN2,2024-11-25T18:03:00Z,25.3819,25.4033,25.3799,25.4021,2316.0
3812 +SYN2,2024-11-25T18:04:00Z,25.4021,25.4232,25.4019,25.4211,157.0
3813 +SYN2,2024-11-25T18:05:00Z,25.4211,25.4624,25.4199,25.4623,1917.0
3814 +SYN2,2024-11-25T18:06:00Z,25.4623,25.4666,25.4614,25.4656,3807.0
3815 +SYN2,2024-11-25T18:07:00Z,25.4656,25.4778,25.4597,25.4748,3504.0
3816 +SYN2,2024-11-25T18:08:00Z,25.4748,25.5199,25.4718,25.5185,2138.0
3817 +SYN2,2024-11-25T18:09:00Z,25.5185,25.5608,25.5184,25.5596,1625.0
3818 +SYN2,2024-11-25T18:10:00Z,25.5596,25.5804,25.5588,25.5788,4807.0
3819 +SYN2,2024-11-25T18:11:00Z,25.5788,25.6077,25.5788,25.6072,598.0
3820 +SYN2,2024-11-25T18:12:00Z,25.6072,25.6182,25.6052,25.6173,2857.0
3821 +SYN2,2024-11-25T18:13:00Z,25.6173,25.622,25.6159,25.6215,4233.0
3822 +SYN2,2024-11-25T18:15:00Z,25.6215,25.6504,25.6194,25.6476,413.0
3823 +SYN2,2024-11-25T18:16:00Z,25.6476,25.6478,25.5999,25.6028,3330.0
3824 +SYN2,2024-11-25T18:17:00Z,25.6028,25.6138,25.6011,25.6119,1383.0
3825 +SYN2,2024-11-25T18:18:00Z,25.6119,25.6363,25.6085,25.6331,4079.0
3826 +SYN2,2024-11-25T18:20:00Z,25.6331,25.6529,25.632,25.6515,964.0
3827 +SYN2,2024-11-25T18:21:00Z,25.6515,25.6525,25.5572,25.5579,1771.0
3828 +SYN2,2024-11-25T18:22:00Z,25.5579,25.5914,25.5533,25.5892,3242.0
3829 +SYN2,2024-11-25T18:23:00Z,25.5892,25.5952,25.542,25.5443,3351.0
3830 +SYN2,2024-11-25T18:24:00Z,25.5443,25.5465,25.5058,25.5097,2235.0
3831 +SYN2,2024-11-25T18:25:00Z,25.5097,25.5103,25.504,25.5086,4818.0
3832 +SYN2,2024-11-25T18:26:00Z,25.5086,25.5109,25.4845,25.4855,4765.0
3833 +SYN2,2024-11-25T18:27:00Z,25.4855,25.4992,25.4849,25.4989,3518.0
3834 +SYN2,2024-11-25T18:28:00Z,25.4989,25.5847,25.4984,25.5825,3161.0
3835 +SYN2,2024-11-25T18:29:00Z,25.5825,25.5828,25.55,25.552,4928.0
3836 +SYN2,2024-11-25T18:30:00Z,25.552,25.5531,25.4838,25.488,4004.0
3837 +SYN2,2024-11-25T18:31:00Z,25.488,25.489,25.4696,25.4699,2902.0
3838 +SYN2,2024-11-25T18:32:00Z,25.4699,25.5187,25.4678,25.5164,209.0
3839 +SYN2,2024-11-25T18:33:00Z,25.5164,25.5167,25.5002,25.5017,2917.0
3840 +SYN2,2024-11-25T18:34:00Z,25.5017,25.5275,25.4988,25.5272,3213.0
3841 +SYN2,2024-11-25T18:35:00Z,25.5272,25.5279,25.5194,25.5196,2301.0
3842 +SYN2,2024-11-25T18:36:00Z,25.5196,25.5234,25.484,25.4861,4074.0
3843 +SYN2,2024-11-25T18:37:00Z,25.4861,25.5205,25.4845,25.5177,875.0
3844 +SYN2,2024-11-25T18:38:00Z,25.5177,25.5201,25.4778,25.4778,1989.0
3845 +SYN2,2024-11-25T18:39:00Z,25.4778,25.5032,25.4774,25.5031,2660.0
3846 +SYN2,2024-11-25T18:40:00Z,25.5031,25.5045,25.4734,25.4748,335.0
3847 +SYN2,2024-11-25T18:41:00Z,25.4748,25.5019,25.4746,25.5002,856.0
3848 +SYN2,2024-11-25T18:42:00Z,25.5002,25.5374,25.4986,25.5343,1370.0
3849 +SYN2,2024-11-25T18:43:00Z,25.5343,25.5355,25.5281,25.5306,711.0
3850 +SYN2,2024-11-25T18:44:00Z,25.5306,25.5326,25.5114,25.5116,4176.0
3851 +SYN2,2024-11-25T18:45:00Z,25.5116,25.5684,25.5108,25.5655,359.0
3852 +SYN2,2024-11-25T18:46:00Z,25.5655,25.5729,25.5633,25.5716,4887.0
3853 +SYN2,2024-11-25T18:47:00Z,25.5716,25.5718,25.5232,25.5263,3134.0
3854 +SYN2,2024-11-25T18:48:00Z,25.5263,25.528,25.4804,25.4818,3499.0
3855 +SYN2,2024-11-25T18:49:00Z,25.4818,25.4825,25.4735,25.4738,1272.0
3856 +SYN2,2024-11-25T18:50:00Z,25.4738,25.4747,25.4432,25.444,4020.0
3857 +SYN2,2024-11-25T18:51:00Z,25.444,25.4496,25.4436,25.449,533.0
3858 +SYN2,2024-11-25T18:52:00Z,25.449,25.4511,25.4314,25.4349,189.0
3859 +SYN2,2024-11-25T18:53:00Z,25.4349,25.4357,25.3404,25.343,4614.0
3860 +SYN2,2024-11-25T18:54:00Z,25.343,25.3467,25.3332,25.3371,3292.0
3861 +SYN2,2024-11-25T18:55:00Z,25.3371,25.3392,25.3353,25.336,4739.0
3862 +SYN2,2024-11-25T18:56:00Z,25.336,25.3608,25.3325,25.36,3870.0
3863 +SYN2,2024-11-25T18:57:00Z,25.36,25.3605,25.3186,25.3187,909.0
3864 +SYN2,2024-11-25T18:58:00Z,25.3187,25.3395,25.3184,25.3389,3055.0
3865 +SYN2,2024-11-25T18:59:00Z,25.3389,25.3394,25.3117,25.3118,4475.0
3866 +SYN2,2024-11-25T19:00:00Z,25.3118,25.342,25.3091,25.3411,521.0
3867 +SYN2,2024-11-25T19:01:00Z,25.3411,25.3771,25.3381,25.3757,3765.0
3868 +SYN2,2024-11-25T19:03:00Z,25.3757,25.3862,25.3733,25.3856,1173.0
3869 +SYN2,2024-11-25T19:04:00Z,25.3856,25.3917,25.3829,25.3854,2682.0
3870 +SYN2,2024-11-25T19:05:00Z,25.3854,25.4341,25.3853,25.4321,709.0
3871 +SYN2,2024-11-25T19:06:00Z,25.4321,25.5075,25.4315,25.4996,1872.0
3872 +SYN2,2024-11-25T19:07:00Z,25.4996,25.5016,25.4859,25.4866,1922.0
3873 +SYN2,2024-11-25T19:08:00Z,25.4866,25.517,25.4836,25.5169,2960.0
3874 +SYN2,2024-11-25T19:09:00Z,25.5169,25.5186,25.476,25.477,1324.0
3875 +SYN2,2024-11-25T19:10:00Z,25.477,25.4782,25.4697,25.4713,2832.0
3876 +SYN2,2024-11-25T19:11:00Z,25.4713,25.484,25.4711,25.4793,117.0
3877 +SYN2,2024-11-25T19:12:00Z,25.4793,25.4851,25.477,25.4791,892.0
3878 +SYN2,2024-11-25T19:13:00Z,25.4791,25.4825,25.4641,25.4648,4753.0
3879 +SYN2,2024-11-25T19:14:00Z,25.4648,25.465,25.3882,25.3899,1186.0
3880 +SYN2,2024-11-25T19:15:00Z,25.3899,25.4011,25.3885,25.3979,4802.0
3881 +SYN2,2024-11-25T19:16:00Z,25.3979,25.4011,25.3911,25.3914,2092.0
3882 +SYN2,2024-11-25T19:17:00Z,25.3914,25.3972,25.3776,25.378,1510.0
3883 +SYN2,2024-11-25T19:18:00Z,25.378,25.3791,25.2949,25.296,1673.0
3884 +SYN2,2024-11-25T19:19:00Z,25.296,25.2981,25.2413,25.2417,3804.0
3885 +SYN2,2024-11-25T19:20:00Z,25.2417,25.2433,25.2179,25.2184,921.0
3886 +SYN2,2024-11-25T19:21:00Z,25.2184,25.2291,25.2159,25.2279,4277.0
3887 +SYN2,2024-11-25T19:22:00Z,25.2279,25.2306,25.2151,25.2167,4270.0
3888 +SYN2,2024-11-25T19:23:00Z,25.2167,25.2652,25.2138,25.2619,1741.0
3889 +SYN2,2024-11-25T19:24:00Z,25.2619,25.3127,25.2598,25.3066,295.0
3890 +SYN2,2024-11-25T19:25:00Z,25.3066,25.3149,25.3037,25.3122,4519.0
3891 +SYN2,2024-11-25T19:26:00Z,25.3122,25.3169,25.2651,25.2675,217.0
3892 +SYN2,2024-11-25T19:27:00Z,25.2675,25.282,25.2654,25.2805,3523.0
3893 +SYN2,2024-11-25T19:28:00Z,25.2805,25.2814,25.1894,25.1943,4409.0
3894 +SYN2,2024-11-25T19:29:00Z,25.1943,25.1962,25.1781,25.1784,1535.0
3895 +SYN2,2024-11-25T19:30:00Z,25.1784,25.1786,25.1106,25.1147,4754.0
3896 +SYN2,2024-11-25T19:31:00Z,25.1147,25.1407,25.1118,25.138,194.0
3897 +SYN2,2024-11-25T19:32:00Z,25.138,25.1814,25.1355,25.1782,4492.0
3898 +SYN2,2024-11-25T19:33:00Z,25.1782,25.1942,25.1778,25.1914,4029.0
3899 +SYN2,2024-11-25T19:34:00Z,25.1914,25.1921,25.1725,25.1734,2446.0
3900 +SYN2,2024-11-25T19:35:00Z,25.1734,25.1749,25.148,25.1486,2095.0
3901 +SYN2,2024-11-25T19:36:00Z,25.1486,25.1636,25.148,25.1633,1861.0
3902 +SYN2,2024-11-25T19:37:00Z,25.1633,25.1687,25.1388,25.1395,1666.0
3903 +SYN2,2024-11-25T19:38:00Z,25.1395,25.1414,25.1316,25.1323,4426.0
3904 +SYN2,2024-11-25T19:39:00Z,25.1323,25.133,25.099,25.1004,2956.0
3905 +SYN2,2024-11-25T19:40:00Z,25.1004,25.1573,25.0993,25.1549,2960.0
3906 +SYN2,2024-11-25T19:41:00Z,25.1549,25.1594,25.1143,25.1149,3697.0
3907 +SYN2,2024-11-25T19:42:00Z,25.1149,25.1288,25.1125,25.1282,1411.0
3908 +SYN2,2024-11-25T19:43:00Z,25.1282,25.1283,25.1081,25.1097,3156.0
3909 +SYN2,2024-11-25T19:44:00Z,25.1097,25.1104,25.0733,25.0745,439.0
3910 +SYN2,2024-11-25T19:45:00Z,25.0745,25.0751,25.0714,25.0719,4396.0
3911 +SYN2,2024-11-25T19:46:00Z,25.0719,25.0721,25.0144,25.0144,3028.0
3912 +SYN2,2024-11-25T19:47:00Z,25.0144,25.0167,24.9995,25.0019,981.0
3913 +SYN2,2024-11-25T19:48:00Z,25.0019,25.0207,25.0008,25.0195,1686.0
3914 +SYN2,2024-11-25T19:49:00Z,25.0195,25.038,25.0154,25.0373,2486.0
3915 +SYN2,2024-11-25T19:50:00Z,25.0373,25.0412,25.013,25.0139,2048.0
3916 +SYN2,2024-11-25T19:51:00Z,25.0139,25.0241,25.0132,25.0222,2068.0
3917 +SYN2,2024-11-25T19:52:00Z,25.0222,25.0237,24.9784,24.979,749.0
3918 +SYN2,2024-11-25T19:53:00Z,24.979,24.9794,24.9604,24.9622,3566.0
3919 +SYN2,2024-11-25T19:54:00Z,24.9622,24.9924,24.96,24.9913,3418.0
3920 +SYN2,2024-11-25T19:55:00Z,24.9913,24.9918,24.9751,24.9751,2690.0
3921 +SYN2,2024-11-25T19:56:00Z,24.9751,25.0164,24.9731,25.016,2275.0
3922 +SYN2,2024-11-25T19:57:00Z,25.016,25.0191,25.0127,25.0183,2316.0
3923 +SYN2,2024-11-25T19:58:00Z,25.0183,25.0546,25.0167,25.0542,239.0
3924 +SYN2,2024-11-25T19:59:00Z,25.0542,25.0549,24.9981,24.9993,2793.0
3925 +SYN2,2024-11-25T20:00:00Z,24.9993,24.9996,24.9434,24.9442,2661.0
3926 +SYN2,2024-11-25T20:01:00Z,24.9442,24.9443,24.9145,24.9151,4221.0
3927 +SYN2,2024-11-25T20:02:00Z,24.9151,24.9168,24.8515,24.8559,2435.0
3928 +SYN2,2024-11-25T20:03:00Z,24.8559,24.8622,24.8539,24.8603,304.0
3929 +SYN2,2024-11-25T20:04:00Z,24.8603,24.8624,24.8456,24.8492,1151.0
3930 +SYN2,2024-11-25T20:05:00Z,24.8492,24.8793,24.8479,24.8793,1804.0
3931 +SYN2,2024-11-25T20:07:00Z,24.8793,24.9085,24.8764,24.9083,2605.0
3932 +SYN2,2024-11-25T20:08:00Z,24.9083,24.9086,24.9053,24.9079,4964.0
3933 +SYN2,2024-11-25T20:09:00Z,24.9079,24.9106,24.8586,24.8618,3826.0
3934 +SYN2,2024-11-25T20:10:00Z,24.8618,24.8637,24.8568,24.8577,645.0
3935 +SYN2,2024-11-25T20:11:00Z,24.8577,24.862,24.8563,24.8597,3725.0
3936 +SYN2,2024-11-25T20:12:00Z,24.8597,24.8671,24.8596,24.8636,291.0
3937 +SYN2,2024-11-25T20:13:00Z,24.8636,24.9118,24.8581,24.9112,1188.0
3938 +SYN2,2024-11-25T20:14:00Z,24.9112,24.9132,24.8946,24.895,2221.0
3939 +SYN2,2024-11-25T20:15:00Z,24.895,24.896,24.8895,24.8907,4934.0
3940 +SYN2,2024-11-25T20:16:00Z,24.8907,24.8922,24.8493,24.8499,4570.0
3941 +SYN2,2024-11-25T20:17:00Z,24.8499,24.8505,24.8332,24.838,4299.0
3942 +SYN2,2024-11-25T20:18:00Z,24.838,24.8427,24.7789,24.7806,3687.0
3943 +SYN2,2024-11-25T20:19:00Z,24.7806,24.785,24.7451,24.7457,4172.0
3944 +SYN2,2024-11-25T20:20:00Z,24.7457,24.7464,24.7098,24.7141,4368.0
3945 +SYN2,2024-11-25T20:21:00Z,24.7141,24.7815,24.7124,24.7814,4783.0
3946 +SYN2,2024-11-25T20:22:00Z,24.7814,24.7855,24.7653,24.767,1708.0
3947 +SYN2,2024-11-25T20:23:00Z,24.767,24.8192,24.7589,24.8176,1468.0
3948 +SYN2,2024-11-25T20:24:00Z,24.8176,24.8186,24.8104,24.8116,1624.0
3949 +SYN2,2024-11-25T20:25:00Z,24.8116,24.8132,24.794,24.7959,3110.0
3950 +SYN2,2024-11-25T20:26:00Z,24.7959,24.8177,24.7955,24.8175,4169.0
3951 +SYN2,2024-11-25T20:27:00Z,24.8175,24.8198,24.7738,24.7748,926.0
3952 +SYN2,2024-11-25T20:28:00Z,24.7748,24.7753,24.7693,24.7726,165.0
3953 +SYN2,2024-11-25T20:29:00Z,24.7726,24.7729,24.7186,24.7234,1457.0
3954 +SYN2,2024-11-25T20:30:00Z,24.7234,24.7239,24.6949,24.6951,2368.0
3955 +SYN2,2024-11-25T20:31:00Z,24.6951,24.7372,24.6921,24.7356,2458.0
3956 +SYN2,2024-11-25T20:32:00Z,24.7356,24.7442,24.7333,24.7431,1951.0
3957 +SYN2,2024-11-25T20:33:00Z,24.7431,24.744,24.733,24.7358,1910.0
3958 +SYN2,2024-11-25T20:34:00Z,24.7358,24.7515,24.7343,24.7508,4944.0
3959 +SYN2,2024-11-25T20:35:00Z,24.7508,24.7527,24.7497,24.7519,957.0
3960 +SYN2,2024-11-25T20:36:00Z,24.7519,24.7684,24.7515,24.7682,4547.0
3961 +SYN2,2024-11-25T20:37:00Z,24.7682,24.7755,24.768,24.7732,3190.0
3962 +SYN2,2024-11-25T20:38:00Z,24.7732,24.7735,24.6803,24.6823,2491.0
3963 +SYN2,2024-11-25T20:39:00Z,24.6823,24.6847,24.6334,24.6356,4660.0
3964 +SYN2,2024-11-25T20:40:00Z,24.6356,24.637,24.6051,24.6063,223.0
3965 +SYN2,2024-11-25T20:41:00Z,24.6063,24.6073,24.5401,24.5416,4182.0
3966 +SYN2,2024-11-25T20:42:00Z,24.5416,24.543,24.5376,24.5424,4178.0
3967 +SYN2,2024-11-25T20:43:00Z,24.5424,24.5585,24.5384,24.5567,3247.0
3968 +SYN2,2024-11-25T20:44:00Z,24.5567,24.5594,24.5542,24.5576,4952.0
3969 +SYN2,2024-11-25T20:45:00Z,24.5576,24.5584,24.5207,24.5212,1867.0
3970 +SYN2,2024-11-25T20:46:00Z,24.5212,24.5618,24.5202,24.5574,2072.0
3971 +SYN2,2024-11-25T20:47:00Z,24.5574,24.5992,24.5548,24.5971,1124.0
3972 +SYN2,2024-11-25T20:48:00Z,24.5971,24.641,24.597,24.6391,1398.0
3973 +SYN2,2024-11-25T20:49:00Z,24.6391,24.6397,24.6342,24.6361,2449.0
3974 +SYN2,2024-11-25T20:50:00Z,24.6361,24.6624,24.6348,24.6613,2039.0
3975 +SYN2,2024-11-25T20:51:00Z,24.6613,24.6718,24.6595,24.6677,2499.0
3976 +SYN2,2024-11-25T20:52:00Z,24.6677,24.6763,24.6646,24.6741,351.0
3977 +SYN2,2024-11-25T20:53:00Z,24.6741,24.6757,24.6455,24.6474,2807.0
3978 +SYN2,2024-11-25T20:54:00Z,24.6474,24.6495,24.6022,24.6047,3303.0
3979 +SYN2,2024-11-25T20:55:00Z,24.6047,24.6069,24.5569,24.5602,3473.0
3980 +SYN2,2024-11-25T20:56:00Z,24.5602,24.5688,24.5592,24.5681,1591.0
3981 +SYN2,2024-11-25T20:57:00Z,24.5681,24.5697,24.5099,24.5118,3670.0
3982 +SYN2,2024-11-25T20:58:00Z,24.5118,24.5458,24.511,24.5438,220.0
3983 +SYN2,2024-11-25T20:59:00Z,24.5438,24.5571,24.5405,24.5571,3139.0
3984 +SYN2,2024-11-25T21:00:00Z,24.5571,24.558,24.551,24.5515,2933.0
3985 +SYN2,2024-11-25T21:04:00Z,24.5515,24.5545,24.5397,24.5445,87.0
3986 +SYN2,2024-11-25T21:06:00Z,24.5445,24.5458,24.5414,24.5417,6.0
3987 +SYN2,2024-11-25T21:07:00Z,24.5417,24.5541,24.5345,24.5529,24.0
3988 +SYN2,2024-11-25T21:08:00Z,24.5529,24.5565,24.5431,24.5449,199.0
3989 +SYN2,2024-11-25T21:09:00Z,24.5449,24.5712,24.5394,24.57,235.0
3990 +SYN2,2024-11-25T21:10:00Z,24.57,24.5702,24.5661,24.567,258.0
3991 +SYN2,2024-11-25T21:14:00Z,24.567,24.5726,24.5647,24.5719,9.0
3992 +SYN2,2024-11-25T21:15:00Z,24.5719,24.5748,24.571,24.5741,290.0
3993 +SYN2,2024-11-25T21:19:00Z,24.5741,24.5949,24.5738,24.5922,67.0
3994 +SYN2,2024-11-25T21:23:00Z,24.5922,24.6113,24.59,24.6113,147.0
3995 +SYN2,2024-11-25T21:24:00Z,24.6113,24.6157,24.6025,24.6045,26.0
3996 +SYN2,2024-11-25T21:25:00Z,24.6045,24.6205,24.6034,24.6189,81.0
3997 +SYN2,2024-11-25T21:27:00Z,24.6189,24.6205,24.6103,24.6112,25.0
3998 +SYN2,2024-11-25T21:28:00Z,24.6112,24.6208,24.6103,24.6202,63.0
3999 +SYN2,2024-11-25T21:30:00Z,24.6202,24.6211,24.5982,24.5985,188.0
4000 +SYN2,2024-11-25T21:34:00Z,24.5985,24.6035,24.5971,24.6027,258.0
4001 +SYN2,2024-11-25T21:35:00Z,24.6027,24.6297,24.602,24.6293,269.0
4002 +SYN2,2024-11-25T21:36:00Z,24.6293,24.6677,24.6278,24.6666,144.0
4003 +SYN2,2024-11-25T21:39:00Z,24.6666,24.6927,24.6648,24.6914,102.0
4004 +SYN2,2024-11-25T21:41:00Z,24.6914,24.6995,24.6895,24.6962,207.0
4005 +SYN2,2024-11-25T21:42:00Z,24.6962,24.6975,24.6726,24.6742,13.0
4006 +SYN2,2024-11-25T21:43:00Z,24.6742,24.6851,24.6732,24.6841,297.0
4007 +SYN2,2024-11-25T21:44:00Z,24.6841,24.7158,24.6822,24.7132,220.0
4008 +SYN2,2024-11-25T21:45:00Z,24.7132,24.7247,24.7116,24.7224,20.0
4009 +SYN2,2024-11-25T21:46:00Z,24.7224,24.7329,24.7193,24.7316,55.0
4010 +SYN2,2024-11-25T21:51:00Z,24.7316,24.7503,24.7298,24.7498,203.0
4011 +SYN2,2024-11-25T21:52:00Z,24.7498,24.7524,24.7108,24.7131,208.0
4012 +SYN2,2024-11-25T21:53:00Z,24.7131,24.7161,24.6906,24.6917,230.0
4013 +SYN2,2024-11-25T21:55:00Z,24.6917,24.699,24.6899,24.6971,51.0
4014 +SYN2,2024-11-25T21:56:00Z,24.6971,24.7295,24.6932,24.7277,139.0
4015 +SYN2,2024-11-25T21:57:00Z,24.7277,24.7281,24.7083,24.709,93.0
4016 +SYN2,2024-11-25T22:00:00Z,24.709,24.7341,24.7078,24.7323,145.0
4017 +SYN2,2024-11-25T22:01:00Z,24.7323,24.7329,24.6967,24.6985,42.0
4018 +SYN2,2024-11-25T22:02:00Z,24.6985,24.6999,24.6463,24.6477,47.0
4019 +SYN2,2024-11-25T22:03:00Z,24.6477,24.648,24.6449,24.6457,293.0
4020 +SYN2,2024-11-25T22:05:00Z,24.6457,24.6457,24.6427,24.6437,10.0
4021 +SYN2,2024-11-25T22:06:00Z,24.6437,24.6456,24.6329,24.6339,40.0
4022 +SYN2,2024-11-25T22:07:00Z,24.6339,24.6364,24.6311,24.6338,82.0
4023 +SYN2,2024-11-25T22:09:00Z,24.6338,24.6437,24.6334,24.6412,96.0
4024 +SYN2,2024-11-25T22:11:00Z,24.6412,24.6429,24.633,24.6364,222.0
4025 +SYN2,2024-11-25T22:12:00Z,24.6364,24.6392,24.6176,24.6179,138.0
4026 +SYN2,2024-11-25T22:13:00Z,24.6179,24.6208,24.617,24.6188,247.0
4027 +SYN2,2024-11-25T22:14:00Z,24.6188,24.6191,24.6141,24.6151,65.0
4028 +SYN2,2024-11-25T22:16:00Z,24.6151,24.618,24.6073,24.6089,89.0
4029 +SYN2,2024-11-25T22:17:00Z,24.6089,24.6108,24.6029,24.6041,106.0
4030 +SYN2,2024-11-25T22:18:00Z,24.6041,24.6279,24.6033,24.6233,232.0
4031 +SYN2,2024-11-25T22:19:00Z,24.6233,24.6506,24.6221,24.6497,204.0
4032 +SYN2,2024-11-25T22:21:00Z,24.6497,24.6502,24.6237,24.6258,252.0
4033 +SYN2,2024-11-25T22:23:00Z,24.6258,24.6294,24.5887,24.5915,51.0
4034 +SYN2,2024-11-25T22:24:00Z,24.5915,24.6035,24.5893,24.6029,199.0
4035 +SYN2,2024-11-25T22:27:00Z,24.6029,24.6036,24.5708,24.5721,14.0
4036 +SYN2,2024-11-25T22:28:00Z,24.5721,24.5733,24.5475,24.55,197.0
4037 +SYN2,2024-11-25T22:29:00Z,24.55,24.5516,24.5431,24.5439,49.0
4038 +SYN2,2024-11-25T22:30:00Z,24.5439,24.5588,24.5427,24.5577,219.0
4039 +SYN2,2024-11-25T22:31:00Z,24.5577,24.5608,24.553,24.5602,100.0
4040 +SYN2,2024-11-25T22:32:00Z,24.5602,24.5615,24.555,24.5574,180.0
4041 +SYN2,2024-11-25T22:34:00Z,24.5574,24.5874,24.5572,24.5868,65.0
4042 +SYN2,2024-11-25T22:35:00Z,24.5868,24.5884,24.5835,24.5875,245.0
4043 +SYN2,2024-11-25T22:36:00Z,24.5875,24.6184,24.584,24.6166,224.0
4044 +SYN2,2024-11-25T22:38:00Z,24.6166,24.6177,24.5962,24.5993,18.0
4045 +SYN2,2024-11-25T22:39:00Z,24.5993,24.6004,24.5544,24.5571,18.0
4046 +SYN2,2024-11-25T22:40:00Z,24.5571,24.5606,24.5372,24.5378,271.0
4047 +SYN2,2024-11-25T22:41:00Z,24.5378,24.5564,24.5357,24.5547,58.0
4048 +SYN2,2024-11-25T22:42:00Z,24.5547,24.5675,24.5536,24.5655,109.0
4049 +SYN2,2024-11-25T22:43:00Z,24.5655,24.5751,24.5591,24.5706,211.0
4050 +SYN2,2024-11-25T22:46:00Z,24.5706,24.6093,24.5679,24.609,220.0
4051 +SYN2,2024-11-25T22:51:00Z,24.609,24.619,24.6071,24.6169,276.0
4052 +SYN2,2024-11-25T22:52:00Z,24.6169,24.618,24.6111,24.6116,59.0
4053 +SYN2,2024-11-25T22:54:00Z,24.6116,24.6137,24.6078,24.6082,159.0
4054 +SYN2,2024-11-25T22:56:00Z,24.6082,24.6325,24.6042,24.6318,219.0
4055 +SYN2,2024-11-25T22:58:00Z,24.6318,24.6448,24.6292,24.6443,261.0
4056 +SYN2,2024-11-25T23:00:00Z,24.6443,24.6464,24.6424,24.645,294.0
4057 +SYN2,2024-11-25T23:01:00Z,24.645,24.646,24.64,24.6406,111.0
4058 +SYN2,2024-11-25T23:02:00Z,24.6406,24.641,24.6269,24.6315,259.0
4059 +SYN2,2024-11-25T23:03:00Z,24.6315,24.6559,24.6295,24.6539,272.0
4060 +SYN2,2024-11-25T23:05:00Z,24.6539,24.6539,24.6512,24.6521,241.0
4061 +SYN2,2024-11-25T23:06:00Z,24.6521,24.6698,24.6472,24.6694,300.0
4062 +SYN2,2024-11-25T23:07:00Z,24.6694,24.695,24.669,24.6916,63.0
4063 +SYN2,2024-11-25T23:08:00Z,24.6916,24.755,24.6886,24.7541,106.0
4064 +SYN2,2024-11-25T23:11:00Z,24.7541,24.7651,24.7519,24.7626,175.0
4065 +SYN2,2024-11-25T23:12:00Z,24.7626,24.7798,24.7616,24.7783,267.0
4066 +SYN2,2024-11-25T23:13:00Z,24.7783,24.7796,24.7262,24.7274,294.0
4067 +SYN2,2024-11-25T23:15:00Z,24.7274,24.7405,24.7232,24.7378,223.0
4068 +SYN2,2024-11-25T23:17:00Z,24.7378,24.7416,24.7336,24.7378,255.0
4069 +SYN2,2024-11-25T23:19:00Z,24.7378,24.7695,24.7369,24.7657,288.0
4070 +SYN2,2024-11-25T23:20:00Z,24.7657,24.7692,24.765,24.7669,148.0
4071 +SYN2,2024-11-25T23:22:00Z,24.7669,24.7673,24.7638,24.7655,59.0
4072 +SYN2,2024-11-25T23:23:00Z,24.7655,24.7703,24.7633,24.7697,277.0
4073 +SYN2,2024-11-25T23:24:00Z,24.7697,24.7698,24.755,24.7567,74.0
4074 +SYN2,2024-11-25T23:26:00Z,24.7567,24.7719,24.7535,24.769,195.0
4075 +SYN2,2024-11-25T23:27:00Z,24.769,24.7696,24.7651,24.7654,86.0
4076 +SYN2,2024-11-25T23:29:00Z,24.7654,24.7674,24.7128,24.7158,227.0
4077 +SYN2,2024-11-25T23:31:00Z,24.7158,24.7166,24.6927,24.6933,160.0
4078 +SYN2,2024-11-25T23:32:00Z,24.6933,24.7175,24.6926,24.7167,213.0
4079 +SYN2,2024-11-25T23:34:00Z,24.7167,24.7209,24.7145,24.7186,195.0
4080 +SYN2,2024-11-25T23:35:00Z,24.7186,24.7241,24.7175,24.7235,159.0
4081 +SYN2,2024-11-25T23:37:00Z,24.7235,24.7252,24.7096,24.7124,187.0
4082 +SYN2,2024-11-25T23:38:00Z,24.7124,24.7149,24.6941,24.6956,92.0
4083 +SYN2,2024-11-25T23:42:00Z,24.6956,24.7137,24.6922,24.7132,40.0
4084 +SYN2,2024-11-25T23:43:00Z,24.7132,24.7135,24.6849,24.6871,195.0
4085 +SYN2,2024-11-25T23:45:00Z,24.6871,24.6889,24.6842,24.6882,5.0
4086 +SYN2,2024-11-25T23:46:00Z,24.6882,24.6883,24.6507,24.6526,63.0
4087 +SYN2,2024-11-25T23:47:00Z,24.6526,24.6527,24.6255,24.6261,35.0
4088 +SYN2,2024-11-25T23:48:00Z,24.6261,24.6545,24.622,24.6517,252.0
4089 +SYN2,2024-11-25T23:50:00Z,24.6517,24.6543,24.6458,24.653,183.0
4090 +SYN2,2024-11-25T23:51:00Z,24.653,24.654,24.6325,24.6341,12.0
4091 +SYN2,2024-11-25T23:56:00Z,24.6341,24.637,24.6239,24.6243,86.0
4092 +SYN2,2024-11-25T23:57:00Z,24.6243,24.626,24.6123,24.6159,218.0
4093 +SYN2,2024-11-25T23:59:00Z,24.6159,24.6218,24.6129,24.6132,190.0
4094 +SYN2,2024-11-26T00:02:00Z,24.6132,24.614,24.6084,24.6092,115.0
4095 +SYN2,2024-11-26T00:03:00Z,24.6092,24.6105,24.5977,24.5978,70.0
4096 +SYN2,2024-11-26T00:04:00Z,24.5978,24.5992,24.5549,24.5568,281.0
4097 +SYN2,2024-11-26T00:06:00Z,24.5568,24.5583,24.5541,24.558,262.0
4098 +SYN2,2024-11-26T00:07:00Z,24.558,24.5867,24.5549,24.5815,189.0
4099 +SYN2,2024-11-26T00:08:00Z,24.5815,24.6017,24.5786,24.6011,224.0
4100 +SYN2,2024-11-26T00:10:00Z,24.6011,24.627,24.5998,24.625,16.0
4101 +SYN2,2024-11-26T00:13:00Z,24.625,24.6281,24.5957,24.5965,207.0
4102 +SYN2,2024-11-26T00:14:00Z,24.5965,24.6018,24.5962,24.6011,89.0
4103 +SYN2,2024-11-26T00:15:00Z,24.6011,24.6318,24.5984,24.6314,194.0
4104 +SYN2,2024-11-26T00:16:00Z,24.6314,24.6344,24.6291,24.6299,68.0
4105 +SYN2,2024-11-26T00:20:00Z,24.6299,24.6414,24.6286,24.6394,237.0
4106 +SYN2,2024-11-26T00:21:00Z,24.6394,24.643,24.6381,24.641,48.0
4107 +SYN2,2024-11-26T00:22:00Z,24.641,24.6417,24.621,24.6255,165.0
4108 +SYN2,2024-11-26T00:25:00Z,24.6255,24.6291,24.5926,24.5932,272.0
4109 +SYN2,2024-11-26T00:26:00Z,24.5932,24.6223,24.5924,24.6202,150.0
4110 +SYN2,2024-11-26T00:28:00Z,24.6202,24.6433,24.619,24.6399,104.0
4111 +SYN2,2024-11-26T00:29:00Z,24.6399,24.6405,24.6042,24.6054,124.0
4112 +SYN2,2024-11-26T00:32:00Z,24.6054,24.6191,24.6035,24.6126,69.0
4113 +SYN2,2024-11-26T00:34:00Z,24.6126,24.6156,24.6097,24.6136,7.0
4114 +SYN2,2024-11-26T00:36:00Z,24.6136,24.6218,24.6132,24.6191,241.0
4115 +SYN2,2024-11-26T00:37:00Z,24.6191,24.6225,24.6075,24.6089,269.0
4116 +SYN2,2024-11-26T00:38:00Z,24.6089,24.6311,24.6051,24.631,12.0
4117 +SYN2,2024-11-26T00:39:00Z,24.631,24.6314,24.622,24.624,131.0
4118 +SYN2,2024-11-26T00:42:00Z,24.624,24.6728,24.6239,24.6716,294.0
4119 +SYN2,2024-11-26T00:43:00Z,24.6716,24.7045,24.6709,24.6995,154.0
4120 +SYN2,2024-11-26T00:46:00Z,24.6995,24.7098,24.6991,24.7074,293.0
4121 +SYN2,2024-11-26T00:47:00Z,24.7074,24.7116,24.6923,24.6976,259.0
4122 +SYN2,2024-11-26T00:48:00Z,24.6976,24.7025,24.671,24.6712,60.0
4123 +SYN2,2024-11-26T00:50:00Z,24.6712,24.6721,24.6648,24.6664,276.0
4124 +SYN2,2024-11-26T00:51:00Z,24.6664,24.6854,24.6632,24.6846,116.0
4125 +SYN2,2024-11-26T00:53:00Z,24.6846,24.6865,24.6687,24.6694,78.0
4126 +SYN2,2024-11-26T00:54:00Z,24.6694,24.6809,24.6688,24.6807,186.0
4127 +SYN2,2024-11-26T00:55:00Z,24.6807,24.6817,24.6791,24.6792,56.0
4128 +SYN2,2024-11-26T09:00:00Z,24.6792,24.6843,24.6777,24.6818,116.0
4129 +SYN2,2024-11-26T09:02:00Z,24.6818,24.6819,24.678,24.6783,267.0
4130 +SYN2,2024-11-26T09:05:00Z,24.6783,24.6791,24.6691,24.6702,117.0
4131 +SYN2,2024-11-26T09:07:00Z,24.6702,24.6778,24.6694,24.6764,12.0
4132 +SYN2,2024-11-26T09:11:00Z,24.6764,24.6994,24.6751,24.6974,126.0
4133 +SYN2,2024-11-26T09:12:00Z,24.6974,24.7325,24.696,24.7297,133.0
4134 +SYN2,2024-11-26T09:13:00Z,24.7297,24.7314,24.7249,24.7251,10.0
4135 +SYN2,2024-11-26T09:17:00Z,24.7251,24.7273,24.7229,24.7231,106.0
4136 +SYN2,2024-11-26T09:19:00Z,24.7231,24.7241,24.7228,24.724,192.0
4137 +SYN2,2024-11-26T09:22:00Z,24.724,24.7273,24.7197,24.7205,234.0
4138 +SYN2,2024-11-26T09:23:00Z,24.7205,24.7442,24.7149,24.7427,102.0
4139 +SYN2,2024-11-26T09:24:00Z,24.7427,24.746,24.7423,24.7436,121.0
4140 +SYN2,2024-11-26T09:27:00Z,24.7436,24.7472,24.7375,24.7387,198.0
4141 +SYN2,2024-11-26T09:28:00Z,24.7387,24.7397,24.7243,24.7291,153.0
4142 +SYN2,2024-11-26T09:29:00Z,24.7291,24.7387,24.7264,24.7369,45.0
4143 +SYN2,2024-11-26T09:31:00Z,24.7369,24.7524,24.7349,24.7504,72.0
4144 +SYN2,2024-11-26T09:32:00Z,24.7504,24.7622,24.7503,24.7589,297.0
4145 +SYN2,2024-11-26T09:33:00Z,24.7589,24.7619,24.7461,24.7487,60.0
4146 +SYN2,2024-11-26T09:34:00Z,24.7487,24.7497,24.7276,24.7316,243.0
4147 +SYN2,2024-11-26T09:37:00Z,24.7316,24.7687,24.7291,24.7656,296.0
4148 +SYN2,2024-11-26T09:41:00Z,24.7656,24.766,24.7595,24.7623,220.0
4149 +SYN2,2024-11-26T09:44:00Z,24.7623,24.7647,24.7479,24.7494,297.0
4150 +SYN2,2024-11-26T09:45:00Z,24.7494,24.7503,24.7237,24.7267,188.0
4151 +SYN2,2024-11-26T09:47:00Z,24.7267,24.7464,24.7266,24.745,186.0
4152 +SYN2,2024-11-26T09:48:00Z,24.745,24.7469,24.73,24.731,77.0
4153 +SYN2,2024-11-26T09:51:00Z,24.731,24.7447,24.7279,24.7422,138.0
4154 +SYN2,2024-11-26T09:53:00Z,24.7422,24.7488,24.7417,24.7459,294.0
4155 +SYN2,2024-11-26T09:54:00Z,24.7459,24.7496,24.7286,24.7297,102.0
4156 +SYN2,2024-11-26T09:55:00Z,24.7297,24.7522,24.7256,24.7506,257.0
4157 +SYN2,2024-11-26T09:56:00Z,24.7506,24.7562,24.7498,24.7562,205.0
4158 +SYN2,2024-11-26T10:00:00Z,24.7562,24.7573,24.7401,24.7407,110.0
4159 +SYN2,2024-11-26T10:02:00Z,24.7407,24.7431,24.722,24.7229,82.0
4160 +SYN2,2024-11-26T10:04:00Z,24.7229,24.7332,24.7222,24.7307,181.0
4161 +SYN2,2024-11-26T10:07:00Z,24.7307,24.732,24.7096,24.7097,99.0
4162 +SYN2,2024-11-26T10:08:00Z,24.7097,24.7203,24.7087,24.7198,268.0
4163 +SYN2,2024-11-26T10:10:00Z,24.7198,24.7218,24.6918,24.692,167.0
4164 +SYN2,2024-11-26T10:12:00Z,24.692,24.6947,24.6625,24.6636,290.0
4165 +SYN2,2024-11-26T10:16:00Z,24.6636,24.6643,24.6531,24.6543,100.0
4166 +SYN2,2024-11-26T10:17:00Z,24.6543,24.6592,24.6509,24.6577,258.0
4167 +SYN2,2024-11-26T10:18:00Z,24.6577,24.6963,24.6576,24.6962,44.0
4168 +SYN2,2024-11-26T10:20:00Z,24.6962,24.6968,24.6862,24.6889,283.0
4169 +SYN2,2024-11-26T10:24:00Z,24.6889,24.6895,24.6758,24.6762,5.0
4170 +SYN2,2024-11-26T10:25:00Z,24.6762,24.6834,24.6757,24.6819,271.0
4171 +SYN2,2024-11-26T10:27:00Z,24.6819,24.6839,24.6736,24.6751,241.0
4172 +SYN2,2024-11-26T10:28:00Z,24.6751,24.6764,24.674,24.6757,226.0
4173 +SYN2,2024-11-26T10:29:00Z,24.6757,24.6922,24.673,24.6916,179.0
4174 +SYN2,2024-11-26T10:30:00Z,24.6916,24.6918,24.6653,24.6663,101.0
4175 +SYN2,2024-11-26T10:31:00Z,24.6663,24.6772,24.6633,24.6758,15.0
4176 +SYN2,2024-11-26T10:32:00Z,24.6758,24.6795,24.6611,24.6612,162.0
4177 +SYN2,2024-11-26T10:34:00Z,24.6612,24.6693,24.6592,24.6684,218.0
4178 +SYN2,2024-11-26T10:35:00Z,24.6684,24.6998,24.6676,24.6957,288.0
4179 +SYN2,2024-11-26T10:38:00Z,24.6957,24.7072,24.6949,24.7037,279.0
4180 +SYN2,2024-11-26T10:40:00Z,24.7037,24.7392,24.6996,24.7368,40.0
4181 +SYN2,2024-11-26T10:41:00Z,24.7368,24.7434,24.7319,24.7332,28.0
4182 +SYN2,2024-11-26T10:42:00Z,24.7332,24.7495,24.7329,24.7486,36.0
4183 +SYN2,2024-11-26T10:44:00Z,24.7486,24.7636,24.7482,24.762,37.0
4184 +SYN2,2024-11-26T10:45:00Z,24.762,24.7631,24.7371,24.7395,17.0
4185 +SYN2,2024-11-26T10:46:00Z,24.7395,24.7435,24.7359,24.7419,134.0
4186 +SYN2,2024-11-26T10:48:00Z,24.7419,24.763,24.7373,24.7616,59.0
4187 +SYN2,2024-11-26T10:50:00Z,24.7616,24.7637,24.7244,24.7292,43.0
4188 +SYN2,2024-11-26T10:51:00Z,24.7292,24.7302,24.703,24.7052,132.0
4189 +SYN2,2024-11-26T10:52:00Z,24.7052,24.7293,24.7024,24.7256,150.0
4190 +SYN2,2024-11-26T10:53:00Z,24.7256,24.7313,24.6964,24.6966,138.0
4191 +SYN2,2024-11-26T10:55:00Z,24.6966,24.7172,24.6943,24.7167,107.0
4192 +SYN2,2024-11-26T10:56:00Z,24.7167,24.7339,24.7159,24.7329,9.0
4193 +SYN2,2024-11-26T10:57:00Z,24.7329,24.7415,24.7304,24.7412,246.0
4194 +SYN2,2024-11-26T10:58:00Z,24.7412,24.7541,24.74,24.7508,145.0
4195 +SYN2,2024-11-26T10:59:00Z,24.7508,24.7521,24.733,24.7346,36.0
4196 +SYN2,2024-11-26T11:01:00Z,24.7346,24.7397,24.7326,24.7377,66.0
4197 +SYN2,2024-11-26T11:02:00Z,24.7377,24.7402,24.7249,24.7264,151.0
4198 +SYN2,2024-11-26T11:03:00Z,24.7264,24.7375,24.7219,24.7355,147.0
4199 +SYN2,2024-11-26T11:06:00Z,24.7355,24.7495,24.7336,24.745,1.0
4200 +SYN2,2024-11-26T11:08:00Z,24.745,24.7466,24.7295,24.7337,269.0
4201 +SYN2,2024-11-26T11:11:00Z,24.7337,24.7369,24.7092,24.7132,235.0
4202 +SYN2,2024-11-26T11:12:00Z,24.7132,24.7184,24.7103,24.7129,177.0
4203 +SYN2,2024-11-26T11:14:00Z,24.7129,24.7405,24.7093,24.7378,164.0
4204 +SYN2,2024-11-26T11:16:00Z,24.7378,24.7406,24.7095,24.7095,121.0
4205 +SYN2,2024-11-26T11:18:00Z,24.7095,24.7117,24.7083,24.7098,79.0
4206 +SYN2,2024-11-26T11:20:00Z,24.7098,24.74,24.7085,24.7386,121.0
4207 +SYN2,2024-11-26T11:22:00Z,24.7386,24.7395,24.7254,24.7266,65.0
4208 +SYN2,2024-11-26T11:24:00Z,24.7266,24.7278,24.7207,24.7245,75.0
4209 +SYN2,2024-11-26T11:25:00Z,24.7245,24.7256,24.6953,24.6968,27.0
4210 +SYN2,2024-11-26T11:26:00Z,24.6968,24.7028,24.6965,24.7025,28.0
4211 +SYN2,2024-11-26T11:27:00Z,24.7025,24.7036,24.6826,24.6838,213.0
4212 +SYN2,2024-11-26T11:29:00Z,24.6838,24.7047,24.6835,24.7039,188.0
4213 +SYN2,2024-11-26T11:30:00Z,24.7039,24.7058,24.6675,24.6719,209.0
4214 +SYN2,2024-11-26T11:32:00Z,24.6719,24.6736,24.6466,24.6475,139.0
4215 +SYN2,2024-11-26T11:34:00Z,24.6475,24.6523,24.6454,24.6463,187.0
4216 +SYN2,2024-11-26T11:35:00Z,24.6463,24.6473,24.6158,24.6175,46.0
4217 +SYN2,2024-11-26T11:36:00Z,24.6175,24.6205,24.5951,24.5958,178.0
4218 +SYN2,2024-11-26T11:37:00Z,24.5958,24.596,24.5903,24.5924,250.0
4219 +SYN2,2024-11-26T11:39:00Z,24.5924,24.6185,24.5915,24.6132,165.0
4220 +SYN2,2024-11-26T11:41:00Z,24.6132,24.63,24.6099,24.628,98.0
4221 +SYN2,2024-11-26T11:43:00Z,24.628,24.653,24.6268,24.6526,283.0
4222 +SYN2,2024-11-26T11:44:00Z,24.6526,24.6658,24.6518,24.6642,260.0
4223 +SYN2,2024-11-26T11:45:00Z,24.6642,24.6654,24.625,24.627,20.0
4224 +SYN2,2024-11-26T11:46:00Z,24.627,24.6303,24.6236,24.6253,90.0
4225 +SYN2,2024-11-26T11:47:00Z,24.6253,24.6255,24.6052,24.6074,58.0
4226 +SYN2,2024-11-26T11:50:00Z,24.6074,24.6135,24.6065,24.6094,140.0
4227 +SYN2,2024-11-26T11:53:00Z,24.6094,24.6117,24.5982,24.6013,279.0
4228 +SYN2,2024-11-26T11:54:00Z,24.6013,24.6017,24.5793,24.5827,219.0
4229 +SYN2,2024-11-26T11:55:00Z,24.5827,24.6003,24.5787,24.5968,84.0
4230 +SYN2,2024-11-26T11:57:00Z,24.5968,24.5989,24.5622,24.5638,24.0
4231 +SYN2,2024-11-26T11:58:00Z,24.5638,24.5664,24.5631,24.5652,211.0
4232 +SYN2,2024-11-26T11:59:00Z,24.5652,24.5728,24.5448,24.5451,291.0
4233 +SYN2,2024-11-26T12:00:00Z,24.5451,24.5475,24.5343,24.5364,19.0
4234 +SYN2,2024-11-26T12:01:00Z,24.5364,24.5426,24.5328,24.5348,222.0
4235 +SYN2,2024-11-26T12:02:00Z,24.5348,24.5361,24.5234,24.5254,196.0
4236 +SYN2,2024-11-26T12:04:00Z,24.5254,24.5282,24.5051,24.5064,262.0
4237 +SYN2,2024-11-26T12:05:00Z,24.5064,24.5238,24.5042,24.5196,206.0
4238 +SYN2,2024-11-26T12:06:00Z,24.5196,24.529,24.518,24.5271,195.0
4239 +SYN2,2024-11-26T12:07:00Z,24.5271,24.5306,24.5181,24.5198,64.0
4240 +SYN2,2024-11-26T12:08:00Z,24.5198,24.5213,24.5156,24.516,242.0
4241 +SYN2,2024-11-26T12:09:00Z,24.516,24.5289,24.5133,24.5269,287.0
4242 +SYN2,2024-11-26T12:11:00Z,24.5269,24.528,24.521,24.5236,158.0
4243 +SYN2,2024-11-26T12:12:00Z,24.5236,24.5354,24.5209,24.5327,49.0
4244 +SYN2,2024-11-26T12:14:00Z,24.5327,24.5378,24.5228,24.5281,89.0
4245 +SYN2,2024-11-26T12:16:00Z,24.5281,24.5577,24.5258,24.5572,2.0
4246 +SYN2,2024-11-26T12:18:00Z,24.5572,24.5583,24.5516,24.5564,185.0
4247 +SYN2,2024-11-26T12:20:00Z,24.5564,24.5578,24.5247,24.5275,247.0
4248 +SYN2,2024-11-26T12:24:00Z,24.5275,24.5286,24.5252,24.5257,83.0
4249 +SYN2,2024-11-26T12:25:00Z,24.5257,24.5349,24.5224,24.5341,48.0
4250 +SYN2,2024-11-26T12:26:00Z,24.5341,24.5349,24.5194,24.5203,197.0
4251 +SYN2,2024-11-26T12:27:00Z,24.5203,24.5204,24.5189,24.5202,46.0
4252 +SYN2,2024-11-26T12:28:00Z,24.5202,24.5319,24.5186,24.531,187.0
4253 +SYN2,2024-11-26T12:31:00Z,24.531,24.5333,24.5151,24.5154,295.0
4254 +SYN2,2024-11-26T12:34:00Z,24.5154,24.5177,24.4959,24.4992,258.0
4255 +SYN2,2024-11-26T12:35:00Z,24.4992,24.5,24.4858,24.4877,99.0
4256 +SYN2,2024-11-26T12:39:00Z,24.4877,24.4915,24.4649,24.4697,21.0
4257 +SYN2,2024-11-26T12:43:00Z,24.4697,24.4702,24.4544,24.4544,1.0
4258 +SYN2,2024-11-26T12:44:00Z,24.4544,24.484,24.4523,24.4811,257.0
4259 +SYN2,2024-11-26T12:45:00Z,24.4811,24.4917,24.4789,24.4882,98.0
4260 +SYN2,2024-11-26T12:46:00Z,24.4882,24.4918,24.4767,24.4773,209.0
4261 +SYN2,2024-11-26T12:49:00Z,24.4773,24.4976,24.4753,24.4975,285.0
4262 +SYN2,2024-11-26T12:51:00Z,24.4975,24.5014,24.4933,24.4993,45.0
4263 +SYN2,2024-11-26T12:53:00Z,24.4993,24.5044,24.4888,24.4921,59.0
4264 +SYN2,2024-11-26T12:58:00Z,24.4921,24.5007,24.49,24.4981,275.0
4265 +SYN2,2024-11-26T13:00:00Z,24.4981,24.5001,24.4976,24.4981,232.0
4266 +SYN2,2024-11-26T13:01:00Z,24.4981,24.4986,24.4833,24.4849,90.0
4267 +SYN2,2024-11-26T13:03:00Z,24.4849,24.5095,24.4842,24.5062,268.0
4268 +SYN2,2024-11-26T13:04:00Z,24.5062,24.5182,24.5049,24.5155,139.0
4269 +SYN2,2024-11-26T13:05:00Z,24.5155,24.5595,24.5115,24.5593,262.0
4270 +SYN2,2024-11-26T13:06:00Z,24.5593,24.5605,24.5435,24.5439,237.0
4271 +SYN2,2024-11-26T13:07:00Z,24.5439,24.5713,24.5426,24.5686,293.0
4272 +SYN2,2024-11-26T13:08:00Z,24.5686,24.5726,24.5583,24.5597,89.0
4273 +SYN2,2024-11-26T13:10:00Z,24.5597,24.5601,24.5462,24.5467,163.0
4274 +SYN2,2024-11-26T13:12:00Z,24.5467,24.5489,24.5449,24.5455,126.0
4275 +SYN2,2024-11-26T13:13:00Z,24.5455,24.5466,24.5295,24.5303,9.0
4276 +SYN2,2024-11-26T13:16:00Z,24.5303,24.5331,24.5138,24.5153,136.0
4277 +SYN2,2024-11-26T13:20:00Z,24.5153,24.5637,24.5136,24.5632,89.0
4278 +SYN2,2024-11-26T13:21:00Z,24.5632,24.5866,24.5615,24.5809,196.0
4279 +SYN2,2024-11-26T13:23:00Z,24.5809,24.6022,24.5797,24.6,192.0
4280 +SYN2,2024-11-26T13:24:00Z,24.6,24.6003,24.589,24.5905,56.0
4281 +SYN2,2024-11-26T13:27:00Z,24.5905,24.6034,24.5905,24.5996,275.0
4282 +SYN2,2024-11-26T13:29:00Z,24.5996,24.6002,24.5902,24.5917,244.0
4283 +SYN2,2024-11-26T13:30:00Z,24.5917,24.5946,24.582,24.5836,155.0
4284 +SYN2,2024-11-26T13:32:00Z,24.5836,24.6147,24.5832,24.613,242.0
4285 +SYN2,2024-11-26T13:34:00Z,24.613,24.6154,24.5916,24.5925,207.0
4286 +SYN2,2024-11-26T13:35:00Z,24.5925,24.6216,24.5924,24.6166,169.0
4287 +SYN2,2024-11-26T13:37:00Z,24.6166,24.6176,24.6012,24.6038,169.0
4288 +SYN2,2024-11-26T13:38:00Z,24.6038,24.6039,24.5939,24.5948,288.0
4289 +SYN2,2024-11-26T13:39:00Z,24.5948,24.6398,24.5942,24.6389,233.0
4290 +SYN2,2024-11-26T13:41:00Z,24.6389,24.6393,24.6162,24.6182,184.0
4291 +SYN2,2024-11-26T13:42:00Z,24.6182,24.6235,24.6158,24.6176,74.0
4292 +SYN2,2024-11-26T13:44:00Z,24.6176,24.6181,24.6118,24.6125,38.0
4293 +SYN2,2024-11-26T13:45:00Z,24.6125,24.6145,24.5981,24.5986,79.0
4294 +SYN2,2024-11-26T13:46:00Z,24.5986,24.6065,24.5986,24.6017,35.0
4295 +SYN2,2024-11-26T13:47:00Z,24.6017,24.6373,24.5999,24.6361,262.0
4296 +SYN2,2024-11-26T13:50:00Z,24.6361,24.6365,24.612,24.6135,119.0
4297 +SYN2,2024-11-26T13:52:00Z,24.6135,24.6155,24.6124,24.6137,263.0
4298 +SYN2,2024-11-26T13:53:00Z,24.6137,24.6143,24.609,24.6091,9.0
4299 +SYN2,2024-11-26T13:54:00Z,24.6091,24.6109,24.5948,24.5962,275.0
4300 +SYN2,2024-11-26T13:55:00Z,24.5962,24.5985,24.5833,24.5843,249.0
4301 +SYN2,2024-11-26T13:56:00Z,24.5843,24.5857,24.5754,24.5772,239.0
4302 +SYN2,2024-11-26T13:57:00Z,24.5772,24.5777,24.5343,24.5349,28.0
4303 +SYN2,2024-11-26T13:58:00Z,24.5349,24.5548,24.5327,24.5526,130.0
4304 +SYN2,2024-11-26T14:00:00Z,24.5526,24.5544,24.5431,24.5456,78.0
4305 +SYN2,2024-11-26T14:01:00Z,24.5456,24.5682,24.5439,24.5636,287.0
4306 +SYN2,2024-11-26T14:02:00Z,24.5636,24.5646,24.5299,24.5312,224.0
4307 +SYN2,2024-11-26T14:06:00Z,24.5312,24.543,24.5303,24.5415,92.0
4308 +SYN2,2024-11-26T14:07:00Z,24.5415,24.5612,24.5393,24.5578,94.0
4309 +SYN2,2024-11-26T14:08:00Z,24.5578,24.5768,24.5574,24.5739,297.0
4310 +SYN2,2024-11-26T14:13:00Z,24.5739,24.6145,24.5734,24.6139,92.0
4311 +SYN2,2024-11-26T14:15:00Z,24.6139,24.6434,24.6138,24.6434,25.0
4312 +SYN2,2024-11-26T14:16:00Z,24.6434,24.645,24.6429,24.6441,138.0
4313 +SYN2,2024-11-26T14:17:00Z,24.6441,24.6752,24.6435,24.674,213.0
4314 +SYN2,2024-11-26T14:18:00Z,24.674,24.6789,24.6529,24.6561,67.0
4315 +SYN2,2024-11-26T14:20:00Z,24.6561,24.6576,24.6347,24.6397,261.0
4316 +SYN2,2024-11-26T14:21:00Z,24.6397,24.6709,24.6395,24.6692,88.0
4317 +SYN2,2024-11-26T14:22:00Z,24.6692,24.6793,24.6672,24.6786,167.0
4318 +SYN2,2024-11-26T14:23:00Z,24.6786,24.6883,24.6779,24.6838,13.0
4319 +SYN2,2024-11-26T14:27:00Z,24.6838,24.6913,24.6813,24.6885,119.0
4320 +SYN2,2024-11-26T14:29:00Z,24.6885,24.6903,24.6874,24.6875,240.0
4321 +SYN2,2024-11-26T14:30:00Z,24.6875,24.7099,24.685,24.7068,2995.0
4322 +SYN2,2024-11-26T14:32:00Z,24.7068,24.7105,24.6587,24.6633,391.0
4323 +SYN2,2024-11-26T14:33:00Z,24.6633,24.6641,24.65,24.6524,1368.0
4324 +SYN2,2024-11-26T14:34:00Z,24.6524,24.6547,24.6417,24.6471,2374.0
4325 +SYN2,2024-11-26T14:35:00Z,24.6471,24.6907,24.6448,24.6894,2342.0
4326 +SYN2,2024-11-26T14:36:00Z,24.6894,24.6922,24.6572,24.6597,4857.0
4327 +SYN2,2024-11-26T14:37:00Z,24.6597,24.6636,24.6191,24.6215,4239.0
4328 +SYN2,2024-11-26T14:38:00Z,24.6215,24.6565,24.6209,24.6546,3590.0
4329 +SYN2,2024-11-26T14:39:00Z,24.6546,24.6996,24.6542,24.6994,4391.0
4330 +SYN2,2024-11-26T14:40:00Z,24.6994,24.7008,24.6897,24.6922,3901.0
4331 +SYN2,2024-11-26T14:41:00Z,24.6922,24.6954,24.6823,24.685,4114.0
4332 +SYN2,2024-11-26T14:42:00Z,24.685,24.6865,24.654,24.6556,921.0
4333 +SYN2,2024-11-26T14:43:00Z,24.6556,24.6599,24.5653,24.5676,3742.0
4334 +SYN2,2024-11-26T14:44:00Z,24.5676,24.5724,24.52,24.5215,1396.0
4335 +SYN2,2024-11-26T14:45:00Z,24.5215,24.5434,24.5184,24.537,4908.0
4336 +SYN2,2024-11-26T14:46:00Z,24.537,24.638,24.5332,24.636,1729.0
4337 +SYN2,2024-11-26T14:47:00Z,24.636,24.6363,24.5658,24.5671,3687.0
4338 +SYN2,2024-11-26T14:48:00Z,24.5671,24.5721,24.5625,24.5684,3469.0
4339 +SYN2,2024-11-26T14:49:00Z,24.5684,24.5685,24.5624,24.5651,4779.0
4340 +SYN2,2024-11-26T14:50:00Z,24.5651,24.5658,24.5295,24.5298,4119.0
4341 +SYN2,2024-11-26T14:51:00Z,24.5298,24.5326,24.5231,24.5233,4917.0
4342 +SYN2,2024-11-26T14:52:00Z,24.5233,24.5253,24.5129,24.5136,4768.0
4343 +SYN2,2024-11-26T14:53:00Z,24.5136,24.5152,24.4855,24.4869,934.0
4344 +SYN2,2024-11-26T14:54:00Z,24.4869,24.4872,24.4821,24.4826,4569.0
4345 +SYN2,2024-11-26T14:55:00Z,24.4826,24.5518,24.4786,24.55,1972.0
4346 +SYN2,2024-11-26T14:56:00Z,24.55,24.5565,24.5499,24.5521,4301.0
4347 +SYN2,2024-11-26T14:57:00Z,24.5521,24.5555,24.5482,24.5489,4300.0
4348 +SYN2,2024-11-26T14:58:00Z,24.5489,24.5529,24.5422,24.5436,4182.0
4349 +SYN2,2024-11-26T15:01:00Z,24.5436,24.5452,24.5407,24.542,2677.0
4350 +SYN2,2024-11-26T15:02:00Z,24.542,24.554,24.5401,24.5518,2447.0
4351 +SYN2,2024-11-26T15:03:00Z,24.5518,24.5558,24.5199,24.5266,533.0
4352 +SYN2,2024-11-26T15:05:00Z,24.5266,24.5319,24.5162,24.5166,2356.0
4353 +SYN2,2024-11-26T15:06:00Z,24.5166,24.5188,24.5007,24.5015,603.0
4354 +SYN2,2024-11-26T15:07:00Z,24.5015,24.506,24.4777,24.4806,1597.0
4355 +SYN2,2024-11-26T15:08:00Z,24.4806,24.4846,24.4772,24.4812,1713.0
4356 +SYN2,2024-11-26T15:09:00Z,24.4812,24.5048,24.4807,24.4981,1239.0
4357 +SYN2,2024-11-26T15:10:00Z,24.4981,24.4998,24.4789,24.4831,3406.0
4358 +SYN2,2024-11-26T15:11:00Z,24.4831,24.4833,24.4341,24.4367,1405.0
4359 +SYN2,2024-11-26T15:12:00Z,24.4367,24.4397,24.3782,24.379,100.0
4360 +SYN2,2024-11-26T15:13:00Z,24.379,24.3813,24.3787,24.379,172.0
4361 +SYN2,2024-11-26T15:14:00Z,24.379,24.3996,24.3783,24.3995,2917.0
4362 +SYN2,2024-11-26T15:15:00Z,24.3995,24.4137,24.3981,24.4137,2246.0
4363 +SYN2,2024-11-26T15:16:00Z,24.4137,24.4323,24.4115,24.4296,1538.0
4364 +SYN2,2024-11-26T15:17:00Z,24.4296,24.4499,24.4288,24.4476,3277.0
4365 +SYN2,2024-11-26T15:18:00Z,24.4476,24.5152,24.4475,24.513,3551.0
4366 +SYN2,2024-11-26T15:19:00Z,24.513,24.5207,24.5127,24.5178,1219.0
4367 +SYN2,2024-11-26T15:20:00Z,24.5178,24.5192,24.4696,24.4714,2958.0
4368 +SYN2,2024-11-26T15:21:00Z,24.4714,24.4759,24.4242,24.4268,4447.0
4369 +SYN2,2024-11-26T15:22:00Z,24.4268,24.4272,24.3426,24.3427,4308.0
4370 +SYN2,2024-11-26T15:23:00Z,24.3427,24.3429,24.2909,24.2958,4371.0
4371 +SYN2,2024-11-26T15:24:00Z,24.2958,24.2963,24.2899,24.2954,4563.0
4372 +SYN2,2024-11-26T15:25:00Z,24.2954,24.2973,24.2669,24.2697,4538.0
4373 +SYN2,2024-11-26T15:26:00Z,24.2697,24.2708,24.2413,24.2415,179.0
4374 +SYN2,2024-11-26T15:27:00Z,24.2415,24.2954,24.238,24.2945,4991.0
4375 +SYN2,2024-11-26T15:28:00Z,24.2945,24.3614,24.2944,24.3579,1085.0
4376 +SYN2,2024-11-26T15:29:00Z,24.3579,24.4008,24.3568,24.3989,840.0
4377 +SYN2,2024-11-26T15:30:00Z,24.3989,24.399,24.3593,24.3635,680.0
4378 +SYN2,2024-11-26T15:31:00Z,24.3635,24.4008,24.3593,24.3984,3049.0
4379 +SYN2,2024-11-26T15:32:00Z,24.3984,24.4013,24.3742,24.3748,2812.0
4380 +SYN2,2024-11-26T15:33:00Z,24.3748,24.3759,24.3419,24.3435,3689.0
4381 +SYN2,2024-11-26T15:34:00Z,24.3435,24.3479,24.3409,24.3415,1290.0
4382 +SYN2,2024-11-26T15:35:00Z,24.3415,24.3451,24.2612,24.2621,729.0
4383 +SYN2,2024-11-26T15:36:00Z,24.2621,24.2927,24.2603,24.292,4673.0
4384 +SYN2,2024-11-26T15:37:00Z,24.292,24.2932,24.238,24.238,3495.0
4385 +SYN2,2024-11-26T15:38:00Z,24.238,24.2394,24.1315,24.1318,2051.0
4386 +SYN2,2024-11-26T15:39:00Z,24.1318,24.1447,24.1287,24.1425,4377.0
4387 +SYN2,2024-11-26T15:40:00Z,24.1425,24.1471,24.1094,24.1162,4198.0
4388 +SYN2,2024-11-26T15:41:00Z,24.1162,24.119,24.1118,24.1143,4554.0
4389 +SYN2,2024-11-26T15:42:00Z,24.1143,24.1173,24.0816,24.0844,3924.0
4390 +SYN2,2024-11-26T15:43:00Z,24.0844,24.0975,24.0813,24.0936,2720.0
4391 +SYN2,2024-11-26T15:44:00Z,24.0936,24.0937,24.088,24.0896,4551.0
4392 +SYN2,2024-11-26T15:45:00Z,24.0896,24.1619,24.0891,24.161,4728.0
4393 +SYN2,2024-11-26T15:46:00Z,24.161,24.1818,24.1597,24.1817,4024.0
4394 +SYN2,2024-11-26T15:47:00Z,24.1817,24.1848,24.1806,24.1839,2485.0
4395 +SYN2,2024-11-26T15:48:00Z,24.1839,24.1855,24.182,24.1826,2351.0
4396 +SYN2,2024-11-26T15:49:00Z,24.1826,24.1846,24.1601,24.1617,1063.0
4397 +SYN2,2024-11-26T15:50:00Z,24.1617,24.1633,24.1216,24.1242,4773.0
4398 +SYN2,2024-11-26T15:51:00Z,24.1242,24.1266,24.0907,24.0911,3530.0
4399 +SYN2,2024-11-26T15:52:00Z,24.0911,24.0915,24.0539,24.0548,850.0
4400 +SYN2,2024-11-26T15:53:00Z,24.0548,24.057,24.0405,24.0415,4810.0
4401 +SYN2,2024-11-26T15:54:00Z,24.0415,24.0426,24.0084,24.01,1039.0
4402 +SYN2,2024-11-26T15:55:00Z,24.01,24.0386,24.005,24.0348,3420.0
4403 +SYN2,2024-11-26T15:56:00Z,24.0348,24.0362,24.0303,24.0322,2032.0
4404 +SYN2,2024-11-26T15:57:00Z,24.0322,24.0646,24.03,24.06,3533.0
4405 +SYN2,2024-11-26T15:58:00Z,24.06,24.0636,24.0363,24.0386,3670.0
4406 +SYN2,2024-11-26T15:59:00Z,24.0386,24.0399,24.0019,24.0043,1202.0
4407 +SYN2,2024-11-26T16:00:00Z,24.0043,24.0155,24.0019,24.0146,3096.0
4408 +SYN2,2024-11-26T16:01:00Z,24.0146,24.057,24.0141,24.0565,4730.0
4409 +SYN2,2024-11-26T16:03:00Z,24.0565,24.0571,24.0288,24.0312,4006.0
4410 +SYN2,2024-11-26T16:04:00Z,24.0312,24.0313,24.0004,24.0026,1022.0
4411 +SYN2,2024-11-26T16:05:00Z,24.0026,24.0027,23.9463,23.9495,1065.0
4412 +SYN2,2024-11-26T16:06:00Z,23.9495,23.986,23.9487,23.9856,4811.0
4413 +SYN2,2024-11-26T16:07:00Z,23.9856,23.9922,23.9596,23.9619,3709.0
4414 +SYN2,2024-11-26T16:08:00Z,23.9619,23.9621,23.9184,23.9197,4667.0
4415 +SYN2,2024-11-26T16:09:00Z,23.9197,23.9203,23.911,23.9131,2511.0
4416 +SYN2,2024-11-26T16:10:00Z,23.9131,23.923,23.9118,23.9202,1024.0
4417 +SYN2,2024-11-26T16:11:00Z,23.9202,23.9618,23.9202,23.9594,1931.0
4418 +SYN2,2024-11-26T16:12:00Z,23.9594,23.9652,23.9282,23.9288,1212.0
4419 +SYN2,2024-11-26T16:13:00Z,23.9288,23.954,23.9277,23.9537,4491.0
4420 +SYN2,2024-11-26T16:15:00Z,23.9537,23.9579,23.9392,23.941,4868.0
4421 +SYN2,2024-11-26T16:16:00Z,23.941,23.9641,23.9346,23.9635,879.0
4422 +SYN2,2024-11-26T16:17:00Z,23.9635,23.9637,23.9108,23.9168,4387.0
4423 +SYN2,2024-11-26T16:18:00Z,23.9168,23.9214,23.8967,23.8992,3645.0
4424 +SYN2,2024-11-26T16:19:00Z,23.8992,23.9027,23.8291,23.8297,4686.0
4425 +SYN2,2024-11-26T16:20:00Z,23.8297,23.8322,23.827,23.8271,4628.0
4426 +SYN2,2024-11-26T16:21:00Z,23.8271,23.8288,23.7648,23.7673,516.0
4427 +SYN2,2024-11-26T16:22:00Z,23.7673,23.7694,23.7303,23.7345,684.0
4428 +SYN2,2024-11-26T16:23:00Z,23.7345,23.7373,23.7025,23.7033,4981.0
4429 +SYN2,2024-11-26T16:24:00Z,23.7033,23.7329,23.7022,23.7293,1632.0
4430 +SYN2,2024-11-26T16:25:00Z,23.7293,23.7308,23.7097,23.7133,4031.0
4431 +SYN2,2024-11-26T16:26:00Z,23.7133,23.7137,23.6879,23.6883,4617.0
4432 +SYN2,2024-11-26T16:27:00Z,23.6883,23.6888,23.6483,23.65,1268.0
4433 +SYN2,2024-11-26T16:28:00Z,23.65,23.6642,23.6483,23.6638,404.0
4434 +SYN2,2024-11-26T16:29:00Z,23.6638,23.6723,23.6597,23.6691,3789.0
4435 +SYN2,2024-11-26T16:30:00Z,23.6691,23.7175,23.6666,23.7168,1341.0
4436 +SYN2,2024-11-26T16:31:00Z,23.7168,23.7392,23.7155,23.7365,4544.0
4437 +SYN2,2024-11-26T16:32:00Z,23.7365,23.7373,23.6818,23.6841,2395.0
4438 +SYN2,2024-11-26T16:34:00Z,23.6841,23.6856,23.6546,23.657,1751.0
4439 +SYN2,2024-11-26T16:35:00Z,23.657,23.6572,23.6448,23.6473,4547.0
4440 +SYN2,2024-11-26T16:36:00Z,23.6473,23.6495,23.5949,23.5962,3510.0
4441 +SYN2,2024-11-26T16:37:00Z,23.5962,23.6136,23.5949,23.6118,4891.0
4442 +SYN2,2024-11-26T16:38:00Z,23.6118,23.6144,23.6115,23.6126,1134.0
4443 +SYN2,2024-11-26T16:39:00Z,23.6126,23.6145,23.5837,23.586,3545.0
4444 +SYN2,2024-11-26T16:40:00Z,23.586,23.5877,23.5796,23.5827,4457.0
4445 +SYN2,2024-11-26T16:41:00Z,23.5827,23.5836,23.548,23.5523,4684.0
4446 +SYN2,2024-11-26T16:42:00Z,23.5523,23.5529,23.4609,23.4641,783.0
4447 +SYN2,2024-11-26T16:43:00Z,23.4641,23.5193,23.4616,23.518,3455.0
4448 +SYN2,2024-11-26T16:44:00Z,23.518,23.5201,23.4987,23.5,3878.0
4449 +SYN2,2024-11-26T16:45:00Z,23.5,23.5268,23.4995,23.5248,4025.0
4450 +SYN2,2024-11-26T16:46:00Z,23.5248,23.5267,23.4999,23.5,2697.0
4451 +SYN2,2024-11-26T16:47:00Z,23.5,23.5004,23.4489,23.4492,4163.0
4452 +SYN2,2024-11-26T16:49:00Z,23.4492,23.4816,23.4475,23.4815,4235.0
4453 +SYN2,2024-11-26T16:50:00Z,23.4815,23.482,23.4655,23.468,2554.0
4454 +SYN2,2024-11-26T16:51:00Z,23.468,23.4686,23.4305,23.4313,4719.0
4455 +SYN2,2024-11-26T16:52:00Z,23.4313,23.4366,23.4171,23.4204,3044.0
4456 +SYN2,2024-11-26T16:53:00Z,23.4204,23.4328,23.4179,23.4326,3759.0
4457 +SYN2,2024-11-26T16:54:00Z,23.4326,23.4339,23.4057,23.4079,3683.0
4458 +SYN2,2024-11-26T16:55:00Z,23.4079,23.4092,23.4064,23.4067,2466.0
4459 +SYN2,2024-11-26T16:56:00Z,23.4067,23.4174,23.4052,23.4157,735.0
4460 +SYN2,2024-11-26T16:57:00Z,23.4157,23.4192,23.3946,23.3947,4276.0
4461 +SYN2,2024-11-26T16:58:00Z,23.3947,23.3959,23.3866,23.3895,2957.0
4462 +SYN2,2024-11-26T16:59:00Z,23.3895,23.4329,23.3884,23.4314,1543.0
4463 +SYN2,2024-11-26T17:00:00Z,23.4314,23.4339,23.3735,23.3747,4417.0
4464 +SYN2,2024-11-26T17:01:00Z,23.3747,23.3766,23.3496,23.3513,2197.0
4465 +SYN2,2024-11-26T17:02:00Z,23.3513,23.3526,23.3374,23.338,2905.0
4466 +SYN2,2024-11-26T17:03:00Z,23.338,23.3401,23.323,23.3254,1855.0
4467 +SYN2,2024-11-26T17:04:00Z,23.3254,23.3761,23.3234,23.3748,4177.0
4468 +SYN2,2024-11-26T17:05:00Z,23.3748,23.3774,23.3679,23.3689,1566.0
4469 +SYN2,2024-11-26T17:06:00Z,23.3689,23.4088,23.3687,23.4082,3977.0
4470 +SYN2,2024-11-26T17:07:00Z,23.4082,23.4097,23.356,23.3578,3885.0
4471 +SYN2,2024-11-26T17:08:00Z,23.3578,23.4049,23.3572,23.4036,2448.0
4472 +SYN2,2024-11-26T17:09:00Z,23.4036,23.4038,23.3904,23.3914,4218.0
4473 +SYN2,2024-11-26T17:10:00Z,23.3914,23.3949,23.3642,23.3656,4418.0
4474 +SYN2,2024-11-26T17:11:00Z,23.3656,23.367,23.3578,23.3584,2822.0
4475 +SYN2,2024-11-26T17:12:00Z,23.3584,23.3604,23.3326,23.3332,3200.0
4476 +SYN2,2024-11-26T17:13:00Z,23.3332,23.3362,23.3295,23.3322,1885.0
4477 +SYN2,2024-11-26T17:14:00Z,23.3322,23.3339,23.2865,23.288,4487.0
4478 +SYN2,2024-11-26T17:15:00Z,23.288,23.3285,23.2876,23.3278,3897.0
4479 +SYN2,2024-11-26T17:16:00Z,23.3278,23.3329,23.3224,23.332,789.0
4480 +SYN2,2024-11-26T17:17:00Z,23.332,23.3659,23.3309,23.3635,2389.0
4481 +SYN2,2024-11-26T17:18:00Z,23.3635,23.3645,23.3493,23.3498,1940.0
4482 +SYN2,2024-11-26T17:21:00Z,23.3498,23.3835,23.3482,23.3834,1207.0
4483 +SYN2,2024-11-26T17:22:00Z,23.3834,23.4358,23.3824,23.4343,2459.0
4484 +SYN2,2024-11-26T17:23:00Z,23.4343,23.4365,23.4287,23.4288,831.0
4485 +SYN2,2024-11-26T17:24:00Z,23.4288,23.4702,23.4266,23.4659,1712.0
4486 +SYN2,2024-11-26T17:25:00Z,23.4659,23.4679,23.4425,23.4428,858.0
4487 +SYN2,2024-11-26T17:26:00Z,23.4428,23.4969,23.4393,23.494,3284.0
4488 +SYN2,2024-11-26T17:27:00Z,23.494,23.4944,23.491,23.4925,3461.0
4489 +SYN2,2024-11-26T17:28:00Z,23.4925,23.4953,23.4738,23.4753,3467.0
4490 +SYN2,2024-11-26T17:29:00Z,23.4753,23.4993,23.4744,23.4989,2504.0
4491 +SYN2,2024-11-26T17:30:00Z,23.4989,23.5003,23.4707,23.4758,2596.0
4492 +SYN2,2024-11-26T17:31:00Z,23.4758,23.4787,23.4217,23.4244,3590.0
4493 +SYN2,2024-11-26T17:32:00Z,23.4244,23.4588,23.4221,23.4566,1078.0
4494 +SYN2,2024-11-26T17:33:00Z,23.4566,23.5014,23.454,23.4973,4102.0
4495 +SYN2,2024-11-26T17:34:00Z,23.4973,23.5572,23.496,23.5549,462.0
4496 +SYN2,2024-11-26T17:35:00Z,23.5549,23.5596,23.5541,23.5545,288.0
4497 +SYN2,2024-11-26T17:36:00Z,23.5545,23.5546,23.5002,23.5024,3751.0
4498 +SYN2,2024-11-26T17:39:00Z,23.5024,23.5087,23.4998,23.5072,4896.0
4499 +SYN2,2024-11-26T17:40:00Z,23.5072,23.5091,23.4746,23.4771,2617.0
4500 +SYN2,2024-11-26T17:41:00Z,23.4771,23.4951,23.4747,23.491,1056.0
4501 +SYN2,2024-11-26T17:42:00Z,23.491,23.4937,23.4847,23.4851,1388.0
4502 +SYN2,2024-11-26T17:43:00Z,23.4851,23.4864,23.4817,23.483,1927.0
4503 +SYN2,2024-11-26T17:44:00Z,23.483,23.4932,23.4829,23.4916,3150.0
4504 +SYN2,2024-11-26T17:45:00Z,23.4916,23.5093,23.4892,23.5089,4630.0
4505 +SYN2,2024-11-26T17:46:00Z,23.5089,23.5686,23.5077,23.5662,3792.0
4506 +SYN2,2024-11-26T17:47:00Z,23.5662,23.5762,23.5653,23.5737,1122.0
4507 +SYN2,2024-11-26T17:48:00Z,23.5737,23.5781,23.5736,23.5771,4253.0
4508 +SYN2,2024-11-26T17:49:00Z,23.5771,23.578,23.5556,23.5567,3488.0
4509 +SYN2,2024-11-26T17:50:00Z,23.5567,23.6071,23.5567,23.6034,722.0
4510 +SYN2,2024-11-26T17:51:00Z,23.6034,23.6473,23.6024,23.6466,3791.0
4511 +SYN2,2024-11-26T17:52:00Z,23.6466,23.6495,23.6039,23.6046,3735.0
4512 +SYN2,2024-11-26T17:54:00Z,23.6046,23.664,23.6024,23.6613,164.0
4513 +SYN2,2024-11-26T17:56:00Z,23.6613,23.7045,23.6565,23.7038,2730.0
4514 +SYN2,2024-11-26T17:57:00Z,23.7038,23.7071,23.6776,23.6823,2993.0
4515 +SYN2,2024-11-26T17:58:00Z,23.6823,23.6875,23.6137,23.6152,3729.0
4516 +SYN2,2024-11-26T17:59:00Z,23.6152,23.6241,23.6142,23.6216,2498.0
4517 +SYN2,2024-11-26T18:00:00Z,23.6216,23.6219,23.6191,23.6211,1780.0
4518 +SYN2,2024-11-26T18:01:00Z,23.6211,23.6554,23.6195,23.6544,3441.0
4519 +SYN2,2024-11-26T18:02:00Z,23.6544,23.658,23.6408,23.6431,222.0
4520 +SYN2,2024-11-26T18:03:00Z,23.6431,23.6757,23.6419,23.6735,925.0
4521 +SYN2,2024-11-26T18:04:00Z,23.6735,23.6746,23.6339,23.6371,4977.0
4522 +SYN2,2024-11-26T18:05:00Z,23.6371,23.6377,23.5973,23.6018,1323.0
4523 +SYN2,2024-11-26T18:06:00Z,23.6018,23.6695,23.5993,23.6678,1177.0
4524 +SYN2,2024-11-26T18:07:00Z,23.6678,23.6853,23.6642,23.6825,789.0
4525 +SYN2,2024-11-26T18:08:00Z,23.6825,23.764,23.6793,23.764,4230.0
4526 +SYN2,2024-11-26T18:09:00Z,23.764,23.766,23.7481,23.7502,3861.0
4527 +SYN2,2024-11-26T18:10:00Z,23.7502,23.7508,23.7311,23.733,1763.0
4528 +SYN2,2024-11-26T18:11:00Z,23.733,23.7673,23.7298,23.7671,632.0
4529 +SYN2,2024-11-26T18:12:00Z,23.7671,23.7798,23.7662,23.7792,2132.0
4530 +SYN2,2024-11-26T18:13:00Z,23.7792,23.7802,23.7712,23.7722,750.0
4531 +SYN2,2024-11-26T18:14:00Z,23.7722,23.774,23.7604,23.7639,3357.0
4532 +SYN2,2024-11-26T18:15:00Z,23.7639,23.768,23.7369,23.7371,4114.0
4533 +SYN2,2024-11-26T18:16:00Z,23.7371,23.7815,23.7357,23.779,2141.0
4534 +SYN2,2024-11-26T18:17:00Z,23.779,23.8223,23.7753,23.8197,1084.0
4535 +SYN2,2024-11-26T18:18:00Z,23.8197,23.8609,23.8161,23.8572,1237.0
4536 +SYN2,2024-11-26T18:19:00Z,23.8572,23.8735,23.8567,23.8717,1434.0
4537 +SYN2,2024-11-26T18:20:00Z,23.8717,23.8743,23.7823,23.7838,4103.0
4538 +SYN2,2024-11-26T18:21:00Z,23.7838,23.7872,23.7834,23.7855,4826.0
4539 +SYN2,2024-11-26T18:22:00Z,23.7855,23.7875,23.7318,23.7328,286.0
4540 +SYN2,2024-11-26T18:23:00Z,23.7328,23.7357,23.7181,23.7209,3776.0
4541 +SYN2,2024-11-26T18:24:00Z,23.7209,23.7235,23.6853,23.686,3962.0
4542 +SYN2,2024-11-26T18:25:00Z,23.686,23.7457,23.6826,23.7431,1123.0
4543 +SYN2,2024-11-26T18:26:00Z,23.7431,23.7702,23.7404,23.7682,1410.0
4544 +SYN2,2024-11-26T18:27:00Z,23.7682,23.7908,23.7667,23.7877,4252.0
4545 +SYN2,2024-11-26T18:28:00Z,23.7877,23.8347,23.785,23.8306,4351.0
4546 +SYN2,2024-11-26T18:29:00Z,23.8306,23.8381,23.8292,23.8341,1321.0
4547 +SYN2,2024-11-26T18:30:00Z,23.8341,23.8346,23.8091,23.8118,3506.0
4548 +SYN2,2024-11-26T18:31:00Z,23.8118,23.8135,23.7913,23.7925,940.0
4549 +SYN2,2024-11-26T18:32:00Z,23.7925,23.7929,23.7772,23.7774,754.0
4550 +SYN2,2024-11-26T18:33:00Z,23.7774,23.8008,23.775,23.8002,1445.0
4551 +SYN2,2024-11-26T18:34:00Z,23.8002,23.8004,23.7912,23.793,578.0
4552 +SYN2,2024-11-26T18:35:00Z,23.793,23.8195,23.7926,23.8183,1123.0
4553 +SYN2,2024-11-26T18:36:00Z,23.8183,23.82,23.7889,23.7936,3553.0
4554 +SYN2,2024-11-26T18:37:00Z,23.7936,23.852,23.7915,23.8498,3721.0
4555 +SYN2,2024-11-26T18:38:00Z,23.8498,23.922,23.8486,23.9199,570.0
4556 +SYN2,2024-11-26T18:39:00Z,23.9199,23.9785,23.9183,23.9744,4267.0
4557 +SYN2,2024-11-26T18:40:00Z,23.9744,23.9778,23.9655,23.9655,735.0
4558 +SYN2,2024-11-26T18:41:00Z,23.9655,23.9892,23.964,23.9879,4050.0
4559 +SYN2,2024-11-26T18:42:00Z,23.9879,24.0233,23.9866,24.023,884.0
4560 +SYN2,2024-11-26T18:43:00Z,24.023,24.0601,24.0207,24.0592,4931.0
4561 +SYN2,2024-11-26T18:44:00Z,24.0592,24.0847,24.0563,24.0803,953.0
4562 +SYN2,2024-11-26T18:45:00Z,24.0803,24.0803,24.0209,24.0228,3585.0
4563 +SYN2,2024-11-26T18:46:00Z,24.0228,24.0537,24.02,24.0504,127.0
4564 +SYN2,2024-11-26T18:47:00Z,24.0504,24.0892,24.0503,24.0892,544.0
4565 +SYN2,2024-11-26T18:48:00Z,24.0892,24.1226,24.0892,24.1214,1897.0
4566 +SYN2,2024-11-26T18:49:00Z,24.1214,24.1258,24.0847,24.0865,1630.0
4567 +SYN2,2024-11-26T18:50:00Z,24.0865,24.1203,24.0841,24.1176,2161.0
4568 +SYN2,2024-11-26T18:51:00Z,24.1176,24.1325,24.1157,24.132,4246.0
4569 +SYN2,2024-11-26T18:52:00Z,24.132,24.1401,24.131,24.136,321.0
4570 +SYN2,2024-11-26T18:53:00Z,24.136,24.1363,24.0832,24.0839,995.0
4571 +SYN2,2024-11-26T18:54:00Z,24.0839,24.1223,24.0831,24.1202,1584.0
4572 +SYN2,2024-11-26T18:55:00Z,24.1202,24.1204,24.1166,24.1194,3626.0
4573 +SYN2,2024-11-26T18:56:00Z,24.1194,24.1233,24.0948,24.0951,521.0
4574 +SYN2,2024-11-26T18:57:00Z,24.0951,24.0996,24.0921,24.0992,1045.0
4575 +SYN2,2024-11-26T18:58:00Z,24.0992,24.0998,24.0967,24.0983,313.0
4576 +SYN2,2024-11-26T18:59:00Z,24.0983,24.1008,24.0821,24.0871,2116.0
4577 +SYN2,2024-11-26T19:00:00Z,24.0871,24.1383,24.0853,24.1381,3443.0
4578 +SYN2,2024-11-26T19:01:00Z,24.1381,24.139,24.1101,24.1101,1633.0
4579 +SYN2,2024-11-26T19:03:00Z,24.1101,24.1249,24.1079,24.1209,4216.0
4580 +SYN2,2024-11-26T19:04:00Z,24.1209,24.1243,24.0917,24.0921,3571.0
4581 +SYN2,2024-11-26T19:05:00Z,24.0921,24.0941,24.066,24.0715,817.0
4582 +SYN2,2024-11-26T19:06:00Z,24.0715,24.0763,23.9735,23.9743,751.0
4583 +SYN2,2024-11-26T19:07:00Z,23.9743,23.9764,23.9238,23.9256,4083.0
4584 +SYN2,2024-11-26T19:08:00Z,23.9256,23.9269,23.8975,23.8983,4750.0
4585 +SYN2,2024-11-26T19:09:00Z,23.8983,23.8993,23.8705,23.8737,2113.0
4586 +SYN2,2024-11-26T19:11:00Z,23.8737,23.8844,23.8715,23.8835,684.0
4587 +SYN2,2024-11-26T19:12:00Z,23.8835,23.8956,23.8833,23.8943,2465.0
4588 +SYN2,2024-11-26T19:13:00Z,23.8943,23.9211,23.8928,23.918,3798.0
4589 +SYN2,2024-11-26T19:14:00Z,23.918,23.9212,23.8695,23.8715,2914.0
4590 +SYN2,2024-11-26T19:15:00Z,23.8715,23.9148,23.8711,23.9109,3059.0
4591 +SYN2,2024-11-26T19:16:00Z,23.9109,23.9109,23.8988,23.9008,1191.0
4592 +SYN2,2024-11-26T19:17:00Z,23.9008,23.9113,23.8952,23.9101,3414.0
4593 +SYN2,2024-11-26T19:18:00Z,23.9101,23.9101,23.9023,23.9033,1713.0
4594 +SYN2,2024-11-26T19:19:00Z,23.9033,23.9042,23.8348,23.8404,662.0
4595 +SYN2,2024-11-26T19:20:00Z,23.8404,23.846,23.8402,23.8456,1710.0
4596 +SYN2,2024-11-26T19:21:00Z,23.8456,23.8577,23.8427,23.855,3297.0
4597 +SYN2,2024-11-26T19:22:00Z,23.855,23.856,23.8222,23.8225,4307.0
4598 +SYN2,2024-11-26T19:23:00Z,23.8225,23.8238,23.8071,23.8088,1442.0
4599 +SYN2,2024-11-26T19:24:00Z,23.8088,23.811,23.8073,23.8108,2132.0
4600 +SYN2,2024-11-26T19:25:00Z,23.8108,23.813,23.79,23.7936,1363.0
4601 +SYN2,2024-11-26T19:26:00Z,23.7936,23.8716,23.7934,23.871,2161.0
4602 +SYN2,2024-11-26T19:27:00Z,23.871,23.8711,23.8518,23.8547,4456.0
4603 +SYN2,2024-11-26T19:28:00Z,23.8547,23.9315,23.8528,23.928,3552.0
4604 +SYN2,2024-11-26T19:29:00Z,23.928,23.9581,23.9262,23.9578,743.0
4605 +SYN2,2024-11-26T19:30:00Z,23.9578,23.9749,23.9545,23.9737,2612.0
4606 +SYN2,2024-11-26T19:31:00Z,23.9737,23.9762,23.9473,23.9491,1411.0
4607 +SYN2,2024-11-26T19:32:00Z,23.9491,23.972,23.946,23.971,3575.0
4608 +SYN2,2024-11-26T19:33:00Z,23.971,24.0114,23.9704,24.0089,3969.0
4609 +SYN2,2024-11-26T19:34:00Z,24.0089,24.0247,24.0089,24.0243,2319.0
4610 +SYN2,2024-11-26T19:35:00Z,24.0243,24.045,24.0228,24.0446,3624.0
4611 +SYN2,2024-11-26T19:36:00Z,24.0446,24.0448,24.0332,24.0358,2331.0
4612 +SYN2,2024-11-26T19:37:00Z,24.0358,24.0365,23.9966,23.9986,4605.0
4613 +SYN2,2024-11-26T19:38:00Z,23.9986,23.9988,23.9729,23.9779,2733.0
4614 +SYN2,2024-11-26T19:39:00Z,23.9779,23.978,23.9557,23.9564,701.0
4615 +SYN2,2024-11-26T19:40:00Z,23.9564,23.9734,23.955,23.973,2042.0
4616 +SYN2,2024-11-26T19:41:00Z,23.973,23.98,23.9725,23.9778,3608.0
4617 +SYN2,2024-11-26T19:43:00Z,23.9778,23.9967,23.9762,23.9941,2780.0
4618 +SYN2,2024-11-26T19:44:00Z,23.9941,24.0168,23.9867,24.0163,1979.0
4619 +SYN2,2024-11-26T19:45:00Z,24.0163,24.0289,24.0156,24.0273,2085.0
4620 +SYN2,2024-11-26T19:46:00Z,24.0273,24.029,24.0273,24.0273,397.0
4621 +SYN2,2024-11-26T19:47:00Z,24.0273,24.0284,23.9397,23.9436,1795.0
4622 +SYN2,2024-11-26T19:48:00Z,23.9436,23.9601,23.9411,23.9588,1428.0
4623 +SYN2,2024-11-26T19:49:00Z,23.9588,23.9592,23.9259,23.9326,1605.0
4624 +SYN2,2024-11-26T19:51:00Z,23.9326,23.9347,23.9058,23.9073,568.0
4625 +SYN2,2024-11-26T19:52:00Z,23.9073,23.9085,23.897,23.8974,462.0
4626 +SYN2,2024-11-26T19:53:00Z,23.8974,23.8978,23.8884,23.8911,1623.0
4627 +SYN2,2024-11-26T19:54:00Z,23.8911,23.892,23.8711,23.8765,2422.0
4628 +SYN2,2024-11-26T19:55:00Z,23.8765,23.8797,23.8756,23.8775,2615.0
4629 +SYN2,2024-11-26T19:56:00Z,23.8775,23.9401,23.8754,23.9362,1040.0
4630 +SYN2,2024-11-26T19:57:00Z,23.9362,23.9368,23.9084,23.9122,2759.0
4631 +SYN2,2024-11-26T19:58:00Z,23.9122,23.9129,23.8517,23.8521,1700.0
4632 +SYN2,2024-11-26T19:59:00Z,23.8521,23.8522,23.8249,23.8273,137.0
4633 +SYN2,2024-11-26T20:00:00Z,23.8273,23.8531,23.8253,23.8483,2595.0
4634 +SYN2,2024-11-26T20:01:00Z,23.8483,23.889,23.8476,23.8883,2937.0
4635 +SYN2,2024-11-26T20:02:00Z,23.8883,23.889,23.8371,23.8372,979.0
4636 +SYN2,2024-11-26T20:03:00Z,23.8372,23.8376,23.8029,23.8043,2921.0
4637 +SYN2,2024-11-26T20:04:00Z,23.8043,23.8063,23.699,23.6991,4104.0
4638 +SYN2,2024-11-26T20:05:00Z,23.6991,23.7013,23.6905,23.6922,486.0
4639 +SYN2,2024-11-26T20:06:00Z,23.6922,23.6962,23.6469,23.6503,3393.0
4640 +SYN2,2024-11-26T20:07:00Z,23.6503,23.6855,23.6487,23.6836,2353.0
4641 +SYN2,2024-11-26T20:08:00Z,23.6836,23.6873,23.6719,23.6723,746.0
4642 +SYN2,2024-11-26T20:09:00Z,23.6723,23.6817,23.6717,23.6812,4287.0
4643 +SYN2,2024-11-26T20:10:00Z,23.6812,23.6981,23.6782,23.6967,3885.0
4644 +SYN2,2024-11-26T20:11:00Z,23.6967,23.7217,23.6966,23.7205,3025.0
4645 +SYN2,2024-11-26T20:12:00Z,23.7205,23.7231,23.7016,23.7052,1672.0
4646 +SYN2,2024-11-26T20:13:00Z,23.7052,23.7055,23.6625,23.6651,3167.0
4647 +SYN2,2024-11-26T20:14:00Z,23.6651,23.8083,23.6623,23.8053,4617.0
4648 +SYN2,2024-11-26T20:15:00Z,23.8053,23.8056,23.7833,23.786,1552.0
4649 +SYN2,2024-11-26T20:16:00Z,23.786,23.7924,23.7781,23.7781,994.0
4650 +SYN2,2024-11-26T20:17:00Z,23.7781,23.7823,23.7252,23.7254,4393.0
4651 +SYN2,2024-11-26T20:18:00Z,23.7254,23.7383,23.7245,23.7362,4988.0
4652 +SYN2,2024-11-26T20:19:00Z,23.7362,23.7405,23.707,23.7073,2859.0
4653 +SYN2,2024-11-26T20:20:00Z,23.7073,23.7121,23.6595,23.6611,3269.0
4654 +SYN2,2024-11-26T20:21:00Z,23.6611,23.6646,23.65,23.6507,2230.0
4655 +SYN2,2024-11-26T20:22:00Z,23.6507,23.6535,23.6217,23.6228,2440.0
4656 +SYN2,2024-11-26T20:23:00Z,23.6228,23.6609,23.6202,23.6606,1497.0
4657 +SYN2,2024-11-26T20:24:00Z,23.6606,23.6665,23.6588,23.6664,866.0
4658 +SYN2,2024-11-26T20:25:00Z,23.6664,23.6675,23.6377,23.6382,206.0
4659 +SYN2,2024-11-26T20:26:00Z,23.6382,23.6722,23.6373,23.6696,3859.0
4660 +SYN2,2024-11-26T20:27:00Z,23.6696,23.6719,23.6639,23.665,3953.0
4661 +SYN2,2024-11-26T20:28:00Z,23.665,23.7026,23.6599,23.7021,928.0
4662 +SYN2,2024-11-26T20:29:00Z,23.7021,23.7419,23.7003,23.7375,3869.0
4663 +SYN2,2024-11-26T20:30:00Z,23.7375,23.7418,23.6892,23.6912,1948.0
4664 +SYN2,2024-11-26T20:31:00Z,23.6912,23.6931,23.6752,23.6767,3475.0
4665 +SYN2,2024-11-26T20:32:00Z,23.6767,23.7079,23.6758,23.7042,4414.0
4666 +SYN2,2024-11-26T20:33:00Z,23.7042,23.7533,23.7013,23.7502,2423.0
4667 +SYN2,2024-11-26T20:34:00Z,23.7502,23.7521,23.7399,23.7431,3204.0
4668 +SYN2,2024-11-26T20:35:00Z,23.7431,23.7448,23.6915,23.6973,2267.0
4669 +SYN2,2024-11-26T20:36:00Z,23.6973,23.6982,23.6054,23.6071,235.0
4670 +SYN2,2024-11-26T20:37:00Z,23.6071,23.6338,23.6029,23.6283,1082.0
4671 +SYN2,2024-11-26T20:38:00Z,23.6283,23.6289,23.5493,23.552,661.0
4672 +SYN2,2024-11-26T20:39:00Z,23.552,23.5524,23.5457,23.5487,1519.0
4673 +SYN2,2024-11-26T20:40:00Z,23.5487,23.5886,23.5464,23.5878,408.0
4674 +SYN2,2024-11-26T20:41:00Z,23.5878,23.589,23.5769,23.5813,2721.0
4675 +SYN2,2024-11-26T20:42:00Z,23.5813,23.5833,23.5648,23.5688,2216.0
4676 +SYN2,2024-11-26T20:43:00Z,23.5688,23.6263,23.5676,23.6225,3321.0
4677 +SYN2,2024-11-26T20:44:00Z,23.6225,23.6564,23.6198,23.6535,625.0
4678 +SYN2,2024-11-26T20:45:00Z,23.6535,23.6536,23.6343,23.6347,518.0
4679 +SYN2,2024-11-26T20:46:00Z,23.6347,23.6374,23.625,23.6283,2947.0
4680 +SYN2,2024-11-26T20:47:00Z,23.6283,23.6552,23.6254,23.6503,4716.0
4681 +SYN2,2024-11-26T20:48:00Z,23.6503,23.6517,23.6419,23.6454,2182.0
4682 +SYN2,2024-11-26T20:49:00Z,23.6454,23.693,23.6453,23.691,530.0
4683 +SYN2,2024-11-26T20:50:00Z,23.691,23.692,23.6734,23.6765,4079.0
4684 +SYN2,2024-11-26T20:51:00Z,23.6765,23.6786,23.6646,23.6678,4248.0
4685 +SYN2,2024-11-26T20:52:00Z,23.6678,23.7158,23.6664,23.7137,1404.0
4686 +SYN2,2024-11-26T20:53:00Z,23.7137,23.7163,23.6819,23.6833,986.0
4687 +SYN2,2024-11-26T20:54:00Z,23.6833,23.6858,23.6765,23.6792,1149.0
4688 +SYN2,2024-11-26T20:55:00Z,23.6792,23.6796,23.6104,23.6124,2817.0
4689 +SYN2,2024-11-26T20:56:00Z,23.6124,23.6125,23.5957,23.5959,2462.0
4690 +SYN2,2024-11-26T20:57:00Z,23.5959,23.6426,23.5949,23.6408,2579.0
4691 +SYN2,2024-11-26T20:58:00Z,23.6408,23.6457,23.6365,23.6454,811.0
4692 +SYN2,2024-11-26T20:59:00Z,23.6454,23.65,23.6355,23.6374,4817.0
4693 +SYN2,2024-11-26T21:00:00Z,23.6374,23.6861,23.6365,23.6806,817.0
4694 +SYN2,2024-11-26T21:04:00Z,23.6806,23.6819,23.6326,23.6337,120.0
4695 +SYN2,2024-11-26T21:05:00Z,23.6337,23.6459,23.6323,23.6448,25.0
4696 +SYN2,2024-11-26T21:06:00Z,23.6448,23.6543,23.6441,23.6541,261.0
4697 +SYN2,2024-11-26T21:09:00Z,23.6541,23.6558,23.6369,23.6382,110.0
4698 +SYN2,2024-11-26T21:11:00Z,23.6382,23.6385,23.6257,23.6285,148.0
4699 +SYN2,2024-11-26T21:13:00Z,23.6285,23.6294,23.6251,23.6256,168.0
4700 +SYN2,2024-11-26T21:14:00Z,23.6256,23.6395,23.6218,23.6385,288.0
4701 +SYN2,2024-11-26T21:17:00Z,23.6385,23.6407,23.6233,23.6245,203.0
4702 +SYN2,2024-11-26T21:18:00Z,23.6245,23.6274,23.6027,23.6036,189.0
4703 +SYN2,2024-11-26T21:19:00Z,23.6036,23.624,23.6003,23.6237,59.0
4704 +SYN2,2024-11-26T21:20:00Z,23.6237,23.6358,23.6188,23.6335,275.0
4705 +SYN2,2024-11-26T21:21:00Z,23.6335,23.6426,23.6316,23.6406,185.0
4706 +SYN2,2024-11-26T21:22:00Z,23.6406,23.6488,23.6367,23.6483,245.0
4707 +SYN2,2024-11-26T21:23:00Z,23.6483,23.6611,23.6443,23.6597,281.0
4708 +SYN2,2024-11-26T21:24:00Z,23.6597,23.6646,23.652,23.6529,145.0
4709 +SYN2,2024-11-26T21:25:00Z,23.6529,23.6773,23.6529,23.6768,192.0
4710 +SYN2,2024-11-26T21:26:00Z,23.6768,23.6792,23.6748,23.679,243.0
4711 +SYN2,2024-11-26T21:30:00Z,23.679,23.6816,23.6782,23.6796,60.0
4712 +SYN2,2024-11-26T21:31:00Z,23.6796,23.7043,23.6786,23.6994,140.0
4713 +SYN2,2024-11-26T21:33:00Z,23.6994,23.7061,23.6991,23.7046,254.0
4714 +SYN2,2024-11-26T21:34:00Z,23.7046,23.7245,23.7,23.7202,10.0
4715 +SYN2,2024-11-26T21:35:00Z,23.7202,23.7318,23.7184,23.7298,215.0
4716 +SYN2,2024-11-26T21:36:00Z,23.7298,23.7307,23.72,23.7205,64.0
4717 +SYN2,2024-11-26T21:37:00Z,23.7205,23.7424,23.7202,23.7412,3.0
4718 +SYN2,2024-11-26T21:38:00Z,23.7412,23.7454,23.7138,23.7174,64.0
4719 +SYN2,2024-11-26T21:39:00Z,23.7174,23.7297,23.716,23.7264,5.0
4720 +SYN2,2024-11-26T21:40:00Z,23.7264,23.7386,23.7248,23.7336,11.0
4721 +SYN2,2024-11-26T21:41:00Z,23.7336,23.735,23.7326,23.7348,286.0
4722 +SYN2,2024-11-26T21:44:00Z,23.7348,23.7355,23.7307,23.7316,252.0
4723 +SYN2,2024-11-26T21:45:00Z,23.7316,23.7334,23.7015,23.7058,134.0
4724 +SYN2,2024-11-26T21:46:00Z,23.7058,23.715,23.7026,23.7124,113.0
4725 +SYN2,2024-11-26T21:48:00Z,23.7124,23.7409,23.711,23.7408,117.0
4726 +SYN2,2024-11-26T21:49:00Z,23.7408,23.7419,23.7404,23.7414,68.0
4727 +SYN2,2024-11-26T21:50:00Z,23.7414,23.7629,23.7411,23.7574,245.0
4728 +SYN2,2024-11-26T21:51:00Z,23.7574,23.7576,23.7441,23.7451,269.0
4729 +SYN2,2024-11-26T21:59:00Z,23.7451,23.7568,23.7441,23.7559,74.0
4730 +SYN2,2024-11-26T22:02:00Z,23.7559,23.7832,23.7502,23.7821,88.0
4731 +SYN2,2024-11-26T22:04:00Z,23.7821,23.8118,23.7813,23.8112,47.0
4732 +SYN2,2024-11-26T22:05:00Z,23.8112,23.8189,23.811,23.8147,20.0
4733 +SYN2,2024-11-26T22:06:00Z,23.8147,23.8158,23.7917,23.7936,181.0
4734 +SYN2,2024-11-26T22:07:00Z,23.7936,23.7993,23.7927,23.7956,58.0
4735 +SYN2,2024-11-26T22:09:00Z,23.7956,23.7965,23.7744,23.7788,110.0
4736 +SYN2,2024-11-26T22:10:00Z,23.7788,23.7959,23.7762,23.7932,25.0
4737 +SYN2,2024-11-26T22:12:00Z,23.7932,23.7934,23.7852,23.7878,94.0
4738 +SYN2,2024-11-26T22:14:00Z,23.7878,23.7982,23.7878,23.7975,252.0
4739 +SYN2,2024-11-26T22:16:00Z,23.7975,23.8024,23.7974,23.7995,260.0
4740 +SYN2,2024-11-26T22:17:00Z,23.7995,23.809,23.7987,23.8068,29.0
4741 +SYN2,2024-11-26T22:18:00Z,23.8068,23.839,23.8038,23.8326,162.0
4742 +SYN2,2024-11-26T22:20:00Z,23.8326,23.8335,23.827,23.8276,76.0
4743 +SYN2,2024-11-26T22:21:00Z,23.8276,23.8312,23.8182,23.8188,136.0
4744 +SYN2,2024-11-26T22:22:00Z,23.8188,23.8277,23.8138,23.8274,227.0
4745 +SYN2,2024-11-26T22:23:00Z,23.8274,23.8282,23.8115,23.8157,61.0
4746 +SYN2,2024-11-26T22:24:00Z,23.8157,23.818,23.8123,23.8145,26.0
4747 +SYN2,2024-11-26T22:25:00Z,23.8145,23.8426,23.8129,23.8423,263.0
4748 +SYN2,2024-11-26T22:26:00Z,23.8423,23.8648,23.8403,23.8645,45.0
4749 +SYN2,2024-11-26T22:27:00Z,23.8645,23.9016,23.8609,23.9002,99.0
4750 +SYN2,2024-11-26T22:28:00Z,23.9002,23.9099,23.8974,23.9093,20.0
4751 +SYN2,2024-11-26T22:30:00Z,23.9093,23.9352,23.9092,23.9337,267.0
4752 +SYN2,2024-11-26T22:32:00Z,23.9337,23.9375,23.9119,23.9148,207.0
4753 +SYN2,2024-11-26T22:33:00Z,23.9148,23.9183,23.8785,23.8813,273.0
4754 +SYN2,2024-11-26T22:35:00Z,23.8813,23.8813,23.8645,23.8645,90.0
4755 +SYN2,2024-11-26T22:36:00Z,23.8645,23.8685,23.841,23.8412,3.0
4756 +SYN2,2024-11-26T22:37:00Z,23.8412,23.8431,23.8208,23.8258,219.0
4757 +SYN2,2024-11-26T22:38:00Z,23.8258,23.8271,23.7693,23.7695,142.0
4758 +SYN2,2024-11-26T22:39:00Z,23.7695,23.7704,23.7661,23.7671,27.0
4759 +SYN2,2024-11-26T22:41:00Z,23.7671,23.7732,23.7659,23.7701,7.0
4760 +SYN2,2024-11-26T22:44:00Z,23.7701,23.7702,23.7235,23.7276,12.0
4761 +SYN2,2024-11-26T22:45:00Z,23.7276,23.7311,23.6998,23.7013,21.0
4762 +SYN2,2024-11-26T22:47:00Z,23.7013,23.7038,23.6884,23.6918,217.0
4763 +SYN2,2024-11-26T22:48:00Z,23.6918,23.6927,23.6792,23.6806,124.0
4764 +SYN2,2024-11-26T22:52:00Z,23.6806,23.6939,23.6784,23.6924,122.0
4765 +SYN2,2024-11-26T22:55:00Z,23.6924,23.6952,23.6636,23.664,31.0
4766 +SYN2,2024-11-26T22:56:00Z,23.664,23.6661,23.6404,23.6437,257.0
4767 +SYN2,2024-11-26T23:00:00Z,23.6437,23.6638,23.6411,23.6636,256.0
4768 +SYN2,2024-11-26T23:01:00Z,23.6636,23.688,23.6624,23.6844,179.0
4769 +SYN2,2024-11-26T23:03:00Z,23.6844,23.6884,23.6841,23.6843,242.0
4770 +SYN2,2024-11-26T23:04:00Z,23.6843,23.7101,23.6839,23.7085,152.0
4771 +SYN2,2024-11-26T23:05:00Z,23.7085,23.7288,23.7071,23.7266,213.0
4772 +SYN2,2024-11-26T23:06:00Z,23.7266,23.7375,23.7251,23.7337,37.0
4773 +SYN2,2024-11-26T23:07:00Z,23.7337,23.7384,23.7228,23.7231,68.0
4774 +SYN2,2024-11-26T23:10:00Z,23.7231,23.7424,23.7217,23.7397,220.0
4775 +SYN2,2024-11-26T23:13:00Z,23.7397,23.7425,23.7377,23.7421,77.0
4776 +SYN2,2024-11-26T23:17:00Z,23.7421,23.7442,23.7286,23.7306,169.0
4777 +SYN2,2024-11-26T23:19:00Z,23.7306,23.7316,23.6904,23.6928,151.0
4778 +SYN2,2024-11-26T23:21:00Z,23.6928,23.7172,23.6911,23.7143,289.0
4779 +SYN2,2024-11-26T23:22:00Z,23.7143,23.7143,23.7042,23.7062,190.0
4780 +SYN2,2024-11-26T23:23:00Z,23.7062,23.7072,23.6942,23.6976,100.0
4781 +SYN2,2024-11-26T23:24:00Z,23.6976,23.7153,23.6954,23.7126,135.0
4782 +SYN2,2024-11-26T23:26:00Z,23.7126,23.73,23.7126,23.7299,64.0
4783 +SYN2,2024-11-26T23:27:00Z,23.7299,23.7315,23.7061,23.7091,174.0
4784 +SYN2,2024-11-26T23:29:00Z,23.7091,23.7123,23.6918,23.6934,14.0
4785 +SYN2,2024-11-26T23:35:00Z,23.6934,23.6948,23.6763,23.6763,184.0
4786 +SYN2,2024-11-26T23:38:00Z,23.6763,23.6828,23.6742,23.6817,252.0
4787 +SYN2,2024-11-26T23:39:00Z,23.6817,23.7049,23.6816,23.7042,158.0
4788 +SYN2,2024-11-26T23:40:00Z,23.7042,23.7292,23.7003,23.728,158.0
4789 +SYN2,2024-11-26T23:42:00Z,23.728,23.735,23.7257,23.732,238.0
4790 +SYN2,2024-11-26T23:43:00Z,23.732,23.7339,23.7259,23.7267,201.0
4791 +SYN2,2024-11-26T23:46:00Z,23.7267,23.729,23.7003,23.7025,218.0
4792 +SYN2,2024-11-26T23:47:00Z,23.7025,23.7287,23.7009,23.7275,30.0
4793 +SYN2,2024-11-26T23:51:00Z,23.7275,23.7293,23.6991,23.6992,125.0
4794 +SYN2,2024-11-26T23:53:00Z,23.6992,23.7001,23.657,23.6592,263.0
4795 +SYN2,2024-11-26T23:55:00Z,23.6592,23.6604,23.6491,23.6542,295.0
4796 +SYN2,2024-11-26T23:56:00Z,23.6542,23.6672,23.652,23.6666,258.0
4797 +SYN2,2024-11-26T23:57:00Z,23.6666,23.667,23.6361,23.638,295.0
4798 +SYN2,2024-11-26T23:58:00Z,23.638,23.6385,23.6037,23.6038,83.0
4799 +SYN2,2024-11-27T00:00:00Z,23.6038,23.607,23.5656,23.5672,38.0
4800 +SYN2,2024-11-27T00:02:00Z,23.5672,23.569,23.5587,23.5607,189.0
4801 +SYN2,2024-11-27T00:03:00Z,23.5607,23.5825,23.5596,23.5824,213.0
4802 +SYN2,2024-11-27T00:04:00Z,23.5824,23.5842,23.5778,23.5785,270.0
4803 +SYN2,2024-11-27T00:05:00Z,23.5785,23.5791,23.5708,23.5756,222.0
4804 +SYN2,2024-11-27T00:06:00Z,23.5756,23.5779,23.5578,23.559,39.0
4805 +SYN2,2024-11-27T00:07:00Z,23.559,23.5616,23.5571,23.558,50.0
4806 +SYN2,2024-11-27T00:08:00Z,23.558,23.5596,23.5359,23.5371,189.0
4807 +SYN2,2024-11-27T00:09:00Z,23.5371,23.539,23.5365,23.5384,165.0
4808 +SYN2,2024-11-27T00:11:00Z,23.5384,23.5551,23.5354,23.5536,120.0
4809 +SYN2,2024-11-27T00:13:00Z,23.5536,23.5659,23.5513,23.5657,203.0
4810 +SYN2,2024-11-27T00:17:00Z,23.5657,23.5889,23.5632,23.5859,74.0
4811 +SYN2,2024-11-27T00:21:00Z,23.5859,23.5862,23.5812,23.5812,96.0
4812 +SYN2,2024-11-27T00:22:00Z,23.5812,23.5908,23.5804,23.5889,24.0
4813 +SYN2,2024-11-27T00:23:00Z,23.5889,23.5892,23.5713,23.5727,290.0
4814 +SYN2,2024-11-27T00:24:00Z,23.5727,23.5747,23.5439,23.5467,137.0
4815 +SYN2,2024-11-27T00:27:00Z,23.5467,23.5555,23.5443,23.5554,123.0
4816 +SYN2,2024-11-27T00:28:00Z,23.5554,23.575,23.551,23.5747,268.0
4817 +SYN2,2024-11-27T00:30:00Z,23.5747,23.5747,23.559,23.5602,163.0
4818 +SYN2,2024-11-27T00:31:00Z,23.5602,23.5796,23.5591,23.5788,137.0
4819 +SYN2,2024-11-27T00:32:00Z,23.5788,23.5799,23.5709,23.5749,287.0
4820 +SYN2,2024-11-27T00:33:00Z,23.5749,23.5832,23.5736,23.5805,122.0
4821 +SYN2,2024-11-27T00:40:00Z,23.5805,23.6033,23.5758,23.6003,80.0
4822 +SYN2,2024-11-27T00:41:00Z,23.6003,23.6025,23.5902,23.5918,232.0
4823 +SYN2,2024-11-27T00:42:00Z,23.5918,23.5939,23.5845,23.5874,205.0
4824 +SYN2,2024-11-27T00:43:00Z,23.5874,23.589,23.5775,23.5797,124.0
4825 +SYN2,2024-11-27T00:44:00Z,23.5797,23.5805,23.5652,23.5657,269.0
4826 +SYN2,2024-11-27T00:46:00Z,23.5657,23.5683,23.5628,23.5644,33.0
4827 +SYN2,2024-11-27T00:47:00Z,23.5644,23.5655,23.5613,23.5638,65.0
4828 +SYN2,2024-11-27T00:48:00Z,23.5638,23.5816,23.5615,23.5803,146.0
4829 +SYN2,2024-11-27T00:49:00Z,23.5803,23.5805,23.5556,23.5571,28.0
4830 +SYN2,2024-11-27T00:52:00Z,23.5571,23.5819,23.5553,23.5817,96.0
4831 +SYN2,2024-11-27T00:53:00Z,23.5817,23.5892,23.5812,23.585,142.0
4832 +SYN2,2024-11-27T00:56:00Z,23.585,23.5972,23.5845,23.5936,148.0
4833 +SYN2,2024-11-27T00:57:00Z,23.5936,23.6221,23.5902,23.6202,127.0
4834 +SYN2,2024-11-27T00:58:00Z,23.6202,23.6446,23.62,23.6411,160.0
4835 +SYN2,2024-11-27T00:59:00Z,23.6411,23.6427,23.6272,23.6287,238.0
4836 +SYN2,2024-11-27T09:00:00Z,23.6287,23.6311,23.6055,23.6101,236.0
4837 +SYN2,2024-11-27T09:01:00Z,23.6101,23.617,23.5928,23.5942,280.0
4838 +SYN2,2024-11-27T09:02:00Z,23.5942,23.6307,23.5893,23.6303,299.0
4839 +SYN2,2024-11-27T09:06:00Z,23.6303,23.648,23.6278,23.6442,52.0
4840 +SYN2,2024-11-27T09:07:00Z,23.6442,23.6451,23.6372,23.6401,223.0
4841 +SYN2,2024-11-27T09:10:00Z,23.6401,23.645,23.6298,23.634,39.0
4842 +SYN2,2024-11-27T09:11:00Z,23.634,23.6346,23.617,23.6174,50.0
4843 +SYN2,2024-11-27T09:13:00Z,23.6174,23.6354,23.6116,23.6313,229.0
4844 +SYN2,2024-11-27T09:14:00Z,23.6313,23.6609,23.6303,23.6592,82.0
4845 +SYN2,2024-11-27T09:17:00Z,23.6592,23.66,23.6415,23.6443,28.0
4846 +SYN2,2024-11-27T09:20:00Z,23.6443,23.6463,23.6337,23.6344,44.0
4847 +SYN2,2024-11-27T09:21:00Z,23.6344,23.6432,23.633,23.6421,103.0
4848 +SYN2,2024-11-27T09:23:00Z,23.6421,23.6435,23.6343,23.6368,96.0
4849 +SYN2,2024-11-27T09:24:00Z,23.6368,23.6394,23.6341,23.638,249.0
4850 +SYN2,2024-11-27T09:31:00Z,23.638,23.6441,23.6358,23.6412,38.0
4851 +SYN2,2024-11-27T09:32:00Z,23.6412,23.6415,23.6011,23.6055,226.0
4852 +SYN2,2024-11-27T09:34:00Z,23.6055,23.6245,23.6047,23.622,101.0
4853 +SYN2,2024-11-27T09:35:00Z,23.622,23.6244,23.6092,23.6135,178.0
4854 +SYN2,2024-11-27T09:37:00Z,23.6135,23.6148,23.5919,23.5952,66.0
4855 +SYN2,2024-11-27T09:41:00Z,23.5952,23.5987,23.5611,23.5644,288.0
4856 +SYN2,2024-11-27T09:42:00Z,23.5644,23.5707,23.5634,23.5692,224.0
4857 +SYN2,2024-11-27T09:43:00Z,23.5692,23.5697,23.5526,23.5539,33.0
4858 +SYN2,2024-11-27T09:44:00Z,23.5539,23.5546,23.5285,23.5304,188.0
4859 +SYN2,2024-11-27T09:47:00Z,23.5304,23.5311,23.5144,23.5151,113.0
4860 +SYN2,2024-11-27T09:49:00Z,23.5151,23.5159,23.4799,23.4801,213.0
4861 +SYN2,2024-11-27T09:52:00Z,23.4801,23.4841,23.4753,23.4776,137.0
4862 +SYN2,2024-11-27T09:54:00Z,23.4776,23.4788,23.4576,23.4582,268.0
4863 +SYN2,2024-11-27T10:00:00Z,23.4582,23.46,23.4196,23.4202,15.0
4864 +SYN2,2024-11-27T10:01:00Z,23.4202,23.4237,23.4184,23.4225,171.0
4865 +SYN2,2024-11-27T10:02:00Z,23.4225,23.4285,23.4199,23.4265,96.0
4866 +SYN2,2024-11-27T10:04:00Z,23.4265,23.4271,23.4076,23.4083,253.0
4867 +SYN2,2024-11-27T10:06:00Z,23.4083,23.4143,23.4049,23.4135,206.0
4868 +SYN2,2024-11-27T10:07:00Z,23.4135,23.4154,23.401,23.4015,275.0
4869 +SYN2,2024-11-27T10:08:00Z,23.4015,23.425,23.4015,23.4246,251.0
4870 +SYN2,2024-11-27T10:11:00Z,23.4246,23.4596,23.4236,23.4571,139.0
4871 +SYN2,2024-11-27T10:12:00Z,23.4571,23.4588,23.4443,23.4444,220.0
4872 +SYN2,2024-11-27T10:13:00Z,23.4444,23.4457,23.4208,23.4231,115.0
4873 +SYN2,2024-11-27T10:15:00Z,23.4231,23.4235,23.3999,23.4011,220.0
4874 +SYN2,2024-11-27T10:16:00Z,23.4011,23.4228,23.3984,23.4213,208.0
4875 +SYN2,2024-11-27T10:18:00Z,23.4213,23.4381,23.4195,23.4365,208.0
4876 +SYN2,2024-11-27T10:21:00Z,23.4365,23.437,23.4348,23.4362,193.0
4877 +SYN2,2024-11-27T10:25:00Z,23.4362,23.4499,23.4354,23.4487,66.0
4878 +SYN2,2024-11-27T10:27:00Z,23.4487,23.4617,23.4449,23.4588,55.0
4879 +SYN2,2024-11-27T10:28:00Z,23.4588,23.4594,23.4545,23.4568,127.0
4880 +SYN2,2024-11-27T10:29:00Z,23.4568,23.4569,23.434,23.434,165.0
4881 +SYN2,2024-11-27T10:30:00Z,23.434,23.4362,23.4003,23.4038,215.0
4882 +SYN2,2024-11-27T10:33:00Z,23.4038,23.4257,23.4019,23.4234,28.0
4883 +SYN2,2024-11-27T10:35:00Z,23.4234,23.4417,23.4192,23.4399,147.0
4884 +SYN2,2024-11-27T10:36:00Z,23.4399,23.4607,23.4361,23.4557,284.0
4885 +SYN2,2024-11-27T10:37:00Z,23.4557,23.47,23.454,23.47,235.0
4886 +SYN2,2024-11-27T10:40:00Z,23.47,23.4904,23.4677,23.4883,237.0
4887 +SYN2,2024-11-27T10:41:00Z,23.4883,23.4908,23.4554,23.457,116.0
4888 +SYN2,2024-11-27T10:42:00Z,23.457,23.4599,23.4423,23.4449,29.0
4889 +SYN2,2024-11-27T10:43:00Z,23.4449,23.4454,23.4172,23.4205,239.0
4890 +SYN2,2024-11-27T10:45:00Z,23.4205,23.4212,23.4149,23.4153,96.0
4891 +SYN2,2024-11-27T10:47:00Z,23.4153,23.4192,23.4117,23.4151,128.0
4892 +SYN2,2024-11-27T10:48:00Z,23.4151,23.4432,23.4138,23.441,2.0
4893 +SYN2,2024-11-27T10:49:00Z,23.441,23.4414,23.4339,23.4357,31.0
4894 +SYN2,2024-11-27T10:51:00Z,23.4357,23.4542,23.435,23.4535,94.0
4895 +SYN2,2024-11-27T10:53:00Z,23.4535,23.4566,23.4453,23.4477,299.0
4896 +SYN2,2024-11-27T10:55:00Z,23.4477,23.4557,23.4432,23.4506,161.0
4897 +SYN2,2024-11-27T10:56:00Z,23.4506,23.4651,23.4487,23.4625,182.0
4898 +SYN2,2024-11-27T10:58:00Z,23.4625,23.4637,23.4126,23.4135,60.0
4899 +SYN2,2024-11-27T10:59:00Z,23.4135,23.4302,23.4106,23.4301,166.0
4900 +SYN2,2024-11-27T11:00:00Z,23.4301,23.4316,23.4253,23.4257,86.0
4901 +SYN2,2024-11-27T11:01:00Z,23.4257,23.4344,23.4225,23.4336,67.0
4902 +SYN2,2024-11-27T11:04:00Z,23.4336,23.4341,23.4125,23.4131,10.0
4903 +SYN2,2024-11-27T11:06:00Z,23.4131,23.4149,23.3906,23.3923,242.0
4904 +SYN2,2024-11-27T11:07:00Z,23.3923,23.4175,23.3904,23.4166,2.0
4905 +SYN2,2024-11-27T11:08:00Z,23.4166,23.4267,23.4152,23.4243,72.0
4906 +SYN2,2024-11-27T11:11:00Z,23.4243,23.4253,23.4056,23.4071,9.0
4907 +SYN2,2024-11-27T11:12:00Z,23.4071,23.4194,23.4067,23.4182,229.0
4908 +SYN2,2024-11-27T11:13:00Z,23.4182,23.438,23.4147,23.4367,4.0
4909 +SYN2,2024-11-27T11:15:00Z,23.4367,23.4373,23.4246,23.4257,289.0
4910 +SYN2,2024-11-27T11:18:00Z,23.4257,23.4282,23.4088,23.4106,260.0
4911 +SYN2,2024-11-27T11:19:00Z,23.4106,23.4378,23.41,23.4378,68.0
4912 +SYN2,2024-11-27T11:20:00Z,23.4378,23.4411,23.427,23.4274,67.0
4913 +SYN2,2024-11-27T11:21:00Z,23.4274,23.4287,23.4227,23.4243,247.0
4914 +SYN2,2024-11-27T11:22:00Z,23.4243,23.4261,23.41,23.4114,278.0
4915 +SYN2,2024-11-27T11:24:00Z,23.4114,23.4142,23.3984,23.4003,261.0
4916 +SYN2,2024-11-27T11:26:00Z,23.4003,23.4088,23.3988,23.4048,145.0
4917 +SYN2,2024-11-27T11:27:00Z,23.4048,23.4248,23.4037,23.424,113.0
4918 +SYN2,2024-11-27T11:28:00Z,23.424,23.4264,23.4097,23.4108,160.0
4919 +SYN2,2024-11-27T11:29:00Z,23.4108,23.4254,23.4108,23.4242,35.0
4920 +SYN2,2024-11-27T11:30:00Z,23.4242,23.4278,23.423,23.4262,254.0
4921 +SYN2,2024-11-27T11:31:00Z,23.4262,23.4277,23.4061,23.4075,270.0
4922 +SYN2,2024-11-27T11:33:00Z,23.4075,23.4193,23.4031,23.4193,50.0
4923 +SYN2,2024-11-27T11:34:00Z,23.4193,23.4262,23.4192,23.4252,56.0
4924 +SYN2,2024-11-27T11:36:00Z,23.4252,23.4472,23.4246,23.4421,120.0
4925 +SYN2,2024-11-27T11:39:00Z,23.4421,23.4455,23.4412,23.4447,72.0
4926 +SYN2,2024-11-27T11:40:00Z,23.4447,23.4453,23.4433,23.445,192.0
4927 +SYN2,2024-11-27T11:41:00Z,23.445,23.4556,23.443,23.4542,178.0
4928 +SYN2,2024-11-27T11:43:00Z,23.4542,23.455,23.4305,23.432,181.0
4929 +SYN2,2024-11-27T11:44:00Z,23.432,23.4363,23.43,23.4316,25.0
4930 +SYN2,2024-11-27T11:46:00Z,23.4316,23.4337,23.4216,23.4248,24.0
4931 +SYN2,2024-11-27T11:47:00Z,23.4248,23.4274,23.4069,23.4092,278.0
4932 +SYN2,2024-11-27T11:48:00Z,23.4092,23.4093,23.4077,23.408,176.0
4933 +SYN2,2024-11-27T11:49:00Z,23.408,23.4305,23.406,23.425,168.0
4934 +SYN2,2024-11-27T11:51:00Z,23.425,23.426,23.3958,23.3963,180.0
4935 +SYN2,2024-11-27T11:53:00Z,23.3963,23.3963,23.3877,23.3901,269.0
4936 +SYN2,2024-11-27T11:54:00Z,23.3901,23.3905,23.3845,23.3856,140.0
4937 +SYN2,2024-11-27T11:55:00Z,23.3856,23.3869,23.384,23.3866,22.0
4938 +SYN2,2024-11-27T11:58:00Z,23.3866,23.3872,23.3857,23.3861,131.0
4939 +SYN2,2024-11-27T11:59:00Z,23.3861,23.3979,23.3813,23.3958,22.0
4940 +SYN2,2024-11-27T12:00:00Z,23.3958,23.4121,23.3943,23.4096,217.0
4941 +SYN2,2024-11-27T12:03:00Z,23.4096,23.4462,23.4063,23.4461,109.0
4942 +SYN2,2024-11-27T12:06:00Z,23.4461,23.4465,23.4357,23.4377,199.0
4943 +SYN2,2024-11-27T12:07:00Z,23.4377,23.4382,23.4211,23.4225,149.0
4944 +SYN2,2024-11-27T12:08:00Z,23.4225,23.4239,23.3884,23.3938,257.0
4945 +SYN2,2024-11-27T12:10:00Z,23.3938,23.4105,23.3915,23.4098,205.0
4946 +SYN2,2024-11-27T12:12:00Z,23.4098,23.4129,23.3943,23.3976,50.0
4947 +SYN2,2024-11-27T12:13:00Z,23.3976,23.4067,23.3971,23.4062,15.0
4948 +SYN2,2024-11-27T12:14:00Z,23.4062,23.4069,23.3899,23.3901,232.0
4949 +SYN2,2024-11-27T12:15:00Z,23.3901,23.392,23.3768,23.3769,186.0
4950 +SYN2,2024-11-27T12:16:00Z,23.3769,23.3791,23.3733,23.3765,83.0
4951 +SYN2,2024-11-27T12:17:00Z,23.3765,23.3849,23.3732,23.3834,75.0
4952 +SYN2,2024-11-27T12:19:00Z,23.3834,23.4423,23.3822,23.4398,39.0
4953 +SYN2,2024-11-27T12:20:00Z,23.4398,23.4401,23.4286,23.4321,222.0
4954 +SYN2,2024-11-27T12:22:00Z,23.4321,23.4354,23.4093,23.4116,140.0
4955 +SYN2,2024-11-27T12:23:00Z,23.4116,23.429,23.4101,23.4286,7.0
4956 +SYN2,2024-11-27T12:26:00Z,23.4286,23.4404,23.4283,23.4397,290.0
4957 +SYN2,2024-11-27T12:27:00Z,23.4397,23.4414,23.4321,23.4328,17.0
4958 +SYN2,2024-11-27T12:28:00Z,23.4328,23.4344,23.3926,23.3938,120.0
4959 +SYN2,2024-11-27T12:31:00Z,23.3938,23.3971,23.3711,23.3775,42.0
4960 +SYN2,2024-11-27T12:32:00Z,23.3775,23.3803,23.3564,23.3602,278.0
4961 +SYN2,2024-11-27T12:33:00Z,23.3602,23.3692,23.3576,23.3688,242.0
4962 +SYN2,2024-11-27T12:36:00Z,23.3688,23.3796,23.3683,23.3773,69.0
4963 +SYN2,2024-11-27T12:38:00Z,23.3773,23.3964,23.3769,23.3924,202.0
4964 +SYN2,2024-11-27T12:39:00Z,23.3924,23.3958,23.3874,23.3886,19.0
4965 +SYN2,2024-11-27T12:41:00Z,23.3886,23.4018,23.3873,23.3993,280.0
4966 +SYN2,2024-11-27T12:44:00Z,23.3993,23.4003,23.3918,23.396,296.0
4967 +SYN2,2024-11-27T12:45:00Z,23.396,23.3969,23.3742,23.3761,77.0
4968 +SYN2,2024-11-27T12:46:00Z,23.3761,23.3924,23.3719,23.3913,91.0
4969 +SYN2,2024-11-27T12:48:00Z,23.3913,23.4221,23.39,23.4169,260.0
4970 +SYN2,2024-11-27T12:49:00Z,23.4169,23.4294,23.4145,23.4287,156.0
4971 +SYN2,2024-11-27T12:53:00Z,23.4287,23.4496,23.4272,23.4472,219.0
4972 +SYN2,2024-11-27T12:54:00Z,23.4472,23.4502,23.4337,23.4339,24.0
4973 +SYN2,2024-11-27T12:55:00Z,23.4339,23.4348,23.4041,23.4072,297.0
4974 +SYN2,2024-11-27T12:57:00Z,23.4072,23.4219,23.4057,23.4214,53.0
4975 +SYN2,2024-11-27T13:01:00Z,23.4214,23.4289,23.4179,23.425,224.0
4976 +SYN2,2024-11-27T13:02:00Z,23.425,23.4263,23.389,23.3907,67.0
4977 +SYN2,2024-11-27T13:03:00Z,23.3907,23.3941,23.3652,23.3718,260.0
4978 +SYN2,2024-11-27T13:04:00Z,23.3718,23.4004,23.3704,23.3971,163.0
4979 +SYN2,2024-11-27T13:05:00Z,23.3971,23.4018,23.3888,23.3913,112.0
4980 +SYN2,2024-11-27T13:06:00Z,23.3913,23.3939,23.3768,23.3775,29.0
4981 +SYN2,2024-11-27T13:08:00Z,23.3775,23.3805,23.3716,23.3716,23.0
4982 +SYN2,2024-11-27T13:09:00Z,23.3716,23.3729,23.3615,23.3663,22.0
4983 +SYN2,2024-11-27T13:12:00Z,23.3663,23.3709,23.3648,23.3692,150.0
4984 +SYN2,2024-11-27T13:14:00Z,23.3692,23.396,23.3662,23.3909,239.0
4985 +SYN2,2024-11-27T13:15:00Z,23.3909,23.3981,23.3673,23.3693,242.0
4986 +SYN2,2024-11-27T13:18:00Z,23.3693,23.3726,23.366,23.3689,238.0
4987 +SYN2,2024-11-27T13:20:00Z,23.3689,23.3733,23.358,23.3583,154.0
4988 +SYN2,2024-11-27T13:21:00Z,23.3583,23.363,23.3371,23.3379,160.0
4989 +SYN2,2024-11-27T13:22:00Z,23.3379,23.3392,23.3213,23.3238,63.0
4990 +SYN2,2024-11-27T13:23:00Z,23.3238,23.3239,23.3123,23.3125,226.0
4991 +SYN2,2024-11-27T13:24:00Z,23.3125,23.3311,23.3104,23.3307,179.0
4992 +SYN2,2024-11-27T13:25:00Z,23.3307,23.3321,23.33,23.3303,210.0
4993 +SYN2,2024-11-27T13:28:00Z,23.3303,23.3329,23.3021,23.3026,291.0
4994 +SYN2,2024-11-27T13:30:00Z,23.3026,23.3031,23.2865,23.2877,259.0
4995 +SYN2,2024-11-27T13:31:00Z,23.2877,23.2967,23.2843,23.2962,15.0
4996 +SYN2,2024-11-27T13:32:00Z,23.2962,23.306,23.2956,23.305,207.0
4997 +SYN2,2024-11-27T13:34:00Z,23.305,23.3622,23.3032,23.3594,178.0
4998 +SYN2,2024-11-27T13:35:00Z,23.3594,23.3628,23.3388,23.3399,117.0
4999 +SYN2,2024-11-27T13:36:00Z,23.3399,23.3427,23.3372,23.3377,203.0
5000 +SYN2,2024-11-27T13:37:00Z,23.3377,23.3377,23.3244,23.3259,148.0
5001 +SYN2,2024-11-27T13:38:00Z,23.3259,23.3414,23.3212,23.3395,296.0
5002 +SYN2,2024-11-27T13:40:00Z,23.3395,23.3398,23.335,23.3362,181.0
5003 +SYN2,2024-11-27T13:43:00Z,23.3362,23.3522,23.3344,23.351,94.0
5004 +SYN2,2024-11-27T13:46:00Z,23.351,23.3539,23.3477,23.3489,237.0
5005 +SYN2,2024-11-27T13:47:00Z,23.3489,23.3596,23.3452,23.3594,75.0
5006 +SYN2,2024-11-27T13:48:00Z,23.3594,23.3651,23.3384,23.3427,26.0
5007 +SYN2,2024-11-27T13:53:00Z,23.3427,23.3724,23.3416,23.3687,110.0
5008 +SYN2,2024-11-27T13:58:00Z,23.3687,23.3724,23.3669,23.3705,298.0
5009 +SYN2,2024-11-27T14:01:00Z,23.3705,23.3841,23.3697,23.3829,211.0
5010 +SYN2,2024-11-27T14:02:00Z,23.3829,23.3833,23.3696,23.3704,27.0
5011 +SYN2,2024-11-27T14:03:00Z,23.3704,23.4059,23.3702,23.4033,292.0
5012 +SYN2,2024-11-27T14:04:00Z,23.4033,23.4037,23.3815,23.3818,129.0
5013 +SYN2,2024-11-27T14:05:00Z,23.3818,23.3852,23.355,23.3577,112.0
5014 +SYN2,2024-11-27T14:06:00Z,23.3577,23.3806,23.3573,23.3784,11.0
5015 +SYN2,2024-11-27T14:07:00Z,23.3784,23.3817,23.3655,23.3676,19.0
5016 +SYN2,2024-11-27T14:09:00Z,23.3676,23.3687,23.3352,23.3357,45.0
5017 +SYN2,2024-11-27T14:11:00Z,23.3357,23.3365,23.3351,23.3365,299.0
5018 +SYN2,2024-11-27T14:12:00Z,23.3365,23.3374,23.3308,23.3316,291.0
5019 +SYN2,2024-11-27T14:13:00Z,23.3316,23.3318,23.3138,23.3142,102.0
5020 +SYN2,2024-11-27T14:14:00Z,23.3142,23.3148,23.2914,23.2928,169.0
5021 +SYN2,2024-11-27T14:16:00Z,23.2928,23.3005,23.2915,23.2993,68.0
5022 +SYN2,2024-11-27T14:17:00Z,23.2993,23.3001,23.2877,23.2889,282.0
5023 +SYN2,2024-11-27T14:19:00Z,23.2889,23.2986,23.2879,23.2982,63.0
5024 +SYN2,2024-11-27T14:21:00Z,23.2982,23.3084,23.2944,23.3064,81.0
5025 +SYN2,2024-11-27T14:22:00Z,23.3064,23.3178,23.3058,23.3121,275.0
5026 +SYN2,2024-11-27T14:23:00Z,23.3121,23.329,23.3107,23.3278,298.0
5027 +SYN2,2024-11-27T14:24:00Z,23.3278,23.3282,23.3184,23.3235,48.0
5028 +SYN2,2024-11-27T14:25:00Z,23.3235,23.3274,23.3199,23.3244,258.0
5029 +SYN2,2024-11-27T14:26:00Z,23.3244,23.3391,23.3204,23.339,15.0
5030 +SYN2,2024-11-27T14:28:00Z,23.339,23.3666,23.336,23.3649,292.0
5031 +SYN2,2024-11-27T14:30:00Z,23.3649,23.3654,23.3144,23.3166,1251.0
5032 +SYN2,2024-11-27T14:31:00Z,23.3166,23.3183,23.2621,23.2627,3126.0
5033 +SYN2,2024-11-27T14:32:00Z,23.2627,23.2817,23.2613,23.2807,4204.0
5034 +SYN2,2024-11-27T14:33:00Z,23.2807,23.3138,23.2778,23.3125,3952.0
5035 +SYN2,2024-11-27T14:34:00Z,23.3125,23.3477,23.3109,23.3469,4395.0
5036 +SYN2,2024-11-27T14:35:00Z,23.3469,23.351,23.3116,23.3126,2298.0
5037 +SYN2,2024-11-27T14:36:00Z,23.3126,23.3405,23.3079,23.3383,3690.0
5038 +SYN2,2024-11-27T14:37:00Z,23.3383,23.3392,23.3074,23.3082,3557.0
5039 +SYN2,2024-11-27T14:38:00Z,23.3082,23.3104,23.2455,23.2467,4997.0
5040 +SYN2,2024-11-27T14:39:00Z,23.2467,23.2935,23.2441,23.2917,3254.0
5041 +SYN2,2024-11-27T14:40:00Z,23.2917,23.2948,23.2897,23.2936,399.0
5042 +SYN2,2024-11-27T14:41:00Z,23.2936,23.3466,23.2934,23.3459,496.0
5043 +SYN2,2024-11-27T14:42:00Z,23.3459,23.385,23.3448,23.3849,2234.0
5044 +SYN2,2024-11-27T14:43:00Z,23.3849,23.386,23.3814,23.3826,3549.0
5045 +SYN2,2024-11-27T14:44:00Z,23.3826,23.387,23.3601,23.362,4463.0
5046 +SYN2,2024-11-27T14:45:00Z,23.362,23.4018,23.3612,23.3985,565.0
5047 +SYN2,2024-11-27T14:46:00Z,23.3985,23.3988,23.362,23.3647,4891.0
5048 +SYN2,2024-11-27T14:48:00Z,23.3647,23.4209,23.3626,23.4201,3053.0
5049 +SYN2,2024-11-27T14:49:00Z,23.4201,23.4217,23.4131,23.4144,1643.0
5050 +SYN2,2024-11-27T14:50:00Z,23.4144,23.4285,23.4128,23.426,605.0
5051 +SYN2,2024-11-27T14:51:00Z,23.426,23.4809,23.4233,23.4791,2702.0
5052 +SYN2,2024-11-27T14:52:00Z,23.4791,23.4793,23.4513,23.4515,3311.0
5053 +SYN2,2024-11-27T14:53:00Z,23.4515,23.4521,23.4227,23.4244,2899.0
5054 +SYN2,2024-11-27T14:54:00Z,23.4244,23.4298,23.4078,23.411,990.0
5055 +SYN2,2024-11-27T14:55:00Z,23.411,23.4141,23.3919,23.3946,4560.0
5056 +SYN2,2024-11-27T14:56:00Z,23.3946,23.3968,23.3549,23.3551,2190.0
5057 +SYN2,2024-11-27T14:57:00Z,23.3551,23.3586,23.2997,23.3009,951.0
5058 +SYN2,2024-11-27T14:58:00Z,23.3009,23.3027,23.2648,23.2663,734.0
5059 +SYN2,2024-11-27T14:59:00Z,23.2663,23.2786,23.2631,23.2782,4006.0
5060 +SYN2,2024-11-27T15:00:00Z,23.2782,23.2819,23.2769,23.2772,1545.0
5061 +SYN2,2024-11-27T15:01:00Z,23.2772,23.2783,23.2543,23.2565,1777.0
5062 +SYN2,2024-11-27T15:02:00Z,23.2565,23.2588,23.2395,23.2407,4243.0
5063 +SYN2,2024-11-27T15:03:00Z,23.2407,23.3217,23.2391,23.3192,1773.0
5064 +SYN2,2024-11-27T15:04:00Z,23.3192,23.3207,23.2954,23.2957,717.0
5065 +SYN2,2024-11-27T15:05:00Z,23.2957,23.3325,23.2923,23.3313,3969.0
5066 +SYN2,2024-11-27T15:07:00Z,23.3313,23.3467,23.3297,23.3461,560.0
5067 +SYN2,2024-11-27T15:08:00Z,23.3461,23.397,23.3409,23.3962,3667.0
5068 +SYN2,2024-11-27T15:09:00Z,23.3962,23.406,23.3956,23.4054,4195.0
5069 +SYN2,2024-11-27T15:10:00Z,23.4054,23.4068,23.3636,23.3648,3820.0
5070 +SYN2,2024-11-27T15:11:00Z,23.3648,23.3769,23.3639,23.3767,3222.0
5071 +SYN2,2024-11-27T15:12:00Z,23.3767,23.3785,23.3428,23.3439,4485.0
5072 +SYN2,2024-11-27T15:13:00Z,23.3439,23.3784,23.3438,23.3772,342.0
5073 +SYN2,2024-11-27T15:14:00Z,23.3772,23.3936,23.3747,23.3923,4483.0
5074 +SYN2,2024-11-27T15:15:00Z,23.3923,23.4006,23.3907,23.4005,1082.0
5075 +SYN2,2024-11-27T15:16:00Z,23.4005,23.4618,23.3989,23.461,3994.0
5076 +SYN2,2024-11-27T15:17:00Z,23.461,23.4721,23.458,23.4702,3526.0
5077 +SYN2,2024-11-27T15:18:00Z,23.4702,23.5032,23.47,23.5015,4302.0
5078 +SYN2,2024-11-27T15:19:00Z,23.5015,23.5015,23.4998,23.5014,3805.0
5079 +SYN2,2024-11-27T15:20:00Z,23.5014,23.5041,23.4436,23.4451,2201.0
5080 +SYN2,2024-11-27T15:21:00Z,23.4451,23.4902,23.4435,23.4901,2433.0
5081 +SYN2,2024-11-27T15:22:00Z,23.4901,23.4923,23.454,23.4561,1762.0
5082 +SYN2,2024-11-27T15:23:00Z,23.4561,23.4636,23.4553,23.4627,3734.0
5083 +SYN2,2024-11-27T15:24:00Z,23.4627,23.4637,23.4615,23.4626,4492.0
5084 +SYN2,2024-11-27T15:25:00Z,23.4626,23.4974,23.4597,23.4969,172.0
5085 +SYN2,2024-11-27T15:26:00Z,23.4969,23.4978,23.4601,23.4631,1758.0
5086 +SYN2,2024-11-27T15:27:00Z,23.4631,23.4631,23.4491,23.452,717.0
5087 +SYN2,2024-11-27T15:28:00Z,23.452,23.5289,23.4495,23.528,3729.0
5088 +SYN2,2024-11-27T15:29:00Z,23.528,23.5356,23.5266,23.534,2964.0
5089 +SYN2,2024-11-27T15:30:00Z,23.534,23.5889,23.5307,23.5864,4550.0
5090 +SYN2,2024-11-27T15:32:00Z,23.5864,23.6279,23.5842,23.6273,3204.0
5091 +SYN2,2024-11-27T15:33:00Z,23.6273,23.6581,23.6253,23.658,849.0
5092 +SYN2,2024-11-27T15:34:00Z,23.658,23.6584,23.6418,23.6422,4579.0
5093 +SYN2,2024-11-27T15:35:00Z,23.6422,23.6619,23.6419,23.661,1624.0
5094 +SYN2,2024-11-27T15:36:00Z,23.661,23.6615,23.6351,23.6379,3157.0
5095 +SYN2,2024-11-27T15:37:00Z,23.6379,23.6435,23.6353,23.6429,330.0
5096 +SYN2,2024-11-27T15:38:00Z,23.6429,23.6461,23.5948,23.596,1811.0
5097 +SYN2,2024-11-27T15:39:00Z,23.596,23.631,23.595,23.6302,3593.0
5098 +SYN2,2024-11-27T15:40:00Z,23.6302,23.6322,23.6272,23.6285,2534.0
5099 +SYN2,2024-11-27T15:41:00Z,23.6285,23.6673,23.6283,23.6642,4985.0
5100 +SYN2,2024-11-27T15:42:00Z,23.6642,23.6822,23.6639,23.6771,941.0
5101 +SYN2,2024-11-27T15:43:00Z,23.6771,23.7102,23.674,23.7066,2098.0
5102 +SYN2,2024-11-27T15:44:00Z,23.7066,23.7089,23.6938,23.6971,4920.0
5103 +SYN2,2024-11-27T15:45:00Z,23.6971,23.7127,23.6954,23.7109,3852.0
5104 +SYN2,2024-11-27T15:46:00Z,23.7109,23.7134,23.7089,23.7097,1575.0
5105 +SYN2,2024-11-27T15:47:00Z,23.7097,23.7392,23.7078,23.7359,583.0
5106 +SYN2,2024-11-27T15:48:00Z,23.7359,23.7684,23.7306,23.7669,1799.0
5107 +SYN2,2024-11-27T15:49:00Z,23.7669,23.7748,23.7666,23.7713,711.0
5108 +SYN2,2024-11-27T15:50:00Z,23.7713,23.782,23.7648,23.7815,3744.0
5109 +SYN2,2024-11-27T15:51:00Z,23.7815,23.8115,23.781,23.8102,2103.0
5110 +SYN2,2024-11-27T15:52:00Z,23.8102,23.8117,23.7777,23.7782,4679.0
5111 +SYN2,2024-11-27T15:53:00Z,23.7782,23.7787,23.7714,23.7762,870.0
5112 +SYN2,2024-11-27T15:54:00Z,23.7762,23.7788,23.7009,23.7027,4272.0
5113 +SYN2,2024-11-27T15:55:00Z,23.7027,23.7069,23.6415,23.6431,580.0
5114 +SYN2,2024-11-27T15:56:00Z,23.6431,23.6462,23.6129,23.6166,757.0
5115 +SYN2,2024-11-27T15:57:00Z,23.6166,23.6167,23.6137,23.6139,2011.0
5116 +SYN2,2024-11-27T15:58:00Z,23.6139,23.6244,23.6123,23.6233,3254.0
5117 +SYN2,2024-11-27T15:59:00Z,23.6233,23.625,23.6184,23.6186,2446.0
5118 +SYN2,2024-11-27T16:00:00Z,23.6186,23.6238,23.5844,23.5851,883.0
5119 +SYN2,2024-11-27T16:01:00Z,23.5851,23.6038,23.5842,23.601,4578.0
5120 +SYN2,2024-11-27T16:02:00Z,23.601,23.6538,23.6002,23.6525,2547.0
5121 +SYN2,2024-11-27T16:03:00Z,23.6525,23.654,23.6119,23.6129,4770.0
5122 +SYN2,2024-11-27T16:04:00Z,23.6129,23.6162,23.5927,23.5935,4055.0
5123 +SYN2,2024-11-27T16:05:00Z,23.5935,23.5953,23.5784,23.5792,147.0
5124 +SYN2,2024-11-27T16:06:00Z,23.5792,23.5795,23.5428,23.5436,393.0
5125 +SYN2,2024-11-27T16:07:00Z,23.5436,23.5487,23.5294,23.535,2821.0
5126 +SYN2,2024-11-27T16:08:00Z,23.535,23.5371,23.531,23.5332,454.0
5127 +SYN2,2024-11-27T16:09:00Z,23.5332,23.5568,23.5288,23.5559,1251.0
5128 +SYN2,2024-11-27T16:10:00Z,23.5559,23.557,23.554,23.5557,215.0
5129 +SYN2,2024-11-27T16:12:00Z,23.5557,23.6084,23.5536,23.6052,2536.0
5130 +SYN2,2024-11-27T16:13:00Z,23.6052,23.6077,23.5616,23.5672,4204.0
5131 +SYN2,2024-11-27T16:14:00Z,23.5672,23.5677,23.5591,23.5605,1492.0
5132 +SYN2,2024-11-27T16:15:00Z,23.5605,23.5903,23.5579,23.5886,4796.0
5133 +SYN2,2024-11-27T16:16:00Z,23.5886,23.6673,23.5879,23.6626,3611.0
5134 +SYN2,2024-11-27T16:17:00Z,23.6626,23.6746,23.6624,23.6722,2440.0
5135 +SYN2,2024-11-27T16:18:00Z,23.6722,23.7023,23.6695,23.701,4972.0
5136 +SYN2,2024-11-27T16:19:00Z,23.701,23.7011,23.6926,23.6951,1689.0
5137 +SYN2,2024-11-27T16:20:00Z,23.6951,23.748,23.695,23.7445,4764.0
5138 +SYN2,2024-11-27T16:21:00Z,23.7445,23.7663,23.7399,23.7611,2044.0
5139 +SYN2,2024-11-27T16:22:00Z,23.7611,23.7644,23.7456,23.7459,421.0
5140 +SYN2,2024-11-27T16:23:00Z,23.7459,23.7493,23.7212,23.7245,1172.0
5141 +SYN2,2024-11-27T16:24:00Z,23.7245,23.7246,23.6771,23.6773,3414.0
5142 +SYN2,2024-11-27T16:25:00Z,23.6773,23.6797,23.6519,23.6559,2256.0
5143 +SYN2,2024-11-27T16:26:00Z,23.6559,23.66,23.603,23.6043,637.0
5144 +SYN2,2024-11-27T16:27:00Z,23.6043,23.6059,23.5704,23.5754,3233.0
5145 +SYN2,2024-11-27T16:28:00Z,23.5754,23.5845,23.5725,23.5819,1600.0
5146 +SYN2,2024-11-27T16:29:00Z,23.5819,23.6718,23.5788,23.6708,4615.0
5147 +SYN2,2024-11-27T16:30:00Z,23.6708,23.7181,23.6678,23.7179,4113.0
5148 +SYN2,2024-11-27T16:31:00Z,23.7179,23.7519,23.7171,23.7499,1136.0
5149 +SYN2,2024-11-27T16:32:00Z,23.7499,23.7512,23.7198,23.7202,3885.0
5150 +SYN2,2024-11-27T16:33:00Z,23.7202,23.7208,23.7007,23.7028,1171.0
5151 +SYN2,2024-11-27T16:34:00Z,23.7028,23.7033,23.6859,23.6864,4214.0
5152 +SYN2,2024-11-27T16:36:00Z,23.6864,23.6871,23.6106,23.6112,3170.0
5153 +SYN2,2024-11-27T16:37:00Z,23.6112,23.6308,23.6103,23.6267,3806.0
5154 +SYN2,2024-11-27T16:38:00Z,23.6267,23.6446,23.6246,23.6432,3942.0
5155 +SYN2,2024-11-27T16:39:00Z,23.6432,23.7299,23.6425,23.7298,1920.0
5156 +SYN2,2024-11-27T16:40:00Z,23.7298,23.7767,23.7289,23.7765,2393.0
5157 +SYN2,2024-11-27T16:41:00Z,23.7765,23.777,23.7371,23.7372,2488.0
5158 +SYN2,2024-11-27T16:42:00Z,23.7372,23.7545,23.7346,23.7537,513.0
5159 +SYN2,2024-11-27T16:43:00Z,23.7537,23.7585,23.6971,23.6975,2620.0
5160 +SYN2,2024-11-27T16:44:00Z,23.6975,23.7331,23.694,23.7306,3324.0
5161 +SYN2,2024-11-27T16:45:00Z,23.7306,23.7732,23.7297,23.7725,478.0
5162 +SYN2,2024-11-27T16:46:00Z,23.7725,23.7773,23.7448,23.7451,2662.0
5163 +SYN2,2024-11-27T16:47:00Z,23.7451,23.7471,23.6906,23.6925,2450.0
5164 +SYN2,2024-11-27T16:48:00Z,23.6925,23.6936,23.6875,23.6898,1924.0
5165 +SYN2,2024-11-27T16:49:00Z,23.6898,23.7315,23.6841,23.73,4461.0
5166 +SYN2,2024-11-27T16:50:00Z,23.73,23.7675,23.7294,23.7646,1656.0
5167 +SYN2,2024-11-27T16:51:00Z,23.7646,23.7661,23.7575,23.7581,2742.0
5168 +SYN2,2024-11-27T16:52:00Z,23.7581,23.7697,23.757,23.7656,2332.0
5169 +SYN2,2024-11-27T16:54:00Z,23.7656,23.8088,23.7625,23.8034,4212.0
5170 +SYN2,2024-11-27T16:55:00Z,23.8034,23.8042,23.7689,23.77,4193.0
5171 +SYN2,2024-11-27T16:56:00Z,23.77,23.7731,23.7536,23.7548,1660.0
5172 +SYN2,2024-11-27T16:57:00Z,23.7548,23.7561,23.7445,23.7452,3483.0
5173 +SYN2,2024-11-27T16:58:00Z,23.7452,23.7465,23.6935,23.6965,1478.0
5174 +SYN2,2024-11-27T16:59:00Z,23.6965,23.6975,23.6764,23.6766,1099.0
5175 +SYN2,2024-11-27T17:00:00Z,23.6766,23.7069,23.6738,23.706,3436.0
5176 +SYN2,2024-11-27T17:01:00Z,23.706,23.7449,23.7039,23.744,4429.0
5177 +SYN2,2024-11-27T17:02:00Z,23.744,23.7801,23.7429,23.7798,1853.0
5178 +SYN2,2024-11-27T17:03:00Z,23.7798,23.84,23.7792,23.839,2172.0
5179 +SYN2,2024-11-27T17:04:00Z,23.839,23.8757,23.8387,23.8735,3738.0
5180 +SYN2,2024-11-27T17:05:00Z,23.8735,23.9013,23.871,23.8984,4831.0
5181 +SYN2,2024-11-27T17:06:00Z,23.8984,23.9177,23.8916,23.9135,4019.0
5182 +SYN2,2024-11-27T17:07:00Z,23.9135,23.9139,23.8513,23.8586,1740.0
5183 +SYN2,2024-11-27T17:08:00Z,23.8586,23.9022,23.8583,23.8999,3010.0
5184 +SYN2,2024-11-27T17:09:00Z,23.8999,23.9043,23.8905,23.891,1497.0
5185 +SYN2,2024-11-27T17:10:00Z,23.891,23.8919,23.8817,23.8827,4309.0
5186 +SYN2,2024-11-27T17:11:00Z,23.8827,23.9043,23.8817,23.9037,1339.0
5187 +SYN2,2024-11-27T17:12:00Z,23.9037,23.9097,23.9,23.9089,2180.0
5188 +SYN2,2024-11-27T17:13:00Z,23.9089,23.9497,23.908,23.9472,3446.0
5189 +SYN2,2024-11-27T17:14:00Z,23.9472,23.9495,23.876,23.8784,1642.0
5190 +SYN2,2024-11-27T17:15:00Z,23.8784,23.9227,23.8761,23.9205,3201.0
5191 +SYN2,2024-11-27T17:16:00Z,23.9205,23.9423,23.9197,23.9421,4007.0
5192 +SYN2,2024-11-27T17:17:00Z,23.9421,23.9535,23.9394,23.9498,3795.0
5193 +SYN2,2024-11-27T17:18:00Z,23.9498,24.004,23.9487,24.0027,663.0
5194 +SYN2,2024-11-27T17:19:00Z,24.0027,24.023,23.9983,24.0209,1658.0
5195 +SYN2,2024-11-27T17:20:00Z,24.0209,24.0227,23.9952,23.9984,3636.0
5196 +SYN2,2024-11-27T17:21:00Z,23.9984,23.9991,23.962,23.964,1131.0
5197 +SYN2,2024-11-27T17:22:00Z,23.964,23.9653,23.9492,23.9516,638.0
5198 +SYN2,2024-11-27T17:23:00Z,23.9516,23.9524,23.943,23.9469,1895.0
5199 +SYN2,2024-11-27T17:24:00Z,23.9469,23.949,23.9129,23.9133,3683.0
5200 +SYN2,2024-11-27T17:25:00Z,23.9133,23.9157,23.8551,23.8562,1056.0
5201 +SYN2,2024-11-27T17:26:00Z,23.8562,23.8586,23.8128,23.8153,2108.0
5202 +SYN2,2024-11-27T17:27:00Z,23.8153,23.8474,23.8144,23.8461,1144.0
5203 +SYN2,2024-11-27T17:28:00Z,23.8461,23.8611,23.842,23.8608,300.0
5204 +SYN2,2024-11-27T17:29:00Z,23.8608,23.875,23.8572,23.8725,2393.0
5205 +SYN2,2024-11-27T17:30:00Z,23.8725,23.8738,23.8512,23.8555,1015.0
5206 +SYN2,2024-11-27T17:31:00Z,23.8555,23.8946,23.8514,23.893,4143.0
5207 +SYN2,2024-11-27T17:32:00Z,23.893,23.8966,23.8835,23.8871,1152.0
5208 +SYN2,2024-11-27T17:33:00Z,23.8871,23.94,23.8845,23.9383,3630.0
5209 +SYN2,2024-11-27T17:34:00Z,23.9383,23.939,23.9079,23.9085,2048.0
5210 +SYN2,2024-11-27T17:35:00Z,23.9085,23.9092,23.8527,23.8573,2454.0
5211 +SYN2,2024-11-27T17:36:00Z,23.8573,23.9202,23.8557,23.9166,1441.0
5212 +SYN2,2024-11-27T17:37:00Z,23.9166,23.9204,23.9045,23.9072,4115.0
5213 +SYN2,2024-11-27T17:38:00Z,23.9072,23.9078,23.9048,23.9053,3069.0
5214 +SYN2,2024-11-27T17:39:00Z,23.9053,23.932,23.9053,23.9282,3403.0
5215 +SYN2,2024-11-27T17:40:00Z,23.9282,23.9298,23.8988,23.9002,2525.0
5216 +SYN2,2024-11-27T17:41:00Z,23.9002,23.9086,23.8995,23.9073,3879.0
5217 +SYN2,2024-11-27T17:42:00Z,23.9073,23.9098,23.8758,23.876,3679.0
5218 +SYN2,2024-11-27T17:43:00Z,23.876,23.8766,23.8266,23.8269,1961.0
5219 +SYN2,2024-11-27T17:44:00Z,23.8269,23.8314,23.8263,23.8299,3120.0
5220 +SYN2,2024-11-27T17:45:00Z,23.8299,23.83,23.7921,23.7941,1858.0
5221 +SYN2,2024-11-27T17:46:00Z,23.7941,23.8137,23.7919,23.8124,144.0
5222 +SYN2,2024-11-27T17:47:00Z,23.8124,23.8166,23.7358,23.738,2137.0
5223 +SYN2,2024-11-27T17:48:00Z,23.738,23.7693,23.7329,23.766,2267.0
5224 +SYN2,2024-11-27T17:49:00Z,23.766,23.8216,23.7658,23.8215,4213.0
5225 +SYN2,2024-11-27T17:50:00Z,23.8215,23.8216,23.7687,23.7713,3451.0
5226 +SYN2,2024-11-27T17:51:00Z,23.7713,23.7858,23.7666,23.7833,1992.0
5227 +SYN2,2024-11-27T17:52:00Z,23.7833,23.7966,23.7813,23.7934,4649.0
5228 +SYN2,2024-11-27T17:53:00Z,23.7934,23.7936,23.7579,23.7601,2421.0
5229 +SYN2,2024-11-27T17:54:00Z,23.7601,23.7631,23.7359,23.737,1410.0
5230 +SYN2,2024-11-27T17:55:00Z,23.737,23.7381,23.6577,23.6628,1118.0
5231 +SYN2,2024-11-27T17:56:00Z,23.6628,23.6673,23.6309,23.6323,3556.0
5232 +SYN2,2024-11-27T17:57:00Z,23.6323,23.6327,23.5911,23.5946,2551.0
5233 +SYN2,2024-11-27T17:58:00Z,23.5946,23.5948,23.5915,23.5938,2251.0
5234 +SYN2,2024-11-27T17:59:00Z,23.5938,23.5954,23.5401,23.5413,1621.0
5235 +SYN2,2024-11-27T18:00:00Z,23.5413,23.546,23.5226,23.5245,2787.0
5236 +SYN2,2024-11-27T18:01:00Z,23.5245,23.5261,23.4977,23.4979,4518.0
5237 +SYN2,2024-11-27T18:02:00Z,23.4979,23.5401,23.4946,23.5382,316.0
5238 +SYN2,2024-11-27T18:03:00Z,23.5382,23.5426,23.5379,23.5419,2032.0
5239 +SYN2,2024-11-27T18:04:00Z,23.5419,23.5436,23.4672,23.4706,917.0
5240 +SYN2,2024-11-27T18:05:00Z,23.4706,23.4713,23.4694,23.4697,3320.0
5241 +SYN2,2024-11-27T18:06:00Z,23.4697,23.4971,23.4689,23.4934,173.0
5242 +SYN2,2024-11-27T18:07:00Z,23.4934,23.4938,23.4374,23.4386,1087.0
5243 +SYN2,2024-11-27T18:08:00Z,23.4386,23.4422,23.4362,23.438,1754.0
5244 +SYN2,2024-11-27T18:09:00Z,23.438,23.4403,23.4112,23.4124,1904.0
5245 +SYN2,2024-11-27T18:10:00Z,23.4124,23.4133,23.3537,23.354,2633.0
5246 +SYN2,2024-11-27T18:11:00Z,23.354,23.3582,23.3453,23.3454,2234.0
5247 +SYN2,2024-11-27T18:12:00Z,23.3454,23.4661,23.3449,23.4661,2798.0
5248 +SYN2,2024-11-27T18:13:00Z,23.4661,23.4679,23.3892,23.3981,3920.0
5249 +SYN2,2024-11-27T18:14:00Z,23.3981,23.4094,23.3947,23.4084,3254.0
5250 +SYN2,2024-11-27T18:15:00Z,23.4084,23.4088,23.338,23.3402,2939.0
5251 +SYN2,2024-11-27T18:16:00Z,23.3402,23.3433,23.2885,23.2894,3866.0
5252 +SYN2,2024-11-27T18:17:00Z,23.2894,23.3026,23.288,23.3009,1366.0
5253 +SYN2,2024-11-27T18:18:00Z,23.3009,23.3449,23.2994,23.3443,4224.0
5254 +SYN2,2024-11-27T18:19:00Z,23.3443,23.3471,23.3415,23.3441,2636.0
5255 +SYN2,2024-11-27T18:20:00Z,23.3441,23.4218,23.3441,23.4193,4129.0
5256 +SYN2,2024-11-27T18:21:00Z,23.4193,23.4197,23.4017,23.4038,643.0
5257 +SYN2,2024-11-27T18:22:00Z,23.4038,23.4094,23.3778,23.3824,4935.0
5258 +SYN2,2024-11-27T18:23:00Z,23.3824,23.4289,23.3781,23.4279,4010.0
5259 +SYN2,2024-11-27T18:24:00Z,23.4279,23.481,23.4262,23.4798,1178.0
5260 +SYN2,2024-11-27T18:25:00Z,23.4798,23.4804,23.4287,23.4315,4895.0
5261 +SYN2,2024-11-27T18:26:00Z,23.4315,23.4667,23.4301,23.4622,3755.0
5262 +SYN2,2024-11-27T18:27:00Z,23.4622,23.4665,23.4307,23.4319,4465.0
5263 +SYN2,2024-11-27T18:28:00Z,23.4319,23.4323,23.4161,23.4171,3806.0
5264 +SYN2,2024-11-27T18:29:00Z,23.4171,23.4179,23.3547,23.3547,2495.0
5265 +SYN2,2024-11-27T18:30:00Z,23.3547,23.3976,23.3529,23.397,3954.0
5266 +SYN2,2024-11-27T18:31:00Z,23.397,23.4462,23.3964,23.4459,4378.0
5267 +SYN2,2024-11-27T18:32:00Z,23.4459,23.4718,23.445,23.4694,4597.0
5268 +SYN2,2024-11-27T18:33:00Z,23.4694,23.4708,23.455,23.4605,3252.0
5269 +SYN2,2024-11-27T18:34:00Z,23.4605,23.4614,23.4534,23.4537,3164.0
5270 +SYN2,2024-11-27T18:35:00Z,23.4537,23.4551,23.4278,23.4279,2378.0
5271 +SYN2,2024-11-27T18:36:00Z,23.4279,23.4372,23.4253,23.4339,4174.0
5272 +SYN2,2024-11-27T18:37:00Z,23.4339,23.4358,23.4268,23.4276,3303.0
5273 +SYN2,2024-11-27T18:39:00Z,23.4276,23.4276,23.4128,23.4128,3229.0
5274 +SYN2,2024-11-27T18:40:00Z,23.4128,23.415,23.4009,23.4047,4598.0
5275 +SYN2,2024-11-27T18:41:00Z,23.4047,23.4051,23.3485,23.3486,2046.0
5276 +SYN2,2024-11-27T18:42:00Z,23.3486,23.3729,23.3473,23.3702,1833.0
5277 +SYN2,2024-11-27T18:43:00Z,23.3702,23.3751,23.3693,23.3736,702.0
5278 +SYN2,2024-11-27T18:44:00Z,23.3736,23.3745,23.3544,23.3554,113.0
5279 +SYN2,2024-11-27T18:45:00Z,23.3554,23.4106,23.3528,23.4101,3876.0
5280 +SYN2,2024-11-27T18:46:00Z,23.4101,23.4103,23.3914,23.3921,3134.0
5281 +SYN2,2024-11-27T18:47:00Z,23.3921,23.4219,23.3882,23.4218,3138.0
5282 +SYN2,2024-11-27T18:48:00Z,23.4218,23.4498,23.4213,23.4467,2032.0
5283 +SYN2,2024-11-27T18:49:00Z,23.4467,23.4962,23.4462,23.495,1308.0
5284 +SYN2,2024-11-27T18:50:00Z,23.495,23.4956,23.4826,23.4843,4836.0
5285 +SYN2,2024-11-27T18:51:00Z,23.4843,23.5273,23.4821,23.5268,2199.0
5286 +SYN2,2024-11-27T18:52:00Z,23.5268,23.5636,23.5267,23.5612,4904.0
5287 +SYN2,2024-11-27T18:53:00Z,23.5612,23.5771,23.5603,23.5766,1794.0
5288 +SYN2,2024-11-27T18:54:00Z,23.5766,23.5785,23.5634,23.5638,1228.0
5289 +SYN2,2024-11-27T18:55:00Z,23.5638,23.6216,23.5631,23.6207,2342.0
5290 +SYN2,2024-11-27T18:56:00Z,23.6207,23.6223,23.6172,23.6173,3708.0
5291 +SYN2,2024-11-27T18:57:00Z,23.6173,23.6183,23.6016,23.6019,2339.0
5292 +SYN2,2024-11-27T18:58:00Z,23.6019,23.6147,23.5984,23.6123,2420.0
5293 +SYN2,2024-11-27T19:00:00Z,23.6123,23.6152,23.5936,23.5953,4105.0
5294 +SYN2,2024-11-27T19:01:00Z,23.5953,23.5959,23.568,23.5721,3580.0
5295 +SYN2,2024-11-27T19:02:00Z,23.5721,23.5727,23.5401,23.5425,208.0
5296 +SYN2,2024-11-27T19:03:00Z,23.5425,23.5434,23.5322,23.5367,3551.0
5297 +SYN2,2024-11-27T19:04:00Z,23.5367,23.5717,23.5336,23.5687,795.0
5298 +SYN2,2024-11-27T19:06:00Z,23.5687,23.5766,23.5645,23.5759,2053.0
5299 +SYN2,2024-11-27T19:07:00Z,23.5759,23.5956,23.5755,23.5955,4595.0
5300 +SYN2,2024-11-27T19:08:00Z,23.5955,23.5963,23.5228,23.5271,2498.0
5301 +SYN2,2024-11-27T19:09:00Z,23.5271,23.5293,23.4857,23.4879,431.0
5302 +SYN2,2024-11-27T19:10:00Z,23.4879,23.489,23.4591,23.4613,4286.0
5303 +SYN2,2024-11-27T19:11:00Z,23.4613,23.5421,23.4608,23.5402,3688.0
5304 +SYN2,2024-11-27T19:12:00Z,23.5402,23.5579,23.5384,23.5524,3834.0
5305 +SYN2,2024-11-27T19:13:00Z,23.5524,23.5575,23.5503,23.5554,2958.0
5306 +SYN2,2024-11-27T19:14:00Z,23.5554,23.5556,23.5337,23.5352,134.0
5307 +SYN2,2024-11-27T19:15:00Z,23.5352,23.5803,23.5346,23.5774,653.0
5308 +SYN2,2024-11-27T19:16:00Z,23.5774,23.5774,23.5669,23.568,1808.0
5309 +SYN2,2024-11-27T19:17:00Z,23.568,23.5688,23.4842,23.4867,308.0
5310 +SYN2,2024-11-27T19:18:00Z,23.4867,23.488,23.4711,23.4716,1522.0
5311 +SYN2,2024-11-27T19:19:00Z,23.4716,23.4719,23.4423,23.4443,3666.0
5312 +SYN2,2024-11-27T19:20:00Z,23.4443,23.466,23.4422,23.4628,2829.0
5313 +SYN2,2024-11-27T19:21:00Z,23.4628,23.5198,23.4618,23.5175,329.0
5314 +SYN2,2024-11-27T19:22:00Z,23.5175,23.5646,23.5168,23.5645,1811.0
5315 +SYN2,2024-11-27T19:23:00Z,23.5645,23.5654,23.5392,23.5403,1066.0
5316 +SYN2,2024-11-27T19:24:00Z,23.5403,23.5668,23.5349,23.5663,1959.0
5317 +SYN2,2024-11-27T19:25:00Z,23.5663,23.5679,23.5633,23.5672,1720.0
5318 +SYN2,2024-11-27T19:26:00Z,23.5672,23.6368,23.5649,23.6348,1032.0
5319 +SYN2,2024-11-27T19:27:00Z,23.6348,23.6369,23.6084,23.6097,2607.0
5320 +SYN2,2024-11-27T19:28:00Z,23.6097,23.6113,23.5802,23.5859,4466.0
5321 +SYN2,2024-11-27T19:29:00Z,23.5859,23.588,23.5326,23.5333,1894.0
5322 +SYN2,2024-11-27T19:30:00Z,23.5333,23.5345,23.4756,23.4795,1959.0
5323 +SYN2,2024-11-27T19:31:00Z,23.4795,23.4845,23.4501,23.4514,1942.0
5324 +SYN2,2024-11-27T19:33:00Z,23.4514,23.4849,23.4493,23.481,2870.0
5325 +SYN2,2024-11-27T19:34:00Z,23.481,23.4843,23.4571,23.4611,857.0
5326 +SYN2,2024-11-27T19:35:00Z,23.4611,23.4792,23.4611,23.4784,2208.0
5327 +SYN2,2024-11-27T19:36:00Z,23.4784,23.4893,23.4768,23.488,802.0
5328 +SYN2,2024-11-27T19:37:00Z,23.488,23.5469,23.4855,23.5457,2412.0
5329 +SYN2,2024-11-27T19:38:00Z,23.5457,23.5872,23.5452,23.5865,481.0
5330 +SYN2,2024-11-27T19:39:00Z,23.5865,23.5884,23.5659,23.568,4570.0
5331 +SYN2,2024-11-27T19:40:00Z,23.568,23.5765,23.5656,23.5753,2328.0
5332 +SYN2,2024-11-27T19:41:00Z,23.5753,23.583,23.5716,23.58,1774.0
5333 +SYN2,2024-11-27T19:42:00Z,23.58,23.5926,23.5778,23.5903,2671.0
5334 +SYN2,2024-11-27T19:43:00Z,23.5903,23.593,23.5488,23.5513,4869.0
5335 +SYN2,2024-11-27T19:44:00Z,23.5513,23.5523,23.4858,23.486,4057.0
5336 +SYN2,2024-11-27T19:45:00Z,23.486,23.4919,23.4654,23.4669,3120.0
5337 +SYN2,2024-11-27T19:46:00Z,23.4669,23.4809,23.4664,23.4798,4030.0
5338 +SYN2,2024-11-27T19:47:00Z,23.4798,23.4808,23.4712,23.4727,1967.0
5339 +SYN2,2024-11-27T19:48:00Z,23.4727,23.4731,23.4208,23.4225,4759.0
5340 +SYN2,2024-11-27T19:50:00Z,23.4225,23.4237,23.4,23.4029,1754.0
5341 +SYN2,2024-11-27T19:51:00Z,23.4029,23.4042,23.3915,23.3933,2859.0
5342 +SYN2,2024-11-27T19:52:00Z,23.3933,23.4134,23.3901,23.4127,4187.0
5343 +SYN2,2024-11-27T19:53:00Z,23.4127,23.4205,23.3479,23.348,4929.0
5344 +SYN2,2024-11-27T19:54:00Z,23.348,23.3492,23.3224,23.3277,4723.0
5345 +SYN2,2024-11-27T19:55:00Z,23.3277,23.3289,23.3238,23.3244,3038.0
5346 +SYN2,2024-11-27T19:56:00Z,23.3244,23.3273,23.2191,23.2197,3986.0
5347 +SYN2,2024-11-27T19:57:00Z,23.2197,23.2213,23.1504,23.1525,2227.0
5348 +SYN2,2024-11-27T19:58:00Z,23.1525,23.1857,23.1509,23.183,1679.0
5349 +SYN2,2024-11-27T19:59:00Z,23.183,23.1876,23.1172,23.1191,410.0
5350 +SYN2,2024-11-27T20:00:00Z,23.1191,23.1198,23.0728,23.0734,1795.0
5351 +SYN2,2024-11-27T20:01:00Z,23.0734,23.1121,23.0726,23.1076,4249.0
5352 +SYN2,2024-11-27T20:02:00Z,23.1076,23.108,23.0752,23.0753,4089.0
5353 +SYN2,2024-11-27T20:03:00Z,23.0753,23.0785,23.0576,23.06,3928.0
5354 +SYN2,2024-11-27T20:04:00Z,23.06,23.0693,23.056,23.0672,767.0
5355 +SYN2,2024-11-27T20:05:00Z,23.0672,23.0704,22.948,22.9496,4395.0
5356 +SYN2,2024-11-27T20:06:00Z,22.9496,22.9591,22.9476,22.9566,1485.0
5357 +SYN2,2024-11-27T20:07:00Z,22.9566,22.9823,22.9559,22.9812,2354.0
5358 +SYN2,2024-11-27T20:08:00Z,22.9812,22.9816,22.9731,22.9805,2481.0
5359 +SYN2,2024-11-27T20:09:00Z,22.9805,22.9963,22.9768,22.9944,2709.0
5360 +SYN2,2024-11-27T20:10:00Z,22.9944,22.9944,22.9535,22.9536,2312.0
5361 +SYN2,2024-11-27T20:11:00Z,22.9536,22.9562,22.9201,22.9219,4651.0
5362 +SYN2,2024-11-27T20:12:00Z,22.9219,22.9327,22.9215,22.9314,4811.0
5363 +SYN2,2024-11-27T20:13:00Z,22.9314,22.9354,22.8917,22.8932,459.0
5364 +SYN2,2024-11-27T20:14:00Z,22.8932,22.8971,22.889,22.8892,1911.0
5365 +SYN2,2024-11-27T20:15:00Z,22.8892,22.8985,22.8864,22.8957,790.0
5366 +SYN2,2024-11-27T20:16:00Z,22.8957,22.8983,22.8521,22.853,3370.0
5367 +SYN2,2024-11-27T20:17:00Z,22.853,22.8607,22.8511,22.8603,1662.0
5368 +SYN2,2024-11-27T20:18:00Z,22.8603,22.8963,22.8599,22.8952,137.0
5369 +SYN2,2024-11-27T20:19:00Z,22.8952,22.9557,22.8944,22.9503,3645.0
5370 +SYN2,2024-11-27T20:20:00Z,22.9503,23.034,22.9478,23.0307,541.0
5371 +SYN2,2024-11-27T20:21:00Z,23.0307,23.0312,23.003,23.0048,2030.0
5372 +SYN2,2024-11-27T20:22:00Z,23.0048,23.0058,22.9995,23.0028,1026.0
5373 +SYN2,2024-11-27T20:23:00Z,23.0028,23.0337,23.0022,23.0329,927.0
5374 +SYN2,2024-11-27T20:24:00Z,23.0329,23.034,23.0149,23.0162,2682.0
5375 +SYN2,2024-11-27T20:25:00Z,23.0162,23.085,23.0147,23.0823,3344.0
5376 +SYN2,2024-11-27T20:26:00Z,23.0823,23.0827,23.0174,23.0184,285.0
5377 +SYN2,2024-11-27T20:27:00Z,23.0184,23.0368,23.0158,23.0344,2155.0
5378 +SYN2,2024-11-27T20:28:00Z,23.0344,23.0773,23.0331,23.0726,2054.0
5379 +SYN2,2024-11-27T20:29:00Z,23.0726,23.0729,23.0663,23.0676,1543.0
5380 +SYN2,2024-11-27T20:30:00Z,23.0676,23.0718,23.0221,23.0235,2012.0
5381 +SYN2,2024-11-27T20:31:00Z,23.0235,23.05,23.02,23.0499,258.0
5382 +SYN2,2024-11-27T20:32:00Z,23.0499,23.1437,23.049,23.1435,4303.0
5383 +SYN2,2024-11-27T20:33:00Z,23.1435,23.1654,23.1427,23.1633,4879.0
5384 +SYN2,2024-11-27T20:34:00Z,23.1633,23.1943,23.1619,23.192,3102.0
5385 +SYN2,2024-11-27T20:35:00Z,23.192,23.2216,23.1911,23.2187,4299.0
5386 +SYN2,2024-11-27T20:36:00Z,23.2187,23.2277,23.2185,23.2263,3315.0
5387 +SYN2,2024-11-27T20:37:00Z,23.2263,23.2906,23.2239,23.289,4941.0
5388 +SYN2,2024-11-27T20:38:00Z,23.289,23.3228,23.2882,23.3201,932.0
5389 +SYN2,2024-11-27T20:39:00Z,23.3201,23.3234,23.2948,23.297,3406.0
5390 +SYN2,2024-11-27T20:40:00Z,23.297,23.3021,23.2889,23.2895,3764.0
5391 +SYN2,2024-11-27T20:41:00Z,23.2895,23.3219,23.2883,23.3201,3715.0
5392 +SYN2,2024-11-27T20:42:00Z,23.3201,23.3232,23.2546,23.2552,3885.0
5393 +SYN2,2024-11-27T20:43:00Z,23.2552,23.2579,23.2274,23.229,4678.0
5394 +SYN2,2024-11-27T20:44:00Z,23.229,23.2549,23.2264,23.2522,3992.0
5395 +SYN2,2024-11-27T20:45:00Z,23.2522,23.2532,23.2148,23.2167,2875.0
5396 +SYN2,2024-11-27T20:46:00Z,23.2167,23.2306,23.214,23.2301,256.0
5397 +SYN2,2024-11-27T20:47:00Z,23.2301,23.2504,23.2299,23.2497,4224.0
5398 +SYN2,2024-11-27T20:48:00Z,23.2497,23.253,23.2084,23.209,4749.0
5399 +SYN2,2024-11-27T20:49:00Z,23.209,23.2425,23.2083,23.2425,1691.0
5400 +SYN2,2024-11-27T20:50:00Z,23.2425,23.2465,23.2379,23.2447,2294.0
5401 +SYN2,2024-11-27T20:51:00Z,23.2447,23.2456,23.2364,23.2367,4091.0
5402 +SYN2,2024-11-27T20:52:00Z,23.2367,23.2444,23.2334,23.243,2828.0
5403 +SYN2,2024-11-27T20:53:00Z,23.243,23.2436,23.2294,23.2318,4957.0
5404 +SYN2,2024-11-27T20:54:00Z,23.2318,23.3056,23.2301,23.3029,3676.0
5405 +SYN2,2024-11-27T20:55:00Z,23.3029,23.3075,23.2332,23.2366,4988.0
5406 +SYN2,2024-11-27T20:56:00Z,23.2366,23.2429,23.2358,23.2418,1501.0
5407 +SYN2,2024-11-27T20:57:00Z,23.2418,23.2466,23.2409,23.2456,2101.0
5408 +SYN2,2024-11-27T20:58:00Z,23.2456,23.2932,23.2453,23.2898,3975.0
5409 +SYN2,2024-11-27T20:59:00Z,23.2898,23.2948,23.2683,23.2696,1770.0
5410 +SYN2,2024-11-27T21:00:00Z,23.2696,23.2739,23.2065,23.2074,4010.0
5411 +SYN2,2024-11-27T21:01:00Z,23.2074,23.2087,23.2009,23.2011,212.0
5412 +SYN2,2024-11-27T21:02:00Z,23.2011,23.203,23.1802,23.1812,195.0
5413 +SYN2,2024-11-27T21:03:00Z,23.1812,23.1885,23.1811,23.1868,197.0
5414 +SYN2,2024-11-27T21:04:00Z,23.1868,23.1896,23.1837,23.1839,126.0
5415 +SYN2,2024-11-27T21:07:00Z,23.1839,23.1889,23.1783,23.1813,227.0
5416 +SYN2,2024-11-27T21:09:00Z,23.1813,23.1833,23.1769,23.1789,225.0
5417 +SYN2,2024-11-27T21:11:00Z,23.1789,23.1807,23.1738,23.1784,84.0
5418 +SYN2,2024-11-27T21:14:00Z,23.1784,23.1829,23.1255,23.1284,160.0
5419 +SYN2,2024-11-27T21:15:00Z,23.1284,23.13,23.1191,23.1242,169.0
5420 +SYN2,2024-11-27T21:17:00Z,23.1242,23.1262,23.1101,23.1103,114.0
5421 +SYN2,2024-11-27T21:18:00Z,23.1103,23.115,23.1094,23.1143,209.0
5422 +SYN2,2024-11-27T21:20:00Z,23.1143,23.1149,23.1057,23.1066,3.0
5423 +SYN2,2024-11-27T21:23:00Z,23.1066,23.1078,23.0936,23.0966,254.0
5424 +SYN2,2024-11-27T21:24:00Z,23.0966,23.0986,23.0716,23.0724,153.0
5425 +SYN2,2024-11-27T21:25:00Z,23.0724,23.0783,23.0671,23.0777,276.0
5426 +SYN2,2024-11-27T21:26:00Z,23.0777,23.1155,23.0763,23.1151,44.0
5427 +SYN2,2024-11-27T21:28:00Z,23.1151,23.142,23.1145,23.1402,298.0
5428 +SYN2,2024-11-27T21:31:00Z,23.1402,23.1427,23.1287,23.129,189.0
5429 +SYN2,2024-11-27T21:32:00Z,23.129,23.1597,23.1235,23.1577,25.0
5430 +SYN2,2024-11-27T21:33:00Z,23.1577,23.1803,23.1565,23.1761,106.0
5431 +SYN2,2024-11-27T21:36:00Z,23.1761,23.1765,23.168,23.1691,201.0
5432 +SYN2,2024-11-27T21:38:00Z,23.1691,23.204,23.1641,23.2009,251.0
5433 +SYN2,2024-11-27T21:42:00Z,23.2009,23.2105,23.2005,23.2092,12.0
5434 +SYN2,2024-11-27T21:45:00Z,23.2092,23.2093,23.2028,23.205,171.0
5435 +SYN2,2024-11-27T21:47:00Z,23.205,23.2217,23.1997,23.2213,219.0
5436 +SYN2,2024-11-27T21:48:00Z,23.2213,23.2222,23.2127,23.2149,149.0
5437 +SYN2,2024-11-27T21:49:00Z,23.2149,23.2154,23.2137,23.2146,263.0
5438 +SYN2,2024-11-27T21:50:00Z,23.2146,23.231,23.2146,23.2283,246.0
5439 +SYN2,2024-11-27T21:51:00Z,23.2283,23.2344,23.2276,23.2343,277.0
5440 +SYN2,2024-11-27T21:52:00Z,23.2343,23.2387,23.2307,23.2323,285.0
5441 +SYN2,2024-11-27T21:55:00Z,23.2323,23.2491,23.2317,23.2452,223.0
5442 +SYN2,2024-11-27T21:56:00Z,23.2452,23.247,23.2276,23.2354,52.0
5443 +SYN2,2024-11-27T21:57:00Z,23.2354,23.2533,23.2343,23.2529,122.0
5444 +SYN2,2024-11-27T21:58:00Z,23.2529,23.2537,23.2421,23.2461,217.0
5445 +SYN2,2024-11-27T21:59:00Z,23.2461,23.2588,23.245,23.257,283.0
5446 +SYN2,2024-11-27T22:00:00Z,23.257,23.2798,23.2544,23.2748,190.0
5447 +SYN2,2024-11-27T22:01:00Z,23.2748,23.2763,23.2647,23.2662,53.0
5448 +SYN2,2024-11-27T22:03:00Z,23.2662,23.2814,23.2661,23.2795,296.0
5449 +SYN2,2024-11-27T22:04:00Z,23.2795,23.2941,23.2788,23.2927,11.0
5450 +SYN2,2024-11-27T22:05:00Z,23.2927,23.3117,23.287,23.3087,237.0
5451 +SYN2,2024-11-27T22:07:00Z,23.3087,23.3203,23.3081,23.3183,210.0
5452 +SYN2,2024-11-27T22:11:00Z,23.3183,23.3187,23.3093,23.3093,218.0
5453 +SYN2,2024-11-27T22:12:00Z,23.3093,23.3308,23.3062,23.3297,240.0
5454 +SYN2,2024-11-27T22:14:00Z,23.3297,23.3363,23.3286,23.3344,234.0
5455 +SYN2,2024-11-27T22:15:00Z,23.3344,23.3444,23.3318,23.3432,141.0
5456 +SYN2,2024-11-27T22:17:00Z,23.3432,23.3433,23.3348,23.3362,98.0
5457 +SYN2,2024-11-27T22:19:00Z,23.3362,23.3395,23.3193,23.3198,150.0
5458 +SYN2,2024-11-27T22:20:00Z,23.3198,23.3248,23.3194,23.3224,30.0
5459 +SYN2,2024-11-27T22:21:00Z,23.3224,23.3232,23.3061,23.3096,98.0
5460 +SYN2,2024-11-27T22:22:00Z,23.3096,23.3255,23.3062,23.3242,232.0
5461 +SYN2,2024-11-27T22:25:00Z,23.3242,23.3245,23.301,23.3011,161.0
5462 +SYN2,2024-11-27T22:27:00Z,23.3011,23.3189,23.2998,23.316,250.0
5463 +SYN2,2024-11-27T22:28:00Z,23.316,23.3172,23.2969,23.2974,214.0
5464 +SYN2,2024-11-27T22:30:00Z,23.2974,23.324,23.2954,23.3239,209.0
5465 +SYN2,2024-11-27T22:32:00Z,23.3239,23.3267,23.305,23.3087,81.0
5466 +SYN2,2024-11-27T22:33:00Z,23.3087,23.3101,23.2804,23.2807,240.0
5467 +SYN2,2024-11-27T22:34:00Z,23.2807,23.2838,23.2427,23.2437,49.0
5468 +SYN2,2024-11-27T22:36:00Z,23.2437,23.2524,23.2429,23.2509,250.0
5469 +SYN2,2024-11-27T22:37:00Z,23.2509,23.2636,23.2473,23.2623,157.0
5470 +SYN2,2024-11-27T22:39:00Z,23.2623,23.2638,23.2589,23.2596,106.0
5471 +SYN2,2024-11-27T22:41:00Z,23.2596,23.264,23.2568,23.2581,83.0
5472 +SYN2,2024-11-27T22:42:00Z,23.2581,23.285,23.2576,23.2822,53.0
5473 +SYN2,2024-11-27T22:43:00Z,23.2822,23.2996,23.2799,23.297,140.0
5474 +SYN2,2024-11-27T22:44:00Z,23.297,23.2988,23.2879,23.2889,50.0
5475 +SYN2,2024-11-27T22:46:00Z,23.2889,23.3019,23.2889,23.299,58.0
5476 +SYN2,2024-11-27T22:47:00Z,23.299,23.312,23.2969,23.3114,68.0
5477 +SYN2,2024-11-27T22:48:00Z,23.3114,23.3155,23.3092,23.3148,5.0
5478 +SYN2,2024-11-27T22:49:00Z,23.3148,23.3168,23.3008,23.3054,251.0
5479 +SYN2,2024-11-27T22:50:00Z,23.3054,23.3121,23.3036,23.312,96.0
5480 +SYN2,2024-11-27T22:52:00Z,23.312,23.312,23.291,23.2916,235.0
5481 +SYN2,2024-11-27T22:53:00Z,23.2916,23.2928,23.2702,23.2716,67.0
5482 +SYN2,2024-11-27T22:55:00Z,23.2716,23.2732,23.26,23.2611,252.0
5483 +SYN2,2024-11-27T22:56:00Z,23.2611,23.2649,23.2314,23.2331,185.0
5484 +SYN2,2024-11-27T22:59:00Z,23.2331,23.2542,23.2309,23.252,248.0
5485 +SYN2,2024-11-27T23:04:00Z,23.252,23.2541,23.2449,23.2494,248.0
5486 +SYN2,2024-11-27T23:05:00Z,23.2494,23.2727,23.2494,23.2716,1.0
5487 +SYN2,2024-11-27T23:06:00Z,23.2716,23.2918,23.2693,23.2891,144.0
5488 +SYN2,2024-11-27T23:07:00Z,23.2891,23.3362,23.2846,23.3345,16.0
5489 +SYN2,2024-11-27T23:09:00Z,23.3345,23.3729,23.3329,23.3694,85.0
5490 +SYN2,2024-11-27T23:11:00Z,23.3694,23.3863,23.3679,23.3835,127.0
5491 +SYN2,2024-11-27T23:15:00Z,23.3835,23.3902,23.3832,23.3875,153.0
5492 +SYN2,2024-11-27T23:16:00Z,23.3875,23.389,23.3737,23.3746,218.0
5493 +SYN2,2024-11-27T23:19:00Z,23.3746,23.395,23.3727,23.3936,208.0
5494 +SYN2,2024-11-27T23:20:00Z,23.3936,23.3961,23.3931,23.3942,192.0
5495 +SYN2,2024-11-27T23:22:00Z,23.3942,23.3976,23.3811,23.3835,235.0
5496 +SYN2,2024-11-27T23:24:00Z,23.3835,23.4004,23.381,23.3937,188.0
5497 +SYN2,2024-11-27T23:27:00Z,23.3937,23.418,23.388,23.4167,298.0
5498 +SYN2,2024-11-27T23:28:00Z,23.4167,23.4404,23.4153,23.4398,181.0
5499 +SYN2,2024-11-27T23:29:00Z,23.4398,23.4415,23.4301,23.4342,69.0
5500 +SYN2,2024-11-27T23:33:00Z,23.4342,23.449,23.4323,23.4487,118.0
5501 +SYN2,2024-11-27T23:35:00Z,23.4487,23.4767,23.4458,23.4747,81.0
5502 +SYN2,2024-11-27T23:37:00Z,23.4747,23.4783,23.4639,23.4665,42.0
5503 +SYN2,2024-11-27T23:39:00Z,23.4665,23.4684,23.4227,23.4254,243.0
5504 +SYN2,2024-11-27T23:41:00Z,23.4254,23.4286,23.4075,23.4089,195.0
5505 +SYN2,2024-11-27T23:42:00Z,23.4089,23.4106,23.3957,23.3999,110.0
5506 +SYN2,2024-11-27T23:44:00Z,23.3999,23.4056,23.3988,23.4031,229.0
5507 +SYN2,2024-11-27T23:45:00Z,23.4031,23.4049,23.3947,23.3957,82.0
5508 +SYN2,2024-11-27T23:46:00Z,23.3957,23.397,23.3935,23.3959,54.0
5509 +SYN2,2024-11-27T23:47:00Z,23.3959,23.4114,23.3955,23.4101,80.0
5510 +SYN2,2024-11-27T23:48:00Z,23.4101,23.4304,23.408,23.429,70.0
5511 +SYN2,2024-11-27T23:50:00Z,23.429,23.4298,23.4282,23.4287,220.0
5512 +SYN2,2024-11-27T23:51:00Z,23.4287,23.4296,23.4041,23.4075,300.0
5513 +SYN2,2024-11-27T23:53:00Z,23.4075,23.412,23.3732,23.3756,236.0
5514 +SYN2,2024-11-27T23:54:00Z,23.3756,23.3771,23.373,23.3763,298.0
5515 +SYN2,2024-11-27T23:55:00Z,23.3763,23.3933,23.3757,23.3896,104.0
5516 +SYN2,2024-11-27T23:56:00Z,23.3896,23.3969,23.3873,23.3949,45.0
5517 +SYN2,2024-11-28T00:00:00Z,23.3949,23.3968,23.3836,23.3857,202.0
5518 +SYN2,2024-11-28T00:02:00Z,23.3857,23.39,23.3702,23.3706,58.0
5519 +SYN2,2024-11-28T00:03:00Z,23.3706,23.3762,23.3694,23.3706,246.0
5520 +SYN2,2024-11-28T00:04:00Z,23.3706,23.3706,23.3569,23.3612,46.0
5521 +SYN2,2024-11-28T00:05:00Z,23.3612,23.3644,23.3545,23.3587,4.0
5522 +SYN2,2024-11-28T00:10:00Z,23.3587,23.3598,23.3511,23.3547,278.0
5523 +SYN2,2024-11-28T00:11:00Z,23.3547,23.3682,23.353,23.3675,136.0
5524 +SYN2,2024-11-28T00:12:00Z,23.3675,23.3724,23.3626,23.3638,209.0
5525 +SYN2,2024-11-28T00:16:00Z,23.3638,23.3671,23.3587,23.3668,206.0
5526 +SYN2,2024-11-28T00:19:00Z,23.3668,23.3742,23.3515,23.3527,154.0
5527 +SYN2,2024-11-28T00:24:00Z,23.3527,23.3535,23.3232,23.3237,285.0
5528 +SYN2,2024-11-28T00:26:00Z,23.3237,23.3266,23.3227,23.3257,284.0
5529 +SYN2,2024-11-28T00:27:00Z,23.3257,23.3422,23.3252,23.3408,194.0
5530 +SYN2,2024-11-28T00:29:00Z,23.3408,23.3676,23.34,23.365,147.0
5531 +SYN2,2024-11-28T00:34:00Z,23.365,23.368,23.347,23.3503,283.0
5532 +SYN2,2024-11-28T00:35:00Z,23.3503,23.3641,23.3497,23.364,114.0
5533 +SYN2,2024-11-28T00:36:00Z,23.364,23.3647,23.3614,23.3643,67.0
5534 +SYN2,2024-11-28T00:37:00Z,23.3643,23.378,23.3589,23.3757,215.0
5535 +SYN2,2024-11-28T00:38:00Z,23.3757,23.3772,23.3607,23.3612,141.0
5536 +SYN2,2024-11-28T00:39:00Z,23.3612,23.383,23.3601,23.3823,20.0
5537 +SYN2,2024-11-28T00:40:00Z,23.3823,23.3849,23.3696,23.3709,119.0
5538 +SYN2,2024-11-28T00:43:00Z,23.3709,23.411,23.3685,23.4062,183.0
5539 +SYN2,2024-11-28T00:44:00Z,23.4062,23.409,23.4005,23.4012,127.0
5540 +SYN2,2024-11-28T00:45:00Z,23.4012,23.4143,23.4011,23.4104,162.0
5541 +SYN2,2024-11-28T00:46:00Z,23.4104,23.4147,23.41,23.4128,73.0
5542 +SYN2,2024-11-28T00:49:00Z,23.4128,23.4231,23.4115,23.4225,135.0
5543 +SYN2,2024-11-28T00:50:00Z,23.4225,23.4366,23.4216,23.4344,4.0
5544 +SYN2,2024-11-28T00:51:00Z,23.4344,23.4348,23.411,23.4138,148.0
5545 +SYN2,2024-11-28T00:52:00Z,23.4138,23.4153,23.4096,23.4117,39.0
5546 +SYN2,2024-11-28T00:55:00Z,23.4117,23.4133,23.3943,23.3971,260.0
5547 +SYN2,2024-11-28T00:56:00Z,23.3971,23.3972,23.3655,23.3678,121.0
5548 +SYN2,2024-11-28T00:57:00Z,23.3678,23.3796,23.3675,23.3768,184.0
5549 +SYN2,2024-11-28T00:58:00Z,23.3768,23.3794,23.366,23.3679,192.0
5550 +SYN2,2024-11-29T09:00:00Z,23.3679,23.4004,23.3673,23.3994,159.0
5551 +SYN2,2024-11-29T09:02:00Z,23.3994,23.4035,23.3992,23.4025,222.0
5552 +SYN2,2024-11-29T09:04:00Z,23.4025,23.4033,23.3954,23.3971,91.0
5553 +SYN2,2024-11-29T09:06:00Z,23.3971,23.3976,23.389,23.3898,254.0
5554 +SYN2,2024-11-29T09:07:00Z,23.3898,23.3931,23.3894,23.3919,129.0
5555 +SYN2,2024-11-29T09:09:00Z,23.3919,23.3921,23.3805,23.3812,225.0
5556 +SYN2,2024-11-29T09:10:00Z,23.3812,23.3947,23.3785,23.3932,186.0
5557 +SYN2,2024-11-29T09:13:00Z,23.3932,23.4022,23.3924,23.4,29.0
5558 +SYN2,2024-11-29T09:14:00Z,23.4,23.4,23.377,23.3778,240.0
5559 +SYN2,2024-11-29T09:15:00Z,23.3778,23.381,23.3772,23.38,290.0
5560 +SYN2,2024-11-29T09:17:00Z,23.38,23.3829,23.3462,23.3467,98.0
5561 +SYN2,2024-11-29T09:19:00Z,23.3467,23.3778,23.3466,23.3756,208.0
5562 +SYN2,2024-11-29T09:20:00Z,23.3756,23.3773,23.3707,23.3751,5.0
5563 +SYN2,2024-11-29T09:22:00Z,23.3751,23.3772,23.3673,23.3674,78.0
5564 +SYN2,2024-11-29T09:23:00Z,23.3674,23.3678,23.3588,23.3591,82.0
5565 +SYN2,2024-11-29T09:24:00Z,23.3591,23.3602,23.3567,23.3586,175.0
5566 +SYN2,2024-11-29T09:26:00Z,23.3586,23.3596,23.35,23.3513,269.0
5567 +SYN2,2024-11-29T09:27:00Z,23.3513,23.3536,23.3386,23.3397,163.0
5568 +SYN2,2024-11-29T09:28:00Z,23.3397,23.3537,23.3386,23.35,245.0
5569 +SYN2,2024-11-29T09:30:00Z,23.35,23.3596,23.3441,23.3583,176.0
5570 +SYN2,2024-11-29T09:31:00Z,23.3583,23.3589,23.3369,23.3418,82.0
5571 +SYN2,2024-11-29T09:32:00Z,23.3418,23.3753,23.3383,23.3748,125.0
5572 +SYN2,2024-11-29T09:33:00Z,23.3748,23.3748,23.349,23.3532,75.0
5573 +SYN2,2024-11-29T09:35:00Z,23.3532,23.3573,23.3469,23.3481,184.0
5574 +SYN2,2024-11-29T09:37:00Z,23.3481,23.3488,23.3226,23.325,61.0
5575 +SYN2,2024-11-29T09:39:00Z,23.325,23.3254,23.321,23.3254,121.0
5576 +SYN2,2024-11-29T09:40:00Z,23.3254,23.3691,23.3234,23.3664,257.0
5577 +SYN2,2024-11-29T09:41:00Z,23.3664,23.3849,23.3641,23.383,260.0
5578 +SYN2,2024-11-29T09:42:00Z,23.383,23.3919,23.3791,23.3869,4.0
5579 +SYN2,2024-11-29T09:43:00Z,23.3869,23.4122,23.3844,23.4106,214.0
5580 +SYN2,2024-11-29T09:46:00Z,23.4106,23.4121,23.3922,23.3945,258.0
5581 +SYN2,2024-11-29T09:47:00Z,23.3945,23.4049,23.3917,23.4039,29.0
5582 +SYN2,2024-11-29T09:49:00Z,23.4039,23.404,23.3978,23.398,102.0
5583 +SYN2,2024-11-29T09:50:00Z,23.398,23.4013,23.3944,23.3952,58.0
5584 +SYN2,2024-11-29T09:51:00Z,23.3952,23.3986,23.3874,23.3902,29.0
5585 +SYN2,2024-11-29T09:52:00Z,23.3902,23.4119,23.3865,23.4085,292.0
5586 +SYN2,2024-11-29T09:54:00Z,23.4085,23.4104,23.3915,23.3942,262.0
5587 +SYN2,2024-11-29T09:55:00Z,23.3942,23.4264,23.3934,23.4238,178.0
5588 +SYN2,2024-11-29T09:56:00Z,23.4238,23.425,23.4051,23.4093,253.0
5589 +SYN2,2024-11-29T09:58:00Z,23.4093,23.4103,23.4025,23.4032,141.0
5590 +SYN2,2024-11-29T09:59:00Z,23.4032,23.4274,23.4032,23.4236,193.0
5591 +SYN2,2024-11-29T10:00:00Z,23.4236,23.4355,23.4193,23.4323,16.0
5592 +SYN2,2024-11-29T10:02:00Z,23.4323,23.4649,23.4311,23.4639,11.0
5593 +SYN2,2024-11-29T10:03:00Z,23.4639,23.4666,23.462,23.4665,133.0
5594 +SYN2,2024-11-29T10:04:00Z,23.4665,23.477,23.4649,23.4769,110.0
5595 +SYN2,2024-11-29T10:06:00Z,23.4769,23.4782,23.4502,23.4516,291.0
5596 +SYN2,2024-11-29T10:07:00Z,23.4516,23.4596,23.4508,23.4576,41.0
5597 +SYN2,2024-11-29T10:08:00Z,23.4576,23.4586,23.4467,23.4494,223.0
5598 +SYN2,2024-11-29T10:14:00Z,23.4494,23.4511,23.4406,23.4419,93.0
5599 +SYN2,2024-11-29T10:15:00Z,23.4419,23.4441,23.4207,23.4244,84.0
5600 +SYN2,2024-11-29T10:20:00Z,23.4244,23.4328,23.4224,23.4328,64.0
5601 +SYN2,2024-11-29T10:21:00Z,23.4328,23.4712,23.4321,23.4689,214.0
5602 +SYN2,2024-11-29T10:22:00Z,23.4689,23.4796,23.4661,23.479,236.0
5603 +SYN2,2024-11-29T10:24:00Z,23.479,23.4798,23.4734,23.4749,82.0
5604 +SYN2,2024-11-29T10:25:00Z,23.4749,23.4764,23.4545,23.4576,73.0
5605 +SYN2,2024-11-29T10:28:00Z,23.4576,23.4579,23.4562,23.4578,35.0
5606 +SYN2,2024-11-29T10:29:00Z,23.4578,23.4723,23.4576,23.4723,294.0
5607 +SYN2,2024-11-29T10:30:00Z,23.4723,23.4872,23.4711,23.4832,265.0
5608 +SYN2,2024-11-29T10:31:00Z,23.4832,23.4932,23.4826,23.4919,98.0
5609 +SYN2,2024-11-29T10:32:00Z,23.4919,23.5113,23.4859,23.5103,184.0
5610 +SYN2,2024-11-29T10:33:00Z,23.5103,23.5136,23.5095,23.5125,20.0
5611 +SYN2,2024-11-29T10:34:00Z,23.5125,23.5345,23.5113,23.5305,178.0
5612 +SYN2,2024-11-29T10:35:00Z,23.5305,23.5345,23.5254,23.5261,4.0
5613 +SYN2,2024-11-29T10:36:00Z,23.5261,23.5399,23.523,23.5389,66.0
5614 +SYN2,2024-11-29T10:38:00Z,23.5389,23.5568,23.5373,23.5565,6.0
5615 +SYN2,2024-11-29T10:39:00Z,23.5565,23.56,23.5506,23.5516,137.0
5616 +SYN2,2024-11-29T10:40:00Z,23.5516,23.552,23.5237,23.5239,170.0
5617 +SYN2,2024-11-29T10:42:00Z,23.5239,23.525,23.5026,23.5035,184.0
5618 +SYN2,2024-11-29T10:43:00Z,23.5035,23.523,23.5002,23.5191,228.0
5619 +SYN2,2024-11-29T10:48:00Z,23.5191,23.5252,23.5065,23.5066,214.0
5620 +SYN2,2024-11-29T10:50:00Z,23.5066,23.508,23.4733,23.4739,55.0
5621 +SYN2,2024-11-29T10:51:00Z,23.4739,23.4761,23.4512,23.4575,5.0
5622 +SYN2,2024-11-29T10:53:00Z,23.4575,23.4588,23.4352,23.4369,191.0
5623 +SYN2,2024-11-29T10:54:00Z,23.4369,23.4373,23.4286,23.429,239.0
5624 +SYN2,2024-11-29T10:57:00Z,23.429,23.4317,23.4168,23.4172,13.0
5625 +SYN2,2024-11-29T10:58:00Z,23.4172,23.4374,23.4124,23.4358,115.0
5626 +SYN2,2024-11-29T11:04:00Z,23.4358,23.4693,23.4333,23.4666,229.0
5627 +SYN2,2024-11-29T11:06:00Z,23.4666,23.4673,23.4532,23.4554,32.0
5628 +SYN2,2024-11-29T11:08:00Z,23.4554,23.4832,23.455,23.4831,205.0
5629 +SYN2,2024-11-29T11:09:00Z,23.4831,23.5004,23.4827,23.4993,150.0
5630 +SYN2,2024-11-29T11:10:00Z,23.4993,23.5005,23.4692,23.4702,10.0
5631 +SYN2,2024-11-29T11:16:00Z,23.4702,23.4769,23.4317,23.4336,162.0
5632 +SYN2,2024-11-29T11:17:00Z,23.4336,23.4341,23.4237,23.4251,205.0
5633 +SYN2,2024-11-29T11:20:00Z,23.4251,23.429,23.4148,23.4173,235.0
5634 +SYN2,2024-11-29T11:22:00Z,23.4173,23.4311,23.4143,23.4301,162.0
5635 +SYN2,2024-11-29T11:23:00Z,23.4301,23.4323,23.4129,23.4172,3.0
5636 +SYN2,2024-11-29T11:24:00Z,23.4172,23.4188,23.415,23.4157,13.0
5637 +SYN2,2024-11-29T11:26:00Z,23.4157,23.4279,23.4141,23.4273,187.0
5638 +SYN2,2024-11-29T11:30:00Z,23.4273,23.4285,23.4132,23.419,193.0
5639 +SYN2,2024-11-29T11:33:00Z,23.419,23.4205,23.3994,23.4009,235.0
5640 +SYN2,2024-11-29T11:34:00Z,23.4009,23.4012,23.3816,23.3864,235.0
5641 +SYN2,2024-11-29T11:35:00Z,23.3864,23.3917,23.3744,23.3763,61.0
5642 +SYN2,2024-11-29T11:36:00Z,23.3763,23.378,23.3555,23.3586,165.0
5643 +SYN2,2024-11-29T11:38:00Z,23.3586,23.3625,23.3191,23.3191,48.0
5644 +SYN2,2024-11-29T11:39:00Z,23.3191,23.3204,23.3025,23.3067,6.0
5645 +SYN2,2024-11-29T11:40:00Z,23.3067,23.3088,23.3039,23.3078,246.0
5646 +SYN2,2024-11-29T11:42:00Z,23.3078,23.3164,23.3073,23.3159,39.0
5647 +SYN2,2024-11-29T11:43:00Z,23.3159,23.3311,23.3151,23.3306,83.0
5648 +SYN2,2024-11-29T11:44:00Z,23.3306,23.3333,23.3287,23.3324,269.0
5649 +SYN2,2024-11-29T11:45:00Z,23.3324,23.3328,23.3029,23.3049,143.0
5650 +SYN2,2024-11-29T11:46:00Z,23.3049,23.3138,23.3017,23.3138,94.0
5651 +SYN2,2024-11-29T11:47:00Z,23.3138,23.337,23.3138,23.3361,284.0
5652 +SYN2,2024-11-29T11:48:00Z,23.3361,23.3403,23.3339,23.3393,128.0
5653 +SYN2,2024-11-29T11:49:00Z,23.3393,23.3424,23.3329,23.3339,53.0
5654 +SYN2,2024-11-29T11:50:00Z,23.3339,23.3382,23.3319,23.3365,46.0
5655 +SYN2,2024-11-29T11:51:00Z,23.3365,23.3519,23.3361,23.3491,203.0
5656 +SYN2,2024-11-29T11:52:00Z,23.3491,23.3533,23.3487,23.3506,63.0
5657 +SYN2,2024-11-29T11:53:00Z,23.3506,23.3525,23.3345,23.335,21.0
5658 +SYN2,2024-11-29T11:54:00Z,23.335,23.3418,23.3341,23.3402,255.0
5659 +SYN2,2024-11-29T11:56:00Z,23.3402,23.3629,23.3377,23.3577,265.0
5660 +SYN2,2024-11-29T11:59:00Z,23.3577,23.3611,23.3386,23.343,38.0
5661 +SYN2,2024-11-29T12:01:00Z,23.343,23.3436,23.3397,23.3422,242.0
5662 +SYN2,2024-11-29T12:03:00Z,23.3422,23.3433,23.3374,23.3423,3.0
5663 +SYN2,2024-11-29T12:04:00Z,23.3423,23.3433,23.3244,23.3247,242.0
5664 +SYN2,2024-11-29T12:06:00Z,23.3247,23.3266,23.297,23.2976,144.0
5665 +SYN2,2024-11-29T12:09:00Z,23.2976,23.325,23.2962,23.3222,278.0
5666 +SYN2,2024-11-29T12:10:00Z,23.3222,23.3248,23.3214,23.3216,229.0
5667 +SYN2,2024-11-29T12:11:00Z,23.3216,23.333,23.3197,23.3302,295.0
5668 +SYN2,2024-11-29T12:15:00Z,23.3302,23.3328,23.3119,23.3121,153.0
5669 +SYN2,2024-11-29T12:17:00Z,23.3121,23.3127,23.3052,23.3055,282.0
5670 +SYN2,2024-11-29T12:18:00Z,23.3055,23.3076,23.2642,23.2668,248.0
5671 +SYN2,2024-11-29T12:19:00Z,23.2668,23.267,23.2539,23.2557,296.0
5672 +SYN2,2024-11-29T12:22:00Z,23.2557,23.2844,23.2536,23.2837,165.0
5673 +SYN2,2024-11-29T12:23:00Z,23.2837,23.2846,23.2643,23.2676,131.0
5674 +SYN2,2024-11-29T12:27:00Z,23.2676,23.2742,23.2613,23.2732,165.0
5675 +SYN2,2024-11-29T12:28:00Z,23.2732,23.3075,23.2724,23.3057,182.0
5676 +SYN2,2024-11-29T12:29:00Z,23.3057,23.3204,23.3043,23.3188,270.0
5677 +SYN2,2024-11-29T12:30:00Z,23.3188,23.3314,23.3179,23.3283,31.0
5678 +SYN2,2024-11-29T12:32:00Z,23.3283,23.3525,23.3252,23.3503,139.0
5679 +SYN2,2024-11-29T12:35:00Z,23.3503,23.3514,23.3385,23.3413,270.0
5680 +SYN2,2024-11-29T12:36:00Z,23.3413,23.3528,23.3388,23.3522,294.0
5681 +SYN2,2024-11-29T12:37:00Z,23.3522,23.3549,23.3266,23.3294,150.0
5682 +SYN2,2024-11-29T12:42:00Z,23.3294,23.3296,23.3142,23.3148,102.0
5683 +SYN2,2024-11-29T12:46:00Z,23.3148,23.3328,23.3125,23.3294,87.0
5684 +SYN2,2024-11-29T12:48:00Z,23.3294,23.3303,23.3196,23.3201,275.0
5685 +SYN2,2024-11-29T12:49:00Z,23.3201,23.3222,23.3051,23.3058,103.0
5686 +SYN2,2024-11-29T12:50:00Z,23.3058,23.3121,23.3034,23.3119,239.0
5687 +SYN2,2024-11-29T12:51:00Z,23.3119,23.3595,23.3034,23.3576,139.0
5688 +SYN2,2024-11-29T12:52:00Z,23.3576,23.3929,23.3574,23.3922,77.0
5689 +SYN2,2024-11-29T12:53:00Z,23.3922,23.4159,23.3921,23.4146,53.0
5690 +SYN2,2024-11-29T12:55:00Z,23.4146,23.4221,23.4113,23.4218,8.0
5691 +SYN2,2024-11-29T12:56:00Z,23.4218,23.4237,23.4127,23.4149,240.0
5692 +SYN2,2024-11-29T12:57:00Z,23.4149,23.4153,23.3978,23.4002,282.0
5693 +SYN2,2024-11-29T12:58:00Z,23.4002,23.4019,23.3586,23.3592,98.0
5694 +SYN2,2024-11-29T12:59:00Z,23.3592,23.3888,23.3578,23.3839,74.0
5695 +SYN2,2024-11-29T13:00:00Z,23.3839,23.3863,23.3741,23.3768,10.0
5696 +SYN2,2024-11-29T13:02:00Z,23.3768,23.3902,23.3759,23.3896,167.0
5697 +SYN2,2024-11-29T13:05:00Z,23.3896,23.3963,23.3894,23.3948,256.0
5698 +SYN2,2024-11-29T13:06:00Z,23.3948,23.4012,23.3919,23.3992,279.0
5699 +SYN2,2024-11-29T13:09:00Z,23.3992,23.4098,23.3955,23.4089,172.0
5700 +SYN2,2024-11-29T13:11:00Z,23.4089,23.4123,23.4045,23.4109,182.0
5701 +SYN2,2024-11-29T13:13:00Z,23.4109,23.4233,23.41,23.4211,204.0
5702 +SYN2,2024-11-29T13:14:00Z,23.4211,23.4462,23.4194,23.4432,9.0
5703 +SYN2,2024-11-29T13:15:00Z,23.4432,23.481,23.4409,23.4799,260.0
5704 +SYN2,2024-11-29T13:17:00Z,23.4799,23.4811,23.4738,23.4739,226.0
5705 +SYN2,2024-11-29T13:18:00Z,23.4739,23.4776,23.4628,23.4642,131.0
5706 +SYN2,2024-11-29T13:20:00Z,23.4642,23.4759,23.4616,23.4745,263.0
5707 +SYN2,2024-11-29T13:24:00Z,23.4745,23.4751,23.4708,23.4727,20.0
5708 +SYN2,2024-11-29T13:25:00Z,23.4727,23.5115,23.4689,23.5106,211.0
5709 +SYN2,2024-11-29T13:28:00Z,23.5106,23.5354,23.5081,23.5321,80.0
5710 +SYN2,2024-11-29T13:31:00Z,23.5321,23.5324,23.5232,23.5247,192.0
5711 +SYN2,2024-11-29T13:34:00Z,23.5247,23.5258,23.5178,23.5188,68.0
5712 +SYN2,2024-11-29T13:35:00Z,23.5188,23.5406,23.5152,23.5405,179.0
5713 +SYN2,2024-11-29T13:36:00Z,23.5405,23.5581,23.5388,23.5576,204.0
5714 +SYN2,2024-11-29T13:37:00Z,23.5576,23.5584,23.5339,23.5385,272.0
5715 +SYN2,2024-11-29T13:38:00Z,23.5385,23.5388,23.5125,23.5158,222.0
5716 +SYN2,2024-11-29T13:40:00Z,23.5158,23.5369,23.515,23.5309,161.0
5717 +SYN2,2024-11-29T13:41:00Z,23.5309,23.5329,23.5128,23.5155,102.0
5718 +SYN2,2024-11-29T13:43:00Z,23.5155,23.5396,23.5153,23.5389,55.0
5719 +SYN2,2024-11-29T13:44:00Z,23.5389,23.5423,23.5368,23.5412,259.0
5720 +SYN2,2024-11-29T13:47:00Z,23.5412,23.5536,23.5377,23.5509,129.0
5721 +SYN2,2024-11-29T13:49:00Z,23.5509,23.5515,23.5461,23.5478,166.0
5722 +SYN2,2024-11-29T13:50:00Z,23.5478,23.5496,23.5397,23.5428,256.0
5723 +SYN2,2024-11-29T13:51:00Z,23.5428,23.5527,23.5415,23.5524,30.0
5724 +SYN2,2024-11-29T13:55:00Z,23.5524,23.5551,23.5395,23.5412,175.0
5725 +SYN2,2024-11-29T13:56:00Z,23.5412,23.5435,23.5356,23.536,110.0
5726 +SYN2,2024-11-29T13:57:00Z,23.536,23.5553,23.5333,23.5524,157.0
5727 +SYN2,2024-11-29T14:00:00Z,23.5524,23.5551,23.5507,23.5541,213.0
5728 +SYN2,2024-11-29T14:04:00Z,23.5541,23.5767,23.5539,23.5752,255.0
5729 +SYN2,2024-11-29T14:06:00Z,23.5752,23.5795,23.5746,23.5789,178.0
5730 +SYN2,2024-11-29T14:07:00Z,23.5789,23.6066,23.5788,23.6044,196.0
5731 +SYN2,2024-11-29T14:09:00Z,23.6044,23.6273,23.6038,23.6249,135.0
5732 +SYN2,2024-11-29T14:17:00Z,23.6249,23.6252,23.6184,23.6197,127.0
5733 +SYN2,2024-11-29T14:19:00Z,23.6197,23.6236,23.6122,23.614,271.0
5734 +SYN2,2024-11-29T14:20:00Z,23.614,23.6168,23.6004,23.6037,112.0
5735 +SYN2,2024-11-29T14:21:00Z,23.6037,23.6058,23.5859,23.5886,28.0
5736 +SYN2,2024-11-29T14:23:00Z,23.5886,23.5904,23.5681,23.5691,45.0
5737 +SYN2,2024-11-29T14:26:00Z,23.5691,23.5692,23.5301,23.5327,182.0
5738 +SYN2,2024-11-29T14:28:00Z,23.5327,23.5595,23.5315,23.5565,270.0
5739 +SYN2,2024-11-29T14:29:00Z,23.5565,23.5703,23.5563,23.5648,251.0
5740 +SYN2,2024-11-29T14:30:00Z,23.5648,23.5982,23.5627,23.5971,2729.0
5741 +SYN2,2024-11-29T14:31:00Z,23.5971,23.6177,23.597,23.6167,3725.0
5742 +SYN2,2024-11-29T14:32:00Z,23.6167,23.6485,23.6113,23.6454,1665.0
5743 +SYN2,2024-11-29T14:33:00Z,23.6454,23.646,23.5778,23.5824,1594.0
5744 +SYN2,2024-11-29T14:34:00Z,23.5824,23.6101,23.5795,23.6065,2696.0
5745 +SYN2,2024-11-29T14:35:00Z,23.6065,23.6557,23.6019,23.6525,4940.0
5746 +SYN2,2024-11-29T14:36:00Z,23.6525,23.6546,23.6455,23.649,1132.0
5747 +SYN2,2024-11-29T14:37:00Z,23.649,23.6492,23.595,23.5956,3210.0
5748 +SYN2,2024-11-29T14:38:00Z,23.5956,23.5979,23.5592,23.5594,2994.0
5749 +SYN2,2024-11-29T14:39:00Z,23.5594,23.6165,23.5575,23.6156,1827.0
5750 +SYN2,2024-11-29T14:40:00Z,23.6156,23.6359,23.6125,23.6358,1018.0
5751 +SYN2,2024-11-29T14:41:00Z,23.6358,23.7017,23.634,23.6986,4228.0
5752 +SYN2,2024-11-29T14:42:00Z,23.6986,23.7169,23.6978,23.7156,2878.0
5753 +SYN2,2024-11-29T14:43:00Z,23.7156,23.7479,23.715,23.7444,1254.0
5754 +SYN2,2024-11-29T14:44:00Z,23.7444,23.7515,23.7414,23.7473,888.0
5755 +SYN2,2024-11-29T14:45:00Z,23.7473,23.7929,23.7462,23.7928,914.0
5756 +SYN2,2024-11-29T14:46:00Z,23.7928,23.8234,23.7913,23.8215,1188.0
5757 +SYN2,2024-11-29T14:47:00Z,23.8215,23.8249,23.82,23.8244,403.0
5758 +SYN2,2024-11-29T14:48:00Z,23.8244,23.8286,23.799,23.8017,2742.0
5759 +SYN2,2024-11-29T14:49:00Z,23.8017,23.8416,23.7995,23.8389,4185.0
5760 +SYN2,2024-11-29T14:50:00Z,23.8389,23.8496,23.8388,23.8479,4986.0
5761 +SYN2,2024-11-29T14:51:00Z,23.8479,23.848,23.8234,23.8258,3027.0
5762 +SYN2,2024-11-29T14:52:00Z,23.8258,23.8264,23.8183,23.8199,2990.0
5763 +SYN2,2024-11-29T14:53:00Z,23.8199,23.8248,23.7904,23.7943,2489.0
5764 +SYN2,2024-11-29T14:54:00Z,23.7943,23.8552,23.7917,23.8545,4939.0
5765 +SYN2,2024-11-29T14:55:00Z,23.8545,23.8597,23.8525,23.8558,4998.0
5766 +SYN2,2024-11-29T14:56:00Z,23.8558,23.8583,23.8184,23.8231,3003.0
5767 +SYN2,2024-11-29T14:57:00Z,23.8231,23.8244,23.7879,23.7889,1072.0
5768 +SYN2,2024-11-29T14:58:00Z,23.7889,23.7891,23.7583,23.7605,1619.0
5769 +SYN2,2024-11-29T14:59:00Z,23.7605,23.763,23.712,23.7137,3032.0
5770 +SYN2,2024-11-29T15:00:00Z,23.7137,23.7552,23.712,23.7551,4848.0
5771 +SYN2,2024-11-29T15:01:00Z,23.7551,23.7657,23.7546,23.7631,4833.0
5772 +SYN2,2024-11-29T15:02:00Z,23.7631,23.7884,23.7614,23.7852,2238.0
5773 +SYN2,2024-11-29T15:03:00Z,23.7852,23.8285,23.7842,23.8259,2745.0
5774 +SYN2,2024-11-29T15:04:00Z,23.8259,23.8263,23.7868,23.7873,2600.0
5775 +SYN2,2024-11-29T15:05:00Z,23.7873,23.8198,23.7861,23.8192,2909.0
5776 +SYN2,2024-11-29T15:06:00Z,23.8192,23.8198,23.7762,23.7782,4908.0
5777 +SYN2,2024-11-29T15:07:00Z,23.7782,23.8017,23.7774,23.8012,4899.0
5778 +SYN2,2024-11-29T15:08:00Z,23.8012,23.8619,23.7998,23.8609,1920.0
5779 +SYN2,2024-11-29T15:09:00Z,23.8609,23.901,23.8602,23.8997,4624.0
5780 +SYN2,2024-11-29T15:10:00Z,23.8997,23.9038,23.8979,23.9012,3155.0
5781 +SYN2,2024-11-29T15:11:00Z,23.9012,23.9013,23.8218,23.8249,2834.0
5782 +SYN2,2024-11-29T15:12:00Z,23.8249,23.8873,23.8248,23.8849,4826.0
5783 +SYN2,2024-11-29T15:13:00Z,23.8849,23.8971,23.8826,23.8919,3975.0
5784 +SYN2,2024-11-29T15:14:00Z,23.8919,23.8962,23.8822,23.8828,1737.0
5785 +SYN2,2024-11-29T15:15:00Z,23.8828,23.9349,23.8785,23.9335,1554.0
5786 +SYN2,2024-11-29T15:16:00Z,23.9335,23.9379,23.9034,23.9059,4478.0
5787 +SYN2,2024-11-29T15:17:00Z,23.9059,23.9471,23.9047,23.9447,2404.0
5788 +SYN2,2024-11-29T15:18:00Z,23.9447,23.9531,23.9403,23.9495,3425.0
5789 +SYN2,2024-11-29T15:19:00Z,23.9495,23.9592,23.9433,23.9574,4961.0
5790 +SYN2,2024-11-29T15:20:00Z,23.9574,23.9592,23.9273,23.9281,3256.0
5791 +SYN2,2024-11-29T15:21:00Z,23.9281,23.9303,23.8943,23.895,4528.0
5792 +SYN2,2024-11-29T15:22:00Z,23.895,23.8951,23.8765,23.8766,4357.0
5793 +SYN2,2024-11-29T15:23:00Z,23.8766,23.8778,23.844,23.8442,4663.0
5794 +SYN2,2024-11-29T15:24:00Z,23.8442,23.8476,23.7678,23.7724,3702.0
5795 +SYN2,2024-11-29T15:25:00Z,23.7724,23.8673,23.7683,23.8645,2647.0
5796 +SYN2,2024-11-29T15:26:00Z,23.8645,23.868,23.7901,23.7923,3596.0
5797 +SYN2,2024-11-29T15:27:00Z,23.7923,23.8225,23.7904,23.8207,3841.0
5798 +SYN2,2024-11-29T15:28:00Z,23.8207,23.8213,23.8029,23.8037,3996.0
5799 +SYN2,2024-11-29T15:29:00Z,23.8037,23.8078,23.802,23.8043,4510.0
5800 +SYN2,2024-11-29T15:30:00Z,23.8043,23.8045,23.778,23.7782,2226.0
5801 +SYN2,2024-11-29T15:31:00Z,23.7782,23.7825,23.7707,23.7727,2655.0
5802 +SYN2,2024-11-29T15:32:00Z,23.7727,23.7937,23.7718,23.7927,2708.0
5803 +SYN2,2024-11-29T15:33:00Z,23.7927,23.7945,23.7461,23.7467,3839.0
5804 +SYN2,2024-11-29T15:34:00Z,23.7467,23.7904,23.745,23.7882,368.0
5805 +SYN2,2024-11-29T15:35:00Z,23.7882,23.796,23.7803,23.7812,2824.0
5806 +SYN2,2024-11-29T15:36:00Z,23.7812,23.8244,23.7784,23.8232,719.0
5807 +SYN2,2024-11-29T15:37:00Z,23.8232,23.8271,23.8067,23.8073,1547.0
5808 +SYN2,2024-11-29T15:38:00Z,23.8073,23.8078,23.7579,23.7588,566.0
5809 +SYN2,2024-11-29T15:39:00Z,23.7588,23.7602,23.733,23.7351,4873.0
5810 +SYN2,2024-11-29T15:40:00Z,23.7351,23.7379,23.7123,23.7125,4239.0
5811 +SYN2,2024-11-29T15:41:00Z,23.7125,23.7286,23.7112,23.7274,4214.0
5812 +SYN2,2024-11-29T15:42:00Z,23.7274,23.728,23.7168,23.7197,1531.0
5813 +SYN2,2024-11-29T15:43:00Z,23.7197,23.7263,23.7193,23.7243,4385.0
5814 +SYN2,2024-11-29T15:44:00Z,23.7243,23.7252,23.6706,23.6733,3454.0
5815 +SYN2,2024-11-29T15:45:00Z,23.6733,23.6741,23.6458,23.6473,4405.0
5816 +SYN2,2024-11-29T15:46:00Z,23.6473,23.6491,23.628,23.6299,3707.0
5817 +SYN2,2024-11-29T15:47:00Z,23.6299,23.6452,23.6283,23.645,376.0
5818 +SYN2,2024-11-29T15:48:00Z,23.645,23.6469,23.6229,23.6248,1287.0
5819 +SYN2,2024-11-29T15:49:00Z,23.6248,23.6258,23.5926,23.5943,4802.0
5820 +SYN2,2024-11-29T15:50:00Z,23.5943,23.6243,23.5919,23.6223,4024.0
5821 +SYN2,2024-11-29T15:51:00Z,23.6223,23.6549,23.6209,23.6509,4647.0
5822 +SYN2,2024-11-29T15:52:00Z,23.6509,23.6763,23.6502,23.676,2020.0
5823 +SYN2,2024-11-29T15:53:00Z,23.676,23.676,23.6587,23.6623,3621.0
5824 +SYN2,2024-11-29T15:54:00Z,23.6623,23.6659,23.659,23.6597,4715.0
5825 +SYN2,2024-11-29T15:55:00Z,23.6597,23.6936,23.6573,23.6933,4163.0
5826 +SYN2,2024-11-29T15:56:00Z,23.6933,23.6994,23.6892,23.6969,375.0
5827 +SYN2,2024-11-29T15:57:00Z,23.6969,23.7558,23.6939,23.7531,1847.0
5828 +SYN2,2024-11-29T15:58:00Z,23.7531,23.7547,23.7205,23.7241,3858.0
5829 +SYN2,2024-11-29T15:59:00Z,23.7241,23.7256,23.7223,23.7247,2481.0
5830 +SYN2,2024-11-29T16:00:00Z,23.7247,23.7476,23.7229,23.7458,3398.0
5831 +SYN2,2024-11-29T16:01:00Z,23.7458,23.7483,23.7456,23.7461,583.0
5832 +SYN2,2024-11-29T16:02:00Z,23.7461,23.747,23.7381,23.7394,1233.0
5833 +SYN2,2024-11-29T16:03:00Z,23.7394,23.759,23.7378,23.7565,2866.0
5834 +SYN2,2024-11-29T16:04:00Z,23.7565,23.76,23.7338,23.7385,3725.0
5835 +SYN2,2024-11-29T16:05:00Z,23.7385,23.7391,23.7207,23.7248,4304.0
5836 +SYN2,2024-11-29T16:06:00Z,23.7248,23.7254,23.6754,23.6787,4132.0
5837 +SYN2,2024-11-29T16:07:00Z,23.6787,23.7094,23.678,23.7077,1122.0
5838 +SYN2,2024-11-29T16:08:00Z,23.7077,23.7319,23.705,23.7308,4867.0
5839 +SYN2,2024-11-29T16:09:00Z,23.7308,23.7326,23.7138,23.7176,3331.0
5840 +SYN2,2024-11-29T16:10:00Z,23.7176,23.7251,23.7126,23.7212,1565.0
5841 +SYN2,2024-11-29T16:11:00Z,23.7212,23.723,23.6882,23.6885,739.0
5842 +SYN2,2024-11-29T16:12:00Z,23.6885,23.7091,23.6847,23.7079,1542.0
5843 +SYN2,2024-11-29T16:13:00Z,23.7079,23.7108,23.6996,23.7027,1299.0
5844 +SYN2,2024-11-29T16:14:00Z,23.7027,23.736,23.6999,23.734,420.0
5845 +SYN2,2024-11-29T16:15:00Z,23.734,23.7552,23.7339,23.7544,1562.0
5846 +SYN2,2024-11-29T16:16:00Z,23.7544,23.768,23.7515,23.7643,793.0
5847 +SYN2,2024-11-29T16:17:00Z,23.7643,23.8116,23.763,23.8103,226.0
5848 +SYN2,2024-11-29T16:18:00Z,23.8103,23.8165,23.7853,23.7874,4886.0
5849 +SYN2,2024-11-29T16:19:00Z,23.7874,23.8013,23.7856,23.8003,313.0
5850 +SYN2,2024-11-29T16:20:00Z,23.8003,23.8032,23.7959,23.8018,4620.0
5851 +SYN2,2024-11-29T16:21:00Z,23.8018,23.8426,23.7991,23.8409,4008.0
5852 +SYN2,2024-11-29T16:22:00Z,23.8409,23.8425,23.777,23.7794,3468.0
5853 +SYN2,2024-11-29T16:23:00Z,23.7794,23.7909,23.7778,23.7903,2688.0
5854 +SYN2,2024-11-29T16:24:00Z,23.7903,23.7919,23.7449,23.7491,2125.0
5855 +SYN2,2024-11-29T16:25:00Z,23.7491,23.7528,23.748,23.7482,1152.0
5856 +SYN2,2024-11-29T16:26:00Z,23.7482,23.7662,23.7469,23.7644,3118.0
5857 +SYN2,2024-11-29T16:27:00Z,23.7644,23.7867,23.7642,23.7858,4579.0
5858 +SYN2,2024-11-29T16:28:00Z,23.7858,23.7882,23.7427,23.7455,4255.0
5859 +SYN2,2024-11-29T16:29:00Z,23.7455,23.7512,23.7438,23.7477,4520.0
5860 +SYN2,2024-11-29T16:30:00Z,23.7477,23.77,23.746,23.7665,1270.0
5861 +SYN2,2024-11-29T16:31:00Z,23.7665,23.7697,23.7618,23.7627,1793.0
5862 +SYN2,2024-11-29T16:32:00Z,23.7627,23.7708,23.7588,23.7685,2865.0
5863 +SYN2,2024-11-29T16:33:00Z,23.7685,23.7714,23.7186,23.7211,3636.0
5864 +SYN2,2024-11-29T16:34:00Z,23.7211,23.8336,23.7189,23.8312,236.0
5865 +SYN2,2024-11-29T16:35:00Z,23.8312,23.8351,23.8073,23.8097,798.0
5866 +SYN2,2024-11-29T16:36:00Z,23.8097,23.8102,23.8061,23.8073,3563.0
5867 +SYN2,2024-11-29T16:37:00Z,23.8073,23.8094,23.7758,23.7803,4207.0
5868 +SYN2,2024-11-29T16:38:00Z,23.7803,23.781,23.7581,23.7601,4077.0
5869 +SYN2,2024-11-29T16:39:00Z,23.7601,23.8088,23.7582,23.8038,2491.0
5870 +SYN2,2024-11-29T16:40:00Z,23.8038,23.8192,23.8033,23.8173,3251.0
5871 +SYN2,2024-11-29T16:41:00Z,23.8173,23.8202,23.8169,23.8194,3541.0
5872 +SYN2,2024-11-29T16:42:00Z,23.8194,23.8493,23.8175,23.8478,4013.0
5873 +SYN2,2024-11-29T16:43:00Z,23.8478,23.8646,23.8465,23.8645,757.0
5874 +SYN2,2024-11-29T16:44:00Z,23.8645,23.9338,23.8635,23.9333,2203.0
5875 +SYN2,2024-11-29T16:45:00Z,23.9333,23.9338,23.9112,23.9123,935.0
5876 +SYN2,2024-11-29T16:46:00Z,23.9123,23.9479,23.9086,23.946,2215.0
5877 +SYN2,2024-11-29T16:47:00Z,23.946,23.9771,23.9453,23.9755,1355.0
5878 +SYN2,2024-11-29T16:49:00Z,23.9755,23.9995,23.9753,23.996,3824.0
5879 +SYN2,2024-11-29T16:50:00Z,23.996,24.0191,23.9951,24.0177,634.0
5880 +SYN2,2024-11-29T16:51:00Z,24.0177,24.0195,24.0144,24.0149,4960.0
5881 +SYN2,2024-11-29T16:52:00Z,24.0149,24.0184,23.9222,23.9255,3828.0
5882 +SYN2,2024-11-29T16:53:00Z,23.9255,23.9297,23.8826,23.8841,2494.0
5883 +SYN2,2024-11-29T16:54:00Z,23.8841,23.9221,23.8832,23.9202,586.0
5884 +SYN2,2024-11-29T16:55:00Z,23.9202,23.9382,23.92,23.9368,3142.0
5885 +SYN2,2024-11-29T16:56:00Z,23.9368,23.9459,23.9344,23.9432,323.0
5886 +SYN2,2024-11-29T16:57:00Z,23.9432,23.9435,23.9275,23.9282,2696.0
5887 +SYN2,2024-11-29T16:58:00Z,23.9282,23.9305,23.9249,23.93,1016.0
5888 +SYN2,2024-11-29T16:59:00Z,23.93,23.9584,23.9277,23.9568,4973.0
5889 +SYN2,2024-11-29T17:01:00Z,23.9568,23.9622,23.9517,23.9522,2290.0
5890 +SYN2,2024-11-29T17:02:00Z,23.9522,23.9536,23.9128,23.9155,4194.0
5891 +SYN2,2024-11-29T17:03:00Z,23.9155,23.9168,23.913,23.9164,119.0
5892 +SYN2,2024-11-29T17:04:00Z,23.9164,23.9767,23.9157,23.9725,1144.0
5893 +SYN2,2024-11-29T17:06:00Z,23.9725,23.9761,23.957,23.9605,3497.0
5894 +SYN2,2024-11-29T17:07:00Z,23.9605,23.9609,23.9466,23.9482,2128.0
5895 +SYN2,2024-11-29T17:08:00Z,23.9482,23.9964,23.9439,23.9913,1135.0
5896 +SYN2,2024-11-29T17:09:00Z,23.9913,24.006,23.9865,24.004,1064.0
5897 +SYN2,2024-11-29T17:10:00Z,24.004,24.0369,24.0022,24.0353,628.0
5898 +SYN2,2024-11-29T17:11:00Z,24.0353,24.0655,24.035,24.0642,1848.0
5899 +SYN2,2024-11-29T17:13:00Z,24.0642,24.0771,24.0629,24.0754,4680.0
5900 +SYN2,2024-11-29T17:14:00Z,24.0754,24.0946,24.0719,24.0935,1547.0
5901 +SYN2,2024-11-29T17:15:00Z,24.0935,24.1347,24.0926,24.1322,4996.0
5902 +SYN2,2024-11-29T17:16:00Z,24.1322,24.1468,24.1302,24.1464,1598.0
5903 +SYN2,2024-11-29T17:17:00Z,24.1464,24.1497,24.1122,24.1142,3118.0
5904 +SYN2,2024-11-29T17:18:00Z,24.1142,24.1583,24.1138,24.1548,3459.0
5905 +SYN2,2024-11-29T17:19:00Z,24.1548,24.1562,24.1401,24.1406,4646.0
5906 +SYN2,2024-11-29T17:20:00Z,24.1406,24.1445,24.0908,24.0923,1852.0
5907 +SYN2,2024-11-29T17:21:00Z,24.0923,24.0951,24.0601,24.0624,4733.0
5908 +SYN2,2024-11-29T17:22:00Z,24.0624,24.0995,24.0579,24.0992,4895.0
5909 +SYN2,2024-11-29T17:23:00Z,24.0992,24.1003,24.0487,24.0528,4165.0
5910 +SYN2,2024-11-29T17:24:00Z,24.0528,24.0536,24.0526,24.0528,4559.0
5911 +SYN2,2024-11-29T17:25:00Z,24.0528,24.0532,24.0488,24.0518,4405.0
5912 +SYN2,2024-11-29T17:26:00Z,24.0518,24.1312,24.0503,24.1288,1555.0
5913 +SYN2,2024-11-29T17:27:00Z,24.1288,24.1294,24.0897,24.092,3230.0
5914 +SYN2,2024-11-29T17:28:00Z,24.092,24.1214,24.0891,24.1205,1588.0
5915 +SYN2,2024-11-29T17:29:00Z,24.1205,24.123,24.0626,24.0647,2046.0
5916 +SYN2,2024-11-29T17:30:00Z,24.0647,24.0895,24.0634,24.0892,4319.0
5917 +SYN2,2024-11-29T17:31:00Z,24.0892,24.0905,24.0672,24.0688,1958.0
5918 +SYN2,2024-11-29T17:32:00Z,24.0688,24.0691,24.0357,24.0384,2742.0
5919 +SYN2,2024-11-29T17:33:00Z,24.0384,24.0657,24.0368,24.0637,2779.0
5920 +SYN2,2024-11-29T17:34:00Z,24.0637,24.065,24.0111,24.0137,2325.0
5921 +SYN2,2024-11-29T17:35:00Z,24.0137,24.0153,23.9711,23.9728,4658.0
5922 +SYN2,2024-11-29T17:36:00Z,23.9728,23.9745,23.9714,23.9739,2495.0
5923 +SYN2,2024-11-29T17:37:00Z,23.9739,23.9763,23.9191,23.9205,1738.0
5924 +SYN2,2024-11-29T17:38:00Z,23.9205,23.9229,23.9093,23.9107,3470.0
5925 +SYN2,2024-11-29T17:39:00Z,23.9107,23.928,23.9085,23.9267,515.0
5926 +SYN2,2024-11-29T17:40:00Z,23.9267,23.9273,23.8716,23.8733,3692.0
5927 +SYN2,2024-11-29T17:41:00Z,23.8733,23.9045,23.8723,23.9042,1159.0
5928 +SYN2,2024-11-29T17:42:00Z,23.9042,23.9709,23.8994,23.9702,2789.0
5929 +SYN2,2024-11-29T17:43:00Z,23.9702,23.9733,23.9649,23.9732,4607.0
5930 +SYN2,2024-11-29T17:44:00Z,23.9732,23.9755,23.9383,23.9415,3495.0
5931 +SYN2,2024-11-29T17:45:00Z,23.9415,23.9425,23.9229,23.9236,1834.0
5932 +SYN2,2024-11-29T17:46:00Z,23.9236,23.9247,23.9011,23.9018,2196.0
5933 +SYN2,2024-11-29T17:47:00Z,23.9018,23.9066,23.8983,23.9058,1368.0
5934 +SYN2,2024-11-29T17:49:00Z,23.9058,23.9072,23.8301,23.8304,213.0
5935 +SYN2,2024-11-29T17:50:00Z,23.8304,23.8802,23.8292,23.8797,3926.0
5936 +SYN2,2024-11-29T17:51:00Z,23.8797,23.8799,23.8776,23.8796,4392.0
5937 +SYN2,2024-11-29T17:52:00Z,23.8796,23.8814,23.8359,23.837,2152.0
5938 +SYN2,2024-11-29T17:53:00Z,23.837,23.8375,23.8224,23.8232,1413.0
5939 +SYN2,2024-11-29T17:54:00Z,23.8232,23.8243,23.8168,23.8173,2607.0
5940 +SYN2,2024-11-29T17:55:00Z,23.8173,23.8816,23.8154,23.8777,2004.0
5941 +SYN2,2024-11-29T17:56:00Z,23.8777,23.8799,23.8686,23.8687,577.0
5942 +SYN2,2024-11-29T17:58:00Z,23.8687,23.8911,23.8686,23.89,930.0
5943 +SYN2,2024-11-29T17:59:00Z,23.89,23.9015,23.8891,23.9008,2800.0
5944 +SYN2,2024-11-29T18:00:00Z,23.9008,23.9022,23.8657,23.867,4293.0
5945 +SYN2,2024-11-29T18:01:00Z,23.867,23.8694,23.8498,23.8515,278.0
5946 +SYN2,2024-11-29T18:02:00Z,23.8515,23.8525,23.8266,23.8299,292.0
5947 +SYN2,2024-11-29T18:03:00Z,23.8299,23.8308,23.8092,23.8101,35.0
5948 +SYN2,2024-11-29T18:05:00Z,23.8101,23.8173,23.8057,23.8138,293.0
5949 +SYN2,2024-11-29T18:06:00Z,23.8138,23.8355,23.8122,23.835,61.0
5950 +SYN2,2024-11-29T18:07:00Z,23.835,23.836,23.779,23.7798,185.0
5951 +SYN2,2024-11-29T18:08:00Z,23.7798,23.785,23.7749,23.784,32.0
5952 +SYN2,2024-11-29T18:09:00Z,23.784,23.7919,23.7823,23.7914,289.0
5953 +SYN2,2024-11-29T18:11:00Z,23.7914,23.7925,23.7773,23.78,255.0
5954 +SYN2,2024-11-29T18:12:00Z,23.78,23.7836,23.7791,23.782,201.0
5955 +SYN2,2024-11-29T18:13:00Z,23.782,23.7864,23.7625,23.7629,241.0
5956 +SYN2,2024-11-29T18:14:00Z,23.7629,23.7654,23.7585,23.7612,52.0
5957 +SYN2,2024-11-29T18:17:00Z,23.7612,23.7612,23.7499,23.75,171.0
5958 +SYN2,2024-11-29T18:19:00Z,23.75,23.7808,23.7465,23.778,254.0
5959 +SYN2,2024-11-29T18:21:00Z,23.778,23.8033,23.7761,23.8009,6.0
5960 +SYN2,2024-11-29T18:22:00Z,23.8009,23.8023,23.7839,23.7862,199.0
5961 +SYN2,2024-11-29T18:23:00Z,23.7862,23.7977,23.7855,23.7961,64.0
5962 +SYN2,2024-11-29T18:24:00Z,23.7961,23.819,23.7897,23.8174,9.0
5963 +SYN2,2024-11-29T18:25:00Z,23.8174,23.8188,23.7912,23.7915,115.0
5964 +SYN2,2024-11-29T18:27:00Z,23.7915,23.8199,23.7899,23.8188,127.0
5965 +SYN2,2024-11-29T18:29:00Z,23.8188,23.8238,23.8168,23.8221,194.0
5966 +SYN2,2024-11-29T18:31:00Z,23.8221,23.8228,23.8106,23.8122,143.0
5967 +SYN2,2024-11-29T18:32:00Z,23.8122,23.8129,23.794,23.7945,5.0
5968 +SYN2,2024-11-29T18:33:00Z,23.7945,23.8001,23.7758,23.7789,187.0
5969 +SYN2,2024-11-29T18:37:00Z,23.7789,23.7797,23.7721,23.7743,61.0
5970 +SYN2,2024-11-29T18:38:00Z,23.7743,23.7761,23.7595,23.7603,76.0
5971 +SYN2,2024-11-29T18:39:00Z,23.7603,23.7605,23.7333,23.7379,198.0
5972 +SYN2,2024-11-29T18:40:00Z,23.7379,23.7698,23.7374,23.7695,166.0
5973 +SYN2,2024-11-29T18:41:00Z,23.7695,23.7725,23.7657,23.7707,242.0
5974 +SYN2,2024-11-29T18:42:00Z,23.7707,23.7717,23.7512,23.7528,190.0
5975 +SYN2,2024-11-29T18:43:00Z,23.7528,23.7552,23.725,23.7255,75.0
5976 +SYN2,2024-11-29T18:44:00Z,23.7255,23.7406,23.7248,23.7371,107.0
5977 +SYN2,2024-11-29T18:45:00Z,23.7371,23.7415,23.7058,23.7073,271.0
5978 +SYN2,2024-11-29T18:46:00Z,23.7073,23.7113,23.7063,23.7091,239.0
5979 +SYN2,2024-11-29T18:47:00Z,23.7091,23.7105,23.6999,23.6999,22.0
5980 +SYN2,2024-11-29T18:48:00Z,23.6999,23.7199,23.6926,23.7163,23.0
5981 +SYN2,2024-11-29T18:49:00Z,23.7163,23.7192,23.7138,23.7141,164.0
5982 +SYN2,2024-11-29T18:51:00Z,23.7141,23.7168,23.6802,23.6821,132.0
5983 +SYN2,2024-11-29T18:53:00Z,23.6821,23.686,23.6719,23.6749,292.0
5984 +SYN2,2024-11-29T18:54:00Z,23.6749,23.6751,23.6603,23.666,263.0
5985 +SYN2,2024-11-29T18:55:00Z,23.666,23.6676,23.6638,23.6655,192.0
5986 +SYN2,2024-11-29T18:57:00Z,23.6655,23.692,23.6615,23.6917,293.0
5987 +SYN2,2024-11-29T18:58:00Z,23.6917,23.6935,23.6786,23.6824,179.0
5988 +SYN2,2024-11-29T18:59:00Z,23.6824,23.6838,23.669,23.67,239.0
5989 +SYN2,2024-11-29T19:00:00Z,23.67,23.6712,23.6509,23.6561,193.0
5990 +SYN2,2024-11-29T19:03:00Z,23.6561,23.6659,23.6556,23.6601,45.0
5991 +SYN2,2024-11-29T19:04:00Z,23.6601,23.6751,23.6597,23.6738,243.0
5992 +SYN2,2024-11-29T19:05:00Z,23.6738,23.6769,23.6436,23.648,82.0
5993 +SYN2,2024-11-29T19:07:00Z,23.648,23.6524,23.6403,23.6416,19.0
5994 +SYN2,2024-11-29T19:08:00Z,23.6416,23.6459,23.6257,23.6291,19.0
5995 +SYN2,2024-11-29T19:10:00Z,23.6291,23.6323,23.6128,23.6129,194.0
5996 +SYN2,2024-11-29T19:11:00Z,23.6129,23.6133,23.5903,23.5918,198.0
5997 +SYN2,2024-11-29T19:12:00Z,23.5918,23.5957,23.5778,23.5802,49.0
5998 +SYN2,2024-11-29T19:15:00Z,23.5802,23.5944,23.5771,23.5925,118.0
5999 +SYN2,2024-11-29T19:18:00Z,23.5925,23.5938,23.572,23.573,203.0
6000 +SYN2,2024-11-29T19:22:00Z,23.573,23.5749,23.5703,23.5711,287.0
6001 +SYN2,2024-11-29T19:23:00Z,23.5711,23.5713,23.5461,23.547,272.0
6002 +SYN2,2024-11-29T19:24:00Z,23.547,23.5515,23.5449,23.5489,51.0
6003 +SYN2,2024-11-29T19:25:00Z,23.5489,23.5711,23.5452,23.5698,188.0
6004 +SYN2,2024-11-29T19:28:00Z,23.5698,23.5798,23.5669,23.5777,103.0
6005 +SYN2,2024-11-29T19:30:00Z,23.5777,23.6132,23.5754,23.613,140.0
6006 +SYN2,2024-11-29T19:31:00Z,23.613,23.6314,23.6126,23.6286,80.0
6007 +SYN2,2024-11-29T19:32:00Z,23.6286,23.6321,23.6254,23.6278,93.0
6008 +SYN2,2024-11-29T19:35:00Z,23.6278,23.6411,23.625,23.6384,235.0
6009 +SYN2,2024-11-29T19:37:00Z,23.6384,23.6385,23.6146,23.6172,211.0
6010 +SYN2,2024-11-29T19:38:00Z,23.6172,23.6176,23.5975,23.6006,293.0
6011 +SYN2,2024-11-29T19:40:00Z,23.6006,23.6047,23.5721,23.5751,272.0
6012 +SYN2,2024-11-29T19:42:00Z,23.5751,23.5964,23.5717,23.595,87.0
6013 +SYN2,2024-11-29T19:43:00Z,23.595,23.5963,23.5787,23.5797,78.0
6014 +SYN2,2024-11-29T19:45:00Z,23.5797,23.5858,23.5792,23.5857,54.0
6015 +SYN2,2024-11-29T19:47:00Z,23.5857,23.5865,23.5823,23.586,272.0
6016 +SYN2,2024-11-29T19:48:00Z,23.586,23.5888,23.5665,23.5674,105.0
6017 +SYN2,2024-11-29T19:49:00Z,23.5674,23.5799,23.5656,23.5725,59.0
6018 +SYN2,2024-11-29T19:50:00Z,23.5725,23.5727,23.5301,23.5305,164.0
6019 +SYN2,2024-11-29T19:51:00Z,23.5305,23.5336,23.523,23.5255,126.0
6020 +SYN2,2024-11-29T19:52:00Z,23.5255,23.5263,23.5249,23.5262,43.0
6021 +SYN2,2024-11-29T19:54:00Z,23.5262,23.5569,23.5261,23.5531,163.0
6022 +SYN2,2024-11-29T19:55:00Z,23.5531,23.5543,23.525,23.5277,113.0
6023 +SYN2,2024-11-29T19:58:00Z,23.5277,23.5333,23.5119,23.5138,205.0
6024 +SYN2,2024-11-29T19:59:00Z,23.5138,23.5274,23.5102,23.5264,145.0
6025 +SYN2,2024-11-29T20:01:00Z,23.5264,23.5291,23.5237,23.5282,160.0
6026 +SYN2,2024-11-29T20:05:00Z,23.5282,23.5335,23.5252,23.5311,122.0
6027 +SYN2,2024-11-29T20:06:00Z,23.5311,23.5409,23.5308,23.5391,271.0
6028 +SYN2,2024-11-29T20:09:00Z,23.5391,23.5512,23.5383,23.5477,137.0
6029 +SYN2,2024-11-29T20:10:00Z,23.5477,23.5506,23.5356,23.5385,279.0
6030 +SYN2,2024-11-29T20:11:00Z,23.5385,23.5405,23.5075,23.508,61.0
6031 +SYN2,2024-11-29T20:12:00Z,23.508,23.5228,23.508,23.5218,237.0
6032 +SYN2,2024-11-29T20:13:00Z,23.5218,23.5503,23.5188,23.5483,202.0
6033 +SYN2,2024-11-29T20:14:00Z,23.5483,23.5494,23.5219,23.5243,223.0
6034 +SYN2,2024-11-29T20:15:00Z,23.5243,23.5483,23.5233,23.5454,224.0
6035 +SYN2,2024-11-29T20:16:00Z,23.5454,23.548,23.5201,23.5212,244.0
6036 +SYN2,2024-11-29T20:17:00Z,23.5212,23.5362,23.5177,23.5328,13.0
6037 +SYN2,2024-11-29T20:18:00Z,23.5328,23.5348,23.5273,23.5289,117.0
6038 +SYN2,2024-11-29T20:19:00Z,23.5289,23.5311,23.4952,23.496,287.0
6039 +SYN2,2024-11-29T20:20:00Z,23.496,23.5052,23.4954,23.5037,166.0
6040 +SYN2,2024-11-29T20:22:00Z,23.5037,23.5238,23.5033,23.5237,198.0
6041 +SYN2,2024-11-29T20:23:00Z,23.5237,23.5244,23.5223,23.5235,3.0
6042 +SYN2,2024-11-29T20:27:00Z,23.5235,23.5269,23.5192,23.5234,288.0
6043 +SYN2,2024-11-29T20:29:00Z,23.5234,23.5325,23.521,23.5304,287.0
6044 +SYN2,2024-11-29T20:31:00Z,23.5304,23.531,23.5145,23.5148,286.0
6045 +SYN2,2024-11-29T20:33:00Z,23.5148,23.5179,23.5127,23.5162,283.0
6046 +SYN2,2024-11-29T20:35:00Z,23.5162,23.5273,23.5151,23.5259,229.0
6047 +SYN2,2024-11-29T20:42:00Z,23.5259,23.5302,23.5257,23.5294,34.0
6048 +SYN2,2024-11-29T20:43:00Z,23.5294,23.5374,23.5255,23.5363,1.0
6049 +SYN2,2024-11-29T20:44:00Z,23.5363,23.5364,23.5279,23.528,5.0
6050 +SYN2,2024-11-29T20:45:00Z,23.528,23.5332,23.5228,23.5241,55.0
6051 +SYN2,2024-11-29T20:47:00Z,23.5241,23.5277,23.4975,23.4978,92.0
6052 +SYN2,2024-11-29T20:49:00Z,23.4978,23.5186,23.4971,23.5144,293.0
6053 +SYN2,2024-11-29T20:50:00Z,23.5144,23.5156,23.4885,23.4886,215.0
6054 +SYN2,2024-11-29T20:51:00Z,23.4886,23.4929,23.4875,23.4911,174.0
6055 +SYN2,2024-11-29T20:52:00Z,23.4911,23.5227,23.491,23.5222,17.0
6056 +SYN2,2024-11-29T20:53:00Z,23.5222,23.5235,23.5099,23.515,278.0
6057 +SYN2,2024-11-29T20:56:00Z,23.515,23.5299,23.5127,23.5275,87.0
6058 +SYN2,2024-11-29T20:57:00Z,23.5275,23.5288,23.4982,23.5018,211.0
6059 +SYN2,2024-11-29T20:58:00Z,23.5018,23.5111,23.5002,23.5097,174.0
6060 +SYN2,2024-11-29T21:01:00Z,23.5097,23.5107,23.483,23.4852,126.0
6061 +SYN2,2024-11-29T21:02:00Z,23.4852,23.491,23.4849,23.4905,70.0
6062 +SYN2,2024-11-29T21:04:00Z,23.4905,23.5038,23.4895,23.5021,221.0
6063 +SYN2,2024-11-29T21:05:00Z,23.5021,23.5031,23.4982,23.4982,231.0
6064 +SYN2,2024-11-29T21:06:00Z,23.4982,23.5009,23.4967,23.4994,52.0
6065 +SYN2,2024-11-29T21:07:00Z,23.4994,23.5145,23.4968,23.5132,21.0
6066 +SYN2,2024-11-29T21:11:00Z,23.5132,23.5149,23.4893,23.4922,54.0
6067 +SYN2,2024-11-29T21:13:00Z,23.4922,23.5233,23.4916,23.5188,36.0
6068 +SYN2,2024-11-29T21:16:00Z,23.5188,23.5294,23.5183,23.5258,280.0
6069 +SYN2,2024-11-29T21:18:00Z,23.5258,23.5356,23.5236,23.5333,56.0
6070 +SYN2,2024-11-29T21:19:00Z,23.5333,23.5464,23.5299,23.5452,78.0
6071 +SYN2,2024-11-29T21:20:00Z,23.5452,23.5615,23.5422,23.5594,202.0
6072 +SYN2,2024-11-29T21:23:00Z,23.5594,23.562,23.548,23.5527,292.0
6073 +SYN2,2024-11-29T21:24:00Z,23.5527,23.5531,23.5206,23.5248,73.0
6074 +SYN2,2024-11-29T21:25:00Z,23.5248,23.5269,23.5034,23.5043,208.0
6075 +SYN2,2024-11-29T21:27:00Z,23.5043,23.5618,23.5037,23.5588,95.0
6076 +SYN2,2024-11-29T21:29:00Z,23.5588,23.5669,23.5562,23.5657,196.0
6077 +SYN2,2024-11-29T21:31:00Z,23.5657,23.5667,23.5555,23.5574,249.0
6078 +SYN2,2024-11-29T21:35:00Z,23.5574,23.5605,23.541,23.5432,122.0
6079 +SYN2,2024-11-29T21:36:00Z,23.5432,23.552,23.5424,23.5505,163.0
6080 +SYN2,2024-11-29T21:38:00Z,23.5505,23.552,23.5431,23.5454,166.0
6081 +SYN2,2024-11-29T21:40:00Z,23.5454,23.5522,23.5422,23.5484,294.0
6082 +SYN2,2024-11-29T21:42:00Z,23.5484,23.5494,23.5446,23.5461,41.0
6083 +SYN2,2024-11-29T21:45:00Z,23.5461,23.5517,23.5434,23.5496,126.0
6084 +SYN2,2024-11-29T21:46:00Z,23.5496,23.5539,23.5286,23.5312,270.0
6085 +SYN2,2024-11-29T21:47:00Z,23.5312,23.5334,23.5193,23.5223,196.0
6086 +SYN2,2024-11-29T21:48:00Z,23.5223,23.5336,23.5199,23.5298,291.0
6087 +SYN2,2024-11-29T21:49:00Z,23.5298,23.5313,23.5217,23.5228,295.0
6088 +SYN2,2024-11-29T21:51:00Z,23.5228,23.5282,23.5176,23.5273,213.0
6089 +SYN2,2024-11-29T21:53:00Z,23.5273,23.5613,23.5239,23.5536,83.0
6090 +SYN2,2024-11-29T21:54:00Z,23.5536,23.5541,23.5312,23.5325,176.0
6091 +SYN2,2024-11-29T21:55:00Z,23.5325,23.559,23.5323,23.5585,133.0
6092 +SYN2,2024-11-29T21:57:00Z,23.5585,23.5661,23.557,23.5646,11.0
6093 +SYN2,2024-11-29T21:58:00Z,23.5646,23.5706,23.5452,23.5491,6.0
6094 +SYN2,2024-11-29T21:59:00Z,23.5491,23.5514,23.5195,23.521,223.0
6095 +SYN2,2024-12-02T09:01:00Z,23.521,23.521,23.4932,23.4945,132.0
6096 +SYN2,2024-12-02T09:02:00Z,23.4945,23.4962,23.4899,23.4929,129.0
6097 +SYN2,2024-12-02T09:07:00Z,23.4929,23.4984,23.4914,23.4982,81.0
6098 +SYN2,2024-12-02T09:08:00Z,23.4982,23.5101,23.4947,23.508,100.0
6099 +SYN2,2024-12-02T09:09:00Z,23.508,23.5119,23.4846,23.4854,133.0
6100 +SYN2,2024-12-02T09:11:00Z,23.4854,23.4879,23.4689,23.473,172.0
6101 +SYN2,2024-12-02T09:12:00Z,23.473,23.4737,23.4698,23.4707,258.0
6102 +SYN2,2024-12-02T09:13:00Z,23.4707,23.4714,23.4672,23.4674,250.0
6103 +SYN2,2024-12-02T09:14:00Z,23.4674,23.4684,23.4609,23.462,91.0
6104 +SYN2,2024-12-02T09:15:00Z,23.462,23.4624,23.4567,23.4586,299.0
6105 +SYN2,2024-12-02T09:16:00Z,23.4586,23.4591,23.4336,23.4384,241.0
6106 +SYN2,2024-12-02T09:18:00Z,23.4384,23.4416,23.3973,23.4,132.0
6107 +SYN2,2024-12-02T09:20:00Z,23.4,23.4034,23.3775,23.3822,40.0
6108 +SYN2,2024-12-02T09:21:00Z,23.3822,23.4058,23.381,23.405,123.0
6109 +SYN2,2024-12-02T09:23:00Z,23.405,23.4064,23.3893,23.3901,267.0
6110 +SYN2,2024-12-02T09:24:00Z,23.3901,23.3932,23.3892,23.3924,227.0
6111 +SYN2,2024-12-02T09:25:00Z,23.3924,23.3937,23.3542,23.3549,272.0
6112 +SYN2,2024-12-02T09:27:00Z,23.3549,23.3572,23.3475,23.3481,139.0
6113 +SYN2,2024-12-02T09:31:00Z,23.3481,23.3492,23.3417,23.3445,82.0
6114 +SYN2,2024-12-02T09:32:00Z,23.3445,23.3456,23.3268,23.3273,34.0
6115 +SYN2,2024-12-02T09:33:00Z,23.3273,23.3432,23.3241,23.3407,279.0
6116 +SYN2,2024-12-02T09:35:00Z,23.3407,23.3529,23.3406,23.3515,188.0
6117 +SYN2,2024-12-02T09:40:00Z,23.3515,23.3546,23.347,23.3518,132.0
6118 +SYN2,2024-12-02T09:41:00Z,23.3518,23.3537,23.324,23.3249,220.0
6119 +SYN2,2024-12-02T09:43:00Z,23.3249,23.3266,23.3161,23.3166,180.0
6120 +SYN2,2024-12-02T09:44:00Z,23.3166,23.3168,23.3019,23.3043,133.0
6121 +SYN2,2024-12-02T09:45:00Z,23.3043,23.306,23.2938,23.2938,270.0
6122 +SYN2,2024-12-02T09:46:00Z,23.2938,23.2938,23.2636,23.2666,134.0
6123 +SYN2,2024-12-02T09:49:00Z,23.2666,23.2734,23.2647,23.2705,68.0
6124 +SYN2,2024-12-02T09:51:00Z,23.2705,23.2727,23.2537,23.2549,274.0
6125 +SYN2,2024-12-02T09:52:00Z,23.2549,23.2571,23.2352,23.2353,126.0
6126 +SYN2,2024-12-02T09:55:00Z,23.2353,23.2414,23.2295,23.2364,183.0
6127 +SYN2,2024-12-02T09:56:00Z,23.2364,23.2367,23.2349,23.2357,149.0
6128 +SYN2,2024-12-02T09:59:00Z,23.2357,23.2397,23.2093,23.2109,170.0
6129 +SYN2,2024-12-02T10:01:00Z,23.2109,23.211,23.1866,23.1884,246.0
6130 +SYN2,2024-12-02T10:03:00Z,23.1884,23.21,23.1872,23.208,38.0
6131 +SYN2,2024-12-02T10:05:00Z,23.208,23.2266,23.2062,23.2241,14.0
6132 +SYN2,2024-12-02T10:06:00Z,23.2241,23.23,23.2231,23.2284,287.0
6133 +SYN2,2024-12-02T10:07:00Z,23.2284,23.2411,23.2249,23.241,268.0
6134 +SYN2,2024-12-02T10:09:00Z,23.241,23.2516,23.2402,23.2496,263.0
6135 +SYN2,2024-12-02T10:16:00Z,23.2496,23.2518,23.2481,23.2512,11.0
6136 +SYN2,2024-12-02T10:17:00Z,23.2512,23.2554,23.2242,23.2267,197.0
6137 +SYN2,2024-12-02T10:18:00Z,23.2267,23.2321,23.2218,23.2218,46.0
6138 +SYN2,2024-12-02T10:19:00Z,23.2218,23.2515,23.2207,23.251,197.0
6139 +SYN2,2024-12-02T10:21:00Z,23.251,23.2664,23.2507,23.2627,115.0
6140 +SYN2,2024-12-02T10:22:00Z,23.2627,23.2847,23.2623,23.2838,49.0
6141 +SYN2,2024-12-02T10:24:00Z,23.2838,23.2846,23.2595,23.2619,277.0
6142 +SYN2,2024-12-02T10:25:00Z,23.2619,23.3041,23.2597,23.3027,160.0
6143 +SYN2,2024-12-02T10:26:00Z,23.3027,23.3339,23.2985,23.3331,12.0
6144 +SYN2,2024-12-02T10:27:00Z,23.3331,23.334,23.3246,23.3251,278.0
6145 +SYN2,2024-12-02T10:29:00Z,23.3251,23.3282,23.3239,23.3248,256.0
6146 +SYN2,2024-12-02T10:30:00Z,23.3248,23.3394,23.3238,23.3359,207.0
6147 +SYN2,2024-12-02T10:31:00Z,23.3359,23.336,23.3321,23.3359,267.0
6148 +SYN2,2024-12-02T10:32:00Z,23.3359,23.349,23.3336,23.3485,176.0
6149 +SYN2,2024-12-02T10:33:00Z,23.3485,23.3531,23.3364,23.3399,106.0
6150 +SYN2,2024-12-02T10:34:00Z,23.3399,23.3425,23.3379,23.3423,109.0
6151 +SYN2,2024-12-02T10:35:00Z,23.3423,23.3525,23.3422,23.3524,216.0
6152 +SYN2,2024-12-02T10:39:00Z,23.3524,23.353,23.3345,23.3389,41.0
6153 +SYN2,2024-12-02T10:40:00Z,23.3389,23.3485,23.3374,23.3456,43.0
6154 +SYN2,2024-12-02T10:42:00Z,23.3456,23.368,23.3438,23.3675,232.0
6155 +SYN2,2024-12-02T10:43:00Z,23.3675,23.3724,23.355,23.3568,30.0
6156 +SYN2,2024-12-02T10:44:00Z,23.3568,23.3649,23.3554,23.3647,119.0
6157 +SYN2,2024-12-02T10:47:00Z,23.3647,23.3654,23.3396,23.3402,101.0
6158 +SYN2,2024-12-02T10:48:00Z,23.3402,23.3626,23.3395,23.3595,26.0
6159 +SYN2,2024-12-02T10:49:00Z,23.3595,23.3606,23.3275,23.3344,142.0
6160 +SYN2,2024-12-02T10:50:00Z,23.3344,23.3381,23.3326,23.3378,12.0
6161 +SYN2,2024-12-02T10:51:00Z,23.3378,23.3383,23.3285,23.331,12.0
6162 +SYN2,2024-12-02T10:52:00Z,23.331,23.3509,23.3294,23.3493,220.0
6163 +SYN2,2024-12-02T10:54:00Z,23.3493,23.3752,23.3482,23.3738,277.0
6164 +SYN2,2024-12-02T10:56:00Z,23.3738,23.3795,23.3454,23.346,131.0
6165 +SYN2,2024-12-02T10:57:00Z,23.346,23.3464,23.3263,23.3287,298.0
6166 +SYN2,2024-12-02T10:58:00Z,23.3287,23.3355,23.3261,23.3334,51.0
6167 +SYN2,2024-12-02T10:59:00Z,23.3334,23.362,23.3318,23.3599,5.0
6168 +SYN2,2024-12-02T11:00:00Z,23.3599,23.3766,23.3565,23.3756,47.0
6169 +SYN2,2024-12-02T11:01:00Z,23.3756,23.3768,23.3572,23.3577,298.0
6170 +SYN2,2024-12-02T11:02:00Z,23.3577,23.3577,23.352,23.3558,74.0
6171 +SYN2,2024-12-02T11:06:00Z,23.3558,23.3742,23.355,23.3726,40.0
6172 +SYN2,2024-12-02T11:07:00Z,23.3726,23.3891,23.372,23.3884,293.0
6173 +SYN2,2024-12-02T11:08:00Z,23.3884,23.39,23.3719,23.3726,185.0
6174 +SYN2,2024-12-02T11:09:00Z,23.3726,23.3874,23.3714,23.3842,112.0
6175 +SYN2,2024-12-02T11:13:00Z,23.3842,23.4097,23.3829,23.4082,50.0
6176 +SYN2,2024-12-02T11:16:00Z,23.4082,23.4263,23.4042,23.4213,141.0
6177 +SYN2,2024-12-02T11:19:00Z,23.4213,23.422,23.3999,23.4003,129.0
6178 +SYN2,2024-12-02T11:20:00Z,23.4003,23.4268,23.395,23.4232,193.0
6179 +SYN2,2024-12-02T11:23:00Z,23.4232,23.4488,23.4228,23.4478,202.0
6180 +SYN2,2024-12-02T11:24:00Z,23.4478,23.4488,23.4258,23.4304,75.0
6181 +SYN2,2024-12-02T11:25:00Z,23.4304,23.4401,23.4297,23.4391,236.0
6182 +SYN2,2024-12-02T11:29:00Z,23.4391,23.4495,23.4365,23.4476,229.0
6183 +SYN2,2024-12-02T11:35:00Z,23.4476,23.4531,23.4475,23.4503,55.0
6184 +SYN2,2024-12-02T11:39:00Z,23.4503,23.4568,23.4486,23.4537,107.0
6185 +SYN2,2024-12-02T11:41:00Z,23.4537,23.4541,23.443,23.444,248.0
6186 +SYN2,2024-12-02T11:42:00Z,23.444,23.4452,23.4332,23.434,211.0
6187 +SYN2,2024-12-02T11:43:00Z,23.434,23.4376,23.4173,23.4196,57.0
6188 +SYN2,2024-12-02T11:44:00Z,23.4196,23.4249,23.4157,23.4179,217.0
6189 +SYN2,2024-12-02T11:47:00Z,23.4179,23.4191,23.4158,23.4189,214.0
6190 +SYN2,2024-12-02T11:49:00Z,23.4189,23.4193,23.4127,23.4177,185.0
6191 +SYN2,2024-12-02T11:53:00Z,23.4177,23.426,23.4171,23.4246,208.0
6192 +SYN2,2024-12-02T11:54:00Z,23.4246,23.4452,23.4238,23.4436,77.0
6193 +SYN2,2024-12-02T11:55:00Z,23.4436,23.4479,23.4227,23.4258,59.0
6194 +SYN2,2024-12-02T11:56:00Z,23.4258,23.426,23.4041,23.4063,209.0
6195 +SYN2,2024-12-02T11:57:00Z,23.4063,23.4177,23.4037,23.4158,1.0
6196 +SYN2,2024-12-02T11:59:00Z,23.4158,23.4593,23.4144,23.458,8.0
6197 +SYN2,2024-12-02T12:00:00Z,23.458,23.4584,23.4418,23.442,232.0
6198 +SYN2,2024-12-02T12:01:00Z,23.442,23.4437,23.4389,23.4393,189.0
6199 +SYN2,2024-12-02T12:03:00Z,23.4393,23.4492,23.4357,23.4442,123.0
6200 +SYN2,2024-12-02T12:06:00Z,23.4442,23.4726,23.4418,23.4723,223.0
6201 +SYN2,2024-12-02T12:07:00Z,23.4723,23.4759,23.467,23.4674,8.0
6202 +SYN2,2024-12-02T12:09:00Z,23.4674,23.4696,23.4471,23.449,117.0
6203 +SYN2,2024-12-02T12:10:00Z,23.449,23.4497,23.4406,23.4413,152.0
6204 +SYN2,2024-12-02T12:11:00Z,23.4413,23.4586,23.4408,23.4576,56.0
6205 +SYN2,2024-12-02T12:12:00Z,23.4576,23.4632,23.4426,23.4446,137.0
6206 +SYN2,2024-12-02T12:13:00Z,23.4446,23.4501,23.4446,23.4481,196.0
6207 +SYN2,2024-12-02T12:14:00Z,23.4481,23.4534,23.4301,23.4311,80.0
6208 +SYN2,2024-12-02T12:18:00Z,23.4311,23.4339,23.4248,23.4267,94.0
6209 +SYN2,2024-12-02T12:19:00Z,23.4267,23.4334,23.4256,23.4328,201.0
6210 +SYN2,2024-12-02T12:20:00Z,23.4328,23.4622,23.4303,23.4614,72.0
6211 +SYN2,2024-12-02T12:21:00Z,23.4614,23.4616,23.4585,23.4592,107.0
6212 +SYN2,2024-12-02T12:24:00Z,23.4592,23.4668,23.4557,23.4632,296.0
6213 +SYN2,2024-12-02T12:27:00Z,23.4632,23.4837,23.4627,23.4832,159.0
6214 +SYN2,2024-12-02T12:28:00Z,23.4832,23.4913,23.4828,23.4898,64.0
6215 +SYN2,2024-12-02T12:33:00Z,23.4898,23.5047,23.4877,23.504,151.0
6216 +SYN2,2024-12-02T12:34:00Z,23.504,23.504,23.4893,23.4915,236.0
6217 +SYN2,2024-12-02T12:35:00Z,23.4915,23.4992,23.4893,23.4992,168.0
6218 +SYN2,2024-12-02T12:36:00Z,23.4992,23.5009,23.4942,23.4946,270.0
6219 +SYN2,2024-12-02T12:37:00Z,23.4946,23.4947,23.4733,23.4771,219.0
6220 +SYN2,2024-12-02T12:39:00Z,23.4771,23.4802,23.4761,23.4789,232.0
6221 +SYN2,2024-12-02T12:40:00Z,23.4789,23.4819,23.4523,23.4538,160.0
6222 +SYN2,2024-12-02T12:41:00Z,23.4538,23.4543,23.4347,23.4348,84.0
6223 +SYN2,2024-12-02T12:43:00Z,23.4348,23.4355,23.4313,23.4338,227.0
6224 +SYN2,2024-12-02T12:44:00Z,23.4338,23.4361,23.4312,23.4347,104.0
6225 +SYN2,2024-12-02T12:45:00Z,23.4347,23.4528,23.4343,23.4503,114.0
6226 +SYN2,2024-12-02T12:46:00Z,23.4503,23.4504,23.4323,23.4331,180.0
6227 +SYN2,2024-12-02T12:48:00Z,23.4331,23.4338,23.4257,23.4281,19.0
6228 +SYN2,2024-12-02T12:49:00Z,23.4281,23.4291,23.4122,23.4142,22.0
6229 +SYN2,2024-12-02T12:50:00Z,23.4142,23.4175,23.4011,23.4048,48.0
6230 +SYN2,2024-12-02T12:52:00Z,23.4048,23.405,23.4019,23.4026,280.0
6231 +SYN2,2024-12-02T12:53:00Z,23.4026,23.4238,23.4009,23.4227,173.0
6232 +SYN2,2024-12-02T12:54:00Z,23.4227,23.4388,23.4221,23.4341,38.0
6233 +SYN2,2024-12-02T12:56:00Z,23.4341,23.4371,23.426,23.427,281.0
6234 +SYN2,2024-12-02T12:58:00Z,23.427,23.4271,23.4075,23.4105,221.0
6235 +SYN2,2024-12-02T12:59:00Z,23.4105,23.4107,23.4034,23.4053,55.0
6236 +SYN2,2024-12-02T13:04:00Z,23.4053,23.4104,23.4044,23.4077,116.0
6237 +SYN2,2024-12-02T13:05:00Z,23.4077,23.4084,23.4039,23.4047,28.0
6238 +SYN2,2024-12-02T13:06:00Z,23.4047,23.423,23.4026,23.4218,215.0
6239 +SYN2,2024-12-02T13:07:00Z,23.4218,23.4245,23.4042,23.4054,260.0
6240 +SYN2,2024-12-02T13:09:00Z,23.4054,23.4071,23.4009,23.4022,45.0
6241 +SYN2,2024-12-02T13:11:00Z,23.4022,23.4077,23.4004,23.4036,215.0
6242 +SYN2,2024-12-02T13:12:00Z,23.4036,23.4039,23.3708,23.3727,232.0
6243 +SYN2,2024-12-02T13:13:00Z,23.3727,23.3729,23.3557,23.3583,148.0
6244 +SYN2,2024-12-02T13:14:00Z,23.3583,23.3861,23.356,23.3857,227.0
6245 +SYN2,2024-12-02T13:15:00Z,23.3857,23.3875,23.3791,23.3807,252.0
6246 +SYN2,2024-12-02T13:17:00Z,23.3807,23.3881,23.377,23.387,127.0
6247 +SYN2,2024-12-02T13:18:00Z,23.387,23.4088,23.3854,23.4063,185.0
6248 +SYN2,2024-12-02T13:21:00Z,23.4063,23.4083,23.3821,23.3839,285.0
6249 +SYN2,2024-12-02T13:22:00Z,23.3839,23.3882,23.3705,23.3739,100.0
6250 +SYN2,2024-12-02T13:23:00Z,23.3739,23.3895,23.3732,23.389,266.0
6251 +SYN2,2024-12-02T13:25:00Z,23.389,23.415,23.3883,23.4132,68.0
6252 +SYN2,2024-12-02T13:26:00Z,23.4132,23.4163,23.3913,23.3933,148.0
6253 +SYN2,2024-12-02T13:27:00Z,23.3933,23.3949,23.3653,23.3683,247.0
6254 +SYN2,2024-12-02T13:29:00Z,23.3683,23.3714,23.3545,23.3546,209.0
6255 +SYN2,2024-12-02T13:32:00Z,23.3546,23.3565,23.3521,23.3531,221.0
6256 +SYN2,2024-12-02T13:35:00Z,23.3531,23.3723,23.3529,23.3699,252.0
6257 +SYN2,2024-12-02T13:37:00Z,23.3699,23.3802,23.3683,23.3771,60.0
6258 +SYN2,2024-12-02T13:38:00Z,23.3771,23.3796,23.375,23.3791,249.0
6259 +SYN2,2024-12-02T13:39:00Z,23.3791,23.3797,23.3734,23.3761,43.0
6260 +SYN2,2024-12-02T13:40:00Z,23.3761,23.3929,23.3757,23.3922,7.0
6261 +SYN2,2024-12-02T13:42:00Z,23.3922,23.3954,23.3701,23.3727,224.0
6262 +SYN2,2024-12-02T13:44:00Z,23.3727,23.384,23.3707,23.3837,180.0
6263 +SYN2,2024-12-02T13:45:00Z,23.3837,23.3841,23.3557,23.3561,295.0
6264 +SYN2,2024-12-02T13:46:00Z,23.3561,23.3707,23.3538,23.3698,13.0
6265 +SYN2,2024-12-02T13:50:00Z,23.3698,23.3699,23.3613,23.3667,121.0
6266 +SYN2,2024-12-02T13:51:00Z,23.3667,23.3673,23.3666,23.3668,185.0
6267 +SYN2,2024-12-02T13:53:00Z,23.3668,23.3679,23.366,23.3678,284.0
6268 +SYN2,2024-12-02T13:54:00Z,23.3678,23.3728,23.3517,23.3534,149.0
6269 +SYN2,2024-12-02T13:55:00Z,23.3534,23.3573,23.3292,23.3303,156.0
6270 +SYN2,2024-12-02T13:58:00Z,23.3303,23.3304,23.3054,23.3068,298.0
6271 +SYN2,2024-12-02T14:02:00Z,23.3068,23.3404,23.3051,23.3396,280.0
6272 +SYN2,2024-12-02T14:03:00Z,23.3396,23.3399,23.3095,23.3121,87.0
6273 +SYN2,2024-12-02T14:04:00Z,23.3121,23.3135,23.2779,23.2794,201.0
6274 +SYN2,2024-12-02T14:05:00Z,23.2794,23.2876,23.2768,23.2853,39.0
6275 +SYN2,2024-12-02T14:06:00Z,23.2853,23.309,23.2826,23.3086,96.0
6276 +SYN2,2024-12-02T14:08:00Z,23.3086,23.3151,23.3081,23.3144,298.0
6277 +SYN2,2024-12-02T14:10:00Z,23.3144,23.3262,23.3129,23.3256,126.0
6278 +SYN2,2024-12-02T14:11:00Z,23.3256,23.3506,23.325,23.3445,276.0
6279 +SYN2,2024-12-02T14:14:00Z,23.3445,23.3667,23.3436,23.3654,225.0
6280 +SYN2,2024-12-02T14:15:00Z,23.3654,23.3679,23.3508,23.3514,247.0
6281 +SYN2,2024-12-02T14:16:00Z,23.3514,23.3747,23.3509,23.3747,20.0
6282 +SYN2,2024-12-02T14:18:00Z,23.3747,23.3932,23.3714,23.3924,121.0
6283 +SYN2,2024-12-02T14:21:00Z,23.3924,23.4146,23.3896,23.411,273.0
6284 +SYN2,2024-12-02T14:22:00Z,23.411,23.4117,23.3873,23.3881,9.0
6285 +SYN2,2024-12-02T14:23:00Z,23.3881,23.3914,23.3859,23.3907,61.0
6286 +SYN2,2024-12-02T14:25:00Z,23.3907,23.3971,23.3901,23.3961,67.0
6287 +SYN2,2024-12-02T14:27:00Z,23.3961,23.3977,23.3842,23.3891,106.0
6288 +SYN2,2024-12-02T14:28:00Z,23.3891,23.4004,23.3877,23.4002,149.0
6289 +SYN2,2024-12-02T14:30:00Z,23.4002,23.4007,23.3896,23.3938,4294.0
6290 +SYN2,2024-12-02T14:31:00Z,23.3938,23.4087,23.3903,23.4022,2906.0
6291 +SYN2,2024-12-02T14:32:00Z,23.4022,23.5066,23.3979,23.5053,2629.0
6292 +SYN2,2024-12-02T14:33:00Z,23.5053,23.5074,23.5036,23.507,4780.0
6293 +SYN2,2024-12-02T14:34:00Z,23.507,23.5075,23.5039,23.5068,601.0
6294 +SYN2,2024-12-02T14:35:00Z,23.5068,23.5103,23.4786,23.4815,2061.0
6295 +SYN2,2024-12-02T14:36:00Z,23.4815,23.4843,23.4684,23.4689,162.0
6296 +SYN2,2024-12-02T14:37:00Z,23.4689,23.5099,23.4676,23.5071,1686.0
6297 +SYN2,2024-12-02T14:38:00Z,23.5071,23.5198,23.5057,23.5167,1027.0
6298 +SYN2,2024-12-02T14:39:00Z,23.5167,23.5808,23.5142,23.5804,527.0
6299 +SYN2,2024-12-02T14:40:00Z,23.5804,23.5938,23.5792,23.5925,3623.0
6300 +SYN2,2024-12-02T14:41:00Z,23.5925,23.5941,23.5667,23.5667,1766.0
6301 +SYN2,2024-12-02T14:42:00Z,23.5667,23.5675,23.5617,23.5666,4534.0
6302 +SYN2,2024-12-02T14:43:00Z,23.5666,23.573,23.472,23.4771,3613.0
6303 +SYN2,2024-12-02T14:44:00Z,23.4771,23.4781,23.4743,23.4751,1668.0
6304 +SYN2,2024-12-02T14:45:00Z,23.4751,23.5249,23.4705,23.5229,1592.0
6305 +SYN2,2024-12-02T14:46:00Z,23.5229,23.5244,23.4915,23.4932,2862.0
6306 +SYN2,2024-12-02T14:47:00Z,23.4932,23.5072,23.4885,23.5039,3740.0
6307 +SYN2,2024-12-02T14:48:00Z,23.5039,23.5505,23.5038,23.5495,3787.0
6308 +SYN2,2024-12-02T14:49:00Z,23.5495,23.5595,23.5494,23.5563,3569.0
6309 +SYN2,2024-12-02T14:50:00Z,23.5563,23.5594,23.4997,23.5006,373.0
6310 +SYN2,2024-12-02T14:51:00Z,23.5006,23.5055,23.4971,23.5039,1368.0
6311 +SYN2,2024-12-02T14:52:00Z,23.5039,23.5451,23.5015,23.5439,3704.0
6312 +SYN2,2024-12-02T14:53:00Z,23.5439,23.5462,23.5227,23.5238,2700.0
6313 +SYN2,2024-12-02T14:54:00Z,23.5238,23.5364,23.5231,23.5351,3833.0
6314 +SYN2,2024-12-02T14:56:00Z,23.5351,23.5368,23.4854,23.4872,4425.0
6315 +SYN2,2024-12-02T14:57:00Z,23.4872,23.4904,23.4759,23.4786,2411.0
6316 +SYN2,2024-12-02T14:58:00Z,23.4786,23.5011,23.4782,23.4986,2231.0
6317 +SYN2,2024-12-02T14:59:00Z,23.4986,23.5243,23.4968,23.5189,1994.0
6318 +SYN2,2024-12-02T15:00:00Z,23.5189,23.5712,23.517,23.5707,4657.0
6319 +SYN2,2024-12-02T15:01:00Z,23.5707,23.5728,23.5698,23.5724,4022.0
6320 +SYN2,2024-12-02T15:02:00Z,23.5724,23.6054,23.57,23.6045,2298.0
6321 +SYN2,2024-12-02T15:03:00Z,23.6045,23.6048,23.5435,23.5439,3800.0
6322 +SYN2,2024-12-02T15:04:00Z,23.5439,23.5632,23.5412,23.5617,1706.0
6323 +SYN2,2024-12-02T15:05:00Z,23.5617,23.5802,23.5605,23.58,552.0
6324 +SYN2,2024-12-02T15:06:00Z,23.58,23.5856,23.5545,23.5561,1909.0
6325 +SYN2,2024-12-02T15:07:00Z,23.5561,23.5567,23.5469,23.5505,1717.0
6326 +SYN2,2024-12-02T15:08:00Z,23.5505,23.5511,23.5163,23.5189,1398.0
6327 +SYN2,2024-12-02T15:09:00Z,23.5189,23.5266,23.5182,23.5224,4183.0
6328 +SYN2,2024-12-02T15:10:00Z,23.5224,23.5258,23.4991,23.5013,4073.0
6329 +SYN2,2024-12-02T15:11:00Z,23.5013,23.5626,23.5011,23.5618,2369.0
6330 +SYN2,2024-12-02T15:12:00Z,23.5618,23.5967,23.5586,23.5938,596.0
6331 +SYN2,2024-12-02T15:13:00Z,23.5938,23.5966,23.5922,23.5945,784.0
6332 +SYN2,2024-12-02T15:14:00Z,23.5945,23.5997,23.5175,23.5219,1207.0
6333 +SYN2,2024-12-02T15:15:00Z,23.5219,23.5243,23.5017,23.5019,2288.0
6334 +SYN2,2024-12-02T15:16:00Z,23.5019,23.5024,23.4877,23.4888,1161.0
6335 +SYN2,2024-12-02T15:17:00Z,23.4888,23.4906,23.4743,23.4762,3887.0
6336 +SYN2,2024-12-02T15:18:00Z,23.4762,23.4799,23.4654,23.4698,429.0
6337 +SYN2,2024-12-02T15:19:00Z,23.4698,23.4759,23.4506,23.4513,595.0
6338 +SYN2,2024-12-02T15:20:00Z,23.4513,23.4543,23.4123,23.4131,3775.0
6339 +SYN2,2024-12-02T15:21:00Z,23.4131,23.415,23.3511,23.3529,1123.0
6340 +SYN2,2024-12-02T15:22:00Z,23.3529,23.3532,23.331,23.3359,347.0
6341 +SYN2,2024-12-02T15:23:00Z,23.3359,23.3741,23.3318,23.374,950.0
6342 +SYN2,2024-12-02T15:24:00Z,23.374,23.377,23.2908,23.2948,2487.0
6343 +SYN2,2024-12-02T15:25:00Z,23.2948,23.296,23.2855,23.2893,468.0
6344 +SYN2,2024-12-02T15:26:00Z,23.2893,23.3252,23.2882,23.3209,645.0
6345 +SYN2,2024-12-02T15:27:00Z,23.3209,23.3225,23.2944,23.2956,1613.0
6346 +SYN2,2024-12-02T15:28:00Z,23.2956,23.2964,23.257,23.2593,1899.0
6347 +SYN2,2024-12-02T15:29:00Z,23.2593,23.2606,23.2347,23.2398,4494.0
6348 +SYN2,2024-12-02T15:30:00Z,23.2398,23.25,23.2379,23.2484,2956.0
6349 +SYN2,2024-12-02T15:31:00Z,23.2484,23.2688,23.2478,23.264,2966.0
6350 +SYN2,2024-12-02T15:32:00Z,23.264,23.2641,23.2487,23.25,4311.0
6351 +SYN2,2024-12-02T15:33:00Z,23.25,23.2803,23.2493,23.2771,334.0
6352 +SYN2,2024-12-02T15:34:00Z,23.2771,23.3214,23.2764,23.3184,4478.0
6353 +SYN2,2024-12-02T15:35:00Z,23.3184,23.3189,23.3084,23.3086,2250.0
6354 +SYN2,2024-12-02T15:36:00Z,23.3086,23.3108,23.288,23.2892,1310.0
6355 +SYN2,2024-12-02T15:37:00Z,23.2892,23.2917,23.2431,23.2476,890.0
6356 +SYN2,2024-12-02T15:38:00Z,23.2476,23.2478,23.2344,23.2359,2127.0
6357 +SYN2,2024-12-02T15:39:00Z,23.2359,23.2371,23.1928,23.1958,2445.0
6358 +SYN2,2024-12-02T15:40:00Z,23.1958,23.2011,23.1939,23.1992,1725.0
6359 +SYN2,2024-12-02T15:41:00Z,23.1992,23.2004,23.1658,23.1686,4406.0
6360 +SYN2,2024-12-02T15:42:00Z,23.1686,23.1707,23.151,23.1515,3063.0
6361 +SYN2,2024-12-02T15:43:00Z,23.1515,23.1582,23.1505,23.1552,3722.0
6362 +SYN2,2024-12-02T15:44:00Z,23.1552,23.1602,23.1237,23.1252,1832.0
6363 +SYN2,2024-12-02T15:45:00Z,23.1252,23.1386,23.1243,23.138,2301.0
6364 +SYN2,2024-12-02T15:46:00Z,23.138,23.1398,23.0979,23.0996,4155.0
6365 +SYN2,2024-12-02T15:47:00Z,23.0996,23.1007,23.0462,23.0478,797.0
6366 +SYN2,2024-12-02T15:48:00Z,23.0478,23.0905,23.0471,23.0859,4002.0
6367 +SYN2,2024-12-02T15:50:00Z,23.0859,23.0882,23.0707,23.0733,3828.0
6368 +SYN2,2024-12-02T15:51:00Z,23.0733,23.0843,23.0699,23.0838,2347.0
6369 +SYN2,2024-12-02T15:53:00Z,23.0838,23.0923,23.0807,23.0897,3386.0
6370 +SYN2,2024-12-02T15:54:00Z,23.0897,23.1626,23.0891,23.1606,4511.0
6371 +SYN2,2024-12-02T15:55:00Z,23.1606,23.1609,23.1437,23.1462,643.0
6372 +SYN2,2024-12-02T15:56:00Z,23.1462,23.1483,23.1409,23.143,3377.0
6373 +SYN2,2024-12-02T15:57:00Z,23.143,23.1846,23.1414,23.1842,515.0
6374 +SYN2,2024-12-02T15:58:00Z,23.1842,23.1875,23.1541,23.1574,1378.0
6375 +SYN2,2024-12-02T15:59:00Z,23.1574,23.1589,23.1498,23.15,510.0
6376 +SYN2,2024-12-02T16:00:00Z,23.15,23.1824,23.1486,23.1819,3152.0
6377 +SYN2,2024-12-02T16:01:00Z,23.1819,23.2422,23.1818,23.2388,558.0
6378 +SYN2,2024-12-02T16:02:00Z,23.2388,23.2528,23.2373,23.2472,906.0
6379 +SYN2,2024-12-02T16:03:00Z,23.2472,23.3121,23.2454,23.3098,2812.0
6380 +SYN2,2024-12-02T16:04:00Z,23.3098,23.3111,23.2871,23.2913,1891.0
6381 +SYN2,2024-12-02T16:05:00Z,23.2913,23.2928,23.25,23.2528,657.0
6382 +SYN2,2024-12-02T16:06:00Z,23.2528,23.3323,23.2488,23.3317,2866.0
6383 +SYN2,2024-12-02T16:07:00Z,23.3317,23.3422,23.3313,23.3404,3450.0
6384 +SYN2,2024-12-02T16:08:00Z,23.3404,23.3791,23.3392,23.3772,2996.0
6385 +SYN2,2024-12-02T16:09:00Z,23.3772,23.3806,23.367,23.3677,184.0
6386 +SYN2,2024-12-02T16:10:00Z,23.3677,23.3692,23.3104,23.311,4358.0
6387 +SYN2,2024-12-02T16:11:00Z,23.311,23.3324,23.3109,23.33,3050.0
6388 +SYN2,2024-12-02T16:12:00Z,23.33,23.3515,23.3253,23.3472,1705.0
6389 +SYN2,2024-12-02T16:13:00Z,23.3472,23.4073,23.3465,23.4053,4473.0
6390 +SYN2,2024-12-02T16:14:00Z,23.4053,23.4455,23.4039,23.4447,2797.0
6391 +SYN2,2024-12-02T16:15:00Z,23.4447,23.4493,23.4445,23.4484,4032.0
6392 +SYN2,2024-12-02T16:16:00Z,23.4484,23.4513,23.4347,23.4386,2069.0
6393 +SYN2,2024-12-02T16:17:00Z,23.4386,23.4403,23.4305,23.4336,1992.0
6394 +SYN2,2024-12-02T16:18:00Z,23.4336,23.4366,23.3836,23.3847,579.0
6395 +SYN2,2024-12-02T16:20:00Z,23.3847,23.3851,23.3414,23.3439,2108.0
6396 +SYN2,2024-12-02T16:21:00Z,23.3439,23.3768,23.3411,23.374,494.0
6397 +SYN2,2024-12-02T16:22:00Z,23.374,23.3741,23.3424,23.3438,4363.0
6398 +SYN2,2024-12-02T16:23:00Z,23.3438,23.3773,23.341,23.3767,2005.0
6399 +SYN2,2024-12-02T16:24:00Z,23.3767,23.3789,23.3535,23.3571,2206.0
6400 +SYN2,2024-12-02T16:25:00Z,23.3571,23.3577,23.2839,23.288,1519.0
6401 +SYN2,2024-12-02T16:26:00Z,23.288,23.2906,23.2631,23.2639,1504.0
6402 +SYN2,2024-12-02T16:27:00Z,23.2639,23.2648,23.2419,23.2446,4339.0
6403 +SYN2,2024-12-02T16:28:00Z,23.2446,23.2968,23.2418,23.2945,312.0
6404 +SYN2,2024-12-02T16:29:00Z,23.2945,23.3344,23.2943,23.3337,1821.0
6405 +SYN2,2024-12-02T16:30:00Z,23.3337,23.3368,23.3198,23.3224,423.0
6406 +SYN2,2024-12-02T16:31:00Z,23.3224,23.3278,23.286,23.2889,4898.0
6407 +SYN2,2024-12-02T16:32:00Z,23.2889,23.2917,23.2478,23.2493,4265.0
6408 +SYN2,2024-12-02T16:33:00Z,23.2493,23.2503,23.2133,23.214,2973.0
6409 +SYN2,2024-12-02T16:34:00Z,23.214,23.2301,23.2109,23.2278,2796.0
6410 +SYN2,2024-12-02T16:35:00Z,23.2278,23.2298,23.1712,23.1728,4832.0
6411 +SYN2,2024-12-02T16:36:00Z,23.1728,23.1735,23.1717,23.1724,4526.0
6412 +SYN2,2024-12-02T16:37:00Z,23.1724,23.1853,23.1714,23.1819,4546.0
6413 +SYN2,2024-12-02T16:38:00Z,23.1819,23.2033,23.1808,23.2025,4357.0
6414 +SYN2,2024-12-02T16:39:00Z,23.2025,23.2032,23.1647,23.1652,2168.0
6415 +SYN2,2024-12-02T16:40:00Z,23.1652,23.2045,23.1637,23.2027,1555.0
6416 +SYN2,2024-12-02T16:41:00Z,23.2027,23.2218,23.1991,23.22,3713.0
6417 +SYN2,2024-12-02T16:42:00Z,23.22,23.2239,23.1993,23.2008,189.0
6418 +SYN2,2024-12-02T16:43:00Z,23.2008,23.2278,23.1978,23.2241,882.0
6419 +SYN2,2024-12-02T16:44:00Z,23.2241,23.2351,23.224,23.233,3214.0
6420 +SYN2,2024-12-02T16:45:00Z,23.233,23.2373,23.231,23.2336,3979.0
6421 +SYN2,2024-12-02T16:46:00Z,23.2336,23.2337,23.2305,23.2328,3164.0
6422 +SYN2,2024-12-02T16:47:00Z,23.2328,23.2368,23.1808,23.1818,3240.0
6423 +SYN2,2024-12-02T16:48:00Z,23.1818,23.2331,23.1816,23.2325,1859.0
6424 +SYN2,2024-12-02T16:49:00Z,23.2325,23.2535,23.2316,23.2529,3243.0
6425 +SYN2,2024-12-02T16:50:00Z,23.2529,23.2535,23.2043,23.2072,1039.0
6426 +SYN2,2024-12-02T16:51:00Z,23.2072,23.2087,23.1816,23.1831,3716.0
6427 +SYN2,2024-12-02T16:52:00Z,23.1831,23.1839,23.1295,23.1306,4271.0
6428 +SYN2,2024-12-02T16:54:00Z,23.1306,23.1345,23.1202,23.1222,2183.0
6429 +SYN2,2024-12-02T16:55:00Z,23.1222,23.1239,23.1199,23.1218,1538.0
6430 +SYN2,2024-12-02T16:56:00Z,23.1218,23.1231,23.0737,23.0751,3195.0
6431 +SYN2,2024-12-02T16:57:00Z,23.0751,23.0767,23.0684,23.0708,2389.0
6432 +SYN2,2024-12-02T16:58:00Z,23.0708,23.0747,23.0526,23.0535,2522.0
6433 +SYN2,2024-12-02T16:59:00Z,23.0535,23.1129,23.0531,23.1113,2937.0
6434 +SYN2,2024-12-02T17:00:00Z,23.1113,23.1113,23.1041,23.1044,390.0
6435 +SYN2,2024-12-02T17:01:00Z,23.1044,23.1052,23.0673,23.0683,4080.0
6436 +SYN2,2024-12-02T17:02:00Z,23.0683,23.0974,23.0683,23.0943,2860.0
6437 +SYN2,2024-12-02T17:03:00Z,23.0943,23.1173,23.0894,23.1157,1494.0
6438 +SYN2,2024-12-02T17:04:00Z,23.1157,23.1395,23.115,23.1391,2549.0
6439 +SYN2,2024-12-02T17:05:00Z,23.1391,23.1403,23.1134,23.1171,4860.0
6440 +SYN2,2024-12-02T17:06:00Z,23.1171,23.2077,23.1156,23.2075,4258.0
6441 +SYN2,2024-12-02T17:07:00Z,23.2075,23.2107,23.1785,23.1803,679.0
6442 +SYN2,2024-12-02T17:08:00Z,23.1803,23.2497,23.1768,23.2492,3700.0
6443 +SYN2,2024-12-02T17:09:00Z,23.2492,23.2878,23.2483,23.2864,323.0
6444 +SYN2,2024-12-02T17:10:00Z,23.2864,23.2906,23.2785,23.2789,648.0
6445 +SYN2,2024-12-02T17:11:00Z,23.2789,23.2808,23.2752,23.2763,4992.0
6446 +SYN2,2024-12-02T17:12:00Z,23.2763,23.2776,23.2159,23.2165,3515.0
6447 +SYN2,2024-12-02T17:13:00Z,23.2165,23.2182,23.1404,23.1429,1500.0
6448 +SYN2,2024-12-02T17:14:00Z,23.1429,23.1444,23.1428,23.144,909.0
6449 +SYN2,2024-12-02T17:15:00Z,23.144,23.1856,23.1432,23.1834,3320.0
6450 +SYN2,2024-12-02T17:16:00Z,23.1834,23.2311,23.1791,23.231,2043.0
6451 +SYN2,2024-12-02T17:17:00Z,23.231,23.2329,23.2303,23.2325,4010.0
6452 +SYN2,2024-12-02T17:18:00Z,23.2325,23.2728,23.2309,23.2689,856.0
6453 +SYN2,2024-12-02T17:19:00Z,23.2689,23.2694,23.2363,23.2365,2071.0
6454 +SYN2,2024-12-02T17:20:00Z,23.2365,23.2456,23.2338,23.2454,592.0
6455 +SYN2,2024-12-02T17:21:00Z,23.2454,23.246,23.171,23.1736,2765.0
6456 +SYN2,2024-12-02T17:22:00Z,23.1736,23.1759,23.1604,23.1629,1805.0
6457 +SYN2,2024-12-02T17:23:00Z,23.1629,23.1636,23.1425,23.145,3871.0
6458 +SYN2,2024-12-02T17:24:00Z,23.145,23.1501,23.1353,23.1369,1970.0
6459 +SYN2,2024-12-02T17:25:00Z,23.1369,23.148,23.1346,23.1409,1815.0
6460 +SYN2,2024-12-02T17:26:00Z,23.1409,23.1533,23.1406,23.1519,686.0
6461 +SYN2,2024-12-02T17:27:00Z,23.1519,23.1572,23.1354,23.1356,1618.0
6462 +SYN2,2024-12-02T17:28:00Z,23.1356,23.137,23.109,23.1097,3657.0
6463 +SYN2,2024-12-02T17:29:00Z,23.1097,23.1128,23.0936,23.0993,529.0
6464 +SYN2,2024-12-02T17:30:00Z,23.0993,23.1347,23.098,23.1343,453.0
6465 +SYN2,2024-12-02T17:31:00Z,23.1343,23.1454,23.1306,23.1453,2675.0
6466 +SYN2,2024-12-02T17:32:00Z,23.1453,23.1456,23.0946,23.0962,1467.0
6467 +SYN2,2024-12-02T17:33:00Z,23.0962,23.0982,23.0859,23.0877,516.0
6468 +SYN2,2024-12-02T17:34:00Z,23.0877,23.114,23.0835,23.1136,3281.0
6469 +SYN2,2024-12-02T17:35:00Z,23.1136,23.1174,23.1068,23.1072,1087.0
6470 +SYN2,2024-12-02T17:36:00Z,23.1072,23.1158,23.1044,23.1135,4218.0
6471 +SYN2,2024-12-02T17:38:00Z,23.1135,23.1169,23.1104,23.1168,3809.0
6472 +SYN2,2024-12-02T17:39:00Z,23.1168,23.1191,23.1157,23.1178,1468.0
6473 +SYN2,2024-12-02T17:40:00Z,23.1178,23.1214,23.0855,23.0876,2120.0
6474 +SYN2,2024-12-02T17:41:00Z,23.0876,23.0915,23.0858,23.0901,1250.0
6475 +SYN2,2024-12-02T17:43:00Z,23.0901,23.0911,23.0819,23.0855,3830.0
6476 +SYN2,2024-12-02T17:44:00Z,23.0855,23.0863,23.0793,23.0799,4775.0
6477 +SYN2,2024-12-02T17:45:00Z,23.0799,23.0826,23.0702,23.0717,3502.0
6478 +SYN2,2024-12-02T17:46:00Z,23.0717,23.0809,23.0708,23.0791,2687.0
6479 +SYN2,2024-12-02T17:47:00Z,23.0791,23.0795,23.0736,23.0765,4015.0
6480 +SYN2,2024-12-02T17:48:00Z,23.0765,23.1019,23.0763,23.1012,1053.0
6481 +SYN2,2024-12-02T17:49:00Z,23.1012,23.143,23.0993,23.1415,843.0
6482 +SYN2,2024-12-02T17:50:00Z,23.1415,23.1434,23.0582,23.0601,3302.0
6483 +SYN2,2024-12-02T17:51:00Z,23.0601,23.063,23.0126,23.0135,2229.0
6484 +SYN2,2024-12-02T17:52:00Z,23.0135,23.017,23.0113,23.0165,2075.0
6485 +SYN2,2024-12-02T17:53:00Z,23.0165,23.0167,22.9665,22.9687,3068.0
6486 +SYN2,2024-12-02T17:55:00Z,22.9687,22.9957,22.9674,22.9953,4186.0
6487 +SYN2,2024-12-02T17:56:00Z,22.9953,23.0402,22.9947,23.0356,1357.0
6488 +SYN2,2024-12-02T17:57:00Z,23.0356,23.0362,22.9653,22.9691,2237.0
6489 +SYN2,2024-12-02T17:58:00Z,22.9691,22.9915,22.967,22.9877,4960.0
6490 +SYN2,2024-12-02T17:59:00Z,22.9877,22.9905,22.9856,22.9873,1539.0
6491 +SYN2,2024-12-02T18:00:00Z,22.9873,23.0025,22.9811,22.9989,4975.0
6492 +SYN2,2024-12-02T18:01:00Z,22.9989,23.0003,22.9912,22.9936,4544.0
6493 +SYN2,2024-12-02T18:02:00Z,22.9936,22.9959,22.9554,22.9576,4092.0
6494 +SYN2,2024-12-02T18:03:00Z,22.9576,22.9605,22.9557,22.9597,1253.0
6495 +SYN2,2024-12-02T18:04:00Z,22.9597,22.9648,22.9589,22.9644,2352.0
6496 +SYN2,2024-12-02T18:05:00Z,22.9644,22.9861,22.9638,22.9854,2353.0
6497 +SYN2,2024-12-02T18:06:00Z,22.9854,22.9913,22.9847,22.9884,4990.0
6498 +SYN2,2024-12-02T18:08:00Z,22.9884,22.9903,22.9653,22.9678,3538.0
6499 +SYN2,2024-12-02T18:09:00Z,22.9678,22.9694,22.9453,22.9468,3114.0
6500 +SYN2,2024-12-02T18:10:00Z,22.9468,22.9559,22.9444,22.9535,3493.0
6501 +SYN2,2024-12-02T18:11:00Z,22.9535,22.954,22.9173,22.9191,3513.0
6502 +SYN2,2024-12-02T18:12:00Z,22.9191,22.92,22.8863,22.8886,2997.0
6503 +SYN2,2024-12-02T18:13:00Z,22.8886,22.9377,22.8869,22.9353,2639.0
6504 +SYN2,2024-12-02T18:15:00Z,22.9353,22.9392,22.9036,22.9042,3606.0
6505 +SYN2,2024-12-02T18:16:00Z,22.9042,22.9383,22.9007,22.9367,4312.0
6506 +SYN2,2024-12-02T18:17:00Z,22.9367,22.9868,22.9344,22.9837,2766.0
6507 +SYN2,2024-12-02T18:18:00Z,22.9837,22.9844,22.9486,22.9503,3067.0
6508 +SYN2,2024-12-02T18:19:00Z,22.9503,22.9508,22.899,22.9005,4980.0
6509 +SYN2,2024-12-02T18:20:00Z,22.9005,22.9065,22.898,22.9041,2716.0
6510 +SYN2,2024-12-02T18:21:00Z,22.9041,22.908,22.8557,22.8563,4809.0
6511 +SYN2,2024-12-02T18:22:00Z,22.8563,22.8604,22.8245,22.8287,3272.0
6512 +SYN2,2024-12-02T18:23:00Z,22.8287,22.847,22.8283,22.8459,2678.0
6513 +SYN2,2024-12-02T18:24:00Z,22.8459,22.8471,22.8043,22.8048,3417.0
6514 +SYN2,2024-12-02T18:25:00Z,22.8048,22.8086,22.7863,22.7871,2825.0
6515 +SYN2,2024-12-02T18:26:00Z,22.7871,22.79,22.7326,22.7328,952.0
6516 +SYN2,2024-12-02T18:27:00Z,22.7328,22.7361,22.7276,22.7297,3772.0
6517 +SYN2,2024-12-02T18:28:00Z,22.7297,22.7854,22.7285,22.7839,1079.0
6518 +SYN2,2024-12-02T18:29:00Z,22.7839,22.7848,22.7702,22.7705,4959.0
6519 +SYN2,2024-12-02T18:30:00Z,22.7705,22.7713,22.7012,22.7038,1702.0
6520 +SYN2,2024-12-02T18:31:00Z,22.7038,22.7086,22.702,22.7084,1564.0
6521 +SYN2,2024-12-02T18:32:00Z,22.7084,22.712,22.7018,22.7052,814.0
6522 +SYN2,2024-12-02T18:33:00Z,22.7052,22.7076,22.682,22.6831,4753.0
6523 +SYN2,2024-12-02T18:34:00Z,22.6831,22.7555,22.6825,22.7551,4552.0
6524 +SYN2,2024-12-02T18:35:00Z,22.7551,22.7561,22.743,22.7436,4232.0
6525 +SYN2,2024-12-02T18:36:00Z,22.7436,22.745,22.7302,22.7308,417.0
6526 +SYN2,2024-12-02T18:37:00Z,22.7308,22.7354,22.7223,22.7261,132.0
6527 +SYN2,2024-12-02T18:38:00Z,22.7261,22.7468,22.7244,22.746,2629.0
6528 +SYN2,2024-12-02T18:39:00Z,22.746,22.7803,22.7442,22.7777,2525.0
6529 +SYN2,2024-12-02T18:40:00Z,22.7777,22.7791,22.7663,22.767,2835.0
6530 +SYN2,2024-12-02T18:41:00Z,22.767,22.8004,22.7638,22.7991,2748.0
6531 +SYN2,2024-12-02T18:42:00Z,22.7991,22.8313,22.7963,22.8301,4362.0
6532 +SYN2,2024-12-02T18:43:00Z,22.8301,22.8302,22.8182,22.8228,789.0
6533 +SYN2,2024-12-02T18:44:00Z,22.8228,22.8792,22.821,22.8773,2669.0
6534 +SYN2,2024-12-02T18:45:00Z,22.8773,22.8955,22.8768,22.8933,2332.0
6535 +SYN2,2024-12-02T18:46:00Z,22.8933,22.9061,22.89,22.9056,3957.0
6536 +SYN2,2024-12-02T18:47:00Z,22.9056,22.9276,22.9031,22.927,2555.0
6537 +SYN2,2024-12-02T18:48:00Z,22.927,22.9518,22.9244,22.9493,1980.0
6538 +SYN2,2024-12-02T18:49:00Z,22.9493,22.9757,22.9485,22.9748,3193.0
6539 +SYN2,2024-12-02T18:50:00Z,22.9748,22.9795,22.9642,22.9668,1994.0
6540 +SYN2,2024-12-02T18:51:00Z,22.9668,22.9883,22.963,22.9859,3166.0
6541 +SYN2,2024-12-02T18:52:00Z,22.9859,22.9881,22.9698,22.9703,4667.0
6542 +SYN2,2024-12-02T18:53:00Z,22.9703,22.9718,22.9241,22.9281,296.0
6543 +SYN2,2024-12-02T18:54:00Z,22.9281,22.9453,22.9262,22.9445,814.0
6544 +SYN2,2024-12-02T18:55:00Z,22.9445,23.0056,22.9427,23.0034,1133.0
6545 +SYN2,2024-12-02T18:56:00Z,23.0034,23.0486,23.0015,23.0468,1144.0
6546 +SYN2,2024-12-02T18:57:00Z,23.0468,23.0651,23.0458,23.0613,2879.0
6547 +SYN2,2024-12-02T18:58:00Z,23.0613,23.0869,23.0603,23.0861,4794.0
6548 +SYN2,2024-12-02T18:59:00Z,23.0861,23.1246,23.0857,23.1243,2472.0
6549 +SYN2,2024-12-02T19:00:00Z,23.1243,23.1731,23.1223,23.1712,271.0
6550 +SYN2,2024-12-02T19:01:00Z,23.1712,23.1717,23.1015,23.1037,1543.0
6551 +SYN2,2024-12-02T19:02:00Z,23.1037,23.109,23.0647,23.0649,3092.0
6552 +SYN2,2024-12-02T19:03:00Z,23.0649,23.0766,23.0636,23.0733,2881.0
6553 +SYN2,2024-12-02T19:04:00Z,23.0733,23.0768,23.0695,23.0703,2442.0
6554 +SYN2,2024-12-02T19:05:00Z,23.0703,23.0705,23.0117,23.012,285.0
6555 +SYN2,2024-12-02T19:06:00Z,23.012,23.0152,23.0105,23.0107,3610.0
6556 +SYN2,2024-12-02T19:07:00Z,23.0107,23.0122,23.0075,23.0117,655.0
6557 +SYN2,2024-12-02T19:08:00Z,23.0117,23.026,23.0106,23.0243,2475.0
6558 +SYN2,2024-12-02T19:09:00Z,23.0243,23.0254,23.008,23.0086,3393.0
6559 +SYN2,2024-12-02T19:10:00Z,23.0086,23.0093,22.9936,22.9937,2341.0
6560 +SYN2,2024-12-02T19:11:00Z,22.9937,23.0004,22.9936,22.9973,4499.0
6561 +SYN2,2024-12-02T19:12:00Z,22.9973,23.0015,22.9943,22.9993,1135.0
6562 +SYN2,2024-12-02T19:13:00Z,22.9993,23.0039,22.9833,22.9838,3104.0
6563 +SYN2,2024-12-02T19:14:00Z,22.9838,23.027,22.9834,23.0252,239.0
6564 +SYN2,2024-12-02T19:15:00Z,23.0252,23.0262,23.0136,23.0153,2075.0
6565 +SYN2,2024-12-02T19:16:00Z,23.0153,23.0155,22.9595,22.9611,3783.0
6566 +SYN2,2024-12-02T19:17:00Z,22.9611,23.0055,22.9581,23.0016,484.0
6567 +SYN2,2024-12-02T19:18:00Z,23.0016,23.0037,22.9439,22.9458,4102.0
6568 +SYN2,2024-12-02T19:19:00Z,22.9458,23.0012,22.9437,22.9994,3467.0
6569 +SYN2,2024-12-02T19:20:00Z,22.9994,23.0188,22.9984,23.0173,2642.0
6570 +SYN2,2024-12-02T19:21:00Z,23.0173,23.0178,22.9995,23.001,737.0
6571 +SYN2,2024-12-02T19:22:00Z,23.001,23.0171,22.9999,23.015,3557.0
6572 +SYN2,2024-12-02T19:23:00Z,23.015,23.0376,23.0144,23.0368,1622.0
6573 +SYN2,2024-12-02T19:24:00Z,23.0368,23.045,23.0359,23.044,105.0
6574 +SYN2,2024-12-02T19:25:00Z,23.044,23.0766,23.041,23.0764,3619.0
6575 +SYN2,2024-12-02T19:26:00Z,23.0764,23.0774,23.0737,23.0745,1241.0
6576 +SYN2,2024-12-02T19:27:00Z,23.0745,23.0876,23.0699,23.0864,2850.0
6577 +SYN2,2024-12-02T19:28:00Z,23.0864,23.0987,23.0851,23.0987,3387.0
6578 +SYN2,2024-12-02T19:29:00Z,23.0987,23.1044,23.0982,23.1024,1321.0
6579 +SYN2,2024-12-02T19:30:00Z,23.1024,23.1334,23.0992,23.1303,3622.0
6580 +SYN2,2024-12-02T19:31:00Z,23.1303,23.2133,23.1284,23.2128,346.0
6581 +SYN2,2024-12-02T19:32:00Z,23.2128,23.223,23.2106,23.2227,466.0
6582 +SYN2,2024-12-02T19:33:00Z,23.2227,23.2712,23.2223,23.269,1069.0
6583 +SYN2,2024-12-02T19:34:00Z,23.269,23.2824,23.2671,23.2801,2161.0
6584 +SYN2,2024-12-02T19:35:00Z,23.2801,23.2856,23.275,23.2856,4964.0
6585 +SYN2,2024-12-02T19:36:00Z,23.2856,23.3267,23.2829,23.3258,2204.0
6586 +SYN2,2024-12-02T19:37:00Z,23.3258,23.3283,23.3087,23.3128,2263.0
6587 +SYN2,2024-12-02T19:38:00Z,23.3128,23.3141,23.2979,23.2985,2540.0
6588 +SYN2,2024-12-02T19:39:00Z,23.2985,23.3383,23.2974,23.3335,2901.0
6589 +SYN2,2024-12-02T19:40:00Z,23.3335,23.3458,23.3312,23.3434,1329.0
6590 +SYN2,2024-12-02T19:42:00Z,23.3434,23.3441,23.3086,23.3113,3249.0
6591 +SYN2,2024-12-02T19:44:00Z,23.3113,23.3125,23.2989,23.3033,697.0
6592 +SYN2,2024-12-02T19:45:00Z,23.3033,23.304,23.2597,23.2608,1518.0
6593 +SYN2,2024-12-02T19:46:00Z,23.2608,23.2622,23.2289,23.2316,2811.0
6594 +SYN2,2024-12-02T19:47:00Z,23.2316,23.2332,23.2261,23.2264,491.0
6595 +SYN2,2024-12-02T19:48:00Z,23.2264,23.2294,23.2126,23.2146,3928.0
6596 +SYN2,2024-12-02T19:49:00Z,23.2146,23.2595,23.2099,23.2571,2466.0
6597 +SYN2,2024-12-02T19:50:00Z,23.2571,23.2571,23.1721,23.1752,3669.0
6598 +SYN2,2024-12-02T19:51:00Z,23.1752,23.1758,23.1486,23.1499,737.0
6599 +SYN2,2024-12-02T19:52:00Z,23.1499,23.1526,23.0895,23.0941,1884.0
6600 +SYN2,2024-12-02T19:53:00Z,23.0941,23.0968,23.0404,23.0433,2127.0
6601 +SYN2,2024-12-02T19:54:00Z,23.0433,23.0578,23.0415,23.0558,309.0
6602 +SYN2,2024-12-02T19:55:00Z,23.0558,23.0634,23.0524,23.0621,2266.0
6603 +SYN2,2024-12-02T19:56:00Z,23.0621,23.064,23.0023,23.0036,182.0
6604 +SYN2,2024-12-02T19:57:00Z,23.0036,23.0282,23.002,23.0276,3413.0
6605 +SYN2,2024-12-02T19:58:00Z,23.0276,23.0608,23.0261,23.0604,3389.0
6606 +SYN2,2024-12-02T19:59:00Z,23.0604,23.0632,23.0125,23.0139,1433.0
6607 +SYN2,2024-12-02T20:00:00Z,23.0139,23.0151,23.0037,23.0048,296.0
6608 +SYN2,2024-12-02T20:01:00Z,23.0048,23.008,22.9851,22.9895,1205.0
6609 +SYN2,2024-12-02T20:02:00Z,22.9895,22.9905,22.9466,22.9471,3676.0
6610 +SYN2,2024-12-02T20:03:00Z,22.9471,22.9503,22.917,22.9195,4468.0
6611 +SYN2,2024-12-02T20:04:00Z,22.9195,22.9229,22.9038,22.9047,760.0
6612 +SYN2,2024-12-02T20:05:00Z,22.9047,22.9066,22.8494,22.8499,2967.0
6613 +SYN2,2024-12-02T20:06:00Z,22.8499,22.8545,22.8314,22.8344,3226.0
6614 +SYN2,2024-12-02T20:07:00Z,22.8344,22.8639,22.831,22.8635,3209.0
6615 +SYN2,2024-12-02T20:08:00Z,22.8635,22.8654,22.8355,22.8369,4412.0
6616 +SYN2,2024-12-02T20:09:00Z,22.8369,22.8638,22.8345,22.8614,3159.0
6617 +SYN2,2024-12-02T20:10:00Z,22.8614,22.8619,22.842,22.8426,2491.0
6618 +SYN2,2024-12-02T20:11:00Z,22.8426,22.8892,22.8415,22.8881,3306.0
6619 +SYN2,2024-12-02T20:12:00Z,22.8881,22.8904,22.8236,22.8307,4838.0
6620 +SYN2,2024-12-02T20:13:00Z,22.8307,22.8815,22.8285,22.8801,3491.0
6621 +SYN2,2024-12-02T20:14:00Z,22.8801,22.8813,22.8548,22.8568,3543.0
6622 +SYN2,2024-12-02T20:16:00Z,22.8568,22.8623,22.8565,22.8603,2597.0
6623 +SYN2,2024-12-02T20:17:00Z,22.8603,22.8612,22.838,22.8384,1118.0
6624 +SYN2,2024-12-02T20:18:00Z,22.8384,22.8387,22.8282,22.8293,161.0
6625 +SYN2,2024-12-02T20:19:00Z,22.8293,22.8675,22.8283,22.866,3206.0
6626 +SYN2,2024-12-02T20:20:00Z,22.866,22.8802,22.8634,22.8801,2431.0
6627 +SYN2,2024-12-02T20:21:00Z,22.8801,22.9058,22.8796,22.9028,4335.0
6628 +SYN2,2024-12-02T20:22:00Z,22.9028,22.9569,22.9001,22.9549,2368.0
6629 +SYN2,2024-12-02T20:23:00Z,22.9549,23.0074,22.9545,23.0054,4419.0
6630 +SYN2,2024-12-02T20:24:00Z,23.0054,23.0167,23.0022,23.015,251.0
6631 +SYN2,2024-12-02T20:25:00Z,23.015,23.0159,22.9738,22.9769,4131.0
6632 +SYN2,2024-12-02T20:26:00Z,22.9769,22.977,22.8983,22.8997,896.0
6633 +SYN2,2024-12-02T20:27:00Z,22.8997,22.9196,22.8981,22.9156,130.0
6634 +SYN2,2024-12-02T20:28:00Z,22.9156,22.918,22.9017,22.902,1297.0
6635 +SYN2,2024-12-02T20:29:00Z,22.902,22.9043,22.8814,22.8845,3510.0
6636 +SYN2,2024-12-02T20:30:00Z,22.8845,22.9453,22.881,22.9446,3802.0
6637 +SYN2,2024-12-02T20:31:00Z,22.9446,23.0096,22.9433,23.0075,364.0
6638 +SYN2,2024-12-02T20:32:00Z,23.0075,23.0084,23.0052,23.0079,937.0
6639 +SYN2,2024-12-02T20:33:00Z,23.0079,23.0111,22.977,22.9779,2683.0
6640 +SYN2,2024-12-02T20:34:00Z,22.9779,23.0158,22.9765,23.0155,1975.0
6641 +SYN2,2024-12-02T20:35:00Z,23.0155,23.0168,22.9963,22.9975,3706.0
6642 +SYN2,2024-12-02T20:36:00Z,22.9975,22.9986,22.9526,22.955,4636.0
6643 +SYN2,2024-12-02T20:37:00Z,22.955,23.0293,22.9528,23.0244,2845.0
6644 +SYN2,2024-12-02T20:38:00Z,23.0244,23.0269,23.0201,23.0223,4685.0
6645 +SYN2,2024-12-02T20:39:00Z,23.0223,23.0352,23.0206,23.0313,3053.0
6646 +SYN2,2024-12-02T20:40:00Z,23.0313,23.0963,23.029,23.0943,4752.0
6647 +SYN2,2024-12-02T20:42:00Z,23.0943,23.1225,23.0909,23.1201,4003.0
6648 +SYN2,2024-12-02T20:43:00Z,23.1201,23.1239,23.116,23.1237,454.0
6649 +SYN2,2024-12-02T20:44:00Z,23.1237,23.1886,23.1214,23.1868,4218.0
6650 +SYN2,2024-12-02T20:45:00Z,23.1868,23.1887,23.1732,23.1738,1567.0
6651 +SYN2,2024-12-02T20:46:00Z,23.1738,23.2064,23.1718,23.2041,2326.0
6652 +SYN2,2024-12-02T20:47:00Z,23.2041,23.243,23.2035,23.24,884.0
6653 +SYN2,2024-12-02T20:48:00Z,23.24,23.2721,23.2377,23.2712,4431.0
6654 +SYN2,2024-12-02T20:49:00Z,23.2712,23.2725,23.2656,23.2673,633.0
6655 +SYN2,2024-12-02T20:50:00Z,23.2673,23.2938,23.2671,23.2937,1872.0
6656 +SYN2,2024-12-02T20:51:00Z,23.2937,23.294,23.262,23.263,4939.0
6657 +SYN2,2024-12-02T20:52:00Z,23.263,23.3082,23.2623,23.3071,766.0
6658 +SYN2,2024-12-02T20:53:00Z,23.3071,23.3098,23.3049,23.3049,2340.0
6659 +SYN2,2024-12-02T20:54:00Z,23.3049,23.3058,23.2632,23.2638,4313.0
6660 +SYN2,2024-12-02T20:55:00Z,23.2638,23.2797,23.2635,23.2767,1860.0
6661 +SYN2,2024-12-02T20:56:00Z,23.2767,23.2968,23.2766,23.2928,787.0
6662 +SYN2,2024-12-02T20:57:00Z,23.2928,23.2932,23.263,23.2655,928.0
6663 +SYN2,2024-12-02T20:58:00Z,23.2655,23.2748,23.263,23.2706,2794.0
6664 +SYN2,2024-12-02T20:59:00Z,23.2706,23.2715,23.2441,23.247,1719.0
6665 +SYN2,2024-12-02T21:00:00Z,23.247,23.314,23.2451,23.3132,3594.0
6666 +SYN2,2024-12-02T21:01:00Z,23.3132,23.3177,23.3118,23.3149,250.0
6667 +SYN2,2024-12-02T21:03:00Z,23.3149,23.3188,23.2976,23.3017,177.0
6668 +SYN2,2024-12-02T21:04:00Z,23.3017,23.3033,23.2876,23.2888,48.0
6669 +SYN2,2024-12-02T21:05:00Z,23.2888,23.2903,23.2679,23.2711,189.0
6670 +SYN2,2024-12-02T21:06:00Z,23.2711,23.2733,23.2626,23.2633,225.0
6671 +SYN2,2024-12-02T21:07:00Z,23.2633,23.2654,23.2602,23.261,240.0
6672 +SYN2,2024-12-02T21:08:00Z,23.261,23.2614,23.2419,23.2434,222.0
6673 +SYN2,2024-12-02T21:11:00Z,23.2434,23.2451,23.2256,23.2262,16.0
6674 +SYN2,2024-12-02T21:12:00Z,23.2262,23.2274,23.1981,23.2041,161.0
6675 +SYN2,2024-12-02T21:13:00Z,23.2041,23.2049,23.1978,23.2016,162.0
6676 +SYN2,2024-12-02T21:15:00Z,23.2016,23.2023,23.1767,23.1767,39.0
6677 +SYN2,2024-12-02T21:16:00Z,23.1767,23.2051,23.176,23.2045,5.0
6678 +SYN2,2024-12-02T21:17:00Z,23.2045,23.2052,23.1829,23.1872,216.0
6679 +SYN2,2024-12-02T21:21:00Z,23.1872,23.2122,23.1822,23.2119,290.0
6680 +SYN2,2024-12-02T21:22:00Z,23.2119,23.2471,23.2115,23.2462,186.0
6681 +SYN2,2024-12-02T21:23:00Z,23.2462,23.2618,23.2446,23.2607,20.0
6682 +SYN2,2024-12-02T21:25:00Z,23.2607,23.2725,23.2571,23.2699,109.0
6683 +SYN2,2024-12-02T21:27:00Z,23.2699,23.2734,23.2502,23.2509,6.0
6684 +SYN2,2024-12-02T21:28:00Z,23.2509,23.2786,23.2489,23.2758,279.0
6685 +SYN2,2024-12-02T21:29:00Z,23.2758,23.2824,23.2747,23.2813,38.0
6686 +SYN2,2024-12-02T21:30:00Z,23.2813,23.2816,23.264,23.2643,121.0
6687 +SYN2,2024-12-02T21:31:00Z,23.2643,23.2855,23.2641,23.2847,95.0
6688 +SYN2,2024-12-02T21:32:00Z,23.2847,23.311,23.2821,23.3048,144.0
6689 +SYN2,2024-12-02T21:36:00Z,23.3048,23.3079,23.3047,23.3079,153.0
6690 +SYN2,2024-12-02T21:39:00Z,23.3079,23.3088,23.2896,23.2936,226.0
6691 +SYN2,2024-12-02T21:40:00Z,23.2936,23.3096,23.2904,23.3078,280.0
6692 +SYN2,2024-12-02T21:42:00Z,23.3078,23.3141,23.3037,23.3137,104.0
6693 +SYN2,2024-12-02T21:43:00Z,23.3137,23.3311,23.3128,23.3296,267.0
6694 +SYN2,2024-12-02T21:44:00Z,23.3296,23.35,23.3268,23.3457,189.0
6695 +SYN2,2024-12-02T21:45:00Z,23.3457,23.3504,23.3443,23.3498,62.0
6696 +SYN2,2024-12-02T21:46:00Z,23.3498,23.3626,23.3487,23.3614,102.0
6697 +SYN2,2024-12-02T21:49:00Z,23.3614,23.3826,23.3604,23.3821,271.0
6698 +SYN2,2024-12-02T21:50:00Z,23.3821,23.3891,23.3811,23.3888,32.0
6699 +SYN2,2024-12-02T21:51:00Z,23.3888,23.3921,23.3735,23.374,42.0
6700 +SYN2,2024-12-02T21:52:00Z,23.374,23.4024,23.3726,23.401,214.0
6701 +SYN2,2024-12-02T21:54:00Z,23.401,23.4166,23.3986,23.4154,244.0
6702 +SYN2,2024-12-02T21:57:00Z,23.4154,23.4168,23.4106,23.4125,109.0
6703 +SYN2,2024-12-02T21:58:00Z,23.4125,23.42,23.4103,23.4195,179.0
6704 +SYN2,2024-12-02T21:59:00Z,23.4195,23.427,23.4192,23.4267,201.0
6705 +SYN2,2024-12-02T22:00:00Z,23.4267,23.4408,23.4247,23.4403,192.0
6706 +SYN2,2024-12-02T22:01:00Z,23.4403,23.4443,23.4351,23.4386,36.0
6707 +SYN2,2024-12-02T22:02:00Z,23.4386,23.4389,23.4144,23.4211,211.0
6708 +SYN2,2024-12-02T22:03:00Z,23.4211,23.4226,23.4108,23.4121,261.0
6709 +SYN2,2024-12-02T22:04:00Z,23.4121,23.4173,23.4093,23.4173,24.0
6710 +SYN2,2024-12-02T22:06:00Z,23.4173,23.4205,23.3997,23.4032,195.0
6711 +SYN2,2024-12-02T22:08:00Z,23.4032,23.4098,23.4017,23.4081,105.0
6712 +SYN2,2024-12-02T22:10:00Z,23.4081,23.4264,23.4043,23.4241,236.0
6713 +SYN2,2024-12-02T22:12:00Z,23.4241,23.4261,23.4028,23.404,185.0
6714 +SYN2,2024-12-02T22:13:00Z,23.404,23.406,23.4024,23.4039,24.0
6715 +SYN2,2024-12-02T22:14:00Z,23.4039,23.4113,23.4006,23.4101,195.0
6716 +SYN2,2024-12-02T22:16:00Z,23.4101,23.4272,23.4085,23.4263,203.0
6717 +SYN2,2024-12-02T22:17:00Z,23.4263,23.4273,23.4118,23.4124,234.0
6718 +SYN2,2024-12-02T22:19:00Z,23.4124,23.4191,23.4114,23.419,186.0
6719 +SYN2,2024-12-02T22:20:00Z,23.419,23.45,23.4176,23.4468,62.0
6720 +SYN2,2024-12-02T22:23:00Z,23.4468,23.462,23.4449,23.4602,88.0
6721 +SYN2,2024-12-02T22:25:00Z,23.4602,23.4607,23.4281,23.4301,208.0
6722 +SYN2,2024-12-02T22:27:00Z,23.4301,23.4304,23.407,23.4136,34.0
6723 +SYN2,2024-12-02T22:28:00Z,23.4136,23.4185,23.4132,23.4175,203.0
6724 +SYN2,2024-12-02T22:30:00Z,23.4175,23.4383,23.4159,23.4349,225.0
6725 +SYN2,2024-12-02T22:31:00Z,23.4349,23.4365,23.4249,23.4263,21.0
6726 +SYN2,2024-12-02T22:33:00Z,23.4263,23.4266,23.4077,23.4083,190.0
6727 +SYN2,2024-12-02T22:34:00Z,23.4083,23.4461,23.4051,23.4404,198.0
6728 +SYN2,2024-12-02T22:35:00Z,23.4404,23.4419,23.4341,23.4358,39.0
6729 +SYN2,2024-12-02T22:38:00Z,23.4358,23.4364,23.4186,23.4222,26.0
6730 +SYN2,2024-12-02T22:39:00Z,23.4222,23.4317,23.4215,23.43,61.0
6731 +SYN2,2024-12-02T22:40:00Z,23.43,23.4395,23.4281,23.4379,82.0
6732 +SYN2,2024-12-02T22:41:00Z,23.4379,23.4504,23.4374,23.4491,160.0
6733 +SYN2,2024-12-02T22:43:00Z,23.4491,23.4639,23.449,23.4633,213.0
6734 +SYN2,2024-12-02T22:44:00Z,23.4633,23.466,23.4349,23.4374,249.0
6735 +SYN2,2024-12-02T22:46:00Z,23.4374,23.4524,23.4357,23.4512,110.0
6736 +SYN2,2024-12-02T22:47:00Z,23.4512,23.4794,23.451,23.4775,35.0
6737 +SYN2,2024-12-02T22:48:00Z,23.4775,23.4807,23.4717,23.4736,289.0
6738 +SYN2,2024-12-02T22:49:00Z,23.4736,23.4755,23.4316,23.4324,139.0
6739 +SYN2,2024-12-02T22:50:00Z,23.4324,23.434,23.3952,23.3963,63.0
6740 +SYN2,2024-12-02T22:51:00Z,23.3963,23.3967,23.3901,23.3902,2.0
6741 +SYN2,2024-12-02T22:52:00Z,23.3902,23.3921,23.3837,23.385,116.0
6742 +SYN2,2024-12-02T22:54:00Z,23.385,23.4257,23.3838,23.4247,225.0
6743 +SYN2,2024-12-02T22:55:00Z,23.4247,23.4273,23.4003,23.4007,171.0
6744 +SYN2,2024-12-02T22:58:00Z,23.4007,23.416,23.4001,23.4154,265.0
6745 +SYN2,2024-12-02T22:59:00Z,23.4154,23.4179,23.3906,23.3934,184.0
6746 +SYN2,2024-12-02T23:01:00Z,23.3934,23.4237,23.3912,23.4223,6.0
6747 +SYN2,2024-12-02T23:02:00Z,23.4223,23.424,23.3906,23.3928,52.0
6748 +SYN2,2024-12-02T23:04:00Z,23.3928,23.396,23.3607,23.365,134.0
6749 +SYN2,2024-12-02T23:05:00Z,23.365,23.3677,23.3571,23.3575,38.0
6750 +SYN2,2024-12-02T23:09:00Z,23.3575,23.3594,23.3371,23.3397,248.0
6751 +SYN2,2024-12-02T23:11:00Z,23.3397,23.3454,23.328,23.3289,2.0
6752 +SYN2,2024-12-02T23:13:00Z,23.3289,23.332,23.3132,23.3133,86.0
6753 +SYN2,2024-12-02T23:15:00Z,23.3133,23.314,23.2994,23.3004,181.0
6754 +SYN2,2024-12-02T23:16:00Z,23.3004,23.3262,23.2978,23.3227,128.0
6755 +SYN2,2024-12-02T23:17:00Z,23.3227,23.3264,23.3199,23.3205,102.0
6756 +SYN2,2024-12-02T23:18:00Z,23.3205,23.3259,23.3171,23.3244,18.0
6757 +SYN2,2024-12-02T23:19:00Z,23.3244,23.3255,23.3207,23.3239,220.0
6758 +SYN2,2024-12-02T23:21:00Z,23.3239,23.3245,23.3057,23.3085,112.0
6759 +SYN2,2024-12-02T23:22:00Z,23.3085,23.3145,23.3064,23.3134,40.0
6760 +SYN2,2024-12-02T23:23:00Z,23.3134,23.328,23.3124,23.3254,60.0
6761 +SYN2,2024-12-02T23:24:00Z,23.3254,23.3256,23.3037,23.3098,163.0
6762 +SYN2,2024-12-02T23:25:00Z,23.3098,23.342,23.3088,23.3416,241.0
6763 +SYN2,2024-12-02T23:26:00Z,23.3416,23.3422,23.3237,23.3275,16.0
6764 +SYN2,2024-12-02T23:27:00Z,23.3275,23.3291,23.3203,23.3209,101.0
6765 +SYN2,2024-12-02T23:28:00Z,23.3209,23.3363,23.32,23.3345,22.0
6766 +SYN2,2024-12-02T23:29:00Z,23.3345,23.3369,23.3008,23.3021,262.0
6767 +SYN2,2024-12-02T23:31:00Z,23.3021,23.3325,23.2987,23.3315,198.0
6768 +SYN2,2024-12-02T23:33:00Z,23.3315,23.3453,23.3309,23.3409,228.0
6769 +SYN2,2024-12-02T23:34:00Z,23.3409,23.343,23.3125,23.3173,276.0
6770 +SYN2,2024-12-02T23:35:00Z,23.3173,23.3403,23.3169,23.3378,44.0
6771 +SYN2,2024-12-02T23:38:00Z,23.3378,23.3587,23.3376,23.3551,280.0
6772 +SYN2,2024-12-02T23:40:00Z,23.3551,23.3693,23.3546,23.3669,49.0
6773 +SYN2,2024-12-02T23:42:00Z,23.3669,23.3729,23.3659,23.3712,128.0
6774 +SYN2,2024-12-02T23:43:00Z,23.3712,23.3853,23.3708,23.3848,194.0
6775 +SYN2,2024-12-02T23:46:00Z,23.3848,23.4047,23.3842,23.4036,271.0
6776 +SYN2,2024-12-02T23:50:00Z,23.4036,23.4045,23.4009,23.4021,142.0
6777 +SYN2,2024-12-02T23:51:00Z,23.4021,23.4156,23.3992,23.4156,148.0
6778 +SYN2,2024-12-02T23:52:00Z,23.4156,23.4162,23.3964,23.3973,4.0
6779 +SYN2,2024-12-02T23:53:00Z,23.3973,23.3982,23.3818,23.3845,67.0
6780 +SYN2,2024-12-02T23:56:00Z,23.3845,23.3866,23.3527,23.3537,143.0
6781 +SYN2,2024-12-02T23:57:00Z,23.3537,23.356,23.349,23.3495,289.0
6782 +SYN2,2024-12-02T23:58:00Z,23.3495,23.3498,23.3313,23.3328,171.0
6783 +SYN2,2024-12-02T23:59:00Z,23.3328,23.3331,23.32,23.3235,37.0
6784 +SYN2,2024-12-03T00:00:00Z,23.3235,23.33,23.3218,23.3294,280.0
6785 +SYN2,2024-12-03T00:01:00Z,23.3294,23.3312,23.3265,23.3286,21.0
6786 +SYN2,2024-12-03T00:04:00Z,23.3286,23.3298,23.3096,23.3104,236.0
6787 +SYN2,2024-12-03T00:05:00Z,23.3104,23.3156,23.2907,23.2927,71.0
6788 +SYN2,2024-12-03T00:06:00Z,23.2927,23.2988,23.2925,23.2985,108.0
6789 +SYN2,2024-12-03T00:07:00Z,23.2985,23.3012,23.2914,23.2945,22.0
6790 +SYN2,2024-12-03T00:10:00Z,23.2945,23.3032,23.2911,23.3005,178.0
6791 +SYN2,2024-12-03T00:11:00Z,23.3005,23.316,23.3003,23.3153,137.0
6792 +SYN2,2024-12-03T00:12:00Z,23.3153,23.3168,23.2938,23.2975,268.0
6793 +SYN2,2024-12-03T00:14:00Z,23.2975,23.3001,23.2934,23.2947,191.0
6794 +SYN2,2024-12-03T00:15:00Z,23.2947,23.295,23.2818,23.2828,282.0
6795 +SYN2,2024-12-03T00:16:00Z,23.2828,23.2849,23.2754,23.2786,267.0
6796 +SYN2,2024-12-03T00:18:00Z,23.2786,23.3061,23.2781,23.3054,29.0
6797 +SYN2,2024-12-03T00:20:00Z,23.3054,23.3089,23.2877,23.2896,156.0
6798 +SYN2,2024-12-03T00:21:00Z,23.2896,23.2913,23.2803,23.2846,17.0
6799 +SYN2,2024-12-03T00:22:00Z,23.2846,23.2852,23.2614,23.2625,244.0
6800 +SYN2,2024-12-03T00:24:00Z,23.2625,23.2842,23.2609,23.2833,264.0
6801 +SYN2,2024-12-03T00:25:00Z,23.2833,23.2847,23.2681,23.2693,266.0
6802 +SYN2,2024-12-03T00:26:00Z,23.2693,23.2696,23.2658,23.2695,110.0
6803 +SYN2,2024-12-03T00:32:00Z,23.2695,23.2749,23.2654,23.2682,215.0
6804 +SYN2,2024-12-03T00:34:00Z,23.2682,23.2726,23.2408,23.2411,58.0
6805 +SYN2,2024-12-03T00:36:00Z,23.2411,23.2525,23.2398,23.2522,227.0
6806 +SYN2,2024-12-03T00:39:00Z,23.2522,23.2708,23.2515,23.2664,247.0
6807 +SYN2,2024-12-03T00:40:00Z,23.2664,23.2748,23.2629,23.2742,183.0
6808 +SYN2,2024-12-03T00:41:00Z,23.2742,23.2824,23.2724,23.2806,73.0
6809 +SYN2,2024-12-03T00:42:00Z,23.2806,23.2809,23.2536,23.2543,117.0
6810 +SYN2,2024-12-03T00:45:00Z,23.2543,23.257,23.2455,23.2473,294.0
6811 +SYN2,2024-12-03T00:46:00Z,23.2473,23.2488,23.2318,23.2321,51.0
6812 +SYN2,2024-12-03T00:48:00Z,23.2321,23.2358,23.2308,23.2334,30.0
6813 +SYN2,2024-12-03T00:49:00Z,23.2334,23.2348,23.2083,23.2103,51.0
6814 +SYN2,2024-12-03T00:50:00Z,23.2103,23.2107,23.1949,23.1951,262.0
6815 +SYN2,2024-12-03T00:52:00Z,23.1951,23.1976,23.1823,23.1856,255.0
6816 +SYN2,2024-12-03T00:57:00Z,23.1856,23.1892,23.185,23.1884,230.0
6817 +SYN2,2024-12-03T00:58:00Z,23.1884,23.1916,23.1832,23.1834,206.0
6818 +SYN2,2024-12-03T00:59:00Z,23.1834,23.1843,23.172,23.1728,220.0
added datasets/fixtures/synthetic_bars_1m.expected.json +96 −0
@@ -0,0 +1,96 @@
1 +{
2 + "SYN1": {
3 + "2024-11-25": {
4 + "n_regular_bars": 377,
5 + "rv": 0.00024637973969908694,
6 + "bpv": 0.0002537000224710111,
7 + "rsv_neg": 0.00011826488596639239,
8 + "rsv_pos": 0.0001281148537326946,
9 + "rq": 6.17911374619852e-08,
10 + "expected_bars": 391
11 + },
12 + "2024-11-26": {
13 + "n_regular_bars": 381,
14 + "rv": 0.0002512015546107508,
15 + "bpv": 0.000251205934948466,
16 + "rsv_neg": 0.0001426761968055429,
17 + "rsv_pos": 0.0001085253578052079,
18 + "rq": 6.70771605330824e-08,
19 + "expected_bars": 391
20 + },
21 + "2024-11-27": {
22 + "n_regular_bars": 379,
23 + "rv": 0.00023901689579609436,
24 + "bpv": 0.00022901265542282063,
25 + "rsv_neg": 0.0001312264973965503,
26 + "rsv_pos": 0.00010779039839954405,
27 + "rq": 5.6800374740813566e-08,
28 + "expected_bars": 391
29 + },
30 + "2024-11-29": {
31 + "n_regular_bars": 203,
32 + "rv": 0.00012568246852596228,
33 + "bpv": 0.00012338545526109526,
34 + "rsv_neg": 6.122043330139223e-05,
35 + "rsv_pos": 6.446203522457004e-05,
36 + "rq": 1.566633924564569e-08,
37 + "expected_bars": 211
38 + },
39 + "2024-12-02": {
40 + "n_regular_bars": 375,
41 + "rv": 0.00025663107389074433,
42 + "bpv": 0.00026255292767250624,
43 + "rsv_neg": 0.00013313693173621298,
44 + "rsv_pos": 0.00012349414215453134,
45 + "rq": 5.8733435507599605e-08,
46 + "expected_bars": 391
47 + }
48 + },
49 + "SYN2": {
50 + "2024-11-25": {
51 + "n_regular_bars": 380,
52 + "rv": 0.0008219235938204049,
53 + "bpv": 0.0007733283713971381,
54 + "rsv_neg": 0.00044988199402507857,
55 + "rsv_pos": 0.0003720415997953263,
56 + "rq": 7.197872818984413e-07,
57 + "expected_bars": 391
58 + },
59 + "2024-11-26": {
60 + "n_regular_bars": 373,
61 + "rv": 0.0008353831935930781,
62 + "bpv": 0.0007977362074909713,
63 + "rsv_neg": 0.0004595924981014806,
64 + "rsv_pos": 0.00037579069549159734,
65 + "rq": 7.975104614921211e-07,
66 + "expected_bars": 391
67 + },
68 + "2024-11-27": {
69 + "n_regular_bars": 380,
70 + "rv": 0.0009433116234142414,
71 + "bpv": 0.0009175564582475878,
72 + "rsv_neg": 0.00048049767491522606,
73 + "rsv_pos": 0.00046281394849901546,
74 + "rq": 8.624495358732458e-07,
75 + "expected_bars": 391
76 + },
77 + "2024-11-29": {
78 + "n_regular_bars": 205,
79 + "rv": 0.00041835614920297196,
80 + "bpv": 0.000418010122181772,
81 + "rsv_neg": 0.00019707105657041914,
82 + "rsv_pos": 0.00022128509263255285,
83 + "rq": 1.713607175525038e-07,
84 + "expected_bars": 211
85 + },
86 + "2024-12-02": {
87 + "n_regular_bars": 377,
88 + "rv": 0.000813432649113324,
89 + "bpv": 0.0007490121342075762,
90 + "rsv_neg": 0.0004083859759489544,
91 + "rsv_pos": 0.00040504667316436957,
92 + "rq": 6.172699093052535e-07,
93 + "expected_bars": 391
94 + }
95 + }
96 +}
\ No newline at end of file
added docs/DECISIONS.md +14 −0
@@ -0,0 +1,14 @@
1 +# docs/DECISIONS.md — decision log
2 +
3 +| ID | Date | Decision | Rationale |
4 +|---|---|---|---|
5 +| D-001 | 2026-11-02 | Project lives at `Recherche-UQO/finance/wp40_raid/`, WP number **40**, remote `wp40_uqo.git` | Charter asks for `wp40_raid/`; highest existing WP is 39; finance is the closest domain (WP 12 / 6 / 39 precedents) |
6 +| D-002 | 2026-11-02 | Primary development and benchmark machine = the owner's laptop (M5 Max, 40 GPU cores); cluster used only for E7 with a self-contained bundle | Most nodes lack Homebrew/cmake in SSH PATH; production nodes (M3U96a, M4M64a/b, M1M32) must not be loaded; laptop has the newest toolchain |
7 +| D-003 | 2026-11-02 | GPU numerics are FP32 with compensated/pairwise reductions; FP64 only on CPU; every Estimate reports `precision` | Metal rejects `double` (verified) |
8 +| D-004 | 2026-11-02 | Shaders are shipped as MSL source **and** a prebuilt `.metallib`; runtime `newLibraryWithSource:` is the fallback and the "first compilation" benchmark case | Nodes without the Metal toolchain can still run; the charter asks for cold vs cached compilation measurements |
9 +| D-005 | 2026-11-02 | Build: CMake ≥ 3.28 + Ninja, Apple clang, C++20, Catch2 v3 tests, nanobind bindings, scikit-build-core wheels; Arrow C++ optional (`RAID_WITH_ARROW`, default ON on macOS) | Portability of the CPU core to Linux CI; Arrow is heavy |
10 +| D-006 | 2026-11-02 | Data access only through the RAID FinData client (bars Arrow IPC pages ≤ 31 d, exports Parquet for panels, query only for universe selection); cache under `datasets/cache/` (git-ignored) keyed by dataset version | Charter §5; license; reproducibility via pinned `X-Dataset-Version` |
11 +| D-007 | 2026-11-02 | Reference software pinned: highfrequency 1.0.3, rugarch 1.5.6, arch 8.0.0, statsmodels 0.15.0, numpy 2.5.4, scipy 1.18.1 | Installed and recorded during the audit |
12 +| D-008 | 2026-11-02 | Session policy default = **regular hours 09:30–16:00 ET inclusive of the 16:00 closing print** (391 bars), extended optional; early closes from the exchange calendar (211 bars); no bar is ever manufactured | FinData conventions (`expected_bars`) and charter §5 |
13 +| D-009 | 2026-11-02 | Tier A experiments use market data only (no fundamentals) to avoid PIT/survivorship issues in a methods paper | docs/risks.md R15 |
14 +| D-010 | 2026-11-02 | Energy is reported only when measured with `powermetrics`; otherwise "not measured" | charter §8, risks R17 |
added docs/PROGRESS.md +56 −0
@@ -0,0 +1,56 @@
1 +# docs/PROGRESS.md — phase journal (actual commands and results)
2 +
3 +## Phase 0 — Audit (2026-11-02) — GATE PASSED
4 +Plan: audit the UQO repository, FinData, hardware, competitors, literature and licensing; write the four audit documents.
5 +
6 +Executed (laptop, 14:05–14:40 ET):
7 +- Read `Recherche-UQO/README.md`, `HARMONISATION.md`, `_modele-working-paper/*`, WP 12/39/33 READMEs and `PROGRESS.md`.
8 + Result: WP 40 is free; conventions recorded in `docs/audit.md` §1.
9 +- FinData: `fdq health`, `fdq datasets`, `GET /openapi.json` (saved), `GET /market/bars?format=arrow` (SPY, DST weekend),
10 + `GET /market/sessions` (SPY, Thanksgiving week 2024 → 211 expected bars on 11-29), `POST /exports` (SPY+QQQ Jan 2024:
11 + 34 607 rows, 1.5 s, version 5162, SHA-256 recorded), `GET /query/views`, `GET /coverage/symbols`. Results in §2.
12 +- Hardware: `sw_vers`, `sysctl`, `system_profiler SPDisplaysDataType`, `xcodebuild -version`, Metal device query
13 + program (`docs/evidence/` test), 29-node parallel SSH probe (22 reachable; files in `docs/evidence/nodes/`).
14 +- Metal: trivial kernel compiled at runtime (34.6 ms) and executed (1 M squares, 0.029 ms GPU); `double` kernel rejected
15 + by both runtime and offline compilers; Metal Toolchain 27B47 downloaded (`xcodebuild -downloadComponent MetalToolchain`).
16 +- Toolchain installs: `brew install eigen apache-arrow catch2 nlohmann-json ninja` (background), R
17 + `install.packages(c("highfrequency","rugarch","xts","lmtest"))` → highfrequency 1.0.3, rugarch 1.5.6, xts 0.14.3
18 + (lmtest failed: Java runtime missing for a dependency; not needed), `uv venv --python 3.12` + pip install of the
19 + Python reference stack (versions in `docs/capabilities.md`).
20 +- Literature: 39 key references resolved on Crossref (`docs/literature/crossref_resolved.json`); preprint hits were
21 + re-resolved to journal versions; three DOIs verified directly (Econometrica 2008 realized kernels, SPA 2009
22 + pre-averaging, OUP 2010 semivariance). Still to resolve: Hansen–Lunde–Nason 2011 Econometrica MCS DOI; software
23 + citations (Arrow, Eigen, nanobind, Metal docs) to be added with URLs/versions.
24 +- Legal: FirstRate private-use license (no redistribution), MIT for RAID, Metal proprietary → optional backend.
25 +
26 +Gate memo (scope and feasibility): feasible on the laptop with the measured toolchain; FP64-on-GPU impossible → FP32
27 +strategy; FinData provides all Tier A inputs (1-minute OHLCV bars, versions, sessions, exports); no trade/quote data →
28 +Tier C order-flow methods excluded; cluster usable for E7 with a static bundle; 7 nodes unreachable. Decisions D-001…D-010.
29 +
30 +## Phase 1 — Foundation (2026-11-02, 14:40–15:40 ET) — GATE PASSED
31 +Plan: CMake/Ninja build, C++20 core types, CPU backend, data abstractions (calendar, bars, returns, aggregation),
32 +Arrow/Parquet reader, OLS/robust covariance, realized measures, GARCH-family QML (needed by the backend contract),
33 +Catch2 tests, nanobind Python package, CLI, docs, CI.
34 +
35 +Executed:
36 +- `cmake --preset macos-release && cmake --build --preset macos-release` (Apple clang 21, Eigen 5.0.1 + Accelerate,
37 + Arrow 26.0.0, Catch2 3.16.1, nlohmann-json 3.12). Metal sources absent → the build reports "Metal backend sources not
38 + present yet (Phase 3)" and continues CPU-only (`raid devices` lists the CPU only).
39 +- `ctest --preset macos-release` → **26/26 test cases, 314 assertions** (unit: core, calendar, stats, OLS,
40 + realized/GARCH; reference: statsmodels 0.15 OLS/HC0/HC3/HAC/cluster at 1e−9, scipy t p-values at 1e−12,
41 + exchange_calendars 4.13 XNYS 2000–2026 exact session/holiday/early-close sets, numpy realized truth at 1e−12, arch 8.0
42 + GARCH/GJR/EGARCH/Student-t log-likelihood within 5e−4 and parameters within 5 % + 0.01, forecasts within 5 %).
43 +- Python: `cmake -DRAID_BUILD_PYTHON=ON` builds `raid._core` (nanobind 3.1.0, Python 3.12); `pytest python/tests` →
44 + 7 passed (OLS HC3 vs statsmodels, realized vs numpy, GARCH convergence, calendar, bar validation).
45 +- Real-data integration (file not committed): `raid validate /tmp/raid-export-test.parquet` (SPY+QQQ 1m January 2024,
46 + FinData export v5162) → 21 sessions each, coverage 1.0 (391 regular bars incl. the 16:00 print), 0 duplicates,
47 + 0 errors; `raid estimate realized … --backend cpu` → 21 sessions × 390 returns, mean RV(SPY) 2.71e−5, 0.25 ms.
48 +- Bugs found and fixed during the phase (recorded for the paper's engineering section): thread-pool completion race
49 + (local mutex destroyed before the last job released it → SIGABRT under load); NLL rescaling sign; EGARCH ω
50 + wrongly log-transformed; `tgamma` overflow for ν > 340 (→ `lgamma`); fixture truth computed on unrounded prices.
51 +- Environment manifest: `experiments/manifests/environment_<host>.json` via `scripts/record_environment.sh`.
52 +- Repository: bare `gitsrv:srv/git/wp40_uqo.git` created with the SPB Git post-receive hook; `origin` set; pushed.
53 +
54 +Gate evidence: clean build on the macOS preset, all tests green, docs (`docs/architecture/overview.md`,
55 +`docs/methods/registry.md`, `docs/api/cpp.md`, README) written. Open items carried to later phases: `bars.aggregate`
56 +vs FinData derived 5m (Phase 2), GARCH backcast option (Phase 4), HAR/bootstrap (Phase 4), Metal (Phase 3).
added docs/api/cpp.md +28 −0
@@ -0,0 +1,28 @@
1 +# C++ API (Phase 1)
2 +
3 +```cpp
4 +#include "raid/data/io.hpp" // read_bars_csv / read_bars_parquet / read_bars_arrow_ipc
5 +#include "raid/data/calendar.hpp" // MarketCalendar (XNYS)
6 +#include "raid/data/returns.hpp" // intraday_returns
7 +#include "raid/estimators/realized.hpp"
8 +#include "raid/estimators/ols.hpp"
9 +#include "raid/models/garch.hpp"
10 +#include "raid/backend/backend.hpp" // resolve(plan), list_devices()
11 +
12 +auto bars = raid::data::read_bars_csv("datasets/fixtures/synthetic_bars_1m.csv");
13 +raid::MarketCalendar cal;
14 +auto& b = bars["SYN1"]; b.normalize(); // sort, dedupe, session index
15 +auto q = b.validate(cal); // QualityReport (counts, coverage)
16 +auto reg = b.filter_session(cal, raid::SessionPolicy::regular);
17 +auto ir = raid::data::intraday_returns(reg); // CSR: r + session_offsets
18 +raid::est::RealizedOptions ro; ro.plan.backend = raid::Backend::automatic;
19 +auto m = raid::est::realized_measures(ir, ro); // rv, bpv, rsv±, rq, jump, tripv; m.stats.backend/precision
20 +raid::est::OlsOptions oo; oo.cov.type = raid::stats::CovType::hac_bartlett; oo.cov.hac_lags = 4;
21 +auto fit = raid::est::ols(X, y, oo); // fit.estimate.to_json()
22 +raid::models::GarchFitOptions go; go.model = raid::models::GarchModel::gjr; go.forecast_horizon = 5;
23 +auto g = raid::models::garch_fit(daily_returns, go); // g.ok() ⇔ converged
24 +```
25 +
26 +Error handling: all failures throw `raid::RaidError` with an `ErrorCode` (invalid_argument, data_quality, numerical,
27 +not_converged, unsupported, io, api, insufficient_samples, memory, cancelled). Optimisers do not throw on
28 +non-convergence; they return `Estimate` with `convergence.converged = false`.
added docs/architecture/overview.md +44 −0
@@ -0,0 +1,44 @@
1 +# Architecture overview (Phase 1, 2026-11-02)
2 +
3 +```
4 + ┌──────────────────────────── Python (nanobind, GIL released) ────────────────────────────┐
5 + │ raid.api: ols · realized_measures · garch_fit · validate_bars · calendar_sessions · … │
6 + └───────────────────────────────────────┬────────────────────────────────────────────────┘
7 + CLI `raid` ──────────────────────────────────────────┤
8 + ▼
9 + ┌─────────────── core ───────────────┐ ┌───────────── data ─────────────┐ ┌──────── statistics / estimators / models ────────┐
10 + │ types (Timestamp µs UTC, Date, │ │ MarketCalendar (XNYS rules, │ │ reductions (Neumaier, pairwise, Welford) │
11 + │ Interval, Backend, Precision) │ │ DST, early closes, 391/211 bars)│ │ rolling (sum/mean/var/cov/corr, re-summation) │
12 + │ error (RaidError + codes) │ │ BarSeries (columnar OHLCV + │ │ covariance (classical, HC0–3, HAC, cluster) │
13 + │ log (structured, redaction) │ │ session index, QualityReport) │ │ ols (QR/SVD/ridge/WLS, sufficient stats, rolling) │
14 + │ rng (xoshiro256++ streams) │ │ returns (session-aware), resample│ │ realized (RV, BPV, RSV±, RQ, J, TriPV, RCov) │
15 + │ thread_pool, hash (SHA-256) │ │ io: CSV fixtures, Parquet/Arrow │ │ models/garch (GARCH/GJR/EGARCH, N/t, QML, forecasts)│
16 + │ estimate / plan / manifest │ │ findata client (Phase 2) │ │ har, bootstrap (Phase 4) │
17 + └────────────────────────────────────┘ └────────────────────────────────┘ └───────────────────────┬──────────────────────────┘
18 + ▼
19 + ┌───────────── backend::Backend (batched primitives over CSR panels) ─────────────┐
20 + │ sum_squares · sum_abs_adjacent · semivariances · sum_fourth · rolling_sum_squares │
21 + │ regression_stats (X'X, X'y, y'y) · garch_nll_batch │
22 + ├───────────────────────────────┬───────────────────────────────────────────────────┤
23 + │ CpuBackend (FP64, threads) │ MetalBackend (FP32 + compensation, Phase 3) │
24 + └───────────────────────────────┴───────────────────────────────────────────────────┘
25 +```
26 +
27 +Design rules (from the charter, enforced in code):
28 +- **FP64 reference first.** Every primitive has a CPU FP64 implementation; the Metal backend must match it within the
29 + method's documented tolerance or report `precision=fp32` with a warning — never silently.
30 +- **Estimators are backend-independent.** They consume `backend::Backend` through `resolve(plan)`; the plan decides
31 + `auto|cpu|metal`, determinism, threads, chunking and fallback. `Estimate` always carries backend, precision,
32 + convergence, warnings, runtime and provenance.
33 +- **No silent data manufacturing.** `BarSeries` never forward-fills; `QualityReport` counts what is missing/invalid;
34 + returns are computed within sessions only; the 16:00 closing print is part of the regular session (391 bars).
35 +- **CSR panels.** Batched kernels take `values + offsets`; ragged panels (different session lengths, delisted series)
36 + are first-class; rectangular panels get a dense view for linear algebra.
37 +- **Provenance.** Inputs are hashed (SHA-256), FinData dataset versions and request IDs are kept, manifests record host,
38 + compiler and plan; `Estimate::to_json()` is the interchange format for Python, CLI and experiment records.
39 +- **Failure is explicit.** `Estimate::ok()` requires convergence; optimisers report iterations, evaluations, gradient
40 + norm and a message; rank deficiency and ill-conditioning raise warnings; invalid parameters give +inf likelihood.
41 +
42 +Threading: a global `ThreadPool` (hardware concurrency or `RAID_THREADS`) with `parallel_for` over series; the calling
43 +thread helps; exceptions propagate. Determinism: per-series Neumaier sums have a fixed order, so CPU results are bitwise
44 +reproducible across thread counts (tested).
added docs/audit.md +136 −0
@@ -0,0 +1,136 @@
1 +# docs/audit.md — Phase 0 audit (2026-11-02)
2 +
3 +All facts below were measured on 2026-11-02 (America/Toronto) from the owner's laptop; raw probe outputs are in
4 +`docs/evidence/` (per-node probe files, FinData OpenAPI snapshot). Nothing is assumed from older inventories.
5 +
6 +## 1. UQO Research repository
7 +
8 +- Root: `~/Desktop/UQO/Recherche/Recherche-UQO/` — one directory per working paper, grouped by domain
9 + (`immobilier/`, `finance/`, `economie/`, `ia/`, `methodes/`, `mathematiques/`), each paper is its own git repository
10 + with `origin = gitsrv:srv/git/wpN_uqo.git` (spbgit on M1M32). Highest existing number: **WP 39** (`wp39_uqo.git`,
11 + `finance/invisible-balance-sheet`, created 2026-11-02 morning). RAID is therefore **WP 40**, repository `wp40_uqo.git`
12 + (to be created on first push), directory `finance/wp40_raid/` as requested by the charter.
13 +- Form standard: `HARMONISATION.md` — `paper/main.tex` with the `\WP*` macros, `sections/titlepage.tex` copied verbatim
14 + from `_modele-working-paper/`, natbib `[authoryear,round,semicolon]` + `aer.bst`, `\WPdate` = `Month YYYY`,
15 + `latexmk` Makefile, `paper/main.pdf` committed, data never committed, README with fixed section order
16 + (TL;DR, Status, What this paper does, Headline results, Layout, Quick start, Data, Methodology, Figures & tables,
17 + Limitations, Citation, Author, Notes).
18 +- Prior volatility research to build on (not to re-do): WP 12 `finance/realized-volatility-horse-race` (HAR family,
19 + GARCH/GJR/EGARCH/Realized GARCH, 25 assets, 5-min subsampled RV target, QLIKE/DM/MCS; Python, `src/wp12`),
20 + WP 6 `intraday-volatility-connectedness` (Diebold–Yilmaz on intraday FX/fixed income), WP 15 `intraday-fragility`,
21 + WP 39 `invisible-balance-sheet` (first FinData OS consumer: rate limiter, export caps, duplicate last session).
22 + Systems-paper precedents in the same repository: WP 33 TITAN-MoE (`ia/titan-moe`: raw logs under `benchmarks/raw/`,
23 + `artifacts/manifest.json` with SHA-256 per artifact, hypotheses with bootstrap CIs) and WP 30.
24 +- No existing CMake/C++ template in the repository: every prior WP is Python/LaTeX. RAID introduces the first C++/Metal
25 + build; it reuses only the LaTeX template, README standard and git conventions.
26 +- Git practice: `main` branch, commit messages in English, `paper/main.pdf` tracked, SSRN uploads tracked in
27 + `_soumissions/`.
28 +
29 +## 2. FinData OS (mandatory data API) — live audit
30 +
31 +- Base `https://findata.spboucher.ai/api/v1`, OpenAPI 3.1 snapshot saved to `docs/evidence/findata_openapi_2026-11-02.json`
32 + (45 routes). `/health` → `status: ok`, Postgres ok, backup verified 9.6 h old, lake 564.65 GB curated / 303 GB free,
33 + cold root `/Volumes/ssd/findata` (2.98 TB free), SSD SMART verified.
34 +- Catalog: 64 active datasets. Relevant for RAID: `market_bars.stock.1m.raw` (6.70 G rows, 2000-01-03 → 2026-10-30,
35 + 16 195 symbols incl. `-DELISTED`), `market_bars.etf.1m.raw` (908 M rows), `market_bars.stock.5m.raw` (2.06 G),
36 + `market_bars.stock.1d.raw` (21 M), `market_bars.index.1m.raw` (204 M, 2008→), futures continuous/contracts, FX, crypto,
37 + `options.eod` (4.23 G rows), `fundamentals.*`. `market_ticks` = **unsupported** (vendor provides bars only):
38 + Tier C order-flow / Hawkes methods have no admissible input in this project.
39 +- Bars endpoint (`GET /market/bars`): `interval ∈ {1m,5m,1d}`, `adjustment ∈ {raw,split,split_div}`, `format ∈
40 + {json,arrow,csv}`, `limit` default 5 000 (max 10 000), cursor pagination, `version` pin. Verified Arrow IPC stream
41 + response: `content-type: application/vnd.apache.arrow.stream`, headers `x-dataset-id`, `x-dataset-version` (5162 for
42 + ETF 1m), `x-request-id`; schema v1 with metadata `findata.timestamp_convention = bar_open`. SPY 2024-03-08 → 03-11
43 + (DST weekend): 794 + 805 bars, first bar 09:00 UTC (= 04:00 EST) on 03-08, last bar 23:59 UTC (= 19:59 EDT) on 03-11:
44 + DST handled at the source; extended session 04:00–19:59 ET.
45 +- Sessions endpoint (`GET /market/sessions`): per-session `bar_count` vs `expected_bars` (391 regular; **211 on the
46 + 2024-11-29 early close**, with extended bars until 16:59 that day). This is the calendar truth RAID must reproduce.
47 +- Exports (`POST /exports` → 202 → poll → download): SPY+QQQ 1m January 2024 = 34 607 rows, 0.65 MB Parquet, ready in
48 + 1.5 s, download 0.3 s; response records `snapshot.version = 5162`, `files_scanned`, `bytes`, `row_count`; Parquet
49 + key-value metadata carries the schema version and timestamp convention. SHA-256 of the file is recorded by RAID.
50 + WP 39 found: ≤ 12 years per export request (HTTP 413 beyond), last lake session may appear twice (base + delta
51 + layouts) → RAID deduplicates on `(instrument_id, timestamp_utc)` and reports it in the QualityReport.
52 +- Query playground (`POST /query`): one read-only statement, 30 s, ≤ 100 000 rows; views carry partition columns
53 + `symbol`, `year`; `/query/views` lists them. Used only for coverage/universe selection, never for bar transport.
54 +- Fundamentals (`GET /fundamentals/{entity}?as_of=`): PIT semantics documented; `available_at = filing_date + 1 day`
55 + is a proxy; no delisted entities (survivorship) — relevant only if a HAR-X design uses accounting covariates (not planned
56 + for the methods paper).
57 +- Rate limit: 600 req/min per key (no `RateLimit-*` headers exposed; WP 39 observed HTTP 429 with `Retry-After`).
58 + RAID client: token bucket ≤ 5 req/s, exponential backoff on 429/5xx, bounded concurrency (≤ 4), honours `Retry-After`.
59 +- License: FirstRate Data private use — no redistribution of raw bars; `license_class = frd-private`. Consequence:
60 + real-data experiment inputs live in an ignored cache (`datasets/cache/`), results/figures publish only aggregates;
61 + the repository ships synthetic fixtures only. Attribution "FirstRate Data via FinData OS" in the paper.
62 +- API key for this project: the owner's Claude Code key (`~/Desktop/Cluster/secrets/findata/api-key-claude-code.txt`,
63 + scopes read:market, read:fundamentals, query, export, admin). RAID never needs admin scope; a least-privilege key
64 + can be created later with `findata create-key` on M3U96a (the `POST /admin/keys` route returned 500 for WP 39).
65 +
66 +## 3. Hardware and toolchains (measured)
67 +
68 +### Laptop (primary development and benchmark machine)
69 +Apple M5 Max, 18 CPU cores (6 P + 12 E as reported by `hw.perflevel*`), **40 GPU cores**, 48 GB unified memory, macOS 27.0
70 +(26A5425a), Xcode 27.2 (27B52), Apple clang 21.0.0, SDK 27.2, Metal 4, GPU families Apple1–Apple10, `maxBufferLength`
71 +28 753 MB, `recommendedMaxWorkingSetSize` 38 338 MB, threadgroup max 1 024, SIMD width 32, unified memory. Metal
72 +Toolchain (offline `metal`/`metallib`, version 32023.922) was **absent** and was downloaded during the audit
73 +(`xcodebuild -downloadComponent MetalToolchain`). Runtime shader compilation (`newLibraryWithSource:`) works without it
74 +(34.6 ms for a trivial kernel, first compile). **`double` is rejected by the Metal compiler** (verified: "'double' is
75 +not supported in Metal") — all GPU numerics are FP32 (with compensated/pairwise reductions) and FP64 lives on the CPU.
76 +Disk 1.0 TB free. Load average 2.1 (27 days uptime). Tools: cmake 4.3.2, uv 0.11.7, Python 3.14.4 system / 3.12.13 for
77 +the project venv, R 4.6.1, pandoc 3.9, TeX Live 2026, Homebrew openblas 0.3.33, libomp 22.1.8, fmt 12.1.
78 +Installed for RAID during the audit: Homebrew `eigen`, `apache-arrow`, `catch2`, `nlohmann-json`, `ninja`
79 +(see `docs/capabilities.md` for versions once the install finished); R `highfrequency` 1.0.3, `rugarch` 1.5.6, `xts` 0.14.3;
80 +Python venv `.venv` (3.12): nanobind 3.1.0, numpy 2.5.4, pyarrow 26.0.0, arch 8.0.0, statsmodels 0.15.0, scipy 1.18.1,
81 +polars 2.1.0, duckdb 2.0.0, exchange-calendars 4.13.2.
82 +
83 +### MacLustr nodes (probe 2026-11-02 14:1x ET, `docs/evidence/nodes/*.txt`)
84 +22 of 29 nodes reachable over SSH; **unreachable (timeout): m2m16, M2M32, M2M32b, M4M36, m4ma, m4mb, m4mc** — excluded
85 +from any plan until they answer `mld discover`. All reachable nodes report Metal 4 and no thermal/performance warning.
86 +
87 +| Node | Chip | CPU | GPU cores | RAM | macOS | Xcode / CLT | Load 1m | Free disk | PM2 apps | Role for RAID |
88 +|---|---|---:|---:|---:|---|---|---:|---:|---:|---|
89 +| M1M32 | M1 Max | 10 | 24 | 32 | 26.5.1 | Xcode 26.4.1 | 0.94 | 197 Gi | gateway | E7 generation point (M1), short runs only (gateway host) |
90 +| M2M32c | M2 Max | 12 | 30 | 32 | 26.5.1 | CLT | 1.08 | 416 Gi | 0 | E7 (M2 Max) |
91 +| M2U64 | M2 Ultra | 24 | 60 | 64 | 26.5 | Xcode 26.6 | 1.17 | 315 Gi | apps (spb-cloud, uqo-eval…) | E7 (M2 Ultra), off-hours |
92 +| M3BA24 / M3BA16 | M3 | 8 | 10 | 24 / 16 | 26.5.1 | CLT | 1.1–1.3 | 409–420 Gi | 0 | E7 (M3 base, laptops) |
93 +| M3U96a | M3 Ultra | 28 | 60 | 96 | 26.6 | Xcode 26.6 | **5.96** | 281 Gi | 17 (FinData OS host) | **not used for benchmarks** (production FinData host, loaded) |
94 +| M3U96b | M3 Ultra | 28 | 60 | 96 | 26.4 | Xcode 26.6 | 1.80 | 395 Gi | 8 | E7 (M3 Ultra), largest-panel runs |
95 +| M4M64a / M4M64b | M4 Max | 16 | 40 | 64 | 26.5.1 | Xcode 26.6 | 1.2–1.5 | 540 / **54 Gi** | 10 / 11 | avoid (agentd / Ka hosts; M4M64b low disk) |
96 +| M4M64c | M4 Max | 16 | 40 | 64 | 26.4 | CLT | 1.94 | 318 Gi | 0 | E7 (M4 Max) |
97 +| M4BP48 / M4BP36 | M4 Max | 16 / 14 | 40 / 32 | 48 / 36 | 26.5.1 | CLT | 1.2 | 843 Gi | 0 | E7 alternates |
98 +| m4mm / m4mn | M4 Pro | 12 | 16 | 48 | 26.5.1 | CLT | 1.4–1.8 | 370 Gi | 0 | E7 (M4 Pro) |
99 +| m4md / m4ml | M4 | 10 | 10 | 16 | 26.6.2 / 26.7 | CLT | 1.6–1.8 | 180–195 Gi | 0 | E7 (M4 base, 16 GB memory-pressure case) |
100 +| M5M36 | M5 Max | 18 | 32 | 36 | 27.0 | CLT (SDK 27.0) | 1.22 | 355 Gi | 0 | E7 (M5 Max, 32-core GPU variant) |
101 +| m5ma | M5 Pro | 15 | 16 | 24 | 27.0 | CLT | 1.13 | 382 Gi | 0 | E7 (M5 Pro) |
102 +| m6ma / m6mb | M6 | 12 | 12 | 24 | 27.0 | CLT | 0.9–1.2 | 395 Gi | 0 | E7 (M6 base, newest generation) |
103 +| m2m8a / m2m8b | M2 | 8 | 10 | 8 | 26.5.1 | CLT / none | 1.5 | 196–425 Gi | 0 | 8 GB memory-pressure stress (m2m8b has no developer tools → binary bundle only) |
104 +
105 +Observations that shape the plan: (i) most nodes have only the Command Line Tools and no Homebrew in the non-interactive
106 +SSH `PATH` (cmake/ninja/brew empty in the probe) → E7 ships a **self-contained arm64 bundle** (static Eigen, bundled
107 +`.metallib` + MSL source for runtime fallback, no Arrow dependency at run time) built on the laptop with
108 +`-mmacosx-version-min=26.0`; nothing is installed on the nodes; (ii) GPU core counts span 10 → 60, memory 8 → 96 GB:
109 +the generation sweep E7 covers M1 Max, M2 (base/Max/Ultra), M3 (base/Ultra), M4 (base/Pro/Max), M5 (Pro/Max), M6;
110 +(iii) M3U96a (FinData host, load 6) and M4M64a/b (Ka/agentd hosts) are excluded from timing runs.
111 +
112 +## 4. Competing implementations (versions verified locally)
113 +
114 +| Software | Version | Role in RAID validation |
115 +|---|---|---|
116 +| R `highfrequency` | 1.0.3 (Boudt, Kleen & Sjørup, JSS 2022) | reference for RV, BPV, semivariance, realized quarticity, rCov, HAR (`HARmodel`), BNS jump test |
117 +| R `rugarch` | 1.5.6 (Ghalanos) | reference for GARCH(1,1), GJR, EGARCH (Gaussian / Student-t) estimates, SE, forecasts |
118 +| Python `arch` | 8.0.0 (Sheppard) | second GARCH reference; HAR via OLS; bootstrap (stationary/circular block) |
119 +| Python `statsmodels` | 0.15.0 | OLS/WLS, HC0–HC3, HAC (Newey–West, Bartlett), cluster-robust covariance |
120 +| NumPy / SciPy | 2.5.4 / 1.18.1 | FP64 reference linear algebra (QR/SVD/Cholesky), optimizers |
121 +| Polars / DuckDB / pyarrow | 2.1.0 / 2.0.0 / 26.0.0 | columnar baselines for ingestion and rolling computations |
122 +| Eigen (C++) | Homebrew, see capabilities | CPU backend dense algebra |
123 +| Apple Accelerate | macOS 27 | BLAS/LAPACK (`-framework Accelerate`, `ACCELERATE_NEW_LAPACK`) |
124 +| Julia | not installed | not used (listed in the charter; optional reference, not required for gates) |
125 +
126 +Mathematical equivalence is established per method in `docs/methods/registry.md` (Phase 4), with the exact option
127 +settings of each competitor (e.g. `highfrequency::rBPCov` uses the µ₁⁻² = π/2 constant and no finite-sample factor
128 +by default; `rugarch` uses variance targeting off and sample-variance initialisation unless told otherwise).
129 +
130 +## 5. Licensing
131 +
132 +- RAID code: MIT. Dependencies: Eigen (MPL-2.0), Apache Arrow (Apache-2.0), nanobind (BSD-3), Catch2 (BSL-1.0),
133 + nlohmann/json (MIT), Accelerate and Metal (Apple proprietary system frameworks, linked, not redistributed).
134 +- Metal is proprietary: the GPU backend is optional (`RAID_ENABLE_METAL`), the CPU backend builds on Linux without it.
135 +- Data: FirstRate Data private-use via FinData OS — no raw bars in git, synthetic fixtures in CI, attribution in paper.
136 +- Reference software licenses do not affect RAID (used only to produce validation tables).
added docs/capabilities.md +41 −0
@@ -0,0 +1,41 @@
1 +# docs/capabilities.md — measured capabilities (2026-11-02)
2 +
3 +## Metal (laptop, Apple M5 Max)
4 +| Property | Value | How measured |
5 +|---|---|---|
6 +| Device name | Apple M5 Max | `MTLCreateSystemDefaultDevice().name` |
7 +| Unified memory | yes | `hasUnifiedMemory` |
8 +| `maxBufferLength` | 28 753 MB | property |
9 +| `recommendedMaxWorkingSetSize` | 38 338 MB | property |
10 +| `maxThreadsPerThreadgroup` | 1 024 | property |
11 +| `threadExecutionWidth` (SIMD) | 32 | pipeline state |
12 +| GPU families | Apple1 … Apple10, Metal3 | `supportsFamily:` |
13 +| Ray tracing / 32-bit float filtering / argument buffers | yes / yes / tier reported | properties |
14 +| FP64 in shaders | **no** (compiler error "'double' is not supported in Metal") | runtime + offline compile of a `double` kernel |
15 +| Runtime MSL compile (trivial kernel, cold) | 34.6 ms | `newLibraryWithSource:` wall-clock |
16 +| Offline toolchain | Apple metal 32023.922, target air64-apple-darwin27.0.0 | installed during audit |
17 +| 1 M-element elementwise square | 0.029 ms GPU time (`GPUEndTime − GPUStartTime`) | `docs/evidence` test program |
18 +
19 +Consequences for the design: FP32 everywhere on GPU with compensated (Kahan/Neumaier) and pairwise reductions, FP64
20 +accumulation of sufficient statistics on CPU when the reduction length exceeds a documented threshold, and GPU results
21 +always compared to the CPU FP64 reference with method-specific tolerances. "Precision" is reported in every Estimate.
22 +
23 +## CPU (laptop)
24 +Apple M5 Max 18 cores (6 performance + 12 efficiency), 48 GB; Accelerate BLAS/LAPACK; Apple clang 21 supports C++20 and
25 +`-O3 -mcpu=apple-m4` (`apple-m5` not yet in clang 21's list; measured flags recorded in the benchmark manifest).
26 +
27 +## Cluster
28 +See `docs/audit.md` §3 (22 reachable nodes, Metal 4 on all, GPU cores 10–60, RAM 8–96 GB, most nodes without Homebrew
29 +in the SSH PATH, m2m8b without developer tools). Inter-node SSH works only on LAN IPs (Tailscale ACL); the laptop reaches
30 +nodes by alias.
31 +
32 +## FinData OS
33 +See `docs/audit.md` §2 and `docs/evidence/findata_openapi_2026-11-02.json`. Measured: Arrow IPC page of 1 599 bars
34 += 246 KB; export of 34 607 rows ready in 1.5 s; dataset versions pinned (ETF 1m = 5162 at audit time).
35 +
36 +## Software versions (laptop, audit time)
37 +cmake 4.3.2 · Apple clang 21.0.0 (clang-2100.4.1.1) · Xcode 27.2 · macOS 27.0 · Python 3.12.13 (venv) · nanobind 3.1.0 ·
38 +numpy 2.5.4 · pyarrow 26.0.0 · arch 8.0.0 · statsmodels 0.15.0 · scipy 1.18.1 · polars 2.1.0 · duckdb 2.0.0 ·
39 +exchange-calendars 4.13.2 · R 4.6.1 · highfrequency 1.0.3 · rugarch 1.5.6 · TeX Live 2026 · latexmk 4.88.
40 +Homebrew C++ packages installed during Phase 0: filled in by `scripts/record_environment.sh` into
41 +`experiments/manifests/environment_laptop.json` (versions are read from `brew list --versions`, never typed by hand).
added docs/evidence/findata_openapi_2026-11-02.json +1 −0
@@ -0,0 +1 @@
1 +{"openapi":"3.1.0","info":{"title":"FinData OS API","description":"Private, research-grade financial data lakehouse. All market data © FirstRate Data — no redistribution. Timestamps are UTC ISO-8601; bars are stamped at bar **open**.","version":"1.0.0"},"paths":{"/api/v1/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/mfa":{"post":{"tags":["auth"],"summary":"Mfa","operationId":"mfa_api_v1_auth_mfa_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/me":{"get":{"tags":["auth"],"summary":"Me","operationId":"me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/totp/setup":{"post":{"tags":["auth"],"summary":"Totp Setup","operationId":"totp_setup_api_v1_auth_totp_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/totp/verify":{"post":{"tags":["auth"],"summary":"Totp Verify","operationId":"totp_verify_api_v1_auth_totp_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/datasets":{"get":{"tags":["catalog"],"summary":"Datasets","operationId":"datasets_api_v1_catalog_datasets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/catalog/datasets/{dataset_id}":{"get":{"tags":["catalog"],"summary":"Dataset","operationId":"dataset_api_v1_catalog_datasets__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/catalog/sources":{"get":{"tags":["catalog"],"summary":"Sources","operationId":"sources_api_v1_catalog_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/catalog/schema/bars":{"get":{"tags":["catalog"],"summary":"Schema Bars","operationId":"schema_bars_api_v1_catalog_schema_bars_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/instruments":{"get":{"tags":["instruments"],"summary":"Search","operationId":"search_api_v1_instruments_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":64,"default":"","title":"Query"}},{"name":"asset_class","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Class"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/instruments/{symbol}":{"get":{"tags":["instruments"],"summary":"Detail","operationId":"detail_api_v1_instruments__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/market/bars":{"get":{"tags":["market"],"summary":"Bars","operationId":"bars_api_v1_market_bars_get","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":20,"title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"enum":["1m","5m","1d"],"type":"string","default":"1m","title":"Interval"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","format":"date","title":"End"}},{"name":"adjustment","in":"query","required":false,"schema":{"enum":["raw","split","split_div"],"type":"string","default":"raw","title":"Adjustment"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":5000,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","arrow","csv"],"type":"string","default":"json","title":"Format"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/market/sessions":{"get":{"tags":["market"],"summary":"Sessions","description":"Per-session coverage for one symbol (bar counts vs expected regular-hours bars).","operationId":"sessions_api_v1_market_sessions_get","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"interval","in":"query","required":false,"schema":{"enum":["1m","5m"],"type":"string","default":"1m","title":"Interval"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fundamentals/{entity_id}":{"get":{"tags":["fundamentals"],"summary":"Facts","description":"Point-in-time facts: a fact is visible iff available_at <= as_of; among revisions, revision 1 (first observed\nvalue, proxy for 'as originally filed') is used unless a later revision was *observed* before as_of.","operationId":"facts_api_v1_fundamentals__entity_id__get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"PIT instant (UTC). Default: now.","title":"As Of"},"description":"PIT instant (UTC). Default: now."},{"name":"metrics","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"comma-separated metric names","title":"Metrics"},"description":"comma-separated metric names"},{"name":"period_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(q|a)$"},{"type":"null"}],"title":"Period Type"}},{"name":"include_superseded","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Superseded"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20000,"default":2000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fundamentals/{entity_id}/periods":{"get":{"tags":["fundamentals"],"summary":"Periods","operationId":"periods_api_v1_fundamentals__entity_id__periods_get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/query":{"post":{"tags":["query"],"summary":"Query","operationId":"query_api_v1_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/query/views":{"get":{"tags":["query"],"summary":"Views","operationId":"views_api_v1_query_views_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/exports":{"get":{"tags":["exports"],"summary":"List Exports","operationId":"list_exports_api_v1_exports_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["exports"],"summary":"Create","operationId":"create_api_v1_exports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportIn"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/exports/{export_id}":{"get":{"tags":["exports"],"summary":"Get","operationId":"get_api_v1_exports__export_id__get","parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"string","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/exports/{export_id}/download":{"get":{"tags":["exports"],"summary":"Download","operationId":"download_api_v1_exports__export_id__download_get","parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"string","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coverage":{"get":{"tags":["coverage"],"summary":"Coverage","operationId":"coverage_api_v1_coverage_get","parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"type":"string","default":"market_bars.stock.1m.raw","title":"Dataset Id"}},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coverage/heatmap":{"get":{"tags":["coverage"],"summary":"Heatmap","description":"Per session: symbols with data, total bars, mean regular-hours completeness (bars / expected, capped at 1).","operationId":"heatmap_api_v1_coverage_heatmap_get","parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"type":"string","default":"market_bars.stock.1m.raw","title":"Dataset Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/coverage/symbols":{"get":{"tags":["coverage"],"summary":"Symbols","operationId":"symbols_api_v1_coverage_symbols_get","parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"type":"string","default":"market_bars.stock.1m.raw","title":"Dataset Id"}},{"name":"min_sessions","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Min Sessions"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"default":200,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quality":{"get":{"tags":["quality"],"summary":"Quality","operationId":"quality_api_v1_quality_get","parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"type":"string","default":"market_bars.stock.1m.raw","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quality/anomalies":{"get":{"tags":["quality"],"summary":"Anomalies","operationId":"anomalies_api_v1_quality_anomalies_get","parameters":[{"name":"dataset_id","in":"query","required":false,"schema":{"type":"string","default":"market_bars.stock.1m.raw","title":"Dataset Id"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"tags":["health"],"summary":"Health","description":"Public liveness (no details) — authenticated callers get the full report.","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/summary":{"get":{"tags":["health"],"summary":"Summary","operationId":"summary_api_v1_health_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/jobs":{"get":{"tags":["admin"],"summary":"Jobs","operationId":"jobs_api_v1_admin_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin"],"summary":"Enqueue","operationId":"enqueue_api_v1_admin_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/jobs/{job_id}/retry":{"post":{"tags":["admin"],"summary":"Retry","operationId":"retry_api_v1_admin_jobs__job_id__retry_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/jobs/{job_id}/cancel":{"post":{"tags":["admin"],"summary":"Cancel","operationId":"cancel_api_v1_admin_jobs__job_id__cancel_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/keys":{"get":{"tags":["admin"],"summary":"Keys","operationId":"keys_api_v1_admin_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["admin"],"summary":"Create Key","operationId":"create_key_api_v1_admin_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/keys/{key_id}":{"delete":{"tags":["admin"],"summary":"Revoke Key","operationId":"revoke_key_api_v1_admin_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit":{"get":{"tags":["admin"],"summary":"Audit Log","operationId":"audit_log_api_v1_admin_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"default":200,"title":"Limit"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/storage":{"get":{"tags":["admin"],"summary":"Storage","operationId":"storage_api_v1_admin_storage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/settings":{"get":{"tags":["admin"],"summary":"Get Settings ","operationId":"get_settings__api_v1_admin_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/settings/tracked-tickers":{"put":{"tags":["admin"],"summary":"Tracked","operationId":"tracked_api_v1_admin_settings_tracked_tickers_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackedIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/discover":{"post":{"tags":["admin"],"summary":"Discover","description":"Sanitized live vendor probe (no bulk download).","operationId":"discover_api_v1_admin_discover_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/assistant/status":{"get":{"tags":["assistant"],"summary":"Status","operationId":"status_api_v1_assistant_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/assistant":{"post":{"tags":["assistant"],"summary":"Ask","operationId":"ask_api_v1_assistant_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AskIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/overview":{"get":{"tags":["public"],"summary":"Overview","description":"Served from a cache refreshed in the background every 5 minutes; the request path never runs the queries.","operationId":"overview_api_v1_public_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AskIn":{"properties":{"question":{"type":"string","maxLength":2000,"minLength":3,"title":"Question"},"max_rows":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Max Rows","default":200},"execute":{"type":"boolean","title":"Execute","default":true}},"type":"object","required":["question"],"title":"AskIn"},"CodeIn":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"CodeIn"},"ExportIn":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id","default":"market_bars.stock.1m.raw"},"symbols":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Symbols"},"start":{"type":"string","format":"date","title":"Start"},"end":{"type":"string","format":"date","title":"End"},"adjustment":{"type":"string","enum":["raw","split","split_div"],"title":"Adjustment","default":"raw"},"format":{"type":"string","enum":["parquet","csv"],"title":"Format","default":"parquet"}},"type":"object","required":["symbols","start","end"],"title":"ExportIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobIn":{"properties":{"kind":{"type":"string","title":"Kind"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Id"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"priority":{"type":"integer","title":"Priority","default":50}},"type":"object","required":["kind"],"title":"JobIn"},"KeyIn":{"properties":{"name":{"type":"string","maxLength":60,"minLength":1,"title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"rate_limit_per_minute":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Rate Limit Per Minute","default":600},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["name","scopes"],"title":"KeyIn"},"LoginIn":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginIn"},"QueryIn":{"properties":{"sql":{"type":"string","maxLength":20000,"title":"Sql"},"max_rows":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Max Rows","default":1000}},"type":"object","required":["sql"],"title":"QueryIn"},"TrackedIn":{"properties":{"tickers":{"items":{"type":"string"},"type":"array","title":"Tickers"}},"type":"object","required":["tickers"],"title":"TrackedIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
\ No newline at end of file
added docs/evidence/nodes/M1M32.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudnpierre8
2 +os=26.5.1 build=25F80
3 +chip=Apple M1 Max ncpu=10 mem_gb=32
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.4.1 Build version 17E202
6 +clang=Apple clang version 21.0.0 (clang-2100.0.123.102)
7 +sdk=26.4
8 +Total Number of Cores: 24
9 +Metal Support: Metal 4
10 +load={ 0,94 1,16 1,17 }
11 +disk_free=197Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=95%
added docs/evidence/nodes/M2M32.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m2m32.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/M2M32b.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m2m32b.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/M2M32c.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudnpierre7
2 +os=26.5.1 build=25F80
3 +chip=Apple M2 Max ncpu=12 mem_gb=32
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 30
9 +Metal Support: Metal 4
10 +load={ 1,08 1,11 1,08 }
11 +disk_free=416Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=95%
added docs/evidence/nodes/M2U64.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudonpierre
2 +os=26.5 build=25F71
3 +chip=Apple M2 Ultra ncpu=24 mem_gb=64
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.6 Build version 17F113
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 60
9 +Metal Support: Metal 4
10 +load={ 1,17 1,07 1,05 }
11 +disk_free=315Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=96%
added docs/evidence/nodes/M3BA16.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacBooknpierre2
2 +os=26.5.1 build=25F80
3 +chip=Apple M3 ncpu=8 mem_gb=16
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,32 1,31 1,32 }
11 +disk_free=409Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=82%
added docs/evidence/nodes/M3BA24.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacBookonpierre
2 +os=26.5.1 build=25F80
3 +chip=Apple M3 ncpu=8 mem_gb=24
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,12 1,22 1,23 }
11 +disk_free=420Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=94%
added docs/evidence/nodes/M3U96a.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudnpierre2
2 +os=26.6 build=25G72
3 +chip=Apple M3 Ultra ncpu=28 mem_gb=96
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.6 Build version 17F113
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 60
9 +Metal Support: Metal 4
10 +load={ 5,96 8,79 8,90 }
11 +disk_free=281Gi
12 +pm2=17
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake=cmake version 4.3.2 ninja= python3=Python 3.14.5 brew=Homebrew 6.0.22
15 +memfree_pct=94%
added docs/evidence/nodes/M3U96b.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m3u96b
2 +os=26.4 build=25E5207k
3 +chip=Apple M3 Ultra ncpu=28 mem_gb=96
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.6 Build version 17F113
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 60
9 +Metal Support: Metal 4
10 +load={ 1,80 1,89 1,94 }
11 +disk_free=395Gi
12 +pm2=8
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake=cmake version 4.3.2 ninja= python3=Python 3.14.4 brew=Homebrew 7.0.10
15 +memfree_pct=92%
added docs/evidence/nodes/M4BP36.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=simonpierresMBP
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Max ncpu=14 mem_gb=36
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 32
9 +Metal Support: Metal 4
10 +load={ 1,19 1,18 1,16 }
11 +disk_free=843Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=90%
added docs/evidence/nodes/M4BP48.txt +7 −0
@@ -0,0 +1,7 @@
1 +node=simonpirresMBP2
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Max ncpu=16 mem_gb=48
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
added docs/evidence/nodes/M4M36.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m4m36.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/M4M64a.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudnpierre6
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Max ncpu=16 mem_gb=64
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.6 Build version 17F113
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 40
9 +Metal Support: Metal 4
10 +load={ 1,46 1,42 1,52 }
11 +disk_free=540Gi
12 +pm2=10
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake=cmake version 4.3.2 ninja= python3=Python 3.14.4 brew=Homebrew 7.0.9
15 +memfree_pct=93%
added docs/evidence/nodes/M4M64b.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=MacStudnpierre4
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Max ncpu=16 mem_gb=64
4 +xcode_path=/Applications/Xcode.app/Contents/Developer
5 +xcodebuild=Xcode 26.6 Build version 17F113
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 40
9 +Metal Support: Metal 4
10 +load={ 1,17 1,50 1,47 }
11 +disk_free=54Gi
12 +pm2=11
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake=cmake version 4.3.2 ninja= python3=Python 3.14.4 brew=Homebrew 7.0.9
15 +memfree_pct=96%
added docs/evidence/nodes/M4M64c.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=M4M64c
2 +os=26.4 build=25E246
3 +chip=Apple M4 Max ncpu=16 mem_gb=64
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 40
9 +Metal Support: Metal 4
10 +load={ 1,94 1,91 1,91 }
11 +disk_free=318Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=95%
added docs/evidence/nodes/M5M36.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=M5M36
2 +os=27.0 build=26A425
3 +chip=Apple M5 Max ncpu=18 mem_gb=36
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.3.34.2)
7 +sdk=27.0
8 +Total Number of Cores: 32
9 +Metal Support: Metal 4
10 +load={ 1,22 1,06 1,03 }
11 +disk_free=355Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=91%
added docs/evidence/nodes/m2m16.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m2m16.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/m2m8a.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=Minidesonpierre
2 +os=26.5.1 build=25F80
3 +chip=Apple M2 ncpu=8 mem_gb=8
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,52 1,70 1,63 }
11 +disk_free=425Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=77%
added docs/evidence/nodes/m2m8b.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=Minidesnpierre2
2 +os=26.5.1 build=25F80
3 +chip=Apple M2 ncpu=8 mem_gb=8
4 +xcode_path=xcode-select: error: Unable to get active developer directory. Use `sudo xcode-select --switch path/to/Xcode.app` to set one (or see `man xcode-select`)
5 +xcodebuild=
6 +clang=
7 +sdk=
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,53 1,52 1,48 }
11 +disk_free=196Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3= brew=
15 +memfree_pct=80%
added docs/evidence/nodes/m4ma.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m4ma.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/m4mb.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m4mb.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/m4mc.txt +2 −0
@@ -0,0 +1,2 @@
1 +ssh: connect to host m4mc.maclustr.io port 22: Operation timed out
2 +SSH_FAIL
added docs/evidence/nodes/m4md.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=Macmininpierre5
2 +os=26.6.2 build=25G83
3 +chip=Apple M4 ncpu=10 mem_gb=16
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,62 1,48 1,43 }
11 +disk_free=195Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=92%
added docs/evidence/nodes/m4ml.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m4ml
2 +os=26.7 build=25G229
3 +chip=Apple M4 ncpu=10 mem_gb=16
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.3.34.2)
7 +sdk=27.0
8 +Total Number of Cores: 10
9 +Metal Support: Metal 4
10 +load={ 1,79 1,86 1,71 }
11 +disk_free=179Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=88%
added docs/evidence/nodes/m4mm.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m4mm
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Pro ncpu=12 mem_gb=48
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 16
9 +Metal Support: Metal 4
10 +load={ 1,40 1,53 1,54 }
11 +disk_free=376Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=95%
added docs/evidence/nodes/m4mn.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m4mn
2 +os=26.5.1 build=25F80
3 +chip=Apple M4 Pro ncpu=12 mem_gb=48
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.1.1.101)
7 +sdk=26.5
8 +Total Number of Cores: 16
9 +Metal Support: Metal 4
10 +load={ 1,79 1,54 1,41 }
11 +disk_free=369Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=94%
added docs/evidence/nodes/m5ma.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m5ma
2 +os=27.0 build=26A425
3 +chip=Apple M5 Pro ncpu=15 mem_gb=24
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.3.34.2)
7 +sdk=27.0
8 +Total Number of Cores: 16
9 +Metal Support: Metal 4
10 +load={ 1,13 1,10 1,09 }
11 +disk_free=382Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=90%
added docs/evidence/nodes/m6ma.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m6ma
2 +os=27.0 build=26A428
3 +chip=Apple M6 ncpu=12 mem_gb=24
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.3.34.2)
7 +sdk=27.0
8 +Total Number of Cores: 12
9 +Metal Support: Metal 4
10 +load={ 1,24 1,15 1,11 }
11 +disk_free=396Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=90%
added docs/evidence/nodes/m6mb.txt +15 −0
@@ -0,0 +1,15 @@
1 +node=m6mb
2 +os=27.0 build=26A425
3 +chip=Apple M6 ncpu=12 mem_gb=24
4 +xcode_path=/Library/Developer/CommandLineTools
5 +xcodebuild=
6 +clang=Apple clang version 21.0.0 (clang-2100.3.34.2)
7 +sdk=27.0
8 +Total Number of Cores: 12
9 +Metal Support: Metal 4
10 +load={ 0,93 1,07 1,13 }
11 +disk_free=395Gi
12 +pm2=
13 +thermal=Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;
14 +cmake= ninja= python3=Python 3.9.6 brew=
15 +memfree_pct=90%
added docs/literature/crossref_resolved.json +396 −0
@@ -0,0 +1,396 @@
1 +[
2 + {
3 + "key": "andersen2003",
4 + "doi": "10.1111/1468-0262.00418",
5 + "title": "Modeling and Forecasting Realized Volatility",
6 + "journal": "Econometrica",
7 + "year": 2003,
8 + "authors": "Andersen, Bollerslev, Diebold, Labys",
9 + "volume": "71",
10 + "page": "579-625"
11 + },
12 + {
13 + "key": "bns2004",
14 + "doi": "10.1093/jjfinec/nbh001",
15 + "title": "Power and Bipower Variation with Stochastic Volatility and Jumps",
16 + "journal": "Journal of Financial Econometrics",
17 + "year": 2004,
18 + "authors": "Barndorff-Nielsen",
19 + "volume": "2",
20 + "page": "1-37"
21 + },
22 + {
23 + "key": "bns2006",
24 + "doi": "10.1093/jjfinec/nbi022",
25 + "title": "Econometrics of Testing for Jumps in Financial Economics Using Bipower Variation",
26 + "journal": "Journal of Financial Econometrics",
27 + "year": 2005,
28 + "authors": "Barndorff-Nielsen",
29 + "volume": "4",
30 + "page": "1-30"
31 + },
32 + {
33 + "key": "corsi2009",
34 + "doi": "10.1093/jjfinec/nbp001",
35 + "title": "A Simple Approximate Long-Memory Model of Realized Volatility",
36 + "journal": "Journal of Financial Econometrics",
37 + "year": 2008,
38 + "authors": "Corsi",
39 + "volume": "7",
40 + "page": "174-196"
41 + },
42 + {
43 + "key": "bollerslev1986",
44 + "doi": "10.1016/0304-4076(86)90063-1",
45 + "title": "Generalized autoregressive conditional heteroskedasticity",
46 + "journal": "Journal of Econometrics",
47 + "year": 1986,
48 + "authors": "Bollerslev",
49 + "volume": "31",
50 + "page": "307-327"
51 + },
52 + {
53 + "key": "engle1982",
54 + "doi": "10.2307/1912773",
55 + "title": "Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation",
56 + "journal": "Econometrica",
57 + "year": 1982,
58 + "authors": "Engle",
59 + "volume": "50",
60 + "page": "987"
61 + },
62 + {
63 + "key": "glosten1993",
64 + "doi": "10.1111/j.1540-6261.1993.tb05128.x",
65 + "title": "On the Relation between the Expected Value and the Volatility of the Nominal Excess Return on Stocks",
66 + "journal": "The Journal of Finance",
67 + "year": 1993,
68 + "authors": "GLOSTEN, JAGANNATHAN, RUNKLE",
69 + "volume": "48",
70 + "page": "1779-1801"
71 + },
72 + {
73 + "key": "nelson1991",
74 + "doi": "10.2307/2938260",
75 + "title": "Conditional Heteroskedasticity in Asset Returns: A New Approach",
76 + "journal": "Econometrica",
77 + "year": 1991,
78 + "authors": "Nelson",
79 + "volume": "59",
80 + "page": "347"
81 + },
82 + {
83 + "key": "neweywest1987",
84 + "doi": "10.2307/1913610",
85 + "title": "A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix",
86 + "journal": "Econometrica",
87 + "year": 1987,
88 + "authors": "Newey, West",
89 + "volume": "55",
90 + "page": "703"
91 + },
92 + {
93 + "key": "white1980",
94 + "doi": "10.2307/1912934",
95 + "title": "A Heteroskedasticity-Consistent Covariance Matrix Estimator and a Direct Test for Heteroskedasticity",
96 + "journal": "Econometrica",
97 + "year": 1980,
98 + "authors": "White",
99 + "volume": "48",
100 + "page": "817"
101 + },
102 + {
103 + "key": "bpq2016",
104 + "doi": "10.1016/j.jeconom.2015.10.007",
105 + "title": "Exploiting the errors: A simple approach for improved volatility forecasting",
106 + "journal": "Journal of Econometrics",
107 + "year": 2016,
108 + "authors": "Bollerslev, Patton, Quaedvlieg",
109 + "volume": "192",
110 + "page": "1-18"
111 + },
112 + {
113 + "key": "hhs2012",
114 + "doi": "10.1002/jae.1234",
115 + "title": "Realized GARCH: a joint model for returns and realized measures of volatility",
116 + "journal": "Journal of Applied Econometrics",
117 + "year": 2011,
118 + "authors": "Hansen, Huang, Shek",
119 + "volume": "27",
120 + "page": "877-906"
121 + },
122 + {
123 + "key": "dy2012",
124 + "doi": "10.1016/j.ijforecast.2011.02.006",
125 + "title": "Better to give than to receive: Predictive directional measurement of volatility spillovers",
126 + "journal": "International Journal of Forecasting",
127 + "year": 2012,
128 + "authors": "Diebold, Yilmaz",
129 + "volume": "28",
130 + "page": "57-66"
131 + },
132 + {
133 + "key": "dy2014",
134 + "doi": "10.1016/j.jeconom.2014.04.012",
135 + "title": "On the network topology of variance decompositions: Measuring the connectedness of financial firms",
136 + "journal": "Journal of Econometrics",
137 + "year": 2014,
138 + "authors": "Diebold, Y\u0131lmaz",
139 + "volume": "182",
140 + "page": "119-134"
141 + },
142 + {
143 + "key": "patton2011",
144 + "doi": "10.1016/j.jeconom.2010.03.034",
145 + "title": "Volatility forecast comparison using imperfect volatility proxies",
146 + "journal": "Journal of Econometrics",
147 + "year": 2011,
148 + "authors": "Patton",
149 + "volume": "160",
150 + "page": "246-256"
151 + },
152 + {
153 + "key": "politisromano1994",
154 + "doi": "10.1080/01621459.1994.10476870",
155 + "title": "The Stationary Bootstrap",
156 + "journal": "Journal of the American Statistical Association",
157 + "year": 1994,
158 + "authors": "Politis, Romano",
159 + "volume": "89",
160 + "page": "1303-1313"
161 + },
162 + {
163 + "key": "zma2005",
164 + "doi": "10.1198/016214505000000169",
165 + "title": "A Tale of Two Time Scales",
166 + "journal": "Journal of the American Statistical Association",
167 + "year": 2005,
168 + "authors": "Zhang, Mykland, A\u00eft-Sahalia",
169 + "volume": "100",
170 + "page": "1394-1411"
171 + },
172 + {
173 + "key": "bnhls2008",
174 + "doi": "10.3982/ecta6495",
175 + "title": "Designing Realized Kernels to Measure the ex post Variation of Equity Prices in the Presence of Noise",
176 + "journal": "Econometrica",
177 + "year": 2008,
178 + "authors": "",
179 + "volume": "76",
180 + "page": "1481-1536",
181 + "publisher": "The Econometric Society"
182 + },
183 + {
184 + "key": "jacod2009",
185 + "doi": "10.1016/j.spa.2008.11.004",
186 + "title": "Microstructure noise in the continuous case: The pre-averaging approach",
187 + "journal": "Stochastic Processes and their Applications",
188 + "year": 2009,
189 + "authors": "Jacod, Li, Mykland, Podolskij, Vetter",
190 + "volume": "119",
191 + "page": "2249-2276",
192 + "publisher": "Elsevier BV"
193 + },
194 + {
195 + "key": "engle2002",
196 + "doi": "10.1198/073500102288618487",
197 + "title": "Dynamic Conditional Correlation",
198 + "journal": "Journal of Business &amp; Economic Statistics",
199 + "year": 2002,
200 + "authors": "Engle",
201 + "volume": "20",
202 + "page": "339-350"
203 + },
204 + {
205 + "key": "nss2012",
206 + "doi": "10.1002/jae.1260",
207 + "title": "Multivariate high\u2010frequency\u2010based volatility (HEAVY) models",
208 + "journal": "Journal of Applied Econometrics",
209 + "year": 2011,
210 + "authors": "Noureldin, Shephard, Sheppard",
211 + "volume": "27",
212 + "page": "907-933"
213 + },
214 + {
215 + "key": "egs2013",
216 + "doi": "10.1162/rest_a_00300",
217 + "title": "Stock Market Volatility and Macroeconomic Fundamentals",
218 + "journal": "Review of Economics and Statistics",
219 + "year": 2013,
220 + "authors": "Engle, Ghysels, Sohn",
221 + "volume": "95",
222 + "page": "776-797"
223 + },
224 + {
225 + "key": "hansenlunde2005",
226 + "doi": "10.1002/jae.800",
227 + "title": "A forecast comparison of volatility models: does anything beat a GARCH(1,1)?",
228 + "journal": "Journal of Applied Econometrics",
229 + "year": 2005,
230 + "authors": "Hansen, Lunde",
231 + "volume": "20",
232 + "page": "873-889"
233 + },
234 + {
235 + "key": "lps2015",
236 + "doi": "10.1016/j.jeconom.2015.02.008",
237 + "title": "Does anything beat 5-minute RV? A comparison of realized measures across multiple asset classes",
238 + "journal": "Journal of Econometrics",
239 + "year": 2015,
240 + "authors": "Liu, Patton, Sheppard",
241 + "volume": "187",
242 + "page": "293-311"
243 + },
244 + {
245 + "key": "boudt2022",
246 + "doi": "10.18637/jss.v104.i08",
247 + "title": "Analyzing Intraday Financial Data in <i>R</i>: The <b>highfrequency</b> Package",
248 + "journal": "Journal of Statistical Software",
249 + "year": 2022,
250 + "authors": "Boudt, Kleen, Sj\u00f8rup",
251 + "volume": "104",
252 + "page": null
253 + },
254 + {
255 + "key": "dieboldmariano1995",
256 + "doi": "10.1198/073500102753410444",
257 + "title": "Comparing Predictive Accuracy",
258 + "journal": "Journal of Business &amp; Economic Statistics",
259 + "year": 2002,
260 + "authors": "Diebold, Mariano",
261 + "volume": "20",
262 + "page": "134-144"
263 + },
264 + {
265 + "key": "hansen2011mcs",
266 + "doi": "10.1046/j.0305-9049.2003.00086.x",
267 + "title": "Choosing the Best Volatility Models: The Model Confidence Set Approach*",
268 + "journal": "Oxford Bulletin of Economics and Statistics",
269 + "year": 2003,
270 + "authors": "Hansen, Lunde, Nason",
271 + "volume": "65",
272 + "page": "839-861"
273 + },
274 + {
275 + "key": "cameron2011",
276 + "doi": "10.1198/jbes.2010.07136",
277 + "title": "Robust Inference With Multiway Clustering",
278 + "journal": "Journal of Business &amp; Economic Statistics",
279 + "year": 2011,
280 + "authors": "Cameron, Gelbach, Miller",
281 + "volume": "29",
282 + "page": "238-249"
283 + },
284 + {
285 + "key": "aldrich2011",
286 + "doi": "10.1016/j.jedc.2010.10.001",
287 + "title": "Tapping the supercomputer under your desk: Solving dynamic equilibrium models with graphics processors",
288 + "journal": "Journal of Economic Dynamics and Control",
289 + "year": 2011,
290 + "authors": "Aldrich, Fern\u00e1ndez-Villaverde, Ronald Gallant, Rubio-Ram\u00edrez",
291 + "volume": "35",
292 + "page": "386-393"
293 + },
294 + {
295 + "key": "pattonsheppard2015",
296 + "doi": "10.1162/rest_a_00503",
297 + "title": "Good Volatility, Bad Volatility: Signed Jumps and The Persistence of Volatility",
298 + "journal": "Review of Economics and Statistics",
299 + "year": 2015,
300 + "authors": "Patton, Sheppard",
301 + "volume": "97",
302 + "page": "683-697"
303 + },
304 + {
305 + "key": "bnks2010",
306 + "doi": "10.1093/acprof:oso/9780199549498.003.0007",
307 + "title": "Measuring Downside Risk \u2013 Realized Semivariance*",
308 + "journal": "Volatility and Time Series Econometrics",
309 + "year": 2010,
310 + "authors": "Barndorff\u2010Nielsen, Kinnebrock, Shephard",
311 + "volume": null,
312 + "page": "117-136",
313 + "publisher": "Oxford University Press"
314 + },
315 + {
316 + "key": "abd2007",
317 + "doi": "10.1162/rest.89.4.701",
318 + "title": "Roughing It Up: Including Jump Components in the Measurement, Modeling, and Forecasting of Return Volatility",
319 + "journal": "Review of Economics and Statistics",
320 + "year": 2007,
321 + "authors": "Andersen, Bollerslev, Diebold",
322 + "volume": "89",
323 + "page": "701-720"
324 + },
325 + {
326 + "key": "huangtauchen2005",
327 + "doi": "10.1093/jjfinec/nbi025",
328 + "title": "The Relative Contribution of Jumps to Total Price Variance",
329 + "journal": "Journal of Financial Econometrics",
330 + "year": 2005,
331 + "authors": "Huang",
332 + "volume": "3",
333 + "page": "456-499"
334 + },
335 + {
336 + "key": "pesaranshin1998",
337 + "doi": "10.1016/s0165-1765(97)00214-0",
338 + "title": "Generalized impulse response analysis in linear multivariate models",
339 + "journal": "Economics Letters",
340 + "year": 1998,
341 + "authors": "Pesaran, Shin",
342 + "volume": "58",
343 + "page": "17-29"
344 + },
345 + {
346 + "key": "kahan1965",
347 + "doi": "10.1145/363707.363723",
348 + "title": "Pracniques: further remarks on reducing truncation errors",
349 + "journal": "Communications of the ACM",
350 + "year": 1965,
351 + "authors": "Kahan",
352 + "volume": "8",
353 + "page": "40"
354 + },
355 + {
356 + "key": "blackford2002",
357 + "doi": "10.1145/567806.567807",
358 + "title": "An updated set of basic linear algebra subprograms (BLAS)",
359 + "journal": "ACM Transactions on Mathematical Software",
360 + "year": 2002,
361 + "authors": "",
362 + "volume": "28",
363 + "page": "135-151"
364 + },
365 + {
366 + "key": "fiorentini1996",
367 + "doi": "10.1002/(sici)1099-1255(199607)11:4<399::aid-jae401>3.0.co;2-r",
368 + "title": "Analytic derivatives and the computation of GARCH estimates",
369 + "journal": "Journal of Applied Econometrics",
370 + "year": 1996,
371 + "authors": "Fiorentini, Calzolari, Panattoni",
372 + "volume": "11",
373 + "page": "399-417"
374 + },
375 + {
376 + "key": "bollerslevwooldridge1992",
377 + "doi": "10.1080/07474939208800229",
378 + "title": "Quasi-maximum likelihood estimation and inference in dynamic models with time-varying covariances",
379 + "journal": "Econometric Reviews",
380 + "year": 1992,
381 + "authors": "Bollerslev, Wooldridge",
382 + "volume": "11",
383 + "page": "143-172"
384 + },
385 + {
386 + "key": "ghalanos_rugarch",
387 + "doi": "10.32614/cran.package.rugarch",
388 + "title": "rugarch: Univariate GARCH Models",
389 + "journal": "CRAN: Contributed Packages",
390 + "year": 2011,
391 + "authors": "Galanos",
392 + "volume": null,
393 + "page": null,
394 + "publisher": "The R Foundation"
395 + }
396 +]
\ No newline at end of file
added docs/methods/registry.md +40 −0
@@ -0,0 +1,40 @@
1 +# Method registry (Tier A) — conventions, references, tolerances
2 +
3 +Status legend: ✅ validated against the named reference on the committed fixtures (tests/reference) · 🧪 implemented,
4 +reference comparison pending · 🧭 experimental · ✖ not implemented. "Tolerance" is the pass criterion of the test.
5 +
6 +| Key | Definition | Inputs | Reference software & options | Tolerance | CPU | Metal | Status |
7 +|---|---|---|---|---|---|---|---|
8 +| `returns.log` / `returns.arith` | r_t = log(p_t/p_{t−1}) / p_t/p_{t−1}−1, within session; overnight = prev close → open; close-to-close daily | BarSeries (regular session) | numpy | exact (1e−15) | ✅ | n/a | ✅ |
9 +| `calendar.xnys` | NYSE trading days 2000–2026 (rules + special closures), early closes 13:00, DST America/New_York | dates | exchange_calendars 4.13 XNYS | exact set equality (sessions, holidays, early closes 2000–2026) | ✅ | n/a | ✅ |
10 +| `bars.validate` | OHLC consistency, positivity, grid alignment, session membership, coverage vs 391/211, price jumps > 25 % | BarSeries | FinData `/market/sessions` semantics | counts | ✅ | n/a | ✅ (synthetic) |
11 +| `bars.aggregate` | bins anchored at 09:30 ET, closing print joins last bin, no empty bins, OHLC/sum/count | BarSeries | FinData derived 5m (`trade_count`, `vwap`) | exact for OHLCV | ✅ | n/a | 🧪 (vs FinData 5m pending Phase 2) |
12 +| `realized.rv` | Σ r² | returns CSR | highfrequency `rCov` (univariate) / numpy | 1e−12 rel (numpy) | ✅ | Phase 3 | ✅ |
13 +| `realized.bpv` | μ₁⁻²·M/(M−1)·Σ|r_j||r_{j−1}| (finite-sample factor optional) | returns CSR | highfrequency `rBPCov` (makeReturns=FALSE, scaled) | 1e−12 rel (numpy); R comparison Phase 4 | ✅ | Phase 3 | ✅ |
14 +| `realized.rsv` | Σ r² 1{r<0}, Σ r² 1{r>0} | returns CSR | highfrequency `rSVar` | 1e−12 rel | ✅ | Phase 3 | ✅ |
15 +| `realized.rq` | (M/3) Σ r⁴ | returns CSR | highfrequency `rQuar` | 1e−12 rel | ✅ | Phase 3 | ✅ |
16 +| `realized.jump` | max(RV − BPV, 0) (proxy, no test statistic) | — | ABD 2007 | — | ✅ | — | ✅ |
17 +| `realized.tripv` | μ_{4/3}⁻³·M/(M−2)·Σ Π|r|^{4/3} | returns CSR | highfrequency `rTPQuar` (differs: quarticity) — definition from BNS 2004 | 1e−12 (self) | ✅ | — | 🧪 |
18 +| `realized.rcov` | Σ r_j r_j' on synchronized returns; corr from diag | T×N returns | highfrequency `rCov` | Phase 4 | ✅ | Phase 3 | 🧪 |
19 +| `ols` / `wls` / `ridge` | Householder QR (col-pivoting), SVD fallback, ridge by augmentation; R², adj. R², leverage | X (n×k), y | statsmodels 0.15 OLS/WLS | 1e−10 rel (coef), 1e−9 (SE) | ✅ | sufficient stats Phase 3 | ✅ |
20 +| `cov.classical` | s² (X'X)⁻¹, s² = RSS/(n−k) | — | statsmodels nonrobust | 1e−9 | ✅ | — | ✅ |
21 +| `cov.hc0..hc3` | White sandwich; HC1 n/(n−k); HC2 1/(1−h); HC3 1/(1−h)² | — | statsmodels HC0–HC3 | 1e−9 | ✅ | — | ✅ |
22 +| `cov.hac_bartlett` | Newey–West with Bartlett weights, L given or ⌊4(n/100)^{2/9}⌋, no small-sample correction | — | statsmodels HAC (maxlags=L, use_correction=False) | 1e−9 | ✅ | — | ✅ |
23 +| `cov.cluster` | one-way CGM with G/(G−1)·(n−1)/(n−k) | cluster ids | statsmodels cluster (default correction) | 1e−9 | ✅ | — | ✅ |
24 +| `inference.t` | two-sided p from t(df_resid) (regularised incomplete beta); df ≤ 0 → normal | — | scipy.stats.t | 1e−12 | ✅ | — | ✅ |
25 +| `ols.rolling` | window-by-window QR; step parameter | X, y | statsmodels RollingOLS | self-consistency test; Phase 4 vs statsmodels | ✅ | Phase 3 | 🧪 |
26 +| `har.*` | HAR-RV, log-HAR, HAR-X, HARQ (BPQ 2016): RV_{t+h} regressed on RV_t, mean(RV_{t−4..t}), mean(RV_{t−21..t}) [, √RQ_t·RV_t]; causal lags; h ∈ {1,5,22} with overlapping targets → HAC(h−1 lags minimum) | daily RV panel | highfrequency `HARmodel`, statsmodels | Phase 4 | Phase 4 | Phase 4 | ✖ (Phase 4) |
27 +| `garch.garch.gaussian` | σ²_t = ω + α ε²_{t−1} + β σ²_{t−1}; σ²_0 = sample variance of ε; constraints ω>0, α,β≥0, α+β<1 | returns | arch 8.0 `arch_model(vol="GARCH", rescale=False)` (backcast initialisation ≠ ours), rugarch (Phase 4) | loglik 5e−4 rel; params 5 % rel + 0.01 abs; forecasts 5 % | ✅ | likelihood batch Phase 3 | ✅ |
28 +| `garch.gjr.*` | + γ 1{ε<0} ε²; α+γ ≥ 0; α+β+γ/2 < 1 | returns | arch GJR (o=1) | same | ✅ | — | ✅ |
29 +| `garch.egarch.*` | ln σ²_t = ω + α(|z|−E|z|) + γ z + β ln σ²_{t−1}; |β|<1; h>1 forecasts by simulation (20 000 paths, seeded) | returns | arch EGARCH | same (params); forecasts h>1 not compared | ✅ | — | ✅ |
30 +| `garch.*.student_t` | standardized t, ν ∈ (2.05, 500) (arch bounds); E|z| via lgamma | returns | arch dist="t" | same; ν skipped when > 100 (unidentified) | ✅ | — | ✅ |
31 +| `garch.cov` | QMLE sandwich H⁻¹ OPG H⁻¹ (Bollerslev–Wooldridge 1992), Hessian, OPG — numerical derivatives | — | arch robust/classic | Phase 4 (SE comparison) | ✅ | — | 🧪 |
32 +| `bootstrap.stationary` / `circular` | Politis–Romano 1994 / circular block; replica generation + statistic | series | arch.bootstrap | Phase 4 | Phase 4 | Phase 3/4 | ✖ |
33 +
34 +Conventions that differ from references and are **documented, not hidden**:
35 +1. GARCH initial variance: RAID uses the sample variance of ε; `arch` uses a backcast (exponentially weighted) and
36 + `rugarch` the sample variance by default — hence the 5e−4 log-likelihood tolerance. A `backcast` option is planned so
37 + that the comparison can be made exact (Phase 4).
38 +2. BPV finite-sample factor M/(M−1): on by default (as in `highfrequency` when scaling by `makeReturns`); can be off.
39 +3. HAC default lag ⌊4(n/100)^{2/9}⌋ is a rule of thumb (Newey–West 1994 style); the paper always states L explicitly.
40 +4. Student-t ν bounds (2.05, 500) follow `arch`; ν at the upper bound triggers a warning (Gaussian data).
added docs/novelty_matrix.md +57 −0
@@ -0,0 +1,57 @@
1 +# docs/novelty_matrix.md — what exists, what RAID adds, what is *not* new (Phase 0, 2026-11-02)
2 +
3 +Legend — **E** engineering novelty (new implementation strategy, measured), **M** methodological novelty (new estimator
4 +or inference result), **=** equivalent to existing software (RAID must match it), **×** not offered. Claims marked E are
5 +only valid once the corresponding experiment (E1–E7) produces the number; nothing in this table is a result.
6 +
7 +| Capability | R highfrequency 1.0.3 | R rugarch 1.5.6 | Python arch 8.0 | statsmodels 0.15 | Polars / DuckDB | RAID (planned) | Novelty class |
8 +|---|---|---|---|---|---|---|---|
9 +| RV, BPV, semivariance, quarticity, rCov from bars | yes (`rCov`, `rBPCov`, `rSVar`, `rQuar`) | × | × | × | by hand (SQL/expr) | CPU FP64 + Metal FP32 batched over thousands of series | **E** (batched GPU, fused rolling) ; **=** definitions |
10 +| Calendar-aware aggregation, early closes, DST, 16:00 print | partial (`aggregateTS`, user calendars) | × | × | × | manual | explicit MarketCalendar from XNYS rules, FinData sessions as truth | **E** (correctness tooling), not M |
11 +| HAR-RV / log-HAR / HAR-X / HARQ | `HARmodel` (HAR-RV, HARQ, HAR-J/CJ) | × | OLS by hand | OLS + HAC | × | batched rolling HAR with HAC/HC inference, GPU sufficient statistics | **E** (batched, GPU), **=** definitions (Corsi 2009; Bollerslev–Patton–Quaedvlieg 2016) |
12 +| OLS/WLS/ridge, HC0–3, HAC (Newey–West), cluster-robust | × | × | OLS + HAC in `arch.unitroot`/`covariance` | yes | × | QR/SVD CPU reference; GPU batched X'X/X'y accumulation | **=** inference; **E** batched accumulation |
13 +| GARCH(1,1), GJR, EGARCH, Gaussian / Student-t | × | yes (`ugarchfit`) | yes (`arch_model`) | × | × | CPU reference optimizer; GPU batched likelihood evaluation across series / parameter proposals | **E** (batched likelihood on Metal), **=** models |
14 +| Realized GARCH, HEAVY, DCC, GARCH-MIDAS | HEAVY (`HEAVYmodel`) | realized GARCH, rmgarch DCC | HEAVY ×, DCC × | × | × | Tier B after Tier A | **=** (if done) |
15 +| Diebold–Yilmaz connectedness, generalized FEVD | × | × | × | VAR + FEVD (orthogonalized; generalized by hand) | × | Tier B batched rolling VAR + GFEVD | **E** (rolling batched), **=** method (WP 6 precedent) |
16 +| Stationary / circular block bootstrap | × | × | yes (`arch.bootstrap`) | × | × | GPU replica generation + batched statistic evaluation | **E** |
17 +| Pre-averaging, realized kernels, multi-scale RV | yes (`rKernelCov`, `rAVGCov`, `rTSCov`) | × | × | × | × | Tier C, only if validated against highfrequency; 1-min bars limit their relevance | **=** at best |
18 +| Arrow/Parquet → estimator zero-copy | × (xts) | × | × (pandas) | × | native columnar | Arrow C++ views over FinData exports feeding CPU/GPU without copies where layout allows | **E** (measured copies / RSS, E6) |
19 +| Python bindings with GIL release, Arrow/NumPy interop | — | — | — | — | — | nanobind | engineering, standard practice |
20 +| Device discovery, CPU fallback, precision policy, provenance in every estimate | — | — | — | — | — | yes | **E** (reproducibility tooling) |
21 +
22 +## What the paper can legitimately claim (if the experiments support it)
23 +1. A measured break-even analysis Metal vs multicore CPU for realized measures, rolling regressions, batched GARCH
24 + likelihoods and bootstrap replicas on Apple Silicon, including shader compilation, synchronization and transfer, with
25 + explicit CPU-wins regions (RQ1).
26 +2. Evidence that batching across series preserves estimator accuracy and inference (coverage, convergence rates
27 + identical to the FP64 reference within tolerance) while raising throughput (RQ2).
28 +3. Evidence on copies, peak RSS and end-to-end latency of an Arrow/Parquet-to-estimator pipeline vs
29 + pandas/Polars/DuckDB baselines (RQ3).
30 +4. A validated, open C++20 library whose Tier A estimators reproduce highfrequency / rugarch / arch / statsmodels to
31 + documented tolerances (reference tables in the appendix).
32 +
33 +## What the paper must not claim
34 +- New econometric estimators or new asymptotic results (none planned; **M = none**).
35 +- Microstructure-noise robustness from 1-minute OHLCV bars (no trades/quotes; realized kernels/pre-averaging on 1-min
36 + bars are a sampling-frequency exercise, not noise correction at tick level).
37 +- Order-flow or order-book content (not inferable from bars).
38 +- Energy savings unless `powermetrics` (root) or an external meter is actually used; `powermetrics` requires sudo and
39 + is optional in E7 (documented as "measured" only when run).
40 +- GPU "speedups" without the equivalent CPU multicore implementation and the same convergence tolerance.
41 +
42 +## Prior work positioning (verified DOIs in `docs/literature/crossref_resolved.json`)
43 +Realized measures: Andersen, Bollerslev, Diebold & Labys (2003, Econometrica); Barndorff-Nielsen & Shephard (2004, 2006,
44 +JFEC); Barndorff-Nielsen, Kinnebrock & Shephard (2010, OUP volume); Andersen, Bollerslev & Diebold (2007, REStat);
45 +Huang & Tauchen (2005, JFEC); Liu, Patton & Sheppard (2015, J. Econometrics). Noise-robust: Zhang, Mykland &
46 +Aït-Sahalia (2005, JASA); Barndorff-Nielsen, Hansen, Lunde & Shephard (2008, Econometrica); Jacod et al. (2009, SPA).
47 +HAR: Corsi (2009, JFEC); Bollerslev, Patton & Quaedvlieg (2016, J. Econometrics); Patton & Sheppard (2015, REStat).
48 +GARCH: Engle (1982); Bollerslev (1986); Nelson (1991); Glosten, Jagannathan & Runkle (1993); Bollerslev & Wooldridge
49 +(1992, Econometric Reviews); Fiorentini, Calzolari & Panattoni (1996, JAE, analytic derivatives); Hansen & Lunde (2005,
50 +JAE); Hansen, Huang & Shek (2012, JAE, Realized GARCH); Noureldin, Shephard & Sheppard (2012, JAE, HEAVY); Engle (2002,
51 +JBES, DCC); Engle, Ghysels & Sohn (2013, REStat, GARCH-MIDAS). Inference: White (1980); Newey & West (1987); Cameron,
52 +Gelbach & Miller (2011, JBES); Politis & Romano (1994, JASA); Diebold & Mariano (1995/2002, JBES); Hansen, Lunde & Nason
53 +(2003 OBES; 2011 Econometrica MCS — the 2011 DOI is still to be resolved); Patton (2011, J. Econometrics). Connectedness:
54 +Diebold & Yilmaz (2012, IJF; 2014, J. Econometrics); Pesaran & Shin (1998, Econ. Letters). Software: Boudt, Kleen &
55 +Sjørup (2022, JSS); Ghalanos (rugarch, CRAN). Computing: Aldrich, Fernández-Villaverde, Gallant & Rubio-Ramírez (2011,
56 +JEDC, GPU in economics); Kahan (1965, CACM); Blackford et al. (2002, ACM TOMS, BLAS). Systems references still to add
57 +with verified sources: Apache Arrow/Parquet documentation, Apple Metal documentation, nanobind, Eigen.
added docs/risks.md +22 −0
@@ -0,0 +1,22 @@
1 +# docs/risks.md — risk register (Phase 0, 2026-11-02; update at every gate)
2 +
3 +| # | Risk | Likelihood | Impact | Mitigation / decision | Owner phase |
4 +|---|---|---|---|---|---|
5 +| R1 | **No FP64 on Metal** → GPU estimates drift from FP64 references on long reductions (390 000 bars, ill-conditioned X'X) | certain (verified) | high | FP32 + Kahan/pairwise reductions; sufficient statistics accumulated per chunk then combined in FP64 on CPU; mixed-precision policy per method; tolerances per method; GPU paths that cannot meet tolerance are flagged `precision=fp32-approx`, not silently accepted | 3, 4 |
6 +| R2 | GPU does not beat the 18-core CPU for small/medium workloads (realistic for 1-day RV on one series) | high | medium (it is a *result*, not a failure) | Publish break-even charts and CPU-wins cases (charter §8); auto backend picks CPU below measured break-even | 3, 6 |
7 +| R3 | GARCH optimization on GPU unstable (nonconvex, constraints) | medium | medium | GPU only evaluates batched likelihoods/gradients; CPU optimizer (L-BFGS-B / Nelder–Mead with transforms) drives; report convergence codes; never mark non-converged fits as success | 4 |
8 +| R4 | FinData rate limit (600/min) / export caps (31 d per 1m call, 12 y per export) | certain | low | token bucket, retries with `Retry-After`, exports chunked ≤ 10 y, on-disk cache keyed by (dataset, version, symbol, range) with SHA-256 | 2 |
9 +| R5 | Duplicate last session in exports (base + delta layouts, WP 39) | high | low | dedupe on (instrument_id, timestamp_utc), counted in QualityReport | 2 |
10 +| R6 | License breach by committing real bars or figures that reveal raw prices | low | critical | `.gitignore` for `*.parquet`/`data/`; pre-commit hook scanning for `fd_` keys and large binaries; paper tables show only aggregates/ratios; fixtures synthetic | all |
11 +| R7 | Secret leakage (`FINDATA_API_KEY`) in logs/manifests | low | critical | client redacts `Authorization` header; manifests store key *prefix hash* only; `scripts/check_no_secrets.sh` in CI | 2, 8 |
12 +| R8 | Thermal throttling / background load on the laptop biases benchmarks | medium | medium | record `pmset -g therm`, load average, and `powermetrics` when available; randomized order, warm-ups, ≥ 5 repetitions, medians + bootstrap CIs; rerun flagged outliers | 6 |
13 +| R9 | Cluster nodes lack Homebrew/cmake in SSH PATH; m2m8b lacks developer tools; 7 nodes unreachable | certain | low | self-contained static bundle built on the laptop; nodes that stay unreachable are reported as "not tested" in E7 | 6 |
14 +| R10 | Production interference (FinData on M3U96a, Ka apps on M4M64a/b, gateway M1M32) | low | high | those nodes excluded from timing runs (M1M32: ≤ 2-minute microbench only, off-hours); never install software on nodes; no sudo | 6 |
15 +| R11 | Arrow C++ dependency makes wheels/Linux builds heavy | medium | medium | Arrow optional (`RAID_WITH_ARROW`); core library and tests build without it; Parquet reader behind an interface; Python path can fall back to pyarrow → NumPy views | 1 |
16 +| R12 | `clang` 21 does not know `-mcpu=apple-m5` | certain | low | use `-mcpu=apple-m4` on M5/M6 hosts (recorded in manifest); ISA difference irrelevant for the claims | 1 |
17 +| R13 | Reference software definitional differences (BPV constants, HARQ scaling, GARCH initialization, HAC bandwidth, DoF of HC corrections) | high | high (validation tables) | per-method registry pins the exact competitor options; tests compare under identical conventions; discrepancies documented, not hidden | 4 |
18 +| R14 | Scope creep (Tier B/C lists) | high | medium | gates: Tier B only after Tier A passes; Tier C only with validated inputs; RESEARCH_STATUS lists "not implemented" honestly | 5 |
19 +| R15 | Survivorship / PIT issues if a HAR-X uses fundamentals | medium | medium | methods paper uses market covariates only (realized measures, returns, VIX-type indices from FinData index bars); no fundamentals in Tier A experiments | 4, 6 |
20 +| R16 | Nondeterministic GPU reductions (threadgroup scheduling) break bitwise reproducibility | certain | low | deterministic reduction order within fixed threadgroup sizes; `ExecutionPlan.deterministic=true` forces fixed-order tree reductions; nondeterminism bound reported when disabled | 3 |
21 +| R17 | Energy claims without an instrument | medium | medium | energy reported only from `powermetrics` samples (requires sudo on the laptop, password available to the owner); otherwise "not measured" | 6 |
22 +| R18 | Paper claims not traceable to artifacts | medium | high | every table/figure generated by `experiments/scripts/*` from `experiments/results/*.json` with SHA-256 in `experiments/manifests/`; Phase 8 reproduction from clean checkout | 7, 8 |
added examples/cpp/minimal.cpp +23 −0
@@ -0,0 +1,23 @@
1 +// Minimal C++ example: realized measures on the synthetic fixture with backend auto|cpu|metal and CPU fallback.
2 +// Build: cmake --preset macos-release && cmake --build --preset macos-release --target example_minimal (or compile against libraid)
3 +#include <cstdio>
4 +#include "raid/data/io.hpp"
5 +#include "raid/data/calendar.hpp"
6 +#include "raid/data/returns.hpp"
7 +#include "raid/estimators/realized.hpp"
8 +
9 +int main(int argc, char** argv) {
10 + const std::string backend = argc > 1 ? argv[1] : "auto";
11 + auto bars = raid::data::read_bars_csv(argc > 2 ? argv[2] : "datasets/fixtures/synthetic_bars_1m.csv");
12 + raid::MarketCalendar cal;
13 + for (auto& [sym, b] : bars) {
14 + b.normalize();
15 + auto reg = b.filter_session(cal, raid::SessionPolicy::regular);
16 + auto ir = raid::data::intraday_returns(reg);
17 + raid::est::RealizedOptions o; o.plan.backend = raid::backend_from_string(backend); o.plan.allow_fallback = true;
18 + auto m = raid::est::realized_measures(ir, o);
19 + std::printf("%s: %zu sessions, backend=%s precision=%s (%s)\n", sym.c_str(), m.sessions.size(), std::string(raid::to_string(m.stats.backend)).c_str(), std::string(raid::to_string(m.stats.precision)).c_str(), m.stats.note.c_str());
20 + for (size_t k = 0; k < m.sessions.size(); ++k) std::printf(" %s M=%zu RV=%.3e BPV=%.3e RSV-=%.3e RQ=%.3e\n", m.sessions[k].iso().c_str(), m.n_returns[k], m.rv[k], m.bpv[k], m.rsv_neg[k], m.rq[k]);
21 + }
22 + return 0;
23 +}
added examples/python/minimal.py +15 −0
@@ -0,0 +1,15 @@
1 +"""Minimal Python example: realized measures and a GARCH fit with backend="auto|cpu|metal" and explicit CPU fallback."""
2 +import sys
3 +import numpy as np
4 +import raid
5 +
6 +backend = sys.argv[1] if len(sys.argv) > 1 else "auto"
7 +print("devices:", [d["name"] for d in raid.devices()])
8 +rng = np.random.default_rng(20261102)
9 +sessions, M = 100, 390
10 +r = rng.normal(0, 1e-3, size=sessions * M); offsets = np.arange(0, sessions * M + 1, M)
11 +m = raid.realized_measures(r, offsets, backend=backend) # falls back to CPU when Metal is unavailable
12 +print(f"backend={m['backend']} precision={m['precision']} wall={m['wall_seconds']*1e3:.2f} ms RV[0]={m['rv'][0]:.3e}")
13 +daily = m["ret"] # daily open-to-close returns
14 +g = raid.garch_fit(np.concatenate([daily, rng.normal(0, 0.01, 400)]), model="gjr", dist="student_t", horizon=5)
15 +print("GJR-t:", dict(zip(g["names"], np.round(g["coefficients"], 5))), "converged:", g["ok"])
added experiments/manifests/environment_MacBookPro-de-simon-pierre-2.json +33 −0
@@ -0,0 +1,33 @@
1 +{
2 + "recorded_at": "2026-11-02T20:03:03.248578+00:00",
3 + "host": "MacBookPro-de-simon-pierre-2.local",
4 + "os": "27.0",
5 + "build": "26A5425a",
6 + "chip": "Apple M5 Max",
7 + "ncpu": "18",
8 + "perf_cores": "6",
9 + "eff_cores": "12",
10 + "mem_bytes": "51539607552",
11 + "gpu": "Chipset Model: Apple M5 Max;Total Number of Cores: 40;Metal Support: Metal 4;",
12 + "xcode": "Xcode 27.2 Build version 27B52",
13 + "clang": "Apple clang version 21.0.0 (clang-2100.4.1.1)",
14 + "sdk": "27.2",
15 + "metal_toolchain": "Apple metal version 32023.922 (metalfe-32023.922.4)",
16 + "cmake": "cmake version 4.3.2",
17 + "ninja": "1.13.2",
18 + "brew": {
19 + "eigen": "eigen 5.0.1",
20 + "apache-arrow": "apache-arrow 26.0.0_3",
21 + "catch2": "catch2 3.16.1",
22 + "nlohmann-json": "nlohmann-json 3.12.0",
23 + "openblas": "openblas 0.3.33",
24 + "libomp": "libomp 22.1.8"
25 + },
26 + "python": "Python 3.14.4",
27 + "r": "R version 4.6.1 (2026-06-24) -- \"Happy Hop\"",
28 + "load_avg": "{ 3,67 3,00 2,56 }",
29 + "thermal": "Note: No thermal warning level has been recorded;Note: No performance warning level has been recorded;Note: No CPU power status has been recorded;",
30 + "power_source": "Now drawing from 'AC Power'",
31 + "uptime": "15:03 up 28 days, 4 mins, 22 users, load averages: 3,67 3,00 2,56",
32 + "git_commit": "2ceeede"
33 +}
\ No newline at end of file
added include/raid/backend/backend.hpp +71 −0
@@ -0,0 +1,71 @@
1 +// Backend interface: batched numerical primitives over CSR panels. Every primitive has a CPU FP64 reference;
2 +// the Metal backend implements the same contract in FP32 (+ compensated partial sums combined in FP64 on the CPU).
3 +#pragma once
4 +#include <memory>
5 +#include <span>
6 +#include <string>
7 +#include <vector>
8 +#include "raid/core/types.hpp"
9 +#include "raid/core/plan.hpp"
10 +
11 +namespace raid::backend {
12 +
13 +/// Batched input: `values` concatenated, `offsets` (n_series+1). All kernels are segment-wise over series.
14 +struct Batch {
15 + std::span<const f64> values;
16 + std::span<const i64> offsets;
17 + usize n_series() const { return offsets.empty() ? 0 : offsets.size() - 1; }
18 + usize size(usize i) const { return static_cast<usize>(offsets[i + 1] - offsets[i]); }
19 + std::span<const f64> series(usize i) const { return values.subspan(static_cast<usize>(offsets[i]), size(i)); }
20 +};
21 +
22 +/// Timing / provenance of one primitive call (filled by every backend).
23 +struct KernelStats {
24 + std::string kernel;
25 + Backend backend{Backend::cpu};
26 + Precision precision{Precision::fp64};
27 + f64 wall_seconds{0};
28 + f64 device_seconds{0}; // GPU time (Metal GPUStartTime/EndTime) or 0
29 + usize bytes_in{0}, bytes_out{0};
30 + usize buffer_allocations{0};
31 + bool compiled_now{false}; // first shader compilation happened in this call
32 + bool fell_back{false}; // Metal → CPU fallback occurred
33 + std::string note;
34 +};
35 +
36 +class Backend {
37 + public:
38 + virtual ~Backend() = default;
39 + virtual std::string name() const = 0;
40 + virtual raid::Backend kind() const = 0;
41 + virtual Device device() const = 0;
42 + virtual bool available() const = 0;
43 +
44 + /// Σ x² per series (realized variance when x are returns).
45 + virtual std::vector<f64> sum_squares(const Batch& b, KernelStats* st = nullptr) = 0;
46 + /// Σ |x_i| |x_{i-1}| per series (bipower core, without constants).
47 + virtual std::vector<f64> sum_abs_adjacent(const Batch& b, KernelStats* st = nullptr) = 0;
48 + /// Σ x² 1{x<0}, Σ x² 1{x>0} per series (semivariances).
49 + virtual void semivariances(const Batch& b, std::vector<f64>& neg, std::vector<f64>& pos, KernelStats* st = nullptr) = 0;
50 + /// Σ x⁴ per series (realized quarticity core).
51 + virtual std::vector<f64> sum_fourth(const Batch& b, KernelStats* st = nullptr) = 0;
52 + /// Rolling sum of squares with window w per series; output same layout as input (NaN for incomplete windows).
53 + virtual std::vector<f64> rolling_sum_squares(const Batch& b, usize window, KernelStats* st = nullptr) = 0;
54 + /// Batched sufficient statistics for regressions with k regressors: for each series i, X_i is (n_i × k) row-major
55 + /// stored in `x` (concatenated), y_i in `y`; outputs xtx (k×k per series, row-major), xty (k per series), yty.
56 + virtual void regression_stats(std::span<const f64> x, std::span<const f64> y, std::span<const i64> offsets, usize k,
57 + std::vector<f64>& xtx, std::vector<f64>& xty, std::vector<f64>& yty, KernelStats* st = nullptr) = 0;
58 + /// Batched GARCH(1,1)-family negative log-likelihood for a grid of parameter vectors on each series.
59 + /// params: n_series × n_params × p (row-major); returns nll (n_series × n_params). Model codes in models/garch.hpp.
60 + virtual std::vector<f64> garch_nll_batch(const Batch& returns, std::span<const f64> params, usize n_params, usize p, int model_code, f64 nu_fixed, KernelStats* st = nullptr) = 0;
61 +};
62 +
63 +std::shared_ptr<Backend> make_cpu_backend(unsigned threads = 0);
64 +#ifdef RAID_ENABLE_METAL
65 +std::shared_ptr<Backend> make_metal_backend(const PrecisionPolicy& policy = {});
66 +#endif
67 +/// Resolve a plan to a concrete backend (auto → Metal if available and allowed, else CPU). Never throws for auto.
68 +std::shared_ptr<Backend> resolve(const ExecutionPlan& plan, std::string* reason = nullptr);
69 +std::vector<Device> list_devices();
70 +
71 +} // namespace raid::backend
added include/raid/core/error.hpp +33 −0
@@ -0,0 +1,33 @@
1 +#pragma once
2 +#include <stdexcept>
3 +#include <string>
4 +#include <string_view>
5 +
6 +namespace raid {
7 +
8 +enum class ErrorCode {
9 + invalid_argument, data_quality, numerical, not_converged, unsupported, io, api, insufficient_samples, memory, cancelled
10 +};
11 +constexpr std::string_view to_string(ErrorCode c) {
12 + switch (c) {
13 + case ErrorCode::invalid_argument: return "invalid_argument"; case ErrorCode::data_quality: return "data_quality";
14 + case ErrorCode::numerical: return "numerical"; case ErrorCode::not_converged: return "not_converged";
15 + case ErrorCode::unsupported: return "unsupported"; case ErrorCode::io: return "io"; case ErrorCode::api: return "api";
16 + case ErrorCode::insufficient_samples: return "insufficient_samples"; case ErrorCode::memory: return "memory";
17 + case ErrorCode::cancelled: return "cancelled";
18 + }
19 + return "?";
20 +}
21 +
22 +class RaidError : public std::runtime_error {
23 + public:
24 + RaidError(ErrorCode code, const std::string& msg) : std::runtime_error(std::string(to_string(code)) + ": " + msg), code_(code) {}
25 + ErrorCode code() const noexcept { return code_; }
26 + private:
27 + ErrorCode code_;
28 +};
29 +
30 +#define RAID_REQUIRE(cond, code, msg) \
31 + do { if (!(cond)) throw ::raid::RaidError(::raid::ErrorCode::code, std::string(msg) + " [" #cond "]"); } while (0)
32 +
33 +} // namespace raid
added include/raid/core/estimate.hpp +62 −0
@@ -0,0 +1,62 @@
1 +// Estimate / InferenceResult / Provenance — the common output contract of every RAID estimator.
2 +#pragma once
3 +#include <string>
4 +#include <vector>
5 +#include <optional>
6 +#include <Eigen/Dense>
7 +#include <nlohmann/json.hpp>
8 +#include "raid/core/types.hpp"
9 +
10 +namespace raid {
11 +
12 +struct Provenance {
13 + std::string dataset_id; // e.g. market_bars.stock.1m.raw
14 + i64 dataset_version{-1}; // X-Dataset-Version (−1 = synthetic / unknown)
15 + std::vector<std::string> request_ids; // X-Request-ID values
16 + std::vector<std::string> input_hashes; // SHA-256 of input files / fixtures
17 + std::string code_version; // git short SHA + RAID_VERSION
18 + std::string source; // "FirstRate Data via FinData OS" | "synthetic"
19 + nlohmann::json extra;
20 + nlohmann::json to_json() const;
21 +};
22 +
23 +struct Convergence {
24 + bool converged{false};
25 + int iterations{0};
26 + int function_evaluations{0};
27 + f64 gradient_norm{std::numeric_limits<f64>::quiet_NaN()};
28 + int status_code{0};
29 + std::string message;
30 + nlohmann::json to_json() const;
31 +};
32 +
33 +struct InferenceResult {
34 + std::vector<f64> std_errors;
35 + std::vector<f64> t_stats;
36 + std::vector<f64> p_values;
37 + Eigen::MatrixXd covariance;
38 + std::string covariance_type; // classical | hc0..hc3 | hac_bartlett(L) | cluster | qmle_sandwich | hessian
39 + f64 small_sample_correction{1.0};
40 + nlohmann::json to_json() const;
41 +};
42 +
43 +struct Estimate {
44 + std::string model; // registry key, e.g. "har.rv", "garch.gjr.t"
45 + std::vector<std::string> names;
46 + std::vector<f64> coefficients;
47 + f64 loss{std::numeric_limits<f64>::quiet_NaN()}; // −loglik or RSS depending on the model (documented per model)
48 + std::optional<InferenceResult> inference;
49 + Convergence convergence;
50 + std::vector<std::string> warnings;
51 + f64 runtime_seconds{0};
52 + Backend backend{Backend::cpu};
53 + Precision precision{Precision::fp64};
54 + Provenance provenance;
55 + usize n_obs{0};
56 + nlohmann::json extra; // model-specific (sigma2 path, forecasts, diagnostics)
57 + /// A failed optimisation is never a success: ok() requires convergence.
58 + bool ok() const { return convergence.converged && !coefficients.empty(); }
59 + nlohmann::json to_json() const;
60 +};
61 +
62 +} // namespace raid
added include/raid/core/hash.hpp +29 −0
@@ -0,0 +1,29 @@
1 +// SHA-256 (FIPS 180-4), dependency-free, for provenance hashes of inputs/artifacts.
2 +#pragma once
3 +#include <string>
4 +#include <string_view>
5 +#include <span>
6 +#include <array>
7 +#include <cstdint>
8 +
9 +namespace raid {
10 +
11 +class Sha256 {
12 + public:
13 + Sha256();
14 + void update(const void* data, std::size_t len);
15 + void update(std::string_view s) { update(s.data(), s.size()); }
16 + std::array<std::uint8_t, 32> digest();
17 + std::string hex();
18 + static std::string of(std::string_view s) { Sha256 h; h.update(s); return h.hex(); }
19 + static std::string of_file(const std::string& path);
20 + template <class T> static std::string of_span(std::span<const T> x) { Sha256 h; h.update(x.data(), x.size_bytes()); return h.hex(); }
21 + private:
22 + void transform(const std::uint8_t* chunk);
23 + std::array<std::uint32_t, 8> h_;
24 + std::array<std::uint8_t, 64> buf_{};
25 + std::size_t buf_len_{0};
26 + std::uint64_t total_{0};
27 +};
28 +
29 +} // namespace raid
added include/raid/core/log.hpp +28 −0
@@ -0,0 +1,28 @@
1 +// Minimal structured logger (key=value pairs, levels, secret redaction). No external dependency.
2 +#pragma once
3 +#include <string>
4 +#include <string_view>
5 +#include <vector>
6 +#include <utility>
7 +#include <functional>
8 +#include <mutex>
9 +
10 +namespace raid::log {
11 +
12 +enum class Level : int { trace = 0, debug = 1, info = 2, warn = 3, error = 4, off = 5 };
13 +using Fields = std::vector<std::pair<std::string, std::string>>;
14 +using Sink = std::function<void(Level, std::string_view msg, const Fields&)>;
15 +
16 +void set_level(Level l);
17 +Level level();
18 +void set_sink(Sink s); // default: stderr, one line per event, "level msg k=v k=v"
19 +void emit(Level l, std::string_view msg, Fields fields = {});
20 +/// Replaces bearer tokens / api keys ("fd_xxx.yyy", "Bearer …") by "<redacted>".
21 +std::string redact(std::string_view s);
22 +
23 +inline void info(std::string_view m, Fields f = {}) { emit(Level::info, m, std::move(f)); }
24 +inline void warn(std::string_view m, Fields f = {}) { emit(Level::warn, m, std::move(f)); }
25 +inline void error(std::string_view m, Fields f = {}) { emit(Level::error, m, std::move(f)); }
26 +inline void debug(std::string_view m, Fields f = {}) { emit(Level::debug, m, std::move(f)); }
27 +
28 +} // namespace raid::log
added include/raid/core/manifest.hpp +33 −0
@@ -0,0 +1,33 @@
1 +// ExperimentManifest — everything needed to reproduce a run: host, toolchain, library version, plan, seeds, inputs.
2 +#pragma once
3 +#include <string>
4 +#include <vector>
5 +#include <map>
6 +#include <nlohmann/json.hpp>
7 +#include "raid/core/types.hpp"
8 +#include "raid/core/plan.hpp"
9 +
10 +namespace raid {
11 +
12 +struct ExperimentManifest {
13 + std::string experiment; // e.g. "E1.batched_rv"
14 + std::string created_at_utc;
15 + std::string raid_version;
16 + std::string git_commit;
17 + nlohmann::json host; // from host_info()
18 + nlohmann::json plan; // ExecutionPlan::to_json
19 + u64 seed{0};
20 + std::map<std::string, std::string> inputs; // name → sha256
21 + std::map<std::string, std::string> parameters;
22 + std::vector<nlohmann::json> records; // raw benchmark / result records
23 + nlohmann::json to_json() const;
24 + void save(const std::string& path) const;
25 +};
26 +
27 +/// Host information gathered at run time (no secrets): chip, cores, memory, OS, compiler, load, thermal state, power.
28 +nlohmann::json host_info();
29 +std::string now_utc_iso();
30 +/// Peak resident set size in bytes (ru_maxrss), for memory metrics.
31 +u64 peak_rss_bytes();
32 +
33 +} // namespace raid
added include/raid/core/plan.hpp +45 −0
@@ -0,0 +1,45 @@
1 +// ExecutionPlan / Device / PrecisionPolicy — how and where a computation runs.
2 +#pragma once
3 +#include <string>
4 +#include <vector>
5 +#include <nlohmann/json.hpp>
6 +#include "raid/core/types.hpp"
7 +
8 +namespace raid {
9 +
10 +struct Device {
11 + std::string name;
12 + Backend kind{Backend::cpu};
13 + u64 memory_bytes{0};
14 + int compute_units{0}; // CPU cores or GPU cores (if known)
15 + bool unified_memory{true};
16 + bool supports_fp64{true}; // false for every Apple GPU (verified 2026-11-02)
17 + u64 max_buffer_bytes{0};
18 + std::string details;
19 + nlohmann::json to_json() const;
20 +};
21 +
22 +struct PrecisionPolicy {
23 + Precision requested{Precision::fp64};
24 + /// Maximum reduction length accumulated in FP32 on the GPU before a FP64 CPU combine step.
25 + usize fp32_chunk_max{4096};
26 + /// Use compensated (Neumaier) accumulation on GPU partial sums.
27 + bool compensated{true};
28 + /// Tolerance (relative) used by auto validation of GPU vs CPU reference.
29 + f64 validate_rtol{1e-5};
30 + nlohmann::json to_json() const;
31 +};
32 +
33 +struct ExecutionPlan {
34 + Backend backend{Backend::automatic};
35 + PrecisionPolicy precision{};
36 + bool deterministic{true}; // fixed-order reductions (bitwise reproducible across runs on the same device)
37 + unsigned threads{0}; // 0 = all
38 + usize chunk_rows{0}; // 0 = automatic
39 + u64 max_memory_bytes{0}; // 0 = no explicit bound (device-reported limits still apply)
40 + bool allow_fallback{true}; // Metal unsupported → CPU
41 + u64 seed{20261102};
42 + nlohmann::json to_json() const;
43 +};
44 +
45 +} // namespace raid
added include/raid/core/rng.hpp +71 −0
@@ -0,0 +1,71 @@
1 +// Deterministic, stream-addressable RNG (xoshiro256++ seeded by splitmix64 from (seed, stream)).
2 +// Each (seed, stream) pair gives an independent, reproducible stream suitable for parallel Monte Carlo.
3 +#pragma once
4 +#include <cstdint>
5 +#include <cmath>
6 +#include <array>
7 +#include "raid/core/types.hpp"
8 +
9 +namespace raid {
10 +
11 +class Rng {
12 + public:
13 + explicit Rng(u64 seed = 0x5eed'0000'0000'0001ULL, u64 stream = 0) { reseed(seed, stream); }
14 + void reseed(u64 seed, u64 stream) {
15 + seed_ = seed; stream_ = stream;
16 + u64 z = seed ^ (stream * 0x9E3779B97F4A7C15ULL) ^ 0xD1B54A32D192ED03ULL;
17 + for (auto& w : s_) w = splitmix(z);
18 + if (s_[0] == 0 && s_[1] == 0 && s_[2] == 0 && s_[3] == 0) s_[0] = 1;
19 + }
20 + u64 seed() const { return seed_; }
21 + u64 stream() const { return stream_; }
22 + u64 next_u64() {
23 + const u64 result = rotl(s_[0] + s_[3], 23) + s_[0];
24 + const u64 t = s_[1] << 17;
25 + s_[2] ^= s_[0]; s_[3] ^= s_[1]; s_[1] ^= s_[2]; s_[0] ^= s_[3]; s_[2] ^= t; s_[3] = rotl(s_[3], 45);
26 + return result;
27 + }
28 + /// Uniform on [0,1) with 53 random bits.
29 + f64 uniform() { return static_cast<f64>(next_u64() >> 11) * 0x1.0p-53; }
30 + /// Standard normal, polar Box–Muller (caches the second draw).
31 + f64 normal() {
32 + if (has_cached_) { has_cached_ = false; return cached_; }
33 + f64 u, v, s;
34 + do { u = 2.0 * uniform() - 1.0; v = 2.0 * uniform() - 1.0; s = u * u + v * v; } while (s >= 1.0 || s == 0.0);
35 + const f64 m = std::sqrt(-2.0 * std::log(s) / s);
36 + cached_ = v * m; has_cached_ = true;
37 + return u * m;
38 + }
39 + /// Gamma(shape k, scale 1), Marsaglia–Tsang.
40 + f64 gamma(f64 k) {
41 + if (k < 1.0) { const f64 u = uniform(); return gamma(k + 1.0) * std::pow(u, 1.0 / k); }
42 + const f64 d = k - 1.0 / 3.0, c = 1.0 / std::sqrt(9.0 * d);
43 + for (;;) {
44 + f64 x, v;
45 + do { x = normal(); v = 1.0 + c * x; } while (v <= 0.0);
46 + v = v * v * v;
47 + const f64 u = uniform();
48 + if (u < 1.0 - 0.0331 * x * x * x * x) return d * v;
49 + if (std::log(u) < 0.5 * x * x + d * (1.0 - v + std::log(v))) return d * v;
50 + }
51 + }
52 + /// Student-t with nu degrees of freedom, unit scale (variance nu/(nu-2)).
53 + f64 student_t(f64 nu) { return normal() / std::sqrt(gamma(nu / 2.0) * 2.0 / nu); }
54 + /// Integer in [0, n)
55 + u64 below(u64 n) { return next_u64() % n; }
56 + /// Geometric number of trials with success probability p (support 1,2,…) — for the stationary bootstrap.
57 + u64 geometric(f64 p) { return 1 + static_cast<u64>(std::floor(std::log(1.0 - uniform()) / std::log(1.0 - p))); }
58 +
59 + private:
60 + static constexpr u64 rotl(u64 x, int k) { return (x << k) | (x >> (64 - k)); }
61 + static u64 splitmix(u64& z) {
62 + z += 0x9E3779B97F4A7C15ULL;
63 + u64 r = z; r = (r ^ (r >> 30)) * 0xBF58476D1CE4E5B9ULL; r = (r ^ (r >> 27)) * 0x94D049BB133111EBULL;
64 + return r ^ (r >> 31);
65 + }
66 + std::array<u64, 4> s_{};
67 + u64 seed_{0}, stream_{0};
68 + f64 cached_{0}; bool has_cached_{false};
69 +};
70 +
71 +} // namespace raid
added include/raid/core/thread_pool.hpp +40 −0
@@ -0,0 +1,40 @@
1 +// Bounded thread pool with a blocking parallel_for. Threads are created once (lazy singleton) and reused.
2 +#pragma once
3 +#include <functional>
4 +#include <thread>
5 +#include <vector>
6 +#include <atomic>
7 +#include <mutex>
8 +#include <condition_variable>
9 +#include <deque>
10 +#include <exception>
11 +#include "raid/core/types.hpp"
12 +
13 +namespace raid {
14 +
15 +class ThreadPool {
16 + public:
17 + explicit ThreadPool(unsigned n_threads = 0);
18 + ~ThreadPool();
19 + ThreadPool(const ThreadPool&) = delete;
20 + ThreadPool& operator=(const ThreadPool&) = delete;
21 + unsigned size() const { return static_cast<unsigned>(workers_.size()); }
22 + /// Runs fn(begin, end) over [0,n) split in chunks of `grain` (0 = automatic). Blocks until all chunks finished.
23 + /// Exceptions thrown by fn are rethrown on the calling thread (first one).
24 + void parallel_for(usize n, const std::function<void(usize, usize)>& fn, usize grain = 0);
25 + /// Global pool sized to hardware concurrency (or RAID_THREADS env var).
26 + static ThreadPool& global();
27 +
28 + private:
29 + void worker();
30 + std::vector<std::thread> workers_;
31 + std::deque<std::function<void()>> queue_;
32 + std::mutex m_;
33 + std::condition_variable cv_;
34 + bool stop_{false};
35 +};
36 +
37 +/// Serial fallback helper: parallel_for with n_threads==1 semantics.
38 +inline void serial_for(usize n, const std::function<void(usize, usize)>& fn) { if (n) fn(0, n); }
39 +
40 +} // namespace raid
added include/raid/core/types.hpp +120 −0
@@ -0,0 +1,120 @@
1 +// RAID — core strong types (timestamps, durations, intervals, dates, enums).
2 +#pragma once
3 +#include <cstdint>
4 +#include <compare>
5 +#include <string>
6 +#include <string_view>
7 +#include <chrono>
8 +#include <stdexcept>
9 +
10 +namespace raid {
11 +
12 +using f64 = double;
13 +using f32 = float;
14 +using i64 = std::int64_t;
15 +using i32 = std::int32_t;
16 +using u32 = std::uint32_t;
17 +using u64 = std::uint64_t;
18 +using usize = std::size_t;
19 +
20 +/// Microseconds since the Unix epoch, UTC. Strong type: cannot be mixed with raw integers by accident.
21 +struct Timestamp {
22 + i64 us{0};
23 + constexpr Timestamp() = default;
24 + constexpr explicit Timestamp(i64 micros) : us(micros) {}
25 + static constexpr Timestamp from_seconds(i64 s) { return Timestamp(s * 1'000'000); }
26 + constexpr i64 seconds() const { return us / 1'000'000; }
27 + constexpr auto operator<=>(const Timestamp&) const = default;
28 +};
29 +
30 +struct Duration {
31 + i64 us{0};
32 + constexpr Duration() = default;
33 + constexpr explicit Duration(i64 micros) : us(micros) {}
34 + static constexpr Duration seconds(i64 s) { return Duration(s * 1'000'000); }
35 + static constexpr Duration minutes(i64 m) { return Duration(m * 60'000'000); }
36 + static constexpr Duration hours(i64 h) { return Duration(h * 3'600'000'000LL); }
37 + static constexpr Duration days(i64 d) { return Duration(d * 86'400'000'000LL); }
38 + constexpr auto operator<=>(const Duration&) const = default;
39 +};
40 +constexpr Duration operator-(Timestamp a, Timestamp b) { return Duration(a.us - b.us); }
41 +constexpr Timestamp operator+(Timestamp a, Duration d) { return Timestamp(a.us + d.us); }
42 +constexpr Timestamp operator-(Timestamp a, Duration d) { return Timestamp(a.us - d.us); }
43 +constexpr Duration operator*(Duration d, i64 k) { return Duration(d.us * k); }
44 +
45 +/// Bar interval (FinData exposes 1m, 5m, 30m, 1h, 1d).
46 +enum class Interval : std::uint8_t { m1, m5, m30, h1, d1 };
47 +constexpr Duration to_duration(Interval iv) {
48 + switch (iv) {
49 + case Interval::m1: return Duration::minutes(1);
50 + case Interval::m5: return Duration::minutes(5);
51 + case Interval::m30: return Duration::minutes(30);
52 + case Interval::h1: return Duration::hours(1);
53 + case Interval::d1: return Duration::days(1);
54 + }
55 + return Duration::minutes(1);
56 +}
57 +constexpr std::string_view to_string(Interval iv) {
58 + switch (iv) {
59 + case Interval::m1: return "1m"; case Interval::m5: return "5m"; case Interval::m30: return "30m";
60 + case Interval::h1: return "1h"; case Interval::d1: return "1d";
61 + }
62 + return "?";
63 +}
64 +Interval interval_from_string(std::string_view s);
65 +
66 +/// Civil date (proleptic Gregorian), stored as days since 1970-01-01.
67 +struct Date {
68 + i32 days{0};
69 + constexpr Date() = default;
70 + constexpr explicit Date(i32 d) : days(d) {}
71 + static constexpr Date from_ymd(int y, unsigned m, unsigned d) {
72 + // Howard Hinnant's days_from_civil
73 + y -= m <= 2;
74 + const int era = (y >= 0 ? y : y - 399) / 400;
75 + const unsigned yoe = static_cast<unsigned>(y - era * 400);
76 + const unsigned doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1;
77 + const unsigned doe = yoe * 365 + yoe / 4 - yoe / 100 + doy;
78 + return Date(era * 146097 + static_cast<int>(doe) - 719468);
79 + }
80 + struct YMD { int year; unsigned month; unsigned day; };
81 + constexpr YMD ymd() const {
82 + // Howard Hinnant's civil_from_days
83 + const i32 z = days + 719468;
84 + const i32 era = (z >= 0 ? z : z - 146096) / 146097;
85 + const unsigned doe = static_cast<unsigned>(z - era * 146097);
86 + const unsigned yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365;
87 + const int y = static_cast<int>(yoe) + era * 400;
88 + const unsigned doy = doe - (365 * yoe + yoe / 4 - yoe / 100);
89 + const unsigned mp = (5 * doy + 2) / 153;
90 + const unsigned d = doy - (153 * mp + 2) / 5 + 1;
91 + const unsigned m = mp + (mp < 10 ? 3 : -9);
92 + return {y + (m <= 2), m, d};
93 + }
94 + /// 0 = Sunday … 6 = Saturday
95 + constexpr int weekday() const { return static_cast<int>((days >= -4 ? (days + 4) % 7 : (days + 5) % 7 + 6)); }
96 + constexpr auto operator<=>(const Date&) const = default;
97 + constexpr Date operator+(int d) const { return Date(days + d); }
98 + constexpr Date operator-(int d) const { return Date(days - d); }
99 + std::string iso() const;
100 +};
101 +Date date_from_iso(std::string_view s); // "YYYY-MM-DD"
102 +std::string timestamp_iso(Timestamp t); // "YYYY-MM-DDTHH:MM:SS.ffffffZ"
103 +Timestamp timestamp_from_iso(std::string_view s);
104 +
105 +enum class Backend : std::uint8_t { automatic, cpu, metal };
106 +enum class Precision : std::uint8_t { fp64, fp32, mixed };
107 +constexpr std::string_view to_string(Backend b) {
108 + switch (b) { case Backend::automatic: return "auto"; case Backend::cpu: return "cpu"; case Backend::metal: return "metal"; }
109 + return "?";
110 +}
111 +constexpr std::string_view to_string(Precision p) {
112 + switch (p) { case Precision::fp64: return "fp64"; case Precision::fp32: return "fp32"; case Precision::mixed: return "mixed"; }
113 + return "?";
114 +}
115 +Backend backend_from_string(std::string_view s);
116 +
117 +/// Session policy for US equity bars.
118 +enum class SessionPolicy : std::uint8_t { regular, extended };
119 +
120 +} // namespace raid
added include/raid/estimators/ols.hpp +58 −0
@@ -0,0 +1,58 @@
1 +// OLS / WLS / ridge with stable linear algebra (Householder QR by default, SVD for rank-deficient designs).
2 +#pragma once
3 +#include <vector>
4 +#include <span>
5 +#include <optional>
6 +#include <Eigen/Dense>
7 +#include "raid/core/types.hpp"
8 +#include "raid/core/estimate.hpp"
9 +#include "raid/statistics/covariance.hpp"
10 +
11 +namespace raid::est {
12 +
13 +enum class Solver { qr, svd, normal_cholesky /* reference only: ill-conditioned designs will be flagged */ };
14 +
15 +struct OlsOptions {
16 + stats::CovOptions cov{};
17 + Solver solver{Solver::qr};
18 + f64 ridge_lambda{0.0}; // L2 penalty on all coefficients except those in `unpenalized` (e.g. the intercept)
19 + std::vector<usize> unpenalized{}; // column indices not penalised
20 + std::span<const f64> weights{}; // WLS weights w_i (variance ∝ 1/w_i); empty = OLS
21 + f64 rcond_warn{1e-10}; // warn when the design's reciprocal condition number is below this
22 + std::vector<std::string> names{};
23 +};
24 +
25 +struct OlsResult {
26 + Estimate estimate; // coefficients, inference, loss = RSS
27 + Eigen::VectorXd residuals;
28 + Eigen::VectorXd fitted;
29 + Eigen::MatrixXd xtx_inv; // (X'WX + λP)^{-1}
30 + f64 sigma2{0}; // RSS/(n−k)
31 + f64 r2{0}, r2_adj{0};
32 + Eigen::Index rank{0};
33 + f64 rcond{0};
34 + Eigen::VectorXd leverage; // h_ii
35 +};
36 +
37 +OlsResult ols(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& y, const OlsOptions& opt = {});
38 +
39 +/// Sufficient statistics of a (possibly partial) regression block: X'X, X'y, y'y, n. Batched/GPU accumulation
40 +/// produces these and the solve happens in FP64 on the CPU.
41 +struct SufficientStats {
42 + Eigen::MatrixXd xtx; Eigen::VectorXd xty; f64 yty{0}; usize n{0};
43 + void merge(const SufficientStats& o) { if (n == 0) { *this = o; return; } xtx += o.xtx; xty += o.xty; yty += o.yty; n += o.n; }
44 +};
45 +SufficientStats accumulate(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& y);
46 +/// Solve from sufficient statistics (Cholesky with symmetric pivoting fallback to eigen-decomposition); classical SE only.
47 +OlsResult ols_from_stats(const SufficientStats& s, const OlsOptions& opt = {});
48 +
49 +/// Rolling OLS: windows [i−w+1, i] for i ≥ w−1; returns k × n_windows coefficients (column j = window ending at index w−1+j).
50 +struct RollingOlsResult { Eigen::MatrixXd coefficients; std::vector<f64> rss; std::vector<Eigen::Index> ranks; usize window; };
51 +RollingOlsResult rolling_ols(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& y, usize window, usize step = 1);
52 +
53 +} // namespace raid::est
54 +
55 +namespace raid::est {
56 +/// Two-sided p-value of a t statistic (df ≤ 0 → standard normal). FP64, validated against scipy in tests/reference.
57 +f64 t_pvalue_two_sided(f64 t, f64 df);
58 +}
added include/raid/estimators/realized.hpp +54 −0
@@ -0,0 +1,54 @@
1 +// Realized measures from intraday returns (per session). Definitions (registry keys realized.*), with M intraday
2 +// returns r_1..r_M of one session:
3 +// RV = Σ r_j² (Andersen–Bollerslev–Diebold–Labys 2003)
4 +// BPV = μ₁⁻² · (M/(M−1)) · Σ_{j=2}^{M} |r_j||r_{j−1}|, μ₁ = √(2/π) (Barndorff-Nielsen & Shephard 2004; the finite-sample
5 +// factor M/(M−1) is optional: `bpv_finite_sample` — highfrequency::rBPCov applies it by default (makeReturns scaling))
6 +// RSV− = Σ r_j² 1{r_j<0}, RSV+ = Σ r_j² 1{r_j>0} (Barndorff-Nielsen–Kinnebrock–Shephard 2010)
7 +// RQ = (M/3) · Σ r_j⁴ (Barndorff-Nielsen & Shephard 2002; BPQ 2016 HARQ)
8 +// J = max(RV − BPV, 0), relative jump = J / RV (Andersen–Bollerslev–Diebold 2007 proxy, no test)
9 +// TriPV = μ_{4/3}⁻³ · (M/(M−2)) · Σ |r_j|^{4/3}|r_{j−1}|^{4/3}|r_{j−2}|^{4/3}, μ_{4/3} = 2^{2/3} Γ(7/6)/Γ(1/2)
10 +// BNS ratio test statistic (Tier C, Huang–Tauchen 2005 log version) is NOT implemented in Tier A.
11 +// Realized covariance: RCov_{ab} = Σ_j r_{a,j} r_{b,j} on synchronized grids (same session, same timestamps).
12 +#pragma once
13 +#include <span>
14 +#include <vector>
15 +#include <string>
16 +#include <Eigen/Dense>
17 +#include "raid/core/types.hpp"
18 +#include "raid/core/plan.hpp"
19 +#include "raid/data/returns.hpp"
20 +#include "raid/data/panel.hpp"
21 +#include "raid/backend/backend.hpp"
22 +
23 +namespace raid::est {
24 +
25 +struct RealizedOptions {
26 + bool bpv_finite_sample{true};
27 + bool annualize{false}; // multiply variances by `periods_per_year`
28 + f64 periods_per_year{252.0};
29 + ExecutionPlan plan{};
30 +};
31 +
32 +struct RealizedMeasures {
33 + std::vector<Date> sessions;
34 + std::vector<usize> n_returns; // M per session
35 + std::vector<f64> rv, bpv, rsv_neg, rsv_pos, rq, jump, tripv;
36 + std::vector<f64> daily_return; // Σ r_j (open-to-close log return when log returns are used)
37 + backend::KernelStats stats; // backend / precision / timing of the batched part
38 + std::vector<std::string> warnings;
39 +};
40 +
41 +/// Per-session realized measures for one instrument from intraday returns (data::IntradayReturns).
42 +RealizedMeasures realized_measures(const data::IntradayReturns& ir, const RealizedOptions& opt = {});
43 +/// Batched over a CSR batch of return segments (one segment = one session or one series), returns the same vectors.
44 +RealizedMeasures realized_measures_batch(const backend::Batch& b, const RealizedOptions& opt = {});
45 +
46 +/// Realized covariance / correlation of N aligned return series (T × N dense).
47 +struct RealizedCov { Eigen::MatrixXd cov; Eigen::MatrixXd corr; usize n_obs; };
48 +RealizedCov realized_covariance(const Eigen::Ref<const Eigen::MatrixXd>& R);
49 +
50 +/// Finite-sample constants exposed for tests and the paper appendix.
51 +constexpr f64 kMu1 = 0.7978845608028654; // √(2/π)
52 +f64 mu_p(f64 p); // E|Z|^p for Z ~ N(0,1)
53 +
54 +} // namespace raid::est
added include/raid/models/garch.hpp +64 −0
@@ -0,0 +1,64 @@
1 +// GARCH-family conditional variance recursions and (quasi-)log-likelihoods. FP64 reference; the Metal kernel
2 +// implements the same recursion in FP32 (documented tolerance). Definitions (registry key garch.*):
3 +// GARCH(1,1): σ²_t = ω + α ε²_{t−1} + β σ²_{t−1}
4 +// GJR-GARCH(1,1): σ²_t = ω + (α + γ 1{ε_{t−1}<0}) ε²_{t−1} + β σ²_{t−1}
5 +// EGARCH(1,1): ln σ²_t = ω + α (|z_{t−1}| − E|z|) + γ z_{t−1} + β ln σ²_{t−1}, z = ε/σ
6 +// ε_t = r_t − μ. Initialisation: σ²_0 = sample variance of ε (GARCH/GJR), ln σ²_0 = ln(sample variance) (EGARCH) —
7 +// the same convention as the `arch` package default ("backcast" is NOT used; see registry for the rugarch mapping).
8 +// Densities: Gaussian, or standardized Student-t with ν > 2 (unit variance), as in arch/rugarch.
9 +#pragma once
10 +#include <span>
11 +#include <vector>
12 +#include <string>
13 +#include "raid/core/types.hpp"
14 +#include "raid/core/estimate.hpp"
15 +#include "raid/core/plan.hpp"
16 +
17 +namespace raid::models {
18 +
19 +enum class GarchModel : int { garch = 0, gjr = 1, egarch = 2 };
20 +enum class GarchDist : int { gaussian = 0, student_t = 1 };
21 +std::string to_string(GarchModel m);
22 +std::string to_string(GarchDist d);
23 +
24 +/// Parameter layout θ (natural parameterisation): [μ, ω, α, (γ), β, (ν)] — γ only for gjr/egarch, ν only for student_t.
25 +usize garch_n_params(GarchModel m, GarchDist d);
26 +std::vector<std::string> garch_param_names(GarchModel m, GarchDist d);
27 +
28 +/// Conditional variance path σ²_t (t = 0..n−1) for returns r and parameters θ; writes to sigma2 (resized).
29 +/// Returns false (and leaves NaNs) if the recursion produced a non-positive or non-finite variance.
30 +bool garch_variance_path(std::span<const f64> r, std::span<const f64> theta, GarchModel m, GarchDist d, std::vector<f64>& sigma2);
31 +
32 +/// Negative average? NO: negative *total* log-likelihood Σ_t −log f(r_t | σ²_t). Returns +inf for invalid parameters
33 +/// (ω ≤ 0, α < 0, β < 0, α+β ≥ 1 for GARCH; α+β+γ/2 ≥ 1 for GJR; |β| ≥ 1 for EGARCH; ν ≤ 2).
34 +/// `nu_fixed`: if > 2 and the model is Gaussian-coded, a Student-t density with that ν is used (batched grids).
35 +f64 garch_nll(std::span<const f64> r, std::span<const f64> theta, GarchModel m, f64 nu_fixed = 0.0);
36 +f64 garch_nll(std::span<const f64> r, std::span<const f64> theta, GarchModel m, GarchDist d);
37 +
38 +/// Stationarity / positivity constraints check.
39 +bool garch_params_valid(std::span<const f64> theta, GarchModel m, GarchDist d);
40 +
41 +/// Unconstrained ↔ constrained transforms used by the optimiser (ω = exp, α,β via logistic simplex, ν = 2 + exp).
42 +std::vector<f64> garch_to_unconstrained(std::span<const f64> theta, GarchModel m, GarchDist d);
43 +std::vector<f64> garch_from_unconstrained(std::span<const f64> u, GarchModel m, GarchDist d);
44 +
45 +struct GarchFitOptions {
46 + GarchModel model{GarchModel::garch};
47 + GarchDist dist{GarchDist::gaussian};
48 + int max_iter{500};
49 + f64 tol{1e-8}; // relative change in NLL
50 + std::string cov{"qmle"}; // "qmle" (Bollerslev–Wooldridge sandwich) | "hessian" | "opg"
51 + int forecast_horizon{0}; // h ≥ 1 → multi-step variance forecasts in extra["forecast_variance"]
52 + bool scale_returns{true}; // internally scale returns to unit variance (as arch does, 'rescale')
53 + ExecutionPlan plan{};
54 +};
55 +
56 +/// Fit by (quasi-)maximum likelihood on the CPU (L-BFGS-style quasi-Newton on the unconstrained parameters with
57 +/// numerical gradients validated against finite differences in tests). Never reports a non-converged fit as ok().
58 +Estimate garch_fit(std::span<const f64> r, const GarchFitOptions& opt = {});
59 +/// Multi-step-ahead conditional variance forecasts from the last state (h = 1..H). For EGARCH, h > 1 uses simulation-free
60 +/// log-normal approximation only when `exact` is false; by default h > 1 forecasts for EGARCH are produced by
61 +/// Monte Carlo with the given seed (reported in extra). GARCH/GJR forecasts are analytical.
62 +std::vector<f64> garch_forecast(const Estimate& fit, std::span<const f64> r, int horizon, u64 seed = 20261102, int n_sim = 20000);
63 +
64 +} // namespace raid::models
added include/raid/statistics/covariance.hpp +32 −0
@@ -0,0 +1,32 @@
1 +// Robust covariance estimators for linear regression (CPU FP64 reference).
2 +// Conventions follow statsmodels 0.15 (HC0–HC3, HAC Bartlett/Newey–West with use_correction=False) and
3 +// Cameron–Gelbach–Miller one-way cluster with the Stata-style correction G/(G−1)·(N−1)/(N−K).
4 +#pragma once
5 +#include <vector>
6 +#include <span>
7 +#include <string>
8 +#include <Eigen/Dense>
9 +#include "raid/core/types.hpp"
10 +
11 +namespace raid::stats {
12 +
13 +enum class CovType { classical, hc0, hc1, hc2, hc3, hac_bartlett, cluster };
14 +std::string to_string(CovType c);
15 +CovType covtype_from_string(std::string_view s);
16 +
17 +struct CovOptions {
18 + CovType type{CovType::classical};
19 + int hac_lags{-1}; // −1 → floor(4 (n/100)^{2/9}) (Newey–West 1994 rule of thumb used by statsmodels users; documented)
20 + bool hac_small_sample{false}; // n/(n−k) factor (statsmodels use_correction)
21 + std::span<const i64> clusters{}; // cluster id per observation (CovType::cluster)
22 + bool cluster_small_sample{true}; // G/(G−1)·(N−1)/(N−K)
23 +};
24 +
25 +/// Covariance of OLS/WLS coefficients given X (n×k), residuals e (n), and (X'X)^{-1} computed stably by the caller.
26 +/// `leverage` (h_ii) is required for HC2/HC3 and may be empty otherwise.
27 +Eigen::MatrixXd robust_covariance(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& resid,
28 + const Eigen::Ref<const Eigen::MatrixXd>& xtx_inv, const CovOptions& opt,
29 + const Eigen::VectorXd& leverage = Eigen::VectorXd());
30 +int default_hac_lags(usize n);
31 +
32 +} // namespace raid::stats
added include/raid/statistics/reductions.hpp +84 −0
@@ -0,0 +1,84 @@
1 +// Numerically stable reductions (FP64 reference implementations).
2 +// sum_naive is provided only to *measure* error; library code uses sum_neumaier or sum_pairwise.
3 +#pragma once
4 +#include <span>
5 +#include <cmath>
6 +#include <vector>
7 +#include <algorithm>
8 +#include "raid/core/types.hpp"
9 +#include "raid/core/error.hpp"
10 +
11 +namespace raid::stats {
12 +
13 +template <class T>
14 +T sum_naive(std::span<const T> x) { T s = 0; for (T v : x) s += v; return s; }
15 +
16 +/// Neumaier's improved Kahan–Babuška summation.
17 +template <class T>
18 +T sum_neumaier(std::span<const T> x) {
19 + T s = 0, c = 0;
20 + for (T v : x) {
21 + const T t = s + v;
22 + if (std::abs(s) >= std::abs(v)) c += (s - t) + v; else c += (v - t) + s;
23 + s = t;
24 + }
25 + return s + c;
26 +}
27 +
28 +/// Pairwise (cascade) summation with a base-case block of 128; error O(log n) ulp.
29 +template <class T>
30 +T sum_pairwise(std::span<const T> x) {
31 + if (x.size() <= 128) { T s = 0; for (T v : x) s += v; return s; }
32 + const usize m = x.size() / 2;
33 + return sum_pairwise(x.subspan(0, m)) + sum_pairwise(x.subspan(m));
34 +}
35 +
36 +template <class T>
37 +T dot_neumaier(std::span<const T> a, std::span<const T> b) {
38 + RAID_REQUIRE(a.size() == b.size(), invalid_argument, "dot: size mismatch");
39 + T s = 0, c = 0;
40 + for (usize i = 0; i < a.size(); ++i) {
41 + const T v = a[i] * b[i], t = s + v;
42 + if (std::abs(s) >= std::abs(v)) c += (s - t) + v; else c += (v - t) + s;
43 + s = t;
44 + }
45 + return s + c;
46 +}
47 +
48 +template <class T>
49 +T sum_squares(std::span<const T> x) { return dot_neumaier(x, x); }
50 +
51 +template <class T>
52 +T mean(std::span<const T> x) { RAID_REQUIRE(!x.empty(), insufficient_samples, "mean of empty span"); return sum_neumaier(x) / static_cast<T>(x.size()); }
53 +
54 +/// Welford one-pass mean/variance (ddof = 1 by default).
55 +struct Welford {
56 + usize n{0}; f64 mean{0}; f64 m2{0};
57 + void add(f64 x) { ++n; const f64 d = x - mean; mean += d / static_cast<f64>(n); m2 += d * (x - mean); }
58 + f64 variance(int ddof = 1) const { return n > static_cast<usize>(ddof) ? m2 / static_cast<f64>(n - static_cast<usize>(ddof)) : std::numeric_limits<f64>::quiet_NaN(); }
59 + /// Chan–Golub–LeVeque parallel combine.
60 + void merge(const Welford& o) {
61 + if (o.n == 0) return; if (n == 0) { *this = o; return; }
62 + const f64 d = o.mean - mean; const usize nn = n + o.n;
63 + mean += d * static_cast<f64>(o.n) / static_cast<f64>(nn);
64 + m2 += o.m2 + d * d * static_cast<f64>(n) * static_cast<f64>(o.n) / static_cast<f64>(nn);
65 + n = nn;
66 + }
67 +};
68 +
69 +template <class T>
70 +T variance(std::span<const T> x, int ddof = 1) { Welford w; for (T v : x) w.add(static_cast<f64>(v)); return static_cast<T>(w.variance(ddof)); }
71 +
72 +struct Moments { usize n; f64 mean, variance, skewness, kurtosis /* excess */, min, max; };
73 +/// Two-pass moments; skewness/kurtosis use the biased (population) normalisation g1, g2 − 3 (as scipy with bias=True).
74 +Moments moments(std::span<const f64> x);
75 +
76 +/// Autocovariance at lag k with the 1/n normalisation (as statsmodels acovf(adjusted=False)).
77 +f64 autocovariance(std::span<const f64> x, usize k, bool demean = true);
78 +std::vector<f64> autocorrelation(std::span<const f64> x, usize max_lag);
79 +
80 +/// Maximum drawdown of a cumulative-return path (fractional, ≥ 0), and the indices of the peak and trough.
81 +struct Drawdown { f64 max_drawdown; usize peak_index; usize trough_index; };
82 +Drawdown max_drawdown(std::span<const f64> cumulative);
83 +
84 +} // namespace raid::stats
added include/raid/statistics/rolling.hpp +30 −0
@@ -0,0 +1,30 @@
1 +// Rolling / expanding window statistics (CPU FP64 reference).
2 +// Implementation detail: running sums use Neumaier compensation AND a periodic exact re-summation of the window
3 +// (every `resum_every` steps) so that drift cannot accumulate over 390 000-bar series.
4 +#pragma once
5 +#include <span>
6 +#include <vector>
7 +#include <limits>
8 +#include "raid/core/types.hpp"
9 +
10 +namespace raid::stats {
11 +
12 +constexpr f64 kNaN = std::numeric_limits<f64>::quiet_NaN();
13 +
14 +struct RollingOptions {
15 + usize window{22};
16 + usize min_periods{0}; // 0 = window (full windows only); otherwise partial windows allowed at the start
17 + usize resum_every{1024}; // exact re-summation cadence
18 +};
19 +
20 +std::vector<f64> rolling_sum(std::span<const f64> x, const RollingOptions& o);
21 +std::vector<f64> rolling_mean(std::span<const f64> x, const RollingOptions& o);
22 +std::vector<f64> rolling_variance(std::span<const f64> x, const RollingOptions& o, int ddof = 1);
23 +std::vector<f64> rolling_covariance(std::span<const f64> x, std::span<const f64> y, const RollingOptions& o, int ddof = 1);
24 +std::vector<f64> rolling_correlation(std::span<const f64> x, std::span<const f64> y, const RollingOptions& o);
25 +std::vector<f64> expanding_mean(std::span<const f64> x, usize min_periods = 1);
26 +std::vector<f64> expanding_variance(std::span<const f64> x, usize min_periods = 2, int ddof = 1);
27 +/// Causal lag (positive k) or lead (negative k); NaN where undefined.
28 +std::vector<f64> shift(std::span<const f64> x, long k);
29 +
30 +} // namespace raid::stats
added pyproject.toml +33 −0
@@ -0,0 +1,33 @@
1 +[build-system]
2 +requires = ["scikit-build-core>=0.10", "nanobind>=2.0"]
3 +build-backend = "scikit_build_core.build"
4 +
5 +[project]
6 +name = "raid-hf"
7 +version = "0.1.0"
8 +description = "RAID — Research Architecture for Intraday Data: Metal-accelerated C++20 high-frequency financial econometrics (UQO WP 40)"
9 +readme = "README.md"
10 +requires-python = ">=3.11"
11 +license = { text = "MIT (code). Market data: FirstRate Data private license, not redistributed." }
12 +authors = [{ name = "Simon-Pierre Boucher", email = "simon-pierre.boucher@uqo.ca" }]
13 +dependencies = ["numpy>=1.26", "pyarrow>=17", "httpx>=0.27"]
14 +
15 +[project.optional-dependencies]
16 +dev = ["pytest>=8", "hypothesis>=6", "ruff", "statsmodels>=0.14", "arch>=7", "scipy>=1.13", "polars>=1.0", "duckdb>=1.0", "pandas>=2.2", "exchange-calendars>=4.5", "matplotlib>=3.9", "pyyaml>=6"]
17 +
18 +[tool.scikit-build]
19 +cmake.version = ">=3.28"
20 +cmake.build-type = "Release"
21 +cmake.args = ["-DRAID_BUILD_PYTHON=ON", "-DRAID_BUILD_TESTS=OFF", "-DRAID_BUILD_BENCH=OFF", "-DRAID_BUILD_CLI=OFF", "-DRAID_NATIVE_ARCH=OFF", "-DCMAKE_PREFIX_PATH=/opt/homebrew"]
22 +wheel.packages = ["python/raid"]
23 +wheel.py-api = "cp312"
24 +sdist.exclude = ["datasets/cache", "experiments/results", "build", "paper/*.pdf"]
25 +
26 +[tool.pytest.ini_options]
27 +testpaths = ["python/tests"]
28 +addopts = "-q"
29 +markers = ["live: calls the live FinData API (skipped unless RAID_LIVE=1)"]
30 +
31 +[tool.ruff]
32 +line-length = 120
33 +target-version = "py312"
added python/raid/__init__.py +23 −0
@@ -0,0 +1,23 @@
1 +"""RAID — Research Architecture for Intraday Data (UQO Working Paper No. 40).
2 +
3 +Python layer: the compiled extension ``raid._core`` (nanobind) exposes the C++20 estimators and backends;
4 +``raid.findata`` is the FinData OS client (bars, exports, provenance); ``raid.api`` wraps the extension with
5 +NumPy/Arrow-friendly signatures and the ``backend="auto|cpu|metal"`` choice.
6 +"""
7 +from __future__ import annotations
8 +
9 +__version__ = "0.1.0"
10 +
11 +try: # the compiled core is optional at import time so that the pure-Python client can be used alone
12 + from . import _core # type: ignore
13 + HAS_CORE = True
14 +except ImportError: # pragma: no cover
15 + _core = None
16 + HAS_CORE = False
17 +
18 +from .api import ( # noqa: E402
19 + devices, ols, realized_measures, garch_fit, validate_bars, calendar_sessions, Backend, available_backends,
20 +)
21 +
22 +__all__ = ["__version__", "HAS_CORE", "devices", "ols", "realized_measures", "garch_fit", "validate_bars",
23 + "calendar_sessions", "Backend", "available_backends"]
added python/raid/api.py +78 −0
@@ -0,0 +1,78 @@
1 +"""NumPy-facing wrappers over the compiled core (``raid._core``). All heavy work releases the GIL in C++."""
2 +from __future__ import annotations
3 +
4 +import enum
5 +from typing import Any, Mapping, Sequence
6 +
7 +import numpy as np
8 +
9 +
10 +class Backend(str, enum.Enum):
11 + auto = "auto"
12 + cpu = "cpu"
13 + metal = "metal"
14 +
15 +
16 +def _core():
17 + from . import _core as c # noqa: WPS433
18 + if c is None:
19 + raise ImportError("raid._core is not built; install the wheel or build with -DRAID_BUILD_PYTHON=ON")
20 + return c
21 +
22 +
23 +def devices() -> list[dict[str, Any]]:
24 + """List the available compute devices (CPU always; Metal when built and present)."""
25 + return _core().devices()
26 +
27 +
28 +def available_backends() -> list[str]:
29 + return [d["kind"] for d in devices()]
30 +
31 +
32 +def _f64(x) -> np.ndarray:
33 + a = np.ascontiguousarray(x, dtype=np.float64)
34 + if not np.isfinite(a).all():
35 + raise ValueError("non-finite values in input (RAID never imputes silently)")
36 + return a
37 +
38 +
39 +def ols(X, y, cov: str = "classical", hac_lags: int = -1, clusters=None, ridge_lambda: float = 0.0,
40 + unpenalized: Sequence[int] = (), weights=None, names: Sequence[str] | None = None) -> dict[str, Any]:
41 + """OLS/WLS/ridge with classical, HC0–HC3, HAC (Bartlett) or one-way cluster covariance. Returns an Estimate dict."""
42 + X = _f64(X); y = _f64(y)
43 + if X.ndim != 2 or y.ndim != 1 or X.shape[0] != y.shape[0]:
44 + raise ValueError("X must be (n, k) and y (n,)")
45 + cl = None if clusters is None else np.ascontiguousarray(clusters, dtype=np.int64)
46 + w = None if weights is None else _f64(weights)
47 + return _core().ols(X, y, cov, int(hac_lags), cl, float(ridge_lambda), list(unpenalized), w, list(names or []))
48 +
49 +
50 +def realized_measures(returns, offsets, backend: str | Backend = Backend.auto, bpv_finite_sample: bool = True,
51 + deterministic: bool = True) -> dict[str, np.ndarray]:
52 + """Per-segment realized measures from concatenated intraday returns and CSR offsets (n_segments + 1)."""
53 + r = _f64(returns); off = np.ascontiguousarray(offsets, dtype=np.int64)
54 + return _core().realized_measures(r, off, str(Backend(backend).value), bool(bpv_finite_sample), bool(deterministic))
55 +
56 +
57 +def garch_fit(returns, model: str = "garch", dist: str = "gaussian", horizon: int = 0, cov: str = "qmle",
58 + max_iter: int = 500, tol: float = 1e-8) -> dict[str, Any]:
59 + """QML fit of GARCH(1,1) / GJR / EGARCH with Gaussian or Student-t errors (CPU FP64)."""
60 + return _core().garch_fit(_f64(returns), model, dist, int(horizon), cov, int(max_iter), float(tol))
61 +
62 +
63 +def validate_bars(timestamps_us, open_, high, low, close, volume, symbol: str = "", interval: str = "1m",
64 + session: str = "regular") -> dict[str, Any]:
65 + """Quality report of one bar series (timestamps = bar open, microseconds UTC)."""
66 + t = np.ascontiguousarray(timestamps_us, dtype=np.int64)
67 + return _core().validate_bars(t, _f64(open_), _f64(high), _f64(low), _f64(close), _f64(volume), symbol, interval, session)
68 +
69 +
70 +def calendar_sessions(start: str, end: str) -> list[str]:
71 + """XNYS trading sessions in [start, end] (ISO dates)."""
72 + return _core().calendar_sessions(start, end)
73 +
74 +
75 +def bars_to_intraday_returns(timestamps_us, close, kind: str = "log") -> dict[str, np.ndarray]:
76 + """Session-aware intraday log/arithmetic returns from (bar open timestamp, close) arrays; returns CSR layout."""
77 + t = np.ascontiguousarray(timestamps_us, dtype=np.int64)
78 + return _core().intraday_returns(t, _f64(close), kind)
added python/tests/test_api.py +60 −0
@@ -0,0 +1,60 @@
1 +"""pytest for the Python layer (requires the compiled core on sys.path: build with -DRAID_BUILD_PYTHON=ON)."""
2 +import os, sys
3 +import numpy as np
4 +import pytest
5 +
6 +sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
7 +raid = pytest.importorskip("raid")
8 +if not raid.HAS_CORE:
9 + pytest.skip("raid._core not built", allow_module_level=True)
10 +
11 +
12 +def test_devices_has_cpu():
13 + kinds = [d["kind"] for d in raid.devices()]
14 + assert "cpu" in kinds
15 +
16 +
17 +def test_ols_matches_statsmodels_hc3():
18 + sm = pytest.importorskip("statsmodels.api")
19 + rng = np.random.default_rng(3); X = np.column_stack([np.ones(400), rng.normal(size=400), rng.normal(size=400)]); y = X @ [1, 2, -1] + rng.normal(size=400) * (1 + X[:, 1] ** 2)
20 + e = raid.ols(X, y, cov="hc3"); f = sm.OLS(y, X).fit(cov_type="HC3")
21 + np.testing.assert_allclose(e["coefficients"], f.params, rtol=1e-10)
22 + np.testing.assert_allclose(e["inference"]["std_errors"], f.bse, rtol=1e-9)
23 + assert e["ok"] and e["backend"] == "cpu" and e["precision"] == "fp64"
24 +
25 +
26 +def test_ols_rejects_nan():
27 + with pytest.raises(ValueError):
28 + raid.ols(np.array([[1.0, np.nan]]), np.array([1.0]))
29 +
30 +
31 +def test_realized_measures_cpu_matches_numpy():
32 + rng = np.random.default_rng(5); r = rng.normal(0, 1e-3, size=390 * 10); off = np.arange(0, 3901, 390)
33 + m = raid.realized_measures(r, off, backend="cpu")
34 + for k in range(10):
35 + seg = r[off[k]:off[k + 1]]
36 + assert abs(m["rv"][k] - np.sum(seg ** 2)) <= 1e-15 * np.sum(seg ** 2) * 10
37 + assert abs(m["rsv_neg"][k] + m["rsv_pos"][k] - m["rv"][k]) <= 1e-18
38 + assert m["backend"] == "cpu"
39 +
40 +
41 +def test_garch_fit_converges_and_forecasts():
42 + rng = np.random.default_rng(9); n = 2500; r = np.empty(n); s2 = 1e-4; e = 0.0
43 + for t in range(n):
44 + s2 = 1e-6 + 0.08 * e * e + 0.9 * s2; e = np.sqrt(s2) * rng.standard_normal(); r[t] = e
45 + g = raid.garch_fit(r, model="garch", dist="gaussian", horizon=5)
46 + assert g["ok"] and g["convergence"]["converged"]
47 + assert abs(g["coefficients"][3] - 0.9) < 0.08 and len(g["extra"]["forecast_variance"]) == 5
48 +
49 +
50 +def test_calendar_sessions_thanksgiving_week():
51 + assert raid.calendar_sessions("2024-11-25", "2024-11-29") == ["2024-11-25", "2024-11-26", "2024-11-27", "2024-11-29"]
52 +
53 +
54 +def test_validate_bars_counts_missing():
55 + # one session, 391 regular minutes 2024-11-27 (09:30–16:00 ET = 14:30–21:00 UTC), drop 3 bars
56 + base = np.datetime64("2024-11-27T14:30:00").astype("datetime64[us]").astype(np.int64)
57 + t = base + np.arange(391) * 60_000_000; keep = np.ones(391, bool); keep[[10, 20, 30]] = False; t = t[keep]
58 + p = 100 + np.cumsum(np.random.default_rng(1).normal(0, 0.01, size=t.size))
59 + q = raid.validate_bars(t, p, p + 0.01, p - 0.01, p, np.full(t.size, 100.0))
60 + assert q["n_sessions"] == 1 and q["missing_regular_bars"] == 3 and not q["has_errors"]
added scripts/check_no_secrets.sh +9 −0
@@ -0,0 +1,9 @@
1 +#!/bin/bash
2 +# Fails if tracked files contain FinData keys, bearer tokens, vendor user ids or real-data parquet files.
3 +set -euo pipefail
4 +cd "$(dirname "$0")/.."
5 +bad=0
6 +if git ls-files -z | xargs -0 grep -nE "fd_[A-Za-z0-9]{6,}\.[A-Za-z0-9_-]{10,}|userid=[A-Za-z0-9]{8,}|Bearer [A-Za-z0-9._-]{20,}" 2>/dev/null; then bad=1; fi
7 +if git ls-files | grep -E "\.(parquet|arrow)$" | grep -vE "^datasets/(fixtures|synthetic)/"; then bad=1; fi
8 +if git ls-files | grep -E "api-key|\.env$"; then bad=1; fi
9 +[ $bad -eq 0 ] && echo "no secrets or vendor data tracked" || { echo "SECRET/DATA CHECK FAILED"; exit 1; }
added scripts/make_fixtures.py +90 −0
@@ -0,0 +1,90 @@
1 +#!/usr/bin/env python3
2 +"""Generates the synthetic 1-minute OHLCV fixtures used by CI (no vendor data) and the reference values
3 +(numpy/statsmodels/exchange_calendars/arch) consumed by tests/reference. Deterministic (seed 20261102).
4 +
5 +Fixture: 2 symbols × 5 sessions around Thanksgiving 2024 (2024-11-25 … 2024-11-29, incl. the early close on 11-29
6 +and the holiday 11-28), extended hours 04:00–19:59 ET with regular bars 09:30–16:00 inclusive; ~3 % of regular
7 +minutes randomly absent (zero-volume minutes are absent at the source); the 16:00 bar is present on every session.
8 +"""
9 +import json, math, os, sys
10 +import numpy as np
11 +import pandas as pd
12 +
13 +root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
14 +out_dir = os.path.join(root, "datasets", "fixtures"); os.makedirs(out_dir, exist_ok=True)
15 +rng = np.random.default_rng(20261102)
16 +sessions = ["2024-11-25", "2024-11-26", "2024-11-27", "2024-11-29", "2024-12-02"]
17 +early = {"2024-11-29"}
18 +rows = []
19 +truth = {}
20 +for sym, p0, vol in [("SYN1", 100.0, 0.0008), ("SYN2", 25.0, 0.0015)]:
21 + price = p0
22 + truth[sym] = {}
23 + for s in sessions:
24 + close_min = 13 * 60 if s in early else 16 * 60
25 + ext_end = 17 * 60 if s in early else 20 * 60
26 + minutes = list(range(4 * 60, ext_end))
27 + day = pd.Timestamp(s, tz="America/New_York")
28 + sess_rv = 0.0; n_reg = 0; closes = []
29 + for m in minutes:
30 + regular = 9 * 60 + 30 <= m <= close_min
31 + # drop ~3 % of regular minutes and ~40 % of extended minutes, but never the open/close prints
32 + if m not in (9 * 60 + 30, close_min):
33 + if regular and rng.random() < 0.03: continue
34 + if not regular and rng.random() < 0.40: continue
35 + r = rng.normal(0, vol * (1.0 if regular else 0.5))
36 + o = price; c = price * math.exp(r); h = max(o, c) * (1 + abs(rng.normal(0, 1e-4))); l = min(o, c) * (1 - abs(rng.normal(0, 1e-4)))
37 + v = float(rng.integers(100, 5000)) if regular else float(rng.integers(0, 300) + 1)
38 + ts = (day + pd.Timedelta(minutes=m)).tz_convert("UTC")
39 + rows.append((sym, ts.strftime("%Y-%m-%dT%H:%M:%SZ"), round(o, 4), round(h, 4), round(l, 4), round(c, 4), v))
40 + price = c
41 + if regular:
42 + closes.append(round(c, 4)); n_reg += 1 # truth from the rounded prices written to the CSV
43 + lr = np.diff(np.log(np.array(closes)))
44 + truth[sym][s] = {"n_regular_bars": n_reg, "rv": float(np.sum(lr ** 2)), "bpv": float((math.pi / 2) * (len(lr) / (len(lr) - 1)) * np.sum(np.abs(lr[1:]) * np.abs(lr[:-1]))),
45 + "rsv_neg": float(np.sum(lr[lr < 0] ** 2)), "rsv_pos": float(np.sum(lr[lr > 0] ** 2)), "rq": float(len(lr) / 3 * np.sum(lr ** 4)),
46 + "expected_bars": 211 if s in early else 391}
47 +df = pd.DataFrame(rows, columns=["symbol", "timestamp_utc", "open", "high", "low", "close", "volume"])
48 +df.to_csv(os.path.join(out_dir, "synthetic_bars_1m.csv"), index=False)
49 +json.dump(truth, open(os.path.join(out_dir, "synthetic_bars_1m.expected.json"), "w"), indent=1)
50 +print("wrote", len(df), "bars for", df.symbol.nunique(), "symbols;", df.groupby("symbol").size().to_dict())
51 +
52 +# --- reference values from established software -------------------------------------------------------------
53 +ref = {}
54 +try:
55 + import exchange_calendars as xc
56 + cal = xc.get_calendar("XNYS", start="2000-01-01", end="2026-12-31")
57 + sess = cal.sessions_in_range("2000-01-01", "2026-12-31")
58 + ref["xnys"] = {"n_sessions_2000_2026": int(len(sess)), "sessions_2024": [str(d.date()) for d in cal.sessions_in_range("2024-01-01", "2024-12-31")],
59 + "early_closes_2000_2026": [str(d.date()) for d in cal.early_closes.sessions_in_range("2000-01-01", "2026-12-31")] if hasattr(cal, "early_closes") else None,
60 + "holidays_2000_2026": [str(d.date()) for d in pd.bdate_range("2000-01-01", "2026-12-31") if d not in sess],
61 + "exchange_calendars_version": xc.__version__}
62 +except Exception as e:
63 + ref["xnys"] = {"error": str(e)}
64 +import statsmodels.api as sm
65 +from scipy import stats as sps
66 +X = np.column_stack([np.ones(500), rng.normal(size=500), rng.normal(size=500) * 2 + 1]); y = 0.5 + 1.5 * X[:, 1] - 0.7 * X[:, 2] + rng.normal(size=500) * (1 + 0.5 * np.abs(X[:, 1]))
67 +ols = sm.OLS(y, X).fit(); hc0 = sm.OLS(y, X).fit(cov_type="HC0"); hc3 = sm.OLS(y, X).fit(cov_type="HC3"); hac = sm.OLS(y, X).fit(cov_type="HAC", cov_kwds={"maxlags": 5, "use_correction": False})
68 +groups = np.arange(500) // 25; cl = sm.OLS(y, X).fit(cov_type="cluster", cov_kwds={"groups": groups})
69 +np.savetxt(os.path.join(out_dir, "ols_design.csv"), np.column_stack([y, X[:, 1], X[:, 2]]), delimiter=",", header="y,x1,x2", comments="", fmt="%.17g")
70 +ref["ols"] = {"params": ols.params.tolist(), "bse": ols.bse.tolist(), "pvalues": ols.pvalues.tolist(), "rsquared": float(ols.rsquared), "ssr": float(ols.ssr),
71 + "hc0_bse": hc0.bse.tolist(), "hc3_bse": hc3.bse.tolist(), "hac5_bse": hac.bse.tolist(), "cluster_bse": cl.bse.tolist(), "statsmodels_version": sm.__version__,
72 + "t_pvalues": {"1.96_inf": float(2 * sps.norm.sf(1.96)), "2.0_10": float(2 * sps.t.sf(2.0, 10)), "-3.0_30": float(2 * sps.t.sf(3.0, 30))}}
73 +try:
74 + from arch import arch_model
75 + import arch
76 + s2 = 0.04 / (1 - 0.05 - 0.9); e = 0.0; r = np.empty(3000); g = np.random.default_rng(7)
77 + for t in range(3000):
78 + s2 = 0.04 + 0.05 * e * e + 0.9 * s2; e = math.sqrt(s2) * g.standard_normal(); r[t] = 0.01 + e
79 + np.savetxt(os.path.join(out_dir, "garch_returns.csv"), r, header="r", comments="", fmt="%.17g")
80 + out = {"arch_version": arch.__version__}
81 + for name, kw in [("garch", dict(vol="GARCH", p=1, q=1)), ("gjr", dict(vol="GARCH", p=1, o=1, q=1)), ("egarch", dict(vol="EGARCH", p=1, o=1, q=1))]:
82 + for dist in ["normal", "t"]:
83 + am = arch_model(r, mean="Constant", dist=dist, rescale=False, **kw); res = am.fit(disp="off")
84 + out[f"{name}.{dist}"] = {"params": {k: float(v) for k, v in res.params.items()}, "std_err": {k: float(v) for k, v in res.std_err.items()}, "loglik": float(res.loglikelihood),
85 + "converged": bool(res.convergence_flag == 0), "forecast_h5": res.forecast(horizon=5, reindex=False).variance.values[-1].tolist() if name != "egarch" else res.forecast(horizon=5, method="simulation", simulations=20000, reindex=False).variance.values[-1].tolist()}
86 + ref["garch"] = out
87 +except Exception as e:
88 + ref["garch"] = {"error": repr(e)}
89 +json.dump(ref, open(os.path.join(out_dir, "reference_values.json"), "w"), indent=1)
90 +print("reference values written:", list(ref.keys()))
added scripts/record_environment.sh +28 −0
@@ -0,0 +1,28 @@
1 +#!/bin/bash
2 +# Records the build/benchmark environment into experiments/manifests/environment_<host>.json (no secrets).
3 +set -euo pipefail
4 +OUT="${1:-$(dirname "$0")/../experiments/manifests/environment_$(hostname -s).json}"
5 +mkdir -p "$(dirname "$OUT")"
6 +python3 -I - "$OUT" <<'PY'
7 +import json, subprocess, sys, platform, datetime, os
8 +def sh(c):
9 + try: return subprocess.run(c, shell=True, capture_output=True, text=True, timeout=60).stdout.strip()
10 + except Exception as e: return f"ERR {e}"
11 +env = {
12 + "recorded_at": datetime.datetime.now(datetime.timezone.utc).isoformat(),
13 + "host": platform.node(), "os": sh("sw_vers -productVersion 2>/dev/null || uname -r"), "build": sh("sw_vers -buildVersion 2>/dev/null"),
14 + "chip": sh("sysctl -n machdep.cpu.brand_string 2>/dev/null || grep -m1 'model name' /proc/cpuinfo"),
15 + "ncpu": sh("sysctl -n hw.ncpu 2>/dev/null || nproc"), "perf_cores": sh("sysctl -n hw.perflevel0.physicalcpu 2>/dev/null"), "eff_cores": sh("sysctl -n hw.perflevel1.physicalcpu 2>/dev/null"),
16 + "mem_bytes": sh("sysctl -n hw.memsize 2>/dev/null || grep MemTotal /proc/meminfo"),
17 + "gpu": sh("system_profiler SPDisplaysDataType 2>/dev/null | grep -E 'Chipset Model|Total Number of Cores|Metal' | sed 's/^ *//' | tr '\n' ';'"),
18 + "xcode": sh("xcodebuild -version 2>/dev/null | tr '\n' ' '"), "clang": sh("clang --version | head -1"), "sdk": sh("xcrun -sdk macosx --show-sdk-version 2>/dev/null"),
19 + "metal_toolchain": sh("xcrun -sdk macosx metal --version 2>/dev/null | head -1"),
20 + "cmake": sh("cmake --version | head -1"), "ninja": sh("ninja --version 2>/dev/null"),
21 + "brew": {p: sh(f"brew list --versions {p} 2>/dev/null") for p in ["eigen","apache-arrow","catch2","nlohmann-json","openblas","libomp"]},
22 + "python": sh("python3 --version"), "r": sh("R --version 2>/dev/null | head -1"),
23 + "load_avg": sh("sysctl -n vm.loadavg 2>/dev/null || cat /proc/loadavg"), "thermal": sh("pmset -g therm 2>/dev/null | tr '\n' ';'"),
24 + "power_source": sh("pmset -g batt 2>/dev/null | head -1"), "uptime": sh("uptime"),
25 + "git_commit": sh("git rev-parse --short HEAD 2>/dev/null"),
26 +}
27 +json.dump(env, open(sys.argv[1], "w"), indent=1); print("wrote", sys.argv[1])
28 +PY
added src/core/estimate.cpp +40 −0
@@ -0,0 +1,40 @@
1 +#include "raid/core/estimate.hpp"
2 +#include "raid/core/plan.hpp"
3 +
4 +namespace raid {
5 +
6 +nlohmann::json Provenance::to_json() const {
7 + return {{"dataset_id", dataset_id}, {"dataset_version", dataset_version}, {"request_ids", request_ids},
8 + {"input_hashes", input_hashes}, {"code_version", code_version}, {"source", source}, {"extra", extra}};
9 +}
10 +nlohmann::json Convergence::to_json() const {
11 + return {{"converged", converged}, {"iterations", iterations}, {"function_evaluations", function_evaluations},
12 + {"gradient_norm", gradient_norm}, {"status_code", status_code}, {"message", message}};
13 +}
14 +nlohmann::json InferenceResult::to_json() const {
15 + std::vector<std::vector<f64>> cov(static_cast<usize>(covariance.rows()));
16 + for (Eigen::Index i = 0; i < covariance.rows(); ++i) { cov[static_cast<usize>(i)].resize(static_cast<usize>(covariance.cols())); for (Eigen::Index j = 0; j < covariance.cols(); ++j) cov[static_cast<usize>(i)][static_cast<usize>(j)] = covariance(i, j); }
17 + return {{"std_errors", std_errors}, {"t_stats", t_stats}, {"p_values", p_values}, {"covariance", cov},
18 + {"covariance_type", covariance_type}, {"small_sample_correction", small_sample_correction}};
19 +}
20 +nlohmann::json Estimate::to_json() const {
21 + nlohmann::json j = {{"model", model}, {"names", names}, {"coefficients", coefficients}, {"loss", loss},
22 + {"convergence", convergence.to_json()}, {"warnings", warnings}, {"runtime_seconds", runtime_seconds},
23 + {"backend", std::string(to_string(backend))}, {"precision", std::string(to_string(precision))},
24 + {"provenance", provenance.to_json()}, {"n_obs", n_obs}, {"extra", extra}, {"ok", ok()}};
25 + if (inference) j["inference"] = inference->to_json();
26 + return j;
27 +}
28 +nlohmann::json Device::to_json() const {
29 + return {{"name", name}, {"kind", std::string(to_string(kind))}, {"memory_bytes", memory_bytes}, {"compute_units", compute_units},
30 + {"unified_memory", unified_memory}, {"supports_fp64", supports_fp64}, {"max_buffer_bytes", max_buffer_bytes}, {"details", details}};
31 +}
32 +nlohmann::json PrecisionPolicy::to_json() const {
33 + return {{"requested", std::string(to_string(requested))}, {"fp32_chunk_max", fp32_chunk_max}, {"compensated", compensated}, {"validate_rtol", validate_rtol}};
34 +}
35 +nlohmann::json ExecutionPlan::to_json() const {
36 + return {{"backend", std::string(to_string(backend))}, {"precision", precision.to_json()}, {"deterministic", deterministic},
37 + {"threads", threads}, {"chunk_rows", chunk_rows}, {"max_memory_bytes", max_memory_bytes}, {"allow_fallback", allow_fallback}, {"seed", seed}};
38 +}
39 +
40 +} // namespace raid
added src/core/hash.cpp +66 −0
@@ -0,0 +1,66 @@
1 +#include "raid/core/hash.hpp"
2 +#include "raid/core/error.hpp"
3 +#include <cstring>
4 +#include <fstream>
5 +#include <vector>
6 +
7 +namespace raid {
8 +
9 +namespace {
10 +constexpr std::uint32_t K[64] = {
11 + 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,
12 + 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,
13 + 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,
14 + 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2};
15 +inline std::uint32_t rotr(std::uint32_t x, int n) { return (x >> n) | (x << (32 - n)); }
16 +}
17 +
18 +Sha256::Sha256() : h_{0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19} {}
19 +
20 +void Sha256::transform(const std::uint8_t* p) {
21 + std::uint32_t w[64];
22 + for (int i = 0; i < 16; ++i) w[i] = (std::uint32_t(p[4*i]) << 24) | (std::uint32_t(p[4*i+1]) << 16) | (std::uint32_t(p[4*i+2]) << 8) | p[4*i+3];
23 + for (int i = 16; i < 64; ++i) { const std::uint32_t s0 = rotr(w[i-15],7) ^ rotr(w[i-15],18) ^ (w[i-15] >> 3), s1 = rotr(w[i-2],17) ^ rotr(w[i-2],19) ^ (w[i-2] >> 10); w[i] = w[i-16] + s0 + w[i-7] + s1; }
24 + std::uint32_t a=h_[0],b=h_[1],c=h_[2],d=h_[3],e=h_[4],f=h_[5],g=h_[6],h=h_[7];
25 + for (int i = 0; i < 64; ++i) {
26 + const std::uint32_t S1 = rotr(e,6) ^ rotr(e,11) ^ rotr(e,25), ch = (e & f) ^ (~e & g), t1 = h + S1 + ch + K[i] + w[i];
27 + const std::uint32_t S0 = rotr(a,2) ^ rotr(a,13) ^ rotr(a,22), maj = (a & b) ^ (a & c) ^ (b & c), t2 = S0 + maj;
28 + h = g; g = f; f = e; e = d + t1; d = c; c = b; b = a; a = t1 + t2;
29 + }
30 + h_[0]+=a; h_[1]+=b; h_[2]+=c; h_[3]+=d; h_[4]+=e; h_[5]+=f; h_[6]+=g; h_[7]+=h;
31 +}
32 +
33 +void Sha256::update(const void* data, std::size_t len) {
34 + const auto* p = static_cast<const std::uint8_t*>(data); total_ += len;
35 + while (len > 0) {
36 + const std::size_t take = std::min(len, 64 - buf_len_);
37 + std::memcpy(buf_.data() + buf_len_, p, take); buf_len_ += take; p += take; len -= take;
38 + if (buf_len_ == 64) { transform(buf_.data()); buf_len_ = 0; }
39 + }
40 +}
41 +
42 +std::array<std::uint8_t, 32> Sha256::digest() {
43 + const std::uint64_t bits = total_ * 8;
44 + std::uint8_t pad = 0x80; update(&pad, 1);
45 + const std::uint8_t zero = 0; while (buf_len_ != 56) update(&zero, 1);
46 + std::uint8_t len[8]; for (int i = 0; i < 8; ++i) len[i] = static_cast<std::uint8_t>(bits >> (56 - 8 * i));
47 + update(len, 8);
48 + std::array<std::uint8_t, 32> out{};
49 + for (int i = 0; i < 8; ++i) { out[4*i] = static_cast<std::uint8_t>(h_[i] >> 24); out[4*i+1] = static_cast<std::uint8_t>(h_[i] >> 16); out[4*i+2] = static_cast<std::uint8_t>(h_[i] >> 8); out[4*i+3] = static_cast<std::uint8_t>(h_[i]); }
50 + return out;
51 +}
52 +
53 +std::string Sha256::hex() {
54 + const auto d = digest(); static const char* hx = "0123456789abcdef"; std::string s; s.reserve(64);
55 + for (auto b : d) { s += hx[b >> 4]; s += hx[b & 15]; }
56 + return s;
57 +}
58 +
59 +std::string Sha256::of_file(const std::string& path) {
60 + std::ifstream f(path, std::ios::binary); RAID_REQUIRE(f.good(), io, "cannot open " + path);
61 + Sha256 h; std::vector<char> buf(1 << 20);
62 + while (f) { f.read(buf.data(), static_cast<std::streamsize>(buf.size())); h.update(buf.data(), static_cast<std::size_t>(f.gcount())); }
63 + return h.hex();
64 +}
65 +
66 +} // namespace raid
added src/core/log.cpp +35 −0
@@ -0,0 +1,35 @@
1 +#include "raid/core/log.hpp"
2 +#include <cstdio>
3 +#include <regex>
4 +#include <atomic>
5 +
6 +namespace raid::log {
7 +
8 +namespace {
9 +std::atomic<int> g_level{static_cast<int>(Level::info)};
10 +std::mutex g_mutex;
11 +Sink g_sink;
12 +const char* name(Level l) {
13 + switch (l) { case Level::trace: return "TRACE"; case Level::debug: return "DEBUG"; case Level::info: return "INFO"; case Level::warn: return "WARN"; case Level::error: return "ERROR"; default: return "OFF"; }
14 +}
15 +} // namespace
16 +
17 +void set_level(Level l) { g_level.store(static_cast<int>(l)); }
18 +Level level() { return static_cast<Level>(g_level.load()); }
19 +void set_sink(Sink s) { std::lock_guard<std::mutex> lk(g_mutex); g_sink = std::move(s); }
20 +
21 +std::string redact(std::string_view s) {
22 + static const std::regex re(R"((Bearer\s+)[A-Za-z0-9._\-]+|fd_[A-Za-z0-9]+\.[A-Za-z0-9_\-]+|(api[_-]?key=)[^&\s]+|(userid=)[^&\s]+)", std::regex::icase);
23 + return std::regex_replace(std::string(s), re, "$1$2$3<redacted>");
24 +}
25 +
26 +void emit(Level l, std::string_view msg, Fields fields) {
27 + if (static_cast<int>(l) < g_level.load()) return;
28 + std::lock_guard<std::mutex> lk(g_mutex);
29 + if (g_sink) { g_sink(l, msg, fields); return; }
30 + std::string line = std::string(name(l)) + " " + redact(msg);
31 + for (auto& [k, v] : fields) line += " " + k + "=" + redact(v);
32 + std::fprintf(stderr, "%s\n", line.c_str());
33 +}
34 +
35 +} // namespace raid::log
added src/core/manifest.cpp +76 −0
@@ -0,0 +1,76 @@
1 +#include "raid/core/manifest.hpp"
2 +#include "raid/core/error.hpp"
3 +#include <fstream>
4 +#include <chrono>
5 +#include <thread>
6 +#include <sys/resource.h>
7 +#ifdef __APPLE__
8 +#include <sys/sysctl.h>
9 +#include <sys/types.h>
10 +#endif
11 +#include <unistd.h>
12 +#include <cstdio>
13 +
14 +namespace raid {
15 +
16 +namespace {
17 +#ifdef __APPLE__
18 +std::string sysctl_str(const char* name) { char buf[256]; size_t n = sizeof buf; if (sysctlbyname(name, buf, &n, nullptr, 0) == 0) return std::string(buf, n > 0 ? n - 1 : 0); return ""; }
19 +i64 sysctl_i64(const char* name) { i64 v = 0; size_t n = sizeof v; if (sysctlbyname(name, &v, &n, nullptr, 0) == 0) return v; return -1; }
20 +#endif
21 +std::string shell(const char* cmd) {
22 + std::string out; if (FILE* p = popen(cmd, "r")) { char b[512]; while (fgets(b, sizeof b, p)) out += b; pclose(p); }
23 + while (!out.empty() && (out.back() == '\n' || out.back() == ' ')) out.pop_back();
24 + return out;
25 +}
26 +} // namespace
27 +
28 +std::string now_utc_iso() {
29 + const auto now = std::chrono::system_clock::now();
30 + return timestamp_iso(Timestamp(std::chrono::duration_cast<std::chrono::microseconds>(now.time_since_epoch()).count()));
31 +}
32 +
33 +u64 peak_rss_bytes() { struct rusage ru{}; getrusage(RUSAGE_SELF, &ru);
34 +#ifdef __APPLE__
35 + return static_cast<u64>(ru.ru_maxrss);
36 +#else
37 + return static_cast<u64>(ru.ru_maxrss) * 1024;
38 +#endif
39 +}
40 +
41 +nlohmann::json host_info() {
42 + nlohmann::json j;
43 + char host[256]; gethostname(host, sizeof host); j["hostname"] = host;
44 + j["hardware_threads"] = std::thread::hardware_concurrency();
45 +#ifdef __APPLE__
46 + j["chip"] = sysctl_str("machdep.cpu.brand_string"); j["ncpu"] = sysctl_i64("hw.ncpu"); j["perf_cores"] = sysctl_i64("hw.perflevel0.physicalcpu");
47 + j["eff_cores"] = sysctl_i64("hw.perflevel1.physicalcpu"); j["mem_bytes"] = sysctl_i64("hw.memsize"); j["os_version"] = sysctl_str("kern.osproductversion");
48 + j["os_build"] = sysctl_str("kern.osversion"); j["model"] = sysctl_str("hw.model");
49 + j["thermal"] = shell("pmset -g therm 2>/dev/null | tr '\\n' ';'"); j["power"] = shell("pmset -g batt 2>/dev/null | head -1");
50 + j["load_avg"] = shell("sysctl -n vm.loadavg");
51 +#else
52 + j["os"] = shell("uname -sr"); j["chip"] = shell("grep -m1 'model name' /proc/cpuinfo | cut -d: -f2"); j["load_avg"] = shell("cat /proc/loadavg");
53 +#endif
54 +#if defined(__clang__)
55 + j["compiler"] = std::string("clang ") + __clang_version__;
56 +#elif defined(__GNUC__)
57 + j["compiler"] = std::string("gcc ") + __VERSION__;
58 +#endif
59 + j["raid_version"] = RAID_VERSION;
60 +#ifdef RAID_WITH_ACCELERATE
61 + j["blas"] = "Apple Accelerate";
62 +#else
63 + j["blas"] = "Eigen built-in";
64 +#endif
65 + return j;
66 +}
67 +
68 +nlohmann::json ExperimentManifest::to_json() const {
69 + return {{"experiment", experiment}, {"created_at_utc", created_at_utc}, {"raid_version", raid_version}, {"git_commit", git_commit},
70 + {"host", host}, {"plan", plan}, {"seed", seed}, {"inputs", inputs}, {"parameters", parameters}, {"records", records}};
71 +}
72 +void ExperimentManifest::save(const std::string& path) const {
73 + std::ofstream f(path); RAID_REQUIRE(f.good(), io, "cannot write " + path); f << to_json().dump(1) << "\n";
74 +}
75 +
76 +} // namespace raid
added src/core/thread_pool.cpp +68 −0
@@ -0,0 +1,68 @@
1 +#include "raid/core/thread_pool.hpp"
2 +#include <cstdlib>
3 +#include <algorithm>
4 +#include <memory>
5 +
6 +namespace raid {
7 +
8 +ThreadPool::ThreadPool(unsigned n) {
9 + if (n == 0) {
10 + if (const char* e = std::getenv("RAID_THREADS")) n = static_cast<unsigned>(std::max(1, std::atoi(e)));
11 + else n = std::max(1u, std::thread::hardware_concurrency());
12 + }
13 + for (unsigned i = 0; i < n; ++i) workers_.emplace_back([this] { worker(); });
14 +}
15 +
16 +ThreadPool::~ThreadPool() {
17 + { std::lock_guard<std::mutex> lk(m_); stop_ = true; }
18 + cv_.notify_all();
19 + for (auto& t : workers_) t.join();
20 +}
21 +
22 +void ThreadPool::worker() {
23 + for (;;) {
24 + std::function<void()> job;
25 + { std::unique_lock<std::mutex> lk(m_); cv_.wait(lk, [this] { return stop_ || !queue_.empty(); });
26 + if (stop_ && queue_.empty()) return;
27 + job = std::move(queue_.front()); queue_.pop_front(); }
28 + job();
29 + }
30 +}
31 +
32 +void ThreadPool::parallel_for(usize n, const std::function<void(usize, usize)>& fn, usize grain) {
33 + if (n == 0) return;
34 + const unsigned nt = size();
35 + if (nt <= 1 || n == 1) { fn(0, n); return; }
36 + if (grain == 0) grain = std::max<usize>(1, (n + nt * 4 - 1) / (nt * 4));
37 + const usize chunks = (n + grain - 1) / grain;
38 + // Shared completion state: jobs may outlive this frame's locals by a few instructions, so the state lives on the heap
39 + // and is released by the last reference (job or caller).
40 + struct Done { std::mutex m; std::condition_variable cv; usize remaining; std::exception_ptr first_error; };
41 + auto done = std::make_shared<Done>(); done->remaining = chunks;
42 + for (usize c = 0; c < chunks; ++c) {
43 + const usize b = c * grain, e = std::min(n, b + grain);
44 + std::function<void()> job = [&fn, done, b, e] {
45 + std::exception_ptr err;
46 + try { fn(b, e); } catch (...) { err = std::current_exception(); }
47 + std::lock_guard<std::mutex> lk(done->m);
48 + if (err && !done->first_error) done->first_error = err;
49 + if (--done->remaining == 0) done->cv.notify_all();
50 + };
51 + { std::lock_guard<std::mutex> lk(m_); queue_.push_back(std::move(job)); }
52 + cv_.notify_one();
53 + }
54 + // Help from the calling thread as well, then wait.
55 + for (;;) {
56 + std::function<void()> job;
57 + { std::lock_guard<std::mutex> lk(m_); if (!queue_.empty()) { job = std::move(queue_.front()); queue_.pop_front(); } }
58 + if (!job) break;
59 + job();
60 + }
61 + std::exception_ptr first_error;
62 + { std::unique_lock<std::mutex> lk(done->m); done->cv.wait(lk, [&] { return done->remaining == 0; }); first_error = done->first_error; }
63 + if (first_error) std::rethrow_exception(first_error);
64 +}
65 +
66 +ThreadPool& ThreadPool::global() { static ThreadPool pool; return pool; }
67 +
68 +} // namespace raid
added src/core/types.cpp +85 −0
@@ -0,0 +1,85 @@
1 +#include "raid/core/types.hpp"
2 +#include "raid/core/error.hpp"
3 +#include <charconv>
4 +#include <cstdio>
5 +
6 +namespace raid {
7 +
8 +Interval interval_from_string(std::string_view s) {
9 + if (s == "1m") return Interval::m1;
10 + if (s == "5m") return Interval::m5;
11 + if (s == "30m") return Interval::m30;
12 + if (s == "1h") return Interval::h1;
13 + if (s == "1d") return Interval::d1;
14 + throw RaidError(ErrorCode::invalid_argument, "unknown interval '" + std::string(s) + "'");
15 +}
16 +
17 +Backend backend_from_string(std::string_view s) {
18 + if (s == "auto") return Backend::automatic;
19 + if (s == "cpu") return Backend::cpu;
20 + if (s == "metal") return Backend::metal;
21 + throw RaidError(ErrorCode::invalid_argument, "unknown backend '" + std::string(s) + "' (auto|cpu|metal)");
22 +}
23 +
24 +std::string Date::iso() const {
25 + const auto [y, m, d] = ymd();
26 + char buf[16];
27 + std::snprintf(buf, sizeof buf, "%04d-%02u-%02u", y, m, d);
28 + return buf;
29 +}
30 +
31 +static int parse_int(std::string_view s, usize pos, usize len) {
32 + int v = 0;
33 + const auto r = std::from_chars(s.data() + pos, s.data() + pos + len, v);
34 + if (r.ec != std::errc{} || r.ptr != s.data() + pos + len) throw RaidError(ErrorCode::invalid_argument, "bad number in '" + std::string(s) + "'");
35 + return v;
36 +}
37 +
38 +Date date_from_iso(std::string_view s) {
39 + RAID_REQUIRE(s.size() >= 10 && s[4] == '-' && s[7] == '-', invalid_argument, "date must be YYYY-MM-DD: " + std::string(s));
40 + const int y = parse_int(s, 0, 4);
41 + const unsigned m = static_cast<unsigned>(parse_int(s, 5, 2)), d = static_cast<unsigned>(parse_int(s, 8, 2));
42 + RAID_REQUIRE(m >= 1 && m <= 12 && d >= 1 && d <= 31, invalid_argument, "bad date: " + std::string(s));
43 + return Date::from_ymd(y, m, d);
44 +}
45 +
46 +std::string timestamp_iso(Timestamp t) {
47 + i64 s = t.us / 1'000'000, frac = t.us % 1'000'000;
48 + if (frac < 0) { frac += 1'000'000; s -= 1; }
49 + i64 days = s / 86400, rem = s % 86400;
50 + if (rem < 0) { rem += 86400; days -= 1; }
51 + const auto [y, m, d] = Date(static_cast<i32>(days)).ymd();
52 + char buf[40];
53 + std::snprintf(buf, sizeof buf, "%04d-%02u-%02uT%02lld:%02lld:%02lld.%06lldZ", y, m, d,
54 + static_cast<long long>(rem / 3600), static_cast<long long>((rem % 3600) / 60), static_cast<long long>(rem % 60), static_cast<long long>(frac));
55 + return buf;
56 +}
57 +
58 +Timestamp timestamp_from_iso(std::string_view s) {
59 + // Accepts YYYY-MM-DD, YYYY-MM-DDTHH:MM[:SS[.ffffff]][Z|+00:00]
60 + const Date d = date_from_iso(s);
61 + i64 us = static_cast<i64>(d.days) * 86'400'000'000LL;
62 + if (s.size() <= 10) return Timestamp(us);
63 + RAID_REQUIRE(s[10] == 'T' || s[10] == ' ', invalid_argument, "bad timestamp: " + std::string(s));
64 + RAID_REQUIRE(s.size() >= 16, invalid_argument, "bad timestamp: " + std::string(s));
65 + us += static_cast<i64>(parse_int(s, 11, 2)) * 3'600'000'000LL + static_cast<i64>(parse_int(s, 14, 2)) * 60'000'000LL;
66 + usize pos = 16;
67 + if (pos < s.size() && s[pos] == ':') { us += static_cast<i64>(parse_int(s, 17, 2)) * 1'000'000LL; pos = 19; }
68 + if (pos < s.size() && s[pos] == '.') {
69 + usize e = pos + 1; while (e < s.size() && s[e] >= '0' && s[e] <= '9') ++e;
70 + std::string frac(s.substr(pos + 1, e - pos - 1)); while (frac.size() < 6) frac += '0'; frac.resize(6);
71 + us += parse_int(frac, 0, 6); pos = e;
72 + }
73 + if (pos < s.size()) {
74 + if (s[pos] == 'Z') pos++;
75 + else if (s[pos] == '+' || s[pos] == '-') {
76 + RAID_REQUIRE(s.size() >= pos + 6, invalid_argument, "bad tz offset: " + std::string(s));
77 + const i64 off = static_cast<i64>(parse_int(s, pos + 1, 2)) * 3600 + static_cast<i64>(parse_int(s, pos + 4, 2)) * 60;
78 + us -= (s[pos] == '+' ? off : -off) * 1'000'000LL; pos += 6;
79 + }
80 + }
81 + RAID_REQUIRE(pos == s.size(), invalid_argument, "trailing characters in timestamp: " + std::string(s));
82 + return Timestamp(us);
83 +}
84 +
85 +} // namespace raid
added src/estimators/ols.cpp +180 −0
@@ -0,0 +1,180 @@
1 +#include "raid/estimators/ols.hpp"
2 +#include "raid/core/error.hpp"
3 +#include <chrono>
4 +#include <cmath>
5 +
6 +namespace raid::est {
7 +
8 +namespace {
9 +// Two-sided p-value from a t statistic with df degrees of freedom (df<=0 → normal). Regularised incomplete beta via
10 +// Lentz continued fraction (Numerical Recipes), FP64. Validated against scipy.stats.t.sf in tests/reference.
11 +f64 betacf(f64 a, f64 b, f64 x) {
12 + const int MAXIT = 300; const f64 EPS = 3e-16, FPMIN = 1e-300;
13 + f64 qab = a + b, qap = a + 1, qam = a - 1, c = 1, d = 1 - qab * x / qap;
14 + if (std::abs(d) < FPMIN) d = FPMIN; d = 1 / d; f64 h = d;
15 + for (int m = 1; m <= MAXIT; ++m) {
16 + const f64 m2 = 2.0 * m; f64 aa = m * (b - m) * x / ((qam + m2) * (a + m2));
17 + d = 1 + aa * d; if (std::abs(d) < FPMIN) d = FPMIN; c = 1 + aa / c; if (std::abs(c) < FPMIN) c = FPMIN; d = 1 / d; h *= d * c;
18 + aa = -(a + m) * (qab + m) * x / ((a + m2) * (qap + m2));
19 + d = 1 + aa * d; if (std::abs(d) < FPMIN) d = FPMIN; c = 1 + aa / c; if (std::abs(c) < FPMIN) c = FPMIN; d = 1 / d;
20 + const f64 del = d * c; h *= del; if (std::abs(del - 1) < EPS) break;
21 + }
22 + return h;
23 +}
24 +f64 betai(f64 a, f64 b, f64 x) {
25 + if (x <= 0) return 0; if (x >= 1) return 1;
26 + const f64 bt = std::exp(std::lgamma(a + b) - std::lgamma(a) - std::lgamma(b) + a * std::log(x) + b * std::log(1 - x));
27 + if (x < (a + 1) / (a + b + 2)) return bt * betacf(a, b, x) / a;
28 + return 1 - bt * betacf(b, a, 1 - x) / b;
29 +}
30 +} // namespace
31 +
32 +f64 t_pvalue_two_sided(f64 t, f64 df) {
33 + if (!std::isfinite(t)) return std::numeric_limits<f64>::quiet_NaN();
34 + if (df <= 0) return std::erfc(std::abs(t) / std::sqrt(2.0));
35 + return betai(df / 2.0, 0.5, df / (df + t * t));
36 +}
37 +
38 +OlsResult ols(const Eigen::Ref<const Eigen::MatrixXd>& X0, const Eigen::Ref<const Eigen::VectorXd>& y0, const OlsOptions& opt) {
39 + const auto t0 = std::chrono::steady_clock::now();
40 + const Eigen::Index n = X0.rows(), k = X0.cols();
41 + RAID_REQUIRE(y0.size() == n, invalid_argument, "ols: X rows != y size");
42 + RAID_REQUIRE(n > 0 && k > 0, insufficient_samples, "ols: empty design");
43 + RAID_REQUIRE(X0.allFinite() && y0.allFinite(), data_quality, "ols: non-finite values in X or y (drop or impute explicitly)");
44 + OlsResult r; r.estimate.model = opt.ridge_lambda > 0 ? "ridge" : (opt.weights.empty() ? "ols" : "wls");
45 + // Weighted transform: X̃ = √W X, ỹ = √W y
46 + Eigen::MatrixXd X = X0; Eigen::VectorXd y = y0;
47 + if (!opt.weights.empty()) {
48 + RAID_REQUIRE(static_cast<Eigen::Index>(opt.weights.size()) == n, invalid_argument, "wls: weights length");
49 + for (Eigen::Index i = 0; i < n; ++i) { RAID_REQUIRE(opt.weights[static_cast<usize>(i)] >= 0, invalid_argument, "wls: negative weight"); const f64 s = std::sqrt(opt.weights[static_cast<usize>(i)]); X.row(i) *= s; y[i] *= s; }
50 + }
51 + // Ridge via augmentation: append √λ·P rows (P = identity on penalised columns)
52 + Eigen::MatrixXd Xa = X; Eigen::VectorXd ya = y;
53 + if (opt.ridge_lambda > 0) {
54 + Eigen::VectorXd pen = Eigen::VectorXd::Constant(k, std::sqrt(opt.ridge_lambda));
55 + for (usize u : opt.unpenalized) { RAID_REQUIRE(u < static_cast<usize>(k), invalid_argument, "ridge: bad unpenalized index"); pen[static_cast<Eigen::Index>(u)] = 0; }
56 + Xa.conservativeResize(n + k, k); ya.conservativeResize(n + k);
57 + Xa.bottomRows(k) = pen.asDiagonal(); ya.tail(k).setZero();
58 + }
59 + Eigen::VectorXd beta(k);
60 + if (opt.solver == Solver::svd) {
61 + Eigen::JacobiSVD<Eigen::MatrixXd> svd(Xa, Eigen::ComputeThinU | Eigen::ComputeThinV);
62 + const auto& s = svd.singularValues();
63 + r.rank = svd.rank(); r.rcond = s[s.size() - 1] / s[0];
64 + beta = svd.solve(ya);
65 + Eigen::VectorXd inv_s2 = (s.array() > s[0] * 1e-14).select(1.0 / s.array().square(), 0.0);
66 + r.xtx_inv = svd.matrixV() * inv_s2.asDiagonal() * svd.matrixV().transpose();
67 + } else if (opt.solver == Solver::normal_cholesky) {
68 + const Eigen::MatrixXd A = Xa.transpose() * Xa; Eigen::LLT<Eigen::MatrixXd> llt(A);
69 + RAID_REQUIRE(llt.info() == Eigen::Success, numerical, "ols: X'X not positive definite");
70 + beta = llt.solve(Xa.transpose() * ya); r.xtx_inv = llt.solve(Eigen::MatrixXd::Identity(k, k)); r.rank = k;
71 + Eigen::JacobiSVD<Eigen::MatrixXd> svd(A); r.rcond = svd.singularValues()[k - 1] / svd.singularValues()[0];
72 + } else {
73 + Eigen::ColPivHouseholderQR<Eigen::MatrixXd> qr(Xa);
74 + qr.setThreshold(1e-12);
75 + r.rank = qr.rank();
76 + const Eigen::MatrixXd R = qr.matrixR().topLeftCorner(k, k).template triangularView<Eigen::Upper>();
77 + r.rcond = std::abs(R(k - 1, k - 1)) / std::abs(R(0, 0));
78 + if (r.rank < k) {
79 + r.estimate.warnings.push_back("design is rank deficient (rank " + std::to_string(r.rank) + " < " + std::to_string(k) + "); minimum-norm solution via SVD");
80 + Eigen::JacobiSVD<Eigen::MatrixXd> svd(Xa, Eigen::ComputeThinU | Eigen::ComputeThinV);
81 + beta = svd.solve(ya);
82 + const auto& s = svd.singularValues(); Eigen::VectorXd inv_s2 = (s.array() > s[0] * 1e-14).select(1.0 / s.array().square(), 0.0);
83 + r.xtx_inv = svd.matrixV() * inv_s2.asDiagonal() * svd.matrixV().transpose();
84 + } else {
85 + beta = qr.solve(ya);
86 + // (X'X)^{-1} = P R^{-1} R^{-T} P'
87 + const Eigen::MatrixXd Rinv = R.template triangularView<Eigen::Upper>().solve(Eigen::MatrixXd::Identity(k, k));
88 + r.xtx_inv = qr.colsPermutation() * (Rinv * Rinv.transpose()) * qr.colsPermutation().transpose();
89 + }
90 + }
91 + if (r.rcond < opt.rcond_warn) r.estimate.warnings.push_back("ill-conditioned design: rcond = " + std::to_string(r.rcond));
92 + r.fitted = X0 * beta; // unweighted fitted values
93 + r.residuals = y0 - r.fitted;
94 + Eigen::VectorXd e = y - X * beta; // weighted residuals for inference
95 + const f64 rss = e.squaredNorm();
96 + const f64 df_resid = static_cast<f64>(n - r.rank);
97 + r.sigma2 = df_resid > 0 ? rss / df_resid : std::numeric_limits<f64>::quiet_NaN();
98 + const f64 ybar = y.mean(); const f64 tss = (y.array() - ybar).square().sum();
99 + r.r2 = tss > 0 ? 1.0 - rss / tss : std::numeric_limits<f64>::quiet_NaN();
100 + r.r2_adj = tss > 0 && df_resid > 0 ? 1.0 - (rss / df_resid) / (tss / static_cast<f64>(n - 1)) : std::numeric_limits<f64>::quiet_NaN();
101 + // leverage h_ii = x_i' (X'X)^{-1} x_i
102 + r.leverage = (X * r.xtx_inv).cwiseProduct(X).rowwise().sum();
103 + // inference
104 + InferenceResult inf;
105 + stats::CovOptions co = opt.cov;
106 + inf.covariance = stats::robust_covariance(X, e, r.xtx_inv, co, r.leverage);
107 + inf.covariance_type = stats::to_string(co.type);
108 + if (co.type == stats::CovType::hac_bartlett) inf.covariance_type += "(" + std::to_string(co.hac_lags < 0 ? stats::default_hac_lags(static_cast<usize>(n)) : co.hac_lags) + ")";
109 + inf.std_errors.resize(static_cast<usize>(k)); inf.t_stats.resize(static_cast<usize>(k)); inf.p_values.resize(static_cast<usize>(k));
110 + const f64 df_t = (co.type == stats::CovType::classical) ? df_resid : df_resid; // statsmodels uses t(df_resid) for OLS by default
111 + for (Eigen::Index j = 0; j < k; ++j) {
112 + const f64 se = std::sqrt(std::max(0.0, inf.covariance(j, j)));
113 + inf.std_errors[static_cast<usize>(j)] = se; inf.t_stats[static_cast<usize>(j)] = se > 0 ? beta[j] / se : std::numeric_limits<f64>::quiet_NaN();
114 + inf.p_values[static_cast<usize>(j)] = t_pvalue_two_sided(inf.t_stats[static_cast<usize>(j)], df_t);
115 + }
116 + r.estimate.inference = inf;
117 + r.estimate.coefficients.assign(beta.data(), beta.data() + k);
118 + r.estimate.names = opt.names; if (r.estimate.names.size() != static_cast<usize>(k)) { r.estimate.names.clear(); for (Eigen::Index j = 0; j < k; ++j) r.estimate.names.push_back("x" + std::to_string(j)); }
119 + r.estimate.loss = rss; r.estimate.n_obs = static_cast<usize>(n);
120 + r.estimate.convergence = Convergence{true, 1, 1, 0.0, 0, "direct solve"};
121 + r.estimate.extra = {{"sigma2", r.sigma2}, {"r2", r.r2}, {"r2_adj", r.r2_adj}, {"rank", r.rank}, {"rcond", r.rcond}, {"df_resid", df_resid}, {"ridge_lambda", opt.ridge_lambda}};
122 + r.estimate.runtime_seconds = std::chrono::duration<f64>(std::chrono::steady_clock::now() - t0).count();
123 + return r;
124 +}
125 +
126 +SufficientStats accumulate(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& y) {
127 + SufficientStats s; s.xtx = X.transpose() * X; s.xty = X.transpose() * y; s.yty = y.squaredNorm(); s.n = static_cast<usize>(X.rows());
128 + return s;
129 +}
130 +
131 +OlsResult ols_from_stats(const SufficientStats& s, const OlsOptions& opt) {
132 + const auto t0 = std::chrono::steady_clock::now();
133 + const Eigen::Index k = s.xtx.rows();
134 + OlsResult r; r.estimate.model = "ols.sufficient_stats";
135 + Eigen::MatrixXd A = s.xtx;
136 + if (opt.ridge_lambda > 0) { for (Eigen::Index j = 0; j < k; ++j) { bool pen = true; for (usize u : opt.unpenalized) if (static_cast<Eigen::Index>(u) == j) pen = false; if (pen) A(j, j) += opt.ridge_lambda; } }
137 + Eigen::LDLT<Eigen::MatrixXd> ldlt(A);
138 + Eigen::VectorXd beta;
139 + Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> es(A);
140 + const auto& ev = es.eigenvalues();
141 + r.rcond = ev[0] / ev[k - 1]; r.rank = (ev.array() > ev[k - 1] * 1e-13).count();
142 + if (ldlt.info() == Eigen::Success && ldlt.isPositive() && r.rank == k) { beta = ldlt.solve(s.xty); r.xtx_inv = ldlt.solve(Eigen::MatrixXd::Identity(k, k)); }
143 + else {
144 + r.estimate.warnings.push_back("X'X singular or indefinite: pseudo-inverse solution");
145 + Eigen::VectorXd inv = (ev.array() > ev[k - 1] * 1e-13).select(1.0 / ev.array(), 0.0);
146 + r.xtx_inv = es.eigenvectors() * inv.asDiagonal() * es.eigenvectors().transpose(); beta = r.xtx_inv * s.xty;
147 + }
148 + if (r.rcond < opt.rcond_warn) r.estimate.warnings.push_back("ill-conditioned X'X: rcond = " + std::to_string(r.rcond));
149 + const f64 rss = std::max(0.0, s.yty - 2.0 * beta.dot(s.xty) + beta.dot(s.xtx * beta));
150 + const f64 df_resid = static_cast<f64>(s.n) - static_cast<f64>(r.rank);
151 + r.sigma2 = df_resid > 0 ? rss / df_resid : std::numeric_limits<f64>::quiet_NaN();
152 + InferenceResult inf; inf.covariance = r.sigma2 * r.xtx_inv; inf.covariance_type = "classical";
153 + for (Eigen::Index j = 0; j < k; ++j) { const f64 se = std::sqrt(std::max(0.0, inf.covariance(j, j))); inf.std_errors.push_back(se); inf.t_stats.push_back(se > 0 ? beta[j] / se : std::numeric_limits<f64>::quiet_NaN()); inf.p_values.push_back(t_pvalue_two_sided(inf.t_stats.back(), df_resid)); }
154 + r.estimate.inference = inf; r.estimate.coefficients.assign(beta.data(), beta.data() + k);
155 + r.estimate.names = opt.names; if (r.estimate.names.size() != static_cast<usize>(k)) { r.estimate.names.clear(); for (Eigen::Index j = 0; j < k; ++j) r.estimate.names.push_back("x" + std::to_string(j)); }
156 + r.estimate.loss = rss; r.estimate.n_obs = s.n; r.estimate.convergence = Convergence{true, 1, 1, 0.0, 0, "sufficient statistics"};
157 + r.estimate.extra = {{"sigma2", r.sigma2}, {"rank", r.rank}, {"rcond", r.rcond}, {"df_resid", df_resid}};
158 + r.estimate.runtime_seconds = std::chrono::duration<f64>(std::chrono::steady_clock::now() - t0).count();
159 + return r;
160 +}
161 +
162 +RollingOlsResult rolling_ols(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& y, usize window, usize step) {
163 + const usize n = static_cast<usize>(X.rows()), k = static_cast<usize>(X.cols());
164 + RAID_REQUIRE(window >= k + 1 && window <= n, insufficient_samples, "rolling_ols: window must satisfy k+1 <= window <= n");
165 + RAID_REQUIRE(step >= 1, invalid_argument, "rolling_ols: step >= 1");
166 + const usize nw = (n - window) / step + 1;
167 + RollingOlsResult r; r.window = window; r.coefficients.resize(static_cast<Eigen::Index>(k), static_cast<Eigen::Index>(nw)); r.rss.resize(nw); r.ranks.resize(nw);
168 + for (usize j = 0; j < nw; ++j) {
169 + const usize b = j * step;
170 + Eigen::ColPivHouseholderQR<Eigen::MatrixXd> qr(X.middleRows(static_cast<Eigen::Index>(b), static_cast<Eigen::Index>(window)));
171 + qr.setThreshold(1e-12);
172 + const Eigen::VectorXd beta = qr.solve(y.segment(static_cast<Eigen::Index>(b), static_cast<Eigen::Index>(window)));
173 + r.coefficients.col(static_cast<Eigen::Index>(j)) = beta;
174 + r.rss[j] = (y.segment(static_cast<Eigen::Index>(b), static_cast<Eigen::Index>(window)) - X.middleRows(static_cast<Eigen::Index>(b), static_cast<Eigen::Index>(window)) * beta).squaredNorm();
175 + r.ranks[j] = qr.rank();
176 + }
177 + return r;
178 +}
179 +
180 +} // namespace raid::est
added src/estimators/realized.cpp +57 −0
@@ -0,0 +1,57 @@
1 +#include "raid/estimators/realized.hpp"
2 +#include "raid/core/error.hpp"
3 +#include "raid/statistics/reductions.hpp"
4 +#include <cmath>
5 +#include <numbers>
6 +
7 +namespace raid::est {
8 +
9 +f64 mu_p(f64 p) { return std::pow(2.0, p / 2.0) * std::tgamma((p + 1.0) / 2.0) / std::tgamma(0.5); }
10 +
11 +RealizedMeasures realized_measures_batch(const backend::Batch& b, const RealizedOptions& opt) {
12 + RealizedMeasures m; const usize S = b.n_series();
13 + std::string reason; auto be = backend::resolve(opt.plan, &reason);
14 + backend::KernelStats st1, st2, st3, st4;
15 + m.rv = be->sum_squares(b, &st1);
16 + auto adj = be->sum_abs_adjacent(b, &st2);
17 + be->semivariances(b, m.rsv_neg, m.rsv_pos, &st3);
18 + auto s4 = be->sum_fourth(b, &st4);
19 + m.stats = st1; m.stats.kernel = "realized_measures"; m.stats.wall_seconds = st1.wall_seconds + st2.wall_seconds + st3.wall_seconds + st4.wall_seconds;
20 + m.stats.device_seconds = st1.device_seconds + st2.device_seconds + st3.device_seconds + st4.device_seconds; m.stats.note = reason;
21 + m.bpv.resize(S); m.rq.resize(S); m.jump.resize(S); m.tripv.resize(S); m.n_returns.resize(S); m.daily_return.resize(S);
22 + const f64 mu43 = mu_p(4.0 / 3.0);
23 + for (usize s = 0; s < S; ++s) {
24 + const usize M = b.size(s); m.n_returns[s] = M;
25 + auto x = b.series(s);
26 + m.daily_return[s] = stats::sum_neumaier(x);
27 + const f64 fs = (opt.bpv_finite_sample && M > 1) ? static_cast<f64>(M) / static_cast<f64>(M - 1) : 1.0;
28 + m.bpv[s] = M > 1 ? (1.0 / (kMu1 * kMu1)) * fs * adj[s] : std::numeric_limits<f64>::quiet_NaN();
29 + m.rq[s] = M > 0 ? (static_cast<f64>(M) / 3.0) * s4[s] : std::numeric_limits<f64>::quiet_NaN();
30 + m.jump[s] = std::max(m.rv[s] - m.bpv[s], 0.0);
31 + // tripower (CPU, FP64 — small cost, not batched on GPU in Tier A)
32 + if (M > 2) { f64 acc = 0, c = 0; for (usize j = 2; j < M; ++j) { const f64 v = std::pow(std::abs(x[j]), 4.0 / 3.0) * std::pow(std::abs(x[j - 1]), 4.0 / 3.0) * std::pow(std::abs(x[j - 2]), 4.0 / 3.0), t = acc + v; if (std::abs(acc) >= v) c += (acc - t) + v; else c += (v - t) + acc; acc = t; }
33 + const f64 fs3 = opt.bpv_finite_sample ? static_cast<f64>(M) / static_cast<f64>(M - 2) : 1.0; m.tripv[s] = fs3 * (acc + c) / (mu43 * mu43 * mu43); }
34 + else m.tripv[s] = std::numeric_limits<f64>::quiet_NaN();
35 + if (M < 2) m.warnings.push_back("segment " + std::to_string(s) + ": fewer than 2 returns");
36 + if (opt.annualize) { m.rv[s] *= opt.periods_per_year; m.bpv[s] *= opt.periods_per_year; m.rsv_neg[s] *= opt.periods_per_year; m.rsv_pos[s] *= opt.periods_per_year; m.jump[s] *= opt.periods_per_year; m.tripv[s] *= opt.periods_per_year; m.rq[s] *= opt.periods_per_year * opt.periods_per_year; }
37 + }
38 + return m;
39 +}
40 +
41 +RealizedMeasures realized_measures(const data::IntradayReturns& ir, const RealizedOptions& opt) {
42 + backend::Batch b{ir.r, ir.session_offsets};
43 + auto m = realized_measures_batch(b, opt);
44 + m.sessions = ir.session_dates;
45 + return m;
46 +}
47 +
48 +RealizedCov realized_covariance(const Eigen::Ref<const Eigen::MatrixXd>& R) {
49 + RAID_REQUIRE(R.rows() >= 1 && R.cols() >= 1, insufficient_samples, "realized_covariance: empty");
50 + RealizedCov out; out.n_obs = static_cast<usize>(R.rows());
51 + out.cov = R.transpose() * R; // Σ_j r_j r_j' (no demeaning: realized covariance of returns)
52 + const Eigen::Index N = R.cols(); out.corr.resize(N, N);
53 + for (Eigen::Index a = 0; a < N; ++a) for (Eigen::Index c = 0; c < N; ++c) { const f64 d = std::sqrt(out.cov(a, a) * out.cov(c, c)); out.corr(a, c) = d > 0 ? out.cov(a, c) / d : std::numeric_limits<f64>::quiet_NaN(); }
54 + return out;
55 +}
56 +
57 +} // namespace raid::est
added src/models/garch_fit.cpp +147 −0
@@ -0,0 +1,147 @@
1 +// GARCH-family QML estimation on the CPU: BFGS on the unconstrained parameters, central-difference gradients,
2 +// Armijo backtracking, and three covariance estimators (Hessian, OPG, QMLE sandwich = H^{-1} OPG H^{-1}).
3 +#include "raid/models/garch.hpp"
4 +#include "raid/core/error.hpp"
5 +#include "raid/core/rng.hpp"
6 +#include "raid/estimators/ols.hpp"
7 +#include "raid/statistics/reductions.hpp"
8 +#include <Eigen/Dense>
9 +#include <chrono>
10 +#include <cmath>
11 +#include <numbers>
12 +#include <cstdlib>
13 +#include <cstdio>
14 +
15 +namespace raid::models {
16 +
17 +namespace {
18 +using Vec = Eigen::VectorXd; using Mat = Eigen::MatrixXd;
19 +
20 +// Per-observation log-likelihood contributions ℓ_t (returns +inf nll on invalid params).
21 +bool per_obs_ll(std::span<const f64> r, std::span<const f64> th, GarchModel m, GarchDist d, std::vector<f64>& ll) {
22 + if (!garch_params_valid(th, m, d)) return false;
23 + std::vector<f64> s2; if (!garch_variance_path(r, th, m, d, s2)) return false;
24 + const f64 mu = th[0]; const usize n = r.size(); ll.resize(n);
25 + if (d == GarchDist::gaussian) { const f64 k = 0.5 * std::log(2.0 * std::numbers::pi); for (usize t = 0; t < n; ++t) { const f64 e = r[t] - mu; ll[t] = -(k + 0.5 * std::log(s2[t]) + 0.5 * e * e / s2[t]); } }
26 + else { const f64 nu = th.back(); const f64 k = std::lgamma((nu + 1) / 2) - std::lgamma(nu / 2) - 0.5 * std::log(std::numbers::pi * (nu - 2)); for (usize t = 0; t < n; ++t) { const f64 e = r[t] - mu; ll[t] = k - 0.5 * std::log(s2[t]) - 0.5 * (nu + 1) * std::log1p(e * e / ((nu - 2) * s2[t])); } }
27 + return true;
28 +}
29 +
30 +template <class F> Vec num_grad(const F& f, const Vec& x, f64 fx, f64 h0 = 1e-5) {
31 + Vec g(x.size());
32 + for (Eigen::Index i = 0; i < x.size(); ++i) { const f64 h = h0 * std::max(1.0, std::abs(x[i])); Vec xp = x, xm = x; xp[i] += h; xm[i] -= h; const f64 fp = f(xp), fm = f(xm);
33 + if (std::isfinite(fp) && std::isfinite(fm)) g[i] = (fp - fm) / (2 * h); else if (std::isfinite(fp)) g[i] = (fp - fx) / h; else if (std::isfinite(fm)) g[i] = (fx - fm) / h; else g[i] = 0; }
34 + return g;
35 +}
36 +template <class F> Mat num_hessian(const F& f, const Vec& x, f64 h0 = 1e-4) {
37 + const Eigen::Index p = x.size(); Mat H(p, p); const f64 fx = f(x);
38 + for (Eigen::Index i = 0; i < p; ++i) for (Eigen::Index j = i; j < p; ++j) {
39 + const f64 hi = h0 * std::max(1.0, std::abs(x[i])), hj = h0 * std::max(1.0, std::abs(x[j]));
40 + Vec a = x, b = x, c = x, dd = x; a[i] += hi; a[j] += hj; b[i] += hi; b[j] -= hj; c[i] -= hi; c[j] += hj; dd[i] -= hi; dd[j] -= hj;
41 + f64 v = (f(a) - f(b) - f(c) + f(dd)) / (4 * hi * hj);
42 + if (i == j) { Vec xp = x, xm = x; xp[i] += hi; xm[i] -= hi; v = (f(xp) - 2 * fx + f(xm)) / (hi * hi); }
43 + H(i, j) = v; H(j, i) = v; }
44 + return H;
45 +}
46 +} // namespace
47 +
48 +Estimate garch_fit(std::span<const f64> r0, const GarchFitOptions& opt) {
49 + const auto t0 = std::chrono::steady_clock::now();
50 + Estimate e; e.model = "garch." + to_string(opt.model) + "." + to_string(opt.dist); e.backend = Backend::cpu; e.precision = Precision::fp64;
51 + e.names = garch_param_names(opt.model, opt.dist); e.n_obs = r0.size();
52 + RAID_REQUIRE(r0.size() >= 50, insufficient_samples, "garch_fit: need at least 50 observations");
53 + for (f64 v : r0) RAID_REQUIRE(std::isfinite(v), data_quality, "garch_fit: non-finite return");
54 + // scaling (arch rescales to unit variance ×100-ish; we scale so that sample std ≈ 1 and unscale afterwards)
55 + const f64 sd = std::sqrt(stats::variance(r0, 0)); RAID_REQUIRE(sd > 0, data_quality, "garch_fit: constant returns");
56 + const f64 scale = opt.scale_returns ? 1.0 / sd : 1.0;
57 + std::vector<f64> r(r0.size()); for (usize i = 0; i < r.size(); ++i) r[i] = r0[i] * scale;
58 + const usize p = garch_n_params(opt.model, opt.dist);
59 + // starting values (on the scaled series): μ = mean, persistence 0.95, α = 0.05 (GJR γ = 0.05), ν = 8
60 + std::vector<f64> th0(p); th0[0] = stats::mean(std::span<const f64>(r));
61 + const f64 v = stats::variance(std::span<const f64>(r), 0);
62 + if (opt.model == GarchModel::egarch) { th0[2] = 0.1; th0[3] = -0.05; th0[4] = 0.95; th0[1] = (1.0 - th0[4]) * std::log(v); }
63 + else if (opt.model == GarchModel::garch) { th0[2] = 0.05; th0[3] = 0.90; th0[1] = v * (1 - 0.95); }
64 + else { th0[2] = 0.03; th0[3] = 0.05; th0[4] = 0.90; th0[1] = v * (1 - 0.03 - 0.90 - 0.025); }
65 + if (opt.dist == GarchDist::student_t) th0[p - 1] = 8.0;
66 + auto f_u = [&](const Vec& u) { auto th = garch_from_unconstrained(std::span<const f64>(u.data(), static_cast<usize>(u.size())), opt.model, opt.dist); return garch_nll(r, th, opt.model, opt.dist); };
67 + auto u0v = garch_to_unconstrained(th0, opt.model, opt.dist);
68 + Vec x = Eigen::Map<Vec>(u0v.data(), static_cast<Eigen::Index>(p));
69 + f64 fx = f_u(x); int fevals = 1;
70 + if (!std::isfinite(fx)) { e.convergence = Convergence{false, 0, fevals, std::numeric_limits<f64>::quiet_NaN(), -1, "invalid starting values"}; return e; }
71 + auto fcount = [&](const Vec& y) { ++fevals; return f_u(y); };
72 + Vec g = num_grad(fcount, x, fx); Mat Hinv = Mat::Identity(static_cast<Eigen::Index>(p), static_cast<Eigen::Index>(p));
73 + int it = 0; bool converged = false; std::string msg;
74 + for (; it < opt.max_iter; ++it) {
75 + Vec dir = -Hinv * g; if (dir.dot(g) >= 0) { Hinv.setIdentity(); dir = -g; }
76 + f64 step = 1.0; f64 fnew = std::numeric_limits<f64>::infinity(); Vec xnew;
77 + for (int ls = 0; ls < 60; ++ls) { xnew = x + step * dir; fnew = fcount(xnew); if (std::isfinite(fnew) && fnew <= fx + 1e-4 * step * g.dot(dir)) break; step *= 0.5; }
78 + if (!std::isfinite(fnew) || fnew > fx) { msg = "line search failed"; break; }
79 + Vec gnew = num_grad(fcount, xnew, fnew);
80 + if (std::getenv("RAID_GARCH_TRACE")) { std::fprintf(stderr, "it=%d f=%.6f step=%.3g |g|=%.3e x=", it, fnew, step, gnew.norm()); for (Eigen::Index j = 0; j < x.size(); ++j) std::fprintf(stderr, "%.4f ", xnew[j]); std::fprintf(stderr, " g="); for (Eigen::Index j = 0; j < x.size(); ++j) std::fprintf(stderr, "%.3e ", gnew[j]); std::fprintf(stderr, "\n"); }
81 + const Vec s = xnew - x, yv = gnew - g; const f64 sy = s.dot(yv);
82 + if (sy > 1e-12) { const Mat I = Mat::Identity(static_cast<Eigen::Index>(p), static_cast<Eigen::Index>(p)); const f64 rho = 1.0 / sy; Hinv = (I - rho * s * yv.transpose()) * Hinv * (I - rho * yv * s.transpose()) + rho * s * s.transpose(); }
83 + const f64 rel = std::abs(fx - fnew) / std::max(1.0, std::abs(fx));
84 + x = xnew; fx = fnew; g = gnew;
85 + if (g.norm() < 1e-5 || (rel < opt.tol && g.norm() < 1e-2) || (s.norm() < 1e-9 && g.norm() < 1e-2)) { converged = true; msg = g.norm() < 1e-5 ? "gradient norm below 1e-5" : (rel < opt.tol ? "relative NLL change below tol (gradient < 1e-2 in transformed space)" : "step below 1e-9 (gradient < 1e-2)"); ++it; break; }
86 + }
87 + if (!converged && msg.empty()) msg = "maximum iterations reached";
88 + auto th = garch_from_unconstrained(std::span<const f64>(x.data(), static_cast<usize>(x.size())), opt.model, opt.dist);
89 + // Covariance on the natural parameters (scaled series) by numerical derivatives of the NLL
90 + auto f_th = [&](const Vec& t) { return garch_nll(r, std::span<const f64>(t.data(), static_cast<usize>(t.size())), opt.model, opt.dist); };
91 + Vec thv = Eigen::Map<Vec>(th.data(), static_cast<Eigen::Index>(p));
92 + Mat H = num_hessian(f_th, thv);
93 + // OPG from per-observation scores (central differences of ℓ_t)
94 + const usize n = r.size(); Mat scores(static_cast<Eigen::Index>(n), static_cast<Eigen::Index>(p));
95 + { std::vector<f64> lp, lm; for (Eigen::Index j = 0; j < static_cast<Eigen::Index>(p); ++j) { const f64 h = 1e-5 * std::max(1.0, std::abs(thv[j])); Vec a = thv, b = thv; a[j] += h; b[j] -= h;
96 + bool oka = per_obs_ll(r, std::span<const f64>(a.data(), p), opt.model, opt.dist, lp), okb = per_obs_ll(r, std::span<const f64>(b.data(), p), opt.model, opt.dist, lm);
97 + for (usize t = 0; t < n; ++t) scores(static_cast<Eigen::Index>(t), j) = (oka && okb) ? (lp[t] - lm[t]) / (2 * h) : std::numeric_limits<f64>::quiet_NaN(); } }
98 + Mat opg = scores.transpose() * scores;
99 + InferenceResult inf; Mat cov;
100 + Eigen::FullPivLU<Mat> lu(H); bool h_ok = lu.isInvertible() && H.allFinite();
101 + if (opt.cov == "hessian") { cov = h_ok ? Mat(lu.inverse()) : Mat(Mat::Constant(p, p, std::numeric_limits<f64>::quiet_NaN())); inf.covariance_type = "hessian"; }
102 + else if (opt.cov == "opg") { Eigen::FullPivLU<Mat> lo(opg); cov = lo.isInvertible() ? Mat(lo.inverse()) : Mat(Mat::Constant(p, p, std::numeric_limits<f64>::quiet_NaN())); inf.covariance_type = "opg"; }
103 + else { cov = h_ok ? Mat(lu.inverse() * opg * lu.inverse()) : Mat(Mat::Constant(p, p, std::numeric_limits<f64>::quiet_NaN())); inf.covariance_type = "qmle_sandwich"; }
104 + if (!h_ok) e.warnings.push_back("Hessian singular or non-finite at the optimum; standard errors unavailable");
105 + if (opt.dist == GarchDist::student_t && th.back() > 450.0) e.warnings.push_back("nu at its upper bound (500): the Student-t density is indistinguishable from Gaussian on this sample");
106 + // Unscale: r0 = r / scale. μ, ω, σ² scale by 1/scale, 1/scale², 1/scale²; α, β, γ, ν unchanged; EGARCH ω → ω + (1−β) log(1/scale²)
107 + std::vector<f64> th_out = th; Vec jac = Vec::Ones(static_cast<Eigen::Index>(p));
108 + th_out[0] = th[0] / scale; jac[0] = 1.0 / scale;
109 + if (opt.model == GarchModel::egarch) { th_out[1] = th[1] + (1.0 - th[4]) * std::log(1.0 / (scale * scale)); }
110 + else { th_out[1] = th[1] / (scale * scale); jac[1] = 1.0 / (scale * scale); }
111 + if (opt.model != GarchModel::egarch) cov = jac.asDiagonal() * cov * jac.asDiagonal();
112 + else { Mat J = Mat::Identity(p, p); J(0, 0) = 1.0 / scale; J(1, 4) = -std::log(1.0 / (scale * scale)); cov = J * cov * J.transpose(); }
113 + inf.covariance = cov; const f64 nll_unscaled = fx - static_cast<f64>(n) * std::log(scale); // f_{r0}(x) = scale · f_r(scale·x) ⇒ −Σ log f(r0) = −Σ log f(r) − n log(scale)
114 + for (Eigen::Index j = 0; j < static_cast<Eigen::Index>(p); ++j) { const f64 se = std::sqrt(std::max(0.0, cov(j, j))); inf.std_errors.push_back(se); inf.t_stats.push_back(se > 0 ? th_out[static_cast<usize>(j)] / se : std::numeric_limits<f64>::quiet_NaN()); inf.p_values.push_back(est::t_pvalue_two_sided(inf.t_stats.back(), 0)); }
115 + e.inference = inf; e.coefficients = th_out; e.loss = nll_unscaled;
116 + e.convergence = Convergence{converged, it, fevals, g.norm(), converged ? 0 : 1, msg};
117 + std::vector<f64> s2; garch_variance_path(r0, th_out, opt.model, opt.dist, s2);
118 + e.extra = {{"loglik", -nll_unscaled}, {"scale", scale}, {"sigma2_last", s2.empty() ? 0.0 : s2.back()}, {"persistence", opt.model == GarchModel::garch ? th_out[2] + th_out[3] : (opt.model == GarchModel::gjr ? th_out[2] + th_out[4] + 0.5 * th_out[3] : th_out[4])}, {"aic", 2.0 * nll_unscaled + 2.0 * static_cast<f64>(p)}, {"bic", 2.0 * nll_unscaled + std::log(static_cast<f64>(n)) * static_cast<f64>(p)}};
119 + if (opt.forecast_horizon > 0 && converged) e.extra["forecast_variance"] = garch_forecast(e, r0, opt.forecast_horizon, opt.plan.seed);
120 + e.runtime_seconds = std::chrono::duration<f64>(std::chrono::steady_clock::now() - t0).count();
121 + return e;
122 +}
123 +
124 +std::vector<f64> garch_forecast(const Estimate& fit, std::span<const f64> r, int H, u64 seed, int n_sim) {
125 + RAID_REQUIRE(H >= 1, invalid_argument, "horizon >= 1");
126 + const std::string& m = fit.model; GarchModel model = m.find(".gjr.") != std::string::npos ? GarchModel::gjr : (m.find(".egarch.") != std::string::npos ? GarchModel::egarch : GarchModel::garch);
127 + GarchDist dist = m.find("student_t") != std::string::npos ? GarchDist::student_t : GarchDist::gaussian;
128 + const auto& th = fit.coefficients; std::vector<f64> s2; RAID_REQUIRE(garch_variance_path(r, th, model, dist, s2), numerical, "forecast: invalid variance path");
129 + const f64 mu = th[0], omega = th[1], alpha = th[2]; const f64 gamma = model != GarchModel::garch ? th[3] : 0.0; const f64 beta = th[model != GarchModel::garch ? 4 : 3];
130 + const f64 eT = r.back() - mu, s2T = s2.back(); std::vector<f64> f(static_cast<usize>(H));
131 + if (model != GarchModel::egarch) {
132 + f[0] = omega + (alpha + (eT < 0 ? gamma : 0.0)) * eT * eT + beta * s2T;
133 + for (int h = 1; h < H; ++h) f[static_cast<usize>(h)] = omega + (alpha + 0.5 * gamma + beta) * f[static_cast<usize>(h - 1)];
134 + return f;
135 + }
136 + // EGARCH: h=1 analytical, h>1 by simulation of z (Gaussian or standardized t)
137 + const f64 nu = dist == GarchDist::student_t ? th.back() : 0.0;
138 + const f64 Eabs = dist == GarchDist::student_t ? 2.0 * std::sqrt(nu - 2.0) * std::exp(std::lgamma((nu + 1) / 2) - std::lgamma(nu / 2)) / ((nu - 1) * std::sqrt(std::numbers::pi)) : std::sqrt(2.0 / std::numbers::pi);
139 + const f64 zT = eT / std::sqrt(s2T); const f64 l1 = omega + alpha * (std::abs(zT) - Eabs) + gamma * zT + beta * std::log(s2T); f[0] = std::exp(l1);
140 + if (H == 1) return f;
141 + std::vector<f64> acc(static_cast<usize>(H), 0.0); Rng rng(seed, 7);
142 + for (int s = 0; s < n_sim; ++s) { f64 ls = l1; acc[0] += std::exp(ls); for (int h = 1; h < H; ++h) { const f64 z = dist == GarchDist::student_t ? rng.student_t(nu) : rng.normal(); ls = omega + alpha * (std::abs(z) - Eabs) + gamma * z + beta * ls; acc[static_cast<usize>(h)] += std::exp(ls); } }
143 + for (int h = 1; h < H; ++h) f[static_cast<usize>(h)] = acc[static_cast<usize>(h)] / n_sim;
144 + return f;
145 +}
146 +
147 +} // namespace raid::models
added src/models/garch_likelihood.cpp +124 −0
@@ -0,0 +1,124 @@
1 +#include "raid/models/garch.hpp"
2 +#include "raid/core/error.hpp"
3 +#include "raid/statistics/reductions.hpp"
4 +#include <cmath>
5 +#include <limits>
6 +#include <numbers>
7 +
8 +namespace raid::models {
9 +
10 +constexpr f64 kNuMin = 2.05, kNuMax = 500.0; // same bounds as the arch package (StudentsT distribution bounds)
11 +
12 +std::string to_string(GarchModel m) { switch (m) { case GarchModel::garch: return "garch"; case GarchModel::gjr: return "gjr"; case GarchModel::egarch: return "egarch"; } return "?"; }
13 +std::string to_string(GarchDist d) { return d == GarchDist::gaussian ? "gaussian" : "student_t"; }
14 +
15 +usize garch_n_params(GarchModel m, GarchDist d) { return 4 + (m != GarchModel::garch ? 1 : 0) + (d == GarchDist::student_t ? 1 : 0); }
16 +std::vector<std::string> garch_param_names(GarchModel m, GarchDist d) {
17 + std::vector<std::string> n = {"mu", "omega", "alpha"}; if (m != GarchModel::garch) n.push_back("gamma"); n.push_back("beta"); if (d == GarchDist::student_t) n.push_back("nu"); return n;
18 +}
19 +
20 +bool garch_params_valid(std::span<const f64> th, GarchModel m, GarchDist d) {
21 + if (th.size() != garch_n_params(m, d)) return false;
22 + for (f64 v : th) if (!std::isfinite(v)) return false;
23 + const f64 omega = th[1], alpha = th[2];
24 + const f64 gamma = m != GarchModel::garch ? th[3] : 0.0;
25 + const f64 beta = th[m != GarchModel::garch ? 4 : 3];
26 + if (d == GarchDist::student_t && th.back() <= 2.0) return false;
27 + switch (m) {
28 + case GarchModel::garch: return omega > 0 && alpha >= 0 && beta >= 0 && alpha + beta < 1.0;
29 + case GarchModel::gjr: return omega > 0 && alpha >= 0 && beta >= 0 && alpha + gamma >= 0 && alpha + beta + 0.5 * gamma < 1.0;
30 + case GarchModel::egarch: return std::abs(beta) < 1.0;
31 + }
32 + return false;
33 +}
34 +
35 +bool garch_variance_path(std::span<const f64> r, std::span<const f64> th, GarchModel m, GarchDist d, std::vector<f64>& s2) {
36 + const usize n = r.size(); s2.assign(n, std::numeric_limits<f64>::quiet_NaN());
37 + if (n < 2) return false;
38 + const f64 mu = th[0], omega = th[1], alpha = th[2];
39 + const f64 gamma = m != GarchModel::garch ? th[3] : 0.0;
40 + const f64 beta = th[m != GarchModel::garch ? 4 : 3];
41 + // initial variance: sample variance of ε (ddof=0), as arch's default for the first observation uses backcast... we use
42 + // the plain sample variance — documented in the registry (tests pin this convention against arch with backcast given).
43 + f64 m1 = 0; for (f64 v : r) m1 += (v - mu); m1 /= static_cast<f64>(n);
44 + f64 var0 = 0; for (f64 v : r) var0 += (v - mu - m1) * (v - mu - m1); var0 /= static_cast<f64>(n);
45 + if (!(var0 > 0)) return false;
46 + if (m == GarchModel::egarch) {
47 + const f64 Eabs = (d == GarchDist::student_t) ? [&] { const f64 nu = th.back(); return 2.0 * std::sqrt(nu - 2.0) * std::exp(std::lgamma((nu + 1) / 2) - std::lgamma(nu / 2)) / ((nu - 1) * std::sqrt(std::numbers::pi)); }() : std::sqrt(2.0 / std::numbers::pi);
48 + f64 ls = std::log(var0);
49 + s2[0] = var0;
50 + for (usize t = 1; t < n; ++t) {
51 + const f64 e = r[t - 1] - mu, z = e / std::sqrt(s2[t - 1]);
52 + ls = omega + alpha * (std::abs(z) - Eabs) + gamma * z + beta * std::log(s2[t - 1]);
53 + s2[t] = std::exp(ls);
54 + if (!std::isfinite(s2[t]) || s2[t] <= 0) return false;
55 + }
56 + return true;
57 + }
58 + s2[0] = var0;
59 + for (usize t = 1; t < n; ++t) {
60 + const f64 e = r[t - 1] - mu; const f64 e2 = e * e;
61 + s2[t] = omega + (alpha + (e < 0 ? gamma : 0.0)) * e2 + beta * s2[t - 1];
62 + if (!std::isfinite(s2[t]) || s2[t] <= 0) return false;
63 + }
64 + return true;
65 +}
66 +
67 +f64 garch_nll(std::span<const f64> r, std::span<const f64> th, GarchModel m, GarchDist d) {
68 + if (!garch_params_valid(th, m, d)) return std::numeric_limits<f64>::infinity();
69 + std::vector<f64> s2;
70 + if (!garch_variance_path(r, th, m, d, s2)) return std::numeric_limits<f64>::infinity();
71 + const f64 mu = th[0]; const usize n = r.size();
72 + f64 nll = 0, c = 0;
73 + auto add = [&](f64 v) { const f64 t = nll + v; if (std::abs(nll) >= std::abs(v)) c += (nll - t) + v; else c += (v - t) + nll; nll = t; };
74 + if (d == GarchDist::gaussian) {
75 + const f64 k = 0.5 * std::log(2.0 * std::numbers::pi);
76 + for (usize t = 0; t < n; ++t) { const f64 e = r[t] - mu; add(k + 0.5 * std::log(s2[t]) + 0.5 * e * e / s2[t]); }
77 + } else {
78 + const f64 nu = th.back();
79 + const f64 k = std::lgamma((nu + 1) / 2) - std::lgamma(nu / 2) - 0.5 * std::log(std::numbers::pi * (nu - 2));
80 + for (usize t = 0; t < n; ++t) { const f64 e = r[t] - mu; add(-(k - 0.5 * std::log(s2[t]) - 0.5 * (nu + 1) * std::log1p(e * e / ((nu - 2) * s2[t])))); }
81 + }
82 + return nll + c;
83 +}
84 +
85 +f64 garch_nll(std::span<const f64> r, std::span<const f64> th, GarchModel m, f64 nu_fixed) {
86 + if (nu_fixed > 2.0) { std::vector<f64> t(th.begin(), th.end()); t.push_back(nu_fixed); return garch_nll(r, t, m, GarchDist::student_t); }
87 + return garch_nll(r, th, m, GarchDist::gaussian);
88 +}
89 +
90 +// Transforms: u = [μ, log ω, logit-type for (α, β[, γ]), log(ν − 2)]
91 +std::vector<f64> garch_to_unconstrained(std::span<const f64> th, GarchModel m, GarchDist d) {
92 + std::vector<f64> u(th.begin(), th.end());
93 + u[1] = m == GarchModel::egarch ? th[1] : std::log(th[1]);
94 + const bool g = m != GarchModel::garch; const usize ib = g ? 4 : 3;
95 + if (m == GarchModel::egarch) { u[2] = th[2]; u[3] = th[3]; u[4] = std::atanh(std::clamp(th[4], -0.999999, 0.999999)); }
96 + else {
97 + // persistence p = α + β (+γ/2) ∈ (0,1): u_p = logit(p); share s = α/p ∈ (0,1): u_s = logit(s); γ free for GJR via α+γ ≥ 0 → γ = exp(u_g) − α
98 + const f64 gamma = g ? th[3] : 0.0; const f64 p = th[2] + th[ib] + 0.5 * gamma; const f64 s = p > 0 ? th[2] / p : 0.5;
99 + u[2] = std::log(std::clamp(p, 1e-12, 1 - 1e-12) / (1 - std::clamp(p, 1e-12, 1 - 1e-12)));
100 + u[ib] = std::log(std::clamp(s, 1e-12, 1 - 1e-12) / (1 - std::clamp(s, 1e-12, 1 - 1e-12)));
101 + if (g) u[3] = std::log(std::max(th[2] + gamma, 1e-12));
102 + }
103 + if (d == GarchDist::student_t) { const f64 s = std::clamp((th.back() - kNuMin) / (kNuMax - kNuMin), 1e-9, 1 - 1e-9); u.back() = std::log(s / (1 - s)); }
104 + return u;
105 +}
106 +
107 +std::vector<f64> garch_from_unconstrained(std::span<const f64> u, GarchModel m, GarchDist d) {
108 + std::vector<f64> th(u.begin(), u.end());
109 + th[1] = m == GarchModel::egarch ? u[1] : std::exp(u[1]);
110 + const bool g = m != GarchModel::garch;
111 + auto sig = [](f64 x) { return 1.0 / (1.0 + std::exp(-x)); };
112 + if (m == GarchModel::egarch) { th[2] = u[2]; th[3] = u[3]; th[4] = std::tanh(u[4]); }
113 + else if (!g) { const f64 p = sig(u[2]) * (1 - 1e-9), s = sig(u[3]); th[2] = s * p; th[3] = (1 - s) * p; }
114 + else {
115 + // GJR: p = α + β + γ/2, s = α/p → α = s p; ag = α + γ = exp(u_g) → γ = ag − α; β = p − α − γ/2 (must be ≥ 0: clamp via s)
116 + const f64 p = sig(u[2]) * (1 - 1e-9), s = sig(u[4]); const f64 alpha = s * p; const f64 ag = std::exp(u[3]); const f64 gamma = ag - alpha;
117 + f64 beta = p - alpha - 0.5 * gamma; if (beta < 0) { beta = 0; }
118 + th[2] = alpha; th[3] = gamma; th[4] = beta;
119 + }
120 + if (d == GarchDist::student_t) th.back() = kNuMin + (kNuMax - kNuMin) * sig(u.back());
121 + return th;
122 +}
123 +
124 +} // namespace raid::models
added src/statistics/covariance.cpp +75 −0
@@ -0,0 +1,75 @@
1 +#include "raid/statistics/covariance.hpp"
2 +#include "raid/core/error.hpp"
3 +#include <cmath>
4 +#include <map>
5 +
6 +namespace raid::stats {
7 +
8 +std::string to_string(CovType c) {
9 + switch (c) { case CovType::classical: return "classical"; case CovType::hc0: return "hc0"; case CovType::hc1: return "hc1"; case CovType::hc2: return "hc2"; case CovType::hc3: return "hc3"; case CovType::hac_bartlett: return "hac_bartlett"; case CovType::cluster: return "cluster"; }
10 + return "?";
11 +}
12 +CovType covtype_from_string(std::string_view s) {
13 + if (s == "classical" || s == "nonrobust") return CovType::classical;
14 + if (s == "hc0" || s == "HC0") return CovType::hc0; if (s == "hc1" || s == "HC1") return CovType::hc1;
15 + if (s == "hc2" || s == "HC2") return CovType::hc2; if (s == "hc3" || s == "HC3") return CovType::hc3;
16 + if (s == "hac" || s == "hac_bartlett" || s == "newey_west") return CovType::hac_bartlett;
17 + if (s == "cluster") return CovType::cluster;
18 + throw RaidError(ErrorCode::invalid_argument, "unknown covariance type '" + std::string(s) + "'");
19 +}
20 +int default_hac_lags(usize n) { return static_cast<int>(std::floor(4.0 * std::pow(static_cast<f64>(n) / 100.0, 2.0 / 9.0))); }
21 +
22 +Eigen::MatrixXd robust_covariance(const Eigen::Ref<const Eigen::MatrixXd>& X, const Eigen::Ref<const Eigen::VectorXd>& e,
23 + const Eigen::Ref<const Eigen::MatrixXd>& xtx_inv, const CovOptions& opt, const Eigen::VectorXd& h) {
24 + const Eigen::Index n = X.rows(), k = X.cols();
25 + RAID_REQUIRE(e.size() == n, invalid_argument, "robust_covariance: residual length");
26 + const f64 nd = static_cast<f64>(n), kd = static_cast<f64>(k);
27 + switch (opt.type) {
28 + case CovType::classical: {
29 + RAID_REQUIRE(n > k, insufficient_samples, "classical covariance needs n > k");
30 + const f64 s2 = e.squaredNorm() / (nd - kd);
31 + return s2 * xtx_inv;
32 + }
33 + case CovType::hc0: case CovType::hc1: case CovType::hc2: case CovType::hc3: {
34 + Eigen::VectorXd w = e.array().square();
35 + if (opt.type == CovType::hc1) w *= nd / (nd - kd);
36 + if (opt.type == CovType::hc2 || opt.type == CovType::hc3) {
37 + RAID_REQUIRE(h.size() == n, invalid_argument, "HC2/HC3 need leverage");
38 + for (Eigen::Index i = 0; i < n; ++i) { const f64 d = 1.0 - h[i]; w[i] /= (opt.type == CovType::hc2 ? d : d * d); }
39 + }
40 + const Eigen::MatrixXd meat = X.transpose() * w.asDiagonal() * X;
41 + return xtx_inv * meat * xtx_inv;
42 + }
43 + case CovType::hac_bartlett: {
44 + const int L = opt.hac_lags < 0 ? default_hac_lags(static_cast<usize>(n)) : opt.hac_lags;
45 + Eigen::MatrixXd S = Eigen::MatrixXd::Zero(k, k);
46 + Eigen::MatrixXd U = X.array().colwise() * e.array(); // scores n×k
47 + S = U.transpose() * U;
48 + for (int l = 1; l <= L; ++l) {
49 + const f64 wl = 1.0 - static_cast<f64>(l) / (static_cast<f64>(L) + 1.0);
50 + const Eigen::MatrixXd G = U.bottomRows(n - l).transpose() * U.topRows(n - l);
51 + S += wl * (G + G.transpose());
52 + }
53 + if (opt.hac_small_sample) S *= nd / (nd - kd);
54 + return xtx_inv * S * xtx_inv;
55 + }
56 + case CovType::cluster: {
57 + RAID_REQUIRE(static_cast<Eigen::Index>(opt.clusters.size()) == n, invalid_argument, "cluster ids length");
58 + std::map<i64, Eigen::VectorXd> sums;
59 + for (Eigen::Index i = 0; i < n; ++i) {
60 + auto it = sums.find(opt.clusters[static_cast<usize>(i)]);
61 + if (it == sums.end()) it = sums.emplace(opt.clusters[static_cast<usize>(i)], Eigen::VectorXd::Zero(k)).first;
62 + it->second += X.row(i).transpose() * e[i];
63 + }
64 + Eigen::MatrixXd S = Eigen::MatrixXd::Zero(k, k);
65 + for (auto& [g, s] : sums) S += s * s.transpose();
66 + const f64 G = static_cast<f64>(sums.size());
67 + f64 corr = 1.0;
68 + if (opt.cluster_small_sample) { RAID_REQUIRE(G > 1 && n > k, insufficient_samples, "cluster correction needs G > 1, n > k"); corr = (G / (G - 1.0)) * ((nd - 1.0) / (nd - kd)); }
69 + return corr * (xtx_inv * S * xtx_inv);
70 + }
71 + }
72 + throw RaidError(ErrorCode::invalid_argument, "unknown CovType");
73 +}
74 +
75 +} // namespace raid::stats
added src/statistics/reductions.cpp +48 −0
@@ -0,0 +1,48 @@
1 +#include "raid/statistics/reductions.hpp"
2 +
3 +namespace raid::stats {
4 +
5 +Moments moments(std::span<const f64> x) {
6 + RAID_REQUIRE(x.size() >= 2, insufficient_samples, "moments need n >= 2");
7 + const f64 n = static_cast<f64>(x.size());
8 + const f64 m = sum_neumaier(x) / n;
9 + std::vector<f64> d2(x.size()), d3(x.size()), d4(x.size());
10 + f64 mn = x[0], mx = x[0];
11 + for (usize i = 0; i < x.size(); ++i) {
12 + const f64 d = x[i] - m; d2[i] = d * d; d3[i] = d2[i] * d; d4[i] = d2[i] * d2[i];
13 + mn = std::min(mn, x[i]); mx = std::max(mx, x[i]);
14 + }
15 + const f64 m2 = sum_neumaier(std::span<const f64>(d2)) / n, m3 = sum_neumaier(std::span<const f64>(d3)) / n, m4 = sum_neumaier(std::span<const f64>(d4)) / n;
16 + const f64 var_unb = sum_neumaier(std::span<const f64>(d2)) / (n - 1.0);
17 + return {x.size(), m, var_unb, m2 > 0 ? m3 / std::pow(m2, 1.5) : std::numeric_limits<f64>::quiet_NaN(), m2 > 0 ? m4 / (m2 * m2) - 3.0 : std::numeric_limits<f64>::quiet_NaN(), mn, mx};
18 +}
19 +
20 +f64 autocovariance(std::span<const f64> x, usize k, bool demean) {
21 + RAID_REQUIRE(k < x.size(), insufficient_samples, "autocovariance lag >= n");
22 + const f64 n = static_cast<f64>(x.size());
23 + const f64 m = demean ? sum_neumaier(x) / n : 0.0;
24 + std::vector<f64> p(x.size() - k);
25 + for (usize i = 0; i + k < x.size(); ++i) p[i] = (x[i] - m) * (x[i + k] - m);
26 + return sum_neumaier(std::span<const f64>(p)) / n;
27 +}
28 +
29 +std::vector<f64> autocorrelation(std::span<const f64> x, usize max_lag) {
30 + const f64 c0 = autocovariance(x, 0);
31 + std::vector<f64> r(max_lag + 1, 1.0);
32 + for (usize k = 1; k <= max_lag && k < x.size(); ++k) r[k] = c0 > 0 ? autocovariance(x, k) / c0 : std::numeric_limits<f64>::quiet_NaN();
33 + return r;
34 +}
35 +
36 +Drawdown max_drawdown(std::span<const f64> cum) {
37 + Drawdown d{0.0, 0, 0};
38 + if (cum.empty()) return d;
39 + f64 peak = cum[0]; usize peak_i = 0;
40 + for (usize i = 0; i < cum.size(); ++i) {
41 + if (cum[i] > peak) { peak = cum[i]; peak_i = i; }
42 + const f64 dd = peak != 0.0 ? (peak - cum[i]) / peak : 0.0;
43 + if (dd > d.max_drawdown) { d.max_drawdown = dd; d.peak_index = peak_i; d.trough_index = i; }
44 + }
45 + return d;
46 +}
47 +
48 +} // namespace raid::stats
added src/statistics/rolling.cpp +111 −0
@@ -0,0 +1,111 @@
1 +#include "raid/statistics/rolling.hpp"
2 +#include "raid/statistics/reductions.hpp"
3 +#include "raid/core/error.hpp"
4 +#include <cmath>
5 +
6 +namespace raid::stats {
7 +
8 +namespace {
9 +struct RunningSum {
10 + f64 s{0}, c{0};
11 + void add(f64 v) { const f64 t = s + v; if (std::abs(s) >= std::abs(v)) c += (s - t) + v; else c += (v - t) + s; s = t; }
12 + f64 value() const { return s + c; }
13 + void reset(f64 exact) { s = exact; c = 0; }
14 +};
15 +inline usize minp(const RollingOptions& o) { return o.min_periods == 0 ? o.window : o.min_periods; }
16 +} // namespace
17 +
18 +std::vector<f64> rolling_sum(std::span<const f64> x, const RollingOptions& o) {
19 + RAID_REQUIRE(o.window >= 1, invalid_argument, "window must be >= 1");
20 + const usize n = x.size(), w = o.window, mp = minp(o);
21 + std::vector<f64> out(n, kNaN);
22 + RunningSum rs; usize since_resum = 0;
23 + for (usize i = 0; i < n; ++i) {
24 + rs.add(x[i]);
25 + if (i >= w) rs.add(-x[i - w]);
26 + if (++since_resum >= o.resum_every) { const usize b = i + 1 >= w ? i + 1 - w : 0; rs.reset(sum_neumaier(x.subspan(b, i + 1 - b))); since_resum = 0; }
27 + const usize count = i + 1 < w ? i + 1 : w;
28 + if (count >= mp) out[i] = rs.value();
29 + }
30 + return out;
31 +}
32 +
33 +std::vector<f64> rolling_mean(std::span<const f64> x, const RollingOptions& o) {
34 + auto s = rolling_sum(x, o);
35 + for (usize i = 0; i < s.size(); ++i) { const usize count = i + 1 < o.window ? i + 1 : o.window; s[i] /= static_cast<f64>(count); }
36 + return s;
37 +}
38 +
39 +std::vector<f64> rolling_variance(std::span<const f64> x, const RollingOptions& o, int ddof) {
40 + // Two accumulators (sum, sum of squares about a per-window shift) would still cancel for large means;
41 + // we recompute each window by Welford from scratch when the window is small (<= 64), otherwise use the
42 + // shifted-sums formula with periodic exact re-summation. Both are FP64 references; speed is not the goal here.
43 + const usize n = x.size(), w = o.window, mp = minp(o);
44 + std::vector<f64> out(n, kNaN);
45 + if (w <= 64) {
46 + for (usize i = 0; i < n; ++i) {
47 + const usize b = i + 1 >= w ? i + 1 - w : 0; const usize count = i + 1 - b;
48 + if (count < mp || count <= static_cast<usize>(ddof)) continue;
49 + Welford wf; for (usize j = b; j <= i; ++j) wf.add(x[j]);
50 + out[i] = wf.variance(ddof);
51 + }
52 + return out;
53 + }
54 + const f64 shift_c = x.empty() ? 0.0 : x[0];
55 + RunningSum s1, s2; usize since = 0;
56 + for (usize i = 0; i < n; ++i) {
57 + const f64 d = x[i] - shift_c; s1.add(d); s2.add(d * d);
58 + if (i >= w) { const f64 e = x[i - w] - shift_c; s1.add(-e); s2.add(-e * e); }
59 + if (++since >= o.resum_every) {
60 + const usize b = i + 1 >= w ? i + 1 - w : 0; f64 a = 0, q = 0;
61 + std::vector<f64> t1(i + 1 - b), t2(i + 1 - b);
62 + for (usize j = b; j <= i; ++j) { t1[j - b] = x[j] - shift_c; t2[j - b] = t1[j - b] * t1[j - b]; }
63 + a = sum_neumaier(std::span<const f64>(t1)); q = sum_neumaier(std::span<const f64>(t2)); s1.reset(a); s2.reset(q); since = 0;
64 + }
65 + const usize count = i + 1 < w ? i + 1 : w;
66 + if (count >= mp && count > static_cast<usize>(ddof)) {
67 + const f64 cnt = static_cast<f64>(count), m = s1.value() / cnt;
68 + out[i] = std::max(0.0, (s2.value() - cnt * m * m) / (cnt - static_cast<f64>(ddof)));
69 + }
70 + }
71 + return out;
72 +}
73 +
74 +std::vector<f64> rolling_covariance(std::span<const f64> x, std::span<const f64> y, const RollingOptions& o, int ddof) {
75 + RAID_REQUIRE(x.size() == y.size(), invalid_argument, "rolling_covariance: size mismatch");
76 + const usize n = x.size(), w = o.window, mp = minp(o);
77 + std::vector<f64> out(n, kNaN);
78 + for (usize i = 0; i < n; ++i) {
79 + const usize b = i + 1 >= w ? i + 1 - w : 0; const usize count = i + 1 - b;
80 + if (count < mp || count <= static_cast<usize>(ddof)) continue;
81 + f64 mx = sum_neumaier(x.subspan(b, count)) / static_cast<f64>(count), my = sum_neumaier(y.subspan(b, count)) / static_cast<f64>(count);
82 + f64 s = 0, c = 0;
83 + for (usize j = b; j <= i; ++j) { const f64 v = (x[j] - mx) * (y[j] - my), t = s + v; if (std::abs(s) >= std::abs(v)) c += (s - t) + v; else c += (v - t) + s; s = t; }
84 + out[i] = (s + c) / static_cast<f64>(count - static_cast<usize>(ddof));
85 + }
86 + return out;
87 +}
88 +
89 +std::vector<f64> rolling_correlation(std::span<const f64> x, std::span<const f64> y, const RollingOptions& o) {
90 + auto cxy = rolling_covariance(x, y, o, 1); auto vx = rolling_variance(x, o, 1); auto vy = rolling_variance(y, o, 1);
91 + for (usize i = 0; i < cxy.size(); ++i) cxy[i] = (vx[i] > 0 && vy[i] > 0) ? cxy[i] / std::sqrt(vx[i] * vy[i]) : kNaN;
92 + return cxy;
93 +}
94 +
95 +std::vector<f64> expanding_mean(std::span<const f64> x, usize min_periods) {
96 + std::vector<f64> out(x.size(), kNaN); Welford w;
97 + for (usize i = 0; i < x.size(); ++i) { w.add(x[i]); if (w.n >= min_periods) out[i] = w.mean; }
98 + return out;
99 +}
100 +std::vector<f64> expanding_variance(std::span<const f64> x, usize min_periods, int ddof) {
101 + std::vector<f64> out(x.size(), kNaN); Welford w;
102 + for (usize i = 0; i < x.size(); ++i) { w.add(x[i]); if (w.n >= min_periods) out[i] = w.variance(ddof); }
103 + return out;
104 +}
105 +std::vector<f64> shift(std::span<const f64> x, long k) {
106 + std::vector<f64> out(x.size(), kNaN);
107 + for (usize i = 0; i < x.size(); ++i) { const long j = static_cast<long>(i) - k; if (j >= 0 && j < static_cast<long>(x.size())) out[i] = x[static_cast<usize>(j)]; }
108 + return out;
109 +}
110 +
111 +} // namespace raid::stats
added tests/reference/test_reference_values.cpp +75 −0
@@ -0,0 +1,75 @@
1 +// Reference tests: RAID vs established software on the committed fixtures (values produced by scripts/make_fixtures.py
2 +// with statsmodels 0.15 / scipy 1.18 / arch 8.0 / exchange_calendars 4.13; versions recorded in reference_values.json).
3 +#include <catch2/catch_test_macros.hpp>
4 +#include <catch2/matchers/catch_matchers_floating_point.hpp>
5 +#include <nlohmann/json.hpp>
6 +#include <fstream>
7 +#include <set>
8 +#include "raid/estimators/ols.hpp"
9 +#include "raid/estimators/realized.hpp"
10 +#include "raid/models/garch.hpp"
11 +#include "raid/data/calendar.hpp"
12 +#include "raid/data/io.hpp"
13 +#include "raid/data/returns.hpp"
14 +using namespace raid; using json = nlohmann::json; using Catch::Matchers::WithinRel; using Catch::Matchers::WithinAbs;
15 +
16 +static json load_ref() { std::ifstream f(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/reference_values.json"); REQUIRE(f.good()); json j; f >> j; return j; }
17 +static void load_csv(const std::string& p, std::vector<std::vector<double>>& rows) { std::ifstream f(p); REQUIRE(f.good()); std::string line; std::getline(f, line); while (std::getline(f, line)) { if (line.empty()) continue; std::vector<double> r; usize s = 0; for (usize i = 0; i <= line.size(); ++i) if (i == line.size() || line[i] == ',') { r.push_back(std::stod(line.substr(s, i - s))); s = i + 1; } rows.push_back(r); } }
18 +
19 +TEST_CASE("OLS and robust standard errors match statsmodels", "[reference][ols]") {
20 + auto ref = load_ref()["ols"]; std::vector<std::vector<double>> rows; load_csv(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/ols_design.csv", rows);
21 + const Eigen::Index n = static_cast<Eigen::Index>(rows.size()); Eigen::MatrixXd X(n, 3); Eigen::VectorXd y(n);
22 + for (Eigen::Index i = 0; i < n; ++i) { y[i] = rows[i][0]; X(i, 0) = 1; X(i, 1) = rows[i][1]; X(i, 2) = rows[i][2]; }
23 + auto r = est::ols(X, y);
24 + for (int j = 0; j < 3; ++j) { CHECK_THAT(r.estimate.coefficients[j], WithinRel(ref["params"][j].get<double>(), 1e-10)); CHECK_THAT(r.estimate.inference->std_errors[j], WithinRel(ref["bse"][j].get<double>(), 1e-9)); CHECK_THAT(r.estimate.inference->p_values[j], WithinAbs(ref["pvalues"][j].get<double>(), 1e-9)); }
25 + CHECK_THAT(r.r2, WithinRel(ref["rsquared"].get<double>(), 1e-10)); CHECK_THAT(r.estimate.loss, WithinRel(ref["ssr"].get<double>(), 1e-10));
26 + est::OlsOptions o; o.cov.type = stats::CovType::hc0; auto h0 = est::ols(X, y, o); o.cov.type = stats::CovType::hc3; auto h3 = est::ols(X, y, o);
27 + o.cov.type = stats::CovType::hac_bartlett; o.cov.hac_lags = 5; auto hac = est::ols(X, y, o);
28 + std::vector<i64> g(static_cast<usize>(n)); for (Eigen::Index i = 0; i < n; ++i) g[static_cast<usize>(i)] = i / 25; o.cov.type = stats::CovType::cluster; o.cov.clusters = g; auto cl = est::ols(X, y, o);
29 + for (int j = 0; j < 3; ++j) { CHECK_THAT(h0.estimate.inference->std_errors[j], WithinRel(ref["hc0_bse"][j].get<double>(), 1e-9)); CHECK_THAT(h3.estimate.inference->std_errors[j], WithinRel(ref["hc3_bse"][j].get<double>(), 1e-9)); CHECK_THAT(hac.estimate.inference->std_errors[j], WithinRel(ref["hac5_bse"][j].get<double>(), 1e-9)); CHECK_THAT(cl.estimate.inference->std_errors[j], WithinRel(ref["cluster_bse"][j].get<double>(), 1e-9)); }
30 + CHECK_THAT(est::t_pvalue_two_sided(1.96, 0), WithinAbs(ref["t_pvalues"]["1.96_inf"].get<double>(), 1e-12));
31 + CHECK_THAT(est::t_pvalue_two_sided(2.0, 10), WithinAbs(ref["t_pvalues"]["2.0_10"].get<double>(), 1e-12));
32 +}
33 +
34 +TEST_CASE("XNYS calendar matches exchange_calendars", "[reference][calendar]") {
35 + auto ref = load_ref()["xnys"]; if (ref.contains("error")) { WARN("exchange_calendars unavailable when fixtures were generated: " + ref["error"].get<std::string>()); return; }
36 + MarketCalendar cal; std::set<std::string> ours; for (auto d : cal.sessions(Date::from_ymd(2000, 1, 1), Date::from_ymd(2026, 12, 31))) ours.insert(d.iso());
37 + CHECK(ours.size() == ref["n_sessions_2000_2026"].get<usize>());
38 + std::set<std::string> theirs2024; for (auto& s : ref["sessions_2024"]) theirs2024.insert(s.get<std::string>());
39 + std::set<std::string> ours2024; for (auto d : cal.sessions(Date::from_ymd(2024, 1, 1), Date::from_ymd(2024, 12, 31))) ours2024.insert(d.iso());
40 + CHECK(ours2024 == theirs2024);
41 + usize mismatches = 0; for (auto& h : ref["holidays_2000_2026"]) if (ours.count(h.get<std::string>())) { ++mismatches; UNSCOPED_INFO("RAID trades on " << h.get<std::string>() << " but exchange_calendars does not"); }
42 + CHECK(mismatches == 0);
43 + if (!ref["early_closes_2000_2026"].is_null()) { usize bad = 0; for (auto& e : ref["early_closes_2000_2026"]) { Date d = date_from_iso(e.get<std::string>()); if (!cal.is_early_close(d)) { ++bad; UNSCOPED_INFO("missing early close " << e.get<std::string>()); } } CHECK(bad == 0);
44 + usize extra = 0; for (auto d : cal.sessions(Date::from_ymd(2000, 1, 1), Date::from_ymd(2026, 12, 31))) if (cal.is_early_close(d)) { bool found = false; for (auto& e : ref["early_closes_2000_2026"]) if (e.get<std::string>() == d.iso()) found = true; if (!found) { ++extra; UNSCOPED_INFO("extra early close " << d.iso()); } } CHECK(extra == 0); }
45 +}
46 +
47 +TEST_CASE("Realized measures match the fixture truth (numpy)", "[reference][realized]") {
48 + std::ifstream f(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/synthetic_bars_1m.expected.json"); json truth; f >> truth;
49 + auto bars = data::read_bars_csv(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/synthetic_bars_1m.csv"); MarketCalendar cal;
50 + for (auto& [sym, b0] : bars) { auto b = b0; b.normalize(); auto reg = b.filter_session(cal, SessionPolicy::regular); auto ir = data::intraday_returns(reg); est::RealizedOptions o; o.plan.backend = Backend::cpu; auto m = est::realized_measures(ir, o);
51 + REQUIRE(m.sessions.size() == 5);
52 + for (usize k = 0; k < 5; ++k) { auto t = truth[sym][m.sessions[k].iso()]; CHECK(m.n_returns[k] + 1 == t["n_regular_bars"].get<usize>()); CHECK(cal.expected_regular_bars(m.sessions[k], Interval::m1) == t["expected_bars"].get<usize>());
53 + CHECK_THAT(m.rv[k], WithinRel(t["rv"].get<double>(), 1e-12)); CHECK_THAT(m.bpv[k], WithinRel(t["bpv"].get<double>(), 1e-12)); CHECK_THAT(m.rsv_neg[k], WithinRel(t["rsv_neg"].get<double>(), 1e-12)); CHECK_THAT(m.rsv_pos[k], WithinRel(t["rsv_pos"].get<double>(), 1e-12)); CHECK_THAT(m.rq[k], WithinRel(t["rq"].get<double>(), 1e-12)); } }
54 +}
55 +
56 +TEST_CASE("GARCH-family QML matches the arch package within tolerance", "[reference][garch]") {
57 + auto ref = load_ref()["garch"]; if (ref.contains("error")) { WARN("arch unavailable: " + ref["error"].get<std::string>()); return; }
58 + std::vector<std::vector<double>> rows; load_csv(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/garch_returns.csv", rows); std::vector<double> r; for (auto& x : rows) r.push_back(x[0]);
59 + struct Case { const char* key; models::GarchModel m; models::GarchDist d; std::vector<const char*> arch_names; };
60 + const std::vector<Case> cases = {{"garch.normal", models::GarchModel::garch, models::GarchDist::gaussian, {"mu", "omega", "alpha[1]", "beta[1]"}},
61 + {"gjr.normal", models::GarchModel::gjr, models::GarchDist::gaussian, {"mu", "omega", "alpha[1]", "gamma[1]", "beta[1]"}},
62 + {"garch.t", models::GarchModel::garch, models::GarchDist::student_t, {"mu", "omega", "alpha[1]", "beta[1]", "nu"}},
63 + {"egarch.normal", models::GarchModel::egarch, models::GarchDist::gaussian, {"mu", "omega", "alpha[1]", "gamma[1]", "beta[1]"}}};
64 + for (auto& c : cases) {
65 + auto a = ref[c.key]; models::GarchFitOptions o; o.model = c.m; o.dist = c.d; o.forecast_horizon = 5; auto fit = models::garch_fit(r, o);
66 + INFO(c.key); REQUIRE(fit.ok());
67 + // Both maximise the same likelihood up to the initial-variance convention: log-likelihoods within 0.05 % and
68 + // parameters within 5 % relative or 0.01 absolute (documented tolerance, see docs/methods/registry.md).
69 + CHECK_THAT(-fit.loss, WithinRel(a["loglik"].get<double>(), 5e-4));
70 + for (usize j = 0; j < c.arch_names.size(); ++j) { const double ours = fit.coefficients[j], theirs = a["params"][c.arch_names[j]].get<double>();
71 + if (std::string(c.arch_names[j]) == "nu" && theirs > 100) continue; // ν unidentified for Gaussian data
72 + INFO(c.arch_names[j] << " ours=" << ours << " arch=" << theirs); CHECK((std::abs(ours - theirs) <= 0.05 * std::abs(theirs) + 0.01)); }
73 + if (c.m != models::GarchModel::egarch) { auto fc = fit.extra["forecast_variance"].get<std::vector<double>>(); for (int h = 0; h < 5; ++h) CHECK_THAT(fc[static_cast<usize>(h)], WithinRel(a["forecast_h5"][h].get<double>(), 0.05)); }
74 + }
75 +}
added tests/unit/test_calendar.cpp +49 −0
@@ -0,0 +1,49 @@
1 +#include <catch2/catch_test_macros.hpp>
2 +#include "raid/data/calendar.hpp"
3 +using namespace raid;
4 +
5 +TEST_CASE("XNYS holidays and early closes", "[calendar]") {
6 + MarketCalendar cal;
7 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 1, 1))); // New Year
8 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 1, 15))); // MLK
9 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 3, 29))); // Good Friday
10 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 6, 19))); // Juneteenth
11 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 7, 4)));
12 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 11, 28))); // Thanksgiving
13 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2024, 12, 25)));
14 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2025, 1, 9))); // Carter funeral
15 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2012, 10, 29))); // Sandy
16 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2001, 9, 11)));
17 + CHECK(cal.is_trading_day(Date::from_ymd(2024, 11, 29)));
18 + CHECK(cal.is_early_close(Date::from_ymd(2024, 11, 29)));
19 + CHECK(cal.is_early_close(Date::from_ymd(2024, 12, 24)));
20 + CHECK(cal.is_early_close(Date::from_ymd(2024, 7, 3))); // July 4 2024 is a Thursday
21 + CHECK_FALSE(cal.is_early_close(Date::from_ymd(2026, 7, 3))); // July 3 2026 is a Friday, July 4 Saturday (observed Friday → holiday)
22 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2026, 7, 3)));
23 + CHECK(cal.is_trading_day(Date::from_ymd(2021, 12, 31))); // Jan 1 2022 Saturday → no Friday holiday
24 + CHECK_FALSE(cal.is_trading_day(Date::from_ymd(2021, 12, 24))); // Christmas 2021 Saturday → observed Friday
25 + CHECK(cal.expected_regular_bars(Date::from_ymd(2024, 11, 27), Interval::m1) == 391);
26 + CHECK(cal.expected_regular_bars(Date::from_ymd(2024, 11, 29), Interval::m1) == 211);
27 + CHECK(cal.expected_regular_bars(Date::from_ymd(2024, 11, 27), Interval::m5) == 79);
28 + CHECK(cal.sessions(Date::from_ymd(2024, 1, 1), Date::from_ymd(2024, 12, 31)).size() == 252);
29 +}
30 +TEST_CASE("New York DST conversions match FinData timestamps", "[calendar]") {
31 + // 2024-03-08 (EST): 04:00 ET = 09:00 UTC ; 2024-03-11 (EDT): 19:59 ET = 23:59 UTC
32 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-03-08T09:00:00Z")) == -18000);
33 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-03-11T23:59:00Z")) == -14400);
34 + auto l = MarketCalendar::to_new_york(timestamp_from_iso("2024-03-11T23:59:00Z")); CHECK(l.date == Date::from_ymd(2024, 3, 11)); CHECK(l.minute_of_day == 19 * 60 + 59);
35 + auto s = MarketCalendar{}.session(Date::from_ymd(2024, 3, 11));
36 + CHECK(timestamp_iso(s.open_utc) == "2024-03-11T13:30:00.000000Z"); CHECK(timestamp_iso(s.close_utc) == "2024-03-11T20:00:00.000000Z");
37 + auto s2 = MarketCalendar{}.session(Date::from_ymd(2024, 11, 29)); CHECK(timestamp_iso(s2.close_utc) == "2024-11-29T18:00:00.000000Z"); CHECK(s2.early_close);
38 + CHECK(timestamp_iso(s2.ext_close_utc) == "2024-11-29T22:00:00.000000Z");
39 + // DST transition instants: 2024-03-10 06:59 UTC is EST, 07:00 UTC is EDT; 2024-11-03 05:59 UTC EDT, 06:00 UTC EST
40 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-03-10T06:59:00Z")) == -18000);
41 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-03-10T07:00:00Z")) == -14400);
42 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-11-03T05:59:00Z")) == -14400);
43 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2024-11-03T06:00:00Z")) == -18000);
44 + // pre-2007 rules: 2006 DST from April 2 to October 29
45 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2006-03-15T12:00:00Z")) == -18000);
46 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2006-04-03T12:00:00Z")) == -14400);
47 + CHECK(MarketCalendar::new_york_offset(timestamp_from_iso("2006-10-30T12:00:00Z")) == -18000);
48 + CHECK(MarketCalendar::session_of(timestamp_from_iso("2024-03-11T23:59:00Z")) == Date::from_ymd(2024, 3, 11));
49 +}
added tests/unit/test_core.cpp +48 −0
@@ -0,0 +1,48 @@
1 +#include <catch2/catch_test_macros.hpp>
2 +#include <catch2/matchers/catch_matchers_floating_point.hpp>
3 +#include "raid/core/types.hpp"
4 +#include "raid/core/error.hpp"
5 +#include "raid/core/hash.hpp"
6 +#include "raid/core/rng.hpp"
7 +#include "raid/core/log.hpp"
8 +#include "raid/core/thread_pool.hpp"
9 +#include <atomic>
10 +using namespace raid;
11 +
12 +TEST_CASE("Date round trips and weekdays", "[core]") {
13 + Date d = Date::from_ymd(2024, 3, 11); auto y = d.ymd();
14 + CHECK(y.year == 2024); CHECK(y.month == 3); CHECK(y.day == 11); CHECK(d.weekday() == 1); // Monday
15 + CHECK(Date::from_ymd(1970, 1, 1).days == 0); CHECK(Date::from_ymd(1970, 1, 1).weekday() == 4);
16 + CHECK(date_from_iso("2000-02-29").iso() == "2000-02-29"); CHECK(Date::from_ymd(2026, 11, 2).weekday() == 1);
17 +}
18 +TEST_CASE("Timestamp ISO parsing", "[core]") {
19 + CHECK(timestamp_from_iso("2024-03-08T09:00:00Z").us == 1709888400000000LL);
20 + CHECK(timestamp_from_iso("2024-03-08T04:00:00-05:00").us == 1709888400000000LL);
21 + CHECK(timestamp_from_iso("2024-03-08T09:00:00.250000+00:00").us == 1709888400250000LL);
22 + CHECK(timestamp_iso(Timestamp(1709888400000000LL)) == "2024-03-08T09:00:00.000000Z");
23 + CHECK_THROWS_AS(timestamp_from_iso("2024-13-01"), RaidError);
24 +}
25 +TEST_CASE("SHA-256 known answers", "[core]") {
26 + CHECK(Sha256::of("") == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
27 + CHECK(Sha256::of("abc") == "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad");
28 + std::string big(1000, 'a'); Sha256 h; for (int i = 0; i < 1000; ++i) h.update(big);
29 + CHECK(h.hex() == "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0");
30 +}
31 +TEST_CASE("RNG determinism and moments", "[core]") {
32 + Rng a(42, 1), b(42, 1), c(42, 2);
33 + CHECK(a.next_u64() == b.next_u64()); CHECK(a.next_u64() != c.next_u64());
34 + Rng r(7, 0); double s = 0, s2 = 0; const int n = 200000; for (int i = 0; i < n; ++i) { double z = r.normal(); s += z; s2 += z * z; }
35 + CHECK_THAT(s / n, Catch::Matchers::WithinAbs(0.0, 0.01)); CHECK_THAT(s2 / n, Catch::Matchers::WithinAbs(1.0, 0.02));
36 + double st = 0; for (int i = 0; i < n; ++i) { double z = r.student_t(5.0); st += z * z; } CHECK_THAT(st / n, Catch::Matchers::WithinAbs(5.0 / 3.0, 0.05));
37 +}
38 +TEST_CASE("Log redaction hides keys", "[core]") {
39 + CHECK(log::redact("Authorization: Bearer fd_abc123.SECRET") == "Authorization: Bearer <redacted>");
40 + CHECK(log::redact("url?userid=XYZ&x=1") == "url?userid=<redacted>&x=1");
41 + CHECK(log::redact("key fd_abc.def inside") == "key <redacted> inside");
42 +}
43 +TEST_CASE("Thread pool parallel_for covers the range once and propagates exceptions", "[core]") {
44 + ThreadPool p(4); std::atomic<long> acc{0};
45 + p.parallel_for(100000, [&](usize b, usize e) { long s = 0; for (usize i = b; i < e; ++i) s += static_cast<long>(i); acc += s; });
46 + CHECK(acc.load() == 4999950000L);
47 + CHECK_THROWS_AS(p.parallel_for(10, [](usize, usize) { throw RaidError(ErrorCode::numerical, "boom"); }), RaidError);
48 +}
added tests/unit/test_ols.cpp +44 −0
@@ -0,0 +1,44 @@
1 +#include <catch2/catch_test_macros.hpp>
2 +#include <catch2/matchers/catch_matchers_floating_point.hpp>
3 +#include "raid/estimators/ols.hpp"
4 +#include "raid/core/rng.hpp"
5 +using namespace raid; using Catch::Matchers::WithinAbs; using Catch::Matchers::WithinRel;
6 +
7 +static void make_design(Eigen::MatrixXd& X, Eigen::VectorXd& y, int n = 500, u64 seed = 11) {
8 + Rng r(seed); X.resize(n, 3); y.resize(n);
9 + for (int i = 0; i < n; ++i) { X(i, 0) = 1; X(i, 1) = r.normal(); X(i, 2) = r.normal() * 2 + 1; y[i] = 0.5 + 1.5 * X(i, 1) - 0.7 * X(i, 2) + r.normal() * (1 + 0.5 * std::abs(X(i, 1))); }
10 +}
11 +TEST_CASE("OLS recovers coefficients; QR, SVD and sufficient statistics agree", "[ols]") {
12 + Eigen::MatrixXd X; Eigen::VectorXd y; make_design(X, y);
13 + auto a = est::ols(X, y); est::OlsOptions o2; o2.solver = est::Solver::svd; auto b = est::ols(X, y, o2);
14 + auto c = est::ols_from_stats(est::accumulate(X, y));
15 + for (int j = 0; j < 3; ++j) { CHECK_THAT(a.estimate.coefficients[j], WithinRel(b.estimate.coefficients[j], 1e-10)); CHECK_THAT(a.estimate.coefficients[j], WithinRel(c.estimate.coefficients[j], 1e-9)); CHECK_THAT(a.estimate.inference->std_errors[j], WithinRel(c.estimate.inference->std_errors[j], 1e-8)); }
16 + CHECK_THAT(a.estimate.coefficients[1], WithinAbs(1.5, 0.15)); CHECK(a.estimate.ok()); CHECK(a.rank == 3);
17 + CHECK_THAT(a.estimate.loss, WithinRel(a.residuals.squaredNorm(), 1e-12));
18 +}
19 +TEST_CASE("Robust covariances are PSD and HC1 = HC0 * n/(n-k)", "[ols]") {
20 + Eigen::MatrixXd X; Eigen::VectorXd y; make_design(X, y);
21 + est::OlsOptions o; o.cov.type = stats::CovType::hc0; auto h0 = est::ols(X, y, o); o.cov.type = stats::CovType::hc1; auto h1 = est::ols(X, y, o);
22 + o.cov.type = stats::CovType::hc3; auto h3 = est::ols(X, y, o); o.cov.type = stats::CovType::hac_bartlett; o.cov.hac_lags = 5; auto hac = est::ols(X, y, o);
23 + const double f = 500.0 / 497.0;
24 + for (int j = 0; j < 3; ++j) { CHECK_THAT(h1.estimate.inference->covariance(j, j), WithinRel(f * h0.estimate.inference->covariance(j, j), 1e-12)); CHECK(h3.estimate.inference->std_errors[j] >= h0.estimate.inference->std_errors[j] * 0.99); CHECK(hac.estimate.inference->std_errors[j] > 0); }
25 + CHECK(hac.estimate.inference->covariance_type == "hac_bartlett(5)");
26 + std::vector<i64> cl(500); for (int i = 0; i < 500; ++i) cl[i] = i / 25; o.cov.type = stats::CovType::cluster; o.cov.clusters = cl; auto c = est::ols(X, y, o);
27 + Eigen::SelfAdjointEigenSolver<Eigen::MatrixXd> es(c.estimate.inference->covariance); CHECK(es.eigenvalues().minCoeff() >= -1e-12);
28 +}
29 +TEST_CASE("Rank deficiency and ridge", "[ols]") {
30 + Eigen::MatrixXd X; Eigen::VectorXd y; make_design(X, y); Eigen::MatrixXd Xd(X.rows(), 4); Xd << X, X.col(1) * 2.0;
31 + auto r = est::ols(Xd, y); CHECK(r.rank == 3); CHECK_FALSE(r.estimate.warnings.empty());
32 + est::OlsOptions o; o.ridge_lambda = 10.0; o.unpenalized = {0}; auto rr = est::ols(X, y, o); auto ols = est::ols(X, y);
33 + CHECK(std::abs(rr.estimate.coefficients[1]) < std::abs(ols.estimate.coefficients[1])); CHECK(rr.estimate.model == "ridge");
34 +}
35 +TEST_CASE("Rolling OLS matches window-by-window OLS", "[ols]") {
36 + Eigen::MatrixXd X; Eigen::VectorXd y; make_design(X, y, 300);
37 + auto roll = est::rolling_ols(X, y, 100, 50); CHECK(roll.coefficients.cols() == 5);
38 + auto w = est::ols(X.middleRows(50, 100), y.segment(50, 100)); for (int j = 0; j < 3; ++j) CHECK_THAT(roll.coefficients(j, 1), WithinRel(w.estimate.coefficients[j], 1e-10));
39 +}
40 +TEST_CASE("t p-values match known values", "[ols]") {
41 + CHECK_THAT(est::t_pvalue_two_sided(1.96, 0), WithinAbs(0.04999579, 1e-7));
42 + CHECK_THAT(est::t_pvalue_two_sided(2.0, 10), WithinAbs(0.07338803, 1e-7)); // scipy.stats.t.sf(2,10)*2
43 + CHECK_THAT(est::t_pvalue_two_sided(-3.0, 30), WithinAbs(0.00538996, 1e-7));
44 +}
added tests/unit/test_realized_garch.cpp +54 −0
@@ -0,0 +1,54 @@
1 +#include <catch2/catch_test_macros.hpp>
2 +#include <catch2/matchers/catch_matchers_floating_point.hpp>
3 +#include "raid/estimators/realized.hpp"
4 +#include "raid/models/garch.hpp"
5 +#include "raid/core/rng.hpp"
6 +#include "raid/data/io.hpp"
7 +#include "raid/data/returns.hpp"
8 +#include "raid/data/resample.hpp"
9 +#include <cmath>
10 +using namespace raid; using Catch::Matchers::WithinAbs; using Catch::Matchers::WithinRel;
11 +
12 +TEST_CASE("Realized measures on a known segment", "[realized]") {
13 + std::vector<f64> r = {0.01, -0.02, 0.015, -0.005, 0.0}; std::vector<i64> off = {0, 5};
14 + backend::Batch b{r, off}; est::RealizedOptions o; o.plan.backend = Backend::cpu; auto m = est::realized_measures_batch(b, o);
15 + CHECK_THAT(m.rv[0], WithinRel(0.0001 + 0.0004 + 0.000225 + 0.000025, 1e-14));
16 + CHECK_THAT(m.rsv_neg[0], WithinRel(0.0004 + 0.000025, 1e-14)); CHECK_THAT(m.rsv_pos[0], WithinRel(0.0001 + 0.000225, 1e-14));
17 + const double adj = 0.01 * 0.02 + 0.02 * 0.015 + 0.015 * 0.005 + 0.0;
18 + CHECK_THAT(m.bpv[0], WithinRel((M_PI / 2.0) * (5.0 / 4.0) * adj, 1e-13));
19 + CHECK_THAT(m.rq[0], WithinRel((5.0 / 3.0) * (1e-8 + 1.6e-7 + 5.0625e-8 + 6.25e-10), 1e-12));
20 + CHECK_THAT(m.daily_return[0], WithinAbs(0.0, 1e-15)); CHECK(m.stats.backend == Backend::cpu);
21 + CHECK_THAT(est::mu_p(1.0), WithinRel(est::kMu1, 1e-14)); CHECK_THAT(est::mu_p(4.0 / 3.0), WithinRel(0.8308, 1e-3));
22 +}
23 +TEST_CASE("Intraday returns respect session boundaries and the synthetic fixture validates", "[realized][data]") {
24 + auto bars = data::read_bars_csv(std::string(RAID_SOURCE_DIR) + "/datasets/fixtures/synthetic_bars_1m.csv");
25 + REQUIRE(bars.count("SYN1")); auto& b = bars["SYN1"]; MarketCalendar cal; auto q = b.validate(cal);
26 + CHECK(q.n_sessions == 5); CHECK_FALSE(q.has_errors()); CHECK(q.coverage > 0.95);
27 + auto reg = b.filter_session(cal, SessionPolicy::regular); auto ir = data::intraday_returns(reg);
28 + CHECK(ir.session_offsets.size() == 6); CHECK(static_cast<usize>(ir.session_offsets[1]) == reg.session_closes(0).size() - 1);
29 + CHECK(std::isnan(ir.overnight[0])); CHECK(std::isfinite(ir.overnight[1]));
30 + auto agg = data::aggregate(reg, Interval::m5, cal); CHECK(agg.n_sessions() == 5); CHECK(agg.session_closes(0).size() <= 79);
31 + CHECK_THAT(agg.close[static_cast<usize>(agg.session_offsets[1]) - 1], WithinRel(reg.close[static_cast<usize>(reg.session_offsets[1]) - 1], 1e-15));
32 + f64 v5 = 0; for (usize i = 0; i < agg.session_closes(0).size(); ++i) v5 += agg.volume[i]; f64 v1 = 0; for (usize i = 0; i < reg.session_closes(0).size(); ++i) v1 += reg.volume[i]; CHECK_THAT(v5, WithinRel(v1, 1e-12));
33 +}
34 +TEST_CASE("GARCH likelihood, transforms and fit on simulated data", "[garch]") {
35 + using namespace models; Rng rng(2024, 0); const usize n = 3000; std::vector<f64> r(n); f64 s2 = 0.04 / (1 - 0.05 - 0.9), e = 0;
36 + for (usize t = 0; t < n; ++t) { s2 = 0.04 + 0.05 * e * e + 0.9 * s2; e = std::sqrt(s2) * rng.normal(); r[t] = 0.01 + e; }
37 + std::vector<f64> th = {0.01, 0.04, 0.05, 0.9};
38 + CHECK(garch_params_valid(th, GarchModel::garch, GarchDist::gaussian)); std::vector<f64> bad = {0.0, 0.04, 0.5, 0.6}; CHECK_FALSE(garch_params_valid(bad, GarchModel::garch, GarchDist::gaussian));
39 + auto u = garch_to_unconstrained(th, GarchModel::garch, GarchDist::gaussian); auto back = garch_from_unconstrained(u, GarchModel::garch, GarchDist::gaussian);
40 + for (usize j = 0; j < 4; ++j) CHECK_THAT(back[j], WithinRel(th[j], 1e-8));
41 + const f64 nll = garch_nll(r, th, GarchModel::garch, GarchDist::gaussian); CHECK(std::isfinite(nll)); std::vector<f64> neg = {0.0, -1.0, 0.05, 0.9}; CHECK(std::isinf(garch_nll(r, neg, GarchModel::garch, GarchDist::gaussian)));
42 + GarchFitOptions o; o.forecast_horizon = 5; auto fit = garch_fit(r, o);
43 + REQUIRE(fit.ok()); CHECK(fit.loss <= nll + 1e-6);
44 + CHECK_THAT(fit.coefficients[3], WithinAbs(0.9, 0.06)); CHECK_THAT(fit.coefficients[2], WithinAbs(0.05, 0.03)); CHECK(fit.inference->std_errors[3] > 0);
45 + auto fc = fit.extra["forecast_variance"].get<std::vector<f64>>(); CHECK(fc.size() == 5); CHECK(fc[0] > 0);
46 + // GJR & EGARCH & t fits must at least converge on this series
47 + o.model = GarchModel::gjr; o.forecast_horizon = 0; CHECK(garch_fit(r, o).ok());
48 + o.model = GarchModel::egarch; auto ef = garch_fit(r, o); REQUIRE(ef.ok()); CHECK_THAT(ef.coefficients[4], WithinAbs(0.95, 0.1));
49 + o.model = GarchModel::garch; o.dist = GarchDist::student_t; auto tf = garch_fit(r, o); CHECK(tf.ok()); CHECK(tf.coefficients.back() > 2.0);
50 +}
51 +TEST_CASE("Non-convergence is never reported as success", "[garch]") {
52 + using namespace models; std::vector<f64> r(100, 0.0); r[50] = 1.0; // degenerate series
53 + GarchFitOptions o; o.max_iter = 1; auto fit = garch_fit(r, o); CHECK_FALSE(fit.ok());
54 +}
added tests/unit/test_stats.cpp +39 −0
@@ -0,0 +1,39 @@
1 +#include <catch2/catch_test_macros.hpp>
2 +#include <catch2/matchers/catch_matchers_floating_point.hpp>
3 +#include "raid/statistics/reductions.hpp"
4 +#include "raid/statistics/rolling.hpp"
5 +#include "raid/core/rng.hpp"
6 +#include <cmath>
7 +using namespace raid; using namespace raid::stats; using Catch::Matchers::WithinAbs; using Catch::Matchers::WithinRel;
8 +
9 +TEST_CASE("Compensated sums beat naive summation on adversarial inputs", "[stats]") {
10 + std::vector<f64> x = {1e16, 1.0, -1e16, 1.0};
11 + CHECK(sum_naive<f64>(x) == 2.0 - 2.0 + 0.0 + 0.0 + sum_naive<f64>(x) - sum_naive<f64>(x) + sum_naive<f64>(x)); // naive == 0 or 1
12 + CHECK(sum_neumaier<f64>(x) == 2.0);
13 + std::vector<f64> y(1'000'000, 0.1); CHECK_THAT(sum_neumaier<f64>(y), WithinAbs(100000.0, 1e-9)); CHECK_THAT(sum_pairwise<f64>(y), WithinAbs(100000.0, 1e-6));
14 +}
15 +TEST_CASE("Welford variance and merge", "[stats]") {
16 + Rng r(1); std::vector<f64> x(10001); for (auto& v : x) v = 1e6 + r.normal();
17 + Welford a, b; for (usize i = 0; i < 5000; ++i) a.add(x[i]); for (usize i = 5000; i < x.size(); ++i) b.add(x[i]); Welford c = a; c.merge(b);
18 + Welford full; for (f64 v : x) full.add(v);
19 + CHECK_THAT(c.variance(), WithinRel(full.variance(), 1e-10)); CHECK_THAT(c.mean, WithinRel(full.mean, 1e-12)); CHECK_THAT(full.variance(), WithinAbs(1.0, 0.05));
20 +}
21 +TEST_CASE("Moments, autocovariance, drawdown", "[stats]") {
22 + std::vector<f64> x = {1, 2, 3, 4, 5}; auto m = moments(x);
23 + CHECK_THAT(m.mean, WithinAbs(3.0, 1e-15)); CHECK_THAT(m.variance, WithinAbs(2.5, 1e-15)); CHECK_THAT(m.skewness, WithinAbs(0.0, 1e-15)); CHECK_THAT(m.kurtosis, WithinAbs(-1.3, 1e-12));
24 + CHECK_THAT(autocovariance(x, 1), WithinAbs(0.8, 1e-15)); // statsmodels acovf([1..5], adjusted=False)[1] = 0.8
25 + std::vector<f64> cum = {1.0, 1.2, 0.9, 1.1, 0.6, 1.3}; auto d = max_drawdown(cum); CHECK_THAT(d.max_drawdown, WithinAbs(0.5, 1e-15)); CHECK(d.peak_index == 1); CHECK(d.trough_index == 4);
26 +}
27 +TEST_CASE("Rolling sums do not drift over long series", "[stats]") {
28 + Rng r(3); std::vector<f64> x(390000); for (auto& v : x) v = 1e3 + r.normal();
29 + auto rs = rolling_sum(x, RollingOptions{390, 0, 1024});
30 + for (usize i : {389ul, 1000ul, 200000ul, 389999ul}) { f64 exact = sum_neumaier<f64>(std::span<const f64>(x).subspan(i + 1 - 390, 390)); CHECK_THAT(rs[i], WithinRel(exact, 1e-13)); }
31 + CHECK(std::isnan(rs[388]));
32 + auto rv = rolling_variance(x, RollingOptions{390}); Welford w; for (usize j = 389999 + 1 - 390; j <= 389999; ++j) w.add(x[j]); CHECK_THAT(rv[389999], WithinRel(w.variance(), 1e-9));
33 + auto rm = rolling_mean(x, RollingOptions{5, 1}); CHECK_THAT(rm[0], WithinRel(x[0], 1e-15)); CHECK_THAT(rm[2], WithinRel((x[0] + x[1] + x[2]) / 3, 1e-14));
34 + auto sh = shift(x, 1); CHECK(std::isnan(sh[0])); CHECK(sh[1] == x[0]); auto ld = shift(x, -1); CHECK(ld[0] == x[1]); CHECK(std::isnan(ld.back()));
35 +}
36 +TEST_CASE("Rolling correlation of identical series is one", "[stats]") {
37 + Rng r(5); std::vector<f64> x(500); for (auto& v : x) v = r.normal();
38 + auto c = rolling_correlation(x, x, RollingOptions{20}); CHECK_THAT(c[499], WithinAbs(1.0, 1e-12)); CHECK(std::isnan(c[18]));
39 +}
40
Menu

Theme