finlib/notebooks/historical_var.ipynb

429 lines
90 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-02-14T22:39:48.773873Z",
"start_time": "2025-02-14T22:39:43.097057Z"
}
},
"source": [
"import matplotlib.pyplot as plt\n",
"from openbb import obb\n",
"import pyfinlib\n"
],
"outputs": [],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:39:50.185368Z",
"start_time": "2025-02-14T22:39:49.569809Z"
}
},
"cell_type": "code",
"source": "aapl = obb.equity.price.historical(symbol='AAPL', provider='yfinance')",
"id": "e5573366e39b2962",
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:39:50.200378Z",
"start_time": "2025-02-14T22:39:50.192064Z"
}
},
"cell_type": "code",
"source": "aapl.results",
"id": "ba361e8697a2e425",
"outputs": [
{
"data": {
"text/plain": [
"[YFinanceEquityHistoricalData(date=2024-02-14, open=185.32000732421875, high=185.52999877929688, low=182.44000244140625, close=184.14999389648438, volume=54630500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-15, open=183.5500030517578, high=184.49000549316406, low=181.35000610351562, close=183.86000061035156, volume=65434500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-16, open=183.4199981689453, high=184.85000610351562, low=181.6699981689453, close=182.30999755859375, volume=49701400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-20, open=181.7899932861328, high=182.42999267578125, low=180.0, close=181.55999755859375, volume=53665600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-21, open=181.94000244140625, high=182.88999938964844, low=180.66000366210938, close=182.32000732421875, volume=41529700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-22, open=183.47999572753906, high=184.9600067138672, low=182.4600067138672, close=184.3699951171875, volume=52292200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-23, open=185.00999450683594, high=185.0399932861328, low=182.22999572753906, close=182.52000427246094, volume=45119700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-26, open=182.24000549316406, high=182.75999450683594, low=180.64999389648438, close=181.16000366210938, volume=40867400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-27, open=181.10000610351562, high=183.9199981689453, low=179.55999755859375, close=182.6300048828125, volume=54318900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-28, open=182.50999450683594, high=183.1199951171875, low=180.1300048828125, close=181.4199981689453, volume=48953900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-29, open=181.27000427246094, high=182.57000732421875, low=179.52999877929688, close=180.75, volume=136682600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-01, open=179.5500030517578, high=180.52999877929688, low=177.3800048828125, close=179.66000366210938, volume=73488000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-04, open=176.14999389648438, high=176.89999389648438, low=173.7899932861328, close=175.10000610351562, volume=81510100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-05, open=170.75999450683594, high=172.0399932861328, low=169.6199951171875, close=170.1199951171875, volume=95132400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-06, open=171.05999755859375, high=171.24000549316406, low=168.67999267578125, close=169.1199951171875, volume=68587700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-07, open=169.14999389648438, high=170.72999572753906, low=168.49000549316406, close=169.0, volume=71765100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-08, open=169.0, high=173.6999969482422, low=168.94000244140625, close=170.72999572753906, volume=76114600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-11, open=172.94000244140625, high=174.3800048828125, low=172.0500030517578, close=172.75, volume=60139500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-12, open=173.14999389648438, high=174.02999877929688, low=171.00999450683594, close=173.22999572753906, volume=59825400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-13, open=172.77000427246094, high=173.19000244140625, low=170.75999450683594, close=171.1300048828125, volume=52488700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-14, open=172.91000366210938, high=174.30999755859375, low=172.0500030517578, close=173.0, volume=72913500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-15, open=171.1699981689453, high=172.6199951171875, low=170.2899932861328, close=172.6199951171875, volume=121664700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-18, open=175.57000732421875, high=177.7100067138672, low=173.52000427246094, close=173.72000122070312, volume=75604200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-19, open=174.33999633789062, high=176.61000061035156, low=173.02999877929688, close=176.0800018310547, volume=55215200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-20, open=175.72000122070312, high=178.6699981689453, low=175.08999633789062, close=178.6699981689453, volume=53423100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-21, open=177.0500030517578, high=177.49000549316406, low=170.83999633789062, close=171.3699951171875, volume=106181300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-22, open=171.75999450683594, high=173.0500030517578, low=170.05999755859375, close=172.27999877929688, volume=71106600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-25, open=170.57000732421875, high=171.94000244140625, low=169.4499969482422, close=170.85000610351562, volume=54288300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-26, open=170.0, high=171.4199981689453, low=169.5800018310547, close=169.7100067138672, volume=57388400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-27, open=170.41000366210938, high=173.60000610351562, low=170.11000061035156, close=173.30999755859375, volume=60273300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-28, open=171.75, high=172.22999572753906, low=170.50999450683594, close=171.47999572753906, volume=65672700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-01, open=171.19000244140625, high=171.25, low=169.47999572753906, close=170.02999877929688, volume=46240500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-02, open=169.0800018310547, high=169.33999633789062, low=168.22999572753906, close=168.83999633789062, volume=49329500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-03, open=168.7899932861328, high=170.67999267578125, low=168.5800018310547, close=169.64999389648438, volume=47691700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-04, open=170.2899932861328, high=171.9199981689453, low=168.82000732421875, close=168.82000732421875, volume=53704400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-05, open=169.58999633789062, high=170.38999938964844, low=168.9499969482422, close=169.5800018310547, volume=42055200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-08, open=169.02999877929688, high=169.1999969482422, low=168.24000549316406, close=168.4499969482422, volume=37425500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-09, open=168.6999969482422, high=170.0800018310547, low=168.35000610351562, close=169.6699981689453, volume=42451200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-10, open=168.8000030517578, high=169.08999633789062, low=167.11000061035156, close=167.77999877929688, volume=49709300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-11, open=168.33999633789062, high=175.4600067138672, low=168.16000366210938, close=175.0399932861328, volume=91070300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-12, open=174.25999450683594, high=178.36000061035156, low=174.2100067138672, close=176.5500030517578, volume=101593300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-15, open=175.36000061035156, high=176.6300048828125, low=172.5, close=172.69000244140625, volume=73531800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-16, open=171.75, high=173.75999450683594, low=168.27000427246094, close=169.3800048828125, volume=73711200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-17, open=169.61000061035156, high=170.64999389648438, low=168.0, close=168.0, volume=50901200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-18, open=168.02999877929688, high=168.63999938964844, low=166.5500030517578, close=167.0399932861328, volume=43122900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-19, open=166.2100067138672, high=166.39999389648438, low=164.0800018310547, close=165.0, volume=67772100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-22, open=165.52000427246094, high=167.25999450683594, low=164.77000427246094, close=165.83999633789062, volume=48116400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-23, open=165.35000610351562, high=167.0500030517578, low=164.9199981689453, close=166.89999389648438, volume=49537800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-24, open=166.5399932861328, high=169.3000030517578, low=166.2100067138672, close=169.02000427246094, volume=48251800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-25, open=169.52999877929688, high=170.61000061035156, low=168.14999389648438, close=169.88999938964844, volume=50558300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-26, open=169.8800048828125, high=171.33999633789062, low=169.17999267578125, close=169.3000030517578, volume=44838400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-29, open=173.3699951171875, high=176.02999877929688, low=173.10000610351562, close=173.5, volume=68169400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-30, open=173.3300018310547, high=174.99000549316406, low=170.0, close=170.3300018310547, volume=65934800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-01, open=169.5800018310547, high=172.7100067138672, low=169.11000061035156, close=169.3000030517578, volume=50383100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-02, open=172.50999450683594, high=173.4199981689453, low=170.88999938964844, close=173.02999877929688, volume=94214900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-03, open=186.64999389648438, high=187.0, low=182.66000366210938, close=183.3800048828125, volume=163224100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-06, open=182.35000610351562, high=184.1999969482422, low=180.4199981689453, close=181.7100067138672, volume=78569700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-07, open=183.4499969482422, high=184.89999389648438, low=181.32000732421875, close=182.39999389648438, volume=77305800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-08, open=182.85000610351562, high=183.07000732421875, low=181.4499969482422, close=182.74000549316406, volume=45057100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-09, open=182.55999755859375, high=184.66000366210938, low=182.11000061035156, close=184.57000732421875, volume=48983000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-10, open=184.89999389648438, high=185.08999633789062, low=182.1300048828125, close=183.0500030517578, volume=50759500, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-05-13, open=185.44000244140625, high=187.10000610351562, low=184.6199951171875, close=186.27999877929688, volume=72044800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-14, open=187.50999450683594, high=188.3000030517578, low=186.2899932861328, close=187.42999267578125, volume=52393600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-15, open=187.91000366210938, high=190.64999389648438, low=187.3699951171875, close=189.72000122070312, volume=70400000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-16, open=190.47000122070312, high=191.10000610351562, low=189.66000366210938, close=189.83999633789062, volume=52845200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-17, open=189.50999450683594, high=190.80999755859375, low=189.17999267578125, close=189.8699951171875, volume=41282900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-20, open=189.3300018310547, high=191.9199981689453, low=189.00999450683594, close=191.0399932861328, volume=44361300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-21, open=191.08999633789062, high=192.72999572753906, low=190.9199981689453, close=192.35000610351562, volume=42309400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-22, open=192.27000427246094, high=192.82000732421875, low=190.27000427246094, close=190.89999389648438, volume=34648500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-23, open=190.97999572753906, high=191.0, low=186.6300048828125, close=186.8800048828125, volume=51005900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-24, open=188.82000732421875, high=190.5800018310547, low=188.0399932861328, close=189.97999572753906, volume=36294600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-28, open=191.50999450683594, high=193.0, low=189.10000610351562, close=189.99000549316406, volume=52280100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-29, open=189.61000061035156, high=192.25, low=189.50999450683594, close=190.2899932861328, volume=53068000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-30, open=190.75999450683594, high=192.17999267578125, low=190.6300048828125, close=191.2899932861328, volume=49947900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-31, open=191.44000244140625, high=192.57000732421875, low=189.91000366210938, close=192.25, volume=75158300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-03, open=192.89999389648438, high=194.99000549316406, low=192.52000427246094, close=194.02999877929688, volume=50080500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-04, open=194.63999938964844, high=195.32000732421875, low=193.02999877929688, close=194.35000610351562, volume=47471400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-05, open=195.39999389648438, high=196.89999389648438, low=194.8699951171875, close=195.8699951171875, volume=54156800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-06, open=195.69000244140625, high=196.5, low=194.1699981689453, close=194.47999572753906, volume=41181800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-07, open=194.64999389648438, high=196.94000244140625, low=194.13999938964844, close=196.88999938964844, volume=53103900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-10, open=196.89999389648438, high=197.3000030517578, low=192.14999389648438, close=193.1199951171875, volume=97262100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-11, open=193.64999389648438, high=207.16000366210938, low=193.6300048828125, close=207.14999389648438, volume=172373300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-12, open=207.3699951171875, high=220.1999969482422, low=206.89999389648438, close=213.07000732421875, volume=198134300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-13, open=214.74000549316406, high=216.75, low=211.60000610351562, close=214.24000549316406, volume=97862700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-14, open=213.85000610351562, high=215.1699981689453, low=211.3000030517578, close=212.49000549316406, volume=70122700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-17, open=213.3699951171875, high=218.9499969482422, low=212.72000122070312, close=216.6699981689453, volume=93728300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-18, open=217.58999633789062, high=218.6300048828125, low=213.0, close=214.2899932861328, volume=79943300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-20, open=213.92999267578125, high=214.24000549316406, low=208.85000610351562, close=209.67999267578125, volume=86172500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-21, open=210.38999938964844, high=211.88999938964844, low=207.11000061035156, close=207.49000549316406, volume=246421400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-24, open=207.72000122070312, high=212.6999969482422, low=206.58999633789062, close=208.13999938964844, volume=80727000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-25, open=209.14999389648438, high=211.3800048828125, low=208.61000061035156, close=209.07000732421875, volume=56713900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-26, open=211.5, high=214.86000061035156, low=210.63999938964844, close=213.25, volume=66213200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-27, open=214.69000244140625, high=215.74000549316406, low=212.35000610351562, close=214.10000610351562, volume=49772700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-28, open=215.77000427246094, high=216.07000732421875, low=210.3000030517578, close=210.6199951171875, volume=82542700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-01, open=212.08999633789062, high=217.50999450683594, low=211.9199981689453, close=216.75, volume=60402900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-02, open=216.14999389648438, high=220.3800048828125, low=215.10000610351562, close=220.27000427246094, volume=58046200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-03, open=220.0, high=221.5500030517578, low=219.02999877929688, close=221.5500030517578, volume=37369800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-05, open=221.64999389648438, high=226.4499969482422, low=221.64999389648438, close=226.33999633789062, volume=60412400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-08, open=227.08999633789062, high=227.85000610351562, low=223.25, close=227.82000732421875, volume=59085900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-09, open=227.92999267578125, high=229.39999389648438, low=226.3699951171875, close=228.67999267578125, volume=48076100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-10, open=229.3000030517578, high=233.0800018310547, low=229.25, close=232.97999572753906, volume=62627700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-11, open=231.38999938964844, high=232.38999938964844, low=225.77000427246094, close=227.57000732421875, volume=64710600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-12, open=228.9199981689453, high=232.63999938964844, low=228.67999267578125, close=230.5399932861328, volume=53046500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-15, open=236.47999572753906, high=237.22999572753906, low=233.08999633789062, close=234.39999389648438, volume=62631300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-16, open=235.0, high=236.27000427246094, low=232.3300018310547, close=234.82000732421875, volume=43234300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-17, open=229.4499969482422, high=231.4600067138672, low=226.63999938964844, close=228.8800048828125, volume=57345900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-18, open=230.27999877929688, high=230.44000244140625, low=222.27000427246094, close=224.17999267578125, volume=66034600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-19, open=224.82000732421875, high=226.8000030517578, low=223.27999877929688, close=224.30999755859375, volume=49151500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-22, open=227.00999450683594, high=227.77999877929688, low=223.08999633789062, close=223.9600067138672, volume=48201800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-23, open=224.3699951171875, high=226.94000244140625, low=222.67999267578125, close=225.00999450683594, volume=39960300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-24, open=224.0, high=224.8000030517578, low=217.1300048828125, close=218.5399932861328, volume=61777600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-25, open=218.92999267578125, high=220.85000610351562, low=214.6199951171875, close=217.49000549316406, volume=51391200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-26, open=218.6999969482422, high=219.49000549316406, low=216.00999450683594, close=217.9600067138672, volume=41601300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-29, open=216.9600067138672, high=219.3000030517578, low=215.75, close=218.24000549316406, volume=36311800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-30, open=219.19000244140625, high=220.3300018310547, low=216.1199951171875, close=218.8000030517578, volume=41643800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-31, open=221.44000244140625, high=223.82000732421875, low=220.6300048828125, close=222.0800018310547, volume=50036300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-01, open=224.3699951171875, high=224.47999572753906, low=217.02000427246094, close=218.36000061035156, volume=62501000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-02, open=219.14999389648438, high=225.60000610351562, low=217.7100067138672, close=219.86000061035156, volume=105568600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-05, open=199.08999633789062, high=213.5, low=196.0, close=209.27000427246094, volume=119548600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-06, open=205.3000030517578, high=209.99000549316406, low=201.07000732421875, close=207.22999572753906, volume=69660500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-07, open=206.89999389648438, high=213.63999938964844, low=206.38999938964844, close=209.82000732421875, volume=63516400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-08, open=213.11000061035156, high=214.1999969482422, low=208.8300018310547, close=213.30999755859375, volume=47161100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-09, open=212.10000610351562, high=216.77999877929688, low=211.97000122070312, close=216.24000549316406, volume=42201600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-12, open=216.07000732421875, high=219.50999450683594, low=215.60000610351562, close=217.52999877929688, volume=38028100, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-08-13, open=219.00999450683594, high=221.88999938964844, low=219.00999450683594, close=221.27000427246094, volume=44155300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-14, open=220.57000732421875, high=223.02999877929688, low=219.6999969482422, close=221.72000122070312, volume=41960600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-15, open=224.60000610351562, high=225.35000610351562, low=222.75999450683594, close=224.72000122070312, volume=46414000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-16, open=223.9199981689453, high=226.8300018310547, low=223.64999389648438, close=226.0500030517578, volume=44340200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-19, open=225.72000122070312, high=225.99000549316406, low=223.0399932861328, close=225.88999938964844, volume=40687800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-20, open=225.77000427246094, high=227.1699981689453, low=225.4499969482422, close=226.50999450683594, volume=30299000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-21, open=226.52000427246094, high=227.97999572753906, low=225.0500030517578, close=226.39999389648438, volume=34765500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-22, open=227.7899932861328, high=228.33999633789062, low=223.89999389648438, close=224.52999877929688, volume=43695300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-23, open=225.66000366210938, high=228.22000122070312, low=224.3300018310547, close=226.83999633789062, volume=38677300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-26, open=226.75999450683594, high=227.27999877929688, low=223.88999938964844, close=227.17999267578125, volume=30602200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-27, open=226.0, high=228.85000610351562, low=224.88999938964844, close=228.02999877929688, volume=35934600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-28, open=227.9199981689453, high=229.86000061035156, low=225.67999267578125, close=226.49000549316406, volume=38052200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-29, open=230.10000610351562, high=232.9199981689453, low=228.8800048828125, close=229.7899932861328, volume=51906300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-30, open=230.19000244140625, high=230.39999389648438, low=227.47999572753906, close=229.0, volume=52990800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-03, open=228.5500030517578, high=229.0, low=221.1699981689453, close=222.77000427246094, volume=50190600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-04, open=221.66000366210938, high=221.77999877929688, low=217.47999572753906, close=220.85000610351562, volume=43840200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-05, open=221.6300048828125, high=225.47999572753906, low=221.52000427246094, close=222.3800048828125, volume=36615400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-06, open=223.9499969482422, high=225.24000549316406, low=219.77000427246094, close=220.82000732421875, volume=48423000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-09, open=220.82000732421875, high=221.27000427246094, low=216.7100067138672, close=220.91000366210938, volume=67180000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-10, open=218.9199981689453, high=221.47999572753906, low=216.72999572753906, close=220.11000061035156, volume=51591000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-11, open=221.4600067138672, high=223.08999633789062, low=217.88999938964844, close=222.66000366210938, volume=44587100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-12, open=222.5, high=223.5500030517578, low=219.82000732421875, close=222.77000427246094, volume=37498200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-13, open=223.5800018310547, high=224.0399932861328, low=221.91000366210938, close=222.5, volume=36766600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-16, open=216.5399932861328, high=217.22000122070312, low=213.9199981689453, close=216.32000732421875, volume=59357400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-17, open=215.75, high=216.89999389648438, low=214.5, close=216.7899932861328, volume=45519300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-18, open=217.5500030517578, high=222.7100067138672, low=217.5399932861328, close=220.69000244140625, volume=59894900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-19, open=224.99000549316406, high=229.82000732421875, low=224.6300048828125, close=228.8699951171875, volume=66781300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-20, open=229.97000122070312, high=233.08999633789062, low=227.6199951171875, close=228.1999969482422, volume=318679900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-23, open=227.33999633789062, high=229.4499969482422, low=225.80999755859375, close=226.47000122070312, volume=54146000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-24, open=228.64999389648438, high=229.35000610351562, low=225.72999572753906, close=227.3699951171875, volume=43556100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-25, open=224.92999267578125, high=227.2899932861328, low=224.02000427246094, close=226.3699951171875, volume=42308700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-26, open=227.3000030517578, high=228.5, low=225.41000366210938, close=227.52000427246094, volume=36636700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-27, open=228.4600067138672, high=229.52000427246094, low=227.3000030517578, close=227.7899932861328, volume=34026000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-30, open=230.0399932861328, high=233.0, low=229.64999389648438, close=233.0, volume=54541900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-01, open=229.52000427246094, high=229.64999389648438, low=223.74000549316406, close=226.2100067138672, volume=63285000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-02, open=225.88999938964844, high=227.3699951171875, low=223.02000427246094, close=226.77999877929688, volume=32880600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-03, open=225.13999938964844, high=226.80999755859375, low=223.32000732421875, close=225.6699981689453, volume=34044200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-04, open=227.89999389648438, high=228.0, low=224.1300048828125, close=226.8000030517578, volume=37245100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-07, open=224.5, high=225.69000244140625, low=221.3300018310547, close=221.69000244140625, volume=39505400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-08, open=224.3000030517578, high=225.97999572753906, low=223.25, close=225.77000427246094, volume=31855700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-09, open=225.22999572753906, high=229.75, low=224.8300018310547, close=229.5399932861328, volume=33591100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-10, open=227.77999877929688, high=229.5, low=227.1699981689453, close=229.0399932861328, volume=28183500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-11, open=229.3000030517578, high=229.41000366210938, low=227.33999633789062, close=227.5500030517578, volume=31759200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-14, open=228.6999969482422, high=231.72999572753906, low=228.60000610351562, close=231.3000030517578, volume=39882100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-15, open=233.61000061035156, high=237.49000549316406, low=232.3699951171875, close=233.85000610351562, volume=64751400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-16, open=231.60000610351562, high=232.1199951171875, low=229.83999633789062, close=231.77999877929688, volume=34082200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-17, open=233.42999267578125, high=233.85000610351562, low=230.52000427246094, close=232.14999389648438, volume=32993800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-18, open=236.17999267578125, high=236.17999267578125, low=234.00999450683594, close=235.0, volume=46431500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-21, open=234.4499969482422, high=236.85000610351562, low=234.4499969482422, close=236.47999572753906, volume=36254500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-22, open=233.88999938964844, high=236.22000122070312, low=232.60000610351562, close=235.86000061035156, volume=38846600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-23, open=234.0800018310547, high=235.13999938964844, low=227.75999450683594, close=230.75999450683594, volume=52287000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-24, open=229.97999572753906, high=230.82000732421875, low=228.41000366210938, close=230.57000732421875, volume=31109500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-25, open=229.74000549316406, high=233.22000122070312, low=229.57000732421875, close=231.41000366210938, volume=38802300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-28, open=233.32000732421875, high=234.72999572753906, low=232.5500030517578, close=233.39999389648438, volume=36087100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-29, open=233.10000610351562, high=234.3300018310547, low=232.32000732421875, close=233.6699981689453, volume=35417200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-30, open=232.61000061035156, high=233.47000122070312, low=229.5500030517578, close=230.10000610351562, volume=47070900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-31, open=229.33999633789062, high=229.8300018310547, low=225.3699951171875, close=225.91000366210938, volume=64370100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-01, open=220.97000122070312, high=225.35000610351562, low=220.27000427246094, close=222.91000366210938, volume=65276700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-04, open=220.99000549316406, high=222.7899932861328, low=219.7100067138672, close=222.00999450683594, volume=44944500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-05, open=221.8000030517578, high=223.9499969482422, low=221.13999938964844, close=223.4499969482422, volume=28111300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-06, open=222.61000061035156, high=226.07000732421875, low=221.19000244140625, close=222.72000122070312, volume=54561100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-07, open=224.6300048828125, high=227.8800048828125, low=224.57000732421875, close=227.47999572753906, volume=42137700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-08, open=227.1699981689453, high=228.66000366210938, low=226.41000366210938, close=226.9600067138672, volume=38328800, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-11-11, open=225.0, high=225.6999969482422, low=221.5, close=224.22999572753906, volume=42005600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-12, open=224.5500030517578, high=225.58999633789062, low=223.36000061035156, close=224.22999572753906, volume=40398300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-13, open=224.00999450683594, high=226.64999389648438, low=222.75999450683594, close=225.1199951171875, volume=48566200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-14, open=225.02000427246094, high=228.8699951171875, low=225.0, close=228.22000122070312, volume=44923900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-15, open=226.39999389648438, high=226.9199981689453, low=224.27000427246094, close=225.0, volume=47923700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-18, open=225.25, high=229.74000549316406, low=225.1699981689453, close=228.02000427246094, volume=44686000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-19, open=226.97999572753906, high=230.16000366210938, low=226.66000366210938, close=228.27999877929688, volume=36211800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-20, open=228.05999755859375, high=229.92999267578125, low=225.88999938964844, close=229.0, volume=35169600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-21, open=228.8800048828125, high=230.16000366210938, low=225.7100067138672, close=228.52000427246094, volume=42108300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-22, open=228.05999755859375, high=230.72000122070312, low=228.05999755859375, close=229.8699951171875, volume=38168300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-25, open=231.4600067138672, high=233.25, low=229.74000549316406, close=232.8699951171875, volume=90152800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-26, open=233.3300018310547, high=235.57000732421875, low=233.3300018310547, close=235.05999755859375, volume=45986200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-27, open=234.47000122070312, high=235.69000244140625, low=233.80999755859375, close=234.92999267578125, volume=33498400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-29, open=234.80999755859375, high=237.80999755859375, low=233.97000122070312, close=237.3300018310547, volume=28481400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-02, open=237.27000427246094, high=240.7899932861328, low=237.16000366210938, close=239.58999633789062, volume=48137100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-03, open=239.80999755859375, high=242.75999450683594, low=238.89999389648438, close=242.64999389648438, volume=38861000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-04, open=242.8699951171875, high=244.11000061035156, low=241.25, close=243.00999450683594, volume=44383900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-05, open=243.99000549316406, high=244.5399932861328, low=242.1300048828125, close=243.0399932861328, volume=40033900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-06, open=242.91000366210938, high=244.6300048828125, low=242.0800018310547, close=242.83999633789062, volume=36870600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-09, open=241.8300018310547, high=247.24000549316406, low=241.75, close=246.75, volume=44649200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-10, open=246.88999938964844, high=248.2100067138672, low=245.33999633789062, close=247.77000427246094, volume=36914800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-11, open=247.9600067138672, high=250.8000030517578, low=246.25999450683594, close=246.49000549316406, volume=45205800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-12, open=246.88999938964844, high=248.74000549316406, low=245.67999267578125, close=247.9600067138672, volume=32777500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-13, open=247.82000732421875, high=249.2899932861328, low=246.24000549316406, close=248.1300048828125, volume=33155300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-16, open=247.99000549316406, high=251.3800048828125, low=247.64999389648438, close=251.0399932861328, volume=51694800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-17, open=250.0800018310547, high=253.8300018310547, low=249.77999877929688, close=253.47999572753906, volume=51356400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-18, open=252.16000366210938, high=254.27999877929688, low=247.74000549316406, close=248.0500030517578, volume=56774100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-19, open=247.5, high=252.0, low=247.08999633789062, close=249.7899932861328, volume=60882300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-20, open=248.0399932861328, high=255.0, low=245.69000244140625, close=254.49000549316406, volume=147495300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-23, open=254.77000427246094, high=255.64999389648438, low=253.4499969482422, close=255.27000427246094, volume=40858800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-24, open=255.49000549316406, high=258.2099914550781, low=255.2899932861328, close=258.20001220703125, volume=23234700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-26, open=258.19000244140625, high=260.1000061035156, low=257.6300048828125, close=259.0199890136719, volume=27237100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-27, open=257.8299865722656, high=258.70001220703125, low=253.05999755859375, close=255.58999633789062, volume=42355300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-30, open=252.22999572753906, high=253.5, low=250.75, close=252.1999969482422, volume=35557500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-31, open=252.44000244140625, high=253.27999877929688, low=249.42999267578125, close=250.4199981689453, volume=39480700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-02, open=248.92999267578125, high=249.10000610351562, low=241.82000732421875, close=243.85000610351562, volume=55740700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-03, open=243.36000061035156, high=244.17999267578125, low=241.88999938964844, close=243.36000061035156, volume=40244100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-06, open=244.30999755859375, high=247.3300018310547, low=243.1999969482422, close=245.0, volume=45045600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-07, open=242.97999572753906, high=245.5500030517578, low=241.35000610351562, close=242.2100067138672, volume=40856000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-08, open=241.9199981689453, high=243.7100067138672, low=240.0500030517578, close=242.6999969482422, volume=37628900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-10, open=240.00999450683594, high=240.16000366210938, low=233.0, close=236.85000610351562, volume=61710900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-13, open=233.52999877929688, high=234.6699981689453, low=229.72000122070312, close=234.39999389648438, volume=49630700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-14, open=234.75, high=236.1199951171875, low=232.47000122070312, close=233.27999877929688, volume=39435300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-15, open=234.63999938964844, high=238.9600067138672, low=234.42999267578125, close=237.8699951171875, volume=39832000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-16, open=237.35000610351562, high=238.00999450683594, low=228.02999877929688, close=228.25999450683594, volume=71759100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-17, open=232.1199951171875, high=232.2899932861328, low=228.47999572753906, close=229.97999572753906, volume=68488300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-21, open=224.0, high=224.4199981689453, low=219.3800048828125, close=222.63999938964844, volume=98070400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-22, open=219.7899932861328, high=224.1199951171875, low=219.7899932861328, close=223.8300018310547, volume=64126500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-23, open=224.74000549316406, high=227.02999877929688, low=222.3000030517578, close=223.66000366210938, volume=60234800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-24, open=224.77999877929688, high=225.6300048828125, low=221.41000366210938, close=222.77999877929688, volume=54697900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-27, open=224.02000427246094, high=232.14999389648438, low=223.97999572753906, close=229.86000061035156, volume=94863400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-28, open=230.85000610351562, high=240.19000244140625, low=230.80999755859375, close=238.25999450683594, volume=75707600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-29, open=234.1199951171875, high=239.86000061035156, low=234.00999450683594, close=239.36000061035156, volume=45486100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-30, open=238.6699981689453, high=240.7899932861328, low=237.2100067138672, close=237.58999633789062, volume=55658300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-31, open=247.19000244140625, high=247.19000244140625, low=233.44000244140625, close=236.0, volume=101075100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-03, open=229.99000549316406, high=231.8300018310547, low=225.6999969482422, close=228.00999450683594, volume=73063300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-04, open=227.25, high=233.1300048828125, low=226.64999389648438, close=232.8000030517578, volume=45067300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-05, open=228.52999877929688, high=232.6699981689453, low=228.27000427246094, close=232.47000122070312, volume=39620300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-06, open=231.2899932861328, high=233.8000030517578, low=230.42999267578125, close=233.22000122070312, volume=29925300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-07, open=232.60000610351562, high=234.0, low=227.25999450683594, close=227.6300048828125, volume=39707200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-10, open=229.57000732421875, high=230.58999633789062, low=227.1999969482422, close=227.64999389648438, volume=33115600, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2025-02-11, open=228.1999969482422, high=235.22999572753906, low=228.1300048828125, close=232.6199951171875, volume=53718400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-12, open=231.1999969482422, high=236.9600067138672, low=230.67999267578125, close=236.8699951171875, volume=45243300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-13, open=236.91000366210938, high=242.33999633789062, low=235.57000732421875, close=241.52999877929688, volume=53614100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-14, open=241.07000732421875, high=245.41000366210938, low=241.0, close=244.60000610351562, volume=40145605, vwap=None, split_ratio=None, dividend=0.0)]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:39:50.886767Z",
"start_time": "2025-02-14T22:39:50.882363Z"
}
},
"cell_type": "code",
"source": "data = [i.open for i in aapl.results]",
"id": "481bc5b5742518f7",
"outputs": [],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:42:35.170044Z",
"start_time": "2025-02-14T22:42:35.165964Z"
}
},
"cell_type": "code",
"source": [
"VaR_historical = pyfinlib.risk.var.historical(data, 0.05)\n",
"VaR_historical_10 = pyfinlib.risk.var.historical(data, 0.1)\n",
"VaR_historical, VaR_historical_10"
],
"id": "2cc84cfff89a39a1",
"outputs": [
{
"data": {
"text/plain": [
"(-0.023037706582264946, -0.016547437981254933)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 19
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:42:37.039118Z",
"start_time": "2025-02-14T22:42:37.034625Z"
}
},
"cell_type": "code",
"source": "returns = pyfinlib.util.rates_of_change(data)",
"id": "28a68dea99911874",
"outputs": [],
"execution_count": 20
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:42:37.361381Z",
"start_time": "2025-02-14T22:42:37.264945Z"
}
},
"cell_type": "code",
"source": [
"# Plot the historical returns and VaR threshold\n",
"plt.figure(figsize=(10, 6))\n",
"plt.hist(returns, bins=50, alpha=0.75, color='blue', edgecolor='black')\n",
"plt.axvline(VaR_historical, color='red', linestyle='--', label=f'VaR (95%): {VaR_historical:.2%}')\n",
"plt.axvline(VaR_historical_10, color='orange', linestyle='--', label=f'VaR (90%): {VaR_historical_10:.2%}')\n",
"plt.title('Historical Returns of AAPL')\n",
"plt.xlabel('Returns')\n",
"plt.ylabel('Frequency')\n",
"plt.legend()\n",
"plt.show()"
],
"id": "5ab5e055a23f28ed",
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAIjCAYAAADWYVDIAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYwtJREFUeJzt3Qd8FNX2wPGTtgkJEHpTmoJUAQFFFJQmCBYEFBWVon8VwQYiPqwgIorPLoI+KWIXFPVZUEFBBSygiKDyAAlFIiBIIAlpm/l/zk02mQ1JSEJmW37fz2fg7u7M3tmdbDJnz71nwizLsgQAAAAAYITn/AcAAAAAUARJAAAAAGBDkAQAAAAANgRJAAAAAGBDkAQAAAAANgRJAAAAAGBDkAQAAAAANgRJAAAAAGBDkAQAAAAANgRJAOBjTZo0kZEjR0ogCQsLk8mTJzvy3AkJCeb558+f78jzI0dWVpZMnDhRGjZsKOHh4XLJJZf4e5cAIGgRJAHAcdATfw0A1qxZU+jjPXr0kLZt2x53Px9//LFjQUygWL58uXkvPUtERITUqVNHLr30Uvntt9/K9Jy7d+8279u6desk1M2dO1cee+wx8369/PLLMm7cuBJtd8YZZ5j3e9asWcdc1+12S4MGDcz6n3zySaHr6PttP46xsbHSunVruffee+XQoUMl/uwAgD9F+rV3AKiANm3aZL7pL22QNHPmTMcCpSNHjkhkZGD8Sbj11lvl9NNPl8zMTFm/fr3Mnj3bBFAbNmyQevXqlTpImjJlisnedejQQULZF198ISeccII8+eSTJd5m8+bN8sMPP5j357XXXpObbrrpmH0kJibmrd+/f/8i19Wgq3LlypKcnCyfffaZTJs2zWy/cuVKExwBQCALjL+IAFCBREdHSyDIzs6WjIwMiYmJMUug6N69u8mGeLRo0cKcvC9YsMAMJwsEaWlp4nK5Sh3sOmnv3r1SrVq1Um3z6quvmmzd448/bt5zHRqpAVBx63fs2FFGjBghd999t6SkpEhcXFyh6+rz1apVy7RHjx4tQ4YMkXfffVe+/fZb6dq1aylfHQD4VuD8dgeACjonSTMmmu1o3ry5CVZq1qwp3bp1k88//9w8rutqFknZhzF56InqHXfcYeaiaACmQcW///1vsSzLq1/d5uabbzYZgDZt2ph1lyxZkvdYwSzVn3/+Kdddd50ZXqXrNm3a1AQrGlipAwcOyIQJE+TUU081GYOqVauazMLPP/9c7kGT2rp161H7d+2110rdunXN/ulr0iFnHpp90oyUGjVqVN775pkbVdTcMB0iqYv9eXS7N9980wwZ02yNDiHToWO6vb523RedA6Tt2rVrm/dFh6bZ6fadOnWSKlWqmPdK37enn376mK//WMfXM+fryy+/lI0bN+a9Tt3vY3n99ddNMHPhhRdKfHy8uV1ctnHx4sVyxRVXyNChQ83t999/X0qqV69e5v9t27aVeBsA8BcySQBQDpKSkuTvv/8+6n4NgI5Fg5Pp06fL//3f/5n5IXryrfM0fvzxRznvvPPkxhtvNMPGNGh65ZVXvLbVE+WLL77YnCBrQKNDyj799FO58847zYl7waFXOtzp7bffNsGSfstfVNZA+9N9OXjwoNxwww3SsmVL83yLFi2S1NRUk0X5448/5L333pPLLrvMBFB79uyRF154Qc4991z59ddfTXBVHjQIUNWrV8+7T/s688wz8wI/DUx0joy+B/r+3X777dKqVSt58MEH5f777zevwRNsnXXWWWXaj6lTp5rXrQFQenq6aSsNhvr16yddunQxwcvSpUtNZubkk0/OG76mx+7KK6+U3r17y6OPPmru03lWOvTstttuK7LPkhxffe36c6HD2XRom/4sKX39xfnuu+9ky5YtMm/ePPNaBg8ebAJozRAV5oMPPjDPr0GSDnvUQFLXHzZsWIneP0+Qq18CAEDAswAAZTZv3jz9Or/YpU2bNl7bNG7c2BoxYkTe7fbt21sXXHBBsf2MHTvWPFdB7733nrn/oYce8rr/0ksvtcLCwqwtW7bk3afrhYeHWxs3bjzqefSxBx54IO/28OHDzbo//PDDUetmZ2eb/9PS0iy32+312LZt26zo6GjrwQcf9LpPn1/fq+J8+eWXZr25c+da+/bts3bv3m0tWbLEatasmXkt33//fd661113nVW/fn3r77//9nqOK664woqPj7dSU1PNbd3/ovoueBw8zj33XLMU3K+TTjop73k9dHt9zP561WmnnWZ16tQp7/Ztt91mVa1a1crKyrJKozTHV/e54M9acW6++WarYcOGecfzs88+M3399NNPha5/4YUXWmeffXbe7RdffNGKjIy09u7d67We/hzp82zatMkcRz3+L7zwgvm5qFu3rpWS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ZSZb1muSs2gbQMg4cuSI9euvv5r/g8nixYut8PBwa+fOnUc9NmrUKKtz584lep4RI0ZY559/vpWYmGjt2LHDPG/VqlWtiRMnFrtdSkqKWW/16tV5961bt85yuVzWlClTrM2bN1vLly+3WrZsad1xxx1562zbts2cmy5dutT06VkyMjLM426326pVq5b1+OOPWxs2bDDbP/vss3nbjx492jxWmAkTJliXXnqpdbzmzJlj3XrrrWb/t27dar3yyitWpUqVvPajME888YR5PxISEqyVK1daXbt2NYuHno/XrVvXuuqqq8xre+ONN8zzvvDCC8f92kv6M13S2IAgCQCCFUESAKeDJP3dUtRScP3i1k1NLdm6pZCZmWlOuKdOnep1/+HDh63KlStbs2bNsv7++2/riiuusBo0aGBOxtu2bWu9/vrrRwVJAwcO9Lpv8ODB1mmnnVZs/wsXLrRq167tdd+kSZOOCs4++OADKyYmxjp06JBXkPTTTz8V+rx79uwxj3uOhwZrY8aMMW0NPDp16mRlZWUVuu2KFStMkJZa8P0uB2PGjLF69uxZqm3ef/99KywsLC8AfP75563q1atb6enpeevcddddVosWLY77tZd3kOTX4XYAAAAIYJUrF70MGeK9bp06Ra/bv7/3ujo8rbD1SiEyMtJM25g/f765iKjHwoULxe12m+FiOmROqyd/9NFHsmHDBrnhhhvMEK7vv/++yOfV9VatWmWmfhRHh7Xpc9tp8bGCJad1uJruh86zLzg0TeczdevWzcy996hdu7YZqvbZZ59Jamqq6Ufn42dmZspNN91kKkDrhX8L07lzZzO077vvvsu7r0ePHmZI4fFKSkqSGjVqlHj9AwcOyGuvvWaGHuowRrV69WpTX8D+3vbr189cB/Wff/45rtde3giSAAAAEJR0Ho4W+9JrbHrMmzfPzGPXa+GccMIJMmHCBOnQoYOcdNJJcsstt5h5TG+//bbX83z44YdSuXJlE+CceuqpZt78nXfeWWzfOi+mQYMGXvfpCb8GWG+88YYJ1P7880958MEHzWOJiYnmf+3n8ccfN8GcBm8aJF1yySV5gZLOT9L90wJmbdq0kdNOO828zkceeUR69uxp9vHss882c/qfe+45r/71YsD6uu1zdnSO0PFWhl61apW89dZbJsg8Fp2DFRcXJzVr1jTXQn3//ffz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C5ODBw+W6XnXr18v3bt3l5iYGHO14hkzZpT766soxyQtLU3Gjh0rNWvWlMqVK8uQIUO8Lhw8f/58c6wKW/bu3WvWWb58eaGPayVEOHNcVGHv+Ztvvum1jh6bjh07muo5zZo1M8cTzhyTn3/+Wa688krzO6lSpUrSqlUrefrpp72eg8+Kt5kzZ0qTJk3M7/IuXbrI999/X+z6CxculJYtW5r1Tz31VPn444+9HtcaSFqFtX79+uYY9OnTRzZv3nzcx76iKc/jkpmZKXfddZe5Py4uTho0aCDDhw+X3bt3ez2H9lfwc/HII4849hor+mdl5MiRR73f559/vtc6fFZ8f1yKOt967LHHKu5nxQpC559/vtW+fXvr22+/tb7++murWbNm1pVXXlnsNk8++aQ1ffp0s+jL/ueff0r9vElJSVbdunWtq666ytqwYYP1xhtvWJUqVbJeeOEFq6IryzEZPXq01bBhQ2vZsmXWmjVrrDPPPNM666yz8h5PTU21EhMTvZZ+/fpZ5557bt46X375pTmemzZt8lrP7XY7+nqDhRPHRel7Pm/ePK/3/MiRI3mP//HHH1ZsbKw1fvx469dff7WeffZZKyIiwlqyZIlV0TlxTObMmWPdeuut1vLly62tW7dar7zyivndpO+7B5+VfG+++ablcrmsuXPnWhs3brSuv/56q1q1ataePXsKXX/lypXm53fGjBnm5/nee++1oqKirF9++SVvnUceecSKj4+33nvvPevnn3+2Lr74Yqtp06Zen4uyHPuKpLyPy8GDB60+ffpYb731lvX7779bq1evts444wyrU6dOXs/TuHFj68EHH/T6XCQnJ/vkNVfEz8qIESPMZ8H+fh84cMDrefis+P64FDzfmjt3rhUWFmb+plTUz0rQBUl6cPUP/Q8//JB33yeffGIO5J9//nnM7T0nCgWDpJI87/PPP29Vr17dSk9Pz1vnrrvuslq0aGFVZGU5JvrHSz+gCxcuzLvvt99+M8+jf8gKs3fvXrPNggULjnk84exx0duLFy8usu+JEydabdq08brv8ssvN0FuRearz4oaM2aM1bNnz7zbfFby6Yny2LFj825roNigQQPzJVphhg4dal1wwQVe93Xp0sW68cYbTTs7O9uqV6+e9dhjj3kdt+joaPNlWnn87aoIyvu4FOb77783x2H79u1eJ376RSp8c0w0SBo4cGCRffJZCYzPysCBA61evXp53VfRPitBN9xu9erVJvXauXPnvPt0WEN4eLh89913jj6vrnPOOeeIy+XKW6dfv36yadMm+eeff6SiKssxWbt2rRkKoet5aBq4UaNG5vkKs2DBAomNjZVLL730qMf0IsM6zOW8886TlStXlsvrCnZOHxcd/lWrVi0544wzZO7cuWa4kb1v+3N4PitFHduKwlefFZWUlCQ1atQ46v6K/lnJyMgw76n9/dT3X28X9X4e6+d527ZtZtiifZ34+HgzBMazjlN/u0KFE8elqM+FDhHSY2GnQ4Z0OOtpp51mhhdlZWVJRefkMdHhv3Xq1JEWLVrITTfdJPv37/d6Dj4r/v2s6HDujz76yAxzLKgifVYiJcjoHyL9YNlFRkaak4HjGVtfkufV/5s2beq1Tt26dfMeq169ulREZTkmer8GmwX/UOn7WdQ2c+bMkWHDhpnx/h56sjd79mzzyzQ9PV1eeuklM/dMf5HqfJiKzMnj8uCDD0qvXr1M0PrZZ5/JmDFjzHjxW2+9Ne95PJ8N+3McOnRIjhw54nUMKxJffVZWrVolb731lvkj58FnJcfff/8tbre70J/P33//vdBtivp5tv9t8NxX3DpO/O0KFU4cl8Lm9ukcJZ2/p3NdPPT3ln4G9FjoZ2fSpEmSmJgoTzzxhFRkTh0TnX80ePBgcz61detWufvuu6V///7mhD0iIoLPSgB8Vl5++WWpUqWKOU52Fe2zEjBB0r/+9S959NFHi13nt99+89n+ILCOif7y1L5eeeUVr/v1WyhdPM466yzzS/fJJ588at1QEQjH5b777str67dJKSkp5hslT5BU0QTCMfHYsGGDDBw4UB544AHp27dvhf6sAB6ajR06dKjJeM+aNcvrsfHjx+e127VrZ76UuPHGG2X69Omm8AzK1xVXXJHX1gIC+p6ffPLJJrvUu3dvv+4bcujokKuuusoUeajIn5WACZLuuOMOU/GkOCeddJLUq1cvr7KZh6b6tBKKPlZWJXle/b9glS/P7ePpO1A5eUz0fk0Za5VB+zfk+n4Wto1+663DhDp16nTM/dbhX998842EqkA6Lh46rGjq1KkmQ6G/KIv6rOi3t6GYRQqUY/Lrr7+ak4wbbrhB7r33Xqnon5XC6BBR/ba6sJ/P4o5Bcet7/tf7NGNnX0d/b3nWceJvV6hw4rgUDJC2b98uX3zxhVcWqajfZ3psEhISvL5YqGicPCYFfzdqX1u2bDG/v/is+Pe4fP3112YayVtvvXXMfQn5z4oVZDwT+rTCk8enn35aboUbinteT+GGjIyMvHUmTZpE4YYyHBPPZPRFixbl3afVhwqbjH748GGrcuXKXpW6iqPVjAYNGmRVdE4fF7uHHnrIfDbshRvatm3rtY5WJqJwg3PHRCtu1qlTx7rzzjtLvD8V9bOik55vvvlmr0nPJ5xwQrGTni+88EKv+7p27XpU4YZ///vfXtVQCyvcUNa/XRVBeR8XpX+vL7nkElNIRov/lMSrr75qhYeHH1VxrSJy4pgUtHPnTvM5eP/9981tPiv+PS5aWKNgBciK+lkJuiDJUxrytNNOs7777jvrm2++sZo3b+5VGnLXrl0mcNHHPbRM4U8//WT95z//MR++r776ytzev39/iZ9XT1a0BPg111xjTki0BKOWOaYEeNmOiZY1btSokfXFF1+YX4b6gdWloJdeesmKiYkptCqXVlnRkrubN282pSxvu+0284FdunSpg6+2Yh+XDz74wHyO9P3W912/PNDPwf33339UCXA9YddKbDNnzqQEuIPHRI9F7dq1rauvvtqrNKv9pJDPSj793a0BzPz5880J2Q033GDK5/7111/mcf0d/69//curfG5kZKQJgvTn+YEHHii0BLg+h57orV+/3lSGKqwEeHHHvqIr7+OiAZKWYj/xxBOtdevWeX02PFVqV61aZT4b+riWOtaTPv0sDR8+3E/vQmgfE/3Sc8KECeYLnm3btpnfPx07djSfhbS0tLzn4bPi+99hni939G/3rFmzjuqzIn5WgjJI0sBGPyyaXahatao1atQo88Hz0A+eBkKaNfLQHwi9r+Ci13op6fMqvf5Ft27dzA+nRu36hxFlOyZ68qBlijUDoR9K/UZb/3gVpCeDw4YNK7TfRx991Dr55JNNEFWjRg2rR48e5kQSzh0XLcXaoUMH85xxcXHmWhazZ88+6no7+py6nl7L4aSTTvL6rFVkThyTon6/ablWDz4r3jQzrYGn/nzqt7J6PRYPvRabfptq9/bbb1unnHKKWV+zEh999JHX45pNuu+++8wXafr3oXfv3uaaVHYl+RtT0ZXncfF8lgpbPJ+vtWvXmlLIeo0r/Wy0atXKevjhh71O2Cu68jwmev3Dvn37mpNrPUnX31F6jR/Pyb0HnxXf/w5T+qW/XmNPkwIFVcTPSpj+4+8hfwAAAAAQKILuOkkAAAAA4CSCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJACA340cOVLCwsLMEhUVJU2bNpWJEydKWlpaibZfvny52fbgwYOO7ysAIPRF+nsHAABQ559/vsybN08yMzNl7dq1MmLECBP4PProoz7dD+1fAzUAQMVFJgkAEBCio6OlXr160rBhQ7nkkkukT58+8vnnn5vHsrOzZfr06SbDVKlSJWnfvr0sWrTIPJaQkCA9e/Y07erVq5vASjNTqkmTJvLUU0959dOhQweZPHly3m1df9asWXLxxRdLXFycTJs2zTyu673yyivmOeLj4+WKK66Qw4cP522n/Z966qlmf2rWrGn2NyUlxSfvFQDAWQRJAICAs2HDBlm1apW4XC5zWwOkBQsWyOzZs2Xjxo0ybtw4ufrqq2XFihUmqHrnnXfMeps2bZLExER5+umnS9WfBkWDBg2SX375Ra699lpz39atW+W9996TDz/80Cza1yOPPGIe0z6uvPJKs+5vv/1mhvsNHjxYLMsq9/cCAOB7DLcDAAQEDUQqV64sWVlZkp6eLuHh4fLcc8+Z9sMPPyxLly6Vrl27mnVPOukk+eabb+SFF16Qc889V2rUqGHur1OnjlSrVq3UfQ8bNkxGjRrldZ9mr+bPny9VqlQxt6+55hpZtmyZyTRpkKT7qYFR48aNzeOaVQIAhAaCJABAQNAhczrsTYesPfnkkxIZGSlDhgwxmaPU1FQ577zzvNbPyMiQ0047rVz67ty581H36TA7T4Ck6tevL3v37jVtHe7Xu3dvExj169dP+vbtK5deeqkZ7gcACH4ESQCAgKDzgZo1a2bac+fONYHInDlzpG3btua+jz76SE444YSj5jEVR7NRBYfAaWGGwvouqGDxBp27pNklFRERYeZL6ZDAzz77TJ599lm555575LvvvjPzpgAAwY05SQCAgKPBzd133y333nuvtG7d2gRDO3bsMEGUfdH5SMozd8ntdns9T+3atc3QOI9Dhw7Jtm3bymUfNWg6++yzZcqUKfLTTz+ZfVi8eHG5PDcAwL/IJAEAAtJll10md955p5l3NGHCBFOsQTM53bp1k6SkJFm5cqVUrVrVlArXeUEatOi8pgEDBpiKczq/qVevXmZe0UUXXWTmKt1///0mC3S8NGOk85N0mJ3Og9Lb+/btk1atWpXLawcA+BdBEgAgIOmcpJtvvllmzJhhsj+aFdIqd3/88YcJeDp27GiyTUqH4WlG51//+pcpwDB8+HATHE2aNMlse+GFF5oy3lOnTi2XTJIGZ1999ZUpL67ZKQ3SHn/8cenfv385vHIAgL+FWdQrBQAAAIA8zEkCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAAMn3/wMBved6lzTIAAAAAElFTkSuQmCC"
},
"metadata": {},
"output_type": "display_data"
}
],
"execution_count": 21
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "ddeb6ada3ab526b5"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}