Files
pandas-ta/examples/PandasTA_Study_Examples.ipynb
T

3247 lines
222 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pandas TA ([pandas_ta](https://github.com/twopirllc/pandas-ta)) Studies for Custom Technical Analysis\n",
"\n",
"## Topics\n",
"- What is a Pandas TA Study?\n",
" - Builtin Studies: __AllStudy__ and __CommonStudy__\n",
" - Creating Studies\n",
"- Watchlist Class\n",
" - Study Management and Execution\n",
" - **NOTE:** The **watchlist** module is independent of Pandas TA. To easily use it, copy it from your local pandas_ta installation directory into your project directory.\n",
"- Indicator Composition/Chaining for more Complex Studies\n",
" - Comprehensive Example: _MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns_"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Pandas TA v0.3.32b0\n",
"To install the Latest Version:\n",
"$ pip install -U git+https://github.com/twopirllc/pandas-ta\n",
"\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%matplotlib inline\n",
"import datetime as dt\n",
"\n",
"from tqdm import tqdm\n",
"\n",
"import pandas as pd\n",
"import pandas_ta as ta\n",
"from alphaVantageAPI.alphavantage import AlphaVantage # pip install alphaVantage-api\n",
"\n",
"from watchlist import Watchlist # Is this failing? If so, copy it locally. See above.\n",
"\n",
"print(f\"\\nPandas TA v{ta.version}\\nTo install the Latest Version:\\n$ pip install -U git+https://github.com/twopirllc/pandas-ta\\n\")\n",
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What is a Pandas TA Study?\n",
"A _Study_ is a simple way to name and group TA indicators. Technically, a _Study_ is a simple Data Class to contain list of indicators and their parameters. __Note__: _Study_ is experimental and subject to change. Pandas TA comes with two basic Studies: __AllStudy__ and __CommonStudy__.\n",
"\n",
"## Study Requirements:\n",
"- _name_: Some short memorable string. _Note_: Case-insensitive \"All\" is reserved.\n",
"- _ta_: A list of dicts containing keyword arguments to identify the indicator and the indicator's arguments\n",
"\n",
"## Optional Requirements:\n",
"- _description_: A more detailed description of what the Study tries to capture. Default: None\n",
"- _created_: At datetime string of when it was created. Default: Automatically generated.\n",
"\n",
"### Things to note:\n",
"- A Study will __fail__ when consumed by Pandas TA if there is no {\"kind\": \"indicator name\"} attribute."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Builtin Examples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### All\n",
"Default Values"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"AllStudy.name = 'All'\n",
"AllStudy.description = 'All the indicators with their default settings. Pandas TA default.'\n",
"AllStudy.created = 'Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)'\n",
"AllStudy.ta = None\n",
"AllStudy.cores = 8\n"
]
}
],
"source": [
"AllStudy = ta.AllStudy\n",
"print(f\"{AllStudy.name = }\")\n",
"print(f\"{AllStudy.description = }\")\n",
"print(f\"{AllStudy.created = }\")\n",
"print(f\"{AllStudy.ta = }\")\n",
"print(f\"{AllStudy.cores = }\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Common\n",
"Default Values"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CommonStudy.name = 'Common Price and Volume SMAs'\n",
"CommonStudy.description = 'Common Price SMAs: 10, 20, 50, 200 and Volume SMA: 20.'\n",
"CommonStudy.created = 'Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)'\n",
"CommonStudy.ta = [{'kind': 'sma', 'length': 10}, {'kind': 'sma', 'length': 20}, {'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}, {'kind': 'sma', 'close': 'volume', 'length': 20, 'prefix': 'VOL'}]\n",
"CommonStudy.cores = 0\n"
]
}
],
"source": [
"CommonStudy = ta.CommonStudy\n",
"print(f\"{CommonStudy.name = }\")\n",
"print(f\"{CommonStudy.description = }\")\n",
"print(f\"{CommonStudy.created = }\")\n",
"print(f\"{CommonStudy.ta = }\")\n",
"print(f\"{CommonStudy.cores = }\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Creating Studies\n",
"Studies require a **name** and an array of dicts containing the \"kind\" of indicator (\"sma\") and other potential parameters for **ta**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Study A"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_a = ta.Study(name=\"A\", cores=0, ta=[{\"kind\": \"sma\", \"length\": 50}, {\"kind\": \"sma\", \"length\": 200}])\n",
"custom_a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Study B"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_b = ta.Study(name=\"B\", cores=0, ta=[{\"kind\": \"ema\", \"length\": 8}, {\"kind\": \"ema\", \"length\": 21}, {\"kind\": \"log_return\", \"cumulative\": True}, {\"kind\": \"rsi\"}, {\"kind\": \"supertrend\"}])\n",
"custom_b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Bad Study. (Misspelled Indicator)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Runtime Failure', ta=[{'kind': 'peret_return'}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Misspelled indicator, will fail later when ran with Pandas TA\n",
"custom_run_failure = ta.Study(name=\"Runtime Failure\", cores=0, ta=[{\"kind\": \"peret_return\"}])\n",
"custom_run_failure"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Study Management and Execution with _Watchlist_"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Initialize AlphaVantage Data Source"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"AlphaVantage(\n",
" end_point:str = https://www.alphavantage.co/query,\n",
" api_key:str = YOUR API KEY,\n",
" export:bool = True,\n",
" export_path:str = .,\n",
" output_size:str = full,\n",
" output:str = csv,\n",
" datatype:str = json,\n",
" clean:bool = True,\n",
" proxy:dict = {}\n",
")"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AV = AlphaVantage(\n",
" api_key=\"YOUR API KEY\", premium=False,\n",
" output_size='full', clean=True,\n",
" export_path=\".\", export=True\n",
")\n",
"AV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Watchlist and set it's 'ds' to AlphaVantage"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"data_source = \"av\" # Default\n",
"data_source = \"yahoo\"\n",
"watch = Watchlist([\"SPY\", \"IWM\"], ds_name=data_source, timed=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"#### Info about the Watchlist. Note, the default Study is \"All\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Watch(name='Watch: SPY, IWM', ds_name='yahoo', tickers[2]='SPY, IWM', tf='D', study[5]='Common Price and Volume SMAs')"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Help about Watchlist"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on class Watchlist in module watchlist:\n",
"\n",
"class Watchlist(builtins.object)\n",
" | Watchlist(tickers: list, tf: str = None, name: str = None, study: pandas_ta.utils._study.Study = None, ds_name: str = 'av', **kwargs)\n",
" | \n",
" | # Watchlist Class (** This is subject to change! **)\n",
" | A simple Class to load/download financial market data and automatically\n",
" | apply Technical Analysis indicators with a Pandas TA Study.\n",
" | \n",
" | Default Study: pandas_ta.CommonStudy\n",
" | \n",
" | ## Package Support:\n",
" | ### Data Source (Default: AlphaVantage)\n",
" | - AlphaVantage (pip install alphaVantage-api).\n",
" | - Python Binance (pip install python-binance). # Future Support\n",
" | - Yahoo Finance (pip install yfinance). # Almost Supported\n",
" | \n",
" | # Technical Analysis:\n",
" | - Pandas TA (pip install pandas_ta)\n",
" | \n",
" | ## Required Arguments:\n",
" | - tickers: A list of strings containing tickers. Example: [\"SPY\", \"AAPL\"]\n",
" | \n",
" | Methods defined here:\n",
" | \n",
" | __init__(self, tickers: list, tf: str = None, name: str = None, study: pandas_ta.utils._study.Study = None, ds_name: str = 'av', **kwargs)\n",
" | Initialize self. See help(type(self)) for accurate signature.\n",
" | \n",
" | __repr__(self) -> str\n",
" | Return repr(self).\n",
" | \n",
" | indicators(self, *args, **kwargs) -> <built-in function any>\n",
" | Returns the list of indicators that are available with Pandas Ta.\n",
" | \n",
" | load(self, ticker: str = None, tf: str = None, index: str = 'date', drop: list = [], plot: bool = False, **kwargs) -> pandas.core.frame.DataFrame\n",
" | Loads or Downloads (if a local csv does not exist) the data from the\n",
" | Data Source. When successful, it returns a Data Frame for the requested\n",
" | ticker. If no tickers are given, it loads all the tickers.\n",
" | \n",
" | ----------------------------------------------------------------------\n",
" | Data descriptors defined here:\n",
" | \n",
" | __dict__\n",
" | dictionary for instance variables (if defined)\n",
" | \n",
" | __weakref__\n",
" | list of weak references to the object (if defined)\n",
" | \n",
" | data\n",
" | When not None, it contains a dictionary of DataFrames keyed by ticker. data = {\"SPY\": pd.DataFrame, ...}\n",
" | \n",
" | name\n",
" | The name of the Watchlist. Default: \"Watchlist: {Watchlist.tickers}\".\n",
" | \n",
" | strategy\n",
" | Sets a valid Strategy. Default: pandas_ta.CommonStrategy\n",
" | \n",
" | study\n",
" | Sets a valid Study. Default: pandas_ta.CommonStudy\n",
" | \n",
" | tf\n",
" | Alias for timeframe. Default: 'D'\n",
" | \n",
" | tickers\n",
" | tickers\n",
" | \n",
" | If a string, it it converted to a list. Example: \"AAPL\" -> [\"AAPL\"]\n",
" | * Does not accept, comma seperated strings.\n",
" | If a list, checks if it is a list of strings.\n",
" | \n",
" | verbose\n",
" | Toggle the verbose property. Default: False\n",
"\n"
]
}
],
"source": [
"help(Watchlist)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Default Study is \"Common\""
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[!] Loading All: SPY, IWM\n",
"[+] Downloading[yahoo]: SPY[D]\n",
"[+] yf | SPY(7310, 7): 4522.0008 ms (4.5220 s)\n",
"[+] Saving: /Users/kj/av_data/SPY_D.csv\n",
"[+] Study: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': True, 'append': True}\n",
"[i] No mulitproccessing (cores = 0).\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[i] Progress: 100%|████████████████████████████████████████████| 5/5 [00:00<00:00, 122.64it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[i] Last Run: Monday February 7, 2022, NYSE: 5:46:21, Local: 9:46:21 PST, Day 38/365 (10.00%)\n",
"[i] Analysis Time: 55.7978 ms (0.0558 s)\n",
"[+] Downloading[yahoo]: IWM[D]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[+] yf | IWM(5460, 7): 3960.7030 ms (3.9607 s)\n",
"[+] Saving: /Users/kj/av_data/IWM_D.csv\n",
"[+] Study: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': True, 'append': True}\n",
"[i] No mulitproccessing (cores = 0).\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[i] Progress: 100%|███████████████████████████████████████████| 5/5 [00:00<00:00, 1266.47it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Total indicators: 5\n",
"[i] Columns added: 5\n",
"[i] Last Run: Monday February 7, 2022, NYSE: 5:46:25, Local: 9:46:25 PST, Day 38/365 (10.00%)\n",
"[i] Analysis Time: 5.0981 ms (0.0051 s)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"# No arguments loads all the tickers and applies the Study to each ticker.\n",
"# The result can be accessed with Watchlist's 'data' property which returns a \n",
"# dictionary keyed by ticker and DataFrames as values \n",
"watch.load(verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'SPY: (7310, 12), IWM: (5460, 12)'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\", \".join([f\"{t}: {d.shape}\" for t,d in watch.data.items()])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>SMA_10</th>\n",
" <th>SMA_20</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>VOL_SMA_20</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.645573</td>\n",
" <td>25.645573</td>\n",
" <td>25.517983</td>\n",
" <td>25.627346</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.791393</td>\n",
" <td>25.882529</td>\n",
" <td>25.736712</td>\n",
" <td>25.864302</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.900767</td>\n",
" <td>26.155947</td>\n",
" <td>25.882540</td>\n",
" <td>26.137720</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.228843</td>\n",
" <td>26.301752</td>\n",
" <td>25.937209</td>\n",
" <td>26.247070</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.022003</td>\n",
" <td>454.610001</td>\n",
" <td>461.063572</td>\n",
" <td>440.467170</td>\n",
" <td>126778345.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.582004</td>\n",
" <td>453.600002</td>\n",
" <td>460.865603</td>\n",
" <td>440.713518</td>\n",
" <td>129087460.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.567004</td>\n",
" <td>452.511002</td>\n",
" <td>460.478942</td>\n",
" <td>440.886810</td>\n",
" <td>129761735.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>443.639005</td>\n",
" <td>451.549002</td>\n",
" <td>460.121924</td>\n",
" <td>441.089413</td>\n",
" <td>131335570.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>444.420245</td>\n",
" <td>450.627122</td>\n",
" <td>459.719042</td>\n",
" <td>441.264651</td>\n",
" <td>129058021.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7310 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.645573 25.645573 25.517983 25.627346 1003200 \n",
"1993-02-01 25.645579 25.809624 25.645579 25.809624 480500 \n",
"1993-02-02 25.791393 25.882529 25.736712 25.864302 201300 \n",
"1993-02-03 25.900767 26.155947 25.882540 26.137720 529400 \n",
"1993-02-04 26.228843 26.301752 25.937209 26.247070 531500 \n",
"... ... ... ... ... ... \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits SMA_10 SMA_20 SMA_50 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN NaN \n",
"... ... ... ... ... ... \n",
"2022-02-01 0.0 0 442.022003 454.610001 461.063572 \n",
"2022-02-02 0.0 0 442.582004 453.600002 460.865603 \n",
"2022-02-03 0.0 0 442.567004 452.511002 460.478942 \n",
"2022-02-04 0.0 0 443.639005 451.549002 460.121924 \n",
"2022-02-07 0.0 0 444.420245 450.627122 459.719042 \n",
"\n",
" SMA_200 VOL_SMA_20 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-02-01 440.467170 126778345.0 \n",
"2022-02-02 440.713518 129087460.0 \n",
"2022-02-03 440.886810 129761735.0 \n",
"2022-02-04 441.089413 131335570.0 \n",
"2022-02-07 441.264651 129058021.6 \n",
"\n",
"[7310 rows x 12 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.data[\"SPY\"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 4.2129 ms (0.0042 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>SMA_10</th>\n",
" <th>SMA_20</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>VOL_SMA_20</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.645573</td>\n",
" <td>25.645573</td>\n",
" <td>25.517983</td>\n",
" <td>25.627346</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.791393</td>\n",
" <td>25.882529</td>\n",
" <td>25.736712</td>\n",
" <td>25.864302</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.900767</td>\n",
" <td>26.155947</td>\n",
" <td>25.882540</td>\n",
" <td>26.137720</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.228843</td>\n",
" <td>26.301752</td>\n",
" <td>25.937209</td>\n",
" <td>26.247070</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.022003</td>\n",
" <td>454.610001</td>\n",
" <td>461.063572</td>\n",
" <td>440.467170</td>\n",
" <td>126778345.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.582004</td>\n",
" <td>453.600002</td>\n",
" <td>460.865603</td>\n",
" <td>440.713518</td>\n",
" <td>129087460.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>442.567004</td>\n",
" <td>452.511002</td>\n",
" <td>460.478942</td>\n",
" <td>440.886810</td>\n",
" <td>129761735.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>443.639005</td>\n",
" <td>451.549002</td>\n",
" <td>460.121924</td>\n",
" <td>441.089413</td>\n",
" <td>131335570.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>444.420245</td>\n",
" <td>450.627122</td>\n",
" <td>459.719042</td>\n",
" <td>441.264651</td>\n",
" <td>129058021.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7310 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.645573 25.645573 25.517983 25.627346 1003200 \n",
"1993-02-01 25.645579 25.809624 25.645579 25.809624 480500 \n",
"1993-02-02 25.791393 25.882529 25.736712 25.864302 201300 \n",
"1993-02-03 25.900767 26.155947 25.882540 26.137720 529400 \n",
"1993-02-04 26.228843 26.301752 25.937209 26.247070 531500 \n",
"... ... ... ... ... ... \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits SMA_10 SMA_20 SMA_50 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN NaN \n",
"... ... ... ... ... ... \n",
"2022-02-01 0.0 0 442.022003 454.610001 461.063572 \n",
"2022-02-02 0.0 0 442.582004 453.600002 460.865603 \n",
"2022-02-03 0.0 0 442.567004 452.511002 460.478942 \n",
"2022-02-04 0.0 0 443.639005 451.549002 460.121924 \n",
"2022-02-07 0.0 0 444.420245 450.627122 459.719042 \n",
"\n",
" SMA_200 VOL_SMA_20 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-02-01 440.467170 126778345.0 \n",
"2022-02-02 440.713518 129087460.0 \n",
"2022-02-03 440.886810 129761735.0 \n",
"2022-02-04 441.089413 131335570.0 \n",
"2022-02-07 441.264651 129058021.6 \n",
"\n",
"[7310 rows x 12 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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C99ChVyuTEREREQk/1IoFcmm49HR7J43j11z57Jr7lwOh4cDUDg4mN6ffUb9G25wuUIRERERkfxPoVQkC47u2sXCkSOJmDUrPYSmKVS0KNW7dOGqd9+lVM2aLlUoIiIiIlKwKJSKZIK1ljWffcbMIUNIiosDnBBapUMHqoWFUS0sjPLNm+Pjp39SIiIiIiJZob+gRTIQt28f0wYMSF/apf4NN9DumWcUQkVEREREcoD+ohY5j03ffcevDz1EwuHDBJQowTWjR9O4Xz+MMW6XJiIiIiJyUVAoFTmHhMOHmf5//8fGyZMBqHn11fT69FOKV6rkcmUiIiIiIhcXhVKRvwn/7Td+vu8+4vftwz8oiKvefZcWAweqd1REREREJBcolMolz3o8HImI4OCmTWz56SfWTpgAQOV27bj+8881k66IiIiISC5SKJVLhvV4OLp7Nwc3bSJm0yYOpj02byYlISH9ON9Chej86qu0efxxfHx9XaxYREREROTip1AqFz3r8bDyv/9lzgsvkBAbe85jilWoQEjDhpRt1Ijm999PSIMGeVyliIiIiMilSaFULmoxmzYxbcAAIhcvBqBouXKENGzoBFDv15AGDQgsWdLlSkVERERELk0KpXJRSklMZMHrr7PwzTfxJCdTtFw5rhk9mvo33KAJi0RERERE8hGFUrno7J4/n18GDCB261YAWgwcSNc33ySgRAl3CxMRERERkX9QKJUCz5OSwoENG4hcvJhds2ezecoUAMrUr89148ZRpX17lysUEREREZF/o1AqBU7yyZNEzJlD5OLFRC1ZQvTy5SSfOJG+37dQIToMG0a7Z57Br3BhFysVEREREZGMKJRKgZF88iQrP/6YRSNHciIm5qx9JWvWpHLbtlRq04Za3btTsnp1l6oUEREREZGsUCiVfC8lMZFV48ax8I03iN+/H4DQpk2pefXVVG7blspt2lCkbFmXqxQRERERkexQKJV8K+XUKdaMH8+C118nLjoagPLNmxM2YgS1r71Ws+iKiIiIiFwEFEol30lNSmLNhAkseO01jkdGAk7PaNiIEdTt1UthVERERETkIqJQKq7zpKZyODycfatXs2/NGjb/8ANHd+0CIKRhQ8JGjKB+nz4YHx93CxURERERkRynUCp5LiUxkU3ffUf08uXsX7OG/WvXknzy5FnHlKlfn7CXXqLBTTcp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tRHJDLUTyYjaiJyP2ofkZwqlIrlMFy0kI2ojkhlqJ5IRtRE5H7UPyc8USkVERERERMQ1mn1XREREREREXKNQKiIiIiIiIq5RKBURERERERHXKJSKiIiIiIiIaxRKRUREcogxJtUYs9YYs8kYs84Y84Qx5ry/a40x1Ywx/fKqRhERkfxGoVRERCTnJFhrL7PWNgS6AdcAwzM4pxqgUCoiIpcsLQkjIiKSQ4wx8dbaomf8XANYAZQBqgJfAkW8uwdZaxcbY5YC9YEI4HNgFPAmEAYUBj6y1v43z96EiIhIHlMoFRERySF/D6XebUeBukAc4LHWJhpjagPfWGtbGmPCgCettT29xw8AylprXzXGFAYWATdbayPy8K2IiIjkGT+3CxAREblE+AOjjTGXAalAnX857iqgiTHmJu/PwUBtnJ5UERGRi45CqYiISC7xDt9NBWJw7i09ADTFmdMh8d9OAwZba2fmSZEiIiIu00RHIiIiucAYEwJ8DIy2zr0ywcA+a60HuBPw9R4aBxQ749SZwEPGGH/v89QxxhRBRETkIqWeUhERkZwTaIxZizNUNwVnYqP/ePeNAX40xvQHZgAnvNvXA6nGmHXAROADnBl5VxtjDHAQuD5vyhcREcl7muhIREREREREXKPhuyIiIiIiIuIahVIRERERERFxjUKpiIiIiIiIuEahVERERERERFyjUCoiIiIiIiKuUSgVERERERER1yiUioiIiIiIiGsUSkVERERERMQ1/w9eO2gusDaEeAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1152x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"watch.load(\"SPY\", plot=True, mas=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Easy to swap Studies and run them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Study A"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_a into Watchlist and verify\n",
"watch.study = custom_a\n",
"watch.study"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[i] Analysis Time: 2.1510 ms (0.0022 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>34.332574</td>\n",
" <td>34.473957</td>\n",
" <td>34.167627</td>\n",
" <td>34.473957</td>\n",
" <td>74800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-30</th>\n",
" <td>34.968806</td>\n",
" <td>35.746414</td>\n",
" <td>34.968806</td>\n",
" <td>35.746414</td>\n",
" <td>57600</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-31</th>\n",
" <td>35.864248</td>\n",
" <td>36.335526</td>\n",
" <td>35.864248</td>\n",
" <td>35.876030</td>\n",
" <td>36000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-01</th>\n",
" <td>36.612394</td>\n",
" <td>36.688976</td>\n",
" <td>36.612394</td>\n",
" <td>36.688976</td>\n",
" <td>7000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-02</th>\n",
" <td>38.350235</td>\n",
" <td>38.597656</td>\n",
" <td>38.350235</td>\n",
" <td>38.597656</td>\n",
" <td>29400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>201.660004</td>\n",
" <td>203.570007</td>\n",
" <td>197.970001</td>\n",
" <td>203.360001</td>\n",
" <td>43429400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>215.571844</td>\n",
" <td>221.587410</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>203.619995</td>\n",
" <td>203.899994</td>\n",
" <td>199.289993</td>\n",
" <td>201.339996</td>\n",
" <td>42777800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>214.958340</td>\n",
" <td>221.516338</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>198.839996</td>\n",
" <td>201.240005</td>\n",
" <td>197.050003</td>\n",
" <td>197.529999</td>\n",
" <td>39629400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>214.288376</td>\n",
" <td>221.399866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>197.039993</td>\n",
" <td>200.100006</td>\n",
" <td>194.919998</td>\n",
" <td>198.380005</td>\n",
" <td>34238900</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>213.643388</td>\n",
" <td>221.292209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>198.429993</td>\n",
" <td>200.699997</td>\n",
" <td>197.990005</td>\n",
" <td>199.100006</td>\n",
" <td>14568016</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>213.007815</td>\n",
" <td>221.167410</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5460 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2000-05-26 34.332574 34.473957 34.167627 34.473957 74800 \n",
"2000-05-30 34.968806 35.746414 34.968806 35.746414 57600 \n",
"2000-05-31 35.864248 36.335526 35.864248 35.876030 36000 \n",
"2000-06-01 36.612394 36.688976 36.612394 36.688976 7000 \n",
"2000-06-02 38.350235 38.597656 38.350235 38.597656 29400 \n",
"... ... ... ... ... ... \n",
"2022-02-01 201.660004 203.570007 197.970001 203.360001 43429400 \n",
"2022-02-02 203.619995 203.899994 199.289993 201.339996 42777800 \n",
"2022-02-03 198.839996 201.240005 197.050003 197.529999 39629400 \n",
"2022-02-04 197.039993 200.100006 194.919998 198.380005 34238900 \n",
"2022-02-07 198.429993 200.699997 197.990005 199.100006 14568016 \n",
"\n",
" Dividends Stock Splits SMA_50 SMA_200 \n",
"Date \n",
"2000-05-26 0.0 0.0 NaN NaN \n",
"2000-05-30 0.0 0.0 NaN NaN \n",
"2000-05-31 0.0 0.0 NaN NaN \n",
"2000-06-01 0.0 0.0 NaN NaN \n",
"2000-06-02 0.0 0.0 NaN NaN \n",
"... ... ... ... ... \n",
"2022-02-01 0.0 0.0 215.571844 221.587410 \n",
"2022-02-02 0.0 0.0 214.958340 221.516338 \n",
"2022-02-03 0.0 0.0 214.288376 221.399866 \n",
"2022-02-04 0.0 0.0 213.643388 221.292209 \n",
"2022-02-07 0.0 0.0 213.007815 221.167410 \n",
"\n",
"[5460 rows x 9 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Study B"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_b into Watchlist and verify\n",
"watch.study = custom_b\n",
"watch.study"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[i] Analysis Time: 256.9024 ms (0.2569 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>EMA_8</th>\n",
" <th>EMA_21</th>\n",
" <th>CUMLOGRET_1</th>\n",
" <th>RSI_14</th>\n",
" <th>SUPERT_7_3.0</th>\n",
" <th>SUPERTd_7_3.0</th>\n",
" <th>SUPERTl_7_3.0</th>\n",
" <th>SUPERTs_7_3.0</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>34.332574</td>\n",
" <td>34.473957</td>\n",
" <td>34.167627</td>\n",
" <td>34.473957</td>\n",
" <td>74800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-30</th>\n",
" <td>34.968806</td>\n",
" <td>35.746414</td>\n",
" <td>34.968806</td>\n",
" <td>35.746414</td>\n",
" <td>57600</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.036246</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-31</th>\n",
" <td>35.864248</td>\n",
" <td>36.335526</td>\n",
" <td>35.864248</td>\n",
" <td>35.876030</td>\n",
" <td>36000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.039865</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-01</th>\n",
" <td>36.612394</td>\n",
" <td>36.688976</td>\n",
" <td>36.612394</td>\n",
" <td>36.688976</td>\n",
" <td>7000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.062272</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-02</th>\n",
" <td>38.350235</td>\n",
" <td>38.597656</td>\n",
" <td>38.350235</td>\n",
" <td>38.597656</td>\n",
" <td>29400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.112987</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>201.660004</td>\n",
" <td>203.570007</td>\n",
" <td>197.970001</td>\n",
" <td>203.360001</td>\n",
" <td>43429400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>200.301436</td>\n",
" <td>206.124694</td>\n",
" <td>1.774774</td>\n",
" <td>43.961827</td>\n",
" <td>213.373369</td>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>213.373369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>203.619995</td>\n",
" <td>203.899994</td>\n",
" <td>199.289993</td>\n",
" <td>201.339996</td>\n",
" <td>42777800</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>200.532228</td>\n",
" <td>205.689722</td>\n",
" <td>1.764791</td>\n",
" <td>41.878172</td>\n",
" <td>213.373369</td>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>213.373369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>198.839996</td>\n",
" <td>201.240005</td>\n",
" <td>197.050003</td>\n",
" <td>197.529999</td>\n",
" <td>39629400</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>199.865066</td>\n",
" <td>204.947929</td>\n",
" <td>1.745686</td>\n",
" <td>38.200475</td>\n",
" <td>213.373369</td>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>213.373369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>197.039993</td>\n",
" <td>200.100006</td>\n",
" <td>194.919998</td>\n",
" <td>198.380005</td>\n",
" <td>34238900</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>199.535052</td>\n",
" <td>204.350845</td>\n",
" <td>1.749980</td>\n",
" <td>39.477464</td>\n",
" <td>213.373369</td>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>213.373369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>198.429993</td>\n",
" <td>200.699997</td>\n",
" <td>197.990005</td>\n",
" <td>199.100006</td>\n",
" <td>14568016</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>199.438375</td>\n",
" <td>203.873496</td>\n",
" <td>1.753603</td>\n",
" <td>40.597174</td>\n",
" <td>213.373369</td>\n",
" <td>-1</td>\n",
" <td>NaN</td>\n",
" <td>213.373369</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5460 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2000-05-26 34.332574 34.473957 34.167627 34.473957 74800 \n",
"2000-05-30 34.968806 35.746414 34.968806 35.746414 57600 \n",
"2000-05-31 35.864248 36.335526 35.864248 35.876030 36000 \n",
"2000-06-01 36.612394 36.688976 36.612394 36.688976 7000 \n",
"2000-06-02 38.350235 38.597656 38.350235 38.597656 29400 \n",
"... ... ... ... ... ... \n",
"2022-02-01 201.660004 203.570007 197.970001 203.360001 43429400 \n",
"2022-02-02 203.619995 203.899994 199.289993 201.339996 42777800 \n",
"2022-02-03 198.839996 201.240005 197.050003 197.529999 39629400 \n",
"2022-02-04 197.039993 200.100006 194.919998 198.380005 34238900 \n",
"2022-02-07 198.429993 200.699997 197.990005 199.100006 14568016 \n",
"\n",
" Dividends Stock Splits EMA_8 EMA_21 CUMLOGRET_1 \\\n",
"Date \n",
"2000-05-26 0.0 0.0 NaN NaN 0.000000 \n",
"2000-05-30 0.0 0.0 NaN NaN 0.036246 \n",
"2000-05-31 0.0 0.0 NaN NaN 0.039865 \n",
"2000-06-01 0.0 0.0 NaN NaN 0.062272 \n",
"2000-06-02 0.0 0.0 NaN NaN 0.112987 \n",
"... ... ... ... ... ... \n",
"2022-02-01 0.0 0.0 200.301436 206.124694 1.774774 \n",
"2022-02-02 0.0 0.0 200.532228 205.689722 1.764791 \n",
"2022-02-03 0.0 0.0 199.865066 204.947929 1.745686 \n",
"2022-02-04 0.0 0.0 199.535052 204.350845 1.749980 \n",
"2022-02-07 0.0 0.0 199.438375 203.873496 1.753603 \n",
"\n",
" RSI_14 SUPERT_7_3.0 SUPERTd_7_3.0 SUPERTl_7_3.0 \\\n",
"Date \n",
"2000-05-26 NaN 0.000000 1 NaN \n",
"2000-05-30 NaN NaN 1 NaN \n",
"2000-05-31 NaN NaN 1 NaN \n",
"2000-06-01 NaN NaN 1 NaN \n",
"2000-06-02 NaN NaN 1 NaN \n",
"... ... ... ... ... \n",
"2022-02-01 43.961827 213.373369 -1 NaN \n",
"2022-02-02 41.878172 213.373369 -1 NaN \n",
"2022-02-03 38.200475 213.373369 -1 NaN \n",
"2022-02-04 39.477464 213.373369 -1 NaN \n",
"2022-02-07 40.597174 213.373369 -1 NaN \n",
"\n",
" SUPERTs_7_3.0 \n",
"Date \n",
"2000-05-26 NaN \n",
"2000-05-30 NaN \n",
"2000-05-31 NaN \n",
"2000-06-01 NaN \n",
"2000-06-02 NaN \n",
"... ... \n",
"2022-02-01 213.373369 \n",
"2022-02-02 213.373369 \n",
"2022-02-03 213.373369 \n",
"2022-02-04 213.373369 \n",
"2022-02-07 213.373369 \n",
"\n",
"[5460 rows x 15 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Bad Study. (Misspelled indicator)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Runtime Failure', ta=[{'kind': 'peret_return'}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_run_failure into Watchlist and verify\n",
"watch.study = custom_run_failure\n",
"watch.study"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\n",
"[X] Oops! 'AnalysisIndicators' object has no attribute 'peret_return'\n"
]
}
],
"source": [
"try:\n",
" iwm = watch.load(\"IWM\")\n",
"except AttributeError as error:\n",
" print(f\"[X] Oops! {error}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Indicator Composition/Chaining\n",
"- When you need an indicator to depend on the value of a prior indicator\n",
"- Utilitze _prefix_ or _suffix_ to help identify unique columns or avoid column name clashes.\n",
"- Set ```cores=0``` for better performance when few indicators"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Volume MAs and MA chains"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Volume MAs and Price MA chain', ta=[{'kind': 'ema', 'close': 'volume', 'length': 10, 'prefix': 'VOLUME'}, {'kind': 'sma', 'close': 'volume', 'length': 20, 'prefix': 'VOLUME'}, {'kind': 'ema', 'length': 5}, {'kind': 'linreg', 'close': 'EMA_5', 'length': 8, 'prefix': 'EMA_5'}], cores=0, description='', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set EMA's and SMA's 'close' to 'volume' to create Volume MAs, prefix 'volume' MAs with 'VOLUME' so easy to identify the column\n",
"# Take a price EMA and apply LINREG from EMA's output\n",
"volmas_price_ma_chain = [\n",
" {\"kind\":\"ema\", \"close\": \"volume\", \"length\": 10, \"prefix\": \"VOLUME\"},\n",
" {\"kind\":\"sma\", \"close\": \"volume\", \"length\": 20, \"prefix\": \"VOLUME\"},\n",
" {\"kind\":\"ema\", \"length\": 5},\n",
" {\"kind\":\"linreg\", \"close\": \"EMA_5\", \"length\": 8, \"prefix\": \"EMA_5\"},\n",
"]\n",
"vp_ma_chain_ta = ta.Study(\"Volume MAs and Price MA chain\", cores=0, ta=volmas_price_ma_chain)\n",
"vp_ma_chain_ta"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Volume MAs and Price MA chain'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.study = vp_ma_chain_ta\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 3.1504 ms (0.0032 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>VOLUME_EMA_10</th>\n",
" <th>VOLUME_SMA_20</th>\n",
" <th>EMA_5</th>\n",
" <th>EMA_5_LR_8</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.645573</td>\n",
" <td>25.645573</td>\n",
" <td>25.517983</td>\n",
" <td>25.627346</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.791393</td>\n",
" <td>25.882529</td>\n",
" <td>25.736712</td>\n",
" <td>25.864302</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.900767</td>\n",
" <td>26.155947</td>\n",
" <td>25.882540</td>\n",
" <td>26.137720</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.228843</td>\n",
" <td>26.301752</td>\n",
" <td>25.937209</td>\n",
" <td>26.247070</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>25.937212</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.489213e+08</td>\n",
" <td>126778345.0</td>\n",
" <td>445.815160</td>\n",
" <td>440.058132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.431831e+08</td>\n",
" <td>129087460.0</td>\n",
" <td>449.660109</td>\n",
" <td>444.740702</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.386088e+08</td>\n",
" <td>129761735.0</td>\n",
" <td>448.640075</td>\n",
" <td>448.179915</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.349227e+08</td>\n",
" <td>131335570.0</td>\n",
" <td>448.660054</td>\n",
" <td>450.446614</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1.175757e+08</td>\n",
" <td>129058021.6</td>\n",
" <td>448.324171</td>\n",
" <td>451.300024</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7310 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.645573 25.645573 25.517983 25.627346 1003200 \n",
"1993-02-01 25.645579 25.809624 25.645579 25.809624 480500 \n",
"1993-02-02 25.791393 25.882529 25.736712 25.864302 201300 \n",
"1993-02-03 25.900767 26.155947 25.882540 26.137720 529400 \n",
"1993-02-04 26.228843 26.301752 25.937209 26.247070 531500 \n",
"... ... ... ... ... ... \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits VOLUME_EMA_10 VOLUME_SMA_20 EMA_5 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN 25.937212 \n",
"... ... ... ... ... ... \n",
"2022-02-01 0.0 0 1.489213e+08 126778345.0 445.815160 \n",
"2022-02-02 0.0 0 1.431831e+08 129087460.0 449.660109 \n",
"2022-02-03 0.0 0 1.386088e+08 129761735.0 448.640075 \n",
"2022-02-04 0.0 0 1.349227e+08 131335570.0 448.660054 \n",
"2022-02-07 0.0 0 1.175757e+08 129058021.6 448.324171 \n",
"\n",
" EMA_5_LR_8 \n",
"Date \n",
"1993-01-29 NaN \n",
"1993-02-01 NaN \n",
"1993-02-02 NaN \n",
"1993-02-03 NaN \n",
"1993-02-04 NaN \n",
"... ... \n",
"2022-02-01 440.058132 \n",
"2022-02-02 444.740702 \n",
"2022-02-03 448.179915 \n",
"2022-02-04 450.446614 \n",
"2022-02-07 451.300024 \n",
"\n",
"[7310 rows x 11 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### MACD BBANDS"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='MACD BBands', ta=[{'kind': 'macd'}, {'kind': 'bbands', 'close': 'MACD_12_26_9', 'length': 20, 'ddof': 0, 'prefix': 'MACD'}], cores=0, description='BBANDS_20 applied to MACD', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# MACD is the initial indicator that BBANDS depends on.\n",
"# Set BBANDS's 'close' to MACD's main signal, in this case 'MACD_12_26_9' and add a prefix (or suffix) so it's easier to identify\n",
"macd_bands_ta = [\n",
" {\"kind\":\"macd\"},\n",
" {\"kind\":\"bbands\", \"close\": \"MACD_12_26_9\", \"length\": 20, \"ddof\": 0, \"prefix\": \"MACD\"}\n",
"]\n",
"macd_bands_ta = ta.Study(\"MACD BBands\", cores=0, ta=macd_bands_ta, description=f\"BBANDS_{macd_bands_ta[1]['length']} applied to MACD\")\n",
"macd_bands_ta"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'MACD BBands'"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.study = macd_bands_ta\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 5.8750 ms (0.0059 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>MACD_12_26_9</th>\n",
" <th>MACDh_12_26_9</th>\n",
" <th>MACDs_12_26_9</th>\n",
" <th>MACD_BBL_20_2.0</th>\n",
" <th>MACD_BBM_20_2.0</th>\n",
" <th>MACD_BBU_20_2.0</th>\n",
" <th>MACD_BBB_20_2.0</th>\n",
" <th>MACD_BBP_20_2.0</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1993-01-29</th>\n",
" <td>25.645573</td>\n",
" <td>25.645573</td>\n",
" <td>25.517983</td>\n",
" <td>25.627346</td>\n",
" <td>1003200</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-01</th>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>25.645579</td>\n",
" <td>25.809624</td>\n",
" <td>480500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-02</th>\n",
" <td>25.791393</td>\n",
" <td>25.882529</td>\n",
" <td>25.736712</td>\n",
" <td>25.864302</td>\n",
" <td>201300</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-03</th>\n",
" <td>25.900767</td>\n",
" <td>26.155947</td>\n",
" <td>25.882540</td>\n",
" <td>26.137720</td>\n",
" <td>529400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993-02-04</th>\n",
" <td>26.228843</td>\n",
" <td>26.301752</td>\n",
" <td>25.937209</td>\n",
" <td>26.247070</td>\n",
" <td>531500</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-6.355974</td>\n",
" <td>-0.385707</td>\n",
" <td>-5.970267</td>\n",
" <td>-10.847819</td>\n",
" <td>-1.971159</td>\n",
" <td>6.905502</td>\n",
" <td>-900.654085</td>\n",
" <td>0.253014</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-5.089661</td>\n",
" <td>0.704485</td>\n",
" <td>-5.794146</td>\n",
" <td>-10.909064</td>\n",
" <td>-2.448053</td>\n",
" <td>6.012958</td>\n",
" <td>-691.244083</td>\n",
" <td>0.343895</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-4.897084</td>\n",
" <td>0.717650</td>\n",
" <td>-5.614733</td>\n",
" <td>-10.902124</td>\n",
" <td>-2.880662</td>\n",
" <td>5.140800</td>\n",
" <td>-556.917940</td>\n",
" <td>0.374311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-4.522875</td>\n",
" <td>0.873487</td>\n",
" <td>-5.396362</td>\n",
" <td>-10.817408</td>\n",
" <td>-3.263513</td>\n",
" <td>4.290382</td>\n",
" <td>-462.930241</td>\n",
" <td>0.416642</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>-4.261719</td>\n",
" <td>0.907714</td>\n",
" <td>-5.169433</td>\n",
" <td>-10.688294</td>\n",
" <td>-3.599817</td>\n",
" <td>3.488660</td>\n",
" <td>-393.824272</td>\n",
" <td>0.453311</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7310 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"1993-01-29 25.645573 25.645573 25.517983 25.627346 1003200 \n",
"1993-02-01 25.645579 25.809624 25.645579 25.809624 480500 \n",
"1993-02-02 25.791393 25.882529 25.736712 25.864302 201300 \n",
"1993-02-03 25.900767 26.155947 25.882540 26.137720 529400 \n",
"1993-02-04 26.228843 26.301752 25.937209 26.247070 531500 \n",
"... ... ... ... ... ... \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits MACD_12_26_9 MACDh_12_26_9 \\\n",
"Date \n",
"1993-01-29 0.0 0 NaN NaN \n",
"1993-02-01 0.0 0 NaN NaN \n",
"1993-02-02 0.0 0 NaN NaN \n",
"1993-02-03 0.0 0 NaN NaN \n",
"1993-02-04 0.0 0 NaN NaN \n",
"... ... ... ... ... \n",
"2022-02-01 0.0 0 -6.355974 -0.385707 \n",
"2022-02-02 0.0 0 -5.089661 0.704485 \n",
"2022-02-03 0.0 0 -4.897084 0.717650 \n",
"2022-02-04 0.0 0 -4.522875 0.873487 \n",
"2022-02-07 0.0 0 -4.261719 0.907714 \n",
"\n",
" MACDs_12_26_9 MACD_BBL_20_2.0 MACD_BBM_20_2.0 MACD_BBU_20_2.0 \\\n",
"Date \n",
"1993-01-29 NaN NaN NaN NaN \n",
"1993-02-01 NaN NaN NaN NaN \n",
"1993-02-02 NaN NaN NaN NaN \n",
"1993-02-03 NaN NaN NaN NaN \n",
"1993-02-04 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2022-02-01 -5.970267 -10.847819 -1.971159 6.905502 \n",
"2022-02-02 -5.794146 -10.909064 -2.448053 6.012958 \n",
"2022-02-03 -5.614733 -10.902124 -2.880662 5.140800 \n",
"2022-02-04 -5.396362 -10.817408 -3.263513 4.290382 \n",
"2022-02-07 -5.169433 -10.688294 -3.599817 3.488660 \n",
"\n",
" MACD_BBB_20_2.0 MACD_BBP_20_2.0 \n",
"Date \n",
"1993-01-29 NaN NaN \n",
"1993-02-01 NaN NaN \n",
"1993-02-02 NaN NaN \n",
"1993-02-03 NaN NaN \n",
"1993-02-04 NaN NaN \n",
"... ... ... \n",
"2022-02-01 -900.654085 0.253014 \n",
"2022-02-02 -691.244083 0.343895 \n",
"2022-02-03 -556.917940 0.374311 \n",
"2022-02-04 -462.930241 0.416642 \n",
"2022-02-07 -393.824272 0.453311 \n",
"\n",
"[7310 rows x 15 columns]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comprehensive Study"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### MACD and RSI Momentum with BBANDS and SMAs and Cumulative Log Returns"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='Momo, Bands and SMAs and Cumulative Log Returns', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}, {'kind': 'bbands', 'length': 20, 'ddof': 0}, {'kind': 'macd'}, {'kind': 'rsi'}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'sma', 'close': 'CUMLOGRET_1', 'length': 5, 'suffix': 'CUMLOGRET'}], cores=0, description='MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"momo_bands_sma_ta = [\n",
" {\"kind\":\"sma\", \"length\": 50},\n",
" {\"kind\":\"sma\", \"length\": 200},\n",
" {\"kind\":\"bbands\", \"length\": 20, \"ddof\": 0},\n",
" {\"kind\":\"macd\"},\n",
" {\"kind\":\"rsi\"},\n",
" {\"kind\":\"log_return\", \"cumulative\": True},\n",
" {\"kind\":\"sma\", \"close\": \"CUMLOGRET_1\", \"length\": 5, \"suffix\": \"CUMLOGRET\"},\n",
"]\n",
"momo_bands_sma_Study = ta.Study(\n",
" name=\"Momo, Bands and SMAs and Cumulative Log Returns\", # name\n",
" ta=momo_bands_sma_ta, # ta\n",
" description=\"MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns\", # description\n",
" cores=0\n",
")\n",
"momo_bands_sma_Study"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Momo, Bands and SMAs and Cumulative Log Returns'"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.study = momo_bands_sma_Study\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 7.8356 ms (0.0078 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>BBL_20_2.0</th>\n",
" <th>...</th>\n",
" <th>BBP_20_2.0</th>\n",
" <th>MACD_12_26_9</th>\n",
" <th>MACDh_12_26_9</th>\n",
" <th>MACDs_12_26_9</th>\n",
" <th>RSI_14</th>\n",
" <th>CUMLOGRET_1</th>\n",
" <th>SMA_5_CUMLOGRET</th>\n",
" <th>0</th>\n",
" <th>30</th>\n",
" <th>70</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>461.063572</td>\n",
" <td>440.467170</td>\n",
" <td>426.328965</td>\n",
" <td>...</td>\n",
" <td>0.470652</td>\n",
" <td>-6.355974</td>\n",
" <td>-0.385707</td>\n",
" <td>-5.970267</td>\n",
" <td>49.051706</td>\n",
" <td>2.872122</td>\n",
" <td>2.847201</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>460.865603</td>\n",
" <td>440.713518</td>\n",
" <td>427.294308</td>\n",
" <td>...</td>\n",
" <td>0.571277</td>\n",
" <td>-5.089661</td>\n",
" <td>0.704485</td>\n",
" <td>-5.794146</td>\n",
" <td>52.739652</td>\n",
" <td>2.881789</td>\n",
" <td>2.857968</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>460.478942</td>\n",
" <td>440.886810</td>\n",
" <td>426.950170</td>\n",
" <td>...</td>\n",
" <td>0.384374</td>\n",
" <td>-4.897084</td>\n",
" <td>0.717650</td>\n",
" <td>-5.614733</td>\n",
" <td>44.302038</td>\n",
" <td>2.858003</td>\n",
" <td>2.864968</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>460.121924</td>\n",
" <td>441.089413</td>\n",
" <td>426.953306</td>\n",
" <td>...</td>\n",
" <td>0.442084</td>\n",
" <td>-4.522875</td>\n",
" <td>0.873487</td>\n",
" <td>-5.396362</td>\n",
" <td>46.115639</td>\n",
" <td>2.862695</td>\n",
" <td>2.867999</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>459.719042</td>\n",
" <td>441.264651</td>\n",
" <td>426.914311</td>\n",
" <td>...</td>\n",
" <td>0.437276</td>\n",
" <td>-4.261719</td>\n",
" <td>0.907714</td>\n",
" <td>-5.169433</td>\n",
" <td>45.322806</td>\n",
" <td>2.860357</td>\n",
" <td>2.866993</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits SMA_50 SMA_200 BBL_20_2.0 ... \\\n",
"Date ... \n",
"2022-02-01 0.0 0 461.063572 440.467170 426.328965 ... \n",
"2022-02-02 0.0 0 460.865603 440.713518 427.294308 ... \n",
"2022-02-03 0.0 0 460.478942 440.886810 426.950170 ... \n",
"2022-02-04 0.0 0 460.121924 441.089413 426.953306 ... \n",
"2022-02-07 0.0 0 459.719042 441.264651 426.914311 ... \n",
"\n",
" BBP_20_2.0 MACD_12_26_9 MACDh_12_26_9 MACDs_12_26_9 RSI_14 \\\n",
"Date \n",
"2022-02-01 0.470652 -6.355974 -0.385707 -5.970267 49.051706 \n",
"2022-02-02 0.571277 -5.089661 0.704485 -5.794146 52.739652 \n",
"2022-02-03 0.384374 -4.897084 0.717650 -5.614733 44.302038 \n",
"2022-02-04 0.442084 -4.522875 0.873487 -5.396362 46.115639 \n",
"2022-02-07 0.437276 -4.261719 0.907714 -5.169433 45.322806 \n",
"\n",
" CUMLOGRET_1 SMA_5_CUMLOGRET 0 30 70 \n",
"Date \n",
"2022-02-01 2.872122 2.847201 0 30 70 \n",
"2022-02-02 2.881789 2.857968 0 30 70 \n",
"2022-02-03 2.858003 2.864968 0 30 70 \n",
"2022-02-04 2.862695 2.867999 0 30 70 \n",
"2022-02-07 2.860357 2.866993 0 30 70 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"# Apply constants to the DataFrame for indicators\n",
"spy.ta.constants(True, [0, 30, 70])\n",
"spy.tail()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Additional Study Options"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The ```params``` keyword takes a _tuple_ as a shorthand to the parameter arguments in order.\n",
"* **Note**: If the indicator arguments change, so will results. Breaking Changes will **always** be posted on the README.\n",
"\n",
"The ```col_numbers``` keyword takes a _tuple_ specifying which column to return if the result is a DataFrame."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Study(name='EMA, MACD History, Outter BBands, Log Returns', ta=[{'kind': 'ema', 'params': (10,)}, {'kind': 'macd', 'params': (9, 19, 10), 'col_numbers': (1,)}, {'kind': 'bbands', 'col_numbers': (0, 2), 'col_names': ('LB', 'UB')}, {'kind': 'log_return', 'params': (5, False)}], cores=0, description='EMA, MACD History, BBands(LB, UB), and Log Returns Study', created='Monday February 7, 2022, NYSE: 5:46:16, Local: 9:46:16 PST, Day 38/365 (10.00%)')"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"params_ta = [\n",
" {\"kind\":\"ema\", \"params\": (10,)},\n",
" # params sets MACD's keyword arguments: fast=9, slow=19, signal=10\n",
" # and returning the 2nd column: histogram\n",
" {\"kind\":\"macd\", \"params\": (9, 19, 10), \"col_numbers\": (1,)},\n",
" # Selects the Lower and Upper Bands and renames them LB and UB, ignoring the MB\n",
" {\"kind\":\"bbands\", \"col_numbers\": (0,2), \"col_names\": (\"LB\", \"UB\")},\n",
" {\"kind\":\"log_return\", \"params\": (5, False)},\n",
"]\n",
"params_ta_Study = ta.Study(\n",
" name=\"EMA, MACD History, Outter BBands, Log Returns\", # name\n",
" ta=params_ta, # ta\n",
" description=\"EMA, MACD History, BBands(LB, UB), and Log Returns Study\", # description\n",
" cores=0\n",
")\n",
"params_ta_Study"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'EMA, MACD History, Outter BBands, Log Returns'"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Update the Watchlist\n",
"watch.study = params_ta_Study\n",
"watch.study.name"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\n",
"[i] Analysis Time: 6.0854 ms (0.0061 s)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" <th>EMA_10</th>\n",
" <th>MACDh_9_19_10</th>\n",
" <th>LB</th>\n",
" <th>UB</th>\n",
" <th>LOGRET_5</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2022-02-01</th>\n",
" <td>450.679993</td>\n",
" <td>453.630005</td>\n",
" <td>446.940002</td>\n",
" <td>452.950012</td>\n",
" <td>123155400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>446.298610</td>\n",
" <td>0.683990</td>\n",
" <td>424.623547</td>\n",
" <td>459.148463</td>\n",
" <td>0.041655</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-02</th>\n",
" <td>455.500000</td>\n",
" <td>458.119995</td>\n",
" <td>453.049988</td>\n",
" <td>457.350006</td>\n",
" <td>117361000</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>448.307954</td>\n",
" <td>1.932347</td>\n",
" <td>428.254768</td>\n",
" <td>465.105242</td>\n",
" <td>0.053834</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-03</th>\n",
" <td>450.950012</td>\n",
" <td>452.970001</td>\n",
" <td>445.709991</td>\n",
" <td>446.600006</td>\n",
" <td>118024400</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>447.997418</td>\n",
" <td>1.748571</td>\n",
" <td>439.214911</td>\n",
" <td>460.289105</td>\n",
" <td>0.034999</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-04</th>\n",
" <td>446.350006</td>\n",
" <td>452.779999</td>\n",
" <td>443.829987</td>\n",
" <td>448.700012</td>\n",
" <td>118335600</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>448.125163</td>\n",
" <td>1.778507</td>\n",
" <td>443.623448</td>\n",
" <td>458.580568</td>\n",
" <td>0.015158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-02-07</th>\n",
" <td>449.510010</td>\n",
" <td>450.859985</td>\n",
" <td>446.769989</td>\n",
" <td>447.652405</td>\n",
" <td>39513832</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>448.039207</td>\n",
" <td>1.668326</td>\n",
" <td>442.682020</td>\n",
" <td>458.618957</td>\n",
" <td>-0.005031</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2022-02-01 450.679993 453.630005 446.940002 452.950012 123155400 \n",
"2022-02-02 455.500000 458.119995 453.049988 457.350006 117361000 \n",
"2022-02-03 450.950012 452.970001 445.709991 446.600006 118024400 \n",
"2022-02-04 446.350006 452.779999 443.829987 448.700012 118335600 \n",
"2022-02-07 449.510010 450.859985 446.769989 447.652405 39513832 \n",
"\n",
" Dividends Stock Splits EMA_10 MACDh_9_19_10 LB \\\n",
"Date \n",
"2022-02-01 0.0 0 446.298610 0.683990 424.623547 \n",
"2022-02-02 0.0 0 448.307954 1.932347 428.254768 \n",
"2022-02-03 0.0 0 447.997418 1.748571 439.214911 \n",
"2022-02-04 0.0 0 448.125163 1.778507 443.623448 \n",
"2022-02-07 0.0 0 448.039207 1.668326 442.682020 \n",
"\n",
" UB LOGRET_5 \n",
"Date \n",
"2022-02-01 459.148463 0.041655 \n",
"2022-02-02 465.105242 0.053834 \n",
"2022-02-03 460.289105 0.034999 \n",
"2022-02-04 458.580568 0.015158 \n",
"2022-02-07 458.618957 -0.005031 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spy = watch.load(\"SPY\")\n",
"spy.tail()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Disclaimer\n",
"* All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading Study, or individuals trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.\n",
"\n",
"* Any opinions, news, research, analyses, prices, or other information offered is provided as general market commentary, and does not constitute investment advice. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from use of or reliance on such information."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}