Files
pandas-ta/examples/PandasTA_Strategy_Examples.ipynb
T

2908 lines
210 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)) Strategies for Custom Technical Analysis\n",
"\n",
"## Topics\n",
"- What is a Pandas TA Strategy?\n",
" - Builtin Strategies: __AllStrategy__ and __CommonStrategy__\n",
" - Creating Strategies\n",
"- Watchlist Class\n",
" - Strategy 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 Strategies\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.17b0\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 Strategy?\n",
"A _Strategy_ is a simple way to name and group your favorite TA indicators. Technically, a _Strategy_ is a simple Data Class to contain list of indicators and their parameters. __Note__: _Strategy_ is experimental and subject to change. Pandas TA comes with two basic Strategies: __AllStrategy__ and __CommonStrategy__.\n",
"\n",
"## Strategy 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 Strategy 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 Strategy 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": [
"name = All\n",
"description = All the indicators with their default settings. Pandas TA default.\n",
"created = Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)\n",
"ta = None\n"
]
}
],
"source": [
"AllStrategy = ta.AllStrategy\n",
"print(\"name =\", AllStrategy.name)\n",
"print(\"description =\", AllStrategy.description)\n",
"print(\"created =\", AllStrategy.created)\n",
"print(\"ta =\", AllStrategy.ta)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Common\n",
"Default Values"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"name = Common Price and Volume SMAs\n",
"description = Common Price SMAs: 10, 20, 50, 200 and Volume SMA: 20.\n",
"created = Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)\n",
"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"
]
}
],
"source": [
"CommonStrategy = ta.CommonStrategy\n",
"print(\"name =\", CommonStrategy.name)\n",
"print(\"description =\", CommonStrategy.description)\n",
"print(\"created =\", CommonStrategy.created)\n",
"print(\"ta =\", CommonStrategy.ta)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Creating Strategies\n",
"Strategies 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 Strategy A"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_a = ta.Strategy(name=\"A\", ta=[{\"kind\": \"sma\", \"length\": 50}, {\"kind\": \"sma\", \"length\": 200}])\n",
"custom_a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Simple Strategy B"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"custom_b = ta.Strategy(name=\"B\", 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 Strategy. (Misspelled Indicator)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Runtime Failure', ta=[{'kind': 'percet_return'}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.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.Strategy(name=\"Runtime Failure\", ta=[{\"kind\": \"percet_return\"}])\n",
"custom_run_failure"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Strategy 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=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Info about the Watchlist. Note, the default Strategy is \"All\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Watch(name='Watch: SPY, IWM', ds_name='av', tickers[2]='SPY, IWM', tf='D', strategy[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, strategy: pandas_ta.core.Strategy = 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 Strategy.\n",
" | \n",
" | Default Strategy: pandas_ta.CommonStrategy\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, strategy: pandas_ta.core.Strategy = 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",
" | 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 Strategy is \"Common\""
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[!] Loading All: SPY, IWM\n",
"[+] Downloading[av]: SPY[D]\n",
"[+] Strategy: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': False, '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 August 4, 2021, NYSE: 9:51:48, Local: 13:51:48 PDT, Day 216/365 (59.00%)\n",
"[+] Downloading[av]: IWM[D]\n",
"[+] Strategy: Common Price and Volume SMAs\n",
"[i] Indicator arguments: {'timed': False, '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 August 4, 2021, NYSE: 9:52:09, Local: 13:52:09 PDT, Day 216/365 (59.00%)\n"
]
}
],
"source": [
"# No arguments loads all the tickers and applies the Strategy 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: (5475, 10), IWM: (5331, 10)'"
]
},
"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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.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>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.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>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.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>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.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>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.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",
" </tr>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>439.8150</td>\n",
" <td>441.8000</td>\n",
" <td>439.8100</td>\n",
" <td>440.6500</td>\n",
" <td>45910298.0</td>\n",
" <td>435.683</td>\n",
" <td>434.9235</td>\n",
" <td>426.8204</td>\n",
" <td>392.47485</td>\n",
" <td>67581418.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.9100</td>\n",
" <td>440.0600</td>\n",
" <td>437.7700</td>\n",
" <td>438.5100</td>\n",
" <td>68951202.0</td>\n",
" <td>436.400</td>\n",
" <td>435.3275</td>\n",
" <td>427.3734</td>\n",
" <td>392.91675</td>\n",
" <td>68356927.55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.3400</td>\n",
" <td>440.9300</td>\n",
" <td>437.2100</td>\n",
" <td>437.5900</td>\n",
" <td>58783297.0</td>\n",
" <td>437.662</td>\n",
" <td>435.5210</td>\n",
" <td>427.8196</td>\n",
" <td>393.36505</td>\n",
" <td>68411209.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.4400</td>\n",
" <td>441.2800</td>\n",
" <td>436.1000</td>\n",
" <td>441.1500</td>\n",
" <td>58053896.0</td>\n",
" <td>438.671</td>\n",
" <td>435.9320</td>\n",
" <td>428.3438</td>\n",
" <td>393.83330</td>\n",
" <td>67878382.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.7800</td>\n",
" <td>441.1200</td>\n",
" <td>438.7300</td>\n",
" <td>438.9800</td>\n",
" <td>45933859.0</td>\n",
" <td>439.114</td>\n",
" <td>436.1580</td>\n",
" <td>428.7400</td>\n",
" <td>394.29175</td>\n",
" <td>66997603.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5475 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-07-29 439.8150 441.8000 439.8100 440.6500 45910298.0 435.683 \n",
"2021-07-30 437.9100 440.0600 437.7700 438.5100 68951202.0 436.400 \n",
"2021-08-02 440.3400 440.9300 437.2100 437.5900 58783297.0 437.662 \n",
"2021-08-03 438.4400 441.2800 436.1000 441.1500 58053896.0 438.671 \n",
"2021-08-04 439.7800 441.1200 438.7300 438.9800 45933859.0 439.114 \n",
"\n",
" SMA_20 SMA_50 SMA_200 VOL_SMA_20 \n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-07-29 434.9235 426.8204 392.47485 67581418.80 \n",
"2021-07-30 435.3275 427.3734 392.91675 68356927.55 \n",
"2021-08-02 435.5210 427.8196 393.36505 68411209.00 \n",
"2021-08-03 435.9320 428.3438 393.83330 67878382.85 \n",
"2021-08-04 436.1580 428.7400 394.29175 66997603.00 \n",
"\n",
"[5475 rows x 10 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"
]
},
{
"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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.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>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.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>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.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>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.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>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.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",
" </tr>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>439.8150</td>\n",
" <td>441.8000</td>\n",
" <td>439.8100</td>\n",
" <td>440.6500</td>\n",
" <td>45910298.0</td>\n",
" <td>435.683</td>\n",
" <td>434.9235</td>\n",
" <td>426.8204</td>\n",
" <td>392.47485</td>\n",
" <td>67581418.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.9100</td>\n",
" <td>440.0600</td>\n",
" <td>437.7700</td>\n",
" <td>438.5100</td>\n",
" <td>68951202.0</td>\n",
" <td>436.400</td>\n",
" <td>435.3275</td>\n",
" <td>427.3734</td>\n",
" <td>392.91675</td>\n",
" <td>68356927.55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.3400</td>\n",
" <td>440.9300</td>\n",
" <td>437.2100</td>\n",
" <td>437.5900</td>\n",
" <td>58783297.0</td>\n",
" <td>437.662</td>\n",
" <td>435.5210</td>\n",
" <td>427.8196</td>\n",
" <td>393.36505</td>\n",
" <td>68411209.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.4400</td>\n",
" <td>441.2800</td>\n",
" <td>436.1000</td>\n",
" <td>441.1500</td>\n",
" <td>58053896.0</td>\n",
" <td>438.671</td>\n",
" <td>435.9320</td>\n",
" <td>428.3438</td>\n",
" <td>393.83330</td>\n",
" <td>67878382.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.7800</td>\n",
" <td>441.1200</td>\n",
" <td>438.7300</td>\n",
" <td>438.9800</td>\n",
" <td>45933859.0</td>\n",
" <td>439.114</td>\n",
" <td>436.1580</td>\n",
" <td>428.7400</td>\n",
" <td>394.29175</td>\n",
" <td>66997603.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5475 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-07-29 439.8150 441.8000 439.8100 440.6500 45910298.0 435.683 \n",
"2021-07-30 437.9100 440.0600 437.7700 438.5100 68951202.0 436.400 \n",
"2021-08-02 440.3400 440.9300 437.2100 437.5900 58783297.0 437.662 \n",
"2021-08-03 438.4400 441.2800 436.1000 441.1500 58053896.0 438.671 \n",
"2021-08-04 439.7800 441.1200 438.7300 438.9800 45933859.0 439.114 \n",
"\n",
" SMA_20 SMA_50 SMA_200 VOL_SMA_20 \n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-07-29 434.9235 426.8204 392.47485 67581418.80 \n",
"2021-07-30 435.3275 427.3734 392.91675 68356927.55 \n",
"2021-08-02 435.5210 427.8196 393.36505 68411209.00 \n",
"2021-08-03 435.9320 428.3438 393.83330 67878382.85 \n",
"2021-08-04 436.1580 428.7400 394.29175 66997603.00 \n",
"\n",
"[5475 rows x 10 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\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 Strategies and run them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Strategy A"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='A', ta=[{'kind': 'sma', 'length': 50}, {'kind': 'sma', 'length': 200}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)')"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_a into Watchlist and verify\n",
"watch.strategy = custom_a\n",
"# watch.debug = True\n",
"watch.strategy"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded IWM[D]: IWM_D.csv\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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-05-26</th>\n",
" <td>91.06</td>\n",
" <td>91.440</td>\n",
" <td>90.630</td>\n",
" <td>91.44</td>\n",
" <td>37400.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-30</th>\n",
" <td>92.75</td>\n",
" <td>94.810</td>\n",
" <td>92.750</td>\n",
" <td>94.81</td>\n",
" <td>28800.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-05-31</th>\n",
" <td>95.13</td>\n",
" <td>96.380</td>\n",
" <td>95.130</td>\n",
" <td>95.75</td>\n",
" <td>18000.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-01</th>\n",
" <td>97.11</td>\n",
" <td>97.310</td>\n",
" <td>97.110</td>\n",
" <td>97.31</td>\n",
" <td>3500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-06-02</th>\n",
" <td>101.70</td>\n",
" <td>102.400</td>\n",
" <td>101.700</td>\n",
" <td>102.40</td>\n",
" <td>14700.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",
" </tr>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>222.79</td>\n",
" <td>224.435</td>\n",
" <td>222.140</td>\n",
" <td>222.52</td>\n",
" <td>22112239.0</td>\n",
" <td>224.9142</td>\n",
" <td>209.22680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>221.65</td>\n",
" <td>224.050</td>\n",
" <td>220.275</td>\n",
" <td>221.05</td>\n",
" <td>28473020.0</td>\n",
" <td>224.9762</td>\n",
" <td>209.51855</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>222.47</td>\n",
" <td>224.550</td>\n",
" <td>219.640</td>\n",
" <td>219.95</td>\n",
" <td>24192605.0</td>\n",
" <td>224.9872</td>\n",
" <td>209.81285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>220.62</td>\n",
" <td>221.120</td>\n",
" <td>217.100</td>\n",
" <td>220.86</td>\n",
" <td>27798643.0</td>\n",
" <td>225.0050</td>\n",
" <td>210.10340</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>219.10</td>\n",
" <td>221.200</td>\n",
" <td>217.890</td>\n",
" <td>218.11</td>\n",
" <td>25257969.0</td>\n",
" <td>224.9392</td>\n",
" <td>210.38220</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5331 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_50 SMA_200\n",
"date \n",
"2000-05-26 91.06 91.440 90.630 91.44 37400.0 NaN NaN\n",
"2000-05-30 92.75 94.810 92.750 94.81 28800.0 NaN NaN\n",
"2000-05-31 95.13 96.380 95.130 95.75 18000.0 NaN NaN\n",
"2000-06-01 97.11 97.310 97.110 97.31 3500.0 NaN NaN\n",
"2000-06-02 101.70 102.400 101.700 102.40 14700.0 NaN NaN\n",
"... ... ... ... ... ... ... ...\n",
"2021-07-29 222.79 224.435 222.140 222.52 22112239.0 224.9142 209.22680\n",
"2021-07-30 221.65 224.050 220.275 221.05 28473020.0 224.9762 209.51855\n",
"2021-08-02 222.47 224.550 219.640 219.95 24192605.0 224.9872 209.81285\n",
"2021-08-03 220.62 221.120 217.100 220.86 27798643.0 225.0050 210.10340\n",
"2021-08-04 219.10 221.200 217.890 218.11 25257969.0 224.9392 210.38220\n",
"\n",
"[5331 rows x 7 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"IWM\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Simple Strategy B"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='B', ta=[{'kind': 'ema', 'length': 8}, {'kind': 'ema', 'length': 21}, {'kind': 'log_return', 'cumulative': True}, {'kind': 'rsi'}, {'kind': 'supertrend'}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_b into Watchlist and verify\n",
"watch.strategy = custom_b\n",
"watch.strategy"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.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>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.007172</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>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>-0.000461</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>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.007120</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>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.016915</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",
" </tr>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>439.8150</td>\n",
" <td>441.8000</td>\n",
" <td>439.8100</td>\n",
" <td>440.6500</td>\n",
" <td>45910298.0</td>\n",
" <td>437.899020</td>\n",
" <td>434.223638</td>\n",
" <td>1.178818</td>\n",
" <td>63.083431</td>\n",
" <td>429.203232</td>\n",
" <td>1</td>\n",
" <td>429.203232</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.9100</td>\n",
" <td>440.0600</td>\n",
" <td>437.7700</td>\n",
" <td>438.5100</td>\n",
" <td>68951202.0</td>\n",
" <td>438.034793</td>\n",
" <td>434.613307</td>\n",
" <td>1.173950</td>\n",
" <td>58.908437</td>\n",
" <td>429.203232</td>\n",
" <td>1</td>\n",
" <td>429.203232</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.3400</td>\n",
" <td>440.9300</td>\n",
" <td>437.2100</td>\n",
" <td>437.5900</td>\n",
" <td>58783297.0</td>\n",
" <td>437.935950</td>\n",
" <td>434.883915</td>\n",
" <td>1.171850</td>\n",
" <td>57.157102</td>\n",
" <td>429.203232</td>\n",
" <td>1</td>\n",
" <td>429.203232</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.4400</td>\n",
" <td>441.2800</td>\n",
" <td>436.1000</td>\n",
" <td>441.1500</td>\n",
" <td>58053896.0</td>\n",
" <td>438.650184</td>\n",
" <td>435.453560</td>\n",
" <td>1.179952</td>\n",
" <td>61.879836</td>\n",
" <td>429.203232</td>\n",
" <td>1</td>\n",
" <td>429.203232</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.7800</td>\n",
" <td>441.1200</td>\n",
" <td>438.7300</td>\n",
" <td>438.9800</td>\n",
" <td>45933859.0</td>\n",
" <td>438.723476</td>\n",
" <td>435.774145</td>\n",
" <td>1.175021</td>\n",
" <td>57.704255</td>\n",
" <td>429.203232</td>\n",
" <td>1</td>\n",
" <td>429.203232</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5475 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume EMA_8 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-07-29 439.8150 441.8000 439.8100 440.6500 45910298.0 437.899020 \n",
"2021-07-30 437.9100 440.0600 437.7700 438.5100 68951202.0 438.034793 \n",
"2021-08-02 440.3400 440.9300 437.2100 437.5900 58783297.0 437.935950 \n",
"2021-08-03 438.4400 441.2800 436.1000 441.1500 58053896.0 438.650184 \n",
"2021-08-04 439.7800 441.1200 438.7300 438.9800 45933859.0 438.723476 \n",
"\n",
" EMA_21 CUMLOGRET_1 RSI_14 SUPERT_7_3.0 SUPERTd_7_3.0 \\\n",
"date \n",
"1999-11-01 NaN 0.000000 NaN 0.000000 1 \n",
"1999-11-02 NaN -0.007172 NaN NaN 1 \n",
"1999-11-03 NaN -0.000461 NaN NaN 1 \n",
"1999-11-04 NaN 0.007120 NaN NaN 1 \n",
"1999-11-05 NaN 0.016915 NaN NaN 1 \n",
"... ... ... ... ... ... \n",
"2021-07-29 434.223638 1.178818 63.083431 429.203232 1 \n",
"2021-07-30 434.613307 1.173950 58.908437 429.203232 1 \n",
"2021-08-02 434.883915 1.171850 57.157102 429.203232 1 \n",
"2021-08-03 435.453560 1.179952 61.879836 429.203232 1 \n",
"2021-08-04 435.774145 1.175021 57.704255 429.203232 1 \n",
"\n",
" SUPERTl_7_3.0 SUPERTs_7_3.0 \n",
"date \n",
"1999-11-01 NaN NaN \n",
"1999-11-02 NaN NaN \n",
"1999-11-03 NaN NaN \n",
"1999-11-04 NaN NaN \n",
"1999-11-05 NaN NaN \n",
"... ... ... \n",
"2021-07-29 429.203232 NaN \n",
"2021-07-30 429.203232 NaN \n",
"2021-08-02 429.203232 NaN \n",
"2021-08-03 429.203232 NaN \n",
"2021-08-04 429.203232 NaN \n",
"\n",
"[5475 rows x 13 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"watch.load(\"SPY\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Running Bad Strategy. (Misspelled indicator)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(name='Runtime Failure', ta=[{'kind': 'percet_return'}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.00%)')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load custom_run_failure into Watchlist and verify\n",
"watch.strategy = custom_run_failure\n",
"watch.strategy"
]
},
{
"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 'percet_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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Volume MAs and MA chains"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Strategy(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'}], description='TA Description', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.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.Strategy(\"Volume MAs and Price MA chain\", 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.strategy = vp_ma_chain_ta\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>136.012480</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>2021-07-29</th>\n",
" <td>439.8150</td>\n",
" <td>441.8000</td>\n",
" <td>439.8100</td>\n",
" <td>440.6500</td>\n",
" <td>45910298.0</td>\n",
" <td>6.106783e+07</td>\n",
" <td>67581418.80</td>\n",
" <td>439.017785</td>\n",
" <td>439.805454</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.9100</td>\n",
" <td>440.0600</td>\n",
" <td>437.7700</td>\n",
" <td>438.5100</td>\n",
" <td>68951202.0</td>\n",
" <td>6.250117e+07</td>\n",
" <td>68356927.55</td>\n",
" <td>438.848523</td>\n",
" <td>440.040302</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.3400</td>\n",
" <td>440.9300</td>\n",
" <td>437.2100</td>\n",
" <td>437.5900</td>\n",
" <td>58783297.0</td>\n",
" <td>6.182519e+07</td>\n",
" <td>68411209.00</td>\n",
" <td>438.429015</td>\n",
" <td>439.742146</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.4400</td>\n",
" <td>441.2800</td>\n",
" <td>436.1000</td>\n",
" <td>441.1500</td>\n",
" <td>58053896.0</td>\n",
" <td>6.113950e+07</td>\n",
" <td>67878382.85</td>\n",
" <td>439.336010</td>\n",
" <td>439.574486</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.7800</td>\n",
" <td>441.1200</td>\n",
" <td>438.7300</td>\n",
" <td>438.9800</td>\n",
" <td>45933859.0</td>\n",
" <td>5.837484e+07</td>\n",
" <td>66997603.00</td>\n",
" <td>439.217340</td>\n",
" <td>439.407713</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5475 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume VOLUME_EMA_10 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-07-29 439.8150 441.8000 439.8100 440.6500 45910298.0 6.106783e+07 \n",
"2021-07-30 437.9100 440.0600 437.7700 438.5100 68951202.0 6.250117e+07 \n",
"2021-08-02 440.3400 440.9300 437.2100 437.5900 58783297.0 6.182519e+07 \n",
"2021-08-03 438.4400 441.2800 436.1000 441.1500 58053896.0 6.113950e+07 \n",
"2021-08-04 439.7800 441.1200 438.7300 438.9800 45933859.0 5.837484e+07 \n",
"\n",
" VOLUME_SMA_20 EMA_5 EMA_5_LR_8 \n",
"date \n",
"1999-11-01 NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN \n",
"1999-11-05 NaN 136.012480 NaN \n",
"... ... ... ... \n",
"2021-07-29 67581418.80 439.017785 439.805454 \n",
"2021-07-30 68356927.55 438.848523 440.040302 \n",
"2021-08-02 68411209.00 438.429015 439.742146 \n",
"2021-08-03 67878382.85 439.336010 439.574486 \n",
"2021-08-04 66997603.00 439.217340 439.407713 \n",
"\n",
"[5475 rows x 9 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": [
"Strategy(name='MACD BBands', ta=[{'kind': 'macd'}, {'kind': 'bbands', 'close': 'MACD_12_26_9', 'length': 20, 'ddof': 0, 'prefix': 'MACD'}], description='BBANDS_20 applied to MACD', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.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.Strategy(\"MACD BBands\", macd_bands_ta, 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.strategy = macd_bands_ta\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1999-11-01</th>\n",
" <td>136.5000</td>\n",
" <td>137.0000</td>\n",
" <td>135.5625</td>\n",
" <td>135.5625</td>\n",
" <td>4006500.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>1999-11-02</th>\n",
" <td>135.9687</td>\n",
" <td>137.2500</td>\n",
" <td>134.5937</td>\n",
" <td>134.5937</td>\n",
" <td>6516900.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>1999-11-03</th>\n",
" <td>136.0000</td>\n",
" <td>136.3750</td>\n",
" <td>135.1250</td>\n",
" <td>135.5000</td>\n",
" <td>7222300.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>1999-11-04</th>\n",
" <td>136.7500</td>\n",
" <td>137.3593</td>\n",
" <td>135.7656</td>\n",
" <td>136.5312</td>\n",
" <td>7907500.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>1999-11-05</th>\n",
" <td>138.6250</td>\n",
" <td>139.1093</td>\n",
" <td>136.7812</td>\n",
" <td>137.8750</td>\n",
" <td>7431500.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",
" </tr>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>439.8150</td>\n",
" <td>441.8000</td>\n",
" <td>439.8100</td>\n",
" <td>440.6500</td>\n",
" <td>45910298.0</td>\n",
" <td>3.659359</td>\n",
" <td>0.293348</td>\n",
" <td>3.366011</td>\n",
" <td>2.370151</td>\n",
" <td>3.428878</td>\n",
" <td>4.487606</td>\n",
" <td>61.753577</td>\n",
" <td>0.608848</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.9100</td>\n",
" <td>440.0600</td>\n",
" <td>437.7700</td>\n",
" <td>438.5100</td>\n",
" <td>68951202.0</td>\n",
" <td>3.536797</td>\n",
" <td>0.136628</td>\n",
" <td>3.400168</td>\n",
" <td>2.455793</td>\n",
" <td>3.468200</td>\n",
" <td>4.480608</td>\n",
" <td>58.382302</td>\n",
" <td>0.533878</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.3400</td>\n",
" <td>440.9300</td>\n",
" <td>437.2100</td>\n",
" <td>437.5900</td>\n",
" <td>58783297.0</td>\n",
" <td>3.327076</td>\n",
" <td>-0.058474</td>\n",
" <td>3.385550</td>\n",
" <td>2.468149</td>\n",
" <td>3.474921</td>\n",
" <td>4.481692</td>\n",
" <td>57.945001</td>\n",
" <td>0.426575</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.4400</td>\n",
" <td>441.2800</td>\n",
" <td>436.1000</td>\n",
" <td>441.1500</td>\n",
" <td>58053896.0</td>\n",
" <td>3.408839</td>\n",
" <td>0.018631</td>\n",
" <td>3.390208</td>\n",
" <td>2.466294</td>\n",
" <td>3.473372</td>\n",
" <td>4.480450</td>\n",
" <td>57.988489</td>\n",
" <td>0.467960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.7800</td>\n",
" <td>441.1200</td>\n",
" <td>438.7300</td>\n",
" <td>438.9800</td>\n",
" <td>45933859.0</td>\n",
" <td>3.260945</td>\n",
" <td>-0.103410</td>\n",
" <td>3.364355</td>\n",
" <td>2.445938</td>\n",
" <td>3.450604</td>\n",
" <td>4.455271</td>\n",
" <td>58.231346</td>\n",
" <td>0.405611</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5475 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume MACD_12_26_9 \\\n",
"date \n",
"1999-11-01 136.5000 137.0000 135.5625 135.5625 4006500.0 NaN \n",
"1999-11-02 135.9687 137.2500 134.5937 134.5937 6516900.0 NaN \n",
"1999-11-03 136.0000 136.3750 135.1250 135.5000 7222300.0 NaN \n",
"1999-11-04 136.7500 137.3593 135.7656 136.5312 7907500.0 NaN \n",
"1999-11-05 138.6250 139.1093 136.7812 137.8750 7431500.0 NaN \n",
"... ... ... ... ... ... ... \n",
"2021-07-29 439.8150 441.8000 439.8100 440.6500 45910298.0 3.659359 \n",
"2021-07-30 437.9100 440.0600 437.7700 438.5100 68951202.0 3.536797 \n",
"2021-08-02 440.3400 440.9300 437.2100 437.5900 58783297.0 3.327076 \n",
"2021-08-03 438.4400 441.2800 436.1000 441.1500 58053896.0 3.408839 \n",
"2021-08-04 439.7800 441.1200 438.7300 438.9800 45933859.0 3.260945 \n",
"\n",
" MACDh_12_26_9 MACDs_12_26_9 MACD_BBL_20_2.0 MACD_BBM_20_2.0 \\\n",
"date \n",
"1999-11-01 NaN NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN NaN \n",
"... ... ... ... ... \n",
"2021-07-29 0.293348 3.366011 2.370151 3.428878 \n",
"2021-07-30 0.136628 3.400168 2.455793 3.468200 \n",
"2021-08-02 -0.058474 3.385550 2.468149 3.474921 \n",
"2021-08-03 0.018631 3.390208 2.466294 3.473372 \n",
"2021-08-04 -0.103410 3.364355 2.445938 3.450604 \n",
"\n",
" MACD_BBU_20_2.0 MACD_BBB_20_2.0 MACD_BBP_20_2.0 \n",
"date \n",
"1999-11-01 NaN NaN NaN \n",
"1999-11-02 NaN NaN NaN \n",
"1999-11-03 NaN NaN NaN \n",
"1999-11-04 NaN NaN NaN \n",
"1999-11-05 NaN NaN NaN \n",
"... ... ... ... \n",
"2021-07-29 4.487606 61.753577 0.608848 \n",
"2021-07-30 4.480608 58.382302 0.533878 \n",
"2021-08-02 4.481692 57.945001 0.426575 \n",
"2021-08-03 4.480450 57.988489 0.467960 \n",
"2021-08-04 4.455271 58.231346 0.405611 \n",
"\n",
"[5475 rows x 13 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 Strategy"
]
},
{
"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": [
"Strategy(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'}], description='MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.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_strategy = ta.Strategy(\n",
" \"Momo, Bands and SMAs and Cumulative Log Returns\", # name\n",
" momo_bands_sma_ta, # ta\n",
" \"MACD and RSI Momo with BBANDS and SMAs 50 & 200 and Cumulative Log Returns\" # description\n",
")\n",
"momo_bands_sma_strategy"
]
},
{
"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.strategy = momo_bands_sma_strategy\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\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>SMA_50</th>\n",
" <th>SMA_200</th>\n",
" <th>BBL_20_2.0</th>\n",
" <th>BBM_20_2.0</th>\n",
" <th>BBU_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>2021-07-29</th>\n",
" <td>439.815</td>\n",
" <td>441.80</td>\n",
" <td>439.81</td>\n",
" <td>440.65</td>\n",
" <td>45910298.0</td>\n",
" <td>426.8204</td>\n",
" <td>392.47485</td>\n",
" <td>427.133457</td>\n",
" <td>434.9235</td>\n",
" <td>442.713543</td>\n",
" <td>...</td>\n",
" <td>0.867553</td>\n",
" <td>3.659359</td>\n",
" <td>0.293348</td>\n",
" <td>3.366011</td>\n",
" <td>63.083431</td>\n",
" <td>1.178818</td>\n",
" <td>1.177090</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.910</td>\n",
" <td>440.06</td>\n",
" <td>437.77</td>\n",
" <td>438.51</td>\n",
" <td>68951202.0</td>\n",
" <td>427.3734</td>\n",
" <td>392.91675</td>\n",
" <td>427.674645</td>\n",
" <td>435.3275</td>\n",
" <td>442.980355</td>\n",
" <td>...</td>\n",
" <td>0.707929</td>\n",
" <td>3.536797</td>\n",
" <td>0.136628</td>\n",
" <td>3.400168</td>\n",
" <td>58.908437</td>\n",
" <td>1.173950</td>\n",
" <td>1.176439</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.340</td>\n",
" <td>440.93</td>\n",
" <td>437.21</td>\n",
" <td>437.59</td>\n",
" <td>58783297.0</td>\n",
" <td>427.8196</td>\n",
" <td>393.36505</td>\n",
" <td>427.844842</td>\n",
" <td>435.5210</td>\n",
" <td>443.197158</td>\n",
" <td>...</td>\n",
" <td>0.634768</td>\n",
" <td>3.327076</td>\n",
" <td>-0.058474</td>\n",
" <td>3.385550</td>\n",
" <td>57.157102</td>\n",
" <td>1.171850</td>\n",
" <td>1.174877</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.440</td>\n",
" <td>441.28</td>\n",
" <td>436.10</td>\n",
" <td>441.15</td>\n",
" <td>58053896.0</td>\n",
" <td>428.3438</td>\n",
" <td>393.83330</td>\n",
" <td>427.979505</td>\n",
" <td>435.9320</td>\n",
" <td>443.884495</td>\n",
" <td>...</td>\n",
" <td>0.828073</td>\n",
" <td>3.408839</td>\n",
" <td>0.018631</td>\n",
" <td>3.390208</td>\n",
" <td>61.879836</td>\n",
" <td>1.179952</td>\n",
" <td>1.175850</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.780</td>\n",
" <td>441.12</td>\n",
" <td>438.73</td>\n",
" <td>438.98</td>\n",
" <td>45933859.0</td>\n",
" <td>428.7400</td>\n",
" <td>394.29175</td>\n",
" <td>428.129141</td>\n",
" <td>436.1580</td>\n",
" <td>444.186859</td>\n",
" <td>...</td>\n",
" <td>0.675741</td>\n",
" <td>3.260945</td>\n",
" <td>-0.103410</td>\n",
" <td>3.364355</td>\n",
" <td>57.704255</td>\n",
" <td>1.175021</td>\n",
" <td>1.175918</td>\n",
" <td>0</td>\n",
" <td>30</td>\n",
" <td>70</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" open high low close volume SMA_50 SMA_200 \\\n",
"date \n",
"2021-07-29 439.815 441.80 439.81 440.65 45910298.0 426.8204 392.47485 \n",
"2021-07-30 437.910 440.06 437.77 438.51 68951202.0 427.3734 392.91675 \n",
"2021-08-02 440.340 440.93 437.21 437.59 58783297.0 427.8196 393.36505 \n",
"2021-08-03 438.440 441.28 436.10 441.15 58053896.0 428.3438 393.83330 \n",
"2021-08-04 439.780 441.12 438.73 438.98 45933859.0 428.7400 394.29175 \n",
"\n",
" BBL_20_2.0 BBM_20_2.0 BBU_20_2.0 ... BBP_20_2.0 MACD_12_26_9 \\\n",
"date ... \n",
"2021-07-29 427.133457 434.9235 442.713543 ... 0.867553 3.659359 \n",
"2021-07-30 427.674645 435.3275 442.980355 ... 0.707929 3.536797 \n",
"2021-08-02 427.844842 435.5210 443.197158 ... 0.634768 3.327076 \n",
"2021-08-03 427.979505 435.9320 443.884495 ... 0.828073 3.408839 \n",
"2021-08-04 428.129141 436.1580 444.186859 ... 0.675741 3.260945 \n",
"\n",
" MACDh_12_26_9 MACDs_12_26_9 RSI_14 CUMLOGRET_1 \\\n",
"date \n",
"2021-07-29 0.293348 3.366011 63.083431 1.178818 \n",
"2021-07-30 0.136628 3.400168 58.908437 1.173950 \n",
"2021-08-02 -0.058474 3.385550 57.157102 1.171850 \n",
"2021-08-03 0.018631 3.390208 61.879836 1.179952 \n",
"2021-08-04 -0.103410 3.364355 57.704255 1.175021 \n",
"\n",
" SMA_5_CUMLOGRET 0 30 70 \n",
"date \n",
"2021-07-29 1.177090 0 30 70 \n",
"2021-07-30 1.176439 0 30 70 \n",
"2021-08-02 1.174877 0 30 70 \n",
"2021-08-03 1.175850 0 30 70 \n",
"2021-08-04 1.175918 0 30 70 \n",
"\n",
"[5 rows x 21 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 Strategy 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": [
"Strategy(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)}], description='EMA, MACD History, BBands(LB, UB), and Log Returns Strategy', created='Wednesday August 4, 2021, NYSE: 9:51:45, Local: 13:51:45 PDT, Day 216/365 (59.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_strategy = ta.Strategy(\n",
" \"EMA, MACD History, Outter BBands, Log Returns\", # name\n",
" params_ta, # ta\n",
" \"EMA, MACD History, BBands(LB, UB), and Log Returns Strategy\" # description\n",
")\n",
"params_ta_strategy"
]
},
{
"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.strategy = params_ta_strategy\n",
"watch.strategy.name"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[i] Loaded SPY[D]: SPY_D.csv\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>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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-07-29</th>\n",
" <td>439.815</td>\n",
" <td>441.80</td>\n",
" <td>439.81</td>\n",
" <td>440.65</td>\n",
" <td>45910298.0</td>\n",
" <td>437.248923</td>\n",
" <td>0.342445</td>\n",
" <td>438.156795</td>\n",
" <td>441.623205</td>\n",
" <td>0.011848</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-07-30</th>\n",
" <td>437.910</td>\n",
" <td>440.06</td>\n",
" <td>437.77</td>\n",
" <td>438.51</td>\n",
" <td>68951202.0</td>\n",
" <td>437.478210</td>\n",
" <td>0.125869</td>\n",
" <td>437.555016</td>\n",
" <td>441.652984</td>\n",
" <td>-0.003256</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-02</th>\n",
" <td>440.340</td>\n",
" <td>440.93</td>\n",
" <td>437.21</td>\n",
" <td>437.59</td>\n",
" <td>58783297.0</td>\n",
" <td>437.498535</td>\n",
" <td>-0.126616</td>\n",
" <td>436.928813</td>\n",
" <td>440.907187</td>\n",
" <td>-0.007808</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-03</th>\n",
" <td>438.440</td>\n",
" <td>441.28</td>\n",
" <td>436.10</td>\n",
" <td>441.15</td>\n",
" <td>58053896.0</td>\n",
" <td>438.162438</td>\n",
" <td>-0.016262</td>\n",
" <td>436.662194</td>\n",
" <td>442.029806</td>\n",
" <td>0.004863</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-08-04</th>\n",
" <td>439.780</td>\n",
" <td>441.12</td>\n",
" <td>438.73</td>\n",
" <td>438.98</td>\n",
" <td>45933859.0</td>\n",
" <td>438.311086</td>\n",
" <td>-0.168348</td>\n",
" <td>436.712661</td>\n",
" <td>442.039339</td>\n",
" <td>0.000342</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" open high low close volume EMA_10 \\\n",
"date \n",
"2021-07-29 439.815 441.80 439.81 440.65 45910298.0 437.248923 \n",
"2021-07-30 437.910 440.06 437.77 438.51 68951202.0 437.478210 \n",
"2021-08-02 440.340 440.93 437.21 437.59 58783297.0 437.498535 \n",
"2021-08-03 438.440 441.28 436.10 441.15 58053896.0 438.162438 \n",
"2021-08-04 439.780 441.12 438.73 438.98 45933859.0 438.311086 \n",
"\n",
" MACDh_9_19_10 LB UB LOGRET_5 \n",
"date \n",
"2021-07-29 0.342445 438.156795 441.623205 0.011848 \n",
"2021-07-30 0.125869 437.555016 441.652984 -0.003256 \n",
"2021-08-02 -0.126616 436.928813 440.907187 -0.007808 \n",
"2021-08-03 -0.016262 436.662194 442.029806 0.004863 \n",
"2021-08-04 -0.168348 436.712661 442.039339 0.000342 "
]
},
"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 strategy, 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."
]
}
],
"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
}