├── .devcontainer ├── devcontainer.json └── startup.sh ├── .github ├── renovate.json └── workflows │ ├── book.yml │ ├── ci.yml │ ├── pre-commit.yml │ └── release.yml ├── .gitignore ├── .pre-commit-config.yaml ├── LICENSE ├── Makefile ├── README.md ├── book ├── _config.yml ├── _toc.yml ├── docs │ ├── api.md │ ├── index.md │ └── reports.md └── marimo │ ├── data │ ├── price.csv │ └── ts.csv │ └── demo.py ├── pyproject.toml ├── src ├── antarctic │ ├── __init__.py │ ├── document.py │ └── pandas_field.py └── tests │ ├── __init__.py │ ├── conftest.py │ ├── resources │ ├── frame.csv │ ├── ohlc.csv │ ├── ohlc_resample.csv │ ├── price.csv │ ├── reference.csv │ └── ts.csv │ ├── test_docs.py │ ├── test_document.py │ └── test_pandasfield.py └── uv.lock /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Marimo Dev Container", 3 | "image": "mcr.microsoft.com/devcontainers/python:3.13", 4 | "hostRequirements": { 5 | "cpus": 4 6 | }, 7 | "features": { 8 | "ghcr.io/devcontainers/features/common-utils:2": {} 9 | }, 10 | "forwardPorts": [8080], 11 | "customizations": { 12 | "vscode": { 13 | "settings": { 14 | "python.pythonPath": ".venv/bin/python", 15 | "python.defaultInterpreterPath": ".venv/bin/python", 16 | "python.linting.enabled": true, 17 | "python.linting.pylintEnabled": true, 18 | "python.testing.pytestEnabled": true, 19 | "python.testing.unittestEnabled": false, 20 | "python.testing.pytestArgs": ["."], 21 | "python.terminal.activateEnvInCurrentTerminal": true, 22 | "marimo.pythonPath": ".venv/bin/python", 23 | "marimo.marimoPath": ".venv/bin/marimo" 24 | }, 25 | "extensions": [ 26 | "ms-python.python", 27 | "ms-python.vscode-pylance", 28 | "marimo-team.vscode-marimo" 29 | ] 30 | } 31 | }, 32 | "onCreateCommand": ".devcontainer/startup.sh", 33 | "postStartCommand": "uv run marimo --yes edit --host=localhost --port=8080 --headless --no-token", 34 | "remoteUser": "vscode" 35 | } 36 | -------------------------------------------------------------------------------- /.devcontainer/startup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | curl -LsSf https://astral.sh/uv/install.sh | sh 3 | uv venv 4 | uv sync -vv --frozen 5 | uv pip install --no-cache-dir marimo 6 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:recommended", 4 | ":enablePreCommit", 5 | ":automergeMinor", 6 | ":dependencyDashboard", 7 | ":maintainLockFilesWeekly", 8 | ":semanticCommits", 9 | ":pinDevDependencies" 10 | ], 11 | "enabledManagers": ["pep621", "pre-commit", "github-actions", "devcontainer"], 12 | "timezone": "Asia/Dubai", 13 | "schedule": [ 14 | "before 10am on wednesday" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.github/workflows/book.yml: -------------------------------------------------------------------------------- 1 | name: "book" 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | 9 | jobs: 10 | pdoc: 11 | runs-on: "ubuntu-latest" 12 | steps: 13 | - name: "Build the virtual environment for ${{ github.repository }}" 14 | uses: tschm/cradle/actions/environment@v0.1.71 15 | 16 | - uses: tschm/cradle/actions/pdoc@v0.1.71 17 | with: 18 | source-folder: src/antarctic 19 | 20 | 21 | test: 22 | runs-on: "ubuntu-latest" 23 | steps: 24 | # uses MongoMock 25 | #- name: Start MongoDB 26 | # uses: supercharge/mongodb-github-action@1.12.0 27 | # with: 28 | # mongodb-version: '5.0' 29 | # mongodb-db: test 30 | # mongodb-port: 27017 31 | 32 | - name: "Build the virtual environment for ${{ github.repository }}" 33 | uses: tschm/cradle/actions/environment@v0.1.71 34 | 35 | - uses: tschm/cradle/actions/test@v0.1.71 36 | with: 37 | tests-folder: src/tests 38 | 39 | jupyter: 40 | runs-on: "ubuntu-latest" 41 | permissions: 42 | contents: read 43 | steps: 44 | - name: "Build the virtual environment for ${{ github.repository }}" 45 | uses: tschm/cradle/actions/environment@v0.1.71 46 | 47 | - uses: tschm/cradle/actions/jupyter@v0.1.71 48 | 49 | book: 50 | runs-on: "ubuntu-latest" 51 | needs: [test, pdoc, jupyter] 52 | 53 | environment: 54 | name: github-pages # 👈 this is the critical missing piece 55 | 56 | permissions: 57 | pages: write # Permission to deploy to Pages 58 | id-token: write # Permission to verify deployment origin 59 | 60 | steps: 61 | - uses: tschm/cradle/actions/book@v0.1.71 62 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: "CI" 2 | 3 | on: 4 | - push 5 | 6 | permissions: 7 | contents: read 8 | 9 | jobs: 10 | test: 11 | # The type of runner that the job will run on 12 | runs-on: ${{ matrix.os }} 13 | 14 | strategy: 15 | matrix: 16 | # mongo container action only supported on Linux 17 | os: [ ubuntu-latest ] 18 | python-version: [ '3.10', '3.11', '3.12', '3.13' ] 19 | mongodb-version: ['4.4', '5.0', '6.0'] 20 | 21 | # Steps represent a sequence of tasks that will be executed as part of the job 22 | steps: 23 | #- name: Start MongoDB 24 | # uses: supercharge/mongodb-github-action@1.12.0 25 | # with: 26 | # mongodb-version: ${{ matrix.mongodb-version }} 27 | # mongodb-db: test 28 | # mongodb-port: 27017 29 | 30 | - name: "Build the virtual environment for ${{ github.repository }}" 31 | uses: tschm/cradle/actions/environment@v0.1.71 32 | with: 33 | python-version: ${{ matrix.python-version }} 34 | 35 | - uses: tschm/cradle/actions/test@v0.1.71 36 | with: 37 | tests-folder: src/tests 38 | -------------------------------------------------------------------------------- /.github/workflows/pre-commit.yml: -------------------------------------------------------------------------------- 1 | name: pre-commit 2 | 3 | on: 4 | push: 5 | 6 | permissions: 7 | contents: read 8 | 9 | jobs: 10 | pre-commit: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: tschm/cradle/actions/pre-commit@v0.1.71 14 | 15 | deptry: 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: "Build the virtual environment for ${{ github.repository }}" 19 | uses: tschm/cradle/actions/environment@v0.1.71 20 | 21 | - uses: tschm/cradle/actions/deptry@v0.1.71 22 | with: 23 | source-folder: src/antarctic 24 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Bump version and publish 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | permissions: 7 | contents: write 8 | 9 | jobs: 10 | tagging: 11 | runs-on: ubuntu-latest 12 | outputs: 13 | new_tag: ${{ steps.tag_step.outputs.new_tag }} 14 | 15 | steps: 16 | - name: Generate Tag 17 | id: tag_step 18 | uses: tschm/cradle/actions/tag@v0.1.71 19 | with: 20 | github_token: ${{ secrets.GITHUB_TOKEN }} 21 | 22 | build: 23 | runs-on: ubuntu-latest 24 | needs: tagging 25 | steps: 26 | - name: build 27 | uses: tschm/cradle/actions/build@v0.1.71 28 | with: 29 | tag: ${{ needs.tagging.outputs.new_tag }} 30 | 31 | publish: 32 | needs: build 33 | runs-on: ubuntu-latest 34 | environment: release 35 | 36 | permissions: 37 | contents: read 38 | # This permission is required for trusted publishing. 39 | id-token: write 40 | 41 | steps: 42 | - name: Checkout [${{ github.repository }}] 43 | uses: actions/checkout@v4 44 | 45 | - uses: actions/download-artifact@v4 46 | with: 47 | name: dist 48 | path: dist 49 | 50 | - name: Publish to PyPI 51 | uses: pypa/gh-action-pypi-publish@release/v1 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .task 3 | docs 4 | 5 | sandbox/* 6 | *.pyc 7 | */__pycache__/ 8 | todo 9 | results 10 | .config 11 | env 12 | 13 | *.dot 14 | *.svg 15 | artifacts 16 | 17 | *.ipynb_checkpoints 18 | *.parquet 19 | *.pickle 20 | 21 | .coverage 22 | 23 | .pytest_cache 24 | .venv 25 | 26 | .DS_Store 27 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v5.0.0 4 | hooks: 5 | - id: check-toml 6 | - id: end-of-file-fixer 7 | - id: trailing-whitespace 8 | - id: check-yaml 9 | 10 | - repo: https://github.com/astral-sh/ruff-pre-commit 11 | rev: 'v0.11.13' 12 | hooks: 13 | - id: ruff 14 | args: [ --fix, --exit-non-zero-on-fix ] 15 | # Run the formatter 16 | - id: ruff-format 17 | 18 | - repo: https://github.com/igorshubovych/markdownlint-cli 19 | rev: v0.45.0 20 | hooks: 21 | - id: markdownlint 22 | 23 | - repo: https://github.com/python-jsonschema/check-jsonschema 24 | rev: 0.33.0 25 | hooks: 26 | - id: check-renovate 27 | args: [ "--verbose" ] 28 | 29 | - id: check-github-workflows 30 | args: ["--verbose"] 31 | 32 | - repo: https://github.com/asottile/pyupgrade 33 | rev: v3.20.0 34 | hooks: 35 | - id: pyupgrade 36 | 37 | - repo: https://github.com/rhysd/actionlint 38 | rev: v1.7.7 39 | hooks: 40 | - id: actionlint 41 | args: [ -ignore, SC ] 42 | 43 | - repo: https://github.com/abravalheri/validate-pyproject 44 | rev: v0.24.1 45 | hooks: 46 | - id: validate-pyproject 47 | 48 | - repo: https://github.com/crate-ci/typos 49 | rev: v1.33.1 50 | hooks: 51 | - id: typos 52 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Thomas Schmelzer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Colors for pretty output 2 | BLUE := \033[36m 3 | BOLD := \033[1m 4 | RESET := \033[0m 5 | 6 | .DEFAULT_GOAL := help 7 | 8 | .PHONY: help verify install fmt test marimo clean 9 | 10 | ##@ Development Setup 11 | 12 | venv: 13 | @printf "$(BLUE)Creating virtual environment...$(RESET)\n" 14 | @curl -LsSf https://astral.sh/uv/install.sh | sh 15 | @uv venv --python 3.12 16 | 17 | install: venv ## Install all dependencies using uv 18 | @printf "$(BLUE)Installing dependencies...$(RESET)\n" 19 | @uv sync --dev --frozen 20 | 21 | ##@ Code Quality 22 | 23 | fmt: venv ## Run code formatting and linting 24 | @printf "$(BLUE)Running formatters and linters...$(RESET)\n" 25 | @uv pip install pre-commit 26 | @uv run pre-commit install 27 | @uv run pre-commit run --all-files 28 | 29 | ##@ Testing 30 | 31 | test: install ## Run all tests 32 | @printf "$(BLUE)Running tests...$(RESET)\n" 33 | @uv pip install pytest 34 | @uv run pytest src/tests 35 | 36 | ##@ Cleanup 37 | 38 | clean: ## Clean generated files and directories 39 | @printf "$(BLUE)Cleaning project...$(RESET)\n" 40 | @git clean -d -X -f 41 | 42 | ##@ Marimo & Jupyter 43 | 44 | marimo: install ## Start a Marimo server 45 | @printf "$(BLUE)Start Marimo server...$(RESET)\n" 46 | @uv pip install marimo 47 | @uv run marimo edit book/marimo 48 | 49 | ##@ Help 50 | 51 | help: ## Display this help message 52 | @printf "$(BOLD)Usage:$(RESET)\n" 53 | @printf " make $(BLUE)$(RESET)\n\n" 54 | @printf "$(BOLD)Targets:$(RESET)\n" 55 | @awk 'BEGIN {FS = ":.*##"; printf ""} /^[a-zA-Z_-]+:.*?##/ { printf " $(BLUE)%-15s$(RESET) %s\n", $$1, $$2 } /^##@/ { printf "\n$(BOLD)%s$(RESET)\n", substr($$0, 5) }' $(MAKEFILE_LIST) 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Antarctic](https://tschm.github.io/antarctic/book) 2 | 3 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 4 | [![Book](https://github.com/tschm/antarctic/actions/workflows/book.yml/badge.svg)](https://github.com/tschm/antarctic/actions/workflows/book.yml) 5 | [![Release](https://github.com/tschm/antarctic/workflows/Release/badge.svg)](https://github.com/tschm/antarctic/actions/) 6 | [![CodeFactor](https://www.codefactor.io/repository/github/tschm/antarctic/badge)](https://www.codefactor.io/repository/github/tschm/antarctic) 7 | [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://github.com/renovatebot/renovate) 8 | 9 | [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/tschm/antarctic) 10 | 11 | Project to persist Pandas data structures in a MongoDB database. 12 | 13 | ## Installation 14 | 15 | ```bash 16 | pip install antarctic 17 | ``` 18 | 19 | ## Usage 20 | 21 | This project (unless the popular arctic project which I admire) 22 | is based on top of [MongoEngine](https://pypi.org/project/mongoengine/). 23 | MongoEngine is an ORM for MongoDB. MongoDB stores documents. 24 | We introduce a new field and extend the Document class 25 | to make Antarctic a convenient choice for storing Pandas (time series) data. 26 | 27 | ### Fields 28 | 29 | We introduce first a new field --- the PandasField. 30 | 31 | ```python 32 | >>> import mongomock 33 | >>> import pandas as pd 34 | 35 | >>> from mongoengine import Document, connect 36 | >>> from antarctic.pandas_field import PandasField 37 | 38 | # connect with your existing MongoDB 39 | # (here I am using a popular interface mocking a MongoDB) 40 | >>> client = connect('mongoenginetest', host='mongodb://localhost', mongo_client_class=mongomock.MongoClient) 41 | 42 | # Define the blueprint for a portfolio document 43 | >>> class Portfolio(Document): 44 | ... nav = PandasField() 45 | ... weights = PandasField() 46 | ... prices = PandasField() 47 | ``` 48 | 49 | The portfolio objects works exactly the way you think it works 50 | 51 | ```python 52 | >>> data = pd.read_csv("src/tests/resources/price.csv", index_col=0, parse_dates=True) 53 | >>> p = Portfolio() 54 | >>> p.nav = data["A"].to_frame(name="nav") 55 | >>> p.prices = data[["B","C","D"]] #pd.DataFrame(...) 56 | >>> portfolio = p.save() 57 | 58 | >>> nav = p.nav["nav"] 59 | >>> prices = p.prices 60 | ``` 61 | 62 | Behind the scenes we convert the Frame objects 63 | into parquet bytestreams and 64 | store them in a MongoDB database. 65 | 66 | The format should also be readable by R. 67 | 68 | #### Documents 69 | 70 | In most cases we have copies of very similar documents, 71 | e.g. we store Portfolios and Symbols rather than just a Portfolio or a Symbol. 72 | For this purpose we have developed the abstract `XDocument` class 73 | relying on the Document class of MongoEngine. 74 | It provides some convenient tools to simplify looping 75 | over all or a subset of Documents of the same type, e.g. 76 | 77 | ```python 78 | >>> from antarctic.document import XDocument 79 | >>> from antarctic.pandas_field import PandasField 80 | 81 | >>> class Symbol(XDocument): 82 | ... price = PandasField() 83 | ``` 84 | 85 | We define a bunch of symbols and assign a price for each (or some of it): 86 | 87 | ```python 88 | >>> s1 = Symbol(name="A", price=data["A"].to_frame(name="price")).save() 89 | >>> s2 = Symbol(name="B", price=data["B"].to_frame(name="price")).save() 90 | 91 | # We can access subsets like 92 | for symbol in Symbol.subset(names=["B"]): 93 | print(symbol) 94 | 95 | # often we need a dictionary of Symbols: 96 | >>> symbols = Symbol.to_dict(objects=[s1, s2]) 97 | 98 | # Each XDocument also provides a field for reference data: 99 | >>> s1.reference["MyProp1"] = "ABC" 100 | >>> s2.reference["MyProp2"] = "BCD" 101 | 102 | # You can loop over (subsets) of Symbols and extract reference and/or series data 103 | print(Symbol.reference_frame(objects=[s1, s2])) 104 | print(Symbol.frame(series="price", key="price")) 105 | print(Symbol.apply(func=lambda x: x.price["price"].mean(), default=np.nan)) 106 | ``` 107 | 108 | The XDocument class is exposing DataFrames both for reference and time series data. 109 | There is an `apply` method for using a function on (subset) of documents. 110 | 111 | ### Database vs. Datastore 112 | 113 | Storing json or bytestream representations of Pandas objects 114 | is not exactly a database. Appending is rather expensive as one would have 115 | to extract the original Pandas object, append to it and convert 116 | the new object back into a json or bytestream representation. 117 | Clever sharding can mitigate such effects but at the end of the day 118 | you shouldn't update such objects too often. Often practitioners 119 | use a small database for recording (e.g. over the last 24h) and 120 | update the MongoDB database once a day. It's extremely fast 121 | to read the Pandas objects out of such a construction. 122 | 123 | Often such concepts are called DataStores. 124 | 125 | ## uv 126 | 127 | Starting with 128 | 129 | ```bash 130 | make install 131 | ``` 132 | 133 | will install [uv](https://github.com/astral-sh/uv) and create 134 | the virtual environment defined in 135 | pyproject.toml and locked in uv.lock. 136 | 137 | ## marimo 138 | 139 | We install [marimo](https://marimo.io) on the fly within the aforementioned 140 | virtual environment. Executing 141 | 142 | ```bash 143 | make marimo 144 | ``` 145 | 146 | will install and start marimo. 147 | -------------------------------------------------------------------------------- /book/_config.yml: -------------------------------------------------------------------------------- 1 | # Book settings 2 | # Learn more at https://jupyterbook.org/customize/config.html 3 | 4 | title: antarctic 5 | author: Thomas Schmelzer 6 | only_build_toc_files: true 7 | 8 | parse: 9 | myst_enable_extensions: 10 | - substitution 11 | - linkify 12 | - dollarmath 13 | myst_substitutions: 14 | book_url: https://tschm.github.io/antarctic 15 | 16 | # needed for plotly 17 | sphinx: 18 | config: 19 | html_js_files: 20 | - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js 21 | 22 | # Information about where the book exists on the web 23 | repository: 24 | url: https://github.com/tschm/antarctic 25 | path_to_book: book 26 | branch: main 27 | 28 | # Add GitHub buttons to your book 29 | # See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository 30 | html: 31 | use_issues_button: true 32 | use_repository_button: true 33 | #use_edit_page_button: true 34 | extra_navbar: Powered by Jupyter Book # Will be displayed underneath the left navbar. 35 | -------------------------------------------------------------------------------- /book/_toc.yml: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | # Learn more at https://jupyterbook.org/customize/toc.html 3 | format: jb-book 4 | root: docs/index 5 | chapters: 6 | - file: docs/api 7 | - file: docs/reports 8 | -------------------------------------------------------------------------------- /book/docs/api.md: -------------------------------------------------------------------------------- 1 | # API 2 | 3 | {{ '[API]({url}/pdoc/)'.format(url=book_url) }} 4 | -------------------------------------------------------------------------------- /book/docs/index.md: -------------------------------------------------------------------------------- 1 | ../../README.md -------------------------------------------------------------------------------- /book/docs/reports.md: -------------------------------------------------------------------------------- 1 | # Test Reports 2 | 3 | ## Timing 4 | 5 | {{ '[Report]({url}/tests/html-report/report.html)'.format(url=book_url) }} 6 | 7 | ## Coverage 8 | 9 | {{ '[Coverage]({url}/tests/html-coverage/index.html)'.format(url=book_url) }} 10 | -------------------------------------------------------------------------------- /book/marimo/data/price.csv: -------------------------------------------------------------------------------- 1 | ,A,B,C,D,E,F,G 2 | 2013-01-01,1673.78,23311.98,62550.1,3735.12,1462.42,2711.25,2518.99 3 | 2013-01-02,1686.9,23311.98,62550.1,3735.12,1462.42,2711.25,2518.99 4 | 2013-01-03,1663.95,23398.6,63312.46,3714.99,1459.37,2701.22,2509.51 5 | 2013-01-04,1655.65,23331.09,62523.06,3689.34,1466.47,2709.35,2516.81 6 | 2013-01-07,1646.95,23329.75,61932.54,3699.14,1461.89,2695.56,2523.77 7 | 2013-01-08,1659.25,23111.19,61127.84,3702.58,1457.15,2691.45,2514.44 8 | 2013-01-09,1657.75,23218.47,61578.58,3697.59,1461.02,2706.39,2528.7 9 | 2013-01-10,1675.45,23354.31,61678.31,3722.43,1472.12,2708.27,2539.67 10 | 2013-01-11,1662.8,23264.07,61497.43,3715.35,1472.05,2717.79,2537.49 11 | 2013-01-14,1667.85,23413.26,62080.79,3742.12,1470.68,2715.16,2541.99 12 | 2013-01-15,1679.45,23381.51,61727.61,3736.85,1472.34,2701.59,2553.16 13 | 2013-01-16,1679.95,23356.99,61787.35,3746.61,1472.63,2702.54,2552.72 14 | 2013-01-17,1687.55,23339.76,62194.06,3771.5,1480.94,2718.93,2553.27 15 | 2013-01-18,1684.3,23601.78,61956.14,3785.51,1485.98,2709.59,2559.14 16 | 2013-01-21,1690.05,23590.91,61899.71,,,2726.63,2561.59 17 | 2013-01-22,1692.7,23658.99,61692.29,3800.28,1492.56,2716.7,2569.41 18 | 2013-01-23,1685.85,23635.1,61966.26,3789.92,1494.81,2708.28,2566.82 19 | 2013-01-24,1667.95,23598.9,61169.83,3795.65,1494.82,2722.96,2573.87 20 | 2013-01-25,1658.7,23580.43,,3786.0,1502.96,2744.18,2584.86 21 | 2013-01-28,1655.5,23671.88,60027.07,3794.03,1500.18,2744.5,2584.26 22 | 2013-01-29,1663.8,23655.17,60406.33,3818.03,1507.84,2749.27,2588.1 23 | 2013-01-30,1677.05,23822.06,59336.7,3855.04,1501.96,2732.12,2583.38 24 | 2013-01-31,1663.65,23729.53,59761.49,3846.88,1498.11,2702.98,2573.84 25 | 2013-02-01,1667.45,23721.84,60351.16,3865.69,1513.17,2710.08,2584.33 26 | 2013-02-04,1673.7,23685.01,59575.66,3844.8,1495.71,2625.17,2573.97 27 | 2013-02-05,1672.95,23148.53,59444.97,3856.33,1511.29,2651.21,2561.81 28 | 2013-02-06,1677.7,23256.93,58951.07,3852.13,1512.12,2617.35,2565.85 29 | 2013-02-07,1671.65,23177.0,58372.46,3831.43,1509.39,2597.92,2556.46 30 | 2013-02-08,1667.2,23215.16,58497.83,3842.64,1517.93,2630.3,2572.39 31 | 2013-02-11,1647.95,,,3831.79,1517.01,2622.61,2569.34 32 | 2013-02-12,1651.15,,,3834.68,1519.43,2648.83,2588.53 33 | 2013-02-13,1642.55,,58405.74,3836.02,1520.33,2656.86,2590.6 34 | 2013-02-14,1634.75,23413.25,58077.31,3830.26,1521.38,2635.35,2585.45 35 | 2013-02-15,1610.1,23444.56,57903.3,3815.72,1519.79,2615.26,2582.89 36 | 2013-02-18,1610.05,23381.94,57613.9,,,2616.65,2582.28 37 | 2013-02-19,1605.05,23143.91,57314.4,3811.61,1530.94,2662.37,2597.52 38 | 2013-02-20,1564.55,23307.41,56177.6,3777.02,1511.95,2640.35,2592.17 39 | 2013-02-21,1576.4,22906.67,56154.68,3721.55,1502.42,2579.76,2564.8 40 | 2013-02-22,1581.4,22782.44,56697.06,3718.12,1515.6,2630.05,2576.92 41 | 2013-02-25,1593.5,22820.08,56617.56,3714.51,1487.85,2651.86,2551.32 42 | 2013-02-26,1613.85,22519.69,56948.87,3701.11,1496.94,2570.52,2548.39 43 | 2013-02-27,1597.4,22577.01,57273.88,3696.52,1515.99,2611.89,2568.28 44 | 2013-02-28,1579.58,23020.27,57424.29,3691.7,1514.68,2633.55,2581.01 45 | 2013-03-01,1576.23,22880.22,56883.99,3664.17,1518.2,2616.75,2576.92 46 | 2013-03-04,1573.77,22537.81,56499.17,3654.84,1525.2,2619.78,2578.96 47 | 2013-03-05,1575.5,22560.5,55950.73,3678.9,1539.79,2683.02,2597.77 48 | 2013-03-06,1583.9,22777.84,57940.14,3653.15,1541.46,2679.89,2598.65 49 | 2013-03-07,1578.97,22771.44,58846.81,3684.25,1544.26,2690.85,2595.47 50 | 2013-03-08,1578.8,23091.95,58432.75,3696.3,1551.18,2728.78,2585.74 51 | 2013-03-11,1581.55,23090.82,58544.79,3697.32,1556.22,2718.71,2589.74 52 | 2013-03-12,1592.8,22890.6,58208.61,3706.46,1552.48,2711.85,2583.07 53 | 2013-03-13,1587.7,22556.65,57385.9,3695.36,1554.52,2704.73,2578.81 54 | 2013-03-14,1590.2,22619.18,57281.02,3715.03,1563.23,2744.7,2591.75 55 | 2013-03-15,1591.95,22533.11,56869.28,3725.63,1560.7,2725.72,2596.03 56 | 2013-03-18,1605.63,22083.36,56972.96,3701.75,1552.1,2705.47,2575.96 57 | 2013-03-19,1612.75,22041.86,56361.24,3678.28,1548.34,2671.96,2563.8 58 | 2013-03-20,1606.83,22256.44,56030.03,3704.56,1558.71,2708.9,2572.95 59 | 2013-03-21,1614.88,22225.88,55576.67,3689.63,1545.8,2683.92,2570.02 60 | 2013-03-22,1608.58,22115.3,55243.4,3698.55,1556.89,2681.67,2584.65 61 | 2013-03-25,1605.08,22251.15,54873.12,3704.32,1551.69,2649.28,2587.77 62 | 2013-03-26,1600.04,22311.08,55671.39,3724.76,1563.77,2641.12,2605.36 63 | 2013-03-27,1605.25,22464.82,56034.29,3738.46,1562.85,2612.46,2611.28 64 | 2013-03-28,1596.82,22299.63,56352.09,3706.7,1569.19,2624.02,2616.03 65 | 2013-03-29,1598.75,,,,,,2615.88 66 | 2013-04-01,1599.52,,55902.18,3685.44,1562.17,,2609.41 67 | 2013-04-02,1575.9,22367.82,54889.1,3671.96,1570.25,2679.8,2632.15 68 | 2013-04-03,1557.95,22337.49,55562.74,3622.53,1553.69,2639.01,2629.08 69 | 2013-04-04,1554.59,,54648.15,3601.42,1559.98,2621.43,2646.79 70 | 2013-04-05,1581.15,21726.9,55050.6,3585.68,1553.28,2585.28,2649.2 71 | 2013-04-08,1573.64,21718.05,55092.31,3605.92,1563.07,2589.25,2664.42 72 | 2013-04-09,1585.34,21870.34,55912.04,3634.47,1568.61,2595.13,2666.57 73 | 2013-04-10,1558.54,22034.56,56186.56,3627.0,1587.73,2661.62,2685.1 74 | 2013-04-11,1561.45,22101.27,55400.91,3611.82,1593.37,2674.33,2701.95 75 | 2013-04-12,1483.0,22089.05,54962.65,3574.55,1588.85,2633.47,2717.9 76 | 2013-04-15,1347.95,21772.67,52949.93,3486.63,1552.36,2624.71,2677.18 77 | 2013-04-16,1367.89,21672.03,53990.83,3507.68,1574.57,2609.3,2698.47 78 | 2013-04-17,1376.5,21569.67,52881.96,3469.79,1552.01,2553.49,2681.03 79 | 2013-04-18,1390.59,21512.52,53165.91,3489.24,1541.61,2555.5,2679.57 80 | 2013-04-19,1403.85,22013.57,53928.92,3492.61,1555.25,2575.16,2714.47 81 | 2013-04-22,1426.45,22044.37,54297.73,3493.08,1562.5,2583.62,2710.75 82 | 2013-04-23,1413.0,21806.61,54884.75,3474.57,1578.78,2662.88,2723.34 83 | 2013-04-24,1431.95,22183.05,54984.23,3505.01,1578.79,2702.05,2738.3 84 | 2013-04-25,1467.88,22401.24,54963.32,3561.34,1585.16,2704.41,2737.18 85 | 2013-04-26,1462.09,22547.71,54252.04,3540.68,1582.24,2683.43,2728.88 86 | 2013-04-29,1475.93,22580.77,54887.25,3592.71,1593.61,2717.38,2750.02 87 | 2013-04-30,1476.75,22737.01,55910.37,3572.45,1597.57,2712.0,2778.4 88 | 2013-05-01,1457.58,,,3500.85,1582.7,2711.74,2763.45 89 | 2013-05-02,1467.08,22668.3,55321.93,3545.4,1597.59,2718.9,2770.86 90 | 2013-05-03,1470.75,22689.96,55488.08,3591.63,1614.42,2763.68,2780.77 91 | 2013-05-06,1469.4,22915.09,55429.88,3589.49,1617.5,2750.52,2788.56 92 | 2013-05-07,1452.73,23047.09,56274.66,3577.26,1625.96,2769.08,2798.76 93 | 2013-05-08,1474.07,23244.35,55804.8,3596.71,1632.69,2784.62,2810.46 94 | 2013-05-09,1458.25,23211.48,55447.56,3604.81,1626.67,2773.16,2792.19 95 | 2013-05-10,1448.2,23321.22,55107.8,3576.29,1633.7,2785.24,2783.65 96 | 2013-05-13,1430.58,22989.81,54447.77,3575.21,1633.77,2777.39,2788.72 97 | 2013-05-14,1425.4,22930.28,54666.82,3560.83,1650.34,2795.63,2788.99 98 | 2013-05-15,1393.03,23044.24,54936.41,3549.13,1658.78,2809.58,2800.11 99 | 2013-05-16,1386.0,23082.68,54772.62,3554.73,1650.47,2806.7,2794.91 100 | 2013-05-17,1359.55,,55164.27,3571.31,1667.47,2817.99,2802.98 101 | 2013-05-20,1393.8,23493.03,55700.77,3586.77,1666.29,2824.5,2820.42 102 | 2013-05-21,1376.37,23366.37,56265.32,3567.51,1669.16,2821.65,2825.86 103 | 2013-05-22,1370.4,23261.08,56429.27,3556.93,1655.35,2835.01,2770.51 104 | 2013-05-23,1391.1,22669.68,56349.91,3550.38,1650.51,2776.78,2713.57 105 | 2013-05-24,1386.65,22618.67,56406.21,3540.54,1649.6,2764.29,2704.01 106 | 2013-05-27,1394.78,22686.05,56395.94,,,2795.0,2708.54 107 | 2013-05-28,1381.23,22924.25,56036.26,3561.24,1660.06,2835.87,2691.91 108 | 2013-05-29,1393.1,22554.93,54634.69,3532.84,1648.36,2786.54,2645.14 109 | 2013-05-30,1414.15,22484.31,,3536.18,1654.41,2799.2,2616.68 110 | 2013-05-31,1387.92,22392.16,53506.08,3513.28,1630.74,2769.64,2588.22 111 | 2013-06-03,1411.4,22282.19,53944.36,3552.71,1640.42,2747.74,2594.12 112 | 2013-06-04,1399.43,22285.52,54017.9,3560.44,1631.38,2755.7,2580.07 113 | 2013-06-05,1403.4,22069.24,52798.63,3557.09,1608.9,2709.33,2549.29 114 | 2013-06-06,1413.91,21838.43,52884.83,3565.55,1622.56,2676.21,2561.13 115 | 2013-06-07,1383.05,21575.26,51618.63,3575.55,1643.38,2724.08,2564.33 116 | 2013-06-10,1386.5,21615.09,51316.65,3558.99,1642.81,2719.4,2543.64 117 | 2013-06-11,1378.37,21354.66,49769.93,3538.05,1626.13,2683.2,2505.65 118 | 2013-06-12,1388.9,,49180.58,3540.37,1612.52,2666.52,2484.7 119 | 2013-06-13,1386.02,20887.04,50414.89,3543.51,1636.36,2661.71,2517.6 120 | 2013-06-14,1390.74,20969.14,49332.34,3563.85,1626.73,2667.32,2544.01 121 | 2013-06-17,1385.35,21225.9,49088.65,3560.23,1639.04,2702.69,2554.74 122 | 2013-06-18,1367.65,21225.88,49464.94,3566.47,1651.81,2700.93,2562.21 123 | 2013-06-19,1351.26,20986.89,47893.06,3581.21,1628.93,2683.98,2521.83 124 | 2013-06-20,1285.05,20382.87,48214.43,3481.59,1588.19,2586.45,2413.29 125 | 2013-06-21,1296.4,20263.31,47056.04,3458.54,1592.43,2549.48,2415.61 126 | 2013-06-24,1282.38,19813.98,45965.05,3445.6,1573.09,2511.83,2391.73 127 | 2013-06-25,1277.65,19855.72,46893.04,3454.46,1588.03,2543.37,2422.73 128 | 2013-06-26,1226.65,20338.55,47171.98,3438.01,1603.26,2602.81,2459.64 129 | 2013-06-27,1200.65,20440.08,47609.46,3454.66,1613.2,2619.86,2496.35 130 | 2013-06-28,1234.57,20803.29,47457.13,3433.83,1606.28,2602.59,2500.68 131 | 2013-07-01,1252.55,,47229.59,3465.71,1614.96,2622.62,2491.09 132 | 2013-07-02,1243.49,20658.65,45228.95,3484.22,1614.08,2603.2,2527.32 133 | 2013-07-03,1252.83,20147.31,45044.03,3516.31,1615.41,2570.76,2496.56 134 | 2013-07-04,1249.9,20468.67,45763.16,,,2646.54,2505.07 135 | 2013-07-05,1223.2,20854.67,45210.49,3509.66,1631.89,2596.01,2504.24 136 | 2013-07-08,1237.07,20582.19,45075.5,3527.65,1640.46,2650.85,2498.82 137 | 2013-07-09,1251.44,20683.01,,3545.89,1652.32,2664.14,2527.8 138 | 2013-07-10,1259.78,20904.56,45483.43,3583.13,1652.62,2659.71,2529.11 139 | 2013-07-11,1286.2,21437.49,46626.26,3584.06,1675.02,2681.32,2588.9 140 | 2013-07-12,1285.7,21277.28,45533.24,3590.14,1680.19,2674.87,2577.83 141 | 2013-07-15,1284.57,21303.31,46738.9,3584.23,1682.5,2686.69,2584.56 142 | 2013-07-16,1292.22,21312.38,46869.29,3596.73,1676.26,2665.61,2586.3 143 | 2013-07-17,1276.11,21371.87,47407.31,3592.28,1680.91,2681.88,2586.05 144 | 2013-07-18,1284.24,21345.22,47656.92,3613.47,1689.37,2717.99,2600.67 145 | 2013-07-19,1296.1,21362.42,47400.23,3620.66,1692.09,2716.17,2598.36 146 | 2013-07-22,1335.88,21416.5,48574.09,3622.45,1695.53,2725.4,2610.73 147 | 2013-07-23,1345.2,21915.42,48819.52,3614.17,1692.39,2722.9,2615.34 148 | 2013-07-24,1322.25,21968.93,48374.23,3584.02,1685.94,2752.25,2582.76 149 | 2013-07-25,1333.9,21900.96,49066.75,3571.92,1690.25,2740.29,2586.76 150 | 2013-07-26,1333.3,21968.95,49422.05,3547.59,1691.65,2741.96,2589.33 151 | 2013-07-29,1328.02,21850.15,49212.33,3542.76,1685.33,2741.73,2574.16 152 | 2013-07-30,1326.3,21953.96,48561.78,3518.33,1685.96,2759.21,2561.25 153 | 2013-07-31,1325.25,21883.66,48234.49,3548.67,1685.73,2768.15,2529.6 154 | 2013-08-01,1310.11,22088.79,49140.78,3576.2,1706.87,2808.64,2532.63 155 | 2013-08-02,1311.75,22190.97,48474.04,3566.38,1709.67,2811.0,2527.98 156 | 2013-08-05,1303.07,22222.01,48436.44,3552.04,1707.14,2809.08,2527.82 157 | 2013-08-06,1283.17,21923.7,47421.85,3532.32,1697.37,2790.78,2528.71 158 | 2013-08-07,1287.65,21588.84,47446.71,3522.16,1690.91,2794.44,2514.52 159 | 2013-08-08,1313.4,21655.88,48928.82,3539.29,1697.48,2816.88,2523.33 160 | 2013-08-09,1314.4,21807.56,49874.9,3569.4,1691.42,2825.62,2539.98 161 | 2013-08-12,1338.3,22271.28,50299.49,3601.66,1689.47,2827.15,2527.5 162 | 2013-08-13,1321.67,22541.13,50600.55,3605.19,1694.16,2841.61,2508.92 163 | 2013-08-14,1336.15,,50895.92,3623.89,1685.39,2852.08,2503.31 164 | 2013-08-15,1366.31,22539.25,50908.34,3657.79,1661.32,2835.86,2468.64 165 | 2013-08-16,1376.87,22517.81,51538.78,3667.4,1655.83,2854.27,2436.34 166 | 2013-08-19,1365.98,22463.7,51574.09,3670.48,1646.06,2823.35,2414.28 167 | 2013-08-20,1371.17,21970.29,50507.02,3643.14,1652.35,2787.98,2435.99 168 | 2013-08-21,1366.76,21817.73,50405.2,3619.95,1642.8,2774.58,2423.54 169 | 2013-08-22,1376.17,21895.4,51397.66,3619.57,1656.96,2812.32,2420.97 170 | 2013-08-23,1397.75,21863.51,52197.06,3650.9,1663.5,2826.05,2440.86 171 | 2013-08-26,1404.7,22005.32,51429.48,3680.37,1656.78,2821.45,2438.19 172 | 2013-08-27,1415.09,21874.77,50091.55,3716.65,1630.48,2749.27,2422.78 173 | 2013-08-28,1417.51,21524.65,49866.92,3728.44,1634.96,2742.61,2405.36 174 | 2013-08-29,1407.75,21704.78,49921.88,3698.09,1638.17,2758.31,2403.92 175 | 2013-08-30,1395.15,21731.37,50011.75,3669.4,1632.97,2721.37,2396.52 176 | 2013-09-02,1391.32,22175.34,51835.15,,,2774.09,2408.44 177 | 2013-09-03,1412.42,22394.58,51625.5,3692.62,1639.77,2753.35,2395.22 178 | 2013-09-04,1391.63,22326.22,51716.16,3661.14,1653.08,2758.29,2405.53 179 | 2013-09-05,1367.5,22597.97,52351.86,3658.33,1655.08,2774.2,2388.16 180 | 2013-09-06,1391.9,22621.22,53749.42,3694.79,1655.17,2803.42,2413.02 181 | 2013-09-09,1387.03,22750.65,54251.85,3668.93,1671.71,2798.31,2450.0 182 | 2013-09-10,1363.85,22976.65,53979.03,3636.67,1683.99,2851.4,2461.33 183 | 2013-09-11,1365.47,22937.14,53570.46,3641.21,1689.13,2863.44,2477.01 184 | 2013-09-12,1321.67,22953.72,53307.09,3656.4,1683.42,2862.07,2468.13 185 | 2013-09-13,1326.39,22915.28,53797.51,3642.11,1687.99,2867.11,2471.85 186 | 2013-09-16,1312.98,23252.41,53821.63,3616.45,1697.6,2894.64,2504.02 187 | 2013-09-17,1310.64,23180.52,54271.25,3584.68,1704.76,2890.95,2501.33 188 | 2013-09-18,1364.02,23117.45,55702.9,3628.12,1725.52,2908.92,2550.1 189 | 2013-09-19,1366.35,23502.51,55095.69,3638.23,1722.34,2936.2,2584.06 190 | 2013-09-20,1326.05,,54110.03,3600.45,1709.91,2927.19,2547.0 191 | 2013-09-23,1322.74,23371.54,54602.38,3584.18,1701.84,2906.35,2537.73 192 | 2013-09-24,1323.35,23179.04,54431.05,3574.71,1697.42,2922.93,2522.14 193 | 2013-09-25,1334.48,23209.63,54261.11,3586.49,1692.77,2927.35,2530.39 194 | 2013-09-26,1324.09,23125.03,53782.97,3597.81,1698.67,2922.99,2534.88 195 | 2013-09-27,1336.65,23207.04,53738.92,3599.32,1691.75,2919.34,2536.9 196 | 2013-09-30,1328.94,22859.86,52338.19,3582.18,1681.55,2893.15,2518.69 197 | 2013-10-01,1287.65,,53179.46,3556.76,1695.0,2933.02,2541.77 198 | 2013-10-02,1316.19,22984.48,53100.18,3589.15,1693.87,2918.31,2541.05 199 | 2013-10-03,1316.77,23214.4,52489.86,3582.16,1678.66,2902.12,2516.89 200 | 2013-10-04,1310.8,23138.54,52848.97,3595.12,1690.5,2928.31,2512.82 201 | 2013-10-07,1323.23,22973.95,52417.1,3601.43,1676.12,2923.04,2510.09 202 | 2013-10-08,1319.32,23178.85,52312.44,3610.54,1655.45,2903.35,2496.53 203 | 2013-10-09,1305.8,23033.97,52547.71,3579.61,1656.4,2904.73,2496.69 204 | 2013-10-10,1287.6,22951.3,52996.64,3611.03,1692.56,2969.41,2537.22 205 | 2013-10-11,1272.18,23218.32,53149.62,3596.6,1703.2,2974.28,2559.47 206 | 2013-10-14,1272.39,,54170.6,3605.54,1710.14,2977.69,2561.58 207 | 2013-10-15,1282.38,23336.52,54980.64,3589.36,1698.06,3004.56,2556.97 208 | 2013-10-16,1282.48,23228.33,55973.03,3609.12,1721.54,3015.4,2582.81 209 | 2013-10-17,1320.34,23094.88,55358.13,3595.62,1733.15,3010.39,2618.25 210 | 2013-10-18,1316.25,23340.1,55378.46,3609.78,1744.5,3033.31,2625.52 211 | 2013-10-21,1316.0,23438.15,56077.43,3595.1,1744.66,3028.65,2614.48 212 | 2013-10-22,1340.15,23315.99,56460.38,3593.5,1754.67,3045.77,2632.72 213 | 2013-10-23,1333.42,22999.95,55440.03,3555.93,1746.38,3017.16,2630.65 214 | 2013-10-24,1346.78,22835.82,54877.15,3552.03,1752.07,3038.96,2628.09 215 | 2013-10-25,1350.8,22698.34,54154.15,3557.0,1759.77,3034.5,2642.17 216 | 2013-10-28,1352.65,22806.58,55073.37,3562.91,1762.11,3022.04,2631.98 217 | 2013-10-29,1345.05,22846.54,54538.8,3551.48,1771.95,3050.64,2622.87 218 | 2013-10-30,1344.57,23304.02,54172.82,3549.8,1763.31,3040.69,2610.76 219 | 2013-10-31,1323.1,23206.37,54256.2,3517.54,1756.54,3067.95,2596.51 220 | 2013-11-01,1316.2,23249.79,54013.24,3478.39,1761.64,3052.14,2598.79 221 | 2013-11-04,1314.35,23189.62,54436.92,3467.57,1767.93,3061.18,2604.88 222 | 2013-11-05,1311.81,23038.95,53831.85,3449.84,1762.97,3035.92,2576.74 223 | 2013-11-06,1317.93,23036.94,53384.6,3461.94,1770.49,3056.4,2573.42 224 | 2013-11-07,1307.65,22881.03,52740.79,3445.31,1747.15,3042.98,2546.39 225 | 2013-11-08,1288.6,22744.39,52248.86,3461.35,1770.61,3034.91,2524.03 226 | 2013-11-11,1282.8,23069.85,52623.87,3474.36,1771.89,3052.83,2527.75 227 | 2013-11-12,1268.0,22901.41,51804.33,3450.16,1767.69,3034.68,2519.13 228 | 2013-11-13,1281.82,22463.83,52230.29,3457.97,1782.0,3021.17,2519.34 229 | 2013-11-14,1287.2,22649.15,53451.6,3466.41,1790.62,3053.69,2538.43 230 | 2013-11-15,1290.2,23032.15,,3467.93,1798.18,3054.53,2554.48 231 | 2013-11-18,1275.4,23660.06,54307.04,3451.12,1791.53,3081.3,2550.39 232 | 2013-11-19,1275.65,23657.81,53032.91,3444.54,1787.87,3049.17,2530.19 233 | 2013-11-20,1244.25,23700.86,,3452.12,1781.37,3047.32,2510.23 234 | 2013-11-21,1243.08,23580.29,52688.02,3483.88,1795.85,3044.34,2507.94 235 | 2013-11-22,1243.63,23696.28,52800.74,3489.24,1804.76,3055.98,2504.78 236 | 2013-11-25,1251.3,23684.45,52263.51,3484.44,1802.48,3072.75,2495.61 237 | 2013-11-26,1242.79,23681.28,51446.91,3480.47,1802.75,3062.62,2489.84 238 | 2013-11-27,1237.97,23806.35,51861.21,3467.17,1807.23,3082.65,2502.82 239 | 2013-11-28,1244.13,23789.09,51846.83,,,3092.42,2500.59 240 | 2013-11-29,1253.49,23881.29,52482.49,3477.69,1805.81,3086.64,2492.18 241 | 2013-12-02,1219.75,24038.55,51244.87,3480.37,1800.9,3077.23,2472.98 242 | 2013-12-03,1223.42,23910.47,50348.89,3508.45,1795.15,3013.88,2466.78 243 | 2013-12-04,1243.78,23728.7,50215.79,3527.12,1792.81,2991.76,2466.21 244 | 2013-12-05,1225.17,23712.57,50787.63,3518.74,1785.03,2953.17,2464.82 245 | 2013-12-06,1229.05,23743.1,50944.27,3530.58,1805.09,2979.94,2477.34 246 | 2013-12-09,1240.41,23811.17,51165.38,3528.04,1808.37,2988.67,2484.15 247 | 2013-12-10,1262.18,23744.19,50993.02,3542.23,1802.62,2960.86,2481.46 248 | 2013-12-11,1252.25,23338.24,50067.99,3547.78,1782.22,2947.31,2437.46 249 | 2013-12-12,1225.52,23218.12,50121.61,3529.34,1775.5,2928.12,2417.82 250 | 2013-12-13,1238.8,23245.96,50051.18,3520.52,1775.32,2921.92,2425.0 251 | 2013-12-16,1241.3,23114.66,50279.61,3532.68,1786.54,2978.77,2427.45 252 | 2013-12-17,1231.05,23069.23,50090.35,3519.26,1781.0,2941.76,2427.58 253 | 2013-12-18,1218.5,23143.82,50563.43,3525.48,1810.65,2975.09,2456.07 254 | 2013-12-19,1188.68,22888.75,51633.43,3536.44,1809.6,3031.05,2439.08 255 | 2013-12-20,1203.3,22812.18,51185.74,3562.68,1818.32,3049.35,2456.06 256 | 2013-12-23,1198.82,22921.56,51356.1,3552.15,1827.99,3070.91,2464.62 257 | 2013-12-24,1204.23,23179.55,,3558.91,1833.32,3072.88,2466.93 258 | 2013-12-25,1204.24,,,,,,2465.89 259 | 2013-12-26,1210.6,,51221.01,3560.29,1842.02,,2469.4 260 | 2013-12-27,1213.35,23243.24,51266.56,3579.0,1841.4,3111.37,2468.09 261 | 2013-12-30,1196.5,23244.87,51507.16,3556.02,1841.07,3100.93,2480.33 262 | 2013-12-31,1205.65,23306.39,,3534.02,1848.36,3109.0,2478.71 263 | 2014-01-01,1200.9,,,,,, 264 | 2014-01-02,1224.4,23340.05,50341.25,3489.78,1831.98,3059.93,2468.61 265 | 2014-01-03,1237.01,22817.28,50981.09,3467.31,1831.37,3074.43,2478.63 266 | 2014-01-06,1238.07,22684.15,50973.62,3467.21,1826.77,3069.16,2482.24 267 | 2014-01-07,1232.1,22712.78,50430.02,3470.04,1837.88,3110.96,2483.77 268 | 2014-01-08,1225.94,22996.59,50576.64,3440.03,1837.49,3110.66,2481.65 269 | 2014-01-09,1227.95,22787.33,49321.68,3417.24,1838.13,3090.26,2482.2 270 | 2014-01-10,1248.45,22846.25,49696.45,3446.38,1842.37,3104.15,2509.6 271 | 2014-01-13,1253.22,22888.76,49426.9,3453.24,1819.2,3111.94,2503.17 272 | 2014-01-14,1245.19,22791.28,49703.1,3457.31,1838.88,3119.53,2506.73 273 | 2014-01-15,1241.86,22902.0,50105.37,3472.46,1848.38,3168.76,2512.27 274 | 2014-01-16,1242.39,22986.41,49696.28,3475.17,1845.89,3150.2,2516.61 275 | 2014-01-17,1254.05,23133.35,49181.86,3481.03,1838.7,3154.1,2516.89 276 | 2014-01-20,1254.66,22928.95,48708.41,,,3153.17,2513.89 277 | 2014-01-21,1241.41,23033.12,48542.07,3481.23,1843.8,3153.08,2527.94 278 | 2014-01-22,1237.08,23082.25,49299.66,3505.43,1844.86,3151.27,2538.24 279 | 2014-01-23,1264.14,22733.9,48320.64,3508.05,1828.46,3117.08,2523.3 280 | 2014-01-24,1270.07,22450.06,47787.38,3509.12,1790.29,3028.2,2494.67 281 | 2014-01-27,1257.1,21976.1,47701.05,3476.01,1781.56,3014.62,2479.29 282 | 2014-01-28,1256.88,21960.64,47840.93,3498.49,1792.5,3038.6,2491.31 283 | 2014-01-29,1267.24,22141.61,47556.78,3507.41,1774.2,3011.45,2484.45 284 | 2014-01-30,1243.92,22035.42,47244.26,3501.89,1794.19,3027.3,2499.96 285 | 2014-01-31,1244.55,,47638.99,3489.84,1782.59,3013.96,2507.41 286 | 2014-02-03,1257.68,,46147.52,3485.1,1741.89,2963.96,2482.87 287 | 2014-02-04,1254.72,21397.77,46964.22,3505.72,1755.2,2962.49,2494.02 288 | 2014-02-05,1257.92,21269.38,46624.39,3518.58,1751.64,2962.51,2491.26 289 | 2014-02-06,1258.19,21423.13,47738.09,3534.08,1773.43,3010.79,2510.08 290 | 2014-02-07,1267.27,21636.85,48073.6,3563.84,1797.02,3038.49,2534.0 291 | 2014-02-10,1274.78,21579.26,47710.82,3558.56,1799.84,3032.53,2547.61 292 | 2014-02-11,1291.46,21962.98,48462.79,3573.47,1819.75,3077.08,2564.7 293 | 2014-02-12,1291.18,22285.79,48216.89,3585.01,1819.26,3094.89,2571.89 294 | 2014-02-13,1302.9,22165.53,47812.83,3598.09,1829.83,3097.95,2578.84 295 | 2014-02-14,1318.69,22298.41,48201.11,3614.16,1838.63,3119.06,2589.34 296 | 2014-02-17,1328.79,22535.94,47576.33,,,3118.91,2596.74 297 | 2014-02-18,1321.97,22587.72,46599.76,3669.13,1840.76,3117.44,2606.72 298 | 2014-02-19,1311.6,22664.52,47150.83,3684.63,1828.75,3120.8,2612.43 299 | 2014-02-20,1322.94,22394.08,47288.61,3679.18,1839.78,3121.59,2608.4 300 | 2014-02-21,1324.28,22568.24,47380.24,3680.03,1836.25,3131.67,2614.24 301 | 2014-02-24,1336.98,22388.56,47393.5,3687.95,1847.61,3157.31,2610.47 302 | 2014-02-25,1340.64,22317.2,46715.91,3678.83,1845.12,3157.48,2621.82 303 | 2014-02-26,1330.57,22437.44,46599.21,3670.14,1845.16,3148.19,2619.51 304 | 2014-02-27,1331.33,22828.18,47606.75,3663.95,1854.29,3134.94,2618.0 305 | 2014-02-28,1326.44,22836.96,47094.4,3678.66,1859.45,3149.23,2636.75 306 | 2014-03-03,1350.58,22500.67,,3722.31,1845.73,3053.99,2627.73 307 | 2014-03-04,1334.34,22657.63,,3730.96,1873.91,3136.33,2656.18 308 | 2014-03-05,1336.9,22579.78,46589.0,3708.01,1873.81,3135.97,2648.11 309 | 2014-03-06,1350.85,22702.97,47093.13,3737.71,1877.03,3144.53,2643.21 310 | 2014-03-07,1339.98,22660.49,46244.07,3731.17,1878.04,3095.31,2624.96 311 | 2014-03-10,1339.72,22264.93,45533.2,3702.27,1877.17,3092.79,2605.14 312 | 2014-03-11,1348.97,22269.61,45697.62,3700.2,1867.63,3092.55,2616.58 313 | 2014-03-12,1366.83,21901.95,45861.81,3697.12,1868.2,3065.46,2605.65 314 | 2014-03-13,1370.14,21756.08,45443.83,3682.05,1846.34,3019.54,2604.38 315 | 2014-03-14,1383.05,21539.49,44965.66,3701.11,1841.13,3004.64,2597.66 316 | 2014-03-17,1367.1,21473.95,45117.8,3674.92,1858.83,3049.19,2606.19 317 | 2014-03-18,1355.72,21583.5,46150.96,3695.65,1872.25,3073.75,2617.05 318 | 2014-03-19,1329.63,21568.69,46567.23,3701.39,1860.77,3076.36,2585.82 319 | 2014-03-20,1327.88,21182.16,47278.48,3671.23,1872.01,3088.9,2567.95 320 | 2014-03-21,1334.7,21436.7,47380.94,3671.58,1866.52,3096.49,2588.77 321 | 2014-03-24,1308.76,21846.45,47993.42,3674.7,1857.44,3052.91,2583.94 322 | 2014-03-25,1311.2,21732.32,48180.14,3687.34,1865.62,3096.64,2604.62 323 | 2014-03-26,1304.47,21887.75,47965.61,3677.68,1852.56,3130.17,2587.09 324 | 2014-03-27,1291.3,21834.45,49646.79,3707.23,1849.04,3133.75,2602.35 325 | 2014-03-28,1295.27,22065.53,49768.06,3710.33,1857.62,3172.43,2617.5 326 | 2014-03-31,1284.01,22151.06,50414.92,3707.99,1872.34,3161.6,2635.82 327 | 2014-04-01,1278.95,22448.54,50270.37,3678.1,1885.52,3186.34,2643.52 328 | 2014-04-02,1289.86,22523.94,51701.05,3667.51,1890.9,3187.45,2654.77 329 | 2014-04-03,1286.77,22565.08,51408.21,3687.46,1888.77,3206.76,2649.44 330 | 2014-04-04,1303.64,22510.08,51081.78,3699.27,1865.09,3230.33,2658.58 331 | 2014-04-07,1297.35,22377.15,52155.28,3689.61,1845.04,3185.97,2669.7 332 | 2014-04-08,1308.63,22596.97,51629.07,3733.82,1851.96,3177.66,2682.6 333 | 2014-04-09,1311.78,22843.17,51185.4,3741.67,1872.18,3182.79,2683.87 334 | 2014-04-10,1318.9,23186.96,51127.48,3744.49,1833.08,3152.86,2679.13 335 | 2014-04-11,1318.42,23003.64,51867.29,3736.04,1815.69,3116.54,2661.46 336 | 2014-04-14,1327.99,23038.8,51596.55,3763.41,1830.61,3131.57,2670.43 337 | 2014-04-15,1302.64,22671.26,50454.35,3759.13,1842.98,3091.52,2685.68 338 | 2014-04-16,1302.55,22696.01,51200.56,3767.62,1862.31,3139.26,2700.52 339 | 2014-04-17,1295.19,22760.24,52111.85,3774.18,1864.85,3155.81,2701.43 340 | 2014-04-18,1294.3,,,,,,2703.38 341 | 2014-04-21,1289.8,,,3758.67,1871.89,,2706.42 342 | 2014-04-22,1283.79,22730.68,51976.86,3755.59,1879.55,3199.69,2715.73 343 | 2014-04-23,1283.9,22509.64,51569.69,3754.74,1875.39,3175.97,2705.51 344 | 2014-04-24,1293.36,22562.8,51817.45,3774.63,1878.61,3189.81,2717.15 345 | 2014-04-25,1303.2,22223.53,51399.35,3768.44,1863.4,3147.4,2705.47 346 | 2014-04-28,1296.68,22132.53,51383.68,3757.8,1869.43,3165.84,2720.76 347 | 2014-04-29,1295.9,22453.89,51838.61,3774.85,1878.33,3208.68,2726.79 348 | 2014-04-30,1291.55,22133.97,51626.69,3751.73,1883.95,3198.39,2731.7 349 | 2014-05-01,1284.3,,,3723.08,1883.68,3198.66,2736.94 350 | 2014-05-02,1299.62,22260.67,52980.31,3737.57,1881.14,3177.89,2735.79 351 | 2014-05-05,1310.27,21976.33,53446.17,3738.4,1884.66,3171.29,2737.89 352 | 2014-05-06,1308.04,,53779.74,3745.16,1867.72,3149.79,2739.16 353 | 2014-05-07,1289.92,21746.26,54052.74,3737.56,1878.21,3159.67,2756.65 354 | 2014-05-08,1289.3,21837.12,53422.37,3733.75,1875.63,3204.3,2766.09 355 | 2014-05-09,1288.79,21862.99,53100.34,3720.62,1878.48,3184.09,2763.18 356 | 2014-05-12,1295.83,22261.61,54052.9,3731.64,1896.65,3206.97,2775.73 357 | 2014-05-13,1293.6,22352.38,53907.46,3742.76,1897.45,3211.78,2768.07 358 | 2014-05-14,1305.95,22582.77,54412.54,3756.57,1888.53,3210.42,2776.24 359 | 2014-05-15,1296.17,22730.86,53855.54,3728.86,1870.85,3163.22,2774.65 360 | 2014-05-16,1293.46,22712.91,53975.76,3721.16,1877.86,3172.72,2788.25 361 | 2014-05-19,1293.07,22704.5,53353.1,3730.31,1885.08,3169.9,2780.56 362 | 2014-05-20,1294.37,22834.68,52366.19,3727.54,1872.83,3163.93,2769.92 363 | 2014-05-21,1291.99,22836.52,52203.37,3738.75,1888.03,3187.08,2760.46 364 | 2014-05-22,1294.02,22953.76,52806.22,3737.98,1892.49,3187.63,2761.6 365 | 2014-05-23,1292.56,22965.86,52626.41,3738.83,1900.53,3203.28,2780.8 366 | 2014-05-26,1292.75,22963.18,52932.91,,,3240.39,2782.35 367 | 2014-05-27,1264.9,22944.3,52173.98,3716.31,1911.91,3244.28,2796.53 368 | 2014-05-28,1258.14,23080.03,52639.75,3706.99,1909.78,3246.24,2787.34 369 | 2014-05-29,1255.58,23010.14,52239.34,3710.14,1920.03,3244.66,2795.25 370 | 2014-05-30,1249.73,23081.65,51239.34,3686.81,1923.57,3244.6,2808.4 371 | 2014-06-02,1243.96,,51605.83,3686.29,1924.97,3247.8,2813.44 372 | 2014-06-03,1244.97,23291.04,52032.38,3678.09,1924.24,3241.04,2815.14 373 | 2014-06-04,1243.92,23151.71,51832.98,3670.77,1927.88,3237.93,2813.13 374 | 2014-06-05,1253.69,23109.66,51558.79,3672.8,1940.46,3267.05,2844.83 375 | 2014-06-06,1253.25,22951.0,53128.66,3685.42,1949.44,3294.28,2847.97 376 | 2014-06-09,1252.34,23117.47,54273.16,3700.96,1951.27,3305.26,2828.49 377 | 2014-06-10,1259.91,23315.74,54604.34,3687.83,1950.79,3313.8,2812.81 378 | 2014-06-11,1261.06,23257.29,55102.44,3681.63,1943.89,3289.09,2807.15 379 | 2014-06-12,1273.45,23175.02,,3720.81,1930.11,3284.28,2806.3 380 | 2014-06-13,1276.89,23319.17,54806.64,3734.13,1936.16,3282.84,2802.15 381 | 2014-06-16,1271.88,23300.67,54629.55,3733.72,1937.78,3261.42,2792.93 382 | 2014-06-17,1270.65,23203.59,54299.95,3732.6,1941.99,3275.33,2792.52 383 | 2014-06-18,1277.68,23181.72,55202.54,3744.65,1956.98,3279.2,2802.93 384 | 2014-06-19,1320.39,23167.73,,3778.36,1959.48,3314.8,2824.69 385 | 2014-06-20,1314.85,23194.06,54638.19,3784.43,1962.87,3302.36,2829.3 386 | 2014-06-23,1317.36,22804.81,54210.05,3774.24,1962.61,3282.58,2819.81 387 | 2014-06-24,1318.4,22880.64,54280.78,3775.16,1949.98,3284.81,2819.02 388 | 2014-06-25,1319.19,22866.7,53425.74,3777.04,1959.53,3252.31,2818.94 389 | 2014-06-26,1316.58,23197.83,53506.75,3767.79,1957.22,3233.19,2827.86 390 | 2014-06-27,1316.18,23221.52,53157.3,3764.66,1960.96,3227.85,2844.48 391 | 2014-06-30,1327.32,23190.72,53168.22,3730.07,1960.23,3228.24,2840.76 392 | 2014-07-01,1326.39,,53171.49,3725.64,1973.32,3258.71,2850.01 393 | 2014-07-02,1326.86,23549.62,53028.78,3722.94,1974.62,3252.25,2850.07 394 | 2014-07-03,1319.53,23531.44,53874.58,3719.09,1985.44,3289.75,2840.83 395 | 2014-07-04,1320.55,23546.36,54055.9,,,3270.47,2834.38 396 | 2014-07-07,1319.94,23540.92,53801.83,3677.33,1977.65,3230.92,2838.27 397 | 2014-07-08,1319.28,23541.38,53634.69,3669.48,1963.71,3184.38,2838.85 398 | 2014-07-09,1327.8,23176.07,,3645.73,1972.83,3203.1,2841.47 399 | 2014-07-10,1335.75,23238.99,54592.75,3643.05,1964.68,3150.59,2851.97 400 | 2014-07-11,1338.62,23233.45,54785.93,3606.89,1967.57,3157.05,2852.58 401 | 2014-07-14,1307.11,23346.67,55743.98,3609.64,1977.1,3185.86,2865.65 402 | 2014-07-15,1294.07,23459.96,55973.61,3590.65,1973.28,3153.75,2864.44 403 | 2014-07-16,1299.2,23523.28,55717.36,3600.31,1981.57,3202.94,2878.89 404 | 2014-07-17,1319.24,23520.87,55637.51,3616.7,1958.12,3157.82,2867.84 405 | 2014-07-18,1311.1,23454.79,57012.9,3592.58,1978.22,3164.21,2886.18 406 | 2014-07-21,1312.55,23387.14,57633.92,3598.83,1973.63,3137.06,2878.12 407 | 2014-07-22,1306.43,23782.11,57983.32,3590.1,1983.53,3189.22,2889.25 408 | 2014-07-23,1304.63,23971.87,57419.96,3600.51,1987.01,3193.13,2899.74 409 | 2014-07-24,1293.73,24141.5,57977.56,3587.15,1987.98,3220.07,2900.35 410 | 2014-07-25,1307.15,24216.01,57821.08,3596.12,1978.34,3174.99,2877.37 411 | 2014-07-28,1304.02,24428.63,57695.72,3596.44,1978.91,3171.55,2887.91 412 | 2014-07-29,1299.01,24640.53,57118.81,3577.03,1969.95,3190.54,2886.31 413 | 2014-07-30,1296.32,24732.21,56877.97,3565.94,1970.07,3169.23,2884.09 414 | 2014-07-31,1282.55,24756.85,55829.41,3541.58,1930.67,3115.51,2857.29 415 | 2014-08-01,1293.33,24532.43,55902.87,3520.49,1925.15,3072.57,2843.13 416 | 2014-08-04,1288.3,24600.08,56616.33,3543.63,1938.99,3070.46,2850.31 417 | 2014-08-05,1288.82,24648.26,56202.1,3525.5,1920.21,3072.2,2832.07 418 | 2014-08-06,1305.85,24584.13,56487.18,3546.03,1920.24,3050.37,2824.01 419 | 2014-08-07,1312.62,24387.56,56188.05,3544.54,1909.57,3012.88,2823.66 420 | 2014-08-08,1310.95,24331.41,55572.93,3533.14,1931.59,3006.83,2828.13 421 | 2014-08-11,1308.55,24646.02,56613.32,3537.1,1936.92,3047.56,2851.19 422 | 2014-08-12,1309.45,24689.41,56442.34,3512.12,1933.75,3023.77,2847.12 423 | 2014-08-13,1312.9,24890.34,55581.19,3505.03,1946.72,3056.17,2877.79 424 | 2014-08-14,1313.57,24801.36,55780.41,3475.11,1955.18,3058.16,2883.51 425 | 2014-08-15,1304.83,24954.94,56963.65,3486.86,1955.06,3033.52,2883.19 426 | 2014-08-18,1298.43,24955.46,57560.72,3462.41,1971.74,3073.45,2903.26 427 | 2014-08-19,1295.68,25122.95,58449.29,3460.4,1981.6,3091.11,2914.33 428 | 2014-08-20,1291.92,25159.76,58878.24,3471.14,1986.51,3083.5,2919.78 429 | 2014-08-21,1276.79,24994.1,58992.11,3480.51,1992.37,3124.56,2919.5 430 | 2014-08-22,1280.08,25112.23,58407.32,3480.53,1988.4,3098.5,2905.91 431 | 2014-08-25,1276.9,25166.91,59735.17,3478.0,1997.92,3165.47,2904.02 432 | 2014-08-26,1281.24,25074.5,59821.45,3484.74,2000.02,3197.54,2908.33 433 | 2014-08-27,1282.6,24918.75,60950.57,3490.52,2000.12,3194.45,2914.82 434 | 2014-08-28,1289.69,24741.0,60290.87,3498.54,1996.74,3164.44,2907.08 435 | 2014-08-29,1287.81,24742.06,61288.15,3506.99,2003.37,3172.63,2916.4 436 | 2014-09-01,1286.0,24752.09,61141.27,,,3175.05,2914.65 437 | 2014-09-02,1265.4,24749.02,61895.98,3456.66,2002.28,3180.29,2911.99 438 | 2014-09-03,1269.44,25317.95,61837.04,3467.27,2000.72,3218.84,2925.18 439 | 2014-09-04,1261.93,25297.92,60800.02,3448.41,1997.65,3277.25,2916.09 440 | 2014-09-05,1268.92,25240.15,60681.98,3443.63,2007.71,3275.25,2929.6 441 | 2014-09-08,1255.44,25190.45,59192.75,3429.56,2001.54,3267.54,2918.09 442 | 2014-09-09,1255.5,,58676.34,3408.82,1988.44,3245.43,2901.52 443 | 2014-09-10,1249.79,24705.36,58198.66,3389.73,1995.69,3244.16,2866.88 444 | 2014-09-11,1240.93,24662.64,58337.29,3372.82,1997.45,3237.76,2866.09 445 | 2014-09-12,1229.7,24595.32,56927.81,3363.84,1985.54,3235.07,2810.34 446 | 2014-09-15,1233.28,24356.99,57948.76,3363.96,1984.13,3231.7,2791.6 447 | 2014-09-16,1235.59,24136.01,59114.66,3387.43,1998.98,3221.73,2797.96 448 | 2014-09-17,1223.6,24376.41,59108.19,3382.3,2001.57,3237.44,2803.38 449 | 2014-09-18,1225.2,24168.72,58374.48,3343.32,2011.36,3271.37,2787.75 450 | 2014-09-19,1215.7,24306.16,57788.7,3320.22,2010.4,3273.25,2781.56 451 | 2014-09-22,1215.15,23955.49,56818.11,3291.17,1994.29,3257.48,2767.1 452 | 2014-09-23,1223.34,23837.07,56540.5,3292.59,1982.77,3205.93,2749.38 453 | 2014-09-24,1217.06,23921.61,56824.42,3311.2,1998.3,3244.01,2741.29 454 | 2014-09-25,1221.53,23768.13,55962.08,3297.97,1965.99,3202.31,2729.34 455 | 2014-09-26,1218.38,23678.41,57212.38,3301.51,1982.85,3219.58,2746.3 456 | 2014-09-29,1215.82,23229.21,54625.35,3327.72,1977.8,3186.95,2736.41 457 | 2014-09-30,1208.16,22932.98,54115.98,3275.15,1972.29,3225.93,2727.63 458 | 2014-10-01,1213.88,,52858.43,3268.89,1946.16,3195.08,2727.73 459 | 2014-10-02,1214.52,,53518.57,3256.84,1946.17,3106.42,2717.42 460 | 2014-10-03,1191.35,23064.56,54539.55,3244.76,1967.9,3133.37,2716.34 461 | 2014-10-06,1207.3,23315.04,57115.9,3283.84,1964.82,3138.67,2729.69 462 | 2014-10-07,1208.98,23422.52,57436.33,3289.06,1935.1,3082.1,2720.07 463 | 2014-10-08,1221.12,23263.33,57058.48,3264.12,1968.89,3053.31,2748.25 464 | 2014-10-09,1224.31,23534.53,57267.53,3248.18,1928.21,3042.45,2759.08 465 | 2014-10-10,1223.09,23088.54,55311.59,3234.24,1906.13,2991.5,2747.16 466 | 2014-10-13,1235.87,23143.38,57956.53,3249.29,1874.74,2998.32,2750.3 467 | 2014-10-14,1232.88,23047.97,58015.46,3211.21,1877.7,3000.99,2772.72 468 | 2014-10-15,1242.01,23140.05,56135.27,3180.54,1862.49,2892.55,2762.03 469 | 2014-10-16,1238.85,22900.94,54298.33,3198.19,1862.76,2874.65,2766.83 470 | 2014-10-17,1238.32,23023.21,55723.79,3202.1,1886.76,2962.24,2774.18 471 | 2014-10-20,1246.93,23070.26,54302.57,3185.0,1904.01,2927.3,2806.22 472 | 2014-10-21,1248.64,23088.58,52432.43,3211.43,1941.28,2991.46,2834.03 473 | 2014-10-22,1241.25,23403.97,52411.03,3189.07,1927.11,3008.53,2837.34 474 | 2014-10-23,1231.86,23333.18,50713.26,3214.77,1950.82,3044.3,2853.9 475 | 2014-10-24,1230.9,23302.2,51940.73,3193.48,1964.58,3030.37,2852.78 476 | 2014-10-27,1226.55,23143.23,50503.66,3200.23,1961.63,2998.84,2867.62 477 | 2014-10-28,1228.54,23520.36,52330.03,3222.74,1985.05,3036.15,2882.58 478 | 2014-10-29,1212.06,23819.87,51049.32,3261.59,1982.3,3022.42,2878.14 479 | 2014-10-30,1198.78,23702.04,52336.83,3229.19,1994.65,3035.9,2883.64 480 | 2014-10-31,1173.48,23998.06,54628.6,3220.01,2018.05,3113.32,2914.95 481 | 2014-11-03,1165.55,23915.97,53947.21,3210.84,2017.81,3082.32,2920.22 482 | 2014-11-04,1168.35,23845.66,54383.59,3165.28,2012.1,3034.24,2928.28 483 | 2014-11-05,1140.65,23695.62,53698.42,3165.32,2023.57,3091.54,2917.99 484 | 2014-11-06,1141.85,23649.31,52637.06,3171.74,2031.21,3102.07,2890.33 485 | 2014-11-07,1177.98,23550.24,53222.85,3190.56,2031.92,3064.92,2884.86 486 | 2014-11-10,1151.44,23744.7,52725.38,3160.34,2038.26,3094.6,2911.63 487 | 2014-11-11,1164.29,23808.28,52474.27,3176.68,2039.68,3104.59,2906.85 488 | 2014-11-12,1162.65,23938.18,52978.89,3166.87,2038.25,3047.3,2897.6 489 | 2014-11-13,1162.46,24019.94,51846.03,3114.13,2039.33,3056.8,2907.99 490 | 2014-11-14,1188.75,24087.38,51772.4,3145.64,2039.82,3059.99,2897.72 491 | 2014-11-17,1186.55,23797.08,51256.99,3149.87,2041.32,3084.79,2900.47 492 | 2014-11-18,1196.99,23529.17,52061.86,3131.89,2051.8,3120.42,2910.93 493 | 2014-11-19,1182.72,23373.31,53402.81,3129.84,2048.72,3123.12,2891.79 494 | 2014-11-20,1193.88,23349.64,,3162.94,2052.75,3102.21,2895.02 495 | 2014-11-21,1201.55,23437.12,56084.04,3178.33,2063.5,3194.22,2912.26 496 | 2014-11-24,1197.09,23893.14,55406.91,3156.77,2069.41,3211.7,2919.41 497 | 2014-11-25,1200.95,23843.91,55560.81,3151.82,2067.03,3226.15,2926.09 498 | 2014-11-26,1197.9,24111.98,55098.47,3149.3,2072.83,3226.08,2951.23 499 | 2014-11-27,1191.07,24004.28,54721.32,,,3244.92,2953.06 500 | 2014-11-28,1167.41,23987.45,54724.0,3009.76,2067.56,3250.93,2957.32 501 | 2014-12-01,1212.09,23367.45,52276.58,3068.9,2053.44,3232.91,2954.68 502 | 2014-12-02,1198.3,23654.3,51612.47,3012.47,2066.55,3238.35,2970.32 503 | 2014-12-03,1209.42,23428.62,52320.48,3005.66,2074.33,3247.72,2965.47 504 | 2014-12-04,1205.3,23832.56,51426.87,3006.67,2071.92,3191.25,2961.31 505 | 2014-12-05,1192.51,24002.64,51992.89,2997.2,2075.37,3277.38,2945.74 506 | 2014-12-08,1203.52,24047.67,50274.07,2949.01,2060.31,3247.99,2950.63 507 | 2014-12-09,1230.92,23485.83,50193.47,2973.84,2059.82,3162.77,2959.48 508 | 2014-12-10,1226.66,23524.52,49548.08,2925.79,2026.14,3150.95,2957.05 509 | 2014-12-11,1227.54,23312.54,49861.81,2917.96,2035.33,3159.11,2956.07 510 | 2014-12-12,1222.5,23249.2,48001.98,2905.37,2002.33,3067.32,2942.01 511 | 2014-12-15,1193.23,23027.85,47018.68,2876.55,1989.63,2982.9,2905.49 512 | 2014-12-16,1196.93,22670.5,47007.51,2842.88,1972.74,3049.99,2905.79 513 | 2014-12-17,1189.73,22585.84,48713.64,2867.85,2012.89,3051.99,2940.39 514 | 2014-12-18,1198.72,22832.21,48495.7,2840.3,2061.23,3153.77,2954.54 515 | 2014-12-19,1196.35,23116.63,49650.98,2862.74,2070.65,3141.28,2968.1 516 | 2014-12-22,1176.45,23408.57,50120.86,2821.95,2078.54,3154.91,3008.35 517 | 2014-12-23,1176.65,23333.69,50889.81,2848.51,2082.17,3192.47,2996.0 518 | 2014-12-24,1174.82,23349.34,,2809.18,2081.88,3184.66,2994.97 519 | 2014-12-25,1174.01,,,,,,2994.09 520 | 2014-12-26,1196.0,,50144.63,2809.15,2088.77,,3001.85 521 | 2014-12-29,1183.29,23773.18,50593.82,2787.46,2090.57,3185.17,3016.45 522 | 2014-12-30,1200.55,23501.1,50007.41,2792.63,2080.35,3135.95,3013.99 523 | 2014-12-31,1184.86,23605.04,,2749.0,2058.9,3146.43,2978.91 524 | 2015-01-01,1181.98,,,,,, 525 | 2015-01-02,1189.23,23857.82,48512.22,2730.77,2058.2,3139.44,3003.07 526 | 2015-01-05,1204.82,23721.32,47516.82,2697.02,2020.58,3023.14,3008.98 527 | 2015-01-06,1218.45,23485.41,48000.92,2672.36,2002.61,3007.91,3025.72 528 | 2015-01-07,1211.47,23681.26,49462.91,2665.25,2025.9,3026.79,3059.89 529 | 2015-01-08,1208.73,23835.53,49943.3,2664.48,2062.14,3135.08,3079.37 530 | 2015-01-09,1222.52,23919.95,48840.25,2657.6,2044.81,3042.9,3090.73 531 | 2015-01-12,1233.26,24026.46,48139.74,2602.65,2028.26,3084.18,3106.83 532 | 2015-01-13,1230.75,24215.97,48041.67,2586.36,2023.03,3133.86,3112.09 533 | 2015-01-14,1228.7,24112.6,47645.87,2617.06,2011.27,3089.67,3126.8 534 | 2015-01-15,1262.73,24350.91,48026.31,2590.08,1992.67,3157.36,3140.88 535 | 2015-01-16,1280.45,24103.52,49016.52,2640.28,2019.42,3202.24,3160.78 536 | 2015-01-19,1275.65,23738.49,47758.01,,,3220.9,3163.83 537 | 2015-01-20,1295.4,23951.16,47876.66,2590.78,2022.55,3244.92,3148.09 538 | 2015-01-21,1293.1,24352.58,49224.08,2620.97,2032.12,3269.73,3155.06 539 | 2015-01-22,1302.13,24522.63,49442.62,2593.57,2063.15,3322.65,3187.09 540 | 2015-01-23,1294.1,24850.45,48775.3,2579.01,2051.82,3382.55,3195.78 541 | 2015-01-26,1281.38,24909.9,48576.55,2567.91,2057.09,3414.28,3211.77 542 | 2015-01-27,1292.24,24807.28,48591.23,2588.4,2029.55,3372.58,3213.25 543 | 2015-01-28,1284.49,24861.81,47694.54,2554.88,2002.16,3358.96,3202.41 544 | 2015-01-29,1257.38,24595.85,47762.24,2529.95,2021.25,3371.83,3201.66 545 | 2015-01-30,1283.77,24507.05,46907.68,2600.69,1994.99,3351.44,3153.24 546 | 2015-02-02,1274.46,24484.74,47650.73,2625.31,2020.85,3370.11,3164.94 547 | 2015-02-03,1260.42,24554.78,48963.66,2713.63,2050.03,3414.18,3181.17 548 | 2015-02-04,1269.22,24679.76,49301.05,2629.33,2041.51,3415.53,3177.72 549 | 2015-02-05,1264.81,24765.49,49233.85,2671.72,2062.52,3408.96,3212.52 550 | 2015-02-06,1233.92,24679.39,48792.27,2686.36,2055.47,3398.16,3147.38 551 | 2015-02-09,1238.99,24521.0,49382.58,2715.51,2046.74,3347.75,3117.32 552 | 2015-02-10,1233.64,24528.1,48510.28,2662.43,2068.59,3383.13,3123.65 553 | 2015-02-11,1219.02,24315.02,48239.67,2636.5,2068.53,3374.14,3111.91 554 | 2015-02-12,1222.15,24422.15,49532.72,2693.07,2088.48,3417.61,3143.4 555 | 2015-02-13,1229.43,24682.54,50635.92,2743.24,2096.99,3447.59,3141.27 556 | 2015-02-16,1231.5,24726.53,,,,3433.3,3136.05 557 | 2015-02-17,1209.77,24784.88,,2741.68,2100.34,3438.44,3132.32 558 | 2015-02-18,1212.44,24832.08,51280.36,2711.84,2099.68,3465.8,3152.21 559 | 2015-02-19,1206.77,,51294.03,2702.02,2097.45,3488.08,3109.83 560 | 2015-02-20,1201.95,,51237.7,2685.59,2110.3,3490.53,3125.66 561 | 2015-02-23,1201.63,24836.76,51280.64,2650.97,2109.66,3519.58,3147.8 562 | 2015-02-24,1200.44,24750.07,51874.17,2652.12,2115.48,3547.1,3108.52 563 | 2015-02-25,1205.05,24778.28,51811.02,2688.59,2113.86,3541.78,3116.95 564 | 2015-02-26,1209.49,24902.06,51760.54,2653.07,2110.74,3574.94,3089.23 565 | 2015-02-27,1213.22,24823.29,51583.09,2699.58,2104.5,3599.0,3103.45 566 | 2015-03-02,1206.83,24887.44,51020.81,2660.51,2117.39,3591.09,3117.76 567 | 2015-03-03,1203.82,24702.78,51304.1,2673.75,2107.78,3549.11,3114.2 568 | 2015-03-04,1200.3,24465.38,50468.05,2670.27,2098.53,3583.44,3080.46 569 | 2015-03-05,1198.34,24193.04,50365.2,2658.73,2101.04,3618.21,3080.09 570 | 2015-03-06,1167.19,24164.0,49981.19,2630.81,2071.26,3617.62,2999.85 571 | 2015-03-09,1167.15,24123.05,49181.01,2623.64,2079.43,3610.28,2990.96 572 | 2015-03-10,1161.85,23896.98,48293.4,2582.27,2044.16,3567.25,2972.74 573 | 2015-03-11,1155.31,23717.97,48905.58,2586.03,2040.24,3649.54,2972.91 574 | 2015-03-12,1153.68,23797.96,48880.4,2574.38,2065.95,3641.32,3007.41 575 | 2015-03-13,1158.55,23823.21,48595.81,2527.6,2053.4,3656.21,3003.38 576 | 2015-03-16,1154.86,23949.55,48848.21,2514.93,2081.19,3706.75,3031.13 577 | 2015-03-17,1149.55,23901.49,50285.12,2499.12,2074.28,3672.16,3020.89 578 | 2015-03-18,1167.58,24120.08,51526.19,2540.36,2099.5,3668.52,3064.54 579 | 2015-03-19,1171.11,24468.89,50953.53,2527.78,2089.27,3670.73,3080.33 580 | 2015-03-20,1182.63,24375.24,51966.58,2573.29,2108.1,3726.07,3143.94 581 | 2015-03-23,1189.51,24494.51,51908.46,2597.68,2104.42,3699.04,3151.39 582 | 2015-03-24,1193.33,24399.6,51506.07,2593.29,2091.5,3731.35,3144.65 583 | 2015-03-25,1195.43,24528.23,51858.3,2608.96,2061.05,3684.04,3114.22 584 | 2015-03-26,1204.83,24497.08,50579.85,2639.59,2056.15,3669.79,3087.46 585 | 2015-03-27,1198.75,24486.2,50094.66,2587.97,2061.02,3679.03,3094.35 586 | 2015-03-30,1186.07,24855.12,51243.45,2584.22,2086.24,3727.8,3110.08 587 | 2015-03-31,1183.68,24900.89,51150.16,2551.33,2067.89,3697.38,3087.4 588 | 2015-04-01,1203.9,25082.75,52321.76,2602.67,2059.69,3714.89,3083.95 589 | 2015-04-02,1202.6,25275.64,53123.02,2586.94,2066.96,3715.27,3107.56 590 | 2015-04-03,1202.87,,,,,,3108.22 591 | 2015-04-06,1214.85,,53737.26,2636.71,2080.62,,3137.27 592 | 2015-04-07,1209.2,,53729.16,2655.84,2076.33,3768.72,3102.05 593 | 2015-04-08,1202.51,26236.86,53661.11,2590.89,2081.9,3742.63,3112.79 594 | 2015-04-09,1194.72,26944.39,53802.66,2588.75,2091.18,3781.79,3077.74 595 | 2015-04-10,1207.57,27272.39,54214.11,2613.21,2102.06,3816.76,3084.2 596 | 2015-04-13,1198.89,28016.34,54239.77,2600.56,2092.43,3828.78,3059.69 597 | 2015-04-14,1192.76,27561.49,53981.92,2618.49,2095.84,3784.53,3081.72 598 | 2015-04-15,1202.59,27618.82,54918.74,2676.38,2106.63,3803.55,3062.47 599 | 2015-04-16,1198.56,27739.71,54674.21,2694.5,2104.99,3751.72,3077.21 600 | 2015-04-17,1204.27,27653.12,53954.79,2676.61,2081.18,3674.05,3061.38 601 | 2015-04-20,1195.88,27094.93,53761.27,2667.63,2100.4,3718.04,3059.73 602 | 2015-04-21,1202.34,27850.49,,2651.41,2097.29,3719.38,3065.53 603 | 2015-04-22,1200.59,27964.84,,2638.95,,3742.77, 604 | -------------------------------------------------------------------------------- /book/marimo/data/ts.csv: -------------------------------------------------------------------------------- 1 | ,value 2 | 2014-01-01,1.3063517821860473 3 | 2014-01-02,1.3019974053742485 4 | 2014-01-03,1.2989329455706211 5 | 2014-01-06,1.2982812397654313 6 | 2014-01-07,1.2994326361898625 7 | 2014-01-08,1.2983960380402324 8 | 2014-01-09,1.2962781832593675 9 | 2014-01-10,1.2996466196815708 10 | 2014-01-13,1.2984741155305948 11 | 2014-01-14,1.2997475206785771 12 | 2014-01-15,1.3018609013247957 13 | 2014-01-16,1.3023111544746786 14 | 2014-01-17,1.3027746618188134 15 | 2014-01-20,1.3019665442738844 16 | 2014-01-21,1.3030381486921616 17 | 2014-01-22,1.305035173961279 18 | 2014-01-23,1.302489733919346 19 | 2014-01-24,1.2979684039269108 20 | 2014-01-27,1.2929125563811494 21 | 2014-01-28,1.2951421689301583 22 | 2014-01-29,1.2953350958145442 23 | 2014-01-30,1.2953259915853017 24 | 2014-01-31,1.2940847222143854 25 | 2014-02-03,1.2911727922608338 26 | 2014-02-04,1.2911621022169688 27 | 2014-02-05,1.2914230560981583 28 | 2014-02-06,1.2944584842131506 29 | 2014-02-07,1.2989967292459397 30 | 2014-02-10,1.2992418084936888 31 | 2014-02-11,1.302905187985057 32 | 2014-02-12,1.3047637406593295 33 | 2014-02-13,1.3061157118083322 34 | 2014-02-14,1.3083983221985431 35 | 2014-02-17,1.3092452777214216 36 | 2014-02-18,1.3139609804660737 37 | 2014-02-19,1.314793086275586 38 | 2014-02-20,1.3146060580801673 39 | 2014-02-21,1.3152133355336422 40 | 2014-02-24,1.315781329640999 41 | 2014-02-25,1.3154785769260982 42 | 2014-02-26,1.3148643761534915 43 | 2014-02-27,1.315852469941157 44 | 2014-02-28,1.3175685216661364 45 | 2014-03-03,1.3198035701134243 46 | 2014-03-04,1.3226031754094096 47 | 2014-03-05,1.320573470448306 48 | 2014-03-06,1.3229467493397886 49 | 2014-03-07,1.3203467128444035 50 | 2014-03-10,1.3163610096673604 51 | 2014-03-11,1.3168200850542735 52 | 2014-03-12,1.3159570414567816 53 | 2014-03-13,1.3140165763204543 54 | 2014-03-14,1.3145715967852516 55 | 2014-03-17,1.3130932719876471 56 | 2014-03-18,1.3152011831470556 57 | 2014-03-19,1.3127035638181672 58 | 2014-03-20,1.309219087670164 59 | 2014-03-21,1.3109382172875312 60 | 2014-03-24,1.3101861370342214 61 | 2014-03-25,1.3118359228181709 62 | 2014-03-26,1.3101688599100498 63 | 2014-03-27,1.3112554843173745 64 | 2014-03-28,1.3131790283401352 65 | 2014-03-31,1.3137907030064262 66 | 2014-04-01,1.3133980838056163 67 | 2014-04-02,1.3143293446859214 68 | 2014-04-03,1.3151128631916025 69 | 2014-04-04,1.315813305966718 70 | 2014-04-07,1.31384128014314 71 | 2014-04-08,1.3185272185582744 72 | 2014-04-09,1.3205037935994517 73 | 2014-04-10,1.3198930421538353 74 | 2014-04-11,1.3179376412588708 75 | 2014-04-14,1.3209214742420683 76 | 2014-04-15,1.318719141989561 77 | 2014-04-16,1.3208051032635586 78 | 2014-04-17,1.3211896716144576 79 | 2014-04-18,1.321229422671604 80 | 2014-04-21,1.3206071164782736 81 | 2014-04-22,1.3206758851709637 82 | 2014-04-23,1.3194513070964775 83 | 2014-04-24,1.3219686067748142 84 | 2014-04-25,1.3204397413355466 85 | 2014-04-28,1.320212141313797 86 | 2014-04-29,1.3225332643902292 87 | 2014-04-30,1.321047695503357 88 | 2014-05-01,1.3193444262964802 89 | 2014-05-02,1.3216153341371832 90 | 2014-05-05,1.3218762844280567 91 | 2014-05-06,1.3217067600829162 92 | 2014-05-07,1.3212821736226772 93 | 2014-05-08,1.321494789338464 94 | 2014-05-09,1.3205807529969458 95 | 2014-05-12,1.3239006963485944 96 | 2014-05-13,1.3242332001529808 97 | 2014-05-14,1.3262993153061555 98 | 2014-05-15,1.323504917038174 99 | 2014-05-16,1.3239046018497904 100 | 2014-05-19,1.3241677102232845 101 | 2014-05-20,1.3230072971291331 102 | 2014-05-21,1.3234616666901562 103 | 2014-05-22,1.3240103434277364 104 | 2014-05-23,1.325344085344838 105 | 2014-05-26,1.3254895785492673 106 | 2014-05-27,1.323504213254555 107 | 2014-05-28,1.3221649301091023 108 | 2014-05-29,1.3228572056344836 109 | 2014-05-30,1.322153340287881 110 | 2014-06-02,1.32217835943385 111 | 2014-06-03,1.3223045701985283 112 | 2014-06-04,1.3215725468593322 113 | 2014-06-05,1.3250286484671456 114 | 2014-06-06,1.3261159731250862 115 | 2014-06-09,1.3257914789552712 116 | 2014-06-10,1.3248838247697654 117 | 2014-06-11,1.323898645560041 118 | 2014-06-12,1.3261952624394449 119 | 2014-06-13,1.3273260979151185 120 | 2014-06-16,1.326254550979873 121 | 2014-06-17,1.3260572032597118 122 | 2014-06-18,1.3285853106587553 123 | 2014-06-19,1.3353226743349431 124 | 2014-06-20,1.3358034259144032 125 | 2014-06-23,1.3339548156586327 126 | 2014-06-24,1.3336266594837416 127 | 2014-06-25,1.3341267296757586 128 | 2014-06-26,1.3345257030120616 129 | 2014-06-27,1.3355243131627712 130 | 2014-06-30,1.3338037482943028 131 | 2014-07-01,1.3346362004043022 132 | 2014-07-02,1.3351333143621165 133 | 2014-07-03,1.3343523621233258 134 | 2014-07-04,1.3340292806490264 135 | 2014-07-07,1.3314658544651152 136 | 2014-07-08,1.330476921002809 137 | 2014-07-09,1.3295971504678752 138 | 2014-07-10,1.3306438469113635 139 | 2014-07-11,1.3289176649821872 140 | 2014-07-14,1.3289703889081441 141 | 2014-07-15,1.3271509138494018 142 | 2014-07-16,1.329536909319645 143 | 2014-07-17,1.3297804109297655 144 | 2014-07-18,1.3302757579259936 145 | 2014-07-21,1.3298541382982478 146 | 2014-07-22,1.3312703506913934 147 | 2014-07-23,1.3328859802131658 148 | 2014-07-24,1.3320475295890604 149 | 2014-07-25,1.331127930652953 150 | 2014-07-28,1.3320992343396785 151 | 2014-07-29,1.330128465602794 152 | 2014-07-30,1.3292962145624725 153 | 2014-07-31,1.3220636885742587 154 | 2014-08-01,1.3196459094736444 155 | 2014-08-04,1.3221215595702869 156 | 2014-08-05,1.318942763185874 157 | 2014-08-06,1.3205349684272814 158 | 2014-08-07,1.3198078674588147 159 | 2014-08-08,1.3199887644035908 160 | 2014-08-11,1.3232537590473377 161 | 2014-08-12,1.3217490353012349 162 | 2014-08-13,1.3251197125962402 163 | 2014-08-14,1.3237289532756389 164 | 2014-08-15,1.3242212599970151 165 | 2014-08-18,1.3241151296465297 166 | 2014-08-19,1.3253218868815475 167 | 2014-08-20,1.3262036660542935 168 | 2014-08-21,1.3249639703118774 169 | 2014-08-22,1.3246490039117471 170 | 2014-08-25,1.3244874784645941 171 | 2014-08-26,1.3252960561640084 172 | 2014-08-27,1.3256642597713622 173 | 2014-08-28,1.3255228792836822 174 | 2014-08-29,1.327139348600748 175 | 2014-09-01,1.3269144555895631 176 | 2014-09-02,1.322047464478634 177 | 2014-09-03,1.32555636803803 178 | 2014-09-04,1.3228954760113665 179 | 2014-09-05,1.3244704725672312 180 | 2014-09-08,1.3212237558825024 181 | 2014-09-09,1.3181836619572624 182 | 2014-09-10,1.3130717652795518 183 | 2014-09-11,1.311533010359509 184 | 2014-09-12,1.3057477400533315 185 | 2014-09-15,1.3047247434666869 186 | 2014-09-16,1.3074244194029936 187 | 2014-09-17,1.3077525903668337 188 | 2014-09-18,1.3060263798467953 189 | 2014-09-19,1.3045888105906591 190 | 2014-09-22,1.2997318348746731 191 | 2014-09-23,1.2980520783544485 192 | 2014-09-24,1.300647959712532 193 | 2014-09-25,1.2957065881905236 194 | 2014-09-26,1.296792703610833 195 | 2014-09-29,1.293926734234878 196 | 2014-09-30,1.291988552499442 197 | 2014-10-01,1.2903100168024395 198 | 2014-10-02,1.2868767836410178 199 | 2014-10-03,1.284362038573257 200 | 2014-10-06,1.2883290626065358 201 | 2014-10-07,1.28506403218619 202 | 2014-10-08,1.2891907871916526 203 | 2014-10-09,1.2882832267163369 204 | 2014-10-10,1.2840185269691842 205 | 2014-10-13,1.2860868061902084 206 | 2014-10-14,1.2868219418672806 207 | 2014-10-15,1.2840759737636545 208 | 2014-10-16,1.2839974179755678 209 | 2014-10-17,1.2856101180691406 210 | 2014-10-20,1.2886764954272698 211 | 2014-10-21,1.2927507147800836 212 | 2014-10-22,1.2921413485769204 213 | 2014-10-23,1.2936986862448467 214 | 2014-10-24,1.2928579770288968 215 | 2014-10-27,1.2932738461346975 216 | 2014-10-28,1.2967802996370916 217 | 2014-10-29,1.2976075292693812 218 | 2014-10-30,1.2952043617363689 219 | 2014-10-31,1.2961098042843178 220 | 2014-11-03,1.2950885144962845 221 | 2014-11-04,1.2935902307669167 222 | 2014-11-05,1.2897946436498626 223 | 2014-11-06,1.2887884729447698 224 | 2014-11-07,1.2929232831364323 225 | 2014-11-10,1.2919287340126786 226 | 2014-11-11,1.2935759673922689 227 | 2014-11-12,1.2925140586470985 228 | 2014-11-13,1.2917026092472972 229 | 2014-11-14,1.2945233585762703 230 | 2014-11-17,1.2941652553532534 231 | 2014-11-18,1.2950538582925557 232 | 2014-11-19,1.2923559797082649 233 | 2014-11-20,1.2943032326905877 234 | 2014-11-21,1.2975132660603794 235 | 2014-11-24,1.298399279437882 236 | 2014-11-25,1.298722779344696 237 | 2014-11-26,1.3006290816581174 238 | 2014-11-27,1.3000492251387883 239 | 2014-11-28,1.2935771592500624 240 | 2014-12-01,1.2954851056593395 241 | 2014-12-02,1.2960299940938218 242 | 2014-12-03,1.296065119790067 243 | 2014-12-04,1.2966751187904877 244 | 2014-12-05,1.2957134612215837 245 | 2014-12-08,1.2956979541547993 246 | 2014-12-09,1.2967085573612585 247 | 2014-12-10,1.2946815844417658 248 | 2014-12-11,1.2940225007396362 249 | 2014-12-12,1.291102793253362 250 | 2014-12-15,1.2842430730558143 251 | 2014-12-16,1.2825238954617852 252 | 2014-12-17,1.2875483261929406 253 | 2014-12-18,1.2900286287258338 254 | 2014-12-19,1.2923960721448975 255 | 2014-12-22,1.2958755469428096 256 | 2014-12-23,1.2951353301838586 257 | 2014-12-24,1.2944883845664126 258 | 2014-12-25,1.2943755127310228 259 | 2014-12-26,1.2962481020669487 260 | 2014-12-29,1.2978207191212183 261 | 2014-12-30,1.2977490515751822 262 | 2014-12-31,1.2934720900884369 263 | 2015-01-01,1.2932980766323692 264 | 2015-01-02,1.2956211541105205 265 | 2015-01-05,1.2948124695432102 266 | 2015-01-06,1.2943489073409868 267 | 2015-01-07,1.2960997453109733 268 | 2015-01-08,1.2973056459707544 269 | 2015-01-09,1.298753274676588 270 | 2015-01-12,1.2981222518420237 271 | 2015-01-13,1.2987866354047688 272 | 2015-01-14,1.299806177304756 273 | 2015-01-15,1.3028672967110184 274 | 2015-01-16,1.3063719579052555 275 | 2015-01-19,1.3050499636108226 276 | 2015-01-20,1.3039839867402978 277 | 2015-01-21,1.3069846679126638 278 | 2015-01-22,1.3098176442777467 279 | 2015-01-23,1.3108832832472677 280 | 2015-01-26,1.3111049391691223 281 | 2015-01-27,1.311734975897345 282 | 2015-01-28,1.3094714973430133 283 | 2015-01-29,1.306644037922107 284 | 2015-01-30,1.3055300534244083 285 | 2015-02-02,1.3069903953850333 286 | 2015-02-03,1.3108274270863205 287 | 2015-02-04,1.3095123723578694 288 | 2015-02-05,1.3132691381319372 289 | 2015-02-06,1.307136913652134 290 | 2015-02-09,1.3058583276330331 291 | 2015-02-10,1.305764668366318 292 | 2015-02-11,1.3031152403517754 293 | 2015-02-12,1.3063018408858107 294 | 2015-02-13,1.3090176241386355 295 | 2015-02-16,1.3091735369326811 296 | 2015-02-17,1.3079536080309853 297 | 2015-02-18,1.3083841182356042 298 | 2015-02-19,1.3069244200388617 299 | 2015-02-20,1.307332007093698 300 | 2015-02-23,1.3073685445243346 301 | 2015-02-24,1.3060940283020248 302 | 2015-02-25,1.3072426414666285 303 | 2015-02-26,1.306835850920691 304 | 2015-02-27,1.3078702988257358 305 | 2015-03-02,1.307808879209509 306 | 2015-03-03,1.3065021599191509 307 | 2015-03-04,1.3036097563813502 308 | 2015-03-05,1.3019143220901657 309 | 2015-03-06,1.2957236004463473 310 | 2015-03-09,1.2954733061029031 311 | 2015-03-10,1.2912310845068835 312 | 2015-03-11,1.2902543464159644 313 | 2015-03-12,1.2915231781395362 314 | 2015-03-13,1.2907800333770878 315 | 2015-03-16,1.292768584283378 316 | 2015-03-17,1.2911968143964914 317 | 2015-03-18,1.2963211306898996 318 | 2015-03-19,1.2984304664523094 319 | 2015-03-20,1.3010878783476862 320 | 2015-03-23,1.3023706135741389 321 | 2015-03-24,1.3020626828786903 322 | 2015-03-25,1.3018740619712637 323 | 2015-03-26,1.3026082413552005 324 | 2015-03-27,1.3014837046393717 325 | 2015-03-30,1.3043933106302852 326 | 2015-03-31,1.3031468435469973 327 | 2015-04-01,1.3069189988849872 328 | 2015-04-02,1.3080886408641712 329 | 2015-04-03,1.3081098457361493 330 | 2015-04-06,1.310201013229076 331 | 2015-04-07,1.3102135718426935 332 | 2015-04-08,1.3147539140360769 333 | 2015-04-09,1.318236521518962 334 | 2015-04-10,1.3217445188672292 335 | 2015-04-13,1.3219649956686754 336 | 2015-04-14,1.3203531041538557 337 | 2015-04-15,1.3222133730089989 338 | 2015-04-16,1.3219423377494781 339 | 2015-04-17,1.3197214477799284 340 | 2015-04-20,1.3182327143896386 341 | 2015-04-21,1.3211891082909042 342 | 2015-04-22,1.3215650061893174 343 | -------------------------------------------------------------------------------- /book/marimo/demo.py: -------------------------------------------------------------------------------- 1 | import marimo 2 | 3 | __generated_with = "0.10.10" 4 | app = marimo.App() 5 | 6 | 7 | @app.cell 8 | def _(mo): 9 | mo.md(r"""# Demo""") 10 | return 11 | 12 | 13 | @app.cell 14 | def _(): 15 | import pandas as pd 16 | from mongoengine import Document, connect 17 | from mongomock import MongoClient 18 | 19 | # connect with your existing MongoDB (here I am using a popular interface mocking a MongoDB) 20 | client = connect(db="test", mongo_client_class=MongoClient) 21 | return Document, MongoClient, client, connect, pd 22 | 23 | 24 | @app.cell 25 | def _(): 26 | from antarctic.pandas_field import PandasField 27 | 28 | return (PandasField,) 29 | 30 | 31 | @app.cell 32 | def _(Document, PandasField): 33 | class Portfolio(Document): 34 | nav = PandasField() 35 | weights = PandasField() 36 | prices = PandasField() 37 | 38 | return (Portfolio,) 39 | 40 | 41 | @app.cell 42 | def _(pd): 43 | ts = pd.read_csv("data/ts.csv", index_col=0, parse_dates=True) 44 | print(ts) 45 | return (ts,) 46 | 47 | 48 | @app.cell 49 | def _(pd): 50 | prices = pd.read_csv("data/price.csv", index_col=0, parse_dates=True, header=0) 51 | print(prices) 52 | return (prices,) 53 | 54 | 55 | @app.cell 56 | def _(Portfolio, pd, prices, ts): 57 | portfolio = Portfolio( 58 | nav=ts, 59 | prices=prices, 60 | weights=pd.DataFrame(index=prices.index, columns=prices.columns, data=1.0 / 7), 61 | ) 62 | portfolio.save() 63 | return (portfolio,) 64 | 65 | 66 | @app.cell 67 | def _(): 68 | import marimo as mo 69 | 70 | return (mo,) 71 | 72 | 73 | if __name__ == "__main__": 74 | app.run() 75 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "antarctic" 3 | version = "0.0.0" 4 | description = "..." 5 | readme = "README.md" 6 | requires-python = ">=3.10" 7 | dependencies = [ 8 | "mongoengine>=0.25.0", 9 | "pandas>=2.0", 10 | "pyarrow>=0.15.0", 11 | "fastparquet>=0.8.0" 12 | ] 13 | authors = [{name = "Thomas Schmelzer", email = "thomas.schmelzer@gmail.com"}] 14 | 15 | [project.urls] 16 | repository = "https://github.com/tschm/antarctic" 17 | homepage = "https://tschm.github.io/antarctic/book" 18 | 19 | 20 | [project.optional-dependencies] 21 | dev = [ 22 | "pytest-cov==6.1.1", 23 | "pytest==8.4.0", 24 | "pre-commit==4.2.0", 25 | "mongomock==4.3.0", 26 | ] 27 | 28 | [build-system] 29 | requires = ["hatchling"] 30 | build-backend = "hatchling.build" 31 | 32 | [tool.hatch.build.targets.wheel] 33 | packages = ["src/antarctic"] 34 | 35 | [tool.deptry] 36 | # see https://deptry.com/usage/#pep-621-dev-dependency-groups 37 | pep621_dev_dependency_groups = ["dev"] 38 | 39 | [tool.deptry.per_rule_ignores] 40 | DEP002 = ["fastparquet"] 41 | -------------------------------------------------------------------------------- /src/antarctic/__init__.py: -------------------------------------------------------------------------------- 1 | import importlib.metadata 2 | 3 | __version__ = importlib.metadata.version("antarctic") 4 | -------------------------------------------------------------------------------- /src/antarctic/document.py: -------------------------------------------------------------------------------- 1 | """overload the document class of MongoEngine""" 2 | 3 | from __future__ import annotations 4 | 5 | from datetime import datetime 6 | 7 | import pandas as pd 8 | from mongoengine import DateTimeField, DictField, Document, StringField 9 | 10 | 11 | class XDocument(Document): 12 | """ 13 | A XDocument is an abstract Mongo Document, 14 | e.g. instances of this document can not be instantiated. 15 | All concrete objects such as Symbols or Strategies are children of the XDocument. 16 | Having a common parent helps to share functionality 17 | """ 18 | 19 | meta = {"abstract": True} 20 | 21 | name = StringField(unique=True, required=True) 22 | reference = DictField() 23 | 24 | # Date modified 25 | date_modified = DateTimeField(default=datetime.utcnow) 26 | 27 | @classmethod 28 | def reference_frame(cls, objects=None) -> pd.DataFrame: 29 | """get a frame of reference data for each object""" 30 | objects = objects or cls.objects 31 | 32 | frame = pd.DataFrame( 33 | { 34 | obj.name: pd.Series(dict(obj.reference.items()), dtype=object) 35 | for obj in objects 36 | } 37 | ).transpose() 38 | frame.index.name = cls.__name__.lower() 39 | return frame.sort_index() 40 | 41 | @classmethod 42 | def subset(cls, names=None): 43 | """extract a subset of documents from the database""" 44 | if names is None: 45 | return cls.objects 46 | 47 | return cls.objects(name__in=names) 48 | 49 | @classmethod 50 | def to_dict(cls, objects=None): 51 | """create a dictionary of objects of class cls 52 | The objects are either given explicitly or if not 53 | all objects of this particular class are extracted. 54 | """ 55 | # represent all documents of a class as a dictionary 56 | objects = objects or cls.objects 57 | return {x.name: x for x in objects} 58 | 59 | @classmethod 60 | def apply(cls, func, default, objects=None) -> pd.DataFrame: 61 | """apply a function func to documents. 62 | Yield the default document if something went wrong""" 63 | objects = objects or cls.objects 64 | 65 | for obj in objects: 66 | try: 67 | yield obj.name, func(obj) 68 | except (TypeError, AttributeError, KeyError): 69 | yield obj.name, default 70 | 71 | @classmethod 72 | def frame(cls, series, key, objects=None) -> pd.DataFrame: 73 | """get a series from each document and return a frame of them""" 74 | objects = objects or cls.objects 75 | return pd.DataFrame({p.name: getattr(p, series)[key] for p in objects}).dropna( 76 | axis=1, how="all" 77 | ) 78 | 79 | def __lt__(self, other): 80 | """sort documents by name""" 81 | return self.name < other.name 82 | 83 | def __eq__(self, other): 84 | """two documents are equal if they are of the same class 85 | and have the same name""" 86 | 87 | # two documents are the sname if they have the same name and class 88 | return self.__class__ == other.__class__ and self.name == other.name 89 | 90 | # we want to make a set of assets, etc.... 91 | def __hash__(self): 92 | """hashcode""" 93 | return hash(self.to_json()) 94 | 95 | def __str__(self): 96 | """string representation of a document""" 97 | return f"<{self.__class__.__name__}: {self.name}>" 98 | 99 | def __repr__(self): 100 | """representation of a document""" 101 | return f"<{self.__class__.__name__}: {self.name}>" 102 | -------------------------------------------------------------------------------- /src/antarctic/pandas_field.py: -------------------------------------------------------------------------------- 1 | """ 2 | This module provides a Pandas type for MongoEngine 3 | """ 4 | 5 | from __future__ import annotations 6 | 7 | from io import BytesIO 8 | 9 | import pandas as pd 10 | import pyarrow as pa 11 | import pyarrow.parquet as pq 12 | from mongoengine.base import BaseField 13 | 14 | 15 | def _read(value: bytes, columns: list[str] | None = None) -> pd.DataFrame: 16 | """ 17 | Read a binary representation by the write method given below. 18 | 19 | Args: 20 | value: binary representation as stored in a file 21 | 22 | Returns: 23 | DataFrame 24 | """ 25 | with BytesIO(value) as buffer: 26 | table = pq.read_table(buffer, columns=columns) 27 | return table.to_pandas() 28 | 29 | 30 | def _write(value: pd.DataFrame, compression="zstd") -> bytes: 31 | """ 32 | Convert a Pandas DataFrame into a byte-stream. 33 | The byte-stream shall encodes in its metadata the nature of the Pandas object. 34 | """ 35 | if isinstance(value, pd.DataFrame): 36 | table = pa.Table.from_pandas(value) 37 | 38 | with BytesIO() as buffer: 39 | pq.write_table(table, buffer, compression=compression) 40 | return buffer.getvalue() 41 | 42 | 43 | class PandasField(BaseField): 44 | """ 45 | Series/Frame type 46 | """ 47 | 48 | def __init__(self, compression="zstd", **kwargs): 49 | """initialize a PandasField""" 50 | super().__init__(**kwargs) 51 | self.compression = compression 52 | 53 | def __set__(self, instance, value: pd.DataFrame | bytes): 54 | """convert the incoming series into a byte-stream document""" 55 | if value is not None: 56 | if isinstance(value, pd.DataFrame): 57 | # give the (new) value to mum 58 | value = _write(value, compression=self.compression) 59 | elif isinstance(value, bytes): 60 | pass 61 | else: 62 | raise AssertionError(f"Type of value {type(value)}") 63 | super().__set__(instance, value) 64 | 65 | def __get__(self, instance, owner): 66 | """get the pandas object back""" 67 | data = super().__get__(instance, owner) 68 | 69 | if data is not None: 70 | return _read(data) 71 | 72 | return None 73 | -------------------------------------------------------------------------------- /src/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tschm/antarctic/562278461c3c27086c2355cc5c8e9f5d0f6f5b13/src/tests/__init__.py -------------------------------------------------------------------------------- /src/tests/conftest.py: -------------------------------------------------------------------------------- 1 | """global fixtures""" 2 | 3 | from __future__ import annotations 4 | 5 | from pathlib import Path 6 | 7 | import mongomock 8 | import pytest 9 | from mongoengine import connect, disconnect 10 | 11 | 12 | @pytest.fixture(scope="session", name="root_dir") 13 | def root_fixture(): 14 | return Path(__file__).parent.parent.parent 15 | 16 | 17 | @pytest.fixture(scope="session", name="resource_dir") 18 | def resource_fixture(): 19 | """resource fixture""" 20 | return Path(__file__).parent / "resources" 21 | 22 | 23 | @pytest.fixture(scope="session", name="client") 24 | def client_fixture(): 25 | """database fixture""" 26 | # yield connect() 27 | yield connect( 28 | "mongoenginetest", 29 | host="mongodb://localhost", 30 | mongo_client_class=mongomock.MongoClient, 31 | ) 32 | 33 | disconnect() 34 | -------------------------------------------------------------------------------- /src/tests/resources/frame.csv: -------------------------------------------------------------------------------- 1 | ,Falco,Peter Maffay 2 | 1,7.1,8.1 3 | 2,9, 4 | 3,8,10.0 5 | -------------------------------------------------------------------------------- /src/tests/resources/ohlc.csv: -------------------------------------------------------------------------------- 1 | open,high,low,close,volume,time 2 | 1.30319,1.30402,1.30319,1.30367,10,2019-11-17 05:00:00 3 | 1.30369,1.30369,1.30351,1.30352,20,2019-11-17 05:01:00 4 | 1.30353,1.30383,1.30353,1.30382,20,2019-11-17 05:02:00 5 | 1.30381,1.30411,1.30373,1.30373,50,2019-11-17 05:03:00 6 | 1.30378,1.30428,1.30376,1.30425,70,2019-11-17 05:04:00 7 | 1.30426,1.30426,1.30396,1.30399,20,2019-11-17 05:05:00 8 | 1.30401,1.30411,1.30371,1.30378,30,2019-11-17 05:06:00 9 | -------------------------------------------------------------------------------- /src/tests/resources/ohlc_resample.csv: -------------------------------------------------------------------------------- 1 | time,open,high,low,close,volume 2 | 2019-11-17 05:05:00,1.30319,1.30428,1.30319,1.3042500000000001,170 3 | 2019-11-17 05:10:00,1.30426,1.30426,1.3037100000000001,1.3037800000000002,50 4 | -------------------------------------------------------------------------------- /src/tests/resources/price.csv: -------------------------------------------------------------------------------- 1 | ,A,B,C,D,E,F,G 2 | 2013-01-01,1673.78,23311.98,62550.1,3735.12,1462.42,2711.25,2518.99 3 | 2013-01-02,1686.9,23311.98,62550.1,3735.12,1462.42,2711.25,2518.99 4 | 2013-01-03,1663.95,23398.6,63312.46,3714.99,1459.37,2701.22,2509.51 5 | 2013-01-04,1655.65,23331.09,62523.06,3689.34,1466.47,2709.35,2516.81 6 | 2013-01-07,1646.95,23329.75,61932.54,3699.14,1461.89,2695.56,2523.77 7 | 2013-01-08,1659.25,23111.19,61127.84,3702.58,1457.15,2691.45,2514.44 8 | 2013-01-09,1657.75,23218.47,61578.58,3697.59,1461.02,2706.39,2528.7 9 | 2013-01-10,1675.45,23354.31,61678.31,3722.43,1472.12,2708.27,2539.67 10 | 2013-01-11,1662.8,23264.07,61497.43,3715.35,1472.05,2717.79,2537.49 11 | 2013-01-14,1667.85,23413.26,62080.79,3742.12,1470.68,2715.16,2541.99 12 | 2013-01-15,1679.45,23381.51,61727.61,3736.85,1472.34,2701.59,2553.16 13 | 2013-01-16,1679.95,23356.99,61787.35,3746.61,1472.63,2702.54,2552.72 14 | 2013-01-17,1687.55,23339.76,62194.06,3771.5,1480.94,2718.93,2553.27 15 | 2013-01-18,1684.3,23601.78,61956.14,3785.51,1485.98,2709.59,2559.14 16 | 2013-01-21,1690.05,23590.91,61899.71,,,2726.63,2561.59 17 | 2013-01-22,1692.7,23658.99,61692.29,3800.28,1492.56,2716.7,2569.41 18 | 2013-01-23,1685.85,23635.1,61966.26,3789.92,1494.81,2708.28,2566.82 19 | 2013-01-24,1667.95,23598.9,61169.83,3795.65,1494.82,2722.96,2573.87 20 | 2013-01-25,1658.7,23580.43,,3786.0,1502.96,2744.18,2584.86 21 | 2013-01-28,1655.5,23671.88,60027.07,3794.03,1500.18,2744.5,2584.26 22 | 2013-01-29,1663.8,23655.17,60406.33,3818.03,1507.84,2749.27,2588.1 23 | 2013-01-30,1677.05,23822.06,59336.7,3855.04,1501.96,2732.12,2583.38 24 | 2013-01-31,1663.65,23729.53,59761.49,3846.88,1498.11,2702.98,2573.84 25 | 2013-02-01,1667.45,23721.84,60351.16,3865.69,1513.17,2710.08,2584.33 26 | 2013-02-04,1673.7,23685.01,59575.66,3844.8,1495.71,2625.17,2573.97 27 | 2013-02-05,1672.95,23148.53,59444.97,3856.33,1511.29,2651.21,2561.81 28 | 2013-02-06,1677.7,23256.93,58951.07,3852.13,1512.12,2617.35,2565.85 29 | 2013-02-07,1671.65,23177.0,58372.46,3831.43,1509.39,2597.92,2556.46 30 | 2013-02-08,1667.2,23215.16,58497.83,3842.64,1517.93,2630.3,2572.39 31 | 2013-02-11,1647.95,,,3831.79,1517.01,2622.61,2569.34 32 | 2013-02-12,1651.15,,,3834.68,1519.43,2648.83,2588.53 33 | 2013-02-13,1642.55,,58405.74,3836.02,1520.33,2656.86,2590.6 34 | 2013-02-14,1634.75,23413.25,58077.31,3830.26,1521.38,2635.35,2585.45 35 | 2013-02-15,1610.1,23444.56,57903.3,3815.72,1519.79,2615.26,2582.89 36 | 2013-02-18,1610.05,23381.94,57613.9,,,2616.65,2582.28 37 | 2013-02-19,1605.05,23143.91,57314.4,3811.61,1530.94,2662.37,2597.52 38 | 2013-02-20,1564.55,23307.41,56177.6,3777.02,1511.95,2640.35,2592.17 39 | 2013-02-21,1576.4,22906.67,56154.68,3721.55,1502.42,2579.76,2564.8 40 | 2013-02-22,1581.4,22782.44,56697.06,3718.12,1515.6,2630.05,2576.92 41 | 2013-02-25,1593.5,22820.08,56617.56,3714.51,1487.85,2651.86,2551.32 42 | 2013-02-26,1613.85,22519.69,56948.87,3701.11,1496.94,2570.52,2548.39 43 | 2013-02-27,1597.4,22577.01,57273.88,3696.52,1515.99,2611.89,2568.28 44 | 2013-02-28,1579.58,23020.27,57424.29,3691.7,1514.68,2633.55,2581.01 45 | 2013-03-01,1576.23,22880.22,56883.99,3664.17,1518.2,2616.75,2576.92 46 | 2013-03-04,1573.77,22537.81,56499.17,3654.84,1525.2,2619.78,2578.96 47 | 2013-03-05,1575.5,22560.5,55950.73,3678.9,1539.79,2683.02,2597.77 48 | 2013-03-06,1583.9,22777.84,57940.14,3653.15,1541.46,2679.89,2598.65 49 | 2013-03-07,1578.97,22771.44,58846.81,3684.25,1544.26,2690.85,2595.47 50 | 2013-03-08,1578.8,23091.95,58432.75,3696.3,1551.18,2728.78,2585.74 51 | 2013-03-11,1581.55,23090.82,58544.79,3697.32,1556.22,2718.71,2589.74 52 | 2013-03-12,1592.8,22890.6,58208.61,3706.46,1552.48,2711.85,2583.07 53 | 2013-03-13,1587.7,22556.65,57385.9,3695.36,1554.52,2704.73,2578.81 54 | 2013-03-14,1590.2,22619.18,57281.02,3715.03,1563.23,2744.7,2591.75 55 | 2013-03-15,1591.95,22533.11,56869.28,3725.63,1560.7,2725.72,2596.03 56 | 2013-03-18,1605.63,22083.36,56972.96,3701.75,1552.1,2705.47,2575.96 57 | 2013-03-19,1612.75,22041.86,56361.24,3678.28,1548.34,2671.96,2563.8 58 | 2013-03-20,1606.83,22256.44,56030.03,3704.56,1558.71,2708.9,2572.95 59 | 2013-03-21,1614.88,22225.88,55576.67,3689.63,1545.8,2683.92,2570.02 60 | 2013-03-22,1608.58,22115.3,55243.4,3698.55,1556.89,2681.67,2584.65 61 | 2013-03-25,1605.08,22251.15,54873.12,3704.32,1551.69,2649.28,2587.77 62 | 2013-03-26,1600.04,22311.08,55671.39,3724.76,1563.77,2641.12,2605.36 63 | 2013-03-27,1605.25,22464.82,56034.29,3738.46,1562.85,2612.46,2611.28 64 | 2013-03-28,1596.82,22299.63,56352.09,3706.7,1569.19,2624.02,2616.03 65 | 2013-03-29,1598.75,,,,,,2615.88 66 | 2013-04-01,1599.52,,55902.18,3685.44,1562.17,,2609.41 67 | 2013-04-02,1575.9,22367.82,54889.1,3671.96,1570.25,2679.8,2632.15 68 | 2013-04-03,1557.95,22337.49,55562.74,3622.53,1553.69,2639.01,2629.08 69 | 2013-04-04,1554.59,,54648.15,3601.42,1559.98,2621.43,2646.79 70 | 2013-04-05,1581.15,21726.9,55050.6,3585.68,1553.28,2585.28,2649.2 71 | 2013-04-08,1573.64,21718.05,55092.31,3605.92,1563.07,2589.25,2664.42 72 | 2013-04-09,1585.34,21870.34,55912.04,3634.47,1568.61,2595.13,2666.57 73 | 2013-04-10,1558.54,22034.56,56186.56,3627.0,1587.73,2661.62,2685.1 74 | 2013-04-11,1561.45,22101.27,55400.91,3611.82,1593.37,2674.33,2701.95 75 | 2013-04-12,1483.0,22089.05,54962.65,3574.55,1588.85,2633.47,2717.9 76 | 2013-04-15,1347.95,21772.67,52949.93,3486.63,1552.36,2624.71,2677.18 77 | 2013-04-16,1367.89,21672.03,53990.83,3507.68,1574.57,2609.3,2698.47 78 | 2013-04-17,1376.5,21569.67,52881.96,3469.79,1552.01,2553.49,2681.03 79 | 2013-04-18,1390.59,21512.52,53165.91,3489.24,1541.61,2555.5,2679.57 80 | 2013-04-19,1403.85,22013.57,53928.92,3492.61,1555.25,2575.16,2714.47 81 | 2013-04-22,1426.45,22044.37,54297.73,3493.08,1562.5,2583.62,2710.75 82 | 2013-04-23,1413.0,21806.61,54884.75,3474.57,1578.78,2662.88,2723.34 83 | 2013-04-24,1431.95,22183.05,54984.23,3505.01,1578.79,2702.05,2738.3 84 | 2013-04-25,1467.88,22401.24,54963.32,3561.34,1585.16,2704.41,2737.18 85 | 2013-04-26,1462.09,22547.71,54252.04,3540.68,1582.24,2683.43,2728.88 86 | 2013-04-29,1475.93,22580.77,54887.25,3592.71,1593.61,2717.38,2750.02 87 | 2013-04-30,1476.75,22737.01,55910.37,3572.45,1597.57,2712.0,2778.4 88 | 2013-05-01,1457.58,,,3500.85,1582.7,2711.74,2763.45 89 | 2013-05-02,1467.08,22668.3,55321.93,3545.4,1597.59,2718.9,2770.86 90 | 2013-05-03,1470.75,22689.96,55488.08,3591.63,1614.42,2763.68,2780.77 91 | 2013-05-06,1469.4,22915.09,55429.88,3589.49,1617.5,2750.52,2788.56 92 | 2013-05-07,1452.73,23047.09,56274.66,3577.26,1625.96,2769.08,2798.76 93 | 2013-05-08,1474.07,23244.35,55804.8,3596.71,1632.69,2784.62,2810.46 94 | 2013-05-09,1458.25,23211.48,55447.56,3604.81,1626.67,2773.16,2792.19 95 | 2013-05-10,1448.2,23321.22,55107.8,3576.29,1633.7,2785.24,2783.65 96 | 2013-05-13,1430.58,22989.81,54447.77,3575.21,1633.77,2777.39,2788.72 97 | 2013-05-14,1425.4,22930.28,54666.82,3560.83,1650.34,2795.63,2788.99 98 | 2013-05-15,1393.03,23044.24,54936.41,3549.13,1658.78,2809.58,2800.11 99 | 2013-05-16,1386.0,23082.68,54772.62,3554.73,1650.47,2806.7,2794.91 100 | 2013-05-17,1359.55,,55164.27,3571.31,1667.47,2817.99,2802.98 101 | 2013-05-20,1393.8,23493.03,55700.77,3586.77,1666.29,2824.5,2820.42 102 | 2013-05-21,1376.37,23366.37,56265.32,3567.51,1669.16,2821.65,2825.86 103 | 2013-05-22,1370.4,23261.08,56429.27,3556.93,1655.35,2835.01,2770.51 104 | 2013-05-23,1391.1,22669.68,56349.91,3550.38,1650.51,2776.78,2713.57 105 | 2013-05-24,1386.65,22618.67,56406.21,3540.54,1649.6,2764.29,2704.01 106 | 2013-05-27,1394.78,22686.05,56395.94,,,2795.0,2708.54 107 | 2013-05-28,1381.23,22924.25,56036.26,3561.24,1660.06,2835.87,2691.91 108 | 2013-05-29,1393.1,22554.93,54634.69,3532.84,1648.36,2786.54,2645.14 109 | 2013-05-30,1414.15,22484.31,,3536.18,1654.41,2799.2,2616.68 110 | 2013-05-31,1387.92,22392.16,53506.08,3513.28,1630.74,2769.64,2588.22 111 | 2013-06-03,1411.4,22282.19,53944.36,3552.71,1640.42,2747.74,2594.12 112 | 2013-06-04,1399.43,22285.52,54017.9,3560.44,1631.38,2755.7,2580.07 113 | 2013-06-05,1403.4,22069.24,52798.63,3557.09,1608.9,2709.33,2549.29 114 | 2013-06-06,1413.91,21838.43,52884.83,3565.55,1622.56,2676.21,2561.13 115 | 2013-06-07,1383.05,21575.26,51618.63,3575.55,1643.38,2724.08,2564.33 116 | 2013-06-10,1386.5,21615.09,51316.65,3558.99,1642.81,2719.4,2543.64 117 | 2013-06-11,1378.37,21354.66,49769.93,3538.05,1626.13,2683.2,2505.65 118 | 2013-06-12,1388.9,,49180.58,3540.37,1612.52,2666.52,2484.7 119 | 2013-06-13,1386.02,20887.04,50414.89,3543.51,1636.36,2661.71,2517.6 120 | 2013-06-14,1390.74,20969.14,49332.34,3563.85,1626.73,2667.32,2544.01 121 | 2013-06-17,1385.35,21225.9,49088.65,3560.23,1639.04,2702.69,2554.74 122 | 2013-06-18,1367.65,21225.88,49464.94,3566.47,1651.81,2700.93,2562.21 123 | 2013-06-19,1351.26,20986.89,47893.06,3581.21,1628.93,2683.98,2521.83 124 | 2013-06-20,1285.05,20382.87,48214.43,3481.59,1588.19,2586.45,2413.29 125 | 2013-06-21,1296.4,20263.31,47056.04,3458.54,1592.43,2549.48,2415.61 126 | 2013-06-24,1282.38,19813.98,45965.05,3445.6,1573.09,2511.83,2391.73 127 | 2013-06-25,1277.65,19855.72,46893.04,3454.46,1588.03,2543.37,2422.73 128 | 2013-06-26,1226.65,20338.55,47171.98,3438.01,1603.26,2602.81,2459.64 129 | 2013-06-27,1200.65,20440.08,47609.46,3454.66,1613.2,2619.86,2496.35 130 | 2013-06-28,1234.57,20803.29,47457.13,3433.83,1606.28,2602.59,2500.68 131 | 2013-07-01,1252.55,,47229.59,3465.71,1614.96,2622.62,2491.09 132 | 2013-07-02,1243.49,20658.65,45228.95,3484.22,1614.08,2603.2,2527.32 133 | 2013-07-03,1252.83,20147.31,45044.03,3516.31,1615.41,2570.76,2496.56 134 | 2013-07-04,1249.9,20468.67,45763.16,,,2646.54,2505.07 135 | 2013-07-05,1223.2,20854.67,45210.49,3509.66,1631.89,2596.01,2504.24 136 | 2013-07-08,1237.07,20582.19,45075.5,3527.65,1640.46,2650.85,2498.82 137 | 2013-07-09,1251.44,20683.01,,3545.89,1652.32,2664.14,2527.8 138 | 2013-07-10,1259.78,20904.56,45483.43,3583.13,1652.62,2659.71,2529.11 139 | 2013-07-11,1286.2,21437.49,46626.26,3584.06,1675.02,2681.32,2588.9 140 | 2013-07-12,1285.7,21277.28,45533.24,3590.14,1680.19,2674.87,2577.83 141 | 2013-07-15,1284.57,21303.31,46738.9,3584.23,1682.5,2686.69,2584.56 142 | 2013-07-16,1292.22,21312.38,46869.29,3596.73,1676.26,2665.61,2586.3 143 | 2013-07-17,1276.11,21371.87,47407.31,3592.28,1680.91,2681.88,2586.05 144 | 2013-07-18,1284.24,21345.22,47656.92,3613.47,1689.37,2717.99,2600.67 145 | 2013-07-19,1296.1,21362.42,47400.23,3620.66,1692.09,2716.17,2598.36 146 | 2013-07-22,1335.88,21416.5,48574.09,3622.45,1695.53,2725.4,2610.73 147 | 2013-07-23,1345.2,21915.42,48819.52,3614.17,1692.39,2722.9,2615.34 148 | 2013-07-24,1322.25,21968.93,48374.23,3584.02,1685.94,2752.25,2582.76 149 | 2013-07-25,1333.9,21900.96,49066.75,3571.92,1690.25,2740.29,2586.76 150 | 2013-07-26,1333.3,21968.95,49422.05,3547.59,1691.65,2741.96,2589.33 151 | 2013-07-29,1328.02,21850.15,49212.33,3542.76,1685.33,2741.73,2574.16 152 | 2013-07-30,1326.3,21953.96,48561.78,3518.33,1685.96,2759.21,2561.25 153 | 2013-07-31,1325.25,21883.66,48234.49,3548.67,1685.73,2768.15,2529.6 154 | 2013-08-01,1310.11,22088.79,49140.78,3576.2,1706.87,2808.64,2532.63 155 | 2013-08-02,1311.75,22190.97,48474.04,3566.38,1709.67,2811.0,2527.98 156 | 2013-08-05,1303.07,22222.01,48436.44,3552.04,1707.14,2809.08,2527.82 157 | 2013-08-06,1283.17,21923.7,47421.85,3532.32,1697.37,2790.78,2528.71 158 | 2013-08-07,1287.65,21588.84,47446.71,3522.16,1690.91,2794.44,2514.52 159 | 2013-08-08,1313.4,21655.88,48928.82,3539.29,1697.48,2816.88,2523.33 160 | 2013-08-09,1314.4,21807.56,49874.9,3569.4,1691.42,2825.62,2539.98 161 | 2013-08-12,1338.3,22271.28,50299.49,3601.66,1689.47,2827.15,2527.5 162 | 2013-08-13,1321.67,22541.13,50600.55,3605.19,1694.16,2841.61,2508.92 163 | 2013-08-14,1336.15,,50895.92,3623.89,1685.39,2852.08,2503.31 164 | 2013-08-15,1366.31,22539.25,50908.34,3657.79,1661.32,2835.86,2468.64 165 | 2013-08-16,1376.87,22517.81,51538.78,3667.4,1655.83,2854.27,2436.34 166 | 2013-08-19,1365.98,22463.7,51574.09,3670.48,1646.06,2823.35,2414.28 167 | 2013-08-20,1371.17,21970.29,50507.02,3643.14,1652.35,2787.98,2435.99 168 | 2013-08-21,1366.76,21817.73,50405.2,3619.95,1642.8,2774.58,2423.54 169 | 2013-08-22,1376.17,21895.4,51397.66,3619.57,1656.96,2812.32,2420.97 170 | 2013-08-23,1397.75,21863.51,52197.06,3650.9,1663.5,2826.05,2440.86 171 | 2013-08-26,1404.7,22005.32,51429.48,3680.37,1656.78,2821.45,2438.19 172 | 2013-08-27,1415.09,21874.77,50091.55,3716.65,1630.48,2749.27,2422.78 173 | 2013-08-28,1417.51,21524.65,49866.92,3728.44,1634.96,2742.61,2405.36 174 | 2013-08-29,1407.75,21704.78,49921.88,3698.09,1638.17,2758.31,2403.92 175 | 2013-08-30,1395.15,21731.37,50011.75,3669.4,1632.97,2721.37,2396.52 176 | 2013-09-02,1391.32,22175.34,51835.15,,,2774.09,2408.44 177 | 2013-09-03,1412.42,22394.58,51625.5,3692.62,1639.77,2753.35,2395.22 178 | 2013-09-04,1391.63,22326.22,51716.16,3661.14,1653.08,2758.29,2405.53 179 | 2013-09-05,1367.5,22597.97,52351.86,3658.33,1655.08,2774.2,2388.16 180 | 2013-09-06,1391.9,22621.22,53749.42,3694.79,1655.17,2803.42,2413.02 181 | 2013-09-09,1387.03,22750.65,54251.85,3668.93,1671.71,2798.31,2450.0 182 | 2013-09-10,1363.85,22976.65,53979.03,3636.67,1683.99,2851.4,2461.33 183 | 2013-09-11,1365.47,22937.14,53570.46,3641.21,1689.13,2863.44,2477.01 184 | 2013-09-12,1321.67,22953.72,53307.09,3656.4,1683.42,2862.07,2468.13 185 | 2013-09-13,1326.39,22915.28,53797.51,3642.11,1687.99,2867.11,2471.85 186 | 2013-09-16,1312.98,23252.41,53821.63,3616.45,1697.6,2894.64,2504.02 187 | 2013-09-17,1310.64,23180.52,54271.25,3584.68,1704.76,2890.95,2501.33 188 | 2013-09-18,1364.02,23117.45,55702.9,3628.12,1725.52,2908.92,2550.1 189 | 2013-09-19,1366.35,23502.51,55095.69,3638.23,1722.34,2936.2,2584.06 190 | 2013-09-20,1326.05,,54110.03,3600.45,1709.91,2927.19,2547.0 191 | 2013-09-23,1322.74,23371.54,54602.38,3584.18,1701.84,2906.35,2537.73 192 | 2013-09-24,1323.35,23179.04,54431.05,3574.71,1697.42,2922.93,2522.14 193 | 2013-09-25,1334.48,23209.63,54261.11,3586.49,1692.77,2927.35,2530.39 194 | 2013-09-26,1324.09,23125.03,53782.97,3597.81,1698.67,2922.99,2534.88 195 | 2013-09-27,1336.65,23207.04,53738.92,3599.32,1691.75,2919.34,2536.9 196 | 2013-09-30,1328.94,22859.86,52338.19,3582.18,1681.55,2893.15,2518.69 197 | 2013-10-01,1287.65,,53179.46,3556.76,1695.0,2933.02,2541.77 198 | 2013-10-02,1316.19,22984.48,53100.18,3589.15,1693.87,2918.31,2541.05 199 | 2013-10-03,1316.77,23214.4,52489.86,3582.16,1678.66,2902.12,2516.89 200 | 2013-10-04,1310.8,23138.54,52848.97,3595.12,1690.5,2928.31,2512.82 201 | 2013-10-07,1323.23,22973.95,52417.1,3601.43,1676.12,2923.04,2510.09 202 | 2013-10-08,1319.32,23178.85,52312.44,3610.54,1655.45,2903.35,2496.53 203 | 2013-10-09,1305.8,23033.97,52547.71,3579.61,1656.4,2904.73,2496.69 204 | 2013-10-10,1287.6,22951.3,52996.64,3611.03,1692.56,2969.41,2537.22 205 | 2013-10-11,1272.18,23218.32,53149.62,3596.6,1703.2,2974.28,2559.47 206 | 2013-10-14,1272.39,,54170.6,3605.54,1710.14,2977.69,2561.58 207 | 2013-10-15,1282.38,23336.52,54980.64,3589.36,1698.06,3004.56,2556.97 208 | 2013-10-16,1282.48,23228.33,55973.03,3609.12,1721.54,3015.4,2582.81 209 | 2013-10-17,1320.34,23094.88,55358.13,3595.62,1733.15,3010.39,2618.25 210 | 2013-10-18,1316.25,23340.1,55378.46,3609.78,1744.5,3033.31,2625.52 211 | 2013-10-21,1316.0,23438.15,56077.43,3595.1,1744.66,3028.65,2614.48 212 | 2013-10-22,1340.15,23315.99,56460.38,3593.5,1754.67,3045.77,2632.72 213 | 2013-10-23,1333.42,22999.95,55440.03,3555.93,1746.38,3017.16,2630.65 214 | 2013-10-24,1346.78,22835.82,54877.15,3552.03,1752.07,3038.96,2628.09 215 | 2013-10-25,1350.8,22698.34,54154.15,3557.0,1759.77,3034.5,2642.17 216 | 2013-10-28,1352.65,22806.58,55073.37,3562.91,1762.11,3022.04,2631.98 217 | 2013-10-29,1345.05,22846.54,54538.8,3551.48,1771.95,3050.64,2622.87 218 | 2013-10-30,1344.57,23304.02,54172.82,3549.8,1763.31,3040.69,2610.76 219 | 2013-10-31,1323.1,23206.37,54256.2,3517.54,1756.54,3067.95,2596.51 220 | 2013-11-01,1316.2,23249.79,54013.24,3478.39,1761.64,3052.14,2598.79 221 | 2013-11-04,1314.35,23189.62,54436.92,3467.57,1767.93,3061.18,2604.88 222 | 2013-11-05,1311.81,23038.95,53831.85,3449.84,1762.97,3035.92,2576.74 223 | 2013-11-06,1317.93,23036.94,53384.6,3461.94,1770.49,3056.4,2573.42 224 | 2013-11-07,1307.65,22881.03,52740.79,3445.31,1747.15,3042.98,2546.39 225 | 2013-11-08,1288.6,22744.39,52248.86,3461.35,1770.61,3034.91,2524.03 226 | 2013-11-11,1282.8,23069.85,52623.87,3474.36,1771.89,3052.83,2527.75 227 | 2013-11-12,1268.0,22901.41,51804.33,3450.16,1767.69,3034.68,2519.13 228 | 2013-11-13,1281.82,22463.83,52230.29,3457.97,1782.0,3021.17,2519.34 229 | 2013-11-14,1287.2,22649.15,53451.6,3466.41,1790.62,3053.69,2538.43 230 | 2013-11-15,1290.2,23032.15,,3467.93,1798.18,3054.53,2554.48 231 | 2013-11-18,1275.4,23660.06,54307.04,3451.12,1791.53,3081.3,2550.39 232 | 2013-11-19,1275.65,23657.81,53032.91,3444.54,1787.87,3049.17,2530.19 233 | 2013-11-20,1244.25,23700.86,,3452.12,1781.37,3047.32,2510.23 234 | 2013-11-21,1243.08,23580.29,52688.02,3483.88,1795.85,3044.34,2507.94 235 | 2013-11-22,1243.63,23696.28,52800.74,3489.24,1804.76,3055.98,2504.78 236 | 2013-11-25,1251.3,23684.45,52263.51,3484.44,1802.48,3072.75,2495.61 237 | 2013-11-26,1242.79,23681.28,51446.91,3480.47,1802.75,3062.62,2489.84 238 | 2013-11-27,1237.97,23806.35,51861.21,3467.17,1807.23,3082.65,2502.82 239 | 2013-11-28,1244.13,23789.09,51846.83,,,3092.42,2500.59 240 | 2013-11-29,1253.49,23881.29,52482.49,3477.69,1805.81,3086.64,2492.18 241 | 2013-12-02,1219.75,24038.55,51244.87,3480.37,1800.9,3077.23,2472.98 242 | 2013-12-03,1223.42,23910.47,50348.89,3508.45,1795.15,3013.88,2466.78 243 | 2013-12-04,1243.78,23728.7,50215.79,3527.12,1792.81,2991.76,2466.21 244 | 2013-12-05,1225.17,23712.57,50787.63,3518.74,1785.03,2953.17,2464.82 245 | 2013-12-06,1229.05,23743.1,50944.27,3530.58,1805.09,2979.94,2477.34 246 | 2013-12-09,1240.41,23811.17,51165.38,3528.04,1808.37,2988.67,2484.15 247 | 2013-12-10,1262.18,23744.19,50993.02,3542.23,1802.62,2960.86,2481.46 248 | 2013-12-11,1252.25,23338.24,50067.99,3547.78,1782.22,2947.31,2437.46 249 | 2013-12-12,1225.52,23218.12,50121.61,3529.34,1775.5,2928.12,2417.82 250 | 2013-12-13,1238.8,23245.96,50051.18,3520.52,1775.32,2921.92,2425.0 251 | 2013-12-16,1241.3,23114.66,50279.61,3532.68,1786.54,2978.77,2427.45 252 | 2013-12-17,1231.05,23069.23,50090.35,3519.26,1781.0,2941.76,2427.58 253 | 2013-12-18,1218.5,23143.82,50563.43,3525.48,1810.65,2975.09,2456.07 254 | 2013-12-19,1188.68,22888.75,51633.43,3536.44,1809.6,3031.05,2439.08 255 | 2013-12-20,1203.3,22812.18,51185.74,3562.68,1818.32,3049.35,2456.06 256 | 2013-12-23,1198.82,22921.56,51356.1,3552.15,1827.99,3070.91,2464.62 257 | 2013-12-24,1204.23,23179.55,,3558.91,1833.32,3072.88,2466.93 258 | 2013-12-25,1204.24,,,,,,2465.89 259 | 2013-12-26,1210.6,,51221.01,3560.29,1842.02,,2469.4 260 | 2013-12-27,1213.35,23243.24,51266.56,3579.0,1841.4,3111.37,2468.09 261 | 2013-12-30,1196.5,23244.87,51507.16,3556.02,1841.07,3100.93,2480.33 262 | 2013-12-31,1205.65,23306.39,,3534.02,1848.36,3109.0,2478.71 263 | 2014-01-01,1200.9,,,,,, 264 | 2014-01-02,1224.4,23340.05,50341.25,3489.78,1831.98,3059.93,2468.61 265 | 2014-01-03,1237.01,22817.28,50981.09,3467.31,1831.37,3074.43,2478.63 266 | 2014-01-06,1238.07,22684.15,50973.62,3467.21,1826.77,3069.16,2482.24 267 | 2014-01-07,1232.1,22712.78,50430.02,3470.04,1837.88,3110.96,2483.77 268 | 2014-01-08,1225.94,22996.59,50576.64,3440.03,1837.49,3110.66,2481.65 269 | 2014-01-09,1227.95,22787.33,49321.68,3417.24,1838.13,3090.26,2482.2 270 | 2014-01-10,1248.45,22846.25,49696.45,3446.38,1842.37,3104.15,2509.6 271 | 2014-01-13,1253.22,22888.76,49426.9,3453.24,1819.2,3111.94,2503.17 272 | 2014-01-14,1245.19,22791.28,49703.1,3457.31,1838.88,3119.53,2506.73 273 | 2014-01-15,1241.86,22902.0,50105.37,3472.46,1848.38,3168.76,2512.27 274 | 2014-01-16,1242.39,22986.41,49696.28,3475.17,1845.89,3150.2,2516.61 275 | 2014-01-17,1254.05,23133.35,49181.86,3481.03,1838.7,3154.1,2516.89 276 | 2014-01-20,1254.66,22928.95,48708.41,,,3153.17,2513.89 277 | 2014-01-21,1241.41,23033.12,48542.07,3481.23,1843.8,3153.08,2527.94 278 | 2014-01-22,1237.08,23082.25,49299.66,3505.43,1844.86,3151.27,2538.24 279 | 2014-01-23,1264.14,22733.9,48320.64,3508.05,1828.46,3117.08,2523.3 280 | 2014-01-24,1270.07,22450.06,47787.38,3509.12,1790.29,3028.2,2494.67 281 | 2014-01-27,1257.1,21976.1,47701.05,3476.01,1781.56,3014.62,2479.29 282 | 2014-01-28,1256.88,21960.64,47840.93,3498.49,1792.5,3038.6,2491.31 283 | 2014-01-29,1267.24,22141.61,47556.78,3507.41,1774.2,3011.45,2484.45 284 | 2014-01-30,1243.92,22035.42,47244.26,3501.89,1794.19,3027.3,2499.96 285 | 2014-01-31,1244.55,,47638.99,3489.84,1782.59,3013.96,2507.41 286 | 2014-02-03,1257.68,,46147.52,3485.1,1741.89,2963.96,2482.87 287 | 2014-02-04,1254.72,21397.77,46964.22,3505.72,1755.2,2962.49,2494.02 288 | 2014-02-05,1257.92,21269.38,46624.39,3518.58,1751.64,2962.51,2491.26 289 | 2014-02-06,1258.19,21423.13,47738.09,3534.08,1773.43,3010.79,2510.08 290 | 2014-02-07,1267.27,21636.85,48073.6,3563.84,1797.02,3038.49,2534.0 291 | 2014-02-10,1274.78,21579.26,47710.82,3558.56,1799.84,3032.53,2547.61 292 | 2014-02-11,1291.46,21962.98,48462.79,3573.47,1819.75,3077.08,2564.7 293 | 2014-02-12,1291.18,22285.79,48216.89,3585.01,1819.26,3094.89,2571.89 294 | 2014-02-13,1302.9,22165.53,47812.83,3598.09,1829.83,3097.95,2578.84 295 | 2014-02-14,1318.69,22298.41,48201.11,3614.16,1838.63,3119.06,2589.34 296 | 2014-02-17,1328.79,22535.94,47576.33,,,3118.91,2596.74 297 | 2014-02-18,1321.97,22587.72,46599.76,3669.13,1840.76,3117.44,2606.72 298 | 2014-02-19,1311.6,22664.52,47150.83,3684.63,1828.75,3120.8,2612.43 299 | 2014-02-20,1322.94,22394.08,47288.61,3679.18,1839.78,3121.59,2608.4 300 | 2014-02-21,1324.28,22568.24,47380.24,3680.03,1836.25,3131.67,2614.24 301 | 2014-02-24,1336.98,22388.56,47393.5,3687.95,1847.61,3157.31,2610.47 302 | 2014-02-25,1340.64,22317.2,46715.91,3678.83,1845.12,3157.48,2621.82 303 | 2014-02-26,1330.57,22437.44,46599.21,3670.14,1845.16,3148.19,2619.51 304 | 2014-02-27,1331.33,22828.18,47606.75,3663.95,1854.29,3134.94,2618.0 305 | 2014-02-28,1326.44,22836.96,47094.4,3678.66,1859.45,3149.23,2636.75 306 | 2014-03-03,1350.58,22500.67,,3722.31,1845.73,3053.99,2627.73 307 | 2014-03-04,1334.34,22657.63,,3730.96,1873.91,3136.33,2656.18 308 | 2014-03-05,1336.9,22579.78,46589.0,3708.01,1873.81,3135.97,2648.11 309 | 2014-03-06,1350.85,22702.97,47093.13,3737.71,1877.03,3144.53,2643.21 310 | 2014-03-07,1339.98,22660.49,46244.07,3731.17,1878.04,3095.31,2624.96 311 | 2014-03-10,1339.72,22264.93,45533.2,3702.27,1877.17,3092.79,2605.14 312 | 2014-03-11,1348.97,22269.61,45697.62,3700.2,1867.63,3092.55,2616.58 313 | 2014-03-12,1366.83,21901.95,45861.81,3697.12,1868.2,3065.46,2605.65 314 | 2014-03-13,1370.14,21756.08,45443.83,3682.05,1846.34,3019.54,2604.38 315 | 2014-03-14,1383.05,21539.49,44965.66,3701.11,1841.13,3004.64,2597.66 316 | 2014-03-17,1367.1,21473.95,45117.8,3674.92,1858.83,3049.19,2606.19 317 | 2014-03-18,1355.72,21583.5,46150.96,3695.65,1872.25,3073.75,2617.05 318 | 2014-03-19,1329.63,21568.69,46567.23,3701.39,1860.77,3076.36,2585.82 319 | 2014-03-20,1327.88,21182.16,47278.48,3671.23,1872.01,3088.9,2567.95 320 | 2014-03-21,1334.7,21436.7,47380.94,3671.58,1866.52,3096.49,2588.77 321 | 2014-03-24,1308.76,21846.45,47993.42,3674.7,1857.44,3052.91,2583.94 322 | 2014-03-25,1311.2,21732.32,48180.14,3687.34,1865.62,3096.64,2604.62 323 | 2014-03-26,1304.47,21887.75,47965.61,3677.68,1852.56,3130.17,2587.09 324 | 2014-03-27,1291.3,21834.45,49646.79,3707.23,1849.04,3133.75,2602.35 325 | 2014-03-28,1295.27,22065.53,49768.06,3710.33,1857.62,3172.43,2617.5 326 | 2014-03-31,1284.01,22151.06,50414.92,3707.99,1872.34,3161.6,2635.82 327 | 2014-04-01,1278.95,22448.54,50270.37,3678.1,1885.52,3186.34,2643.52 328 | 2014-04-02,1289.86,22523.94,51701.05,3667.51,1890.9,3187.45,2654.77 329 | 2014-04-03,1286.77,22565.08,51408.21,3687.46,1888.77,3206.76,2649.44 330 | 2014-04-04,1303.64,22510.08,51081.78,3699.27,1865.09,3230.33,2658.58 331 | 2014-04-07,1297.35,22377.15,52155.28,3689.61,1845.04,3185.97,2669.7 332 | 2014-04-08,1308.63,22596.97,51629.07,3733.82,1851.96,3177.66,2682.6 333 | 2014-04-09,1311.78,22843.17,51185.4,3741.67,1872.18,3182.79,2683.87 334 | 2014-04-10,1318.9,23186.96,51127.48,3744.49,1833.08,3152.86,2679.13 335 | 2014-04-11,1318.42,23003.64,51867.29,3736.04,1815.69,3116.54,2661.46 336 | 2014-04-14,1327.99,23038.8,51596.55,3763.41,1830.61,3131.57,2670.43 337 | 2014-04-15,1302.64,22671.26,50454.35,3759.13,1842.98,3091.52,2685.68 338 | 2014-04-16,1302.55,22696.01,51200.56,3767.62,1862.31,3139.26,2700.52 339 | 2014-04-17,1295.19,22760.24,52111.85,3774.18,1864.85,3155.81,2701.43 340 | 2014-04-18,1294.3,,,,,,2703.38 341 | 2014-04-21,1289.8,,,3758.67,1871.89,,2706.42 342 | 2014-04-22,1283.79,22730.68,51976.86,3755.59,1879.55,3199.69,2715.73 343 | 2014-04-23,1283.9,22509.64,51569.69,3754.74,1875.39,3175.97,2705.51 344 | 2014-04-24,1293.36,22562.8,51817.45,3774.63,1878.61,3189.81,2717.15 345 | 2014-04-25,1303.2,22223.53,51399.35,3768.44,1863.4,3147.4,2705.47 346 | 2014-04-28,1296.68,22132.53,51383.68,3757.8,1869.43,3165.84,2720.76 347 | 2014-04-29,1295.9,22453.89,51838.61,3774.85,1878.33,3208.68,2726.79 348 | 2014-04-30,1291.55,22133.97,51626.69,3751.73,1883.95,3198.39,2731.7 349 | 2014-05-01,1284.3,,,3723.08,1883.68,3198.66,2736.94 350 | 2014-05-02,1299.62,22260.67,52980.31,3737.57,1881.14,3177.89,2735.79 351 | 2014-05-05,1310.27,21976.33,53446.17,3738.4,1884.66,3171.29,2737.89 352 | 2014-05-06,1308.04,,53779.74,3745.16,1867.72,3149.79,2739.16 353 | 2014-05-07,1289.92,21746.26,54052.74,3737.56,1878.21,3159.67,2756.65 354 | 2014-05-08,1289.3,21837.12,53422.37,3733.75,1875.63,3204.3,2766.09 355 | 2014-05-09,1288.79,21862.99,53100.34,3720.62,1878.48,3184.09,2763.18 356 | 2014-05-12,1295.83,22261.61,54052.9,3731.64,1896.65,3206.97,2775.73 357 | 2014-05-13,1293.6,22352.38,53907.46,3742.76,1897.45,3211.78,2768.07 358 | 2014-05-14,1305.95,22582.77,54412.54,3756.57,1888.53,3210.42,2776.24 359 | 2014-05-15,1296.17,22730.86,53855.54,3728.86,1870.85,3163.22,2774.65 360 | 2014-05-16,1293.46,22712.91,53975.76,3721.16,1877.86,3172.72,2788.25 361 | 2014-05-19,1293.07,22704.5,53353.1,3730.31,1885.08,3169.9,2780.56 362 | 2014-05-20,1294.37,22834.68,52366.19,3727.54,1872.83,3163.93,2769.92 363 | 2014-05-21,1291.99,22836.52,52203.37,3738.75,1888.03,3187.08,2760.46 364 | 2014-05-22,1294.02,22953.76,52806.22,3737.98,1892.49,3187.63,2761.6 365 | 2014-05-23,1292.56,22965.86,52626.41,3738.83,1900.53,3203.28,2780.8 366 | 2014-05-26,1292.75,22963.18,52932.91,,,3240.39,2782.35 367 | 2014-05-27,1264.9,22944.3,52173.98,3716.31,1911.91,3244.28,2796.53 368 | 2014-05-28,1258.14,23080.03,52639.75,3706.99,1909.78,3246.24,2787.34 369 | 2014-05-29,1255.58,23010.14,52239.34,3710.14,1920.03,3244.66,2795.25 370 | 2014-05-30,1249.73,23081.65,51239.34,3686.81,1923.57,3244.6,2808.4 371 | 2014-06-02,1243.96,,51605.83,3686.29,1924.97,3247.8,2813.44 372 | 2014-06-03,1244.97,23291.04,52032.38,3678.09,1924.24,3241.04,2815.14 373 | 2014-06-04,1243.92,23151.71,51832.98,3670.77,1927.88,3237.93,2813.13 374 | 2014-06-05,1253.69,23109.66,51558.79,3672.8,1940.46,3267.05,2844.83 375 | 2014-06-06,1253.25,22951.0,53128.66,3685.42,1949.44,3294.28,2847.97 376 | 2014-06-09,1252.34,23117.47,54273.16,3700.96,1951.27,3305.26,2828.49 377 | 2014-06-10,1259.91,23315.74,54604.34,3687.83,1950.79,3313.8,2812.81 378 | 2014-06-11,1261.06,23257.29,55102.44,3681.63,1943.89,3289.09,2807.15 379 | 2014-06-12,1273.45,23175.02,,3720.81,1930.11,3284.28,2806.3 380 | 2014-06-13,1276.89,23319.17,54806.64,3734.13,1936.16,3282.84,2802.15 381 | 2014-06-16,1271.88,23300.67,54629.55,3733.72,1937.78,3261.42,2792.93 382 | 2014-06-17,1270.65,23203.59,54299.95,3732.6,1941.99,3275.33,2792.52 383 | 2014-06-18,1277.68,23181.72,55202.54,3744.65,1956.98,3279.2,2802.93 384 | 2014-06-19,1320.39,23167.73,,3778.36,1959.48,3314.8,2824.69 385 | 2014-06-20,1314.85,23194.06,54638.19,3784.43,1962.87,3302.36,2829.3 386 | 2014-06-23,1317.36,22804.81,54210.05,3774.24,1962.61,3282.58,2819.81 387 | 2014-06-24,1318.4,22880.64,54280.78,3775.16,1949.98,3284.81,2819.02 388 | 2014-06-25,1319.19,22866.7,53425.74,3777.04,1959.53,3252.31,2818.94 389 | 2014-06-26,1316.58,23197.83,53506.75,3767.79,1957.22,3233.19,2827.86 390 | 2014-06-27,1316.18,23221.52,53157.3,3764.66,1960.96,3227.85,2844.48 391 | 2014-06-30,1327.32,23190.72,53168.22,3730.07,1960.23,3228.24,2840.76 392 | 2014-07-01,1326.39,,53171.49,3725.64,1973.32,3258.71,2850.01 393 | 2014-07-02,1326.86,23549.62,53028.78,3722.94,1974.62,3252.25,2850.07 394 | 2014-07-03,1319.53,23531.44,53874.58,3719.09,1985.44,3289.75,2840.83 395 | 2014-07-04,1320.55,23546.36,54055.9,,,3270.47,2834.38 396 | 2014-07-07,1319.94,23540.92,53801.83,3677.33,1977.65,3230.92,2838.27 397 | 2014-07-08,1319.28,23541.38,53634.69,3669.48,1963.71,3184.38,2838.85 398 | 2014-07-09,1327.8,23176.07,,3645.73,1972.83,3203.1,2841.47 399 | 2014-07-10,1335.75,23238.99,54592.75,3643.05,1964.68,3150.59,2851.97 400 | 2014-07-11,1338.62,23233.45,54785.93,3606.89,1967.57,3157.05,2852.58 401 | 2014-07-14,1307.11,23346.67,55743.98,3609.64,1977.1,3185.86,2865.65 402 | 2014-07-15,1294.07,23459.96,55973.61,3590.65,1973.28,3153.75,2864.44 403 | 2014-07-16,1299.2,23523.28,55717.36,3600.31,1981.57,3202.94,2878.89 404 | 2014-07-17,1319.24,23520.87,55637.51,3616.7,1958.12,3157.82,2867.84 405 | 2014-07-18,1311.1,23454.79,57012.9,3592.58,1978.22,3164.21,2886.18 406 | 2014-07-21,1312.55,23387.14,57633.92,3598.83,1973.63,3137.06,2878.12 407 | 2014-07-22,1306.43,23782.11,57983.32,3590.1,1983.53,3189.22,2889.25 408 | 2014-07-23,1304.63,23971.87,57419.96,3600.51,1987.01,3193.13,2899.74 409 | 2014-07-24,1293.73,24141.5,57977.56,3587.15,1987.98,3220.07,2900.35 410 | 2014-07-25,1307.15,24216.01,57821.08,3596.12,1978.34,3174.99,2877.37 411 | 2014-07-28,1304.02,24428.63,57695.72,3596.44,1978.91,3171.55,2887.91 412 | 2014-07-29,1299.01,24640.53,57118.81,3577.03,1969.95,3190.54,2886.31 413 | 2014-07-30,1296.32,24732.21,56877.97,3565.94,1970.07,3169.23,2884.09 414 | 2014-07-31,1282.55,24756.85,55829.41,3541.58,1930.67,3115.51,2857.29 415 | 2014-08-01,1293.33,24532.43,55902.87,3520.49,1925.15,3072.57,2843.13 416 | 2014-08-04,1288.3,24600.08,56616.33,3543.63,1938.99,3070.46,2850.31 417 | 2014-08-05,1288.82,24648.26,56202.1,3525.5,1920.21,3072.2,2832.07 418 | 2014-08-06,1305.85,24584.13,56487.18,3546.03,1920.24,3050.37,2824.01 419 | 2014-08-07,1312.62,24387.56,56188.05,3544.54,1909.57,3012.88,2823.66 420 | 2014-08-08,1310.95,24331.41,55572.93,3533.14,1931.59,3006.83,2828.13 421 | 2014-08-11,1308.55,24646.02,56613.32,3537.1,1936.92,3047.56,2851.19 422 | 2014-08-12,1309.45,24689.41,56442.34,3512.12,1933.75,3023.77,2847.12 423 | 2014-08-13,1312.9,24890.34,55581.19,3505.03,1946.72,3056.17,2877.79 424 | 2014-08-14,1313.57,24801.36,55780.41,3475.11,1955.18,3058.16,2883.51 425 | 2014-08-15,1304.83,24954.94,56963.65,3486.86,1955.06,3033.52,2883.19 426 | 2014-08-18,1298.43,24955.46,57560.72,3462.41,1971.74,3073.45,2903.26 427 | 2014-08-19,1295.68,25122.95,58449.29,3460.4,1981.6,3091.11,2914.33 428 | 2014-08-20,1291.92,25159.76,58878.24,3471.14,1986.51,3083.5,2919.78 429 | 2014-08-21,1276.79,24994.1,58992.11,3480.51,1992.37,3124.56,2919.5 430 | 2014-08-22,1280.08,25112.23,58407.32,3480.53,1988.4,3098.5,2905.91 431 | 2014-08-25,1276.9,25166.91,59735.17,3478.0,1997.92,3165.47,2904.02 432 | 2014-08-26,1281.24,25074.5,59821.45,3484.74,2000.02,3197.54,2908.33 433 | 2014-08-27,1282.6,24918.75,60950.57,3490.52,2000.12,3194.45,2914.82 434 | 2014-08-28,1289.69,24741.0,60290.87,3498.54,1996.74,3164.44,2907.08 435 | 2014-08-29,1287.81,24742.06,61288.15,3506.99,2003.37,3172.63,2916.4 436 | 2014-09-01,1286.0,24752.09,61141.27,,,3175.05,2914.65 437 | 2014-09-02,1265.4,24749.02,61895.98,3456.66,2002.28,3180.29,2911.99 438 | 2014-09-03,1269.44,25317.95,61837.04,3467.27,2000.72,3218.84,2925.18 439 | 2014-09-04,1261.93,25297.92,60800.02,3448.41,1997.65,3277.25,2916.09 440 | 2014-09-05,1268.92,25240.15,60681.98,3443.63,2007.71,3275.25,2929.6 441 | 2014-09-08,1255.44,25190.45,59192.75,3429.56,2001.54,3267.54,2918.09 442 | 2014-09-09,1255.5,,58676.34,3408.82,1988.44,3245.43,2901.52 443 | 2014-09-10,1249.79,24705.36,58198.66,3389.73,1995.69,3244.16,2866.88 444 | 2014-09-11,1240.93,24662.64,58337.29,3372.82,1997.45,3237.76,2866.09 445 | 2014-09-12,1229.7,24595.32,56927.81,3363.84,1985.54,3235.07,2810.34 446 | 2014-09-15,1233.28,24356.99,57948.76,3363.96,1984.13,3231.7,2791.6 447 | 2014-09-16,1235.59,24136.01,59114.66,3387.43,1998.98,3221.73,2797.96 448 | 2014-09-17,1223.6,24376.41,59108.19,3382.3,2001.57,3237.44,2803.38 449 | 2014-09-18,1225.2,24168.72,58374.48,3343.32,2011.36,3271.37,2787.75 450 | 2014-09-19,1215.7,24306.16,57788.7,3320.22,2010.4,3273.25,2781.56 451 | 2014-09-22,1215.15,23955.49,56818.11,3291.17,1994.29,3257.48,2767.1 452 | 2014-09-23,1223.34,23837.07,56540.5,3292.59,1982.77,3205.93,2749.38 453 | 2014-09-24,1217.06,23921.61,56824.42,3311.2,1998.3,3244.01,2741.29 454 | 2014-09-25,1221.53,23768.13,55962.08,3297.97,1965.99,3202.31,2729.34 455 | 2014-09-26,1218.38,23678.41,57212.38,3301.51,1982.85,3219.58,2746.3 456 | 2014-09-29,1215.82,23229.21,54625.35,3327.72,1977.8,3186.95,2736.41 457 | 2014-09-30,1208.16,22932.98,54115.98,3275.15,1972.29,3225.93,2727.63 458 | 2014-10-01,1213.88,,52858.43,3268.89,1946.16,3195.08,2727.73 459 | 2014-10-02,1214.52,,53518.57,3256.84,1946.17,3106.42,2717.42 460 | 2014-10-03,1191.35,23064.56,54539.55,3244.76,1967.9,3133.37,2716.34 461 | 2014-10-06,1207.3,23315.04,57115.9,3283.84,1964.82,3138.67,2729.69 462 | 2014-10-07,1208.98,23422.52,57436.33,3289.06,1935.1,3082.1,2720.07 463 | 2014-10-08,1221.12,23263.33,57058.48,3264.12,1968.89,3053.31,2748.25 464 | 2014-10-09,1224.31,23534.53,57267.53,3248.18,1928.21,3042.45,2759.08 465 | 2014-10-10,1223.09,23088.54,55311.59,3234.24,1906.13,2991.5,2747.16 466 | 2014-10-13,1235.87,23143.38,57956.53,3249.29,1874.74,2998.32,2750.3 467 | 2014-10-14,1232.88,23047.97,58015.46,3211.21,1877.7,3000.99,2772.72 468 | 2014-10-15,1242.01,23140.05,56135.27,3180.54,1862.49,2892.55,2762.03 469 | 2014-10-16,1238.85,22900.94,54298.33,3198.19,1862.76,2874.65,2766.83 470 | 2014-10-17,1238.32,23023.21,55723.79,3202.1,1886.76,2962.24,2774.18 471 | 2014-10-20,1246.93,23070.26,54302.57,3185.0,1904.01,2927.3,2806.22 472 | 2014-10-21,1248.64,23088.58,52432.43,3211.43,1941.28,2991.46,2834.03 473 | 2014-10-22,1241.25,23403.97,52411.03,3189.07,1927.11,3008.53,2837.34 474 | 2014-10-23,1231.86,23333.18,50713.26,3214.77,1950.82,3044.3,2853.9 475 | 2014-10-24,1230.9,23302.2,51940.73,3193.48,1964.58,3030.37,2852.78 476 | 2014-10-27,1226.55,23143.23,50503.66,3200.23,1961.63,2998.84,2867.62 477 | 2014-10-28,1228.54,23520.36,52330.03,3222.74,1985.05,3036.15,2882.58 478 | 2014-10-29,1212.06,23819.87,51049.32,3261.59,1982.3,3022.42,2878.14 479 | 2014-10-30,1198.78,23702.04,52336.83,3229.19,1994.65,3035.9,2883.64 480 | 2014-10-31,1173.48,23998.06,54628.6,3220.01,2018.05,3113.32,2914.95 481 | 2014-11-03,1165.55,23915.97,53947.21,3210.84,2017.81,3082.32,2920.22 482 | 2014-11-04,1168.35,23845.66,54383.59,3165.28,2012.1,3034.24,2928.28 483 | 2014-11-05,1140.65,23695.62,53698.42,3165.32,2023.57,3091.54,2917.99 484 | 2014-11-06,1141.85,23649.31,52637.06,3171.74,2031.21,3102.07,2890.33 485 | 2014-11-07,1177.98,23550.24,53222.85,3190.56,2031.92,3064.92,2884.86 486 | 2014-11-10,1151.44,23744.7,52725.38,3160.34,2038.26,3094.6,2911.63 487 | 2014-11-11,1164.29,23808.28,52474.27,3176.68,2039.68,3104.59,2906.85 488 | 2014-11-12,1162.65,23938.18,52978.89,3166.87,2038.25,3047.3,2897.6 489 | 2014-11-13,1162.46,24019.94,51846.03,3114.13,2039.33,3056.8,2907.99 490 | 2014-11-14,1188.75,24087.38,51772.4,3145.64,2039.82,3059.99,2897.72 491 | 2014-11-17,1186.55,23797.08,51256.99,3149.87,2041.32,3084.79,2900.47 492 | 2014-11-18,1196.99,23529.17,52061.86,3131.89,2051.8,3120.42,2910.93 493 | 2014-11-19,1182.72,23373.31,53402.81,3129.84,2048.72,3123.12,2891.79 494 | 2014-11-20,1193.88,23349.64,,3162.94,2052.75,3102.21,2895.02 495 | 2014-11-21,1201.55,23437.12,56084.04,3178.33,2063.5,3194.22,2912.26 496 | 2014-11-24,1197.09,23893.14,55406.91,3156.77,2069.41,3211.7,2919.41 497 | 2014-11-25,1200.95,23843.91,55560.81,3151.82,2067.03,3226.15,2926.09 498 | 2014-11-26,1197.9,24111.98,55098.47,3149.3,2072.83,3226.08,2951.23 499 | 2014-11-27,1191.07,24004.28,54721.32,,,3244.92,2953.06 500 | 2014-11-28,1167.41,23987.45,54724.0,3009.76,2067.56,3250.93,2957.32 501 | 2014-12-01,1212.09,23367.45,52276.58,3068.9,2053.44,3232.91,2954.68 502 | 2014-12-02,1198.3,23654.3,51612.47,3012.47,2066.55,3238.35,2970.32 503 | 2014-12-03,1209.42,23428.62,52320.48,3005.66,2074.33,3247.72,2965.47 504 | 2014-12-04,1205.3,23832.56,51426.87,3006.67,2071.92,3191.25,2961.31 505 | 2014-12-05,1192.51,24002.64,51992.89,2997.2,2075.37,3277.38,2945.74 506 | 2014-12-08,1203.52,24047.67,50274.07,2949.01,2060.31,3247.99,2950.63 507 | 2014-12-09,1230.92,23485.83,50193.47,2973.84,2059.82,3162.77,2959.48 508 | 2014-12-10,1226.66,23524.52,49548.08,2925.79,2026.14,3150.95,2957.05 509 | 2014-12-11,1227.54,23312.54,49861.81,2917.96,2035.33,3159.11,2956.07 510 | 2014-12-12,1222.5,23249.2,48001.98,2905.37,2002.33,3067.32,2942.01 511 | 2014-12-15,1193.23,23027.85,47018.68,2876.55,1989.63,2982.9,2905.49 512 | 2014-12-16,1196.93,22670.5,47007.51,2842.88,1972.74,3049.99,2905.79 513 | 2014-12-17,1189.73,22585.84,48713.64,2867.85,2012.89,3051.99,2940.39 514 | 2014-12-18,1198.72,22832.21,48495.7,2840.3,2061.23,3153.77,2954.54 515 | 2014-12-19,1196.35,23116.63,49650.98,2862.74,2070.65,3141.28,2968.1 516 | 2014-12-22,1176.45,23408.57,50120.86,2821.95,2078.54,3154.91,3008.35 517 | 2014-12-23,1176.65,23333.69,50889.81,2848.51,2082.17,3192.47,2996.0 518 | 2014-12-24,1174.82,23349.34,,2809.18,2081.88,3184.66,2994.97 519 | 2014-12-25,1174.01,,,,,,2994.09 520 | 2014-12-26,1196.0,,50144.63,2809.15,2088.77,,3001.85 521 | 2014-12-29,1183.29,23773.18,50593.82,2787.46,2090.57,3185.17,3016.45 522 | 2014-12-30,1200.55,23501.1,50007.41,2792.63,2080.35,3135.95,3013.99 523 | 2014-12-31,1184.86,23605.04,,2749.0,2058.9,3146.43,2978.91 524 | 2015-01-01,1181.98,,,,,, 525 | 2015-01-02,1189.23,23857.82,48512.22,2730.77,2058.2,3139.44,3003.07 526 | 2015-01-05,1204.82,23721.32,47516.82,2697.02,2020.58,3023.14,3008.98 527 | 2015-01-06,1218.45,23485.41,48000.92,2672.36,2002.61,3007.91,3025.72 528 | 2015-01-07,1211.47,23681.26,49462.91,2665.25,2025.9,3026.79,3059.89 529 | 2015-01-08,1208.73,23835.53,49943.3,2664.48,2062.14,3135.08,3079.37 530 | 2015-01-09,1222.52,23919.95,48840.25,2657.6,2044.81,3042.9,3090.73 531 | 2015-01-12,1233.26,24026.46,48139.74,2602.65,2028.26,3084.18,3106.83 532 | 2015-01-13,1230.75,24215.97,48041.67,2586.36,2023.03,3133.86,3112.09 533 | 2015-01-14,1228.7,24112.6,47645.87,2617.06,2011.27,3089.67,3126.8 534 | 2015-01-15,1262.73,24350.91,48026.31,2590.08,1992.67,3157.36,3140.88 535 | 2015-01-16,1280.45,24103.52,49016.52,2640.28,2019.42,3202.24,3160.78 536 | 2015-01-19,1275.65,23738.49,47758.01,,,3220.9,3163.83 537 | 2015-01-20,1295.4,23951.16,47876.66,2590.78,2022.55,3244.92,3148.09 538 | 2015-01-21,1293.1,24352.58,49224.08,2620.97,2032.12,3269.73,3155.06 539 | 2015-01-22,1302.13,24522.63,49442.62,2593.57,2063.15,3322.65,3187.09 540 | 2015-01-23,1294.1,24850.45,48775.3,2579.01,2051.82,3382.55,3195.78 541 | 2015-01-26,1281.38,24909.9,48576.55,2567.91,2057.09,3414.28,3211.77 542 | 2015-01-27,1292.24,24807.28,48591.23,2588.4,2029.55,3372.58,3213.25 543 | 2015-01-28,1284.49,24861.81,47694.54,2554.88,2002.16,3358.96,3202.41 544 | 2015-01-29,1257.38,24595.85,47762.24,2529.95,2021.25,3371.83,3201.66 545 | 2015-01-30,1283.77,24507.05,46907.68,2600.69,1994.99,3351.44,3153.24 546 | 2015-02-02,1274.46,24484.74,47650.73,2625.31,2020.85,3370.11,3164.94 547 | 2015-02-03,1260.42,24554.78,48963.66,2713.63,2050.03,3414.18,3181.17 548 | 2015-02-04,1269.22,24679.76,49301.05,2629.33,2041.51,3415.53,3177.72 549 | 2015-02-05,1264.81,24765.49,49233.85,2671.72,2062.52,3408.96,3212.52 550 | 2015-02-06,1233.92,24679.39,48792.27,2686.36,2055.47,3398.16,3147.38 551 | 2015-02-09,1238.99,24521.0,49382.58,2715.51,2046.74,3347.75,3117.32 552 | 2015-02-10,1233.64,24528.1,48510.28,2662.43,2068.59,3383.13,3123.65 553 | 2015-02-11,1219.02,24315.02,48239.67,2636.5,2068.53,3374.14,3111.91 554 | 2015-02-12,1222.15,24422.15,49532.72,2693.07,2088.48,3417.61,3143.4 555 | 2015-02-13,1229.43,24682.54,50635.92,2743.24,2096.99,3447.59,3141.27 556 | 2015-02-16,1231.5,24726.53,,,,3433.3,3136.05 557 | 2015-02-17,1209.77,24784.88,,2741.68,2100.34,3438.44,3132.32 558 | 2015-02-18,1212.44,24832.08,51280.36,2711.84,2099.68,3465.8,3152.21 559 | 2015-02-19,1206.77,,51294.03,2702.02,2097.45,3488.08,3109.83 560 | 2015-02-20,1201.95,,51237.7,2685.59,2110.3,3490.53,3125.66 561 | 2015-02-23,1201.63,24836.76,51280.64,2650.97,2109.66,3519.58,3147.8 562 | 2015-02-24,1200.44,24750.07,51874.17,2652.12,2115.48,3547.1,3108.52 563 | 2015-02-25,1205.05,24778.28,51811.02,2688.59,2113.86,3541.78,3116.95 564 | 2015-02-26,1209.49,24902.06,51760.54,2653.07,2110.74,3574.94,3089.23 565 | 2015-02-27,1213.22,24823.29,51583.09,2699.58,2104.5,3599.0,3103.45 566 | 2015-03-02,1206.83,24887.44,51020.81,2660.51,2117.39,3591.09,3117.76 567 | 2015-03-03,1203.82,24702.78,51304.1,2673.75,2107.78,3549.11,3114.2 568 | 2015-03-04,1200.3,24465.38,50468.05,2670.27,2098.53,3583.44,3080.46 569 | 2015-03-05,1198.34,24193.04,50365.2,2658.73,2101.04,3618.21,3080.09 570 | 2015-03-06,1167.19,24164.0,49981.19,2630.81,2071.26,3617.62,2999.85 571 | 2015-03-09,1167.15,24123.05,49181.01,2623.64,2079.43,3610.28,2990.96 572 | 2015-03-10,1161.85,23896.98,48293.4,2582.27,2044.16,3567.25,2972.74 573 | 2015-03-11,1155.31,23717.97,48905.58,2586.03,2040.24,3649.54,2972.91 574 | 2015-03-12,1153.68,23797.96,48880.4,2574.38,2065.95,3641.32,3007.41 575 | 2015-03-13,1158.55,23823.21,48595.81,2527.6,2053.4,3656.21,3003.38 576 | 2015-03-16,1154.86,23949.55,48848.21,2514.93,2081.19,3706.75,3031.13 577 | 2015-03-17,1149.55,23901.49,50285.12,2499.12,2074.28,3672.16,3020.89 578 | 2015-03-18,1167.58,24120.08,51526.19,2540.36,2099.5,3668.52,3064.54 579 | 2015-03-19,1171.11,24468.89,50953.53,2527.78,2089.27,3670.73,3080.33 580 | 2015-03-20,1182.63,24375.24,51966.58,2573.29,2108.1,3726.07,3143.94 581 | 2015-03-23,1189.51,24494.51,51908.46,2597.68,2104.42,3699.04,3151.39 582 | 2015-03-24,1193.33,24399.6,51506.07,2593.29,2091.5,3731.35,3144.65 583 | 2015-03-25,1195.43,24528.23,51858.3,2608.96,2061.05,3684.04,3114.22 584 | 2015-03-26,1204.83,24497.08,50579.85,2639.59,2056.15,3669.79,3087.46 585 | 2015-03-27,1198.75,24486.2,50094.66,2587.97,2061.02,3679.03,3094.35 586 | 2015-03-30,1186.07,24855.12,51243.45,2584.22,2086.24,3727.8,3110.08 587 | 2015-03-31,1183.68,24900.89,51150.16,2551.33,2067.89,3697.38,3087.4 588 | 2015-04-01,1203.9,25082.75,52321.76,2602.67,2059.69,3714.89,3083.95 589 | 2015-04-02,1202.6,25275.64,53123.02,2586.94,2066.96,3715.27,3107.56 590 | 2015-04-03,1202.87,,,,,,3108.22 591 | 2015-04-06,1214.85,,53737.26,2636.71,2080.62,,3137.27 592 | 2015-04-07,1209.2,,53729.16,2655.84,2076.33,3768.72,3102.05 593 | 2015-04-08,1202.51,26236.86,53661.11,2590.89,2081.9,3742.63,3112.79 594 | 2015-04-09,1194.72,26944.39,53802.66,2588.75,2091.18,3781.79,3077.74 595 | 2015-04-10,1207.57,27272.39,54214.11,2613.21,2102.06,3816.76,3084.2 596 | 2015-04-13,1198.89,28016.34,54239.77,2600.56,2092.43,3828.78,3059.69 597 | 2015-04-14,1192.76,27561.49,53981.92,2618.49,2095.84,3784.53,3081.72 598 | 2015-04-15,1202.59,27618.82,54918.74,2676.38,2106.63,3803.55,3062.47 599 | 2015-04-16,1198.56,27739.71,54674.21,2694.5,2104.99,3751.72,3077.21 600 | 2015-04-17,1204.27,27653.12,53954.79,2676.61,2081.18,3674.05,3061.38 601 | 2015-04-20,1195.88,27094.93,53761.27,2667.63,2100.4,3718.04,3059.73 602 | 2015-04-21,1202.34,27850.49,,2651.41,2097.29,3719.38,3065.53 603 | 2015-04-22,1200.59,27964.84,,2638.95,,3742.77, 604 | -------------------------------------------------------------------------------- /src/tests/resources/reference.csv: -------------------------------------------------------------------------------- 1 | ticker,field,value 2 | A,CHG_PCT_1D,0.1 3 | A,CRNCY,EUR 4 | A,PX_CLOSE_DT,1533686400000 5 | B,CHG_PCT_1D,0.2 6 | B,CRNCY,USD 7 | C,CRNCY,USD 8 | C,PX_CLOSE_DT,1533686400000 9 | -------------------------------------------------------------------------------- /src/tests/resources/ts.csv: -------------------------------------------------------------------------------- 1 | ,value 2 | 2014-01-01,1.3063517821860473 3 | 2014-01-02,1.3019974053742485 4 | 2014-01-03,1.2989329455706211 5 | 2014-01-06,1.2982812397654313 6 | 2014-01-07,1.2994326361898625 7 | 2014-01-08,1.2983960380402324 8 | 2014-01-09,1.2962781832593675 9 | 2014-01-10,1.2996466196815708 10 | 2014-01-13,1.2984741155305948 11 | 2014-01-14,1.2997475206785771 12 | 2014-01-15,1.3018609013247957 13 | 2014-01-16,1.3023111544746786 14 | 2014-01-17,1.3027746618188134 15 | 2014-01-20,1.3019665442738844 16 | 2014-01-21,1.3030381486921616 17 | 2014-01-22,1.305035173961279 18 | 2014-01-23,1.302489733919346 19 | 2014-01-24,1.2979684039269108 20 | 2014-01-27,1.2929125563811494 21 | 2014-01-28,1.2951421689301583 22 | 2014-01-29,1.2953350958145442 23 | 2014-01-30,1.2953259915853017 24 | 2014-01-31,1.2940847222143854 25 | 2014-02-03,1.2911727922608338 26 | 2014-02-04,1.2911621022169688 27 | 2014-02-05,1.2914230560981583 28 | 2014-02-06,1.2944584842131506 29 | 2014-02-07,1.2989967292459397 30 | 2014-02-10,1.2992418084936888 31 | 2014-02-11,1.302905187985057 32 | 2014-02-12,1.3047637406593295 33 | 2014-02-13,1.3061157118083322 34 | 2014-02-14,1.3083983221985431 35 | 2014-02-17,1.3092452777214216 36 | 2014-02-18,1.3139609804660737 37 | 2014-02-19,1.314793086275586 38 | 2014-02-20,1.3146060580801673 39 | 2014-02-21,1.3152133355336422 40 | 2014-02-24,1.315781329640999 41 | 2014-02-25,1.3154785769260982 42 | 2014-02-26,1.3148643761534915 43 | 2014-02-27,1.315852469941157 44 | 2014-02-28,1.3175685216661364 45 | 2014-03-03,1.3198035701134243 46 | 2014-03-04,1.3226031754094096 47 | 2014-03-05,1.320573470448306 48 | 2014-03-06,1.3229467493397886 49 | 2014-03-07,1.3203467128444035 50 | 2014-03-10,1.3163610096673604 51 | 2014-03-11,1.3168200850542735 52 | 2014-03-12,1.3159570414567816 53 | 2014-03-13,1.3140165763204543 54 | 2014-03-14,1.3145715967852516 55 | 2014-03-17,1.3130932719876471 56 | 2014-03-18,1.3152011831470556 57 | 2014-03-19,1.3127035638181672 58 | 2014-03-20,1.309219087670164 59 | 2014-03-21,1.3109382172875312 60 | 2014-03-24,1.3101861370342214 61 | 2014-03-25,1.3118359228181709 62 | 2014-03-26,1.3101688599100498 63 | 2014-03-27,1.3112554843173745 64 | 2014-03-28,1.3131790283401352 65 | 2014-03-31,1.3137907030064262 66 | 2014-04-01,1.3133980838056163 67 | 2014-04-02,1.3143293446859214 68 | 2014-04-03,1.3151128631916025 69 | 2014-04-04,1.315813305966718 70 | 2014-04-07,1.31384128014314 71 | 2014-04-08,1.3185272185582744 72 | 2014-04-09,1.3205037935994517 73 | 2014-04-10,1.3198930421538353 74 | 2014-04-11,1.3179376412588708 75 | 2014-04-14,1.3209214742420683 76 | 2014-04-15,1.318719141989561 77 | 2014-04-16,1.3208051032635586 78 | 2014-04-17,1.3211896716144576 79 | 2014-04-18,1.321229422671604 80 | 2014-04-21,1.3206071164782736 81 | 2014-04-22,1.3206758851709637 82 | 2014-04-23,1.3194513070964775 83 | 2014-04-24,1.3219686067748142 84 | 2014-04-25,1.3204397413355466 85 | 2014-04-28,1.320212141313797 86 | 2014-04-29,1.3225332643902292 87 | 2014-04-30,1.321047695503357 88 | 2014-05-01,1.3193444262964802 89 | 2014-05-02,1.3216153341371832 90 | 2014-05-05,1.3218762844280567 91 | 2014-05-06,1.3217067600829162 92 | 2014-05-07,1.3212821736226772 93 | 2014-05-08,1.321494789338464 94 | 2014-05-09,1.3205807529969458 95 | 2014-05-12,1.3239006963485944 96 | 2014-05-13,1.3242332001529808 97 | 2014-05-14,1.3262993153061555 98 | 2014-05-15,1.323504917038174 99 | 2014-05-16,1.3239046018497904 100 | 2014-05-19,1.3241677102232845 101 | 2014-05-20,1.3230072971291331 102 | 2014-05-21,1.3234616666901562 103 | 2014-05-22,1.3240103434277364 104 | 2014-05-23,1.325344085344838 105 | 2014-05-26,1.3254895785492673 106 | 2014-05-27,1.323504213254555 107 | 2014-05-28,1.3221649301091023 108 | 2014-05-29,1.3228572056344836 109 | 2014-05-30,1.322153340287881 110 | 2014-06-02,1.32217835943385 111 | 2014-06-03,1.3223045701985283 112 | 2014-06-04,1.3215725468593322 113 | 2014-06-05,1.3250286484671456 114 | 2014-06-06,1.3261159731250862 115 | 2014-06-09,1.3257914789552712 116 | 2014-06-10,1.3248838247697654 117 | 2014-06-11,1.323898645560041 118 | 2014-06-12,1.3261952624394449 119 | 2014-06-13,1.3273260979151185 120 | 2014-06-16,1.326254550979873 121 | 2014-06-17,1.3260572032597118 122 | 2014-06-18,1.3285853106587553 123 | 2014-06-19,1.3353226743349431 124 | 2014-06-20,1.3358034259144032 125 | 2014-06-23,1.3339548156586327 126 | 2014-06-24,1.3336266594837416 127 | 2014-06-25,1.3341267296757586 128 | 2014-06-26,1.3345257030120616 129 | 2014-06-27,1.3355243131627712 130 | 2014-06-30,1.3338037482943028 131 | 2014-07-01,1.3346362004043022 132 | 2014-07-02,1.3351333143621165 133 | 2014-07-03,1.3343523621233258 134 | 2014-07-04,1.3340292806490264 135 | 2014-07-07,1.3314658544651152 136 | 2014-07-08,1.330476921002809 137 | 2014-07-09,1.3295971504678752 138 | 2014-07-10,1.3306438469113635 139 | 2014-07-11,1.3289176649821872 140 | 2014-07-14,1.3289703889081441 141 | 2014-07-15,1.3271509138494018 142 | 2014-07-16,1.329536909319645 143 | 2014-07-17,1.3297804109297655 144 | 2014-07-18,1.3302757579259936 145 | 2014-07-21,1.3298541382982478 146 | 2014-07-22,1.3312703506913934 147 | 2014-07-23,1.3328859802131658 148 | 2014-07-24,1.3320475295890604 149 | 2014-07-25,1.331127930652953 150 | 2014-07-28,1.3320992343396785 151 | 2014-07-29,1.330128465602794 152 | 2014-07-30,1.3292962145624725 153 | 2014-07-31,1.3220636885742587 154 | 2014-08-01,1.3196459094736444 155 | 2014-08-04,1.3221215595702869 156 | 2014-08-05,1.318942763185874 157 | 2014-08-06,1.3205349684272814 158 | 2014-08-07,1.3198078674588147 159 | 2014-08-08,1.3199887644035908 160 | 2014-08-11,1.3232537590473377 161 | 2014-08-12,1.3217490353012349 162 | 2014-08-13,1.3251197125962402 163 | 2014-08-14,1.3237289532756389 164 | 2014-08-15,1.3242212599970151 165 | 2014-08-18,1.3241151296465297 166 | 2014-08-19,1.3253218868815475 167 | 2014-08-20,1.3262036660542935 168 | 2014-08-21,1.3249639703118774 169 | 2014-08-22,1.3246490039117471 170 | 2014-08-25,1.3244874784645941 171 | 2014-08-26,1.3252960561640084 172 | 2014-08-27,1.3256642597713622 173 | 2014-08-28,1.3255228792836822 174 | 2014-08-29,1.327139348600748 175 | 2014-09-01,1.3269144555895631 176 | 2014-09-02,1.322047464478634 177 | 2014-09-03,1.32555636803803 178 | 2014-09-04,1.3228954760113665 179 | 2014-09-05,1.3244704725672312 180 | 2014-09-08,1.3212237558825024 181 | 2014-09-09,1.3181836619572624 182 | 2014-09-10,1.3130717652795518 183 | 2014-09-11,1.311533010359509 184 | 2014-09-12,1.3057477400533315 185 | 2014-09-15,1.3047247434666869 186 | 2014-09-16,1.3074244194029936 187 | 2014-09-17,1.3077525903668337 188 | 2014-09-18,1.3060263798467953 189 | 2014-09-19,1.3045888105906591 190 | 2014-09-22,1.2997318348746731 191 | 2014-09-23,1.2980520783544485 192 | 2014-09-24,1.300647959712532 193 | 2014-09-25,1.2957065881905236 194 | 2014-09-26,1.296792703610833 195 | 2014-09-29,1.293926734234878 196 | 2014-09-30,1.291988552499442 197 | 2014-10-01,1.2903100168024395 198 | 2014-10-02,1.2868767836410178 199 | 2014-10-03,1.284362038573257 200 | 2014-10-06,1.2883290626065358 201 | 2014-10-07,1.28506403218619 202 | 2014-10-08,1.2891907871916526 203 | 2014-10-09,1.2882832267163369 204 | 2014-10-10,1.2840185269691842 205 | 2014-10-13,1.2860868061902084 206 | 2014-10-14,1.2868219418672806 207 | 2014-10-15,1.2840759737636545 208 | 2014-10-16,1.2839974179755678 209 | 2014-10-17,1.2856101180691406 210 | 2014-10-20,1.2886764954272698 211 | 2014-10-21,1.2927507147800836 212 | 2014-10-22,1.2921413485769204 213 | 2014-10-23,1.2936986862448467 214 | 2014-10-24,1.2928579770288968 215 | 2014-10-27,1.2932738461346975 216 | 2014-10-28,1.2967802996370916 217 | 2014-10-29,1.2976075292693812 218 | 2014-10-30,1.2952043617363689 219 | 2014-10-31,1.2961098042843178 220 | 2014-11-03,1.2950885144962845 221 | 2014-11-04,1.2935902307669167 222 | 2014-11-05,1.2897946436498626 223 | 2014-11-06,1.2887884729447698 224 | 2014-11-07,1.2929232831364323 225 | 2014-11-10,1.2919287340126786 226 | 2014-11-11,1.2935759673922689 227 | 2014-11-12,1.2925140586470985 228 | 2014-11-13,1.2917026092472972 229 | 2014-11-14,1.2945233585762703 230 | 2014-11-17,1.2941652553532534 231 | 2014-11-18,1.2950538582925557 232 | 2014-11-19,1.2923559797082649 233 | 2014-11-20,1.2943032326905877 234 | 2014-11-21,1.2975132660603794 235 | 2014-11-24,1.298399279437882 236 | 2014-11-25,1.298722779344696 237 | 2014-11-26,1.3006290816581174 238 | 2014-11-27,1.3000492251387883 239 | 2014-11-28,1.2935771592500624 240 | 2014-12-01,1.2954851056593395 241 | 2014-12-02,1.2960299940938218 242 | 2014-12-03,1.296065119790067 243 | 2014-12-04,1.2966751187904877 244 | 2014-12-05,1.2957134612215837 245 | 2014-12-08,1.2956979541547993 246 | 2014-12-09,1.2967085573612585 247 | 2014-12-10,1.2946815844417658 248 | 2014-12-11,1.2940225007396362 249 | 2014-12-12,1.291102793253362 250 | 2014-12-15,1.2842430730558143 251 | 2014-12-16,1.2825238954617852 252 | 2014-12-17,1.2875483261929406 253 | 2014-12-18,1.2900286287258338 254 | 2014-12-19,1.2923960721448975 255 | 2014-12-22,1.2958755469428096 256 | 2014-12-23,1.2951353301838586 257 | 2014-12-24,1.2944883845664126 258 | 2014-12-25,1.2943755127310228 259 | 2014-12-26,1.2962481020669487 260 | 2014-12-29,1.2978207191212183 261 | 2014-12-30,1.2977490515751822 262 | 2014-12-31,1.2934720900884369 263 | 2015-01-01,1.2932980766323692 264 | 2015-01-02,1.2956211541105205 265 | 2015-01-05,1.2948124695432102 266 | 2015-01-06,1.2943489073409868 267 | 2015-01-07,1.2960997453109733 268 | 2015-01-08,1.2973056459707544 269 | 2015-01-09,1.298753274676588 270 | 2015-01-12,1.2981222518420237 271 | 2015-01-13,1.2987866354047688 272 | 2015-01-14,1.299806177304756 273 | 2015-01-15,1.3028672967110184 274 | 2015-01-16,1.3063719579052555 275 | 2015-01-19,1.3050499636108226 276 | 2015-01-20,1.3039839867402978 277 | 2015-01-21,1.3069846679126638 278 | 2015-01-22,1.3098176442777467 279 | 2015-01-23,1.3108832832472677 280 | 2015-01-26,1.3111049391691223 281 | 2015-01-27,1.311734975897345 282 | 2015-01-28,1.3094714973430133 283 | 2015-01-29,1.306644037922107 284 | 2015-01-30,1.3055300534244083 285 | 2015-02-02,1.3069903953850333 286 | 2015-02-03,1.3108274270863205 287 | 2015-02-04,1.3095123723578694 288 | 2015-02-05,1.3132691381319372 289 | 2015-02-06,1.307136913652134 290 | 2015-02-09,1.3058583276330331 291 | 2015-02-10,1.305764668366318 292 | 2015-02-11,1.3031152403517754 293 | 2015-02-12,1.3063018408858107 294 | 2015-02-13,1.3090176241386355 295 | 2015-02-16,1.3091735369326811 296 | 2015-02-17,1.3079536080309853 297 | 2015-02-18,1.3083841182356042 298 | 2015-02-19,1.3069244200388617 299 | 2015-02-20,1.307332007093698 300 | 2015-02-23,1.3073685445243346 301 | 2015-02-24,1.3060940283020248 302 | 2015-02-25,1.3072426414666285 303 | 2015-02-26,1.306835850920691 304 | 2015-02-27,1.3078702988257358 305 | 2015-03-02,1.307808879209509 306 | 2015-03-03,1.3065021599191509 307 | 2015-03-04,1.3036097563813502 308 | 2015-03-05,1.3019143220901657 309 | 2015-03-06,1.2957236004463473 310 | 2015-03-09,1.2954733061029031 311 | 2015-03-10,1.2912310845068835 312 | 2015-03-11,1.2902543464159644 313 | 2015-03-12,1.2915231781395362 314 | 2015-03-13,1.2907800333770878 315 | 2015-03-16,1.292768584283378 316 | 2015-03-17,1.2911968143964914 317 | 2015-03-18,1.2963211306898996 318 | 2015-03-19,1.2984304664523094 319 | 2015-03-20,1.3010878783476862 320 | 2015-03-23,1.3023706135741389 321 | 2015-03-24,1.3020626828786903 322 | 2015-03-25,1.3018740619712637 323 | 2015-03-26,1.3026082413552005 324 | 2015-03-27,1.3014837046393717 325 | 2015-03-30,1.3043933106302852 326 | 2015-03-31,1.3031468435469973 327 | 2015-04-01,1.3069189988849872 328 | 2015-04-02,1.3080886408641712 329 | 2015-04-03,1.3081098457361493 330 | 2015-04-06,1.310201013229076 331 | 2015-04-07,1.3102135718426935 332 | 2015-04-08,1.3147539140360769 333 | 2015-04-09,1.318236521518962 334 | 2015-04-10,1.3217445188672292 335 | 2015-04-13,1.3219649956686754 336 | 2015-04-14,1.3203531041538557 337 | 2015-04-15,1.3222133730089989 338 | 2015-04-16,1.3219423377494781 339 | 2015-04-17,1.3197214477799284 340 | 2015-04-20,1.3182327143896386 341 | 2015-04-21,1.3211891082909042 342 | 2015-04-22,1.3215650061893174 343 | -------------------------------------------------------------------------------- /src/tests/test_docs.py: -------------------------------------------------------------------------------- 1 | import doctest 2 | import os 3 | import re 4 | 5 | import pytest 6 | 7 | 8 | @pytest.fixture() 9 | def docstring(root_dir): 10 | # Read the README.md file 11 | with open(root_dir / "README.md") as f: 12 | content = f.read() 13 | 14 | # Extract Python code blocks (assuming they are in triple backticks) 15 | blocks = re.findall(r"```python(.*?)```", content, re.DOTALL) 16 | 17 | code = "\n".join(blocks).strip() 18 | 19 | # Add a docstring wrapper for doctest to process the code 20 | docstring = f"\n{code}\n" 21 | 22 | return docstring 23 | 24 | 25 | def test_blocks(root_dir, docstring, capfd): 26 | os.chdir(root_dir) 27 | 28 | try: 29 | doctest.run_docstring_examples(docstring, globals()) 30 | except doctest.DocTestFailure as e: 31 | # If a DocTestFailure occurs, capture it and manually fail the test 32 | pytest.fail(f"Doctests failed: {e}") 33 | 34 | # Capture the output after running doctests 35 | captured = capfd.readouterr() 36 | 37 | # If there is any output (error message), fail the test 38 | if captured.out: 39 | pytest.fail( 40 | f"Doctests failed with the following output:\n{captured.out} and \n{docstring}" 41 | ) 42 | -------------------------------------------------------------------------------- /src/tests/test_document.py: -------------------------------------------------------------------------------- 1 | """testing the document""" 2 | 3 | from __future__ import annotations 4 | 5 | import numpy as np 6 | import pandas as pd 7 | import pandas.testing as pt 8 | import pytest 9 | from mongoengine import NotUniqueError 10 | 11 | from antarctic.document import XDocument 12 | from antarctic.pandas_field import PandasField 13 | 14 | 15 | class Singer(XDocument): 16 | """simple document""" 17 | 18 | price = PandasField() 19 | 20 | 21 | def test_reference_frame(client): 22 | """test reference data for documents""" 23 | # can't harm to clean a bit 24 | Singer.objects.delete() 25 | 26 | p1 = Singer(name="Peter") 27 | p1.reference["A"] = 20.0 28 | p1.save() 29 | 30 | p2 = Singer(name="Falco") 31 | p2.reference["A"] = 30.0 32 | p2.reference["B"] = 10.0 33 | p2.save() 34 | 35 | frame = Singer.reference_frame(objects=[p1, p2]) 36 | assert set(frame.index) == {"Peter", "Falco"} 37 | assert set(frame.keys()) == {"A", "B"} 38 | 39 | frame = Singer.reference_frame() 40 | assert set(frame.index) == {"Peter", "Falco"} 41 | assert set(frame.keys()) == {"A", "B"} 42 | 43 | 44 | def test_lt(): 45 | """test sorting of documents""" 46 | assert Singer(name="A") < Singer(name="B") 47 | 48 | 49 | def test_equals(client): 50 | """test equality""" 51 | # can't harm to clean a bit 52 | Singer.objects.delete() 53 | 54 | p1 = Singer(name="Peter Maffay") 55 | p2 = Singer(name="Peter Maffay") 56 | 57 | assert p1 == p2 58 | 59 | 60 | def test_products(client): 61 | """test the subsets of documents""" 62 | # can't harm to clean a bit 63 | Singer.objects.delete() 64 | 65 | p1 = Singer(name="Peter").save() 66 | p2 = Singer(name="Falco").save() 67 | 68 | # here we query the database! Hence need the client in the background 69 | a = Singer.subset(names=["Peter"]) 70 | assert len(a) == 1 71 | assert a[0] == p1 72 | 73 | b = Singer.subset() 74 | assert len(b) == 2 75 | assert set(b) == {p1, p2} 76 | 77 | frame = Singer.reference_frame(objects=[p1, p2]) 78 | assert set(frame.index) == {"Peter", "Falco"} 79 | assert frame.empty 80 | 81 | frame = Singer.reference_frame() 82 | assert set(frame.index) == {"Peter", "Falco"} 83 | assert frame.empty 84 | 85 | 86 | def test_not_unique_name(client): 87 | """trying to create documents of the same type and same name""" 88 | # can't harm to clean a bit 89 | Singer.objects.delete() 90 | 91 | # check that no singer has survived 92 | s = list(Singer.objects) 93 | assert len(s) == 0 94 | 95 | c1 = Singer(name="AA").save() 96 | assert c1.name == "AA" 97 | 98 | # try to create a second singer with the same name 99 | with pytest.raises(NotUniqueError): 100 | Singer(name="AA").save() 101 | 102 | 103 | def test_to_dict(client): 104 | """test create dictionary of documents""" 105 | # can't harm to clean a bit 106 | Singer.objects.delete() 107 | 108 | c1 = Singer(name="AAA").save() 109 | c2 = Singer(name="BBB").save() 110 | 111 | assert Singer.to_dict() == {"AAA": c1, "BBB": c2} 112 | 113 | 114 | def test_apply(client): 115 | """apply a function to documents""" 116 | Singer.objects.delete() 117 | s1 = Singer(name="Falco").save() 118 | s2 = Singer(name="Peter Maffay").save() 119 | 120 | s1.price = pd.Series(index=[1, 2, 3], data=[7.0, 9.0, 8.0]).to_frame(name="price") 121 | s2.price = pd.Series(index=[1, 3], data=[8.0, 10.0]).to_frame(name="price") 122 | 123 | s1.save() 124 | s2.save() 125 | 126 | a = pd.Series( 127 | dict(Singer.apply(func=lambda x: x.price["price"].mean(), default=np.nan)) 128 | ).dropna() 129 | pt.assert_series_equal(a, pd.Series({"Falco": 8.0, "Peter Maffay": 9.0})) 130 | 131 | 132 | def test_apply_missing(client): 133 | """data missing""" 134 | Singer.objects.delete() 135 | s1 = Singer(name="Falco").save() 136 | s2 = Singer(name="Peter Maffay").save() 137 | 138 | s1.price = pd.Series(index=[1, 2, 3], data=[7.0, 9.0, 8.0]).to_frame(name="price") 139 | 140 | s1.save() 141 | s2.save() 142 | 143 | a = pd.Series( 144 | dict(Singer.apply(func=lambda x: x.price["price"].mean(), default=np.nan)) 145 | ) 146 | 147 | pt.assert_series_equal(a, pd.Series({"Falco": 8.0, "Peter Maffay": np.nan})) 148 | 149 | 150 | def test_repr(client): 151 | """test repr""" 152 | Singer.objects.delete() 153 | s1 = Singer(name="Falco").save() 154 | assert str(s1) == "" 155 | assert s1.__repr__() == "" 156 | 157 | 158 | def test_frame(resource_dir, client): 159 | """test frame of series data""" 160 | Singer.objects.delete() 161 | s1 = Singer(name="Falco").save() 162 | s2 = Singer(name="Peter Maffay").save() 163 | 164 | s1.price = pd.Series(index=[1, 2, 3], data=[7.1, 9.0, 8.0]).to_frame(name="a") 165 | s2.price = pd.Series(index=[1, 3], data=[8.1, 10.0]).to_frame(name="a") 166 | s1.save() 167 | s2.save() 168 | 169 | f = Singer.frame(series="price", key="a") 170 | 171 | pt.assert_frame_equal(f, pd.read_csv(resource_dir / "frame.csv", index_col=0)) 172 | 173 | with pytest.raises(AttributeError): 174 | Singer.frame(series="wurst", key="b") 175 | 176 | 177 | def test_names(client): 178 | """test the names""" 179 | s1 = Singer(name="A").save() 180 | s2 = Singer(name="B").save() 181 | 182 | assert {s1, s2} == set(Singer.objects(name__in=["A", "B"]).all()) 183 | assert {s2, s1} == set(Singer.objects(name__in=["B", "A"]).all()) 184 | -------------------------------------------------------------------------------- /src/tests/test_pandasfield.py: -------------------------------------------------------------------------------- 1 | """testing the document""" 2 | 3 | from __future__ import annotations 4 | 5 | import pandas as pd 6 | import pytest 7 | from mongoengine import Document, StringField 8 | 9 | from antarctic.pandas_field import PandasField 10 | 11 | 12 | class Singer(Document): 13 | """simple document""" 14 | 15 | name = StringField(unique=True, required=True) 16 | price = PandasField() 17 | 18 | 19 | def test_write_frame(client): 20 | """test write a frame""" 21 | s = Singer(name="Maffay1") 22 | s.price = pd.DataFrame(index=[0, 1], columns=["A", "B"], data=2.0) 23 | s.save() 24 | 25 | pd.testing.assert_frame_equal( 26 | s.price, pd.DataFrame(index=[0, 1], columns=["A", "B"], data=2.0) 27 | ) 28 | 29 | 30 | def test_write_series(client): 31 | """write a series""" 32 | s = Singer(name="Maffay2") 33 | s.price = pd.Series(index=[0, 1], data=2.0).to_frame(name="price") 34 | s.save() 35 | 36 | pd.testing.assert_series_equal( 37 | s.price["price"], pd.Series(index=[0, 1], data=2.0, name="price") 38 | ) 39 | 40 | 41 | def test_write_series_no_name(client): 42 | """write a series but don't assign a name""" 43 | s = Singer(name="Maffay3") 44 | with pytest.raises(AssertionError): 45 | s.price = pd.Series(index=[0, 1], data=2.0) 46 | s.save() 47 | 48 | 49 | def test_write_non_pandas(client): 50 | """write a simple list""" 51 | with pytest.raises(AssertionError): 52 | s = Singer(name="Maffay4") 53 | s.price = [2.0, 2.0] 54 | s.save() 55 | --------------------------------------------------------------------------------