ENH #284 inc and dec strict speed boost TST talib stoch and stochrsi DOC notebooks update

This commit is contained in:
Kevin Johnson committed 2021-05-19 15:41:21 -07:00
1 parent cd4645c62d
commit b7d64a2ed7
11 files changed
+1170 -1107

No files matched your search

+3 -3
View File
@@ -98,7 +98,7 @@ $ pip install pandas_ta
Latest Version
--------------
Best choice! Version: *0.2.79*
Best choice! Version: *0.2.80*
```sh
$ pip install -U git+https://github.com/twopirllc/pandas-ta
```
@@ -958,8 +958,8 @@ cascaded stochastic calculations with additional smoothing. See: ```help(ta.stc)
* _Bollinger Bands_ (**bbands**): New argument ```ddoff``` to control the Degrees of Freedom. Default is 0. See ```help(ta.bbands)```.
* _Choppiness Index_ (**chop**): New argument ```ln``` to use Natural Logarithm (True) instead of the Standard Logarithm (False). Default is False. See ```help(ta.chop)```.
* _Chande Kroll Stop_ (**cksp**): Added ```tvmode``` with default ```True```. When ```tvmode=False```, **cksp** implements “The New Technical Trader” with default values. See ```help(ta.cksp)```.
* _Decreasing_ (**decreasing**): New argument ```strict``` checks if the series is continuously decreasing over period ```length```. Default: ```False```. See ```help(ta.decreasing)```.
* _Increasing_ (**increasing**): New argument ```strict``` checks if the series is continuously increasing over period ```length```. Default: ```False```. See ```help(ta.increasing)```.
* _Decreasing_ (**decreasing**): New argument ```strict``` checks if the series is continuously decreasing over period ```length``` with a faster calculation. Default: ```False```. The ```percent``` argument has also been added with default None. See ```help(ta.decreasing)```.
* _Increasing_ (**increasing**): New argument ```strict``` checks if the series is continuously increasing over period ```length``` with a faster calculation. Default: ```False```. The ```percent``` argument has also been added with default None. See ```help(ta.increasing)```.
* _Volume Weighted Average Price_ (**vwap**) Added a new parameter called ```anchor```. Default: "D" for "Daily". See [Timeseries Offset Aliases](https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases) for additional options. **Requires** the DataFrame index to be a DatetimeIndex
<br />
+247 -229
View File
@@ -121,19 +121,19 @@
"[!] Loading All: SPY, QQQ, AAPL, TSLA, BTC-USD\n",
"[+] Downloading[yahoo]: SPY[D]\n",
"[+] Saving: /Users/kj/av_data/SPY_D.csv\n",
"[i] Runtime: 482.9511 ms (0.4830 s)\n",
"[i] Runtime: 525.9195 ms (0.5259 s)\n",
"[+] Downloading[yahoo]: QQQ[D]\n",
"[+] Saving: /Users/kj/av_data/QQQ_D.csv\n",
"[i] Runtime: 481.2774 ms (0.4813 s)\n",
"[i] Runtime: 480.6160 ms (0.4806 s)\n",
"[+] Downloading[yahoo]: AAPL[D]\n",
"[+] Saving: /Users/kj/av_data/AAPL_D.csv\n",
"[i] Runtime: 474.6944 ms (0.4747 s)\n",
"[i] Runtime: 508.6772 ms (0.5087 s)\n",
"[+] Downloading[yahoo]: TSLA[D]\n",
"[+] Saving: /Users/kj/av_data/TSLA_D.csv\n",
"[i] Runtime: 473.4943 ms (0.4735 s)\n",
"[i] Runtime: 477.4917 ms (0.4775 s)\n",
"[+] Downloading[yahoo]: BTC-USD[D]\n",
"[+] Saving: /Users/kj/av_data/BTC-USD_D.csv\n",
"[i] Runtime: 462.5248 ms (0.4625 s)\n"
"[i] Runtime: 497.8067 ms (0.4978 s)\n"
]
}
],
@@ -161,7 +161,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"SPY (7118, 12)\n",
"SPY (7128, 12)\n",
"Columns: open, high, low, close, volume, dividends, split, SMA_10, SMA_20, SMA_50, SMA_200, VOL_SMA_20\n"
]
}
@@ -231,69 +231,69 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2020-05-06</th>\n",
" <td>283.493739</td>\n",
" <td>283.907093</td>\n",
" <td>279.300967</td>\n",
" <td>279.763550</td>\n",
" <td>73632600</td>\n",
" <td>281.025305</td>\n",
" <td>277.757211</td>\n",
" <td>268.165192</td>\n",
" <td>292.634901</td>\n",
" <td>1.143152e+08</td>\n",
" <th>2020-05-20</th>\n",
" <td>291.150942</td>\n",
" <td>293.168574</td>\n",
" <td>290.904888</td>\n",
" <td>292.243408</td>\n",
" <td>85861700</td>\n",
" <td>285.033035</td>\n",
" <td>283.029170</td>\n",
" <td>266.659134</td>\n",
" <td>292.472755</td>\n",
" <td>98976520.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-07</th>\n",
" <td>283.208307</td>\n",
" <td>285.206265</td>\n",
" <td>282.598097</td>\n",
" <td>283.139404</td>\n",
" <td>75250400</td>\n",
" <td>281.871735</td>\n",
" <td>278.428940</td>\n",
" <td>267.732156</td>\n",
" <td>292.596652</td>\n",
" <td>1.103890e+08</td>\n",
" <th>2020-05-21</th>\n",
" <td>292.105626</td>\n",
" <td>292.971742</td>\n",
" <td>289.054549</td>\n",
" <td>290.225769</td>\n",
" <td>78293900</td>\n",
" <td>285.741672</td>\n",
" <td>283.806703</td>\n",
" <td>267.094627</td>\n",
" <td>292.529205</td>\n",
" <td>97655730.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-08</th>\n",
" <td>286.495581</td>\n",
" <td>288.326240</td>\n",
" <td>285.284984</td>\n",
" <td>287.824280</td>\n",
" <td>76452400</td>\n",
" <td>282.803787</td>\n",
" <td>279.129703</td>\n",
" <td>267.666591</td>\n",
" <td>292.574995</td>\n",
" <td>1.047116e+08</td>\n",
" <th>2020-05-22</th>\n",
" <td>289.920683</td>\n",
" <td>290.963951</td>\n",
" <td>288.591985</td>\n",
" <td>290.776947</td>\n",
" <td>63958200</td>\n",
" <td>286.036938</td>\n",
" <td>284.420363</td>\n",
" <td>268.054838</td>\n",
" <td>292.587587</td>\n",
" <td>96600480.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-11</th>\n",
" <td>285.757390</td>\n",
" <td>289.359625</td>\n",
" <td>285.304659</td>\n",
" <td>287.883301</td>\n",
" <td>79514200</td>\n",
" <td>283.340182</td>\n",
" <td>279.958412</td>\n",
" <td>267.626670</td>\n",
" <td>292.560612</td>\n",
" <td>1.029454e+08</td>\n",
" <th>2020-05-26</th>\n",
" <td>297.164459</td>\n",
" <td>297.420365</td>\n",
" <td>290.796577</td>\n",
" <td>294.359436</td>\n",
" <td>88951400</td>\n",
" <td>286.684552</td>\n",
" <td>285.012367</td>\n",
" <td>268.671635</td>\n",
" <td>292.636502</td>\n",
" <td>97153220.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-12</th>\n",
" <td>289.152972</td>\n",
" <td>289.595851</td>\n",
" <td>281.997699</td>\n",
" <td>282.145355</td>\n",
" <td>95870800</td>\n",
" <td>283.432700</td>\n",
" <td>280.100139</td>\n",
" <td>267.220916</td>\n",
" <td>292.507798</td>\n",
" <td>1.010318e+08</td>\n",
" <th>2020-05-27</th>\n",
" <td>297.351478</td>\n",
" <td>298.778604</td>\n",
" <td>292.184342</td>\n",
" <td>298.739227</td>\n",
" <td>104817400</td>\n",
" <td>288.343939</td>\n",
" <td>285.888319</td>\n",
" <td>269.952733</td>\n",
" <td>292.717008</td>\n",
" <td>97130590.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
@@ -309,69 +309,69 @@
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-29</th>\n",
" <td>420.320007</td>\n",
" <td>420.720001</td>\n",
" <td>416.440002</td>\n",
" <td>420.059998</td>\n",
" <td>78544300</td>\n",
" <td>416.230997</td>\n",
" <td>412.690996</td>\n",
" <td>398.270767</td>\n",
" <td>362.190824</td>\n",
" <td>6.882898e+07</td>\n",
" <th>2021-05-13</th>\n",
" <td>407.070007</td>\n",
" <td>412.350006</td>\n",
" <td>407.019989</td>\n",
" <td>410.279999</td>\n",
" <td>106394000</td>\n",
" <td>415.589999</td>\n",
" <td>415.910498</td>\n",
" <td>404.295667</td>\n",
" <td>367.011310</td>\n",
" <td>79515840.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-30</th>\n",
" <td>417.630005</td>\n",
" <td>418.540009</td>\n",
" <td>416.339996</td>\n",
" <td>417.299988</td>\n",
" <td>85448400</td>\n",
" <td>416.234995</td>\n",
" <td>413.525496</td>\n",
" <td>398.827877</td>\n",
" <td>362.686503</td>\n",
" <td>6.811726e+07</td>\n",
" <th>2021-05-14</th>\n",
" <td>413.209991</td>\n",
" <td>417.489990</td>\n",
" <td>413.179993</td>\n",
" <td>416.579987</td>\n",
" <td>82123100</td>\n",
" <td>415.517999</td>\n",
" <td>415.876497</td>\n",
" <td>405.117861</td>\n",
" <td>367.487226</td>\n",
" <td>79520130.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-03</th>\n",
" <td>419.429993</td>\n",
" <td>419.839996</td>\n",
" <td>417.670013</td>\n",
" <td>418.200012</td>\n",
" <td>68128300</td>\n",
" <td>416.533997</td>\n",
" <td>414.117497</td>\n",
" <td>399.416743</td>\n",
" <td>363.191922</td>\n",
" <td>6.693943e+07</td>\n",
" <th>2021-05-17</th>\n",
" <td>415.390015</td>\n",
" <td>416.390015</td>\n",
" <td>413.359985</td>\n",
" <td>415.519989</td>\n",
" <td>65129200</td>\n",
" <td>415.249997</td>\n",
" <td>415.891997</td>\n",
" <td>405.780709</td>\n",
" <td>367.963577</td>\n",
" <td>78851665.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-04</th>\n",
" <td>416.070007</td>\n",
" <td>416.600006</td>\n",
" <td>411.670013</td>\n",
" <td>415.619995</td>\n",
" <td>101441600</td>\n",
" <td>416.878995</td>\n",
" <td>414.592497</td>\n",
" <td>400.013813</td>\n",
" <td>363.679845</td>\n",
" <td>6.891046e+07</td>\n",
" <th>2021-05-18</th>\n",
" <td>415.799988</td>\n",
" <td>416.059998</td>\n",
" <td>411.769989</td>\n",
" <td>411.940002</td>\n",
" <td>59266000</td>\n",
" <td>414.881998</td>\n",
" <td>415.880496</td>\n",
" <td>406.410032</td>\n",
" <td>368.409374</td>\n",
" <td>77722375.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-05</th>\n",
" <td>417.380005</td>\n",
" <td>417.630005</td>\n",
" <td>414.945007</td>\n",
" <td>416.890015</td>\n",
" <td>28129413</td>\n",
" <td>416.960995</td>\n",
" <td>415.107498</td>\n",
" <td>400.626913</td>\n",
" <td>364.161266</td>\n",
" <td>6.752512e+07</td>\n",
" <th>2021-05-19</th>\n",
" <td>406.920013</td>\n",
" <td>410.250000</td>\n",
" <td>405.329987</td>\n",
" <td>408.234985</td>\n",
" <td>66477971</td>\n",
" <td>414.130496</td>\n",
" <td>415.488745</td>\n",
" <td>406.856610</td>\n",
" <td>368.825426</td>\n",
" <td>77706623.55</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@@ -381,31 +381,31 @@
"text/plain": [
" open high low close volume \\\n",
"date \n",
"2020-05-06 283.493739 283.907093 279.300967 279.763550 73632600 \n",
"2020-05-07 283.208307 285.206265 282.598097 283.139404 75250400 \n",
"2020-05-08 286.495581 288.326240 285.284984 287.824280 76452400 \n",
"2020-05-11 285.757390 289.359625 285.304659 287.883301 79514200 \n",
"2020-05-12 289.152972 289.595851 281.997699 282.145355 95870800 \n",
"2020-05-20 291.150942 293.168574 290.904888 292.243408 85861700 \n",
"2020-05-21 292.105626 292.971742 289.054549 290.225769 78293900 \n",
"2020-05-22 289.920683 290.963951 288.591985 290.776947 63958200 \n",
"2020-05-26 297.164459 297.420365 290.796577 294.359436 88951400 \n",
"2020-05-27 297.351478 298.778604 292.184342 298.739227 104817400 \n",
"... ... ... ... ... ... \n",
"2021-04-29 420.320007 420.720001 416.440002 420.059998 78544300 \n",
"2021-04-30 417.630005 418.540009 416.339996 417.299988 85448400 \n",
"2021-05-03 419.429993 419.839996 417.670013 418.200012 68128300 \n",
"2021-05-04 416.070007 416.600006 411.670013 415.619995 101441600 \n",
"2021-05-05 417.380005 417.630005 414.945007 416.890015 28129413 \n",
"2021-05-13 407.070007 412.350006 407.019989 410.279999 106394000 \n",
"2021-05-14 413.209991 417.489990 413.179993 416.579987 82123100 \n",
"2021-05-17 415.390015 416.390015 413.359985 415.519989 65129200 \n",
"2021-05-18 415.799988 416.059998 411.769989 411.940002 59266000 \n",
"2021-05-19 406.920013 410.250000 405.329987 408.234985 66477971 \n",
"\n",
" sma_10 sma_20 sma_50 sma_200 vol_sma_20 \n",
"date \n",
"2020-05-06 281.025305 277.757211 268.165192 292.634901 1.143152e+08 \n",
"2020-05-07 281.871735 278.428940 267.732156 292.596652 1.103890e+08 \n",
"2020-05-08 282.803787 279.129703 267.666591 292.574995 1.047116e+08 \n",
"2020-05-11 283.340182 279.958412 267.626670 292.560612 1.029454e+08 \n",
"2020-05-12 283.432700 280.100139 267.220916 292.507798 1.010318e+08 \n",
"... ... ... ... ... ... \n",
"2021-04-29 416.230997 412.690996 398.270767 362.190824 6.882898e+07 \n",
"2021-04-30 416.234995 413.525496 398.827877 362.686503 6.811726e+07 \n",
"2021-05-03 416.533997 414.117497 399.416743 363.191922 6.693943e+07 \n",
"2021-05-04 416.878995 414.592497 400.013813 363.679845 6.891046e+07 \n",
"2021-05-05 416.960995 415.107498 400.626913 364.161266 6.752512e+07 \n",
" sma_10 sma_20 sma_50 sma_200 vol_sma_20 \n",
"date \n",
"2020-05-20 285.033035 283.029170 266.659134 292.472755 98976520.00 \n",
"2020-05-21 285.741672 283.806703 267.094627 292.529205 97655730.00 \n",
"2020-05-22 286.036938 284.420363 268.054838 292.587587 96600480.00 \n",
"2020-05-26 286.684552 285.012367 268.671635 292.636502 97153220.00 \n",
"2020-05-27 288.343939 285.888319 269.952733 292.717008 97130590.00 \n",
"... ... ... ... ... ... \n",
"2021-05-13 415.589999 415.910498 404.295667 367.011310 79515840.00 \n",
"2021-05-14 415.517999 415.876497 405.117861 367.487226 79520130.00 \n",
"2021-05-17 415.249997 415.891997 405.780709 367.963577 78851665.00 \n",
"2021-05-18 414.881998 415.880496 406.410032 368.409374 77722375.00 \n",
"2021-05-19 414.130496 415.488745 406.856610 368.825426 77706623.55 \n",
"\n",
"[252 rows x 10 columns]"
]
@@ -491,64 +491,64 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-04-29</th>\n",
" <td>416.230997</td>\n",
" <td>412.690996</td>\n",
" <td>398.270767</td>\n",
" <td>362.190824</td>\n",
" <td>68828980.00</td>\n",
" <td>416.731457</td>\n",
" <td>411.279275</td>\n",
" <td>401.000737</td>\n",
" <td>0.006373</td>\n",
" <th>2021-05-13</th>\n",
" <td>415.589999</td>\n",
" <td>415.910498</td>\n",
" <td>404.295667</td>\n",
" <td>367.011310</td>\n",
" <td>79515840.00</td>\n",
" <td>413.680581</td>\n",
" <td>413.448932</td>\n",
" <td>405.708303</td>\n",
" <td>0.012013</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-30</th>\n",
" <td>416.234995</td>\n",
" <td>413.525496</td>\n",
" <td>398.827877</td>\n",
" <td>362.686503</td>\n",
" <td>68117255.00</td>\n",
" <td>416.857798</td>\n",
" <td>411.826612</td>\n",
" <td>401.639924</td>\n",
" <td>-0.006571</td>\n",
" <th>2021-05-14</th>\n",
" <td>415.517999</td>\n",
" <td>415.876497</td>\n",
" <td>405.117861</td>\n",
" <td>367.487226</td>\n",
" <td>79520130.00</td>\n",
" <td>414.324894</td>\n",
" <td>413.733573</td>\n",
" <td>406.134643</td>\n",
" <td>0.015355</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-03</th>\n",
" <td>416.533997</td>\n",
" <td>414.117497</td>\n",
" <td>399.416743</td>\n",
" <td>363.191922</td>\n",
" <td>66939430.00</td>\n",
" <td>417.156067</td>\n",
" <td>412.406012</td>\n",
" <td>402.289339</td>\n",
" <td>0.002157</td>\n",
" <th>2021-05-17</th>\n",
" <td>415.249997</td>\n",
" <td>415.891997</td>\n",
" <td>405.780709</td>\n",
" <td>367.963577</td>\n",
" <td>78851665.00</td>\n",
" <td>414.590470</td>\n",
" <td>413.895974</td>\n",
" <td>406.502696</td>\n",
" <td>-0.002545</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-04</th>\n",
" <td>416.878995</td>\n",
" <td>414.592497</td>\n",
" <td>400.013813</td>\n",
" <td>363.679845</td>\n",
" <td>68910460.00</td>\n",
" <td>416.814718</td>\n",
" <td>412.698193</td>\n",
" <td>402.812110</td>\n",
" <td>-0.006169</td>\n",
" <th>2021-05-18</th>\n",
" <td>414.881998</td>\n",
" <td>415.880496</td>\n",
" <td>406.410032</td>\n",
" <td>368.409374</td>\n",
" <td>77722375.00</td>\n",
" <td>414.001478</td>\n",
" <td>413.718159</td>\n",
" <td>406.715924</td>\n",
" <td>-0.008616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-05</th>\n",
" <td>416.960995</td>\n",
" <td>415.107498</td>\n",
" <td>400.626913</td>\n",
" <td>364.161266</td>\n",
" <td>67525115.65</td>\n",
" <td>416.831451</td>\n",
" <td>413.079267</td>\n",
" <td>403.364184</td>\n",
" <td>0.003056</td>\n",
" <th>2021-05-19</th>\n",
" <td>414.130496</td>\n",
" <td>415.488745</td>\n",
" <td>406.856610</td>\n",
" <td>368.825426</td>\n",
" <td>77706623.55</td>\n",
" <td>412.720035</td>\n",
" <td>413.219688</td>\n",
" <td>406.775495</td>\n",
" <td>-0.008994</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@@ -557,19 +557,19 @@
"text/plain": [
" sma_10 sma_20 sma_50 sma_200 vol_sma_20 \\\n",
"date \n",
"2021-04-29 416.230997 412.690996 398.270767 362.190824 68828980.00 \n",
"2021-04-30 416.234995 413.525496 398.827877 362.686503 68117255.00 \n",
"2021-05-03 416.533997 414.117497 399.416743 363.191922 66939430.00 \n",
"2021-05-04 416.878995 414.592497 400.013813 363.679845 68910460.00 \n",
"2021-05-05 416.960995 415.107498 400.626913 364.161266 67525115.65 \n",
"2021-05-13 415.589999 415.910498 404.295667 367.011310 79515840.00 \n",
"2021-05-14 415.517999 415.876497 405.117861 367.487226 79520130.00 \n",
"2021-05-17 415.249997 415.891997 405.780709 367.963577 78851665.00 \n",
"2021-05-18 414.881998 415.880496 406.410032 368.409374 77722375.00 \n",
"2021-05-19 414.130496 415.488745 406.856610 368.825426 77706623.55 \n",
"\n",
" EMA_8 EMA_21 EMA_50 PCTRET_1 \n",
"date \n",
"2021-04-29 416.731457 411.279275 401.000737 0.006373 \n",
"2021-04-30 416.857798 411.826612 401.639924 -0.006571 \n",
"2021-05-03 417.156067 412.406012 402.289339 0.002157 \n",
"2021-05-04 416.814718 412.698193 402.812110 -0.006169 \n",
"2021-05-05 416.831451 413.079267 403.364184 0.003056 "
"2021-05-13 413.680581 413.448932 405.708303 0.012013 \n",
"2021-05-14 414.324894 413.733573 406.134643 0.015355 \n",
"2021-05-17 414.590470 413.895974 406.502696 -0.002545 \n",
"2021-05-18 414.001478 413.718159 406.715924 -0.008616 \n",
"2021-05-19 412.720035 413.219688 406.775495 -0.008994 "
]
},
"execution_count": 7,
@@ -646,39 +646,39 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-04-29</th>\n",
" <th>2021-05-13</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-04-30</th>\n",
" <th>2021-05-14</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-03</th>\n",
" <th>2021-05-17</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-04</th>\n",
" <th>2021-05-18</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-05</th>\n",
" <th>2021-05-19</th>\n",
" <td>0</td>\n",
" <td>-1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
@@ -687,11 +687,11 @@
"text/plain": [
" TS_Trends TS_Trades TS_Entries TS_Exits\n",
"date \n",
"2021-04-29 1 0 0 0\n",
"2021-04-30 1 0 0 0\n",
"2021-05-03 1 0 0 0\n",
"2021-05-04 1 0 0 0\n",
"2021-05-05 1 0 0 0"
"2021-05-13 1 0 0 0\n",
"2021-05-14 1 0 0 0\n",
"2021-05-17 1 0 0 0\n",
"2021-05-18 1 0 0 0\n",
"2021-05-19 0 -1 0 1"
]
},
"execution_count": 8,
@@ -721,12 +721,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Current Trade:\n",
"Price Entry | Last:\t388.3082 | 416.8900\n",
"Unrealized PnL | %:\t28.5818 | 7.3606%\n",
"\n",
"Trades Total | Round Trip:\t7 | 3\n",
"Trade Coverage: 81.35%\n"
"Trades Total | Round Trip:\t10 | 5\n",
"Trade Coverage: 80.56%\n"
]
},
{
@@ -763,9 +760,21 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2020-06-04</th>\n",
" <th>2020-06-18</th>\n",
" <td>1</td>\n",
" <td>306.445618</td>\n",
" <td>306.859009</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-06-29</th>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>300.973206</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-06-30</th>\n",
" <td>1</td>\n",
" <td>304.828522</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
@@ -804,6 +813,12 @@
" <td>388.308197</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-05-19</th>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>408.234985</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
@@ -811,13 +826,16 @@
"text/plain": [
" Signal Entry Exit\n",
"date \n",
"2020-06-04 1 306.445618 NaN\n",
"2020-06-18 1 306.859009 NaN\n",
"2020-06-29 -1 NaN 300.973206\n",
"2020-06-30 1 304.828522 NaN\n",
"2020-09-11 -1 NaN 330.234192\n",
"2020-10-05 1 337.213409 NaN\n",
"2020-10-28 -1 NaN 324.211609\n",
"2020-11-05 1 347.614868 NaN\n",
"2021-03-03 -1 NaN 380.174835\n",
"2021-03-10 1 388.308197 NaN"
"2021-03-10 1 388.308197 NaN\n",
"2021-05-19 -1 NaN 408.234985"
]
},
"execution_count": 9,
@@ -911,7 +929,7 @@
{
"data": {
"text/plain": [
"<AxesSubplot:title={'center':'\\nSPY [D for 1y(252 bars)] from Wednesday 5-6-2020 to Wednesday 5-5-2021\\nLast OHLCV: (417.3800, 417.6300, 414.9450, 416.8900, 28129413)\\nWednesday May 5, 2021, NYSE: 5:50:45, Local: 9:50:45 PDT, Day 125/365 (34.00%)'}, xlabel='date'>"
"<AxesSubplot:title={'center':'\\nSPY [D for 1y(252 bars)] from Wednesday 5-20-2020 to Wednesday 5-19-2021\\nLast OHLCV: (406.9200, 410.2500, 405.3300, 408.2350, 66477971)\\nWednesday May 19, 2021, NYSE: 7:20:10, Local: 11:20:10 PDT, Day 139/365 (38.00%)'}, xlabel='date'>"
]
},
"execution_count": 11,
@@ -920,7 +938,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
@@ -963,7 +981,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x61.2 with 1 Axes>"
]
@@ -1007,7 +1025,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x108 with 1 Axes>"
]
@@ -1038,7 +1056,7 @@
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x12cea1910>"
"<matplotlib.lines.Line2D at 0x12f2f8fa0>"
]
},
"execution_count": 14,
@@ -1047,7 +1065,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7AAAADTCAYAAAC4Nf+rAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAACvIklEQVR4nOy9d5xcV3n//75t+uzO9lVZaSVZ7kUuYGxsYwy40ImB0ENCII0khJAEQkJCvoSQ5BcSSIGEQEC2waYZAwbbgC1X3KtsS7KkXe2utpfpM3duOb8/zszszs7M7mzRrmTu+/Xyy9o7t5y5c+855znP83weRQiBh4eHh4eHh4eHh4eHh8fxjrreDfDw8PDw8PDw8PDw8PDwaATPgPXw8PDw8PDw8PDw8PA4IfAMWA8PDw8PDw8PDw8PD48TAs+A9fDw8PDw8PDw8PDw8Dgh8AxYDw8PDw8PDw8PDw8PjxMCfb0bsBza29tFb2/vmlwrk8kQDofX5FoeJx7e8+HRKN6z4rEQ3vPhsRjeM+IxF+958FiIF8Pz0d7ezu233367EOLq+Z+dkAZsb28vjz766Jpca8+ePVx++eVrci2PEw/v+fBoFO9Z8VgI7/nwWAzvGfGYi/c8eCzEi+X5UBSlvdZ2L4TYw8PDw8PDw8PDw8PD44TAM2A9PDw8PDw8PDw8PDw8Tgg8A9bDw8PDw8PDw8PDw8PjhMAzYD08PDw8PDw8PDw8PDxOCDwD9gTk6aefZmhoaL2b4eHh4eHh4eHh4eHhsaZ4BuwJhhCCW2+9lUceeWS9m+Lh4eHh4eHh4eHh4bGmeAbsCUYikaBQKGBZ1no3xcPDw8PDw8PDw8PDY03xDNgTjPHxcQDPgPXw8PDw8PDw8PDw+JXDM2BPMEoGrG3b69wSDw8PDw8PDw8PDw+PtcUzYE8wJiYmAM8D6+Hh4eHh4eHh4eHxq4dnwJ5geCHEHh4eHh4eHh4eHh6/qngG7AmE67plD+zxHEKcSxwlOfz0ejfDw8PDw8PDw8PDw+NFhmfAnkDMzMzgOA66rh/XHtixOz6I+otLcO3CejfFw8PDw8PDw8PDw+NFhGfAnkCUwoe7u7uPawNWtyaJaCnG9n5nvZvi4eHh4eHh4fGiIjN5GOG6690MD491wzNgTyBKBuyGDRuO6xBizc0AYB781jq3xMPDw8PDw8PjxUPi6JMEb9+JMX3vejfFw2Pd8AzYE4jx8XFaWloIhULYto0QYr2bVBNNZAFoz92DcJ11bo2Hh4eHh4eHx4uD1MA9qIqLYY2ud1M8PNYNz4A9gZiYmKCzsxNd14HjV8jJIEvBNYhoKcaf/cF6N8fDw8PjhCUej5NIJNa7GR4eHscJ9vRzAKhudp1b4uGxfngG7AmCbdtMTU3R0dGBYRjA8VtKxyDPmH4BtquTO3DdejfHw8PD44TlW9/6Frt378ZxvGgWDw8PUDMvAKC5uXVuiYfH+rEqBqyiKFcrirJfUZSDiqJ8vMbnfkVRbip+/pCiKL3F7a9RFOUxRVGeKf7/itVoz4uRqakpXNels7OzbMAetx5YxcQxuhhVd9GWvdsLI/bw8PBYBlNTU4yPjzM9Pc1TTz213s3x8PA4DvAXBgDQhGfAevzqsmIDVlEUDfhP4BrgdOCdiqKcPm+3DwAzQoiTgH8F/rG4fRJ4gxDiLOA3AM9dV4eSgNPcEOLj0QMrXAe/aoIRxd38FqJanIl9P1nvZnl4eHiccOzbtw+AtrY27rnnnuN20dLDw2PtiIphAFSRX+eWeHisH6vhgX0pcFAIcVgIUQBuBN40b583Ad8o/vu7wKsURVGEEE8IUXwT4VkgqCiKfxXa9KJjfHwcVVVpb28/rkOIC9kZ+Q+jic5dv4UjNLL7d69vozw8XiRM7PspucTR9W6Gxxqxb98+NmzYwDXXXEMikeCxxx5b7yZ5eHisI9n4ICFN5r7qngfW41cYfRXOsQkYnPP3EHBhvX2EELaiKAmgDemBLXEt8LgQwqx1EUVRPgR8CKCrq4s9e/asQtMXJ51Or9m1FuL5558nEAhw7733MjU1BcDDDz9MU1PTOrdsHrlhLgfGZ3L0P76PXusUYqlfcNedd6Koq5NyLVyXpuGvkI69GhHZsSrnXC7Hy/Phcfyz0mdFuC4vH34Tz7qvJbHlI6vWLo/jg/nPh2maDA0N0dvby8DAABd17aPnuf9lT84LVPpVxRtvPNTph7is9G+R854Hj7q82PuL1TBgV4yiKGcgw4qvrLePEOJ/gP8BuOCCC8Tll1++Jm3bs2cPa3WthXj66afp7e3l8ssvp7+/n71793LWWWexbdu29W5aBTNHfgn3Q3fPTrZcejlH7nobsZFPc+Zmi46Tr1qVa6QnXiAyeiN9IsC2yz+wKudcLsfL8+Fx/LPSZ8Wx8mjfsWgJCs71nrkXHfOfj0cffRSAa665hs7OTkaS/8qGzBCdF70E3R9ep1Z6rCfeeOMxsOceGIa868enmHWfByEEQ0NDbN68GUVR1raRHscFL/b+YjVcYkeBnjl/by5uq7mPoig60AxMFf/eDNwMvE8IcWgV2vOio1AoMDMzQ2dnJ8BxHUJsZacB0PwtAHSc+wFcoZJ57hsLHbYk0sMyjE4pxFftnB4exzu2mQZAcV78YWPxwUfJTB5e72asK/v27aO1tZWOjg4A/EoGgHzSCyH38PhVxY3vwxEqCbEZnZoBiwCMjo7yta99jYMHD65h6zw81o7VMGAfAXYqirJNURQf8A7gh/P2+SFSpAngrcCdQgihKEoMuBX4uBDi/lVoy4uSyUkZaV0yYOfXgRVCkE6n16dx83BMmQOr+psBCMV6GOV0mlM/R7juqlzDnHxGXsNJrsr5PDxOBOxC0YB1X+TCHUKg7rmSqTs/WN40dfgejn7zXKzcr0Y9VMuy6Ovr45RTTil7T/xC9ndmcnihQz08PF7E6LlDJN12bDWCsYABm8nIBa+jR70FL48XJys2YIUQNvBh4HbgeeDbQohnFUX5O0VR3ljc7atAm6IoB4GPAqVSOx8GTgI+pSjKk8X/OlfapuMB27Z58MEHV8VLOleBGKo9sM8//zxf+MIXyOXW3zPj5OMA6MGW8rZC1xto0SaY7rtnVa4hkvsBUO3UqpzPw+NEwCnICYl6HBmwQghyuRzj4+McPnyYp556ivvuu4+f/vSn3Hvvvcs6Z2H6OZq0GTR7urwtdfg2NvEkUy/csVpNP645evQorutWpIgYrjRgrfToejXLw+O4YuDuzzBw99+vdzPWlKA9REbrwVWD6Ep9A7ZQKADSE+vh8WJkVXJghRA/AX4yb9un5vw7D7ytxnGfAT6zGm043ti7dy+33347gUCAXbt2rehc4+PjaJpGS4s0CucbsPF4HNu2SafTBIPBFV1rpbim9JAYwbbyto5dv417++dIPvt/tO24fMXX0HN9AGiuZ8B6/OpQNmCPk9IJyWSSL3/5yzUXzlRVxXVdLrroonLESKNk+36CD9DcOee15LueH3uUGkNJBYmRp8n+4p2EXnk9zZvOXdK1jxcGB6Uu4ubNm8vbNEf2rVbm+J6QOlae0W+/DPXMj7PhnHesd3M8XsREBv6TJnWC+NDVxDafv97NOea4tkWzMk4qeDGKNYPxIjVgEyNPk//5rxG68kdEu05b7+Z4HKesjiysRxXPP/88AIcPrzyPa2Jigo6ODtSiiu/8EGLTNCv+v564ZhwAI9ha3hZu386YOIXmxOp4T8LOkLyGyKzK+daCiQN3MHr9qeSTJ95g4nF84FqydMLxYsCOjY2Ry+W46KKLuPbaa3n/+9/PH/7hH/KJT3yCa665BmBZUSFibA8A2pwSEcIuhk8n9i58rOuSvuv9bFCfI3H4xPXWDg4O0tHRMbsgKQSqJT3Sbm5iHVu2OMnhJ9ikPIV5xKv/7XHsEK5LRJlGVxzS93xovZuzJqTGnkVXbZTmUxFaGJ9SqLtvyYBNJBLHRXTeUkgc+CFd2iGmnvrf9W6Kx3GMZ8AeA/L5PIcOST2qw4cPI4RY0fnGx8fL4cNQ7YEtGa75/NIntkIIbrrpJn784x+vqI1lip4SX6S9YrPZ+XpatVGm+1aW6uzaBZpUmRNssLYGbP/Nb+XoI19Z8nGubcFDH6Jb3U9y6OFj0DKPE4X0xAGmDu1Z1rElD6x2nBiwyaQMab3wwgs588wz2bp1K62trfh8PgKBALCMPkkIgin5jmhz8ruUogHrzy8sSHL0of9kE08A4OanF9z3eEUIweDgYIX3FTuNImR/L/LHtwGbGX1S/sOcXHA/j2NP/w/fz8CNr1jvZhwTcsmj+NQCM04Hm3mco4+8+I2dzIjs2/ztZyG0EIZa34Cd69BYyAvrrpI2yWriJg4AoE/evernzs4MlAURPU5sPAP2GHDgwAEcx+H8888nk8kwNja27HPl83mSyWRZiRJA0zSg2gO7HAP2wIED7Nu3rxyytlKEncIVKrovUrG9/VwpyJJ89v9WdP7kyNNoikve9eNXsis611Kw8kl6c9+jY/+HmTq8tFzewbs/TYd2BAA7O3UsmvcrxdTBuxi49x/XuxnLIvGzd6A+8OvLOrbkgV1IeXItSSaTKIpCJBKp+qzkOVzyyn/6EAF3EtvVKgVKbGm8N4vBumJwZnqS5oOfYtrplhsKM0u79nHC5OQk+XyeLVu2zG40p2r/exnEhx5j8P5/IZc4NuIu9oyMPtJtr69bb8KJO+m2H0S4zppdMzm6l7Fnf3DMr5MZfw6A1LY/Z8bpJLjvr4/5NdebwpQUsIxuvAD0CLri4BRq97ElDyzUN2BHR0f57Gc/WxYKPV5Qs/0AdLh7cazVWbAtZKfpv/nt+H+yjaGf/vaqnNNjffEM2GPAc889RzQa5bLLZLnpkjd2OcwXcAJQFAXDMFbsgXUchzvukGF2JcW6peK6LnfffXfZG6NYSQrCh6JWPlqRjpMZc08iMnP7sq5TIjMqVyBLine truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x216 with 1 Axes>"
]
@@ -1078,7 +1096,7 @@
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x12d14e610>"
"<matplotlib.lines.Line2D at 0x12f280af0>"
]
},
"execution_count": 15,
@@ -1087,7 +1105,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAADjCAYAAACfFKnTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAB6ZklEQVR4nOz9eXykWX3Y+3/Os9RepX3tfZmNYWA2BhiY8WCwGS+ASbDBwAViO9j5mZ9tHDuOfW1fsJOLfc29MQnkOhgn2HEMxguEONjYMTPDwAyzMXtPT4+k1q6qUm2q/alnOfePkmrU3ZJa6lZL6u7v+/XSq1X1bOcpnZbqW99zvkdprRFCCCGEEEIIIXaKsdsNEEIIIYQQQghxdZFAVAghhBBCCCHEjpJAVAghhBBCCCHEjpJAVAghhBBCCCHEjpJAVAghhBBCCCHEjpJAVAghhBBCCCHEjpJAVAghhLgMKaX+QCn1G7vdDiGEEOJCSCAqhBDiDEqpSaVUQylVVUoVlVL/Uyl14Kx9vl8pdVIpVVFKPa2UuuWs7fcopWbXOPf9SqmfutT3cNY1U0qp31dKTS/f0/jy4/6dbMdZbbp/+bUNb3L/DymlvrX6Oa31z2itf/sStG31zz+tlPq8UiqxyWN3/OcrhBDi8iSBqBBCiLW8TWudAEaADPAfztr+x8D/DaSA9wLFnW3e5iilQsA/AjcC99Ju7+uBPHDHLrXpMHAXoIG370YbNmHl538zcAvwqztxUaWUtRPXEUIIsfskEBVCCLEurXUT+EvgFWdtcoFJ3fa81nryYq6jlAorpUpKqVeuem5gOTM3qJTqV0r9zfI+BaXUg0qpzfwN+wBwEHin1vqE1jrQWme11r+ttf7a8nW0Uur4qut+Xin1b5a/v0cpNauU+ldKqaxSakEp9SNKqR9USp1absuvbfF2PwB8B/g88MGzXocDSqm/VkotKqXySqlPK6VuAP4AeP1ylrK0RjtfUEr98KrzWMvnuHX58euUUg8tv35PK6Xu2UxDtdZp4Ou0A9KVc695LqXUv6UdYH96uZ2fVkodXn59rVXHd7Kmy5nebyul/p1SKg98bPm+PrOcia8opR5RSh1b3l8t75tVSpWVUs+u7jNCCCEuHxKICiGEWJdSKga8m3bgtPKcAh4FPrec3btoWmsH+Gvgx1c9/WPAA1rrLPAvgVlgABgCfo12RvF83gL8nda6ehHNGwYiwD7gN4E/BN4P3EY78PoNpdSRLZzvA8B/W/56q1JqCEApZQJ/A0wBh5ev90Wt9QvAzwAPa60TWuvuNc75Bc587d4K5LTW31VK7QP+J/BvgF7gl4C/UkoNnK+hSqn9wA8AY8uP1z2X1vp/Bx4EPrLczo9s8vV4LTBB++f6b5efew/wcaBn+dorz38/cDdwLdBFu4/kN3kdIYQQe4gEokIIIdbyleXM2xLwfcDvrdr2K0CMdjD4jyvBqFLqp5RSf7Vqv9HlrFnnC3jjBtf8M9oByIr3Lj8H7QzsCHBIa+1qrR/UWm8mEO0DFjax30Zc4N9qrV3gi0A/8CmtdUVr/TxwAnj1Zk6klHojcAj4ktb6CWCc9n1Ce6jwKPDLWuua1rqptf7WOqc6258Bb1/+4IDlc35h+fv3A1/TWn9tOSP8D8DjwA9ucL6vKKUqwAyQBf6PizjX+cxrrf+D1trTWjeWn/uy1vpRrbVHO2C/efl5F0gC1wNKa/2C1vpif75CCCF2gQSiQggh1vIjy5m3CPAR4AGl1PDytp8Hfltr/d9oB6j3LQejbwC+seoc81rr7tVfwEaB1X1ATCn12uXz3Qx8eXnb79HOjP29UmpCKfWvN3kfedoB7MXIa6395e9XAqXMqu0NYFPFfGgPxf17rXVu+fGf8fLw3APA1HLwtSVa6zHgBeBty8Ho23k5iD8E/OgaHwhs9Lr8iNY6CdxDO+hbKex0Iec6n5k1nkuv+r7O8uurtf4G8GngM0BWKfVZpVTqIq4thBBil0hRACGEEOtaDsD+Win1n2gHHH9J+2+Hvbz9D5RSvcD9y4f83MVcSyn1JdpDTDPA32itK8vbKrSH5/7L5TmB31BKPaa1/sfznPZ/Af9GKRXXWtfW2adOO8O7Ypj2MOBtpZSK0h5KaiqlVgKtMNCtlHo17YDsoFLKWiMY3Uz2d2V4rgGcWA5OWT7vf9Va//Ottllr/YBS6vPAJ4Ef2cS5zm7nymseA8rL3w+ftc9m7m11m/498O+VUoPAl4BfBmQZGyGEuMxIRlQIIcS6lovDvIP2XL0Xlp/+C+D3lFJHl4vQPEp7vqADmBd5yT+jPSf1fbyc0UMp9cNKqePL81OXAB8INnG+/0o7ePorpdT1SilDKdWnlPo1pdTKcNKngPcqpUyl1L3A91zkPaznR2i3+xW0s703AzfQnlf5Adqv4wLwO0qpuFIqopR6w/KxGWC/alcBXs8Xac+h/Beseu2AP6WdKX3r8j1GVLsI0/5Ntvv3ge9bDpbPd64McHTlQK31IjAHvH95/58Ajm3yuudQSr1mOWNu0w5ym2yuHwghhNhjJBAVQgixlv+hlKrSzmL9W+CDy/MhoZ2ZfBD4JlACPga8E3iadvbUvtCLaq0foR1gjAJ/u2rTNbSzm1XgYeA/aq3vA1BK/a1ap3LtchGktwAngX9Yvp9HaQ81fWR5t58H3rZ8L+8DvnKh7VdKvU8p9fw6mz8I/Bet9bTWOr3yRXuo6fsAtdyO48A07azsu5eP/QbwPJBWSuXOPTUsz5V8GLgT+PNVz88A76A9p3eRdmD+y2zyPcByMPknwG9u4lyfAt6l2muk/vvl5/758j552svoPLSZ664jRbtYVJF2Uac8Z85fFkIIcZlQm6v1IIQQQgghhBBCbA/JiAohhBBCCCGE2FESiAohhBBCCCGE2FGbCkSVUvcqpV5USo1tVDJfKfVPlVJaKXX79jVRCCGEEEIIIcSV5LyBqFLKpL1e1w/QrvT340qpV6yxX5J2wYdHzt4mhBBCCCGEEEKs2Mw6oncAY1rrCQCl1BdpV8w7cdZ+vw38Lu3KeOfV39+vDx8+vPmWiqtCrVYjHo/vdjPEZUD6itiI9A+xEekfYoX0BbER6R8X74knnshprQfW2raZQHQf7fLsK2aB167eQSl1K3BAa/0/lVLrBqJKqQ8DHwYYGhrik5/85CYuL64m1WqVRCKx280QlwHpK2Ij0j/ERqR/iBXSF8RGpH9cvDe96U1T623bTCC6IaWUAfw/wIfOt6/W+rPAZwFuv/12fc8991zs5cUV5v7770f6hdgM6StiI9I/xEakf4gV0hfERqR/XFqbKVY0BxxY9Xj/8nMrksArgfuVUpPA64CvSsEiIYQQQgghhBBr2Uwg+hhwjVLqiFIqBLwH+OrKRq31kta6X2t9WGt9GPgO8Hat9eOXpMVCCCGEEEIIIS5r5x2aq7X2lFIfAb4OmMB/1lo/r5T6LeBxrfVXNz7D5rmuy+zsLM1mc7tOedWLRCLs378f27Z3uylCCCGEEEIIAWxyjqjW+mvA18567jfX2feeC23M7OwsyWSSw4cPo5S60NOIZVpr8vk8s7OzHDlyZLebI4QQQgghxBXL8zzS6TRdXV0kk8ndbs6ed9HFirZTs9mUIHQbKaXo6+tjcXFxt5sihBBCCCHEFcv3fV566SXm5uZoNpvs37+fI0eO0NXVtdtN27P2VCAKSBC6zeT1FEIIIYQQYn3VapWxsTG6urouaBThShA6Pz9Ps9lEKcULL7zA1NQU+/bt4+jRo/T09Mj78rPsuUBUCCGEEEIIIbaT1hrP89BaYxgGhmGglKJcLneCyFqtRrPZ5Prrr8f3fVzXZWlpCdd1cV0X3/fp7+8nEomccd7Tp08zPz9Po9FgcHAQ0zQZHBwkn88zNjbGzMwMo6OjHD9+nL6+vl18FfaWPR2IPvroo1QqlW07XzKZ5I477ti28wkhhBBCCCG2T6lUYnFxEdM0SSaTJBIJotHopo/3PI9cLker1cJ1XVqtFo7j0Gw28TwP3/dRSnW+Vq4ZjUaxLIsnn3ySxcVFDMMgm83yxBNPdAJR13WJxWLceeednTmgMzMzLCwsUK1WGRoawjRNAAzDYGBggL6+PorFIpOTk8zOznLnnXcyMjKyZtvr9TpLS0vYtk04HCYUChEKha7YTOqeDkQrlQrd3d3bdr5SqXTefUzT5KabbsLzPG644Qb++I//mFgsRjqd5hd+4Rd47LHH6O7uZmhoiE984hN88IMfBGB6epquri66urro7+/nc5/7HDfccAPXXXcdrVaL22+/nT/6oz/Ctm3uv/9+3vGOd5yR+v/VX/1VPvGJTwCQTqcxTZOBgQGgHZCHQqFz2voTP/ET/M3f/A2Dg4M899xz2/AKCSGEEEIIsfNarRZjY2MUCgVKpRK1Wo1wOEw8HieRSNDX19cpAhSLxQAIgoCJiQmi0Sj79u0DYHJykqmpKarVKkEQEAQBSilM0+xkQbXWnS+lFIlEojOX07Zt8vk8lmURDodxHAfLskilUgDMzc1x33338YpXvIIgCMjlchSLRQYGBrCsc0MrwzDo6+ujt7eXyclJHn74Yd761rcSj8fP2Xel7b7vEwqFsG0by7KIRqPEYjFGR0e3NTbabXs6EN0N0WiUp556CoD3ve99/MEf/AEf/ehHeec738kHP/hBvvjFLwLw9NNPUy6XO/t+6EMf4od/+Id517veBbQ70rFjx3jqqafwfZ/v+77v40tf+hLve9/7ALjrrrv4m7/5mzOu/e53vxuAj33sYyQSCX7pl35pw7Z+6EMf4iMf+Qgf+MAHtuv2hRBCCCGE2HFTU1PMzc3hOA7JZJKhoSFqtRrVapVKpcLU1BS2bZNIJLjxxhvZv38/c3NzzM3NkU6nueeee7Btm2w2S61Wo7+/H8uyME1zSxnF3t5eent7AchkMgwODp6x/ejRo8zMzPDkk092hvj29/eLine truncated
"text/plain": [
"<Figure size 1152x216 with 1 Axes>"
]
File diff suppressed because it is too large. Load diff
+166 -161
View File
@@ -199,6 +199,10 @@
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>use_numba</th>\n",
" <td>True</td>\n",
" </tr>\n",
" <tr>\n",
" <th>seed</th>\n",
" <td>None</td>\n",
" </tr>\n",
@@ -246,6 +250,7 @@
"order_direction all\n",
"cash_sharing False\n",
"row_wise False\n",
"use_numba True\n",
"seed None\n",
"freq 1D\n",
"incl_unrealized False\n",
@@ -446,8 +451,8 @@
"output_type": "stream",
"text": [
"[i] Downloading: SPY, QQQ\n",
"[+] SPY(7121, 7) Monday May 10, 2021, NYSE: 11:48:57\n",
"[+] QQQ(5579, 7) Monday May 10, 2021, NYSE: 11:48:59\n",
"[+] SPY(7128, 7) Wednesday May 19, 2021, NYSE: 7:18:34\n",
"[+] QQQ(5586, 7) Wednesday May 19, 2021, NYSE: 7:18:36\n",
"[*] Download Complete\n",
"\n"
]
@@ -468,9 +473,9 @@
"output_type": "stream",
"text": [
"[i] Downloading: AAPL, TSLA, TWTR\n",
"[+] AAPL(10188, 7) Monday May 10, 2021, NYSE: 11:49:01\n",
"[+] TSLA(2735, 7) Monday May 10, 2021, NYSE: 11:49:03\n",
"[+] TWTR(1888, 7) Monday May 10, 2021, NYSE: 11:49:06\n",
"[+] AAPL(10195, 7) Wednesday May 19, 2021, NYSE: 7:18:39\n",
"[+] TSLA(2742, 7) Wednesday May 19, 2021, NYSE: 7:18:40\n",
"[+] TWTR(1895, 7) Wednesday May 19, 2021, NYSE: 7:18:42\n",
"[*] Download Complete\n",
"\n"
]
@@ -1372,41 +1377,41 @@
{
"data": {
"text/plain": [
"Run Time Monday May 10, 2021, NYSE: 11:49:06\n",
"Mode TEST\n",
"Strategy Buy and Hold\n",
"Direction longonly\n",
"Symbol SPY\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 1.945272\n",
"Total Return [%] 1.945272\n",
"Benchmark Return [%] 2.455635\n",
"Position Coverage [%] 100.0\n",
"Max. Drawdown [%] 55.189436\n",
"Avg. Drawdown [%] 2.615867\n",
"Max. Drawdown Duration 562 days 00:00:00\n",
"Avg. Drawdown Duration 24 days 01:55:11.999999999\n",
"Num. Trades 0\n",
"Gross Exposure 1.0\n",
"Sharpe Ratio 0.163325\n",
"Sortino Ratio 0.231223\n",
"Calmar Ratio 0.010149\n",
"Annual Return [%] 0.560106\n",
"Annual Volatility [%] 28.894472\n",
"Omega Ratio 1.028442\n",
"Skew 0.426804\n",
"Kurtosis 14.956038\n",
"Tail Ratio 0.88191\n",
"Common Sense Ratio 0.88685\n",
"Value at Risk -0.022291\n",
"Alpha -0.001443\n",
"Beta 1.000002\n",
"Run Time Wednesday May 19, 2021, NYSE: 7:18:48\n",
"Mode TEST\n",
"Strategy Buy and Hold\n",
"Direction longonly\n",
"Symbol SPY\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 1.945272\n",
"Total Return [%] 1.945272\n",
"Benchmark Return [%] 2.455635\n",
"Position Coverage [%] 100.0\n",
"Max. Drawdown [%] 55.189436\n",
"Avg. Drawdown [%] 2.615867\n",
"Max. Drawdown Duration 562 days 00:00:00\n",
"Avg. Drawdown Duration 24 days 01:55:11.999999999\n",
"Num. Trades 0\n",
"Gross Exposure 1.0\n",
"Sharpe Ratio 0.163325\n",
"Sortino Ratio 0.231223\n",
"Calmar Ratio 0.010149\n",
"Annual Return [%] 0.560106\n",
"Annual Volatility [%] 28.894472\n",
"Omega Ratio 1.028442\n",
"Skew 0.426804\n",
"Kurtosis 14.956038\n",
"Tail Ratio 0.88191\n",
"Common Sense Ratio 0.88685\n",
"Value at Risk -0.022291\n",
"Alpha -0.001443\n",
"Beta 1.000002\n",
"dtype: object"
]
},
@@ -1454,41 +1459,41 @@
{
"data": {
"text/plain": [
"Run Time Monday May 10, 2021, NYSE: 11:49:07\n",
"Mode TEST\n",
"Strategy Buy and Hold\n",
"Direction longonly\n",
"Symbol AAPL\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 562.60143\n",
"Total Return [%] 562.60143\n",
"Benchmark Return [%] 565.918578\n",
"Position Coverage [%] 100.0\n",
"Max. Drawdown [%] 60.866748\n",
"Avg. Drawdown [%] 6.076352\n",
"Max. Drawdown Duration 457 days 00:00:00\n",
"Avg. Drawdown Duration 22 days 17:32:18.461538461\n",
"Num. Trades 0\n",
"Gross Exposure 1.0\n",
"Sharpe Ratio 1.329387\n",
"Sortino Ratio 1.982724\n",
"Calmar Ratio 1.199638\n",
"Annual Return [%] 73.018058\n",
"Annual Volatility [%] 51.088459\n",
"Omega Ratio 1.209774\n",
"Skew -0.0376\n",
"Kurtosis 3.435275\n",
"Tail Ratio 1.037861\n",
"Common Sense Ratio 1.795687\n",
"Value at Risk -0.041247\n",
"Alpha -0.00145\n",
"Beta 1.00001\n",
"Run Time Wednesday May 19, 2021, NYSE: 7:19:00\n",
"Mode TEST\n",
"Strategy Buy and Hold\n",
"Direction longonly\n",
"Symbol AAPL\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 562.60143\n",
"Total Return [%] 562.60143\n",
"Benchmark Return [%] 565.918578\n",
"Position Coverage [%] 100.0\n",
"Max. Drawdown [%] 60.866748\n",
"Avg. Drawdown [%] 6.076352\n",
"Max. Drawdown Duration 457 days 00:00:00\n",
"Avg. Drawdown Duration 22 days 17:32:18.461538461\n",
"Num. Trades 0\n",
"Gross Exposure 1.0\n",
"Sharpe Ratio 1.329387\n",
"Sortino Ratio 1.982724\n",
"Calmar Ratio 1.199638\n",
"Annual Return [%] 73.018058\n",
"Annual Volatility [%] 51.088459\n",
"Omega Ratio 1.209774\n",
"Skew -0.0376\n",
"Kurtosis 3.435275\n",
"Tail Ratio 1.037861\n",
"Common Sense Ratio 1.795687\n",
"Value at Risk -0.041247\n",
"Alpha -0.00145\n",
"Beta 1.00001\n",
"dtype: object"
]
},
@@ -1539,49 +1544,49 @@
{
"data": {
"text/plain": [
"Run Time Monday May 10, 2021, NYSE: 11:49:07\n",
"Mode TEST\n",
"Strategy Long Strategy\n",
"Direction longonly\n",
"Symbol SPY\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 49.766868\n",
"Total Return [%] 49.766868\n",
"Benchmark Return [%] 2.455635\n",
"Position Coverage [%] 52.819698\n",
"Max. Drawdown [%] 10.131765\n",
"Avg. Drawdown [%] 1.723872\n",
"Max. Drawdown Duration 451 days 00:00:00\n",
"Avg. Drawdown Duration 17 days 20:34:17.142857143\n",
"Num. Trades 2\n",
"Win Rate [%] 100.0\n",
"Best Trade [%] 14.916866\n",
"Worst Trade [%] 6.746063\n",
"Avg. Trade [%] 10.831464\n",
"Max. Trade Duration 335 days 00:00:00\n",
"Avg. Trade Duration 264 days 00:00:00\n",
"Expectancy 11.305097\n",
"SQN 2.470596\n",
"Gross Exposure 0.528197\n",
"Sharpe Ratio 1.009581\n",
"Sortino Ratio 1.431911\n",
"Calmar Ratio 1.226146\n",
"Annual Return [%] 12.423018\n",
"Annual Volatility [%] 12.357496\n",
"Omega Ratio 1.224227\n",
"Skew -0.412954\n",
"Kurtosis 6.272176\n",
"Tail Ratio 1.032277\n",
"Common Sense Ratio 1.160517\n",
"Value at Risk -0.010296\n",
"Alpha 0.122838\n",
"Beta 0.182612\n",
"Run Time Wednesday May 19, 2021, NYSE: 7:19:02\n",
"Mode TEST\n",
"Strategy Long Strategy\n",
"Direction longonly\n",
"Symbol SPY\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 49.766868\n",
"Total Return [%] 49.766868\n",
"Benchmark Return [%] 2.455635\n",
"Position Coverage [%] 52.819698\n",
"Max. Drawdown [%] 10.131765\n",
"Avg. Drawdown [%] 1.723872\n",
"Max. Drawdown Duration 451 days 00:00:00\n",
"Avg. Drawdown Duration 17 days 20:34:17.142857143\n",
"Num. Trades 2\n",
"Win Rate [%] 100.0\n",
"Best Trade [%] 14.916866\n",
"Worst Trade [%] 6.746063\n",
"Avg. Trade [%] 10.831464\n",
"Max. Trade Duration 335 days 00:00:00\n",
"Avg. Trade Duration 264 days 00:00:00\n",
"Expectancy 11.305097\n",
"SQN 2.470596\n",
"Gross Exposure 0.528197\n",
"Sharpe Ratio 1.009581\n",
"Sortino Ratio 1.431911\n",
"Calmar Ratio 1.226146\n",
"Annual Return [%] 12.423018\n",
"Annual Volatility [%] 12.357496\n",
"Omega Ratio 1.224227\n",
"Skew -0.412954\n",
"Kurtosis 6.272176\n",
"Tail Ratio 1.032277\n",
"Common Sense Ratio 1.160517\n",
"Value at Risk -0.010296\n",
"Alpha 0.122838\n",
"Beta 0.182612\n",
"dtype: object"
]
},
@@ -1630,49 +1635,49 @@
{
"data": {
"text/plain": [
"Run Time Monday May 10, 2021, NYSE: 11:49:08\n",
"Mode TEST\n",
"Strategy Long Strategy\n",
"Direction longonly\n",
"Symbol AAPL\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 98.993099\n",
"Total Return [%] 98.993099\n",
"Benchmark Return [%] 565.918578\n",
"Position Coverage [%] 62.271644\n",
"Max. Drawdown [%] 59.898137\n",
"Avg. Drawdown [%] 6.193394\n",
"Max. Drawdown Duration 506 days 00:00:00\n",
"Avg. Drawdown Duration 32 days 01:30:00\n",
"Num. Trades 3\n",
"Win Rate [%] 66.666667\n",
"Best Trade [%] 58.200243\n",
"Worst Trade [%] -33.15062\n",
"Avg. Trade [%] 10.753768\n",
"Max. Trade Duration 363 days 00:00:00\n",
"Avg. Trade Duration 207 days 08:00:00\n",
"Expectancy 4.466566\n",
"SQN 0.130735\n",
"Gross Exposure 0.622716\n",
"Sharpe Ratio 0.739016\n",
"Sortino Ratio 1.08289\n",
"Calmar Ratio 0.36859\n",
"Annual Return [%] 22.077862\n",
"Annual Volatility [%] 35.543979\n",
"Omega Ratio 1.140899\n",
"Skew 0.024374\n",
"Kurtosis 4.672291\n",
"Tail Ratio 1.095481\n",
"Common Sense Ratio 1.337339\n",
"Value at Risk -0.029217\n",
"Alpha -0.063652\n",
"Beta 0.482566\n",
"Run Time Wednesday May 19, 2021, NYSE: 7:19:03\n",
"Mode TEST\n",
"Strategy Long Strategy\n",
"Direction longonly\n",
"Symbol AAPL\n",
"Fees [%] 0.25\n",
"Slippage [%] 0.25\n",
"Accumulate False\n",
"Start 2005-01-03 00:00:00\n",
"End 2009-12-31 00:00:00\n",
"Duration 1259 days 00:00:00\n",
"Init. Cash 100.0\n",
"Total Profit 98.993099\n",
"Total Return [%] 98.993099\n",
"Benchmark Return [%] 565.918578\n",
"Position Coverage [%] 62.271644\n",
"Max. Drawdown [%] 59.898137\n",
"Avg. Drawdown [%] 6.193394\n",
"Max. Drawdown Duration 506 days 00:00:00\n",
"Avg. Drawdown Duration 32 days 01:30:00\n",
"Num. Trades 3\n",
"Win Rate [%] 66.666667\n",
"Best Trade [%] 58.200243\n",
"Worst Trade [%] -33.15062\n",
"Avg. Trade [%] 10.753768\n",
"Max. Trade Duration 363 days 00:00:00\n",
"Avg. Trade Duration 207 days 08:00:00\n",
"Expectancy 4.466566\n",
"SQN 0.130735\n",
"Gross Exposure 0.622716\n",
"Sharpe Ratio 0.739016\n",
"Sortino Ratio 1.08289\n",
"Calmar Ratio 0.36859\n",
"Annual Return [%] 22.077862\n",
"Annual Volatility [%] 35.543979\n",
"Omega Ratio 1.140899\n",
"Skew 0.024374\n",
"Kurtosis 4.672291\n",
"Tail Ratio 1.095481\n",
"Common Sense Ratio 1.337339\n",
"Value at Risk -0.029217\n",
"Alpha -0.063652\n",
"Beta 0.482566\n",
"dtype: object"
]
},
+74 -74
View File
@@ -66,9 +66,9 @@
"output_type": "stream",
"text": [
"Pandas TA - Technical Analysis Indicators - v0.2.74b0\n",
"Total Indicators: 199\n",
"Total Indicators & Utilities: 200\n",
"Abbreviations:\n",
" aberration, above, above_value, accbands, ad, adosc, adx, alma, amat, ao, aobv, apo, aroon, atr, bbands, below, below_value, bias, bop, brar, cci, cdl_pattern, cdl_z, cfo, cg, chop, cksp, cmf, cmo, coppock, cross, cross_value, cti, decay, decreasing, dema, donchian, dpo, ebsw, efi, ema, entropy, eom, er, eri, fisher, fwma, ha, hilo, hl2, hlc3, hma, hwc, hwma, ichimoku, increasing, inertia, kama, kc, kdj, kst, kurtosis, kvo, linreg, log_return, long_run, macd, mad, massi, mcgd, median, mfi, midpoint, midprice, mom, natr, nvi, obv, ohlc4, pdist, percent_return, pgo, ppo, psar, psl, pvi, pvo, pvol, pvr, pvt, pwma, qqe, qstick, quantile, rma, roc, rsi, rsx, rvgi, rvi, short_run, sinwma, skew, slope, sma, smi, squeeze, ssf, stc, stdev, stoch, stochrsi, supertrend, swma, t3, td_seq, tema, thermo, trima, trix, true_range, tsi, tsignals, ttm_trend, ui, uo, variance, vidya, vortex, vp, vwap, vwma, wcp, willr, wma, zlma, zscore\n",
" aberration, above, above_value, accbands, ad, adosc, adx, alma, amat, ao, aobv, apo, aroon, atr, bbands, below, below_value, bias, bop, brar, cci, cdl_pattern, cdl_z, cfo, cg, chop, cksp, cmf, cmo, coppock, cross, cross_value, cti, decay, decreasing, dema, donchian, dpo, ebsw, efi, ema, entropy, eom, er, eri, fisher, fwma, ha, hilo, hl2, hlc3, hma, hwc, hwma, ichimoku, increasing, inertia, kama, kc, kdj, kst, kurtosis, kvo, linreg, log_return, long_run, macd, mad, massi, mcgd, median, mfi, midpoint, midprice, mom, natr, nvi, obv, ohlc4, pdist, percent_return, pgo, ppo, psar, psl, pvi, pvo, pvol, pvr, pvt, pwma, qqe, qstick, quantile, rma, roc, rsi, rsx, rvgi, rvi, short_run, sinwma, skew, slope, sma, smi, squeeze, ssf, stc, stdev, stoch, stochrsi, supertrend, swma, t3, td_seq, tema, thermo, trima, trix, true_range, tsi, tsignals, ttm_trend, ui, uo, variance, vhf, vidya, vortex, vp, vwap, vwma, wcp, willr, wma, zlma, zscore\n",
"\n",
"Candle Patterns:\n",
" 2crows, 3blackcrows, 3inside, 3linestrike, 3outside, 3starsinsouth, 3whitesoldiers, abandonedbaby, advanceblock, belthold, breakaway, closingmarubozu, concealbabyswall, counterattack, darkcloudcover, doji, dojistar, dragonflydoji, engulfing, eveningdojistar, eveningstar, gapsidesidewhite, gravestonedoji, hammer, hangingman, harami, haramicross, highwave, hikkake, hikkakemod, homingpigeon, identical3crows, inneck, inside, invertedhammer, kicking, kickingbylength, ladderbottom, longleggeddoji, longline, marubozu, matchinglow, mathold, morningdojistar, morningstar, onneck, piercing, rickshawman, risefall3methods, separatinglines, shootingstar, shortline, spinningtop, stalledpattern, sticksandwich, takuri, tasukigap, thrusting, tristar, unique3river, upsidegap2crows, xsidegap3methods\n"
@@ -216,28 +216,28 @@
"==== Market Information =====================================================\n",
"Market | Exchange | Symbol | Category US | PCX | SPY | Large Blend\n",
"\n",
"NAV | Yield 415.32 | 1.4100%\n",
"NAV | Yield 415.49 | 1.3300%\n",
"\n",
"\n",
"\n",
"==== Price Information =====================================================\n",
"Open High Low | Close 417.3800 417.3800 414.9450 | 416.9800\n",
"HL2 | HLC3 | OHLC4 | C - OHLC4 416.2875, 416.5183, 416.7337, 0.2463\n",
"Change (%) 1.3600 (0.3272%)\n",
"Bid | Ask | Spread 417.11 x 1400 | 417.12 x 1400 | 0.0100\n",
"Open High Low | Close 406.9200 406.9200 405.3300 | 410.3900\n",
"HL2 | HLC3 | OHLC4 | C - OHLC4 407.8750, 408.7133, 408.2650, 2.1250\n",
"Change (%) -1.5500 (-0.3763%)\n",
"Bid | Ask | Spread 408.17 x 1100 | 408.28 x 800 | 0.1100\n",
"Volume | Market | Avg Vol (10Day) \n",
" 28,048,255 | 28,048,255 | 83,627,572 (69,755,285)\n",
" 67,823,972 | 67,823,972 | 88,574,750 (92,351,957)\n",
"\n",
"52Wk Range (% from 52Wk Low) 272.99 - 420.72 : 147.7300 (52.7455%)\n",
"SMA 50 | SMA 200 406.3200 | 379.5020\n",
"Avg. Return 3Yr | 5Yr 18.9100% | 17.3700%\n",
"52Wk Range (% from 52Wk Low) 293.22 - 422.82 : 129.6000 (39.9598%)\n",
"SMA 50 | SMA 200 412.7091 | 385.1603\n",
"Avg. Return 3Yr | 5Yr 17.2700% | 17.3700%\n",
"\n",
"==== Dividends / Splits =====================================================\n",
"\n",
"Stock Splits (Last 5 of 114):\n",
"Date 2021-03-19 2020-12-18 2020-09-18 2020-06-19 2020-03-20\n",
"Ratio 1.278 1.58 1.339 1.366 1.406\n",
"SPY(252, 7) from 2020-05-06 00:00:00 to 2021-05-05 00:00:00\n"
"SPY(252, 7) from 2020-05-20 00:00:00 to 2021-05-19 00:00:00\n"
]
},
{
@@ -282,52 +282,52 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2020-05-06</th>\n",
" <td>283.493739</td>\n",
" <td>283.907093</td>\n",
" <td>279.300967</td>\n",
" <td>279.763550</td>\n",
" <td>73632600</td>\n",
" <th>2020-05-20</th>\n",
" <td>291.150942</td>\n",
" <td>293.168574</td>\n",
" <td>290.904888</td>\n",
" <td>292.243408</td>\n",
" <td>85861700</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-07</th>\n",
" <td>283.208307</td>\n",
" <td>285.206265</td>\n",
" <td>282.598097</td>\n",
" <td>283.139404</td>\n",
" <td>75250400</td>\n",
" <th>2020-05-21</th>\n",
" <td>292.105626</td>\n",
" <td>292.971742</td>\n",
" <td>289.054549</td>\n",
" <td>290.225769</td>\n",
" <td>78293900</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-08</th>\n",
" <td>286.495581</td>\n",
" <td>288.326240</td>\n",
" <td>285.284984</td>\n",
" <td>287.824280</td>\n",
" <td>76452400</td>\n",
" <th>2020-05-22</th>\n",
" <td>289.920683</td>\n",
" <td>290.963951</td>\n",
" <td>288.591985</td>\n",
" <td>290.776947</td>\n",
" <td>63958200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-11</th>\n",
" <td>285.757390</td>\n",
" <td>289.359625</td>\n",
" <td>285.304659</td>\n",
" <td>287.883301</td>\n",
" <td>79514200</td>\n",
" <th>2020-05-26</th>\n",
" <td>297.164459</td>\n",
" <td>297.420365</td>\n",
" <td>290.796577</td>\n",
" <td>294.359436</td>\n",
" <td>88951400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-05-12</th>\n",
" <td>289.152972</td>\n",
" <td>289.595851</td>\n",
" <td>281.997699</td>\n",
" <td>282.145355</td>\n",
" <td>95870800</td>\n",
" <th>2020-05-27</th>\n",
" <td>297.351478</td>\n",
" <td>298.778604</td>\n",
" <td>292.184342</td>\n",
" <td>298.739227</td>\n",
" <td>104817400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" </tr>\n",
@@ -336,21 +336,21 @@
"</div>"
],
"text/plain": [
" open high low close volume \\\n",
"date \n",
"2020-05-06 283.493739 283.907093 279.300967 279.763550 73632600 \n",
"2020-05-07 283.208307 285.206265 282.598097 283.139404 75250400 \n",
"2020-05-08 286.495581 288.326240 285.284984 287.824280 76452400 \n",
"2020-05-11 285.757390 289.359625 285.304659 287.883301 79514200 \n",
"2020-05-12 289.152972 289.595851 281.997699 282.145355 95870800 \n",
" open high low close volume \\\n",
"date \n",
"2020-05-20 291.150942 293.168574 290.904888 292.243408 85861700 \n",
"2020-05-21 292.105626 292.971742 289.054549 290.225769 78293900 \n",
"2020-05-22 289.920683 290.963951 288.591985 290.776947 63958200 \n",
"2020-05-26 297.164459 297.420365 290.796577 294.359436 88951400 \n",
"2020-05-27 297.351478 298.778604 292.184342 298.739227 104817400 \n",
"\n",
" dividends stock splits \n",
"date \n",
"2020-05-06 0.0 0 \n",
"2020-05-07 0.0 0 \n",
"2020-05-08 0.0 0 \n",
"2020-05-11 0.0 0 \n",
"2020-05-12 0.0 0 "
"2020-05-20 0.0 0 \n",
"2020-05-21 0.0 0 \n",
"2020-05-22 0.0 0 \n",
"2020-05-26 0.0 0 \n",
"2020-05-27 0.0 0 "
]
},
"execution_count": 7,
@@ -808,18 +808,18 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY(7118, 34)\n",
"[i] Loaded SPY(7128, 34)\n",
"[+] Strategy: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'append': True}\n",
"[i] Multiprocessing 5 indicators with 7 chunks and 8/8 cpus.\n",
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[i] Last Run: Wednesday May 5, 2021, NYSE: 5:49:55, Local: 9:49:55 PDT, Day 125/365 (34.00%)\n"
"[i] Last Run: Wednesday May 19, 2021, NYSE: 7:23:40, Local: 11:23:40 PDT, Day 139/365 (38.00%)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKEAAAONCAYAAABeDnPkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1wT5x8H8M8lhL2XgiIiCrgFxYEL3FvrVuqqu44qbqsiXWqx2lp/WqtW3HuPqlWxqLgnbrEOUBEEZK8kz++PlGsuCSRs1O/79cpL7u4Z37vkDvL1uec4xhgDIYQQQgghhBBCCCElSFTWARBCCCGEEEIIIYSQjx8loQghhBBCCCGEEEJIiaMkFCGEEEIIIYQQQggpcZSEIoQQQgghhBBCCCEljpJQhBBCCCGEEEIIIaTEURKKEEIIIYQQQgghhJQ4SkIRQgghhBBCCCGEkBJHSShCCCGEEEIIIYQQUuIoCUUIIYQQQgghhBBCShwloQghxW748OHgOE7t9fPPP5d1aKQcef78ueDzERISUtYhlVvK51TVqlXLOpw8+fr68nH6+vqWdTikhFWtWlXjtf7s2bMFbmvq1Kl8/fXr1/Pr6TpRPoSEhAjeh+fPn5d1SIUyb948fh9++eWXsg6HEEI+SZSEIqSc2bdvH7p16wYHBwfo6+vDzMwMVapUQdOmTTF69GisWbNGrY7yFz/ll1gshqWlJRo3boygoCAkJibydTp37iwou3btWo3x+Pv7C8otXry42Pf5yZMnmDlzJpo2bQo7OztIJBKYmZmhbt26mDx5Ms6dOwfGWLH3S/K3cOFCjZ8rjuNgamqKWrVq4csvv8TDhw/LOlSi4vLly4L3a8qUKXmWjYmJgUQi4cv27t279AL9iMjlcvzxxx9o164d7O3tIZFIYGFhARcXF7Ro0QITJkzArl271OppSuTcunVLYx9fffWVWtn8kjLLly9XK//rr78W0x4Xn8jISPzvf/8DAFSqVAlDhgwp44iEVK+FBZWeno6dO3fiyy+/ROPGjeHk5AQDAwOYmpqibt26CAgIQFRUlMa6ef1+V35NnDhRUCcxMREbN27EyJEj4eXlBUdHR+jr68Pc3BwNGzbEggULkJCQUKhj8aH76quvYGRkBAD49ttv8f79+7INiBBCPkWMEFJujBw5kgHI92VhYaFWr3Xr1lrrAWAVK1Zk9+7dY4wx9urVK2ZlZcVvMzc3Zy9fvhS0e+DAAUF9Hx8fJpPJtO7HsGHD+DrVqlVjwcHBLDg4mF2/fl1QLisriwUEBDCO47TG/uzZs0IfV1I4gYGBOn2u9PX12Y4dOwrcflJSEv/ZCA4OZnfv3i2Bvfg4KJ9Tzs7OOtWpXbs2X8fOzo5lZ2drLBccHCx4P48cOVLoOJWvRa1bty50Ox+anJwc1rFjR63nSv369dXqOjs7q5UbMmSIWrnExERmamqqVnbDhg15xqX8Gch9NWjQoNj2+/fff2fBwcFs7ty5gj5CQ0ML1M7gwYP5uj/88INg27Nnz3Te35Kiei0sqKtXr2r9bJiZmbFz586p1dXl9/uECRMEdXbv3q21joODA3vw4IHO+7Bhw4aP5nfymDFj+P2YN29eWYdDCCGfHD1NiSlCSOk7efKk4BYET09PdOzYERYWFkhISEBERATOnz+vU1vBwcEAgOTkZBw8eBB37twBoBjxMHToUFy7dg2Ojo743//+h8GDB/NlR48ejePHjwMAEhISMG7cOL5NExMTbNq0CSJRwQZQOjk5Yfr06Wrr5XI5/P39sWfPHn6dgYEBevbsiTp16kAulyMyMhInTpxAXFxcgfokJWPcuHFwdXVFZmYmwsPD8eeffwIAsrOzMXLkSPj6+qJChQpa28nMzIRYLIa5ubnGzwYpHiNHjkRAQAAAIC4uDkePHkWvXr3Uym3cuJH/2dHREZ06dSqtED8af/zxB06cOMEvt2rVCq1atYKxsTHi4uJw69YtXLx4Uef2du7ciSVLlsDBwYFft2bNGqSmpurcxuXLl3Hv3j219bdu3cKNGzfg5eWlc1t5GT16NADFLXM//PBDodqIjY0V/B4YNGhQkeMqr4yMjNChQwd4enoiIyMD+/btw5MnTwAAKSkpGDJkCP755588R1vlXoNVeXp6aixvYWGBTp06oXbt2khKSsK2bdvw5s0bAMCbN28wduxY/P3338W0d6UrJSUFZmZmhao7aNAg/P777wCAtWvXYsGCBZBIJMUZHiGEkPyUdRaMEKIwdepU/n/mXF1dmVQqVSuTnZ3Njh8/rrZe9X9KlWVkZDAXFxfB9n/++Yff3q9fP8G2devWMcYY8/f3F6xftWqVzvuiPGojr9EQ69evF7RfvXp19uTJE7VyWVlZbM2aNezt27eC9W/fvmXz5s1jXl5ezNzcnEkkEubg4MB69OjBDh06pNZOaGiooL8zZ86wX3/9lXl4eDADAwNWo0YN9uuvvzLGGJNKpWzRokXM1dWV6evrM1dXV7ZkyRIml8sFbar+73hSUhKbOnUqc3R0ZEZGRqxp06bsr7/+Yowx9u7dOzZmzBhmb2/PDAwMWMOGDdnhw4c1HpusrCy2evVq5uvry2xsbJienh6ztrZmrVq1Yr/++ivLzMxUq6McR2BgILt+/Trr0aMHs7S0ZIaGhszb27vAI1xU9091dMOgQYME2//444884/n7779Z27ZtmYWFBf+/6LqMcLh9+zYbO3Ys8/DwYKampszQ0JA5Ozuzzz77jD+2yk6cOMH69u3LKleuzPT19ZmZmRnz9vZmwcHBLC0trUD7v3//fjZkyBBWr149VqFCBaavr8+MjIxYtWrVmL+/P7t06ZJaHdXRAk+fPmWrV69m9evXZ4aGhszGxoYNGjSIvXr1SmOfW7ZsYQ0bNmSGhobM1taWDR48mD179qxQI6Hi4uKYvr4+X69nz55qZa5duyaId86cOYLtR48eZZ999hlzdHRkEomEmZmZsfr167M5c+awmJgYtfbyGgml7b3Ob/+URwoNGzaMXbt2jXXo0IGZmpoyGxsbNnToUBYbG8sYU5znrVu3ZsbGxszKyooNHDiQRUdHazw+L1++ZNOnT2d169ZlpqamTF9fn7m4uLBRo0axhw8faj/ASj777DM+Rl9fX41l0tLS2KlTp9TWK++fWCzmf547dy5fJjs7m1WqVEmtTF7nDWOMjR49mi9jY2PDbGxs8hw5kysjI4MtXryYNW7cmFlYWDCxWMysrKyYm5sb69u3L1uyZInGeqrvb0FGQi1ZsoSv17hxY61tK+9vfHw8mzlzJmvXrh2rWrUqMzc356+XzZo1Yz/++CNLT09XazM6OppNnjyZ1axZkxkbGzM9PT1mb2/P6tevz0aMGMH27NnDGFP/vaHpNWzYMK37eO/ePRYYGMgSEhIE6zMyMljNmjUF7UVERAjKKJ9Tuh7X06dPs59//lntmhcbG8vs7e359jiOY8nJyTq1qXpt++eff9hvv/3G6tWrxwwNDZmdnR0bPny4xmvbjz/+yHr16sXc3Nz432mmpqasbt26bOrUqSwqKkqtjuo1IS4ujo0fP55VqlSJicViFhgYyBhjLCEhgc2dO5fVr1+fmZmZMbFYzGxsbFitWrWYv78/W7t2rVrbMpmMVahQgW9/7969Oh0DQgghxYOSUISUE5MnTxZ8YXj8+LHOdfNLQjHGWN++fQXbL1y4wG979+4dq1ixIr/NwsKC/e9//xOU79ixY4H2RZckVK1atQR9XL16Vef2L126xOzs7PL9YjBkyBDBrYOqXyYaNWqksV5gYKDgC6Xya+HChYI4VJM0mtoUi8Vs165dzNXVVW2bSCRiZ86cEbQZFxfHvLy88t23Bg0a8F+6cylvb9KkiSD5kF9/+dGWhFq5cqVg+/fff68xnmbNmql9cdYlCRUcHKxWT/n11Vdf8WXlcrngS7emV926ddWSmfnp06dPvu2JRCK2ZcsWQR3VL2otW7bUWNfDw0MtmRgUFKSxrK2tLWvWrJngC5mulM99iUSi9rmZOHGioK/c645MJmPDhw/Pd/9tbW1ZeHi4oL2STkLVqVOHGRoaqsVSs2ZNtmXLFiYSiXQ61kePHmVmZmZ57puhoWGBvpj26NGDr+vm5sbevHmjc13l/WvWrBlzcHBggOL3QG4SYfPmzXwZ1c+lpiRUamqqYP/GjRsnuAXJysqKZWRkqNVr3759vu85oPnPxqIkofz8/Ph6U6dO1dq28v5GRERojdfLy4ulpqbydeLi4vhjnNcr97NbXEmo/EybNk3Q3rVr1wTblc+pKlWqMCMjI2ZoaMiqV6/OxowZwx49elSg/lQ/P+/evdOpnuq1rVu3bhqPh5OTk1riVzkBqullZWXFTxWQS/maYGtryzw8PAR1AgMDWWZmJqtTp06+bed1vezVqxdfZtSoUQU6hoQQQoqGbscjpJxQvjUiPj4e7u7uqFu3Lho1agRPT0+0bNkS9evXL3C7mZmZuH79umCd8i0eNjY2WLduHbp16wYASEpKwoQJE/jtVlZWgtsEi8ObN29w//59frl+/fpo1KiRTnWTk5PRo0cP/hY9PT09DBkyBJUrV8ahQ4dw+/ZtAMDmzZvh4eGBuXPnamzn2rVr6NSpE7y9vbFu3Tr+FoWgoCAAQJcuXdCwYUP89ttvfF/Lli3D3Llz8xy2f+PGDYwePRqmpqZYuXIlcnJyIJPJ0L9/f4jFYowZMwaGhoZYtWoVpFIp5HI5fvzxR/j5+fFtDBkyBDdu3OCXO3bsiKZNm+Lq1as4duwYAMXtNP7+/jh58qTGOC5fvozKlSvD398fUVFR2LZtGwBo7K8oLly4IFhW/lwpu3jxIoyNjTF48GBUqVIFERERkEgkyMnJybPtAwcOYMaMGfyynp4e+vXrBw8PD7x58wanT58WlP/pp58Ek+t37twZzZo1Q1xcHDZt2oSkpCRERETg888/z/O4qbK0tES7du1Line truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1200x1000 with 12 Axes>"
]
@@ -842,7 +842,7 @@
{
"data": {
"text/plain": [
"<__main__.Chart at 0x12e9fa220>"
"<__main__.Chart at 0x12d2234c0>"
]
},
"execution_count": 11,
@@ -915,7 +915,7 @@
{
"data": {
"text/plain": [
"<AxesSubplot:title={'center':'SPY: CUMLOGRET_1 from 2020-05-06 00:00:00 to 2021-05-05 00:00:00 (252)'}, xlabel='date'>"
"<AxesSubplot:title={'center':'SPY: CUMLOGRET_1 from 2020-05-20 00:00:00 to 2021-05-19 00:00:00 (252)'}, xlabel='date'>"
]
},
"execution_count": 12,
@@ -924,7 +924,7 @@
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABQsAAAFNCAYAAACnjTmhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAADWsElEQVR4nOzddXRURxvA4d/uxh0CCUESCAkEJ7i7FSgS3N2LQ/HixaVokaLF3aG4W3GKQ3EnkCDR3fn+SLMfS4QkBH+fc/YkO3fu3Jm7925234xolFIKIYQQQgghhBBCCCHEd0/7uSsghBBCCCGEEEIIIYT4MkiwUAghhBBCCCGEEEIIAUiwUAghhBBCCCGEEEII8R8JFgohhBBCCCGEEEIIIQAJFgohhBBCCCGEEEIIIf4jwUIhhBBCCCGEEEIIIQQgwUIhhBBCCCGEEEIIIcR/JFgohBBCCCGEEEIIIYQAJFgohBBCCCGEEEIIIYT4jwQLhRBCiO/Mo0ePqFmzJs7Ozmg0GiZOnPi5qySEEEJE69ixY1hYWHDr1q3PXRUAnj17hq2tLZs3b/7cVRFCiI9GgoVCCPERnDt3jpo1a+Lh4YGVlRWpUqWibNmyTJ482SRf2rRp0Wg0xoeLiwtFixZlzZo1AIwcORKNRsO2bduiPU7FihVxdHTk/v378arfo0eP6NGjBz4+PtjY2GBra0vu3LkZNmwYL168MKlf5cqVoy3j77//RqPRMG/ePGPaoEGD0Gg0aLVa7ty5E2WfwMBArK2t0Wg0/PTTT8b0mzdvotFoGDt27HvrfvDgQapXr46rqyuWlpakTZuWNm3acPv27Rj3OXv2LM2aNSNdunRYWVlhZ2dHzpw5+fnnn7lx44ZJ3qZNm5q8JpaWlmTIkIFffvmF4ODgKGW/nffdR9u2bdmzZ0+sed5+xNWyZcto2LAh3t7eaDQaSpQoEed9Abp27cq2bdvo06cPCxcupEKFCvHa/1O6c+cOgwcPJl++fCRJkoRkyZJRokQJduzYEW3+Fy9e0Lp1a5InT46trS0lS5bk5MmTJnmePXvGmDFjKFasGMmTJ8fJyYkCBQqwbNmyaMsMCQmhV69epEyZEmtra/Lnz8/27dvj1Y7169eTK1curKyscHd3Z+DAgYSHh5vkmTdvXozXxsOHD+N8rD/++INMmTJhZWWFt7d3lPedty1btoyCBQtia2uLk5MThQoVYteuXXE6zqFDhyhSpAg2NjakSJGCTp068erVqyj5EuP8xbVN9+7do3bt2jg5OeHg4EDVqlWj3OOxiU9d49r+d92/f59BgwZx+vTpONcrLi5dusTPP/9Mzpw5sbe3x83NjUqVKvH3339Hmz8u5yo+99+DBw/o3bs3JUuWxN7eHo1Gw549e+Ldji/tXon8u/buw8rKKs7HkXslYfdKpH79+lGvXj08PDwAMBgMzJs3jypVqpAmTRpsbW3JmjUrw4YNi9ff6ZEjR5rkW716NXXq1MHT0xMbGxsyZsxI9+7dTT4XATg7O9OyZUsGDBgQ5zYIIcRXRwkhhEhUBw8eVBYWFsrLy0sNHTpUzZo1S/3yyy+qXLlyKn369CZ5PTw8VM6cOdXChQvVwoUL1ahRo5Snp6cC1PTp01VoaKjKli2b8vT0VG/evDHZd/ny5QpQU6dOjVf9jh07ppIlS6asrKxUy5Yt1fTp09X06dNVixYtlK2trSpbtqxJ/SpVqhRtOcePH1eAmjt3rjFt4MCBClBWVlZq1KhRUfaZO3eusrKyUoDq0KGDMf3ff/9VgBozZkysdZ80aZLSaDQqffr0aujQoWr27Nmqe/fuytHRUTk6OqqDBw9G2WfmzJlKp9MpV1dX1a1bNzVz5kw1bdo01b59e+Xq6qrMzc1VeHi4MX+TJk2UpaWl8TWZMmWKKlu2rAJU/fr1o5QPqLJlyxrzv/04evSoevjwYZT01KlTKx8fnyjpcVW8eHFlZ2enSpYsqZIkSaKKFy8e532VUsrV1VU1aNAgXvt8LpMnT1bW1taqXr16asqUKWrixIkqV65cClBz5swxyavX61WhQoWUra2tGjRokJoyZYrKnDmzsre3V1euXDHm27BhgzI3N1dVq1ZVEydOVFOmTFElS5ZUgPrll1+i1KFu3brKzMxM9ejRQ82YMUMVLFhQmZmZqf3798epDZs3b1YajUaVLFlSzZw5U3Xs2FFptVrVtm1bk3xz585VgBoyZEiUayMoKChOx/r9998VoGrUqKFmzpypGjVqpAA1cuTIKHkHDhyoNBqNqlWrlvr999/V5MmTVZs2bdSCBQvee5xTp04pKysr5evrq6ZPn6769eunLC0tVYUKFaLk/dDzF9c2vXz5Unl7eysXFxc1atQoNX78eJUmTRqVOnVq9fTp0zgdK651jU/73xXde2di6N69u3JyclItWrRQM2bMUKNHj1bp06dXOp1Obd++3SRvXM9VfO6/3bt3K0B5e3urggULKkDt3r07Xm34Eu+VyL9r06dPNznO4sWL43QcuVcSfq9E7g+oQ4cOmdQfUAUKFFDDhg1TM2fOVM2aNVNarVaVKFFCGQwGkzJi+jt9/vx5k3zOzs4qW7ZsasCAAWrWrFmqU6dOysLCQvn4+ET5DHbhwgUFqJ07d8apHUII8bWRYKEQQiSyihUrquTJk6vnz59H2fbo0SOT59EF4x48eKBsbW1VhgwZlFJKHT58WGm1WtWnTx9jnsDAQJUyZUpVoEABpdfr41y358+fq1SpUilXV1d18eLFKNsfPnyohg4dGmv9IsUWLPTz81M5c+aMsk/ZsmVVjRo1EhQsPHDggNJqtapo0aLq9evXJtuuXbumXF1dlZubm/L39zemHzx4UOl0OlWsWDEVGBgYpcygoCDVv3//KMFCW1tbk3wGg0EVKFBAaTQa9fDhQ5Nt77YlLrJkyRLvAN/bbt++bXzdE1KWRqOJU51fvXqVkOolqvPnz6snT56YpAUHBysfHx+VOnVqk/Rly5YpQK1YscKY9vjxY+Xk5KTq1atnTLtx44a6efOmyb4Gg0GVKlVKWVpamrT76NGjUa7NoKAglT59elWwYME4tSFz5swqR44cKiwszJjWr18/pdFoTO7DyADI8ePH41Tuu968eaOcnZ2j3LMNGjRQtra2JvfG4cOHlUajUePHj0/QsX744Qfl5uamAgICjGmzZs1SgNq2bZsx7UPPX3zaNGrUKAWoY8eOGdMuXryodDqdyftnTOJT17i2PzofK1j4999/q5cvX5qkPX36VCVPnlwVLlzYJD2u5yo+919gYKB69uyZUkqpFStWJChY+CXeK5F/1949D3El90rC7xWllOrUqZNyd3c3CQCGhIRE+8/BwYMHKyBKcDyuf6eju17nz5+vADVr1qwo27JmzaoaNWr03nKFEOJrJMFCIYRIZBkzZlQlSpSIU96YgnF58uRR5ubmxuft27dX5ubm6p9//lFKRXx4NjMzU2fPnlVKRQTLrl279t7jjRw5UgFq0aJFH1Q/pWIPFq5cuVIBJl/uHjx4oHQ6nVq1alWCgoXly5dXOp1O3bhxI9rtkR/oR4wYYUwrV66cMjMzU3fu3IlTe5WKPliolFI9evSI0rtBqc8TLExoWZFfsN99vL1tz549ql27dip58uTKycnJuO/UqVNV5syZlYWFhXJzc1Pt27ePEhAvXry4ypIlizpz5owqVqyYsra2VunTpzcG7/bs2aPy5cunrKysVIYMGaJ8oYuPbt26KcAkCFyrVi3l6uoaJYDeunVrZWNjo4KDg2Mtc9KkSQow3ldKKdWzZ0+l0+lMvugqpdSvv/6qAHX79u1Yy/znn3+i7QF87949BZgE598OgAQGBpoEseNi06ZNClCbNm0yST906JACTHqv1qlTR7m5uSm9Xq8MBkOUIFNsAgIClJmZmerZs6dJekhIiLKzs1MtWrQwpsXn/D158kRdvHjR5J8B8WlT3rx5Vd68eaPUN7pe3bdu3YryD5O41jU+7X9XZO+7dx9vv48uX75c5cqVS1lZWSlnZ2fVoEEDdffu3RjLfB8/Pz+VNGlSk7T4nKvoRHf/vS0hwcIv9V6J/Lv2+PFjFRAQEKXXWmzkXkn4vRLJ3d1dNW3a9L35lFLq7NmzClCTJk0ySY/8O/3mzZs49zyNFBgYqADVrVu3KNu6du2qnJyc4nVNCCHE10LmLBRCiETm4eHBiRMnOH/+fIL2DwsL486dOzg7OxvTRowYQfLkyWnTpg0nTpxg6tSp9OjRg2zZsgFQunRpSpcu/d6y169fj7W1NTVr1kxQ3eKqWLFipE6dmsWLFxvTli1bhp2dHZUqVYp3eW/evGHnzp0ULVqUdOnSRZunTp06WFpasnHjRuM+u3btokSJEqROnTphDXnLzZs3AUiSJEmUbcHBwTx9+jTKIzQ09IOPm5iKFSvGwoULAShbtiwLFy40Po/Uvn17Lly4wC+//ELv3r2BiDm7OnToQMqUKRk3bhw1atRgxowZlCtXjrCwMJP9nz9/TuXKlcmfPz+jR4/G0tKSunXrsmzZMurWrUvFihUZOXIkr1+/pmbNmrx8+TJBbXn48CE2NjbY2NgY006dOkWuXLnQak0/3uTLl483b95w5cqV95YJkCxZMpMyM2TIgIODQ5QygffOO3fq1CkA8uTJY5KeMmVKUqdObdz+tpIlS+Lg4ICNjQ1VqlTh6tWrsR7jfcfKnTs3Wq3W5Fg7d+4kb968TJo0ieTJkxvnuJsyZcp7j3Pu3DnCw8OjHMfCwoKcOXOaHCc+52/KlClkypSJY8eOxbtNBoOBs2fPRskXeazr16+bXGuNGzcmU6ZMJvniWtf4tP9dmTJlYsiQIQC0bt3aeA8WK1YMiJiLr3bt2uh0OkaMGEGrVq1YvXo1RYoUiTJvWlw9fPjQ5JqO77mKqcx3778P9aXeK5E8PT1xdHTE3t6ehg0b8ujRo/ceR+6VhN8rEDGv4u3Line truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1600x325 with 1 Axes>"
]
@@ -956,7 +956,7 @@
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x130d9d370>"
"<matplotlib.lines.Line2D at 0x12ee54070>"
]
},
"execution_count": 13,
@@ -965,7 +965,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1600x325 with 1 Axes>"
]
@@ -995,7 +995,7 @@
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x130dc49a0>"
"<matplotlib.lines.Line2D at 0x12ea8c370>"
]
},
"execution_count": 14,
@@ -1004,7 +1004,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<Figure size 1600x325 with 1 Axes>"
]
@@ -1028,7 +1028,7 @@
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x1300fe730>"
"<matplotlib.lines.Line2D at 0x12f0ba0d0>"
]
},
"execution_count": 15,
@@ -1037,7 +1037,7 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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N2eLFi3S6dqYPn0627x5M2vRogVzdnZm3bp1E86Br7/+mkVFRTEnJyfWp08fo91G6nTs2JF17NhRY1lgYCAbPXq01rrNmzdn/fv3r7HNJ554gvn6+mos69KlC+vSpYvWurrct7pYsWIFAyBcF5yNGzcyABruG/4bKBQKjUG1uVj6u7py5YpOp3BKSgoDwD766CNh2ejRo1lQUJDWZMGUKVOYq6srKy8vF5alpqayhIQEJpfLhWXGfH/GHJOu+5GhfTXm+Kvy3XffaV2DVUXDFStWsJYtWzKpVMpCQkLYtGnTdE7qGIqtrhV1TBEKjbm38edEZmYmKygoMOt+W51QeObMGb2ueHd3d9a9e/dq2y4oKGAODg5szpw5GstlMhlzd3dnzz//vLBszpw5TCKRaF37n376KQPA7t+/r9HnhIQEVlJSIiwz5vsz5r527949LfHb0L4ac/z6aNy4MXv22WdrXI8xxi5evKhTwOXPptLSUoNcoOoUFhYyAGz27Nlan7366qvM29vbIs97giCIhgDlKCQIgqjFRERE4MyZM7h8+bJJ21dUVCApKQl+fn7Csvnz5yMgIAAvvvgizpw5gxUrVuD1119HmzZtAAD9+/dH//79a2x7/PjxAICNGzdqLFcqldi8eTN69eqFxo0bAwD++OMPAMCECRN0tuXl5YXhw4fj2rVr1eY9tAQZGRkYP348goODsX79eohEIpPaycnJQWZmJk6fPo1JkyYBgMb3du7cOQBA586dNbbr1KkTxGKx8LkuXnzxRbz11lsAKvNBbtiwAW+//bbwuUKhwKBBgxAYGIjPP/8cI0eOBGMMw4YNw9KlSzF48GAsWbIEMTExmDNnDmbPnq21j0OHDuG1117DxIkT8f777yMhIQFDhw7FihUr8NVXX2HatGmYM2cOjh07hueee86k74gxhoyMDPj7+wvLUlJSkJmZqfW9AEDXrl2r/V446enpGm2qVCpcvHhRb5u3b99GUVFRtW2eO3cObm5uaNGihdb2/HN1SktL4enpCS8vL/j6+mL69OlG5fKqijW+K33nYGhoKMLCwjS2P3fuHDp27AixWPPVsGvXrigtLdXInzdv3jy0aNECKSkpGtsb8v0Ze0y67keG9tWY469K7969MWvWLADAW2+9hQ0bNmDDhg3C8b3//vuYPn06QkNDsXjxYowcORLffPMNBg4ciIqKCr3t6sNW14olMOXeFhkZCS8vL3h4eODpp59GRkaGRfskk8kAAC4uLlqfubi44Ny5c1CpVHq3v3TpEhQKhdYxSaVStG/fXutaad68OTw9PTXW5ee6etGp5cuXo0WLFjh58qTG9kDN35+x97UJEyZoXX+G9tWY49dFSkoK7t+/j44Line truncated
"text/plain": [
"<Figure size 1600x325 with 1 Axes>"
]
@@ -1085,7 +1085,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAANgCAYAAABHnFOiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXxW5f/H8dc5ZwmDwUan1GgmIiiiSIiIiSL9tVHEAsXEmNj6swMLFFEEVMqW2pggSghTupGODcYGq/uc8/tjcMNgHSx4Px8PZLvOOdf5nI2j7s0Vhuu6LiIiIiIiIiIictYyi7sAEREREREREREpXgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIREREyohp06Zx9dVXU7NmTfz8/KhQoQL16tXjwgsv5M477+Tjjz/OcH6XLl0wDOO0X5ZlUalSJTp06MDo0aM5ePCg95pevXplOPfTTz/NtJbBgwdnOO+VV14p0mcXERERkYIxXNd1i7sIERERKZghQ4Ywbty4bM8JDg7m0KFD3s+7dOnC/Pnzc+y7Ro0azJ07lxYtWrBr1y5atWrlDY0qVqzIypUrqVu3rvf8mTNn0rt3b+/nF110Eb///jumqb+XEhERESmpFBCJiIiUcrNmzaJnz57ez9u2bUvPnj0JDg4mLi6Of//9lwULFmBZVrYB0f/93/8BcPjwYWbOnMk///zjPdauXTuWLl0KwKRJkxg0aJD3WM+ePfn1118BiIuLo2XLluzZsweA8uXLExMTQ6NGjQr/wUVERESk0PgUdwEiIiJSMMfDGYBGjRqxZMkSLMvKcE5aWhrz5s3Ltp+HH37Y+/GoUaNo0aIFW7ZsAWDZsmVs2bKFBg0aMHDgQKZPn863334LwG+//ca4ceO44447eOCBB7zhEKSHTgqHREREREo+jfUWEREp5Wzb9n586NAhNm/efNo5vr6+GUYZ5SQgIIB27dplaNu9e7f34w8//JAaNWp4Px85ciRjxoxh4sSJ3raePXsybNiwXN9TRERERIqPAiIREZFS7rzzzvN+HBsbS9OmTQkPD+eOO+7g/fffJyYmJs99Jicns2zZsgxtNWvW9H4cGhrK2LFjvZ/Hx8dz7733ej+vXLlyjmsiiYiIiEjJoTWIRERESjmPx8PFF1/MX3/9leU5TZs25ZVXXsmweHR+1yA62Z133pkhKDpu4sSJGdYpEhEREZGSTQGRiIhIGXDkyBH+7//+j3HjxrFjx45MzzEMg5kzZ3LNNdcAud/FrFq1asydO5dWrVqddiwxMZE2bdp41yoC6Nu3L998800+n0REREREioOmmImIiJQB5cuX59lnn2X79u2sW7eOCRMmMHToUKpVq+Y9x3Vd3nzzzRz7MgyDihUrcv755/PMM8+wevXqTMMhgKCgIG666aYMbVp3SERERKT00S5mIiIiZUxYWBhhYWHcdNNN/N///R/NmjVj165dAGzbti3L6/I7qNgwjGw/FxEREZGSTwGRiIhIKffFF19w5MgRBg0aRKVKlTIc8/f3x8/Pz/t5aGjoGa5OREREREoDBUQiIiKl3JYtWxg9ejQjRoygU6dOtG3blqpVq5KQkMBPP/3E1q1bvedeeeWVxVeoiIiIiJRYCohERETKiLS0NKKiooiKisr0+Pnnn8/DDz98ZosSERERkVJBAZGIiEgpN2LECMLDw4mKimLJkiXs2bOHffv2kZqaSuXKlWnZsiV9+vThzjvvzDDdTERERETkOG1zLyIiIiIiIiJyltM29yIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzmf4i6goBzH8X5sGEYxViIiIiIiIiIiJZnrut6PTVNjZk5W6gMigISEhOIuQURERERERERKiQoVKhR3CSVOmQiIAHx9fdm4cSNNmjTBsqziLkekVLBtmw0bNui9EckjvTsi+aN3RyR/9O6I5F1W743ruiQnJxdjZSVXqQ+Ijk8rMwwD13UxDENTzURySe+NSP7o3RHJH707Ivmjd0ck73J6b/QunU4T7kREREREREREznIKiEREREREREREcuGtt96icuXKPPHEEwAcPHiQRx99lPbt21OzZk1atWrFY489Rnx8fIbrtm/fTr9+/ahVqxZNmjTh6aefxuPxFMcjZKnUTzETERERERERkYKJjIyka9euxV1Gifb3338zfvx4WrZs6W3bvXs3e/bs4bnnnqNZs2Zs376dhx56iD17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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAANgCAYAAABHnFOiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gUVd/G8e/MbAopBAi9915EwS5VQHzshWZXELH39qgRFctjf1UUQcWCNEFEbCAkBDs1CErvHRKSEFJ3Zt4/FhYCSUgvcH+uC5M9M3vmTMKAuTnndwzXdV1EREREREREROSUZZb1AEREREREREREpGwpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIRETlJTJ8+nUsuuYQ6deoQGBhIeHg4DRs25Oyzz2bYsGGMGTMm2/k9evTAMIzjflmWRZUqVTjzzDMZOXIk+/fv97+nf//+2c4dO3ZsjmO57rrrsp338ssvl+i9i4iIiEjRGK7rumU9CBERESmaoUOH8tFHH+V5TkREBImJif7XPXr0YP78+Sfsu3bt2sydO5e2bduyY8cO2rdv7w+NKleuzIoVK2jQoIH//G+++YYrrrjC//rcc89lwYIFmKb+XUpERESkvFJAJCIiUsHNnj2bfv36+V937tyZfv36ERERQUJCAn///Te//PILlmXlGRC9+uqrACQnJ/PNN9+wfPly/7EzzjiDRYsWATBx4kSGDBniP9avXz9+/PFHABISEmjXrh27du0CIDQ0lLi4OJo1a1b8Ny4iIiIixcZT1gMQERGRojkczgA0a9aMhQsXYllWtnOysrKYN29env08/PDD/s+ffPJJ2rZty8aNGwFYvHgxGzdupEmTJgwePJivv/6aqVOnAvDTTz/x0Ucfcdttt3Hvvff6wyHwhU4Kh0RERETKP831FhERqeBs2/Z/npiYyIYNG447JyAgINssoxMJDg7mjDPOyNa2c+dO/+fvv/8+tWvX9r9+6KGHGD16NBMmTPC39evXjxEjRuT7miIiIiJSdhQQiYiIVHCnn366//P4+HhatWpFp06duO2223j33XeJi4srcJ/p6eks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 truncated
"text/plain": [
"<Figure size 1200x1000 with 8 Axes>"
]
@@ -1108,7 +1108,7 @@
{
"data": {
"text/plain": [
"<__main__.Chart at 0x1304bd970>"
"<__main__.Chart at 0x12dfe9880>"
]
},
"execution_count": 17,
@@ -1137,7 +1137,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAANgCAYAAABHnFOiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXxW5f/H8dc5ZwmDwUan1GgmIiiiSIiIiSL9tVHEAsXEmNj6swMLFFEEVMqW2pggSghTupGODcYGq/uc8/tjcMNgHSx4Px8PZLvOOdf5nI2j7s0Vhuu6LiIiIiIiIiIictYyi7sAEREREREREREpXgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIRERERERERETOcgqIREREyohp06Zx9dVXU7NmTfz8/KhQoQL16tXjwgsv5M477+Tjjz/OcH6XLl0wDOO0X5ZlUalSJTp06MDo0aM5ePCg95pevXplOPfTTz/NtJbBgwdnOO+VV14p0mcXERERkYIxXNd1i7sIERERKZghQ4Ywbty4bM8JDg7m0KFD3s+7dOnC/Pnzc+y7Ro0azJ07lxYtWrBr1y5atWrlDY0qVqzIypUrqVu3rvf8mTNn0rt3b+/nF110Eb///jumqb+XEhERESmpFBCJiIiUcrNmzaJnz57ez9u2bUvPnj0JDg4mLi6Of//9lwULFmBZVrYB0f/93/8BcPjwYWbOnMk///zjPdauXTuWLl0KwKRJkxg0aJD3WM+ePfn1118BiIuLo2XLluzZsweA8uXLExMTQ6NGjQr/wUVERESk0PgUdwEiIiJSMMfDGYBGjRqxZMkSLMvKcE5aWhrz5s3Ltp+HH37Y+/GoUaNo0aIFW7ZsAWDZsmVs2bKFBg0aMHDgQKZPn863334LwG+//ca4ceO44447eOCBB7zhEKSHTgqHREREREo+jfUWEREp5Wzb9n586NAhNm/efNo5vr6+GUYZ5SQgIIB27dplaNu9e7f34w8//JAaNWp4Px85ciRjxoxh4sSJ3raePXsybNiwXN9TRERERIqPAiIREZFS7rzzzvN+HBsbS9OmTQkPD+eOO+7g/fffJyYmJs99Jicns2zZsgxtNWvW9H4cGhrK2LFjvZ/Hx8dz7733ej+vXLlyjmsiiYiIiEjJoTWIRERESjmPx8PFF1/MX3/9leU5TZs25ZVXXsmweHR+1yA62Z133pkhKDpu4sSJGdYpEhEREZGSTQGRiIhIGXDkyBH+7//+j3HjxrFjx45MzzEMg5kzZ3LNNdcAud/FrFq1asydO5dWrVqddiwxMZE2bdp41yoC6Nu3L998800+n0REREREioOmmImIiJQB5cuX59lnn2X79u2sW7eOCRMmMHToUKpVq+Y9x3Vd3nzzzRz7MgyDihUrcv755/PMM8+wevXqTMMhgKCgIG666aYMbVp3SERERKT00S5mIiIiZUxYWBhhYWHcdNNN/N///R/NmjVj165dAGzbti3L6/I7qNgwjGw/FxEREZGSTwGRiIhIKffFF19w5MgRBg0aRKVKlTIc8/f3x8/Pz/t5aGjoGa5OREREREoDBUQiIiKl3JYtWxg9ejQjRoygU6dOtG3blqpVq5KQkMBPP/3E1q1bvedeeeWVxVeoiIiIiJRYCohERETKiLS0NKKiooiKisr0+Pnnn8/DDz98ZosSERERkVJBAZGIiEgpN2LECMLDw4mKimLJkiXs2bOHffv2kZqaSuXKlWnZsiV9+vThzjvvzDDdTERERETkOG1zLyIiIiIiIiJyltM29yIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzkFRCIiIiIiIiIiZzmf4i6goBzH8X5sGEYxViIiIiIiIiIiJZnrut6PTVNjZk5W6gMigISEhOIuQURERERERERKiQoVKhR3CSVOmQiIAHx9fdm4cSNNmjTBsqziLkekVLBtmw0bNui9EckjvTsi+aN3RyR/9O6I5F1W743ruiQnJxdjZSVXqQ+Ijk8rMwwD13UxDENTzURySe+NSP7o3RHJH707Ivmjd0ck73J6b/QunU4T7kREREREREREznIKiEREREREREREcuGtt96icuXKPPHEEwAcPHiQRx99lPbt21OzZk1atWrFY489Rnx8fIbrtm/fTr9+/ahVqxZNmjTh6aefxuPxFMcjZKnUTzETERERERERkYKJjIyka9euxV1Gifb3338zfvx4WrZs6W3bvXs3e/bs4bnnnqNZs2Zs376dhx56iD17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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIgAAANgCAYAAABHnFOiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gUVd/G8e/MbAopBAi9915EwS5VQHzshWZXELH39qgRFctjf1UUQcWCNEFEbCAkBDs1CErvHRKSEFJ3Zt4/FhYCSUgvcH+uC5M9M3vmTMKAuTnndwzXdV1EREREREREROSUZZb1AEREREREREREpGwpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIREREREREROcUpIBIRETlJTJ8+nUsuuYQ6deoQGBhIeHg4DRs25Oyzz2bYsGGMGTMm2/k9evTAMIzjflmWRZUqVTjzzDMZOXIk+/fv97+nf//+2c4dO3ZsjmO57rrrsp338ssvl+i9i4iIiEjRGK7rumU9CBERESmaoUOH8tFHH+V5TkREBImJif7XPXr0YP78+Sfsu3bt2sydO5e2bduyY8cO2rdv7w+NKleuzIoVK2jQoIH//G+++YYrrrjC//rcc89lwYIFmKb+XUpERESkvFJAJCIiUsHNnj2bfv36+V937tyZfv36ERERQUJCAn///Te//PILlmXlGRC9+uqrACQnJ/PNN9+wfPly/7EzzjiDRYsWATBx4kSGDBniP9avXz9+/PFHABISEmjXrh27du0CIDQ0lLi4OJo1a1b8Ny4iIiIixcZT1gMQERGRojkczgA0a9aMhQsXYllWtnOysrKYN29env08/PDD/s+ffPJJ2rZty8aNGwFYvHgxGzdupEmTJgwePJivv/6aqVOnAvDTTz/x0Ucfcdttt3Hvvff6wyHwhU4Kh0RERETKP831FhERqeBs2/Z/npiYyIYNG447JyAgINssoxMJDg7mjDPOyNa2c+dO/+fvv/8+tWvX9r9+6KGHGD16NBMmTPC39evXjxEjRuT7miIiIiJSdhQQiYiIVHCnn366//P4+HhatWpFp06duO2223j33XeJi4srcJ/p6eks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 truncated
"text/plain": [
"<Figure size 1200x1000 with 8 Axes>"
]
@@ -1160,7 +1160,7 @@
{
"data": {
"text/plain": [
"<__main__.Chart at 0x130f8d2b0>"
"<__main__.Chart at 0x12f568d00>"
]
},
"execution_count": 18,
@@ -1191,7 +1191,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIMAAANgCAYAAAC/fKhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wV1brG8d/MpJFCgNCrdAQkFEGpAiLY9Vhoih6PomBXsGGJsaJiu3axYgN7r0giJVIEjIICUqWXhPS6Z+b+EdiQkJC208jzvZ9zyV6zZq139mSSnddVDNd1XUREREREREREpFYwqzoAERERERERERGpPEoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiIiIiIiIjUIkoGiYiI1ECffvopZ599Ns2aNSMgIICwsDBat27NySefzMSJE3nllVfy1R86dCiGYRzxP8uyqFevHv369SM6Opr9+/d7zznjjDPy1Z05c2ahsVxyySX56k2fPr1Cr11EREREysdwXdet6iBERESk5K666ipef/31o9YJDw8nKSnJ+3ro0KH88ssvxbbdtGlTfv75Z7p27cqOHTvo3r27N0FUt25dVq1aRatWrbz1v/jiC84//3zv6wEDBrBgwQJMU/+9SURERKS6UjJIRESkBvnxxx8ZNWqU93WvXr0YNWoU4eHhJCYm8ueff7Jw4UIsyzpqMuiJJ54AICUlhS+++II//vjDe6xPnz789ttvAHzwwQeMHz/ee2zUqFF8//33ACQmJtKtWzd27doFQEhICPHx8bRv3973Fy4iIiIiPuNX1QGIiIhIyR1MxAC0b9+eZcuWYVlWvjq5ubnMmzfvqO1MnTrV+/W0adPo2rUrmzZtAmD58uVs2rSJtm3bMm7cOD777DM++ugjAH744Qdef/11rrzySm688UZvIgjyEkxKBImIiIhUfxrDLSIiUoPYtu39OikpiY0bNx5Rx9/fP9/ooeIEBQXRp0+ffGU7d+70fv3SSy/RtGlT7+spU6bw4osv8t5773nLRo0axeTJk0vcp4iIiIhUHSWDREREapDevXt7v05ISKBz585ERkZy5ZVX8vzzzxMfH1/qNrOysli+fHm+smbNmnm/joiI4LXXXvO+Tk5O5rrrrvO+rl+/frFrGImIiIhI9aE1g0RERGoQj8fDoEGDWLJkSZF1OnfuzPTp0/Mt7FzWNYMON3HixHxJoYPee++9fOsKiYiIiEj1pmSQiIhIDZOens4TTzzB66+/zrZt2wqtYxgGX3zxBeeccw5Q8t3EGjduzM8//0z37t2POJaWlkaPHj28awsBXHzxxXz44YdlvBIRERERqQqaJiYiIlLDhISEcP/997N161bWrl3LrFmzuOaaa2jcuLG3juu6PPXUU8W2ZRgGdevW5cQTT+S+++7jr7/+KjQRBBAaGsqECRPylWmdIBEREZGaR7uJiYiI1GCdOnWiU6dOTJgwgSeeeIIuXbqwY8cOALZs2VLkeWUdGGwYxlFfi4iIiEj1p2SQiIhIDfL222+Tnp7O+PHjqVevXr5jgYGBBAQEeF9HRERUcnQiIiIiUhMoGSQiIlKDbNq0iejoaG6++WYGDhxIr169aNSoEampqXzzzTds3rzZW/fMM8+sukBFREREpNpSMkhERKQGys3NJTY2ltjY2EKPn3jiiUydOrVygxIRERGRGkHJIBERkRrk5ptvJjIyktjYWJYtW8auXbvYs2cPOTk51K9fn27dunHhhRcyceLEfFPGREREREQO0tbyIiIiIiIiIiK1iLaWFxERERERERGpRZQMEhERERERERGpRZQMEhERERERERGpRZQMEhERERERERGpRZQMEhERERERERGpRZQMEhERERERERGpRfyqOoDScBzH+7VhGFUYiYiIiIiIiIhUd67rer82TY2HOahGJYMAUlNTqzoEEREREREREalBwsLCqjqEaqXGJYMA/P39Wb9+PR07dsSyrKoOR6TGsG2bf/75R8+OSCnouREpGz07ImWjZ0ekbIp6dlzXJSsrqwojq55qVDLo4NQwwzBwXRfDMDRdTKQU9OyIlJ6eG5Gy0bMjUjZ6dkTKprhnR89TfpowJyIiIiIiIiJSiygZJCIiIiIiIiJSiygZJCIiIiIiIiJSwNNPP039+vW56667ANi/fz+33347ffv2pVmzZnTv3p077riD5OTkfOdt3bqV0aNH07x5czp27Mi9996Lx+OpiksoUo1aM6hW27GjdPWbN6+YOA5XlpgKnlMZcdZE1fF+S8Up7f0uqLBnqyTnVLcYagtf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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABH8AAANgCAYAAAC1DMRCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wU1frH8c/MbBLSCaFL71JEKUoTEFGuvVIU61UU7AqKeNWIvWD72cWuKMWCHZUSKREFlEgRkN5bgBRSd2Z+fwQWEtKzqXzf98VN9szMOc/sZHeTxzPPMVzXdRERERERERERkWrJrOgARERERERERESk7Cj5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiIiIiIiJSjSn5IyIiUgV8+eWXnH/++TRo0IDAwEDCw8Np0qQJPXr0YMSIEbz11ls59u/fvz+GYRzzz7Isatasyamnnsr48ePZv3+/75hzzjknx74TJ07MM5bhw4fn2O/pp58u03MXERERkdIxXNd1KzoIERERyd+NN97Iu+++W+A+kZGRHDhwwPe4f//+/Prrr4X2Xb9+fWbNmkX79u3Zvn07HTt29CWEIiIiWL58OY0bN/bt//XXX3PxxRf7Hvfq1Yt58+ZhmvrvSSIiIiKVlZI/IiIildjPP//MoEGDfI9POeUUBg0aRGRkJPv27WPZsmXMnz8fy7IKTP4899xzACQlJfH111/z999/+7Z17dqVxYsXA/DZZ59x5ZVX+rYNGjSIGTNmALBv3z46dOjAzp07AQgNDSU+Pp6WLVv6/8RFRERExG88FR2AiIiI5O9w4gWgZcuWLFq0CMuycuyTlZXF7NmzC+xnzJgxvu8feOAB2rdvz4YNGwBYsmQJGzZsoHnz5lxxxRV89dVXTJs2DYCffvqJd999lxtuuIE77rjDl/iB7ISSEj8iIiIilZ/maIuIiFRitm37vj9w4ADr168/Zp+AgIAcs4MKU6NGDbp27ZqjbceOHb7v33jjDerXr+97PHr0aF5//XUmTZrkaxs0aBCjRo0q8pgiIiIiUnGU/BEREanEunTp4vs+ISGBtm3b0rlzZ2644QZeffVV4uPji91neno6S5YsydHWoEED3/fR0dG88847vseJiYnceuutvsdRUVGF1iASERERkcpDNX9EREQqMa/XS58+ffj999/z3adt27Y8/fTTOQoxl7Tmz9FGjBiRIwl02KRJk3LUBRIRERGRyk3JHxERkUru4MGDPPfcc7z77rts3bo1z30Mw+Drr7/mggsuAIq+2lfdunWZNWsWHTt2PGZbSkoKJ510kq82EMDgwYOZOnVqCc9ERERERCqCbvsSERGp5EJDQ3nkkUfYsmULq1ev5qOPPuLmm2+mbt26vn1c1+WFF14otC/DMIiIiKBbt248/PDDrFy5Ms/ED0BYWBhXX311jjbV+RERERGperTal4iISBXSpk0b2rRpw9VXX81zzz1Hu3bt2L59OwCbNm3K97iSTvQ1DKPAxyIiIiJS+Sn5IyIiUol9+OGHHDx4kCuvvJKaNWvm2BYUFERgYKDvcXR0dDlHJyIiIiJVgZI/IiIildiGDRsYP348d911F7179+aUU06hTp06JCcn8/3337Nx40bfvueee27FBSoiIiIilZaSPyIiIlVAVlYWsbGxxMbG5rm9W7dujBkzpnyDEhEREZEqQckfERGRSuyuu+6ic+fOxMbGsmjRInbu3Mnu3bvJzMwkKiqKDh06cNlllzFixIgct4CJiIiIiBympd5FRERERERERKoxLfUuIiIiIiIiIlKNKfkjIiIiIiIiIlKNKfkjIiIiIiIiIlKNKfkjIiIiIiIiIlKNKfkjIiIiIiIiIlKNKfkjIiIiIiIiIlKNeSo6gII4juP73jCMCoxERERERERERCoz13V935um5rocrVInfwCSk5MrOgQRERERERERqSLCw8MrOoRKp9InfwACAgJYu3YtrVu3xrKsig5HpEqwbZt///1XrxuRYtJrR6Rk9NoRKRm9dkSKL7/Xjeu6pKenV2BklVelTv4cvtXLMAxc18UwDN3+JVJEet2IlIxeOyIlo9eOSMnotSNSfIW9bvRaOpZughMRERERERERqcaU/BERERERERERqcaU/BERERERERERqcYqdc2fMrF9e87HDRse25Zbw4ZlF89hhcVQmPKIsSqqrNdbykZJrndp5fXzUtZjFiWG44W/3zu3bwfbxrN7N4SHQ2GFN/3xM3Y8X7+qoLjXtyyuZ2X43Mrr/bW8VcTzoNd33op7Lfzx+1h1uRZ5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 truncated
"text/plain": [
"<Figure size 1200x1000 with 6 Axes>"
]
@@ -1214,7 +1214,7 @@
{
"data": {
"text/plain": [
"<__main__.Chart at 0x1300fe790>"
"<__main__.Chart at 0x1302db0a0>"
]
},
"execution_count": 19,
@@ -1249,7 +1249,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIoAAANgCAYAAABDaYOfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wU1f7G8c/MbAohIUDoVXoJEJFipwrYC9KUa/nZsfeuMXrtvaEoWFApAoodaYlR8VIlCEgNvRNCSAgpOzO/PxYWAklIJYXnfV9esmdmzzmTZIA8nPkew3VdFxEREREREREROemZZT0BEREREREREREpHxQUiYiIiIiIiIgIoKBIREREREREREQOUlAkIiIiIiIiIiKAgiIRERERERERETlIQZGIiIiIiIiIiAAKikRERERERERE5CAFRSIiIiIiIiIiAigoEhERERERERGRgxQUiYiIiIiIiIgIoKBIRESkUvnmm2+4+OKLqV+/PoGBgYSFhdGkSRPOOOMMbr75ZkaNGpXj/F69emEYxjH/WZZF9erV6d69OzExMSQnJ/vfc8EFF+Q49+OPP851LsOHD89x3ksvvVSq1y4iIiIixWe4ruuW9SRERESk+G666SbGjBmT7znh4eHs3bvX/7pXr1789ttvx+27Xr16zJo1i/bt27N161Y6dOjgD4+qVavG0qVLady4sf/87777jssvv9z/+qyzzuL333/HNPVvVCIiIiLlmYIiERGRSmD69OkMGDDA/7pz584MGDCA8PBw9uzZwz///MMff/yBZVn5BkWvvvoqAPv27eO7775jyZIl/mNdunRhwYIFAIwfP56rr77af2zAgAFMmzYNgD179hAZGcn27dsBqFq1KgkJCbRo0aLkL1xERERESpSnrCcgIiIixXcopAFo0aIF8+fPx7KsHOdkZ2cze/bsfPt58MEH/R8//vjjtG/fnnXr1gGwcOFC1q1bR7Nmzbjqqqv49ttvmTRpEgC//vorY8aM4cYbb+Tuu+/2h0TgC58UEomIiIhUDFr/LSIiUgnYtu3/eO/evSQmJh5zTkBAQI5VR8cTHBxMly5dcrRt27bN//EHH3xAvXr1/K8feOABRo4cyVdffeVvGzBgACNGjCjwmCIiIiJSthQUiYiIVAKnnXaa/+OkpCTatGlDVFQUN954I++99x4JCQmF7jMjI4OFCxfmaKtfv77/44iICEaPHu1/nZKSwh133OF/XaNGjePWTBIRERGR8kU1ikRERCoBr9fLOeecw9y5c/M8p02bNrz00ks5ikwXtUbRkW6++eYcgdEhX331VY46RiIiIiJS/ikoEhERqST279/Pq6++ypgxY9i8eXOu5xiGwXfffccll1wCFHzXszp16jBr1iw6dOhwzLG0tDQ6derkr2UEMHjwYL7++usiXomIiIiIlBU9eiYiIlJJVK1alWeeeYZNmzaxcuVKxo4dy6233kqdOnX857iuyxtvvHHcvgzDoFq1anTt2pWnn36a5cuX5xoSAYSGhnLNNdfkaFNdIhEREZGKSbueiYiIVEKtW7emdevWXHPNNbz66qu0bduWrVu3ArBhw4Y831fUhcaGYeT7WkREREQqBgVFIiIilcDnn3/O/v37ufrqq6levXqOY0FBQQQGBvpfR0REnODZiYiIiEhFoaBIRESkEli3bh0xMTHce++9nH322XTu3JnatWuTmprKTz/9xPr16/3nXnjhhWU3UREREREp1xQUiYiIVCLZ2dnExcURFxeX6/GuXbvy4IMPnthJiYiIiEiFoaBIRESkErj33nuJiooiLi6O+fPns337dnbu3ElWVhY1atQgMjKSK6+8kptvvjnHY2giIiIiIkcy3KJWrRQRERERERERkUrFLOsJiIiIiIiIiIhI+aCgSEREREREREREAAVFIiIiIiIiIiJykIIiEREREREREREBFBSJiIiIiIiIiMhBCopERERERERERAQAT1lPoCQ4juP/2DCMMpyJiIiIiIiIiJR3ruv6PzZNraE5UqUIigBSU1PLegoiIiIiIiIiUoGEhYWV9RTKnUoTFAEEBASwZs0aWrVqhWVZZT0dkQrDtm1Wr16te0ekkHTviBSN7h2RwtN9I1I0ed07ruuSkZFRhjMrvypFUHTocTPDMHBdF8Mw9AiaSCHo3hEpGt07IkWje0ek8HTfiBTN8e4d3U/H0oN4IiIiIiIiIiICKCgSERERERERESmwN998kxo1avDYY48BkJyczMMPP0y3bt2oX78+HTp04JFHHiElJSXH+zZt2sSQIUNo0KABrVq14qmnnsLr9ZbFJeSrUjx6JiIiIiIiIiLFExsbS+/evct6GuXaokWL+Oyzz4iMjPS3bdu2je3bt/Pss8/Stm1bNm3axP33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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAABIoAAANgCAYAAABDaYOfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wU1f7G8c/MbBokBAgdpPcWAbFLU0HsBSl2VFRsqNiuLUYvlit2LCiWnyhSREGxgEBiFJCiGASRDgJSk5AQQkh2Zn5/LCwJpPeE531f3GSnnDmzYRLzcM73GK7ruoiIiIiIiIiIyAnPLO8OiIiIiIiIiIhIxaCgSEREREREREREAAVFIiIiIiIiIiJymIIiEREREREREREBFBSJiIiIiIiIiMhhCopERERERERERARQUCQiIiIiIiIiIocpKBIREREREREREUBBkYiIiIiIiIiIHKagSEREREREREREAAVFIiIiVcqXX37JxRdfTMOGDQkMDCQsLIymTZty+umnM2LECMaPH5/t+D59+mAYxnF/LMuiZs2anHrqqURHR5OUlOQ/Z+DAgdmOff/993Psy7XXXpvtuBdeeKFU711EREREis9wXdct706IiIhI8d1666188MEHeR4THh7Ovn37/K/79OnDTz/9lG/bDRo0YN68eXTs2JF///2Xzp07+8OjGjVqsHLlSk466ST/8TNnzuTyyy/3vz7zzDP5+eefMU39G5WIiIhIRaagSEREpAqYM2cOAwYM8L/u1q0bAwYMIDw8nMTERP78809++eUXLMvKMyh66aWXAEhJSWHmzJmsWLHCv69Hjx4sW7YMgM8//5xrrrnGv2/AgAH88MMPACQmJtKpUyd27twJQPXq1YmPj6dVq1Ylf+MiIiIiUqI85d0BERERKb4jIQ1Aq1atWLp0KZZlZTsmMzOT+fPn59nOgw8+6P/8scceo2PHjmzatAmA3377jU2bNtGiRQuGDRvGV199xbRp0wCYPXs2H3zwAbfccgv33nuvPyQCX/ikkEhERESkctD4bxERkSrAtm3/5/v27WPjxo3HHRMQEJBt1FF+goOD6dGjR7ZtO3bs8H/+zjvv0KBBA//r0aNH8/bbb/PZZ5/5tw0YMICRI0cW+JoiIiIiUr4UFImIiFQB3bt393+ekJBAu3btiIyM5JZbbmHcuHHEx8cXus309HR+++23bNsaNmzo/zwiIoIJEyb4XycnJ3PXXXf5X9eqVSvfmkkiIiIiUrGoRpGIiEgV4PV6Ofvss1m8eHGux7Rr144XXnghW5HpotYoymrEiBHZAqMjPvvss2x1jERERESk4lNQJCIiUkUcOHCAl156iQ8++IBt27bleIxhGMycOZNLLrkEKPiqZ/Xq1WPevHl07tz5uH2pqal07drVX8sI4Oqrr2bq1KlFvBMRERERKS+aeiYiIlJFVK9enaeffpqtW7eyZs0aPvnkE26//Xbq1avnP8Z1XV555ZV82zIMgxo1anDKKafw1FNP8ddff+UYEgGEhoZy/fXXZ9umukQiIiIilZNWPRMREamC2rZtS9u2bbn++ut56aWXaN++Pf/++y8AW7ZsyfW8og40Ngwjz9ciIiIiUjkoKBIREakC/u///o8DBw5wzTXXULNmzWz7goKCCAwM9L+OiIgo496JiIiISGWhoEhERKQK2LRpE9HR0dx3332cddZZdOvWjbp167J//36+/fZbNm/e7D/2wgsvLL+OioiIiEiFpqBIRESkCsnMzCQ2NpbY2Ngc959yyik8+OCDZdspEREREak0FBSJiIhUAffddx+RkZHExsaydOlSdu7cye7du8nIyKBWrVp06tSJq666ihEjRmSbhiYiIiIikpXhFrVqpYiIiIiIiIiIVClmeXdAREREREREREQqBgVFIiIiIiIiIiICKCgSEREREREREZHDFBSJiIiIiIiIiAigoEhERERERERERA5TUCQiIiIiIiIiIgB4yrsDJcFxHP/nhmGUY09EREREREREpKJzXdf/uWlqDE1WVSIoAti/f395d0FEREREREREKpGwsLDy7kKFU2WCIoCAgADWr19PmzZtsCyrvLsjUmnYts26dev07IgUkp4dkaLRsyNSeHpuRIomt2fHdV3S09PLsWcVV5UIio5MNzMMA9d1MQxDU9BECkHPjkjR6NkRKRo9OyKFp+dGpGjye3b0PB1PE/FERERERERERARQUCQiIiIiIiIiIocpKBIRERERERGpAmJiYvJ8LVIQCopEREREREREqoDY2Fj/59aQoZhvvY01ZGj5dUgqpSpRzFpEREREREREskhOpp9pgWOXd0+kktGIIhEREREREZFKLjIuirkNEomMiyrvrkglpxFFIiIiIiIiIpVcQkYq+9oG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 truncated
"text/plain": [
"<Figure size 1200x1000 with 8 Axes>"
]
@@ -1272,7 +1272,7 @@
{
"data": {
"text/plain": [
"<__main__.Chart at 0x1309e5a90>"
"<__main__.Chart at 0x12e748dc0>"
]
},
"execution_count": 20,
+1
View File
@@ -25,6 +25,7 @@ Imports = {
"alphaVantage-api": find_spec("alphaVantageAPI") is not None,
"matplotlib": find_spec("matplotlib") is not None,
"mplfinance": find_spec("mplfinance") is not None,
"numba": find_spec("numba") is not None,
"yaml": find_spec("yaml") is not None,
"scipy": find_spec("scipy") is not None,
"sklearn": find_spec("sklearn") is not None,
+16 -11
View File
@@ -1,30 +1,31 @@
# -*- coding: utf-8 -*-
from pandas_ta.utils import get_offset, verify_series
from pandas_ta.utils import get_drift, get_offset, is_percent, verify_series
def decreasing(close, length=None, strict=None, asint=None, offset=None, **kwargs):
def decreasing(close, length=None, strict=None, asint=None, percent=None, drift=None, offset=None, **kwargs):
"""Indicator: Decreasing"""
# Validate Arguments
length = int(length) if length and length > 0 else 1
strict = strict if isinstance(strict, bool) else False
asint = asint if isinstance(asint, bool) else True
close = verify_series(close, length)
drift = get_drift(drift)
offset = get_offset(offset)
percent = float(percent) if is_percent(percent) else False
if close is None: return
def stricly_decreasing(series, n):
return all([i > j for i,j in zip(series[-n:], series[1:])])
# Calculate Result
close_ = (1 - 0.01 * percent) * close if percent else close
if strict:
# Returns value as float64? Have to cast to bool
decreasing = close.rolling(length, min_periods=length) \
.apply(stricly_decreasing, args=(length,), raw=False)
decreasing = close < close_.shift(drift)
for x in range(3, length + 1):
decreasing = decreasing & (close.shift(x - (drift + 1)) < close_.shift(x - drift))
decreasing.fillna(0, inplace=True)
decreasing = decreasing.astype(bool)
else:
decreasing = close.diff(length) < 0
decreasing = close_.diff(length) < 0
if asint:
decreasing = decreasing.astype(int)
@@ -40,7 +41,9 @@ def decreasing(close, length=None, strict=None, asint=None, offset=None, **kwarg
decreasing.fillna(method=kwargs["fill_method"], inplace=True)
# Name and Categorize it
decreasing.name = f"{'S' if strict else ''}DEC_{length}"
_percent = f"_{0.01 * percent}" if percent else ''
_props = f"{'S' if strict else ''}DEC{'p' if percent else ''}"
decreasing.name = f"{_props}_{length}{_percent}"
decreasing.category = "trend"
return decreasing
@@ -66,8 +69,10 @@ Calculation:
Args:
close (pd.Series): Series of 'close's
length (int): It's period. Default: 1
asint (bool): Returns as binary. Default: True
strict (bool): If True, checks if the series is continuously decreasing over the period. Default: False
percent (float): Percent as an integer. Default: None
asint (bool): Returns as binary. Default: True
drift (int): The difference period. Default: 1
offset (int): How many periods to offset the result. Default: 0
Kwargs:
+16 -11
View File
@@ -1,30 +1,31 @@
# -*- coding: utf-8 -*-
from pandas_ta.utils import get_offset, verify_series
from pandas_ta.utils import get_drift, get_offset, is_percent, verify_series
def increasing(close, length=None, strict=None, asint=None, offset=None, **kwargs):
def increasing(close, length=None, strict=None, asint=None, percent=None, drift=None, offset=None, **kwargs):
"""Indicator: Increasing"""
# Validate Arguments
length = int(length) if length and length > 0 else 1
strict = strict if isinstance(strict, bool) else False
asint = asint if isinstance(asint, bool) else True
close = verify_series(close, length)
drift = get_drift(drift)
offset = get_offset(offset)
percent = float(percent) if is_percent(percent) else False
if close is None: return
def stricly_increasing(series, n):
return all([i < j for i,j in zip(series[-n:], series[1:])])
# Calculate Result
close_ = (1 + 0.01 * percent) * close if percent else close
if strict:
# Returns value as float64? Have to cast to bool
increasing = close.rolling(length, min_periods=length) \
.apply(stricly_increasing, args=(length,), raw=False)
increasing = close > close_.shift(drift)
for x in range(3, length + 1):
increasing = increasing & (close.shift(x - (drift + 1)) > close_.shift(x - drift))
increasing.fillna(0, inplace=True)
increasing = increasing.astype(bool)
else:
increasing = close.diff(length) > 0
increasing = close_.diff(length) > 0
if asint:
increasing = increasing.astype(int)
@@ -40,7 +41,9 @@ def increasing(close, length=None, strict=None, asint=None, offset=None, **kwarg
increasing.fillna(method=kwargs["fill_method"], inplace=True)
# Name and Categorize it
increasing.name = f"{'S' if strict else ''}INC_{length}"
_percent = f"_{0.01 * percent}" if percent else ''
_props = f"{'S' if strict else ''}INC{'p' if percent else ''}"
increasing.name = f"{_props}_{length}{_percent}"
increasing.category = "trend"
return increasing
@@ -66,8 +69,10 @@ Calculation:
Args:
close (pd.Series): Series of 'close's
length (int): It's period. Default: 1
asint (bool): Returns as binary. Default: True
strict (bool): If True, checks if the series is continuously increasing over the period. Default: False
percent (float): Percent as an integer. Default: None
asint (bool): Returns as binary. Default: True
drift (int): The difference period. Default: 1
offset (int): How many periods to offset the result. Default: 0
Kwargs:
+1 -1
View File
@@ -9,7 +9,7 @@ from pandas import Series, Timedelta
from ._core import verify_series
from ._time import total_time
from ._math import linear_regression, log_geometric_mean
from pandas_ta import RATE
from pandas_ta import Imports, RATE
from pandas_ta.performance import drawdown, log_return, percent_return
+1 -1
View File
@@ -18,7 +18,7 @@ setup(
"pandas_ta.volatility",
"pandas_ta.volume"
],
version=".".join(("0", "2", "79b")),
version=".".join(("0", "2", "80b")),
description=long_description,
long_description=long_description,
author="Kevin Johnson",
+30 -1
View File
@@ -359,20 +359,49 @@ class TestMomentum(TestCase):
self.assertIsInstance(result, DataFrame)
self.assertEqual(result.name, "STC_10_12_26_0.5")
# @skip
def test_stoch(self):
# TV Correlation
result = pandas_ta.stoch(self.high, self.low, self.close)
self.assertIsInstance(result, DataFrame)
self.assertEqual(result.name, "STOCH_14_3_3")
try:
expected = tal.STOCH(self.high, self.low, self.close, 14, 3, 0, 3)
expecteddf = DataFrame({"STOCHk_14_3_0_3": expected[0], "STOCHd_14_3_0_3": expected[1]})
pdt.assert_frame_equal(result, expecteddf)
except AssertionError as ae:
try:
stochk_corr = pandas_ta.utils.df_error_analysis(result.iloc[:, 0], expecteddf.iloc[:, 0], col=CORRELATION)
self.assertGreater(stochk_corr, CORRELATION_THRESHOLD)
except Exception as ex:
error_analysis(result.iloc[:, 0], CORRELATION, ex)
try:
stochd_corr = pandas_ta.utils.df_error_analysis(result.iloc[:, 1], expecteddf.iloc[:, 1], col=CORRELATION)
self.assertGreater(stochd_corr, CORRELATION_THRESHOLD)
except Exception as ex:
error_analysis(result.iloc[:, 1], CORRELATION, ex, newline=False)
def test_stochrsi(self):
# TV Correlation
result = pandas_ta.stochrsi(self.close)
self.assertIsInstance(result, DataFrame)
self.assertEqual(result.name, "STOCHRSI_14_14_3_3")
try:
expected = tal.STOCHRSI(self.close, 14, 14, 3, 0)
expecteddf = DataFrame({"STOCHRSIk_14_14_0_3": expected[0], "STOCHRSId_14_14_3_0": expected[1]})
pdt.assert_frame_equal(result, expecteddf)
except AssertionError as ae:
try:
stochrsid_corr = pandas_ta.utils.df_error_analysis(result.iloc[:, 0], expecteddf.iloc[:, 1], col=CORRELATION)
self.assertGreater(stochrsid_corr, CORRELATION_THRESHOLD)
except Exception as ex:
error_analysis(result.iloc[:, 0], CORRELATION, ex, newline=False)
@skip
def test_td_seq(self):
"""TS Sequential: Working but SLOW implementation"""
result = pandas_ta.td_seq(self.close)
self.assertIsInstance(result, DataFrame)
self.assertEqual(result.name, "TD_SEQ")