├── +dataLoader.ipynb ├── 07-0 Data Visualization.md ├── 08-1 Times Series Line Plots.md ├── 08-2 08-3 Bar Plot and Cum Log Returns.md ├── 08-4 Resampling.md ├── 08-5 08-6 08-7 Rolling Statistics.md ├── 15-0 Trading Strategies.md ├── Data Visualization ├── +PFF_Ch7_Fig7-27.ipynb ├── PFF_Ch7_Fig_7-27_OHLC_EUR-USDwBB.PNG └── eurusd.txt ├── Financial Time Series ├── +PFF_Ch8_Fig8-1.ipynb ├── +PFF_Ch8_Fig8-2_8-3.ipynb ├── +PFF_Ch8_Fig8-2_8-3_8-4.ipynb ├── +PFF_Ch8_RollingStatistics.ipynb ├── +PFF_Chp8.ipynb ├── PFF_8-4_Resampling_Plot.PNG ├── PFF_Ch8_8-1.png ├── PFF_Ch8_Fig_8-2.png ├── PFF_Ch8_Fig_8-3.png ├── PFF_Ch8_joy-plot.png ├── PFF_Ch8_rollingStat1.PNG ├── PFF_Ch8_rollingStat2.PNG └── data.csv ├── LICENSE ├── README.md └── Trading Strategies ├── 3-BTC-USD_SMA_Position.png ├── 4-BTC-USD_LongVsSMA.png ├── 5-BTC-USD_Hist.png ├── 7-BTC-USD_OLS_ReturnsVsDirection.png ├── 9-BTC-USD_K-Means_ClusteringVsBenchmark.png ├── BTC-USD.csv ├── coinbaseSandboxBacktesting.ipynb └── products.csv /+dataLoader.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 3, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "#\n", 10 | "# Formating stock data from files into a dataframe\n", 11 | "#\n", 12 | "import numpy as np\n", 13 | "import pandas as pd\n", 14 | "\n", 15 | "path0 = './data/daily/us/nasdaq stocks/1/amzn.us.txt'\n", 16 | "path1 = './data/daily/us/nasdaq stocks/2/msft.us.txt'\n", 17 | "path2 = './data/daily/us/nasdaq stocks/1/aapl.us.txt'\n", 18 | "path3 = './data/daily/us/nasdaq stocks/1/intc.us.txt'\n", 19 | "path4 = './data/daily/us/nyse stocks/1/gs_n.us.txt'\n", 20 | "path5 = './data/daily/us/nyse etfs/spy.us.txt'\n", 21 | "path6 = './data/daily/us/nyse etfs/ivv.us.txt' #etf simulates SPX index\n", 22 | "path7 = './data/daily/us/nyse etfs/vxx.us.txt' #etf simulates VIX index\n", 23 | "path8 = './data/daily/world/commodities cash/eu.c.txt'\n", 24 | "path9 = './data/daily/world/currencies/major/xauusd.txt' #stand-in for XAU index\n", 25 | "path10 = './data/daily/us/nyse etfs/gdx.us.txt'\n", 26 | "path11 = './data/daily/us/nyse etfs/gld.us.txt'\n", 27 | "\n", 28 | "filename = [path0, path1, path2, path3, path4, path5, path6, \\\n", 29 | " path7, path8, path9, path10, path11]\n", 30 | "\n", 31 | "for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]:\n", 32 | " data = pd.read_csv(filename[i], index_col=2, parse_dates=True)\n", 33 | " closePrice = data['']\n", 34 | " closePriceYear = closePrice.loc['2020']\n", 35 | " \n", 36 | " symbol_long = filename[i].split('/')\n", 37 | " symbol = symbol_long[-1]\n", 38 | " \n", 39 | " closePriceYear.rename(symbol, inplace=True)\n", 40 | " \n", 41 | " if i==0:\n", 42 | " closePriceSymbolList = pd.DataFrame(data=closePriceYear)\n", 43 | " closePriceSymbolList.loc[:,symbol] = closePriceYear\n", 44 | " \n", 45 | "closePriceSymbolList.head()\n", 46 | "\n", 47 | "closePriceSymbolList.to_csv(path_or_buf='./data.csv')" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": null, 53 | "metadata": {}, 54 | "outputs": [], 55 | "source": [] 56 | } 57 | ], 58 | "metadata": { 59 | "kernelspec": { 60 | "display_name": "Python 3", 61 | "language": "python", 62 | "name": "python3" 63 | }, 64 | "language_info": { 65 | "codemirror_mode": { 66 | "name": "ipython", 67 | "version": 3 68 | }, 69 | "file_extension": ".py", 70 | "mimetype": "text/x-python", 71 | "name": "python", 72 | "nbconvert_exporter": "python", 73 | "pygments_lexer": "ipython3", 74 | "version": "3.8.3" 75 | } 76 | }, 77 | "nbformat": 4, 78 | "nbformat_minor": 4 79 | } 80 | -------------------------------------------------------------------------------- /07-0 Data Visualization.md: -------------------------------------------------------------------------------- 1 | # Data Visualization 2 | ## OHLC plot of EUR/USD exchange rates with Bollinger band and RSI 3 | 4 | ![OHLC plot](https://github.com/joe-wojniak/PythonForFinance/blob/main/Data%20Visualization/PFF_Ch7_Fig_7-27_OHLC_EUR-USDwBB.PNG) 5 | ``` 6 | ###################################################################################### 7 | # Python for Finance, 2nd ed., Hilpisch, Yves 8 | # Chapter 7 - Data Visualization 9 | # 10 | # Figure 7-27 OHLC plot of EUR/USD data with Bollinger band and RSI 11 | # 12 | # https://stooq.com/db/h/ 13 | # https://jpoles1.github.io/cufflinks/html/cufflinks.quant_figure.html 14 | # 15 | # Python 3, Jupyter Lab 16 | ####################################################################################### 17 | 18 | import pandas as pd 19 | import cufflinks as cf 20 | import plotly.offline as plyo 21 | 22 | filename = './data/daily/world/currencies/major/eurusd.txt' 23 | 24 | raw = pd.read_csv(filename, index_col=2, parse_dates=True) 25 | 26 | quotes = raw[['', '', '', '']] 27 | quotes = quotes.iloc[-60:] 28 | 29 | qf = cf.QuantFig(quotes, title='EUR/USD Exchange Rate', legend='top', name='EUR/USD') 30 | qf.add_bollinger_bands(periods=15, boll_std=2) 31 | qf.add_rsi(periods=14, showbands=False) 32 | 33 | plyo.iplot(qf.iplot(asFigure=True), image='png', filename='qf_01') 34 | ``` 35 | -------------------------------------------------------------------------------- /08-1 Times Series Line Plots.md: -------------------------------------------------------------------------------- 1 | # Financial Time Series Line Plots 2 | 3 | This example demonstrates making line plots using Pandas and Matplotlib. 4 | 5 | ![lineplots](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_Ch8_8-1.png) 6 | 7 | ``` 8 | # Python for Finance, 2nd ed., Hilpisch, Ives 9 | # Chapter 8 - Financial Time Series 10 | # Figure 8-1 Financial time series data as line plots 11 | # Python 3 12 | # https://stooq.com/db/h/ 13 | # https://matplotlib.org/3.1.0/tutorials/introductory/usage.html#sphx-glr-tutorials-introductory-usage-py 14 | # https://matplotlib.org/3.1.0/gallery/subplots_axes_and_figures/subplots_demo.html 15 | 16 | import pandas as pd 17 | import numpy as np 18 | import matplotlib 19 | import matplotlib.pyplot as plt 20 | 21 | import warnings 22 | warnings.filterwarnings('ignore') 23 | 24 | %matplotlib inline 25 | 26 | data = pd.read_csv('data.csv', index_col=0, parse_dates=True) 27 | 28 | # Create subplots 29 | fig, axs = plt.subplots(12, 1, figsize=(16,24)) 30 | plt.subplots_adjust(top=1, bottom=0, hspace=0.5) 31 | 32 | i = 0 33 | while i < 12: 34 | axs[i].plot(data.iloc[:,i]) 35 | axs[i].set(title=data.columns[i], ylabel='Closing Price') 36 | 37 | if i==11: 38 | axs[i].set(title=data.columns[i], xlabel='Date') 39 | 40 | i = i + 1 41 | 42 | plt.savefig('PFF_Ch8_8-1.png') 43 | ``` 44 | -------------------------------------------------------------------------------- /08-2 08-3 Bar Plot and Cum Log Returns.md: -------------------------------------------------------------------------------- 1 | # Percentage Change Bar Plot and Cumulative Log Returns Plot 2 | 3 | *Figure 8-2: Mean values of percentage changes as bar plot* 4 | 5 | *Figure 8-3: Cumulative log returns over time* 6 | 7 | ![Percent Changes](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_Ch8_Fig_8-2.png) 8 | 9 | ![Log Returns](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_Ch8_Fig_8-3.png) 10 | 11 | ```python 12 | # Python for Finance, 2nd ed., Hilpisch, Ives 13 | # Chapter 8 - Financial Time Series 14 | # Figure 8-2 Mean values of percentage changes as bar plot 15 | # Figure 8-3 Cumulative log returns over time 16 | # https://stooq.com/db/h/ 17 | # https://www.datacamp.com/community/tutorials/pandas-tutorial-dataframe-python 18 | # Python 3 19 | 20 | %matplotlib inline 21 | import numpy as np 22 | import pandas as pd 23 | import matplotlib 24 | import matplotlib.pyplot as plt 25 | 26 | import warnings 27 | warnings.filterwarnings('ignore') 28 | 29 | plt.style.use('seaborn') 30 | mpl.rcParams['font.family']='serif' 31 | 32 | data = pd.read_csv('data.csv', index_col=0, parse_dates=True) 33 | 34 | # Percentage Returns 35 | data.pct_change().mean().plot(kind='bar', figsize=(9.7,6)) 36 | plt.savefig('PFF_Ch8_Fig_8-2.png') 37 | 38 | # Log Returns 39 | rets = np.log(data/data.shift(1)) 40 | rets.cumsum().apply(np.exp).plot(figsize=(10,6)) 41 | plt.savefig('PFF_Ch8_Fig_8-3.png') 42 | ``` 43 | -------------------------------------------------------------------------------- /08-4 Resampling.md: -------------------------------------------------------------------------------- 1 | # Resampling Time Intervals 2 | Fig 8-4 Resampling (monthly time interval): 3 | 4 | ![Resampling](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_8-4_Resampling_Plot.PNG) 5 | 6 | ```python 7 | # Python 3 8 | # Python for Finance, 2nd ed., Hilpisch, Ives 9 | # Chapter 8 - Financial Time Series 10 | # Figure 8-2 Mean values of percentage changes as bar plot 11 | # Figure 8-3 Cumulative log returns over time 12 | # Figure 8-4 Resampled cumulative log returns over time (monthly) 13 | # https://stooq.com/db/h/ 14 | # https://www.datacamp.com/community/tutorials/pandas-tutorial-dataframe-python 15 | 16 | %matplotlib inline 17 | import numpy as np 18 | import pandas as pd 19 | from pylab import mpl, plt 20 | 21 | plt.style.use('seaborn') 22 | mpl.rcParams['font.family']='serif' 23 | 24 | path0 = './data/daily/us/nasdaq stocks/1/amzn.us.txt' 25 | path1 = './data/daily/us/nasdaq stocks/2/msft.us.txt' 26 | path2 = './data/daily/us/nasdaq stocks/1/aapl.us.txt' 27 | path3 = './data/daily/us/nasdaq stocks/1/intc.us.txt' 28 | path4 = './data/daily/us/nyse stocks/1/gs_n.us.txt' 29 | path5 = './data/daily/us/nyse etfs/spy.us.txt' 30 | path6 = './data/daily/us/nyse etfs/ivv.us.txt' #etf simulates SPX index 31 | path7 = './data/daily/us/nyse etfs/vxx.us.txt' #etf simulates VIX index 32 | path8 = './data/daily/world/commodities cash/eu.c.txt' 33 | path9 = './data/daily/world/currencies/major/xauusd.txt' #stand-in for XAU index 34 | path10 = './data/daily/us/nyse etfs/gdx.us.txt' 35 | path11 = './data/daily/us/nyse etfs/gld.us.txt' 36 | 37 | filename = [path0, path1, path2, path3, path4, path5, path6, \ 38 | path7, path8, path9, path10, path11] 39 | 40 | for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]: 41 | data = pd.read_csv(filename[i], index_col=2, parse_dates=True) 42 | closePrice = data[''] 43 | closePriceYear = closePrice.loc['2020'] 44 | 45 | symbol_long = filename[i].split('/') 46 | symbol = symbol_long[-1] 47 | 48 | closePriceYear.rename(symbol, inplace=True) 49 | 50 | if i==0: 51 | closePriceSymbolList = pd.DataFrame(data=closePriceYear) 52 | closePriceSymbolList.loc[:,symbol] = closePriceYear 53 | 54 | 55 | # https://stackoverflow.com/questions/43283202/permission-denied-when-pandas-dataframe-to-tempfile-csv 56 | 57 | # Percentage Returns 58 | closePriceSymbolList.pct_change().mean().plot(kind='bar', figsize=(9,4)) 59 | 60 | # Log Returns 61 | rets = np.log(closePriceSymbolList/closePriceSymbolList.shift(1)) 62 | rets.cumsum().apply(np.exp).plot(figsize=(9,4)) 63 | 64 | #Resampling from daily to weekly 65 | 66 | closePriceSymbolList.resample('1w', label='right').last().head() 67 | 68 | #Resampling from weekly to monthly 69 | closePriceSymbolList.resample('1m', label='right').last().head() 70 | 71 | #Resampled cumulative log returns over time (monthly) 72 | rets.cumsum().apply(np.exp).resample('1m', label='right').last().plot(figsize=(10,6)) 73 | ``` 74 | -------------------------------------------------------------------------------- /08-5 08-6 08-7 Rolling Statistics.md: -------------------------------------------------------------------------------- 1 | # Rolling Statistics 2 | 3 | ![min mean max](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_Ch8_rollingStat1.PNG) 4 | 5 | ![position](https://github.com/joe-wojniak/PythonForFinance/blob/main/Financial%20Time%20Series/PFF_Ch8_rollingStat2.PNG) 6 | 7 | ```python 8 | ###################################################################################### 9 | # Python for Finance, 2nd ed., Hilpisch, Yves 10 | # Chapter 8 - Financial Time Series: Rolling Statistics 11 | # a.k.a. financial indicators or financial studies 12 | # 13 | # Figure 8-5 Rolling statistics for minimum, mean, maximum values 14 | # Figure 8-6 Apple stock price and two simple moving averages 15 | # Figure 8-7 Apple stock price, two simple moving averages and positions 16 | # 17 | # https://stooq.com/db/h/ 18 | # https://www.datacamp.com/community/tutorials/pandas-tutorial-dataframe-python 19 | # Python 3, Jupyter Lab 20 | ###################################################################################### 21 | 22 | %matplotlib inline 23 | import numpy as np 24 | import pandas as pd 25 | from pylab import mpl, plt 26 | 27 | plt.style.use('seaborn') 28 | mpl.rcParams['font.family']='serif' 29 | 30 | data=pd.read_csv('./data_all.csv', index_col=0, parse_dates=True) 31 | 32 | data.info() 33 | 34 | sym = 'aapl.us.txt' 35 | data1 = pd.DataFrame(data[sym].dropna()) 36 | data1.tail() 37 | 38 | window = 20 39 | data1['min'] = data1[sym].rolling(window=window).min() 40 | data1['mean'] = data1[sym].rolling(window=window).mean() 41 | data1['std'] = data1[sym].rolling(window=window).std() 42 | data1['median'] = data1[sym].rolling(window=window).median() 43 | data1['max'] = data1[sym].rolling(window=window).max() 44 | data1['ewma'] = data1[sym].ewm(halflife=0.5, min_periods=window).mean() 45 | 46 | data1.dropna().head() 47 | 48 | ax = data1[['min', 'mean', 'max']].iloc[-200:].plot(figsize=(10,6), style=['g--','r--','g--'], lw = 0.8) 49 | data1[sym].iloc[-200:].plot(ax=ax, lw=2.0) 50 | 51 | data1['SMA_short'] = data[sym].rolling(window=42).mean() 52 | data1['SMA_long'] = data[sym].rolling(window=252).mean() 53 | data1[[sym, 'SMA_short', 'SMA_long']].tail() 54 | 55 | data1[[sym, 'SMA_short', 'SMA_long']].loc['2007-09':'2020'].plot(figsize=(10,6)); 56 | 57 | data1.dropna(inplace=True) 58 | 59 | #data1.insert(3, 'positions', "") 60 | 61 | data1['positions'] = np.where(data1['SMA_short'] > data1['SMA_long'], 1, -1) 62 | 63 | ax = data1[[sym, 'SMA_short', 'SMA_long', 'positions']].loc['2011':'2020'].plot(figsize=(10,6), secondary_y='positions') 64 | ax.get_legend().set_bbox_to_anchor((0.25, 0.85)); 65 | 66 | ``` 67 | 68 | -------------------------------------------------------------------------------- /15-0 Trading Strategies.md: -------------------------------------------------------------------------------- 1 | # Trading Strategies 2 | 3 | This demo utilizes the Coinbase Pro public end points and the Coinbase Pro client for Python 4 | * (https://github.com/danpaquin/coinbasepro-python) 5 | 6 | ## Reference: Chapter 15 Trading Strategies, Python For Finance, 2nd edition 7 | 8 | The data files used are provided for convenience: 9 | * [BTC-USD Data](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/BTC-USD.csv) 10 | * [Coinbase Products](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/products.csv) 11 | 12 | ## Case 1: 13 | An SMA Strategy is Backtested using Bitcoin-US Dollar (BTC-USD) data from Coinbase Pro public data-endpoint. 14 | ![BTC-USD SMA Plot](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/4-BTC-USD_LongVsSMA.png) 15 | ``` 16 | Cumulative: 17 | Returns 1.199487 18 | Strategy 1.027011 19 | 20 | Volatility: 21 | Returns 0.140443 22 | Strategy 0.140796 23 | ``` 24 | 25 | The log returns for BTC-USD are shown in a histogram, illustrating 'fat-tails'. 26 | ![BTC-USD Returns](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/5-BTC-USD_Hist.png) 27 | 28 | ## Case 2: 29 | Linear Ordinary Least Squares (OLS) Regression is backtested and compared to daily returns 30 | ![OLS Backtest Results](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/7-BTC-USD_OLS_ReturnsVsDirection.png) 31 | ``` 32 | Cumulative: 33 | returns 1.254766 34 | strat_ols_1 1.322613 35 | strat_ols_2 1.229719 36 | ``` 37 | 38 | ## Case 3: 39 | k-means clustering is demonstrated and compared to OLS results 40 | ![k-means clustering](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/9-BTC-USD_K-Means_ClusteringVsBenchmark.png) 41 | ``` 42 | Cumulative: 43 | returns 1.254766 44 | strat_clus 1.396107 45 | ``` 46 | ## Jupyter Lab Notebook: 47 | The notebook contains all the source code to reproduce the results summarized above. The data files need to be saved in the same directory as the notebook. 48 | The data files can be refreshed using the Coinbase Pro public data end points, which are referenced in comments through-out the notebook. 49 | [Notebook](https://github.com/joe-wojniak/PythonForFinance/blob/main/Trading%20Strategies/coinbaseSandboxBacktesting.ipynb) 50 | 51 | -------------------------------------------------------------------------------- /Data Visualization/PFF_Ch7_Fig_7-27_OHLC_EUR-USDwBB.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Data Visualization/PFF_Ch7_Fig_7-27_OHLC_EUR-USDwBB.PNG -------------------------------------------------------------------------------- /Financial Time Series/PFF_8-4_Resampling_Plot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_8-4_Resampling_Plot.PNG -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_8-1.png -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_Fig_8-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_Fig_8-2.png -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_Fig_8-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_Fig_8-3.png -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_joy-plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_joy-plot.png -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_rollingStat1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_rollingStat1.PNG -------------------------------------------------------------------------------- /Financial Time Series/PFF_Ch8_rollingStat2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Financial Time Series/PFF_Ch8_rollingStat2.PNG -------------------------------------------------------------------------------- /Financial Time Series/data.csv: -------------------------------------------------------------------------------- 1 | ,amzn.us.txt,msft.us.txt,aapl.us.txt,intc.us.txt,gs_n.us.txt,spy.us.txt,ivv.us.txt,vxx.us.txt,eu.c.txt,xauusd.txt,gdx.us.txt,gld.us.txt 2 | 2020-01-02,1898.01,159.35,74.572,59.79600000000001,26.77,320.27,321.49,14.51,1.11716,1529.14,29.35,143.95 3 | 2020-01-03,1874.97,157.37,73.85,59.068000000000005,26.88,317.84,319.02,15.29,1.11575,1549.02,29.17,145.86 4 | 2020-01-06,1902.88,157.78,74.435,58.901,26.68,319.05,320.28,15.08,1.11965,1565.74,29.22,147.39 5 | 2020-01-07,1906.86,156.33,74.08800000000001,57.919,26.65,318.16,319.39,15.01,1.11515,1574.26,29.5,147.97 6 | 2020-01-08,1891.97,158.83,75.278,57.957,26.89,319.85,321.02,14.8,1.11046,1556.42,28.35,146.86 7 | 2020-01-09,1901.05,160.81,76.88,58.282,26.78,322.02,323.19,14.18,1.1105,1552.39,28.04,146.03 8 | 2020-01-10,1883.16,160.06,77.05,57.928999999999995,26.8701,321.09,322.29,14.12,1.11182,1560.3,28.45,146.91 9 | 2020-01-13,1891.3,162.0,78.69800000000001,58.567,27.0,323.3,324.55,13.76,1.11331,1547.89,27.77,145.82 10 | 2020-01-14,1869.44,160.85,77.635,58.41,27.07,322.81,324.04,13.66,1.1126200000000002,1546.44,28.26,145.69 11 | 2020-01-15,1862.02,161.9,77.3,57.928999999999995,27.09,323.54,324.78,13.62,1.11491,1556.29,28.79,146.54 12 | 2020-01-16,1877.94,164.86,78.27,58.637,27.04,326.22,327.48,13.29,1.11353,1552.48,28.67,146.31 13 | 2020-01-17,1864.72,165.78,79.138,58.577,27.11,327.24,328.55,13.32,1.10896,1557.07,28.42,146.58 14 | 2020-01-21,1892.0,165.19,78.6,59.511,27.18,326.6,327.85,13.43,1.10811,1558.21,28.95,146.74 15 | 2020-01-22,1887.46,164.39,78.88,61.653,27.36,326.64,327.92,13.54,1.1091799999999998,1558.9,28.84,146.79 16 | 2020-01-23,1884.58,165.41,79.26,62.233000000000004,26.87,327.02,328.32,13.49,1.1053,1562.91,28.66,147.12 17 | 2020-01-24,1861.64,163.73,79.032,67.294,26.96,324.1,325.34,14.24,1.10228,1571.66,29.22,147.98 18 | 2020-01-27,1828.34,161.0,76.71,64.563,26.8002,318.91,320.06,15.71,1.10181,1582.04,29.08,148.99 19 | 2020-01-28,1853.25,164.15,78.878,66.155,26.66,322.25,323.47,14.83,1.10212,1567.29,28.31,147.66 20 | 2020-01-29,1858.0,166.71,80.53,65.191,26.57,321.99,323.24,14.85,1.10094,1576.82,28.86,148.46 21 | 2020-01-30,1870.68,171.42,80.41199999999999,65.328,26.6,323.04,324.21,14.6,1.1030200000000001,1574.47,28.73,148.47 22 | 2020-01-31,2008.72,168.89,76.85,62.833,26.56,317.16,318.45,16.2,1.1093600000000001,1586.88,28.99,149.33 23 | 2020-02-03,2004.2,173.01,76.638,63.31399999999999,26.43,319.52,320.73,15.58,1.1060299999999998,1576.74,28.56,148.36 24 | 2020-02-04,2049.67,178.7,79.168,64.336,26.37,324.39,325.71,14.83,1.10436,1552.91,28.05,146.43 25 | 2020-02-05,2039.87,178.48,79.81,66.185,26.36,328.15,329.34,14.2,1.09981,1555.99,28.05,146.61 26 | 2020-02-06,2050.23,182.18,80.745,66.263,26.31,329.24,330.59,14.09,1.09804,1566.73,28.4,147.4 27 | 2020-02-07,2079.28,182.44,79.65,65.206,26.29,327.49,328.8,14.38,1.0943399999999999,1570.19,27.93,147.79 28 | 2020-02-10,2133.91,187.22,80.025,65.572,26.3259,329.94,331.24,14.1,1.09105,1572.15,28.39,148.17 29 | 2020-02-11,2150.8,182.99,79.545,66.579,26.39,330.51,331.85,14.12,1.09148,1567.93,28.43,147.66 30 | 2020-02-12,2160.0,183.26,81.432,66.628,26.38,332.64,333.98,13.4,1.08722,1566.09,28.12,147.54 31 | 2020-02-13,2149.87,182.26,80.852,66.609,26.44,332.28,333.56,13.69,1.08389,1576.01,28.32,148.38 32 | 2020-02-14,2134.87,183.9,80.872,66.441,26.47,332.82,334.05,13.52,1.08294,1582.65,28.31,149.0 33 | 2020-02-18,2155.67,185.75,79.392,65.324,26.49,331.96,333.25,13.76,1.07905,1601.62,29.23,150.91 34 | 2020-02-19,2170.22,186.31,80.542,66.283,26.26,333.54,334.85,13.56,1.08044,1611.76,29.75,151.79 35 | 2020-02-20,2153.1,183.47,79.718,64.643,26.35,332.17,333.47,14.04,1.0783,1619.63,29.75,152.41 36 | 2020-02-21,2095.97,177.66,77.91,63.547,26.33,328.74,330.06,14.9,1.08457,1643.37,30.65,154.7 37 | 2020-02-24,2009.29,170.01,74.21,60.998999999999995,26.1,317.85,319.03,17.67,1.08524,1659.41,31.05,156.09 38 | 2020-02-25,1972.74,167.2,71.695,58.993,26.03,308.22,309.47,19.34,1.088,1635.21,29.97,153.3 39 | 2020-02-26,1979.59,169.29,72.832,58.915,26.05,307.08,308.28,18.93,1.08796,1640.98,29.87,153.97 40 | 2020-02-27,1884.3,157.36,68.072,55.141999999999996,26.1,293.3,294.28,22.0,1.09994,1645.0,28.15,154.0 41 | 2020-02-28,1883.75,161.17,68.032,54.836000000000006,25.81,292.06,291.53,22.81,1.10248,1577.4,26.22,148.38 42 | 2020-03-02,1953.95,171.89,74.365,57.463,26.26,304.71,305.81,22.03,1.11322,1589.37,27.29,149.2 43 | 2020-03-03,1908.99,163.65,72.005,55.281000000000006,26.291999999999998,295.98,297.03,24.45,1.11701,1640.92,28.68,153.89 44 | 2020-03-04,1975.83,169.67,75.345,57.956,26.27,308.42,310.09,23.0,1.1134,1636.97,29.13,154.16 45 | 2020-03-05,1924.03,165.41,72.9,56.258,26.32,298.18,299.26,26.68,1.1234899999999999,1672.21,29.82,157.49 46 | 2020-03-06,1901.09,160.73,71.932,55.083,26.21,293.25,294.27,29.82,1.12836,1673.21,29.41,157.55 47 | 2020-03-09,1800.61,149.84,66.242,50.223,25.86,270.34,270.73,36.96,1.14357,1678.8,27.31,157.81 48 | 2020-03-10,1891.82,160.08,71.015,53.315,25.93,284.33,285.26,34.11,1.1279700000000001,1650.35,27.49,154.48 49 | 2020-03-11,1820.86,152.83,68.55,51.023,25.75,270.47,271.39,38.66,1.12678,1637.57,25.17,153.93 50 | 2020-03-12,1676.61,138.34,61.778,44.979,25.01,244.6,245.27,47.36,1.1183,1577.89,22.31,147.79 51 | 2020-03-13,1785.0,158.01,69.18,53.75899999999999,25.24,265.5,267.53,43.2,1.11001,1529.75,19.0,143.28 52 | 2020-03-16,1689.15,134.71,60.282,44.06,24.45,236.44,236.56,59.21,1.11785,1500.985,22.49,141.64 53 | 2020-03-17,1807.84,145.81,62.931999999999995,49.463,24.77,249.22,251.6,58.51,1.09961,1530.37,25.5,143.56 54 | 2020-03-18,1830.0,139.67,61.39,47.023999999999994,23.49,236.59,237.6,69.0,1.09127,1476.99,19.68,140.7 55 | 2020-03-19,1880.93,141.97,60.92,45.373999999999995,23.64,237.1,238.47,62.0,1.06894,1471.175,21.27,138.04 56 | 2020-03-20,1846.09,136.64,57.052,45.266000000000005,24.01,226.88,227.73,60.55,1.06923,1497.36,20.55,140.11 57 | 2020-03-23,1902.83,135.27,55.84,48.968999999999994,22.16,221.08,221.32,51.13,1.07244,1556.695,21.93,146.3 58 | 2020-03-24,1940.1,147.57,61.442,51.755,24.235,241.11,242.24,47.15,1.07861,1630.05,25.15,153.4 59 | 2020-03-25,1885.84,146.16,61.105,50.628,25.1796,244.73,245.33,50.9,1.08806,1613.095,26.31,151.3 60 | 2020-03-26,1955.49,155.3,64.32,54.855,25.47,259.01,260.11,45.62,1.1030799999999998,1627.46,25.85,153.24 61 | 2020-03-27,1900.1,148.92,61.658,51.725,25.135,251.3,252.04,50.6,1.1134899999999999,1620.75,24.37,152.25 62 | 2020-03-30,1963.95,159.39,63.415,54.806000000000004,25.29,259.46,260.1,48.63,1.10445,1622.6,23.93,152.92 63 | 2020-03-31,1949.72,156.89,63.285,53.453,25.42,255.6,256.16,46.25,1.10315,1575.15,23.04,148.05 64 | 2020-04-01,1907.7,151.32,59.958,51.24100000000001,24.96,244.09,244.67,50.22,1.09609,1591.81,24.03,149.45 65 | 2020-04-02,1918.83,154.46,60.958,53.68,25.13,249.72,250.41,47.36,1.08556,1613.65,25.04,151.9 66 | 2020-04-03,1906.59,153.03,60.082,53.463,25.15,246.11,246.87,45.45,1.0797,1622.39,24.95,152.65 67 | 2020-04-06,1997.59,164.41,65.32300000000001,57.71,25.44,262.65,263.5,42.21,1.07918,1662.1,26.34,156.88 68 | 2020-04-07,2011.6,162.65,64.565,57.68,25.61,262.91,263.61,43.41,1.08907,1648.9,26.09,156.04 69 | 2020-04-08,2043.0,164.27,66.218,58.253,25.78,271.74,272.62,42.4,1.0855,1646.0,26.2,154.65 70 | 2020-04-09,2042.76,164.28,66.69800000000001,56.43600000000001,26.38,275.87,276.71,41.57,1.09289,1683.25,28.95,158.69 71 | 2020-04-13,2168.87,164.65,68.005,57.976000000000006,26.05,273.35,274.05,40.71,1.09069,1715.07,30.78,161.41 72 | 2020-04-14,2283.32,172.8,71.44,59.912,26.34,281.41,282.36,37.41,1.0979999999999999,1727.15,30.75,162.68 73 | 2020-04-15,2307.68,170.99,70.788,58.144,26.23,275.44,276.16,40.41,1.09096,1717.13,30.15,161.85 74 | 2020-04-16,2408.19,176.12,71.352,60.041000000000004,26.21,276.76,277.63,40.74,1.08385,1717.7,30.92,161.71 75 | 2020-04-17,2375.0,177.67,70.382,59.61600000000001,26.03,284.24,285.09,39.05,1.08711,1684.1,29.94,158.57 76 | 2020-04-20,2393.61,174.15,68.92,58.451,26.24,279.23,280.01,42.84,1.08619,1696.05,30.74,159.7 77 | 2020-04-21,2328.12,166.95,66.792,55.665,25.99,270.76,271.49,46.42,1.08569,1686.1,30.56,158.61 78 | 2020-04-22,2363.49,172.62,68.712,59.358999999999995,26.35,276.76,277.64,44.19,1.0823,1714.12,32.51,161.73 79 | 2020-04-23,2399.45,170.53,68.45,58.312,26.24,276.74,277.56,44.06,1.07755,1730.33,33.42,163.34 80 | 2020-04-24,2410.22,173.65,70.425,58.528999999999996,26.06,280.61,281.45,41.52,1.08197,1728.03,33.93,162.64 81 | 2020-04-27,2376.0,173.15,70.475,58.736999999999995,25.95,284.65,285.7,38.46,1.0827799999999999,1714.135,33.79,161.56 82 | 2020-04-28,2314.08,168.93,69.332,58.026,25.94,283.33,284.17,39.07,1.0819,1708.08,33.81,160.84 83 | 2020-04-29,2372.71,176.51,71.608,61.038000000000004,26.44,290.76,291.59,36.705,1.08675,1713.32,34.03,161.73 84 | 2020-04-30,2474.0,178.28,73.12,59.24100000000001,26.36,288.05,288.65,37.87,1.09512,1686.855,32.26,158.8 85 | 2020-05-01,2286.04,173.67,71.942,56.762,26.22,280.43,281.08,41.19,1.0972,1699.23,33.29,159.78 86 | 2020-05-04,2315.99,177.91,72.96,57.275,26.26,281.19,282.16,40.26,1.09039,1701.74,33.99,160.34 87 | 2020-05-05,2317.8,179.83,74.058,58.026,26.12,283.79,284.65,38.67,1.08356,1705.93,34.79,161.02 88 | 2020-05-06,2351.26,181.59,74.82,58.781000000000006,25.98,281.87,282.78,39.21,1.07939,1685.78,33.7,158.95 89 | 2020-05-07,2367.61,182.65,75.592,58.771,26.0408,285.28,286.14,37.47,1.08321,1715.94,35.03,161.39 90 | 2020-05-08,2379.61,183.73,77.392,59.266999999999996,26.05,289.99,290.92,34.95,1.0835,1707.15,34.86,160.42 91 | 2020-05-11,2409.0,185.77,78.61,59.724,26.12,290.05,290.91,32.62,1.08059,1698.0,33.89,159.42 92 | 2020-05-12,2356.95,181.56,77.712,57.996,26.08,284.27,284.98,35.9,1.0847200000000001,1702.82,33.84,160.04 93 | 2020-05-13,2367.92,178.82,76.775,57.351000000000006,26.0,279.24,280.09,39.65,1.0817299999999999,1715.08,34.08,161.58 94 | 2020-05-14,2388.85,179.6,77.245,58.681000000000004,25.76,282.59,283.45,37.47,1.08041,1730.22,35.16,163.01 95 | 2020-05-15,2409.78,182.21,76.79,57.887,25.92,283.88,284.67,36.6,1.08165,1742.98,36.57,163.93 96 | 2020-05-18,2426.26,183.96,78.598,59.516000000000005,26.005,292.53,293.48,34.24,1.09121,1732.275,35.93,162.69 97 | 2020-05-19,2449.33,182.68,78.145,59.883,26.02,289.53,290.46,36.03,1.09222,1745.07,37.21,164.26 98 | 2020-05-20,2497.94,185.21,79.665,62.674,26.01,294.45,295.41,33.7,1.0978,1748.32,36.61,164.65 99 | 2020-05-21,2446.74,182.99,79.07,61.562,26.26,292.41,293.25,34.68,1.0948799999999999,1727.38,35.66,162.25 100 | 2020-05-22,2436.88,183.07,79.58,61.835,26.3,292.97,293.85,34.35,1.08955,1735.38,35.55,163.21 101 | 2020-05-26,2421.86,181.13,79.04,61.919,26.26,296.58,297.57,33.83,1.0981100000000001,1711.13,34.08,160.89 102 | 2020-05-27,2410.39,181.37,79.385,63.131,26.2,300.99,301.91,33.15,1.1007799999999999,1709.4,33.71,161.18 103 | 2020-05-28,2401.1,180.96,79.42,61.284,25.96,300.44,301.32,34.48,1.10764,1718.64,34.0,161.72 104 | 2020-05-29,2442.37,182.81,79.342,62.505,26.15,301.77,302.54,33.13,1.11046,1731.5,34.32,162.91 105 | 2020-06-01,2471.04,182.39,80.318,61.443000000000005,26.31,303.0,304.02,33.42,1.1135,1739.58,35.38,163.66 106 | 2020-06-02,2472.41,184.46,80.69,61.701,26.36,305.51,306.55,32.49,1.1168,1727.76,34.09,162.6 107 | 2020-06-03,2478.4,184.91,81.132,61.512,26.36,309.57,310.68,31.09,1.1233,1699.75,32.83,159.6 108 | 2020-06-04,2460.6,182.48,80.435,62.545,26.3,308.75,309.64,30.84,1.13363,1714.09,33.11,161.28 109 | 2020-06-05,2483.0,186.75,82.725,63.906000000000006,26.48,316.67,317.71,29.17,1.1290200000000001,1681.82,32.46,158.01 110 | 2020-06-08,2524.06,187.91,83.215,63.24100000000001,26.45,320.5,321.59,29.82,1.1294,1698.47,32.78,159.72 111 | 2020-06-09,2600.86,189.34,85.84200000000001,62.615,26.3,318.11,319.23,31.27,1.13382,1715.28,33.06,161.26 112 | 2020-06-10,2647.45,196.37,88.05,63.43899999999999,26.33,316.33,317.34,31.13,1.13743,1737.76,34.53,163.57 113 | 2020-06-11,2557.96,185.82,83.825,59.297,26.08,298.1,298.98,41.61,1.12973,1727.12,32.83,162.39 114 | 2020-06-12,2545.02,187.29,84.54799999999999,58.93,25.94,301.66,302.72,38.71,1.12542,1731.37,32.64,162.62 115 | 2020-06-15,2572.68,188.48,85.59200000000001,59.695,25.98,304.48,305.5,37.72,1.13225,1725.11,33.51,162.33 116 | 2020-06-16,2615.27,193.1,87.86200000000001,59.993,26.03,310.34,311.37,36.87,1.1263,1726.72,32.64,162.25 117 | 2020-06-17,2640.98,193.77,87.74,60.082,25.95,309.05,309.97,36.98,1.1243299999999998,1726.82,32.85,162.56 118 | 2020-06-18,2653.98,195.85,87.775,59.675,25.96,309.17,310.21,36.31,1.12042,1722.82,32.43,162.24 119 | 2020-06-19,2675.01,194.68,87.272,59.218,26.0,307.41,308.32,36.89,1.11772,1742.52,33.55,164.03 120 | 2020-06-22,2713.82,200.09,89.555,59.685,26.05,309.38,310.53,35.09,1.12601,1754.44,34.87,165.09 121 | 2020-06-23,2764.41,201.42,91.46799999999999,59.516000000000005,26.11,310.8,311.79,34.45,1.13078,1768.38,35.37,166.48 122 | 2020-06-24,2734.4,197.36,89.852,58.691,26.09,302.88,303.92,36.72,1.12501,1760.92,34.74,165.9 123 | 2020-06-25,2754.58,199.86,91.045,58.115,26.215,306.12,307.1,35.39,1.12171,1763.72,34.96,165.8 124 | 2020-06-26,2692.87,195.86,88.24799999999999,57.111999999999995,26.09,298.85,299.77,37.5,1.12178,1770.97,35.19,166.54 125 | 2020-06-29,2680.38,197.96,90.28200000000001,57.876999999999995,26.06,303.25,304.27,35.68,1.1241700000000001,1772.92,35.56,166.63 126 | 2020-06-30,2758.82,203.02,91.035,59.426,25.95,307.13,308.29,33.95,1.12331,1780.96,36.68,167.37 127 | 2020-07-01,2878.7,204.21,90.86200000000001,58.413000000000004,26.08,309.28,310.4,32.89,1.12507,1770.15,36.56,166.62 128 | 2020-07-02,2890.3,205.76,90.86200000000001,58.731,26.15,310.98,312.03,32.32,1.12389,1775.33,36.17,166.98 129 | 2020-07-06,3057.04,210.19,93.295,59.138000000000005,26.19,315.78,316.82,32.28,1.1308,1784.55,36.84,167.98 130 | 2020-07-07,3000.12,207.75,93.005,57.917,26.27,312.53,313.55,33.39,1.12732,1794.85,37.73,169.04 131 | 2020-07-08,3081.11,212.32,95.17,58.215,26.4,314.92,315.89,32.55,1.13294,1808.87,38.96,170.09 132 | 2020-07-09,3182.63,213.8,95.51,58.026,26.33,313.13,314.29,33.06,1.12846,1803.56,38.79,169.63 133 | 2020-07-10,3200.0,213.15,95.74799999999999,59.128,26.48,316.32,317.45,32.15,1.12994,1799.54,38.4,169.19 134 | 2020-07-13,3104.0,206.57,95.305,58.185,26.3892,313.58,314.64,35.24,1.1342299999999998,1802.69,37.13,169.4 135 | 2020-07-14,3084.0,207.85,96.882,58.582,26.4001,317.65,318.72,33.21,1.13992,1809.33,38.59,170.19 136 | 2020-07-15,3008.87,207.54,97.55,58.632,26.52,320.57,321.69,32.26,1.14109,1810.26,38.67,170.34 137 | 2020-07-16,2999.9,203.43,96.35,58.74100000000001,26.61,319.51,320.58,31.76,1.13832,1797.22,38.08,168.73 138 | 2020-07-17,2961.97,202.39,96.155,59.595,26.73,320.44,321.53,30.62,1.14278,1810.12,39.31,170.12 139 | 2020-07-20,3196.84,211.09,98.18,60.736999999999995,26.79,323.03,324.18,29.23,1.14467,1817.83,40.38,170.94 140 | 2020-07-21,3138.29,208.25,96.825,60.291000000000004,26.78,323.71,324.77,29.49,1.15265,1841.77,40.91,173.0 141 | 2020-07-22,3099.91,211.24,97.098,60.638000000000005,26.62,325.56,326.68,29.16,1.15696,1872.97,41.75,175.63 142 | 2020-07-23,2986.55,202.05,92.678,59.993,26.28,321.67,322.73,30.07,1.15957,1887.175,40.96,177.18 143 | 2020-07-24,3008.91,200.81,92.448,50.248999999999995,26.25,319.6,320.67,30.17,1.16549,1902.59,41.83,178.7 144 | 2020-07-27,3055.21,203.36,94.64,49.236000000000004,26.12,321.93,323.03,29.34,1.1751200000000002,1940.18,43.84,182.23 145 | 2020-07-28,3000.33,201.53,93.085,48.908,26.01,319.89,321.04,29.17,1.1715,1960.38,43.56,183.75 146 | 2020-07-29,3033.53,203.57,94.87,47.746,26.17,323.82,324.9,28.57,1.1791200000000002,1969.48,43.13,185.13 147 | 2020-07-30,3051.88,203.41,96.01799999999999,47.666000000000004,26.18,322.67,323.78,29.2,1.18469,1951.13,41.63,183.76 148 | 2020-07-31,3164.68,204.52,106.07,47.408,26.08,325.22,326.33,28.52,1.1775,1974.2,42.94,185.43 149 | 2020-08-03,3111.89,216.02,108.74,47.974,26.1504,327.48,328.61,28.46,1.17619,1976.85,42.54,185.64 150 | 2020-08-04,3138.83,212.78,109.47,48.799,26.16,328.74,329.8,27.62,1.18022,2016.51,44.48,189.59 151 | 2020-08-05,3205.03,212.43,109.86,48.59,26.17,330.78,331.94,27.04,1.18628,2038.635,44.53,191.35 152 | 2020-08-06,3225.0,215.83,113.7,48.57,26.15,333.0,334.19,26.74,1.18766,2065.35,44.23,193.89 153 | 2020-08-07,3167.46,211.97,111.11,48.03,26.1,333.24,334.43,26.53,1.1785700000000001,2031.69,42.74,190.81 154 | 2020-08-10,3148.16,207.75,112.73,49.22,26.19,334.23,335.43,25.75,1.17364,2027.6,42.39,190.15 155 | 2020-08-11,3080.67,202.89,109.38,48.19,26.2,331.47,332.62,26.95,1.1739700000000002,1912.05,39.05,179.94 156 | 2020-08-12,3162.24,208.69,113.01,49.19,26.11,336.09,337.26,25.53,1.17842,1916.125,39.23,179.1 157 | 2020-08-13,3161.02,208.2,115.01,48.56,26.12,335.49,336.69,25.51,1.18131,1954.13,40.63,183.33 158 | 2020-08-14,3148.02,208.4,114.91,48.89,26.24,335.5,336.66,25.44,1.18413,1943.52,40.35,182.54 159 | 2020-08-17,3182.41,209.77,114.61,48.93,26.12,336.56,337.74,24.59,1.1869,1981.05,42.96,186.5 160 | 2020-08-18,3312.49,210.98,115.56,48.65,26.4,337.29,338.46,24.33,1.1930399999999999,1997.75,42.66,188.18 161 | 2020-08-19,3260.48,209.7,115.71,48.33,26.29,335.88,337.08,24.77,1.1837799999999998,1935.93,41.01,182.24 162 | 2020-08-20,3297.37,214.58,118.28,49.17,26.25,336.93,338.12,24.5,1.18598,1947.87,41.97,183.5 163 | 2020-08-21,3284.72,213.02,124.37,49.28,26.17,338.13,339.3,24.63,1.17954,1938.02,40.89,182.03 164 | 2020-08-24,3307.46,213.69,125.86,49.14,26.24,341.55,342.79,24.52,1.1787100000000001,1928.845,40.65,181.0 165 | 2020-08-25,3346.49,216.47,124.82,49.43,26.25,342.75,343.92,24.39,1.18341,1928.46,40.58,181.22 166 | 2020-08-26,3441.85,221.15,126.52,49.55,26.26,346.18,347.42,24.93,1.18303,1954.2,41.6,183.36 167 | 2020-08-27,3400.0,226.58,125.01,49.4,26.27,346.94,348.17,25.72,1.18213,1925.41,40.66,181.24 168 | 2020-08-28,3401.8,228.91,124.81,50.43,26.19,349.18,350.4,25.58,1.19046,1963.49,41.96,184.39 169 | 2020-08-31,3450.96,225.53,129.04,50.95,26.12,347.92,349.18,26.85,1.19354,1967.82,42.27,184.83 170 | 2020-09-01,3499.12,227.27,134.18,50.79,26.33,351.19,352.45,27.27,1.19113,1970.42,41.67,185.05 171 | 2020-09-02,3531.45,231.65,131.4,52.25,26.28,356.27,357.61,27.94,1.18543,1943.06,41.76,182.62 172 | 2020-09-03,3368.0,217.3,120.88,50.39,26.19,344.01,345.25,31.71,1.1851,1930.675,41.29,181.14 173 | 2020-09-04,3294.62,214.25,120.96,50.08,26.1,341.2,342.42,28.92,1.18377,1934.81,40.86,181.64 174 | 2020-09-08,3149.84,202.66,112.82,48.91,25.92,331.88,333.11,28.28,1.17735,1931.68,40.58,181.29 175 | 2020-09-09,3268.61,211.29,117.32,49.62,25.99,338.43,339.63,26.83,1.1802700000000002,1946.79,42.34,183.05 176 | 2020-09-10,3175.11,205.37,113.49,48.96,25.97,332.56,333.7,27.13,1.18139,1946.06,41.58,182.46 177 | 2020-09-11,3116.22,204.03,112.0,49.28,25.985,332.73,333.86,25.52,1.18462,1942.445,41.16,182.45 178 | 2020-09-14,3102.97,205.41,115.355,49.41,26.01,337.11,338.3,25.07,1.18629,1956.39,42.79,183.89 179 | 2020-09-15,3156.13,208.78,115.54,50.0,26.18,338.81,340.02,25.03,1.1845700000000001,1954.05,42.79,183.45 180 | 2020-09-16,3078.1,205.05,112.13,50.37,26.3,337.47,338.67,24.96,1.1816,1959.84,42.85,183.97 181 | 2020-09-17,3008.73,202.91,110.34,50.32,26.2503,334.5,335.76,24.39,1.18475,1944.0,42.1,182.96 182 | 2020-09-18,2954.91,200.39,106.84,49.89,26.32,330.65,331.83,24.37,1.18385,1950.94,41.36,183.2 183 | 2020-09-21,2960.47,202.54,110.08,49.72,26.1,326.97,328.14,25.16,1.17706,1912.58,39.84,179.52 184 | 2020-09-22,3128.99,207.42,111.81,49.95,26.05,330.3,331.46,25.36,1.17077,1900.05,40.02,178.65 185 | 2020-09-23,2999.86,200.59,107.12,48.82,25.92,322.64,323.75,26.7,1.1659700000000002,1863.6,37.63,174.79 186 | 2020-09-24,3019.79,203.19,108.22,49.16,25.78,323.5,324.6,26.19,1.1669,1867.83,38.69,175.44 187 | 2020-09-25,3095.13,207.82,112.28,49.94,25.97,328.73,329.88,25.54,1.16296,1862.66,38.42,174.94 188 | 2020-09-28,3174.05,209.44,114.96,51.43,26.13,334.19,335.36,25.36,1.1665,1881.56,38.87,176.7 189 | 2020-09-29,3144.88,207.26,114.09,51.19,26.08,332.37,333.51,24.94,1.17425,1896.56,39.37,178.19 190 | 2020-09-30,3148.73,210.33,115.81,51.78,25.94,334.89,336.06,24.9,1.17204,1885.8,39.16,177.12 191 | 2020-10-01,3221.26,212.46,116.79,52.24,26.12,337.04,338.24,25.01,1.17434,1906.05,39.57,178.7 192 | 2020-10-02,3125.0,206.19,113.02,51.01,26.12,333.84,335.05,25.78,1.17162,1901.81,38.97,178.54 193 | 2020-10-05,3199.2,210.38,116.5,51.69,26.18,339.76,340.9,24.97,1.1783,1913.56,39.57,179.41 194 | 2020-10-06,3099.96,205.91,113.16,51.37,26.18,334.93,336.06,25.32,1.1734,1878.07,38.11,177.3 195 | 2020-10-07,3195.69,209.83,115.08,52.67,26.21,340.76,341.9,24.49,1.17613,1887.4,38.35,177.22 196 | 2020-10-08,3190.55,210.58,114.97,53.37,26.19,343.78,344.98,23.51,1.1757799999999998,1893.77,38.97,177.85 197 | 2020-10-09,3286.65,215.81,116.97,52.82,26.18,346.85,348.01,22.29,1.18238,1928.47,40.78,181.08 198 | 2020-10-12,3442.93,221.4,124.4,53.88,26.19,352.43,353.69,21.85,1.18113,1922.64,40.67,180.56 199 | 2020-10-13,3443.63,222.86,121.1,53.83,26.25,350.13,351.39,22.15,1.1744299999999999,1891.11,40.25,177.72 200 | 2020-10-14,3363.71,220.86,121.19,53.55,26.24,347.93,349.19,21.92,1.17454,1901.83,40.96,178.27 201 | 2020-10-15,3338.65,219.66,120.71,53.85,26.34,347.5,348.76,22.11,1.17061,1908.16,40.3,178.92 202 | 2020-10-16,3272.71,219.66,119.02,54.16,26.55,347.29,348.45,22.27,1.17134,1899.34,39.83,178.3 203 | 2020-10-19,3207.21,214.22,115.98,54.58,26.53,342.01,343.22,23.24,1.17667,1904.36,39.16,178.39 204 | 2020-10-20,3217.01,214.65,117.51,53.43,26.5528,343.38,344.57,23.23,1.18206,1906.44,39.46,179.25 205 | 2020-10-21,3184.94,214.8,116.87,53.5,26.55,342.73,343.9,22.68,1.18549,1924.685,39.92,180.6 206 | 2020-10-22,3176.4,214.89,115.75,53.9,26.54,344.61,345.86,22.15,1.18179,1904.07,39.19,178.83 207 | 2020-10-23,3204.4,216.23,115.04,48.2,26.21,345.78,346.96,22.17,1.18584,1903.55,38.82,178.64 208 | 2020-10-26,3207.04,210.08,115.05,46.72,26.15,339.39,340.59,24.17,1.1808299999999998,1902.385,38.21,178.55 209 | 2020-10-27,3286.33,213.25,116.6,45.64,26.17,338.22,339.43,24.27,1.17943,1907.77,38.83,179.02 210 | 2020-10-28,3162.78,202.68,111.2,44.25,26.05,326.66,327.88,27.73,1.1745700000000001,1876.675,36.52,176.13 211 | 2020-10-29,3211.01,204.72,115.32,44.11,25.95,329.98,331.15,25.75,1.16726,1868.57,36.95,175.4 212 | 2020-10-30,3036.15,202.47,108.86,44.28,26.15,326.54,327.62,26.53,1.1640700000000002,1878.38,37.49,176.2 213 | 2020-11-02,3004.48,202.33,108.77,44.46,26.09,330.2,331.36,25.94,1.16401,1895.8,38.63,177.91 214 | 2020-11-03,3048.41,206.43,110.44,44.85,25.87,336.03,337.28,24.51,1.17147,1909.73,39.37,178.92 215 | 2020-11-04,3241.16,216.39,114.95,45.7,26.21,343.54,344.73,22.35,1.17208,1902.99,38.47,178.82 216 | 2020-11-05,3322.0,223.29,119.03,45.68,26.11,350.24,351.47,21.98,1.18282,1949.74,41.22,182.93 217 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | 179 | Copyright 2020 Joe Wojniak 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python For Finance 2 | A repo of examples inspired by the book *Python for Finance* (Py4Fi) 3 | 4 | Book: *[Python for Finance](https://www.amazon.com/Python-Finance-Mastering-Data-Driven/dp/1492024333/ref=sr_1_3?crid=Q54A45DY5MHP&dchild=1&keywords=python+for+finance+by+yves+hilpisch&qid=1604860574&sprefix=python+for+finance+yves%2Caps%2C196&sr=8-3), 2nd ed, Hilpisch, Yves* 5 | 6 | For a comprehensive online training program covering Python for algorithmic trading see http://certificate.tpq.io. 7 | 8 | ![OHLC_EUR-USDwBB](https://github.com/joe-wojniak/PythonForFinance/blob/main/Data%20Visualization/PFF_Ch7_Fig_7-27_OHLC_EUR-USDwBB.PNG) 9 | 10 | ## Why does this repo exist? 11 | 12 | I started reading Python for Finance after being introduced to it through an online class on [Udacity](https://www.udacity.com/), Machine Learning for Trading. 13 | I was unable to locate the dataset used in the book that demonstrates the code samples, so I began searching for available sources of similar data. 14 | This repository is a result of that search. 15 | 16 | ## Update: 2020-Nov-15 17 | 18 | Yves has a companion repository for the book here: [py4fi2nd](https://github.com/yhilpisch/py4fi2nd) 19 | 20 | Working the example code has been a great learning experience for me, which wouldn't have been possible without the book. -jw 21 | 22 | ## How do I use this repo? 23 | 24 | 1. Download the source code (*.ipynb) 25 | 2. Download the data from [Stooq](https://stooq.com/db/h/) 26 | 27 | *The source code requires the following folder structure:* 28 | 29 | | Path | Comments | 30 | | --------- | -------- | 31 | | ./ | Run Jupyter Lab or Python from this level in the folder structure | 32 | | ./data/daily/us/ | Data files are located under this branch | 33 | | ./data/daily/world/ | More data files | 34 | 35 | ## OR 36 | 3. use data.csv from this repository 37 | 38 | ## File Folder Structure 39 | Each topic has a Jupyter Lab notebook (*.ipynb) under a topic folder. The markdown (*.md) files provide a summary of each topic. Each topic builds upon the previous topic, so it is helpful to skim Data Visualization before covering Financial Time Series; skim Financial Time Series before Trading Strategies, etc. 40 | 41 | ### Topics: 42 | * Data Visualization (Chapter 7, Py4Fi) 43 | * Financial Time Series (Chapter 8, Py4Fi) 44 | * Trading Strategies (Chapter 15, Py4Fi) 45 | 46 | ### Markdown Summaries 47 | * 07-0 Data Visualization.md 48 | * 08-1 Time Series Line Plots.md 49 | * 08-2 08-3 Bar Plot and Cum Log Returns.md 50 | * 08-4 Resampling.md 51 | * 08-5 08-6 08-7 Rolling Statistics.md 52 | * 15-0 Trading Strategies (Coinbase Pro Sandbox / Cryptocurrency Demo) 53 | 54 | *.ipynb files will need to be modified to load the data.csv file instead of utilizing the folder structure from the stooq.com zip file 55 | 56 | +dataLoader.ipynb will load the Stooq raw data files from the stooq.com unzipped folder structure and format them into the data.csv file 57 | 58 | ## Please Star This Repo! 59 | *It will heLp others to find it* 60 | 61 | ## Disclaimer 62 | This information is provided for educational purposes and does not constitute financial or trading advice. 63 | The information is provided without warranty, expressed or implied. 64 | This work is provided under the Apache 2.0 license included in this repository (the "License".) 65 | -------------------------------------------------------------------------------- /Trading Strategies/3-BTC-USD_SMA_Position.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Trading Strategies/3-BTC-USD_SMA_Position.png -------------------------------------------------------------------------------- /Trading Strategies/4-BTC-USD_LongVsSMA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Trading Strategies/4-BTC-USD_LongVsSMA.png -------------------------------------------------------------------------------- /Trading Strategies/5-BTC-USD_Hist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Trading Strategies/5-BTC-USD_Hist.png -------------------------------------------------------------------------------- /Trading Strategies/7-BTC-USD_OLS_ReturnsVsDirection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Trading Strategies/7-BTC-USD_OLS_ReturnsVsDirection.png -------------------------------------------------------------------------------- /Trading Strategies/9-BTC-USD_K-Means_ClusteringVsBenchmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joe-wojniak/PythonForFinance/0ba463a3cc816daa3d495df8029c7034ee6d9258/Trading Strategies/9-BTC-USD_K-Means_ClusteringVsBenchmark.png -------------------------------------------------------------------------------- /Trading Strategies/BTC-USD.csv: -------------------------------------------------------------------------------- 1 | ,time,low,high,open,close,volume 2 | 0,1609430400,28580.0,28854.99,28820.87,28712.59,303.16719628 3 | 1,1609426800,28389.95,28868.35,28390.1,28820.86,1420.89879307 4 | 2,1609423200,28028.37,28573.96,28573.44,28390.1,1436.86509196 5 | 3,1609419600,28000.0,28671.28,28664.27,28573.44,2136.04342496 6 | 4,1609416000,28450.0,29010.7,28923.33,28674.91,1100.14028971 7 | 5,1609412400,28898.77,29152.47,29150.05,28923.78,685.07507198 8 | 6,1609408800,28967.63,29191.42,28998.98,29150.04,542.76776598 9 | 7,1609405200,28578.47,29100.0,28940.38,28999.63,803.08300318 10 | 8,1609401600,28794.45,29231.5,29175.08,28940.37,837.02316213 11 | 9,1609398000,28890.0,29297.0,28890.0,29175.08,691.50457 12 | 10,1609394400,28870.06,29090.67,28987.99,28891.74,804.75083196 13 | 11,1609390800,28751.06,29044.34,29041.36,28988.0,945.30200765 14 | 12,1609387200,28856.0,29200.0,29042.02,29044.34,947.57327642 15 | 13,1609383600,28725.63,29169.99,28731.03,29041.93,1025.7983985 16 | 14,1609380000,28578.0,28821.18,28764.68,28736.71,918.07898984 17 | 15,1609376400,28181.05,29190.33,29124.2,28765.81,2540.94451988 18 | 16,1609372800,28891.33,29321.9,28897.42,29124.2,1887.24031851 19 | 17,1609369200,28650.0,28937.93,28725.35,28897.42,802.4355811 20 | 18,1609365600,28600.0,28935.48,28916.17,28727.61,1321.16546435 21 | 19,1609362000,28567.08,29018.26,28798.16,28916.46,1452.96013192 22 | 20,1609358400,28627.63,29000.0,28806.78,28798.16,1982.42117029 23 | 21,1609354800,28469.0,28937.34,28525.78,28806.79,2248.93309212 24 | 22,1609351200,28250.27,28544.0,28251.9,28523.63,1418.62929357 25 | 23,1609347600,28045.75,28316.27,28140.07,28250.28,1201.60678675 26 | 24,1609344000,27900.0,28231.1,28153.9,28140.04,1005.69546615 27 | 25,1609340400,28027.2,28289.33,28187.98,28153.9,891.38797017 28 | 26,1609336800,27834.99,28187.99,27858.42,28187.99,813.62900743 29 | 27,1609333200,27756.75,28151.91,27847.01,27853.3,818.32038079 30 | 28,1609329600,27566.25,27940.75,27817.37,27847.51,465.38600355 31 | 29,1609326000,27564.35,27926.65,27833.22,27825.44,614.15696972 32 | 30,1609322400,27724.65,28051.09,27842.49,27833.22,423.82194901 33 | 31,1609318800,27311.73,27880.14,27719.73,27842.54,1013.99486134 34 | 32,1609315200,27600.0,28566.59,28359.63,27718.79,1679.15161865 35 | 33,1609311600,28255.0,28580.0,28356.26,28359.63,823.44586389 36 | 34,1609308000,27916.18,28543.0,28005.2,28364.54,1426.20166844 37 | 35,1609304400,27811.2,28133.87,27900.02,28007.56,1095.08275222 38 | 36,1609300800,27700.0,28176.56,28046.0,27900.02,1196.82071018 39 | 37,1609297200,27797.9,28200.0,27986.55,28030.91,1695.19087565 40 | 38,1609293600,27481.74,27995.0,27593.31,27986.54,1143.42399327 41 | 39,1609290000,27511.06,27699.0,27612.08,27593.3,782.08233124 42 | 40,1609286400,27366.34,27820.0,27366.35,27605.86,1865.55287311 43 | 41,1609282800,26925.0,27396.77,27029.13,27366.35,942.31300307 44 | 42,1609279200,26900.0,27113.4,26904.2,27029.13,674.8268683 45 | 43,1609275600,26805.0,27189.0,26975.4,26901.58,1300.55962666 46 | 44,1609272000,26764.34,26986.14,26917.9,26975.4,939.98334945 47 | 45,1609268400,26519.99,26919.84,26575.52,26919.66,1012.78783256 48 | 46,1609264800,26563.49,26741.78,26609.13,26574.06,870.31230953 49 | 47,1609261200,26223.57,26612.61,26401.28,26605.38,1134.53835381 50 | 48,1609257600,26206.25,26586.96,26583.38,26403.98,1147.29132924 51 | 49,1609254000,26410.52,26716.61,26639.1,26583.39,916.67889861 52 | 50,1609250400,26568.76,26878.14,26862.71,26638.65,986.62514966 53 | 51,1609246800,26718.98,26950.0,26861.18,26862.7,751.20961542 54 | 52,1609243200,26810.03,27065.88,26846.76,26860.87,910.07952217 55 | 53,1609239600,26544.61,26874.12,26706.41,26851.2,648.8983882 56 | 54,1609236000,26563.0,26824.68,26563.04,26706.42,490.52325793 57 | 55,1609232400,26503.32,26710.23,26618.95,26565.79,474.50791601 58 | 56,1609228800,26373.74,26725.31,26373.75,26609.21,598.43237498 59 | 57,1609225200,26107.0,26415.52,26317.39,26373.75,531.65629869 60 | 58,1609221600,26215.31,26484.37,26406.04,26318.66,531.81853206 61 | 59,1609218000,25833.73,26448.57,26448.57,26407.17,1529.11072733 62 | 60,1609214400,26166.0,26539.98,26408.81,26439.24,1186.48773173 63 | 61,1609210800,26400.0,26830.06,26830.01,26409.04,1022.66540392 64 | 62,1609207200,26696.38,26916.13,26787.81,26830.01,451.51895834 65 | 63,1609203600,26616.24,26816.75,26775.68,26797.43,737.60761528 66 | 64,1609200000,26727.78,27073.02,27039.39,26780.07,877.67127503 67 | 65,1609196400,26794.68,27113.83,26856.05,27040.36,1154.69684426 68 | 66,1609192800,26400.0,26895.46,26586.62,26856.05,1288.56601363 69 | 67,1609189200,26585.0,26920.93,26826.84,26588.26,719.70886329 70 | 68,1609185600,26645.01,27073.32,26965.92,26826.84,1358.90660978 71 | 69,1609182000,26914.86,27150.0,26983.03,26965.92,679.06404273 72 | 70,1609178400,26880.93,27200.0,27115.67,26982.81,862.90788271 73 | 71,1609174800,27002.76,27200.0,27030.27,27114.27,792.64117305 74 | 72,1609171200,26708.43,27141.45,26880.9,27030.27,1018.70143626 75 | 73,1609167600,26775.94,27295.67,27251.85,26883.52,1587.73653799 76 | 74,1609164000,27103.49,27342.99,27227.1,27249.18,1061.39516632 77 | 75,1609160400,27067.21,27477.0,27067.21,27227.1,1076.47112556 78 | 76,1609156800,26677.71,27096.22,26817.33,27067.21,643.33727682 79 | 77,1609153200,26579.71,26848.75,26677.88,26817.34,448.58034916 80 | 78,1609149600,26521.41,26886.09,26794.85,26682.78,545.30985332 81 | 79,1609146000,26715.41,26958.41,26903.31,26794.16,259.63801255 82 | 80,1609142400,26678.45,27041.86,26972.38,26905.0,508.55137001 83 | 81,1609138800,26972.68,27178.59,27032.37,26972.68,892.20731811 84 | 82,1609135200,26845.0,27079.77,26925.88,27039.99,541.23745707 85 | 83,1609131600,26800.0,27135.0,26843.75,26927.17,487.50362592 86 | 84,1609128000,26820.0,27297.0,27265.66,26846.52,825.43176691 87 | 85,1609124400,26900.5,27272.84,27066.07,27269.36,821.40181626 88 | 86,1609120800,26881.99,27137.31,27042.66,27066.33,855.32347921 89 | 87,1609117200,26774.69,27339.99,26845.45,27032.69,1418.37430786 90 | 88,1609113600,26086.19,26955.44,26255.16,26845.64,1418.01702094 91 | 89,1609110000,26205.11,26677.72,26493.96,26258.65,1276.38185369 92 | 90,1609106400,26255.0,26637.69,26390.97,26493.96,950.25761812 93 | 91,1609102800,25772.55,26444.65,26184.83,26388.94,2844.36442243 94 | 92,1609099200,26134.79,27070.0,27058.39,26194.55,1839.56535711 95 | 93,1609095600,26951.01,27274.0,27024.2,27058.39,804.29465546 96 | 94,1609092000,26526.0,27025.0,26767.36,27024.07,1223.29475663 97 | 95,1609088400,26636.12,27056.81,27056.81,26767.36,1186.85176376 98 | 96,1609084800,26580.0,27446.7,27347.7,27051.87,2693.20303375 99 | 97,1609081200,27000.0,27459.67,27309.24,27347.69,1489.41402411 100 | 98,1609077600,27220.33,27749.51,27490.85,27307.34,1564.49125579 101 | 99,1609074000,27032.84,27550.0,27202.41,27495.48,1139.20603384 102 | 100,1609070400,26362.67,27623.19,27623.19,27189.51,2359.82878026 103 | 101,1609066800,26809.76,28387.0,27803.51,27612.27,2587.05855359 104 | 102,1609063200,27666.96,27869.5,27790.0,27803.47,382.47235521 105 | 103,1609059600,27201.23,27825.02,27445.37,27792.72,927.87787713 106 | 104,1609056000,27348.0,27922.0,27608.96,27441.45,1086.90745426 107 | 105,1609052400,27430.41,27794.64,27607.4,27608.96,971.50282849 108 | 106,1609048800,26870.83,27711.0,26879.0,27613.26,2569.71634882 109 | 107,1609045200,26691.93,26928.0,26731.51,26879.01,515.12086503 110 | 108,1609041600,26553.89,26810.0,26555.48,26730.88,607.49995204 111 | 109,1609038000,26435.85,26648.66,26571.85,26555.25,705.26398254 112 | 110,1609034400,26500.0,26861.29,26624.97,26571.84,1064.05626881 113 | 111,1609030800,26523.86,26950.0,26739.53,26632.55,1592.91940759 114 | 112,1609027200,26475.92,26855.0,26482.64,26740.47,1245.45801051 115 | 113,1609023600,26348.16,26662.61,26391.17,26475.35,962.90105532 116 | 114,1609020000,26055.0,26783.99,26685.25,26391.16,2194.61765094 117 | 115,1609016400,26323.22,26822.0,26402.74,26691.24,2801.13192636 118 | 116,1609012800,25811.59,26471.0,25938.67,26402.75,2061.37977372 119 | 117,1609009200,25581.01,25973.67,25616.41,25938.67,1036.32800744 120 | 118,1609005600,25575.06,25850.0,25778.62,25617.83,780.29329814 121 | 119,1609002000,25651.88,25990.0,25850.0,25778.6,1531.44041762 122 | 120,1608998400,25563.92,25918.87,25621.2,25849.07,2705.46490014 123 | 121,1608994800,25319.43,25673.4,25367.26,25621.27,1611.99127678 124 | 122,1608991200,24863.93,25423.95,24934.37,25367.17,2077.34084306 125 | 123,1608987600,24789.98,24973.98,24882.07,24932.02,371.86006502 126 | 124,1608984000,24734.07,24925.27,24822.2,24881.59,312.34815251 127 | 125,1608980400,24700.01,24868.03,24725.28,24827.53,268.58176794 128 | 126,1608976800,24541.98,24890.95,24853.42,24726.77,435.18502304 129 | 127,1608973200,24726.0,24901.31,24897.01,24853.43,275.42392676 130 | 128,1608969600,24756.96,24980.0,24783.23,24899.89,243.71730211 131 | 129,1608966000,24717.0,24933.89,24831.32,24784.55,275.88869781 132 | 130,1608962400,24655.01,24863.65,24704.18,24826.91,226.74842598 133 | 131,1608958800,24656.07,24842.11,24807.11,24705.29,474.49232705 134 | 132,1608955200,24750.0,24923.93,24893.03,24808.46,659.33564321 135 | 133,1608951600,24820.94,25000.0,24832.71,24893.03,1202.20619085 136 | 134,1608948000,24764.32,24967.38,24895.46,24832.71,969.94042088 137 | 135,1608944400,24490.01,24900.0,24595.01,24895.46,732.31337582 138 | 136,1608940800,24515.0,24770.3,24704.71,24600.0,571.50968748 139 | 137,1608937200,24515.0,24770.95,24572.16,24704.71,835.51211215 140 | 138,1608933600,24359.72,24624.8,24411.04,24574.99,640.67386579 141 | 139,1608930000,24209.01,24446.02,24446.02,24413.58,584.86577642 142 | 140,1608926400,24344.62,24480.44,24440.0,24446.01,409.52363511 143 | 141,1608922800,24300.43,24533.07,24360.0,24440.0,474.37339304 144 | 142,1608919200,24141.69,24418.42,24181.3,24358.41,513.45768343 145 | 143,1608915600,24000.0,24250.0,24083.6,24186.68,554.73336104 146 | 144,1608912000,24011.0,24294.99,24019.58,24089.67,616.13951071 147 | 145,1608908400,23950.69,24226.13,24035.87,24019.59,723.50831632 148 | 146,1608904800,23803.69,24519.85,24499.35,24032.58,1324.34424701 149 | 147,1608901200,24303.02,24541.24,24330.51,24497.11,779.04195877 150 | 148,1608897600,24322.49,24623.26,24545.54,24334.41,981.82783769 151 | 149,1608894000,23895.7,24660.0,23969.4,24545.52,2065.96045895 152 | 150,1608890400,23736.73,24011.05,23920.13,23969.41,945.63276152 153 | 151,1608886800,23648.0,23962.23,23674.15,23920.13,634.83893927 154 | 152,1608883200,23592.12,23867.81,23642.95,23670.44,515.64314068 155 | 153,1608879600,23509.94,23669.92,23617.13,23639.13,710.79278374 156 | 154,1608876000,23541.28,23669.85,23593.0,23617.7,182.33605554 157 | 155,1608872400,23523.88,23634.55,23595.16,23593.01,190.58473889 158 | 156,1608868800,23438.0,23599.53,23463.93,23596.38,230.12579308 159 | 157,1608865200,23416.0,23541.18,23440.01,23465.79,290.51864009 160 | 158,1608861600,23440.75,23605.24,23592.69,23446.56,746.90447154 161 | 159,1608858000,23540.31,23641.65,23612.79,23589.62,226.13841477 162 | 160,1608854400,23555.04,23805.0,23718.61,23620.5,614.9979389 163 | 161,1608850800,23607.0,23785.0,23708.24,23717.96,880.11839787 164 | 162,1608847200,23384.84,23740.0,23409.71,23704.86,609.81093864 165 | 163,1608843600,23373.99,23561.89,23523.47,23409.45,552.86856496 166 | 164,1608840000,23264.65,23556.43,23299.87,23523.19,409.57880698 167 | 165,1608836400,23268.13,23412.59,23321.33,23298.81,260.72876599 168 | 166,1608832800,23283.91,23426.0,23384.32,23321.33,478.97367242 169 | 167,1608829200,23169.49,23470.0,23230.36,23386.44,646.57424841 170 | 168,1608825600,23116.67,23350.0,23233.26,23228.45,624.86364567 171 | 169,1608822000,23083.81,23295.78,23221.77,23231.89,2714.6290423 172 | 170,1608818400,23161.97,23427.5,23387.44,23223.78,673.49559521 173 | 171,1608814800,23136.45,23399.99,23206.44,23384.19,466.20585909 174 | 172,1608811200,23021.76,23297.66,23216.01,23216.0,598.16458884 175 | 173,1608807600,23050.09,23286.79,23115.93,23216.04,392.22090408 176 | 174,1608804000,23123.62,23344.64,23344.64,23125.69,303.22613156 177 | 175,1608800400,23252.51,23461.35,23441.92,23342.09,401.01125392 178 | 176,1608796800,23065.13,23472.11,23168.19,23439.19,506.0115059 179 | 177,1608793200,22835.05,23217.17,22938.43,23168.2,503.40149975 180 | 178,1608789600,22871.86,23142.13,23053.44,22936.98,414.17039295 181 | 179,1608786000,22913.33,23138.43,23022.96,23056.49,573.8872301 182 | 180,1608782400,22792.1,23043.94,22887.8,23022.96,528.02075543 183 | 181,1608778800,22712.89,22961.24,22806.87,22886.8,798.18218703 184 | 182,1608775200,22750.0,23227.0,23204.75,22809.99,908.96823227 185 | 183,1608771600,22862.22,23207.78,23064.42,23204.75,826.78763768 186 | 184,1608768000,22791.5,23232.69,23226.18,23064.42,1368.85309441 187 | 185,1608764400,23163.53,23473.0,23284.95,23228.35,899.64255001 188 | 186,1608760800,22600.0,23379.61,23299.22,23284.96,2467.08231684 189 | 187,1608757200,23144.0,23501.08,23483.23,23299.97,1088.4206824 190 | 188,1608753600,23403.01,23620.68,23541.91,23488.3,902.16342307 191 | 189,1608750000,23486.43,23606.7,23603.61,23541.91,697.83177393 192 | 190,1608746400,23550.78,23678.87,23595.47,23603.62,623.65208576 193 | 191,1608742800,23350.0,23640.46,23399.01,23595.48,788.90223936 194 | 192,1608739200,23376.0,23648.41,23449.53,23399.0,1246.38508876 195 | 193,1608735600,23333.35,23887.46,23755.99,23449.53,1042.38200453 196 | 194,1608732000,23532.46,23821.78,23599.68,23755.99,739.23513997 197 | 195,1608728400,23449.43,24090.0,23845.24,23599.66,1792.38513656 198 | 196,1608724800,22938.59,23850.0,23073.17,23845.35,1622.69191248 199 | 197,1608721200,22808.73,23456.15,23423.52,23078.83,2174.20709548 200 | 198,1608717600,23383.71,23722.96,23622.49,23423.52,681.1914645 201 | 199,1608714000,23416.55,23651.18,23485.07,23620.51,279.05309039 202 | 200,1608710400,23433.91,23655.46,23545.25,23486.8,338.9639883 203 | 201,1608706800,23311.01,23622.31,23482.86,23545.51,454.61035426 204 | 202,1608703200,23425.01,23590.63,23507.44,23489.78,419.5107925 205 | 203,1608699600,23326.08,23519.61,23437.24,23510.68,934.04942302 206 | 204,1608696000,23419.29,23693.01,23691.59,23437.26,747.57044325 207 | 205,1608692400,23602.58,23771.34,23627.01,23691.59,609.0044221 208 | 206,1608688800,23559.98,23726.68,23693.82,23627.01,765.43881445 209 | 207,1608685200,23636.97,24042.0,23981.46,23694.7,1169.38374736 210 | 208,1608681600,23710.01,24000.0,23824.13,23981.46,928.36373095 211 | 209,1608678000,23643.08,23839.78,23723.62,23823.27,920.08459405 212 | 210,1608674400,23350.0,23769.99,23440.9,23723.66,661.28271846 213 | 211,1608670800,23329.33,23542.19,23436.72,23440.9,1127.32271977 214 | 212,1608667200,23288.65,23451.04,23409.97,23436.66,790.75920242 215 | 213,1608663600,23323.62,23520.7,23435.25,23409.97,669.31708765 216 | 214,1608660000,23341.36,23519.76,23341.59,23434.72,605.00267544 217 | 215,1608656400,23232.53,23434.96,23349.79,23341.58,842.84893694 218 | 216,1608652800,23221.69,23500.0,23342.06,23348.71,1001.91046782 219 | 217,1608649200,23295.64,23620.56,23439.18,23345.43,1513.07247289 220 | 218,1608645600,23333.81,23628.34,23487.05,23439.56,1167.27316514 221 | 219,1608642000,23112.02,23537.13,23182.43,23487.05,904.59381974 222 | 220,1608638400,23071.11,23290.0,23119.1,23182.44,690.76890449 223 | 221,1608634800,22699.94,23151.92,22699.94,23119.1,555.5153733 224 | 222,1608631200,22615.0,22816.15,22779.22,22699.94,356.23114414 225 | 223,1608627600,22592.16,22809.29,22685.85,22779.32,470.50369775 226 | 224,1608624000,22380.05,22738.08,22653.67,22681.95,933.00967535 227 | 225,1608620400,22501.0,22827.21,22747.79,22652.39,537.43965653 228 | 226,1608616800,22560.0,22864.97,22685.9,22747.79,470.422732 229 | 227,1608613200,22568.22,22971.62,22955.56,22685.35,590.37588244 230 | 228,1608609600,22861.17,23072.27,22861.17,22955.56,447.96535199 231 | 229,1608606000,22739.83,22978.63,22966.11,22861.09,584.92050043 232 | 230,1608602400,22744.0,22966.11,22769.28,22964.8,782.81125205 233 | 231,1608598800,22501.0,22893.38,22580.0,22768.35,941.5742728 234 | 232,1608595200,22512.24,22941.87,22729.4,22580.0,1032.64492671 235 | 233,1608591600,22710.72,23235.8,23179.29,22729.4,968.19961103 236 | 234,1608588000,23099.48,23243.51,23150.0,23181.98,499.37284586 237 | 235,1608584400,22778.78,23170.27,22842.4,23149.95,1027.2427543 238 | 236,1608580800,22762.79,22940.05,22827.07,22842.41,632.19368975 239 | 237,1608577200,22703.58,22952.55,22821.83,22825.04,782.83428429 240 | 238,1608573600,22670.12,22980.0,22725.88,22821.82,1049.69381274 241 | 239,1608570000,22667.77,23261.05,23234.55,22725.88,1528.05781361 242 | 240,1608566400,22993.09,23354.74,23125.89,23235.59,1248.03980581 243 | 241,1608562800,22890.14,23243.88,23191.13,23126.53,1213.43246232 244 | 242,1608559200,22628.17,23225.0,22837.0,23191.13,1594.74943648 245 | 243,1608555600,22254.33,22864.89,22308.46,22837.0,1597.50438001 246 | 244,1608552000,21913.84,22659.99,22646.84,22308.45,2418.87388282 247 | 245,1608548400,22294.0,22829.26,22425.51,22646.11,1327.29372945 248 | 246,1608544800,22422.95,23486.02,23456.46,22425.51,2544.68240415 249 | 247,1608541200,23335.0,23733.84,23656.27,23460.28,851.50440381 250 | 248,1608537600,23637.7,24072.26,23974.83,23656.28,611.34058846 251 | 249,1608534000,23903.04,24035.23,23935.75,23974.83,592.10446901 252 | 250,1608530400,23709.15,23941.04,23924.57,23935.75,294.80238254 253 | 251,1608526800,23856.0,23987.41,23909.5,23913.91,378.14934847 254 | 252,1608523200,23814.59,24118.75,23958.28,23909.78,683.84205685 255 | 253,1608519600,23680.0,24047.08,23880.17,23958.28,1064.14919064 256 | 254,1608516000,23670.74,23911.59,23681.28,23881.58,912.10358018 257 | 255,1608512400,23612.09,23753.37,23696.77,23681.28,947.92159587 258 | 256,1608508800,23310.0,23725.07,23476.51,23697.25,960.55003108 259 | 257,1608505200,23459.99,23605.6,23525.68,23476.51,624.31728013 260 | 258,1608501600,23111.12,23633.96,23394.61,23525.68,1481.62094412 261 | 259,1608498000,23374.96,24210.0,24188.59,23384.92,1867.1139637 262 | 260,1608494400,23883.0,24300.0,23953.6,24190.45,1242.20159372 263 | 261,1608490800,23800.6,24018.47,23886.37,23955.14,750.81066896 264 | 262,1608487200,23678.62,23900.0,23747.19,23886.37,547.24714324 265 | 263,1608483600,23645.24,23827.14,23645.45,23747.31,476.39996202 266 | 264,1608480000,23645.24,23936.0,23893.2,23645.24,579.89398249 267 | 265,1608476400,23542.96,23930.0,23554.73,23894.93,543.40567384 268 | 266,1608472800,23518.79,23682.0,23575.33,23550.23,326.61921204 269 | 267,1608469200,23316.74,23601.01,23481.78,23576.72,402.17808337 270 | 268,1608465600,23352.46,23594.0,23558.91,23483.05,342.61757143 271 | 269,1608462000,23404.56,23618.11,23404.56,23563.94,248.05489026 272 | 270,1608458400,23377.64,23649.99,23603.88,23409.47,292.7241752 273 | 271,1608454800,23528.36,23758.09,23699.66,23602.77,340.75575086 274 | 272,1608451200,23562.55,23799.0,23648.84,23699.66,325.43232983 275 | 273,1608447600,23435.79,23662.1,23530.8,23648.45,224.509893 276 | 274,1608444000,23481.01,23636.85,23500.01,23530.8,307.22195616 277 | 275,1608440400,23421.76,23596.59,23460.62,23500.01,498.56944152 278 | 276,1608436800,23100.0,23483.0,23370.01,23460.22,581.88683811 279 | 277,1608433200,23218.53,23458.06,23458.06,23370.01,432.69362179 280 | 278,1608429600,23321.01,23559.41,23512.18,23458.05,459.85949918 281 | 279,1608426000,23411.23,23563.85,23514.75,23509.61,475.08015579 282 | 280,1608422400,23261.82,23852.01,23850.0,23514.75,1592.20324068 283 | 281,1608418800,23751.0,23943.02,23943.02,23849.99,595.56694979 284 | 282,1608415200,23858.22,24012.95,23994.59,23942.94,585.03470881 285 | 283,1608411600,23810.08,24090.0,23940.08,23994.59,1013.23050199 286 | 284,1608408000,23828.02,23953.11,23835.02,23940.07,834.93077005 287 | 285,1608404400,23700.0,23922.91,23865.81,23838.26,750.45147594 288 | 286,1608400800,23601.0,23950.56,23935.29,23866.82,1166.65159411 289 | 287,1608397200,23801.0,24156.31,24009.61,23937.4,1356.77408038 290 | 288,1608393600,23488.33,24200.0,23591.89,24009.61,3717.50988714 291 | 289,1608390000,23326.3,23684.0,23327.59,23591.89,1511.18783867 292 | 290,1608386400,23100.01,23660.74,23208.04,23328.01,2351.80404599 293 | 291,1608382800,23027.64,23210.0,23073.45,23208.04,464.98939767 294 | 292,1608379200,22914.07,23155.0,22914.07,23074.04,435.6772004 295 | 293,1608375600,22903.01,23084.72,23043.16,22914.23,432.69851005 296 | 294,1608372000,22973.19,23105.86,22997.35,23043.16,389.61521787 297 | 295,1608368400,22957.6,23062.05,23008.27,22997.35,406.83330372 298 | 296,1608364800,22770.0,23013.09,22882.83,23008.26,541.13861599 299 | 297,1608361200,22840.7,23068.45,22890.53,22882.83,435.23802608 300 | 298,1608357600,22869.69,23040.56,22989.49,22891.89,433.8943496 301 | 299,1608354000,22941.15,23102.57,23069.62,22989.49,442.72367546 302 | -------------------------------------------------------------------------------- /Trading Strategies/products.csv: -------------------------------------------------------------------------------- 1 | ,id,base_currency,quote_currency,base_min_size,base_max_size,quote_increment,base_increment,display_name,min_market_funds,max_market_funds,margin_enabled,post_only,limit_only,cancel_only,trading_disabled,status,status_message 2 | 0,LINK-BTC,LINK,BTC,0.10000000,6500.00000000,0.00000001,0.01000000,LINK/BTC,0.0001,6.0,False,False,False,False,False,online, 3 | 1,BAND-EUR,BAND,EUR,0.10000000,18000.00000000,0.00010000,0.01000000,BAND/EUR,1.0,100000,False,False,False,False,False,online, 4 | 2,EOS-BTC,EOS,BTC,0.10000000,50000.00000000,0.00000100,0.10000000,EOS/BTC,0.001,30,False,False,False,False,False,online, 5 | 3,ETH-DAI,ETH,DAI,0.01000000,700.00000000,0.01000000,0.00010000,ETH/DAI,10,100000,False,False,False,False,False,online, 6 | 4,ETC-USD,ETC,USD,0.10000000,20000.00000000,0.00100000,0.00000001,ETC/USD,10,100000,False,False,False,False,False,online, 7 | 5,COMP-USD,COMP,USD,0.01000000,1700.00000000,0.01000000,0.00100000,COMP/USD,1.0,100000,False,False,False,False,False,online, 8 | 6,WBTC-BTC,WBTC,BTC,0.00010000,10.00000000,0.00010000,0.00000001,WBTC/BTC,0.0001,10,False,False,True,False,False,online, 9 | 7,OMG-GBP,OMG,GBP,1.00000000,150000.00000000,0.00010000,0.10000000,OMG/GBP,1,100000,False,False,False,False,False,online, 10 | 8,XLM-EUR,XLM,EUR,1.00000000,600000.00000000,0.00000100,1.00000000,XLM/EUR,0.1,100000,False,False,False,False,False,online, 11 | 9,FIL-EUR,FIL,EUR,0.01000000,3400.00000000,0.00010000,0.00100000,FIL/EUR,1.0,84000,False,False,False,False,False,online, 12 | 10,ETH-BTC,ETH,BTC,0.01000000,2400.00000000,0.00001000,0.00000001,ETH/BTC,0.001,80,False,False,False,False,False,online, 13 | 11,MANA-USDC,MANA,USDC,1.00000000,2800000.00000000,0.00000100,1.00000000,MANA/USDC,0.1,100000,False,False,True,False,False,online, 14 | 12,ZEC-USD,ZEC,USD,0.01000000,1200.00000000,0.01000000,0.00001000,ZEC/USD,1.0,100000,False,False,False,False,False,online, 15 | 13,UMA-BTC,UMA,BTC,0.01000000,4500.00000000,0.00000001,0.00100000,UMA/BTC,0.0001,10,False,False,False,False,False,online, 16 | 14,XTZ-GBP,XTZ,GBP,1.00000000,100000.00000000,0.00001000,0.01000000,XTZ/GBP,10,100000,False,False,False,False,False,online, 17 | 15,CGLD-BTC,CGLD,BTC,0.10000000,34000.00000000,0.00000001,0.01000000,CGLD/BTC,0.0001,10,False,False,False,False,False,online, 18 | 16,BTC-USDC,BTC,USDC,0.00100000,280.00000000,0.01000000,0.00000001,BTC/USDC,10,1000000,False,False,False,False,False,online, 19 | 17,BAND-USD,BAND,USD,0.10000000,18000.00000000,0.00010000,0.01000000,BAND/USD,1.0,100000,False,False,False,False,False,online, 20 | 18,FIL-GBP,FIL,GBP,0.01000000,3400.00000000,0.00010000,0.00100000,FIL/GBP,1.0,75000,False,False,False,False,False,online, 21 | 19,COMP-BTC,COMP,BTC,0.01000000,1700.00000000,0.00000100,0.00100000,COMP/BTC,0.0001,10,False,False,False,False,False,online, 22 | 20,ALGO-BTC,ALGO,BTC,1.00000000,260000.00000000,0.00000001,1.00000000,ALGO/BTC,0.0001,6.0,False,False,False,False,False,online, 23 | 21,SNX-EUR,SNX,EUR,0.10000000,19000.00000000,0.00010000,0.00100000,SNX/EUR,1.0,92000,False,False,False,False,False,online, 24 | 22,GRT-USD,GRT,USD,10.00000000,2500000.00000000,0.00010000,0.01000000,GRT/USD,10.0,2500000,False,False,False,False,False,online, 25 | 23,LTC-USD,LTC,USD,0.10000000,4000.00000000,0.01000000,0.00000001,LTC/USD,10,250000,False,False,False,False,False,online, 26 | 24,ETC-BTC,ETC,BTC,0.10000000,5000.00000000,0.00000100,0.00000001,ETC/BTC,0.001,30,False,False,False,False,False,online, 27 | 25,KNC-USD,KNC,USD,1.00000000,500000.00000000,0.00010000,0.10000000,KNC/USD,1,100000,False,False,False,False,False,online, 28 | 26,ALGO-EUR,ALGO,EUR,1.00000000,500000.00000000,0.00010000,1.00000000,ALGO/EUR,10,100000,False,False,False,False,False,online, 29 | 27,CGLD-USD,CGLD,USD,0.10000000,34000.00000000,0.00010000,0.01000000,CGLD/USD,1.0,100000,False,False,False,False,False,online, 30 | 28,REN-BTC,REN,BTC,1.00000000,460000.00000000,0.00000001,1.00000000,REN/BTC,0.0001,10,False,False,False,False,False,online, 31 | 29,BCH-EUR,BCH,EUR,0.01000000,100.00000000,0.01000000,0.00000001,BCH/EUR,10,300000,False,False,False,False,False,online, 32 | 30,GRT-EUR,GRT,EUR,10.00000000,2500000.00000000,0.00010000,0.01000000,GRT/EUR,10.0,92000,False,False,False,False,False,online, 33 | 31,XLM-USD,XLM,USD,1.00000000,600000.00000000,0.00000100,1.00000000,XLM/USD,0.1,100000,False,False,False,False,False,online, 34 | 32,LRC-BTC,LRC,BTC,1.00000000,440000.00000000,0.00000001,1.00000000,LRC/BTC,0.0001,6.0,False,False,False,False,False,online, 35 | 33,NMR-EUR,NMR,EUR,0.01000000,3900.00000000,0.00010000,0.00100000,NMR/EUR,1.0,100000,False,False,False,False,False,online, 36 | 34,NMR-USD,NMR,USD,0.01000000,3900.00000000,0.00010000,0.00100000,NMR/USD,1.0,100000,False,False,False,False,False,online, 37 | 35,BAND-GBP,BAND,GBP,0.10000000,18000.00000000,0.00010000,0.01000000,BAND/GBP,1.0,100000,False,False,False,False,False,online, 38 | 36,UMA-EUR,UMA,EUR,0.01000000,4500.00000000,0.00100000,0.00100000,UMA/EUR,1.0,100000,False,False,False,False,False,online, 39 | 37,CVC-USDC,CVC,USDC,1.00000000,2000000.00000000,0.00000100,1.00000000,CVC/USDC,0.1,100000,False,False,True,False,False,online, 40 | 38,ZRX-USD,ZRX,USD,1.00000000,600000.00000000,0.00000100,0.00001000,ZRX/USD,10,100000,False,False,False,False,False,online, 41 | 39,YFI-BTC,YFI,BTC,0.00001000,4.20000000,0.00001000,0.00000100,YFI/BTC,0.0001,6.0,False,False,False,False,False,online, 42 | 40,WBTC-USD,WBTC,USD,0.00010000,10.00000000,0.01000000,0.00000001,WBTC/USD,1.0,100000,False,False,True,False,False,online, 43 | 41,OMG-USD,OMG,USD,1.00000000,500000.00000000,0.00010000,0.10000000,OMG/USD,1,100000,False,False,False,False,False,online, 44 | 42,ZEC-USDC,ZEC,USDC,0.01000000,5000.00000000,0.01000000,0.00000001,ZEC/USDC,10,250000,False,False,False,False,False,online, 45 | 43,BCH-GBP,BCH,GBP,0.01000000,250.00000000,0.01000000,0.00000001,BCH/GBP,10,500000,False,False,False,False,False,online, 46 | 44,ZEC-BTC,ZEC,BTC,0.01000000,1500.00000000,0.00000100,0.00010000,ZEC/BTC,0.001,30,False,False,False,False,False,online, 47 | 45,DAI-USDC,DAI,USDC,1.00000000,100000.00000000,0.00000100,0.00001000,DAI/USDC,5,100000,False,False,True,False,False,online, 48 | 46,SNX-GBP,SNX,GBP,0.10000000,19000.00000000,0.00010000,0.00100000,SNX/GBP,1.0,82000,False,False,False,False,False,online, 49 | 47,ETC-EUR,ETC,EUR,0.10000000,20000.00000000,0.00100000,0.00000001,ETC/EUR,10,100000,False,False,False,False,False,online, 50 | 48,DASH-USD,DASH,USD,0.01000000,1500.00000000,0.00100000,0.00100000,DASH/USD,1,100000,False,False,False,False,False,online, 51 | 49,NU-EUR,NU,EUR,10.00000000,1300000.00000000,0.00010000,0.00000100,NU/EUR,1.0,84000,False,False,False,False,False,online, 52 | 50,BTC-EUR,BTC,EUR,0.00100000,200.00000000,0.01000000,0.00000001,BTC/EUR,10,600000,False,False,False,False,False,online, 53 | 51,REP-USD,REP,USD,0.10000000,5000.00000000,0.01000000,0.00000100,REP/USD,10,30000,False,False,False,False,False,online, 54 | 52,LINK-ETH,LINK,ETH,1.00000000,90000.00000000,0.00000001,0.01000000,LINK/ETH,0.01,400,False,False,False,False,False,online, 55 | 53,LOOM-USDC,LOOM,USDC,1.00000000,2500000.00000000,0.00000100,1.00000000,LOOM/USDC,0.1,100000,False,False,True,False,False,online, 56 | 54,UNI-BTC,UNI,BTC,0.10000000,25000.00000000,0.00000001,0.10000000,UNI/BTC,0.0001,6.0,False,False,True,False,False,online, 57 | 55,MKR-BTC,MKR,BTC,0.00100000,240.00000000,0.00001000,0.00000100,MKR/BTC,0.0001,11,False,False,False,False,False,online, 58 | 56,BAT-ETH,BAT,ETH,1.00000000,300000.00000000,0.00000001,1.00000000,BAT/ETH,0.01,500,False,False,False,False,False,online, 59 | 57,GNT-USDC,GNT,USDC,1.00000000,1500000.00000000,0.00000100,1.00000000,GNT/USDC,0.01,100000,False,False,True,False,False,online, 60 | 58,BAL-USD,BAL,USD,0.10000000,6700.00000000,0.00001000,0.00100000,BAL/USD,1.0,100000,False,False,False,False,False,online, 61 | 59,OXT-USD,OXT,USD,1.00000000,500000.00000000,0.00010000,1.00000000,OXT/USD,1,100000,False,False,False,False,False,online, 62 | 60,AAVE-GBP,AAVE,GBP,0.01000000,1200.00000000,0.00100000,0.00100000,AAVE/GBP,1.0,82000,False,False,True,False,False,online, 63 | 61,XRP-GBP,XRP,GBP,1.00000000,500000.00000000,0.00010000,0.00000100,XRP/GBP,10,100000,False,False,True,False,False,online, 64 | 62,ETH-GBP,ETH,GBP,0.01000000,1400.00000000,0.01000000,0.00000001,ETH/GBP,10,1000000,False,False,False,False,False,online, 65 | 63,SNX-USD,SNX,USD,0.10000000,19000.00000000,0.00010000,0.00100000,SNX/USD,1.0,100000,False,False,False,False,False,online, 66 | 64,OMG-EUR,OMG,EUR,1.00000000,500000.00000000,0.00010000,0.10000000,OMG/EUR,1,100000,False,False,False,False,False,online, 67 | 65,BNT-EUR,BNT,EUR,1.00000000,95000.00000000,0.00010000,0.00000100,BNT/EUR,1.0,92000,False,False,False,False,False,online, 68 | 66,LINK-EUR,LINK,EUR,1.00000000,90000.00000000,0.00001000,0.01000000,LINK/EUR,10,100000,False,False,False,False,False,online, 69 | 67,UMA-GBP,UMA,GBP,0.01000000,4500.00000000,0.00100000,0.00100000,UMA/GBP,1.0,100000,False,False,False,False,False,online, 70 | 68,XRP-USD,XRP,USD,1.00000000,500000.00000000,0.00010000,0.00000100,XRP/USD,10,100000,False,False,True,False,False,online, 71 | 69,BNT-BTC,BNT,BTC,1.00000000,95000.00000000,0.00000001,1.00000000,BNT/BTC,0.0001,5.1,False,False,False,False,False,online, 72 | 70,XRP-BTC,XRP,BTC,1.00000000,500000.00000000,0.00000001,1.00000000,XRP/BTC,0.001,30,False,False,True,False,False,online, 73 | 71,BCH-USD,BCH,USD,0.01000000,700.00000000,0.01000000,0.00000001,BCH/USD,10,500000,False,False,False,False,False,online, 74 | 72,FIL-USD,FIL,USD,0.01000000,3400.00000000,0.00010000,0.00100000,FIL/USD,1.0,100000,False,False,False,False,False,online, 75 | 73,NMR-GBP,NMR,GBP,0.01000000,3900.00000000,0.00010000,0.00100000,NMR/GBP,1.0,100000,False,False,False,False,False,online, 76 | 74,OMG-BTC,OMG,BTC,1.00000000,150000.00000000,0.00000001,0.10000000,OMG/BTC,0.001,500,False,False,False,False,False,online, 77 | 75,NU-BTC,NU,BTC,10.00000000,1300000.00000000,0.00000001,1.00000000,NU/BTC,0.0001,6,False,False,False,False,False,online, 78 | 76,LINK-USD,LINK,USD,1.00000000,90000.00000000,0.00001000,0.01000000,LINK/USD,10,100000,False,False,False,False,False,online, 79 | 77,UMA-USD,UMA,USD,0.01000000,4500.00000000,0.00100000,0.00100000,UMA/USD,1.0,100000,False,False,False,False,False,online, 80 | 78,BAL-BTC,BAL,BTC,0.10000000,6700.00000000,0.00000001,0.01000000,BAL/BTC,0.0001,10,False,False,False,False,False,online, 81 | 79,ETH-USD,ETH,USD,0.01000000,2800.00000000,0.01000000,0.00000001,ETH/USD,5,1000000,False,False,False,False,False,online, 82 | 80,BTC-GBP,BTC,GBP,0.00100000,80.00000000,0.01000000,0.00000001,BTC/GBP,10,200000,False,False,False,False,False,online, 83 | 81,XTZ-EUR,XTZ,EUR,1.00000000,100000.00000000,0.00001000,0.01000000,XTZ/EUR,10,100000,False,False,False,False,False,online, 84 | 82,ATOM-BTC,ATOM,BTC,0.10000000,25000.00000000,0.00000100,0.10000000,ATOM/BTC,0.001,30,False,False,False,False,False,online, 85 | 83,XTZ-USD,XTZ,USD,1.00000000,100000.00000000,0.00010000,0.01000000,XTZ/USD,10,100000,False,False,False,False,False,online, 86 | 84,REP-BTC,REP,BTC,0.10000000,5000.00000000,0.00000100,0.00000100,REP/BTC,0.001,6,False,False,False,False,False,online, 87 | 85,ETH-USDC,ETH,USDC,0.01000000,2800.00000000,0.01000000,0.00000001,ETH/USDC,10,1000000,False,False,False,False,False,online, 88 | 86,DASH-BTC,DASH,BTC,0.01000000,1500.00000000,0.00000001,0.00100000,DASH/BTC,0.0001,10,False,False,False,False,False,online, 89 | 87,EOS-EUR,EOS,EUR,0.10000000,50000.00000000,0.00100000,0.10000000,EOS/EUR,10,100000,False,False,False,False,False,online, 90 | 88,UNI-USD,UNI,USD,1.00000000,200000.00000000,0.00010000,0.00000100,UNI/USD,1.0,100000,False,False,False,False,False,online, 91 | 89,BAT-USDC,BAT,USDC,1.00000000,800000.00000000,0.00000100,1.00000000,BAT/USDC,10,100000,False,False,False,False,False,online, 92 | 90,XTZ-BTC,XTZ,BTC,1.00000000,100000.00000000,0.00000001,0.01000000,XTZ/BTC,0.001,10,False,False,False,False,False,online, 93 | 91,BTC-USD,BTC,USD,0.00100000,280.00000000,0.01000000,0.00000001,BTC/USD,5,1000000,False,False,False,False,False,online, 94 | 92,ZRX-BTC,ZRX,BTC,1.00000000,600000.00000000,0.00000001,0.00001000,ZRX/BTC,0.001,60,False,False,False,False,False,online, 95 | 93,ATOM-USD,ATOM,USD,0.10000000,25000.00000000,0.00100000,0.10000000,ATOM/USD,10,100000,False,False,False,False,False,online, 96 | 94,BNT-USD,BNT,USD,1.00000000,95000.00000000,0.00010000,0.00000100,BNT/USD,1.0,100000,False,False,False,False,False,online, 97 | 95,SNX-BTC,SNX,BTC,0.10000000,19000.00000000,0.00000001,0.01000000,SNX/BTC,0.0001,5.1,False,False,False,False,False,online, 98 | 96,ALGO-GBP,ALGO,GBP,1.00000000,500000.00000000,0.00010000,1.00000000,ALGO/GBP,10,100000,False,False,False,False,False,online, 99 | 97,MKR-USD,MKR,USD,0.00100000,240.00000000,0.00010000,0.00000100,MKR/USD,1.0,100000,False,False,False,False,False,online, 100 | 98,BCH-BTC,BCH,BTC,0.01000000,400.00000000,0.00001000,0.00000001,BCH/BTC,0.001,60,False,False,False,False,False,online, 101 | 99,AAVE-BTC,AAVE,BTC,0.01000000,1200.00000000,0.00000001,0.00100000,AAVE/BTC,0.0001,5.2,False,False,False,False,False,online, 102 | 100,NU-USD,NU,USD,10.00000000,1300000.00000000,0.00010000,0.00000100,NU/USD,1.0,100000,False,False,False,False,False,online, 103 | 101,LRC-USD,LRC,USD,1.00000000,560000.00000000,0.00010000,0.00000100,LRC/USD,1.0,100000,False,False,False,False,False,online, 104 | 102,LINK-GBP,LINK,GBP,1.00000000,90000.00000000,0.00001000,0.01000000,LINK/GBP,10,100000,False,False,False,False,False,online, 105 | 103,GRT-GBP,GRT,GBP,10.00000000,2500000.00000000,0.00010000,0.01000000,GRT/GBP,10.0,82000,False,False,False,False,False,online, 106 | 104,BNT-GBP,BNT,GBP,1.00000000,95000.00000000,0.00010000,0.00000100,BNT/GBP,1.0,82000,False,False,False,False,False,online, 107 | 105,LTC-GBP,LTC,GBP,0.10000000,1000.00000000,0.01000000,0.00000001,LTC/GBP,10,250000,False,False,False,False,False,online, 108 | 106,CGLD-EUR,CGLD,EUR,0.10000000,34000.00000000,0.00010000,0.01000000,CGLD/EUR,1.0,100000,False,False,False,False,False,online, 109 | 107,EOS-USD,EOS,USD,0.10000000,50000.00000000,0.00100000,0.10000000,EOS/USD,10,100000,False,False,False,False,False,online, 110 | 108,YFI-USD,YFI,USD,0.00001000,5.00000000,0.01000000,0.00000100,YFI/USD,1.0,100000,False,False,False,False,False,online, 111 | 109,DAI-USD,DAI,USD,1.00000000,100000.00000000,0.00000100,0.00001000,DAI/USD,5,100000,False,False,True,False,False,online, 112 | 110,ALGO-USD,ALGO,USD,1.00000000,500000.00000000,0.00010000,1.00000000,ALGO/USD,10,100000,False,False,False,False,False,online, 113 | 111,REN-USD,REN,USD,1.00000000,460000.00000000,0.00010000,0.00000100,REN/USD,1.0,100000,False,False,False,False,False,online, 114 | 112,FIL-BTC,FIL,BTC,0.01000000,3400.00000000,0.00000001,0.00100000,FIL/BTC,0.0001,6,False,False,False,False,False,online, 115 | 113,ETH-EUR,ETH,EUR,0.01000000,1600.00000000,0.01000000,0.00000001,ETH/EUR,10,400000,False,False,False,False,False,online, 116 | 114,ZRX-EUR,ZRX,EUR,1.00000000,600000.00000000,0.00000100,0.00001000,ZRX/EUR,10,100000,False,False,False,False,False,online, 117 | 115,GRT-BTC,GRT,BTC,10.00000000,2500000.00000000,0.00000001,0.01000000,GRT/BTC,0.0000001,5.2,False,False,False,False,False,online, 118 | 116,DNT-USDC,DNT,USDC,1.00000000,10000000.00000000,0.00000100,1.00000000,DNT/USDC,0.1,100000,False,False,True,False,False,online, 119 | 117,ETC-GBP,ETC,GBP,0.10000000,20000.00000000,0.00100000,0.00000001,ETC/GBP,10,100000,False,False,False,False,False,online, 120 | 118,LTC-EUR,LTC,EUR,0.10000000,1000.00000000,0.01000000,0.00000001,LTC/EUR,10,250000,False,False,False,False,False,online, 121 | 119,NMR-BTC,NMR,BTC,0.01000000,3900.00000000,0.00000001,0.00100000,NMR/BTC,0.0001,10,False,False,False,False,False,online, 122 | 120,XRP-EUR,XRP,EUR,1.00000000,500000.00000000,0.00010000,0.00000100,XRP/EUR,10,100000,False,False,True,False,False,online, 123 | 121,AAVE-USD,AAVE,USD,0.01000000,1200.00000000,0.00100000,0.00100000,AAVE/USD,1.0,500000,False,False,False,False,False,online, 124 | 122,AAVE-EUR,AAVE,EUR,0.01000000,1200.00000000,0.00100000,0.00100000,AAVE/EUR,1.0,92000,False,False,True,False,False,online, 125 | 123,BAND-BTC,BAND,BTC,0.10000000,18000.00000000,0.00000001,0.01000000,BAND/BTC,0.0001,10,False,False,False,False,False,online, 126 | 124,XLM-BTC,XLM,BTC,1.00000000,600000.00000000,0.00000001,1.00000000,XLM/BTC,0.001,50,False,False,False,False,False,online, 127 | 125,NU-GBP,NU,GBP,10.00000000,1300000.00000000,0.00010000,0.00000100,NU/GBP,1.0,75000,False,False,False,False,False,online, 128 | 126,KNC-BTC,KNC,BTC,1.00000000,600000.00000000,0.00000001,0.10000000,KNC/BTC,0.001,30,False,False,False,False,False,online, 129 | 127,LTC-BTC,LTC,BTC,0.10000000,8000.00000000,0.00000100,0.00000001,LTC/BTC,0.001,120,False,False,False,False,False,online, 130 | 128,CGLD-GBP,CGLD,GBP,0.10000000,34000.00000000,0.00010000,0.01000000,CGLD/GBP,1.0,100000,False,False,False,False,False,online, 131 | --------------------------------------------------------------------------------