Skip to content

Instantly share code, notes, and snippets.

@AnthonyFJGarner
Created October 25, 2018 19:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save AnthonyFJGarner/7161413e33bb6ab8ce126e9afa88bc7e to your computer and use it in GitHub Desktop.
Save AnthonyFJGarner/7161413e33bb6ab8ce126e9afa88bc7e to your computer and use it in GitHub Desktop.
Option Credit Spreads
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2018-10-06T17:02:50.982907Z",
"start_time": "2018-10-06T17:02:48.410715Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pixiedust database opened successfully\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div style=\"margin:10px\">\n",
" <a href=\"https://github.com/ibm-watson-data-lab/pixiedust\" target=\"_new\">\n",
" <img src=\"https://github.com/ibm-watson-data-lab/pixiedust/raw/master/docs/_static/pd_icon32.png\" style=\"float:left;margin-right:10px\"/>\n",
" </a>\n",
" <span>Pixiedust version 1.1.11</span>\n",
" </div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>Warning: You are not running the latest version of PixieDust. Current is 1.1.11, Latest is 1.1.14</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <div>Please copy and run the following command in a new cell to upgrade: <span style=\"background-color:#ececec;font-family:monospace;padding:0 5px\">!pip install --user --upgrade pixiedust</span></div>\n",
" "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>Please restart kernel after upgrading.</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Imports\n",
"%matplotlib notebook\n",
"import latex\n",
"import pandas as pd\n",
"import numpy as np\n",
"from typing import Dict, List\n",
"from collections import OrderedDict\n",
"import datetime as datetime\n",
"from pandas.tseries.offsets import *\n",
"from IPython.core.debugger import set_trace\n",
"import matplotlib\n",
"matplotlib.style.use('seaborn-darkgrid')\n",
"import pixiedust\n",
"#ctrl-shift-p for the command palette\n",
"pd.set_option(\"max_colwidth\", 100)\n",
"pd.set_option(\"display.max_rows\", 100000)\n",
"pd.set_option(\"display.max_columns\", 1000)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2018-10-06T17:02:53.152787Z",
"start_time": "2018-10-06T17:02:53.081976Z"
}
},
"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>Date</th>\n",
" <th>i</th>\n",
" <th>quote_date</th>\n",
" <th>expiration</th>\n",
" <th>strike</th>\n",
" <th>trade_volume</th>\n",
" <th>price</th>\n",
" <th>newMonth</th>\n",
" <th>targetExpiration</th>\n",
" <th>ExpDiff</th>\n",
" <th>mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>strikeTarget</th>\n",
" <th>strikeLocation</th>\n",
" <th>StrikeDiff</th>\n",
" <th>entry</th>\n",
" <th>exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2006-04-19</td>\n",
" <td>714</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2006-04-20</td>\n",
" <td>721</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.55</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2006-04-21</td>\n",
" <td>729</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.35</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2006-04-24</td>\n",
" <td>768</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>20.0</td>\n",
" <td>12.45</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2006-04-25</td>\n",
" <td>807</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date i quote_date expiration strike trade_volume price \\\n",
"0 2006-04-19 714 2006-04-19 2006-05-17 22.5 0.0 9.90 \n",
"1 2006-04-20 721 2006-04-20 2006-05-17 22.5 0.0 12.55 \n",
"2 2006-04-21 729 2006-04-21 2006-05-17 22.5 0.0 12.35 \n",
"3 2006-04-24 768 2006-04-24 2006-05-17 22.5 20.0 12.45 \n",
"4 2006-04-25 807 2006-04-25 2006-05-17 22.5 0.0 9.90 \n",
"\n",
" newMonth targetExpiration ExpDiff mid_underlying \\\n",
"0 2006-04-19 2006-11-05 172 days 00:00:00.000000000 11.32 \n",
"1 2006-04-19 2006-11-05 172 days 00:00:00.000000000 11.64 \n",
"2 2006-04-19 2006-11-05 172 days 00:00:00.000000000 11.59 \n",
"3 2006-04-19 2006-11-05 172 days 00:00:00.000000000 11.75 \n",
"4 2006-04-19 2006-11-05 172 days 00:00:00.000000000 11.76 \n",
"\n",
" futures strikeTarget strikeLocation StrikeDiff entry exit \n",
"0 22.5 11.32 714 11.18 False False \n",
"1 12.5 11.32 714 11.18 False False \n",
"2 12.5 11.32 714 11.18 False False \n",
"3 12.5 11.32 714 11.18 False False \n",
"4 12.5 11.32 714 11.18 False False "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#puts_file='../data/Options/vxxRolling_puts.csv'\n",
"puts_file = '../data/Options/vix_rolling_puts.csv'\n",
"\n",
"puts = pd.read_csv(\n",
" puts_file,\n",
" header=0,\n",
" parse_dates=[\n",
" \"quote_date\",\n",
" \"expiration\",\n",
" \"newMonth\",\n",
" \"targetExpiration\",\n",
" ])\n",
"puts.head()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2018-10-06T17:02:58.751015Z",
"start_time": "2018-10-06T17:02:58.741013Z"
}
},
"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>put_quote_date</th>\n",
" <th>put_expiration</th>\n",
" <th>put_strike</th>\n",
" <th>put_trade_volume</th>\n",
" <th>put_price</th>\n",
" <th>put_targetExpiration</th>\n",
" <th>put_ExpDiff</th>\n",
" <th>put_mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>put_entry</th>\n",
" <th>put_exit</th>\n",
" </tr>\n",
" <tr>\n",
" <th>put_quote_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>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.55</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.35</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>20.0</td>\n",
" <td>12.45</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" put_quote_date put_expiration put_strike put_trade_volume \\\n",
"put_quote_date \n",
"2006-04-19 2006-04-19 2006-05-17 22.5 0.0 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 0.0 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 0.0 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 20.0 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 0.0 \n",
"\n",
" put_price put_targetExpiration put_ExpDiff \\\n",
"put_quote_date \n",
"2006-04-19 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-20 12.55 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-21 12.35 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-24 12.45 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-25 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"\n",
" put_mid_underlying futures put_entry put_exit \n",
"put_quote_date \n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"put_prices = puts.filter(\n",
" [\n",
" 'quote_date', 'expiration', 'strike', 'trade_volume', 'price',\n",
" 'targetExpiration', 'ExpDiff', 'mid_underlying','futures','entry', 'exit'\n",
" ],\n",
" axis=1)\n",
"put_prices.rename(\n",
" columns={\n",
" 'quote_date': 'put_quote_date',\n",
" 'expiration': 'put_expiration',\n",
" 'strike': 'put_strike',\n",
" 'trade_volume': 'put_trade_volume',\n",
" 'price': 'put_price',\n",
" 'targetExpiration': 'put_targetExpiration',\n",
" 'ExpDiff': 'put_ExpDiff',\n",
" 'mid_underlying': 'put_mid_underlying',\n",
" 'futures':'futures',\n",
" 'entry': 'put_entry',\n",
" 'exit': 'put_exit'\n",
" },\n",
" inplace=True)\n",
"put_prices.index = put_prices.put_quote_date\n",
"put_prices.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2018-10-06T17:03:03.850655Z",
"start_time": "2018-10-06T17:03:03.545436Z"
}
},
"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>Date</th>\n",
" <th>i</th>\n",
" <th>quote_date</th>\n",
" <th>expiration</th>\n",
" <th>strike</th>\n",
" <th>trade_volume</th>\n",
" <th>price</th>\n",
" <th>newMonth</th>\n",
" <th>targetExpiration</th>\n",
" <th>ExpDiff</th>\n",
" <th>mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>strikeTarget</th>\n",
" <th>strikeLocation</th>\n",
" <th>StrikeDiff</th>\n",
" <th>entry</th>\n",
" <th>exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2006-04-19</td>\n",
" <td>714</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>22.64</td>\n",
" <td>714</td>\n",
" <td>0.14</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2006-04-20</td>\n",
" <td>721</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>22.64</td>\n",
" <td>714</td>\n",
" <td>0.14</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2006-04-21</td>\n",
" <td>729</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>22.64</td>\n",
" <td>714</td>\n",
" <td>0.14</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2006-04-24</td>\n",
" <td>768</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>22.64</td>\n",
" <td>714</td>\n",
" <td>0.14</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2006-04-25</td>\n",
" <td>807</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>22.64</td>\n",
" <td>714</td>\n",
" <td>0.14</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date i quote_date expiration strike trade_volume price \\\n",
"0 2006-04-19 714 2006-04-19 2006-05-17 22.5 0.0 0.075 \n",
"1 2006-04-20 721 2006-04-20 2006-05-17 22.5 0.0 0.075 \n",
"2 2006-04-21 729 2006-04-21 2006-05-17 22.5 0.0 0.075 \n",
"3 2006-04-24 768 2006-04-24 2006-05-17 22.5 0.0 0.075 \n",
"4 2006-04-25 807 2006-04-25 2006-05-17 22.5 0.0 0.050 \n",
"\n",
" newMonth targetExpiration ExpDiff mid_underlying \\\n",
"0 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.32 \n",
"1 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.64 \n",
"2 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.59 \n",
"3 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.75 \n",
"4 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.76 \n",
"\n",
" futures strikeTarget strikeLocation StrikeDiff entry exit \n",
"0 22.5 22.64 714 0.14 False False \n",
"1 12.5 22.64 714 0.14 False False \n",
"2 12.5 22.64 714 0.14 False False \n",
"3 12.5 22.64 714 0.14 False False \n",
"4 12.5 22.64 714 0.14 False False "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#callsL_file='../data/Options/vxxRolling_callsL.csv'\n",
"callsL_file = '../data/Options/vix_rolling_callsL.csv'\n",
"\n",
"callsL = pd.read_csv(\n",
" callsL_file,\n",
" header=0,\n",
" parse_dates=[\n",
" \"quote_date\",\n",
" \"expiration\",\n",
" \"newMonth\",\n",
" \"targetExpiration\",\n",
" ])\n",
"callsL.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:55.428995Z",
"start_time": "2018-09-12T13:45:55.394125Z"
}
},
"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>Date</th>\n",
" <th>i</th>\n",
" <th>quote_date</th>\n",
" <th>expiration</th>\n",
" <th>strike</th>\n",
" <th>trade_volume</th>\n",
" <th>price</th>\n",
" <th>newMonth</th>\n",
" <th>targetExpiration</th>\n",
" <th>ExpDiff</th>\n",
" <th>mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>strikeTarget</th>\n",
" <th>strikeLocation</th>\n",
" <th>StrikeDiff</th>\n",
" <th>entry</th>\n",
" <th>exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2006-04-19</td>\n",
" <td>714</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2006-04-20</td>\n",
" <td>721</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2006-04-21</td>\n",
" <td>729</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2006-04-24</td>\n",
" <td>768</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2006-04-25</td>\n",
" <td>807</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>11.32</td>\n",
" <td>714</td>\n",
" <td>11.18</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date i quote_date expiration strike trade_volume price \\\n",
"0 2006-04-19 714 2006-04-19 2006-05-17 22.5 0.0 0.075 \n",
"1 2006-04-20 721 2006-04-20 2006-05-17 22.5 0.0 0.075 \n",
"2 2006-04-21 729 2006-04-21 2006-05-17 22.5 0.0 0.075 \n",
"3 2006-04-24 768 2006-04-24 2006-05-17 22.5 0.0 0.075 \n",
"4 2006-04-25 807 2006-04-25 2006-05-17 22.5 0.0 0.050 \n",
"\n",
" newMonth targetExpiration ExpDiff mid_underlying \\\n",
"0 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.32 \n",
"1 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.64 \n",
"2 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.59 \n",
"3 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.75 \n",
"4 2006-04-19 2006-05-19 2 days 00:00:00.000000000 11.76 \n",
"\n",
" futures strikeTarget strikeLocation StrikeDiff entry exit \n",
"0 22.5 11.32 714 11.18 False False \n",
"1 12.5 11.32 714 11.18 False False \n",
"2 12.5 11.32 714 11.18 False False \n",
"3 12.5 11.32 714 11.18 False False \n",
"4 12.5 11.32 714 11.18 False False "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#callsS_file='../data/Options/vxxRolling_callsS.csv'\n",
"callsS_file='../data/Options/vix_rolling_callsS.csv'\n",
"\n",
"callsS = pd.read_csv(\n",
" callsS_file,\n",
" header=0,\n",
" parse_dates=[\n",
" \"quote_date\",\n",
" \"expiration\",\n",
" \"newMonth\",\n",
" \"targetExpiration\",\n",
" ])\n",
"callsS.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:55.450949Z",
"start_time": "2018-09-12T13:45:55.430994Z"
}
},
"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>Date</th>\n",
" <th>i</th>\n",
" <th>quote_date</th>\n",
" <th>expiration</th>\n",
" <th>strike</th>\n",
" <th>trade_volume</th>\n",
" <th>price</th>\n",
" <th>newMonth</th>\n",
" <th>targetExpiration</th>\n",
" <th>ExpDiff</th>\n",
" <th>mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>strikeTarget</th>\n",
" <th>strikeLocation</th>\n",
" <th>StrikeDiff</th>\n",
" <th>entry</th>\n",
" <th>exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3098</th>\n",
" <td>2018-08-29</td>\n",
" <td>522364</td>\n",
" <td>2018-08-29</td>\n",
" <td>2018-09-19</td>\n",
" <td>12.0</td>\n",
" <td>466.0</td>\n",
" <td>2.100</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>12.25</td>\n",
" <td>14.0</td>\n",
" <td>12.25</td>\n",
" <td>521449</td>\n",
" <td>0.25</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3099</th>\n",
" <td>2018-08-30</td>\n",
" <td>522539</td>\n",
" <td>2018-08-30</td>\n",
" <td>2018-09-19</td>\n",
" <td>12.0</td>\n",
" <td>701.0</td>\n",
" <td>2.625</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.53</td>\n",
" <td>14.5</td>\n",
" <td>12.25</td>\n",
" <td>521449</td>\n",
" <td>0.25</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3100</th>\n",
" <td>2018-08-31</td>\n",
" <td>522714</td>\n",
" <td>2018-08-31</td>\n",
" <td>2018-09-19</td>\n",
" <td>12.0</td>\n",
" <td>312.0</td>\n",
" <td>2.125</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>12.86</td>\n",
" <td>14.0</td>\n",
" <td>12.25</td>\n",
" <td>521449</td>\n",
" <td>0.25</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3101</th>\n",
" <td>2018-09-04</td>\n",
" <td>522889</td>\n",
" <td>2018-09-04</td>\n",
" <td>2018-09-19</td>\n",
" <td>12.0</td>\n",
" <td>1367.0</td>\n",
" <td>2.300</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.16</td>\n",
" <td>14.0</td>\n",
" <td>12.25</td>\n",
" <td>521449</td>\n",
" <td>0.25</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3102</th>\n",
" <td>2018-09-05</td>\n",
" <td>523064</td>\n",
" <td>2018-09-05</td>\n",
" <td>2018-09-19</td>\n",
" <td>12.0</td>\n",
" <td>1654.0</td>\n",
" <td>2.625</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.91</td>\n",
" <td>14.5</td>\n",
" <td>12.25</td>\n",
" <td>521449</td>\n",
" <td>0.25</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date i quote_date expiration strike trade_volume price \\\n",
"3098 2018-08-29 522364 2018-08-29 2018-09-19 12.0 466.0 2.100 \n",
"3099 2018-08-30 522539 2018-08-30 2018-09-19 12.0 701.0 2.625 \n",
"3100 2018-08-31 522714 2018-08-31 2018-09-19 12.0 312.0 2.125 \n",
"3101 2018-09-04 522889 2018-09-04 2018-09-19 12.0 1367.0 2.300 \n",
"3102 2018-09-05 523064 2018-09-05 2018-09-19 12.0 1654.0 2.625 \n",
"\n",
" newMonth targetExpiration ExpDiff mid_underlying \\\n",
"3098 2018-08-22 2018-09-21 2 days 00:00:00.000000000 12.25 \n",
"3099 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.53 \n",
"3100 2018-08-22 2018-09-21 2 days 00:00:00.000000000 12.86 \n",
"3101 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.16 \n",
"3102 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.91 \n",
"\n",
" futures strikeTarget strikeLocation StrikeDiff entry exit \n",
"3098 14.0 12.25 521449 0.25 False False \n",
"3099 14.5 12.25 521449 0.25 False False \n",
"3100 14.0 12.25 521449 0.25 False False \n",
"3101 14.0 12.25 521449 0.25 False False \n",
"3102 14.5 12.25 521449 0.25 False NaN "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"callsS.tail()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:55.475869Z",
"start_time": "2018-09-12T13:45:55.452929Z"
}
},
"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>Date</th>\n",
" <th>i</th>\n",
" <th>quote_date</th>\n",
" <th>expiration</th>\n",
" <th>strike</th>\n",
" <th>trade_volume</th>\n",
" <th>price</th>\n",
" <th>newMonth</th>\n",
" <th>targetExpiration</th>\n",
" <th>ExpDiff</th>\n",
" <th>mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>strikeTarget</th>\n",
" <th>strikeLocation</th>\n",
" <th>StrikeDiff</th>\n",
" <th>entry</th>\n",
" <th>exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3079</th>\n",
" <td>2018-08-29</td>\n",
" <td>522349</td>\n",
" <td>2018-08-29</td>\n",
" <td>2018-09-19</td>\n",
" <td>24.0</td>\n",
" <td>10116.0</td>\n",
" <td>0.200</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>12.25</td>\n",
" <td>14.0</td>\n",
" <td>24.5</td>\n",
" <td>521434</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3080</th>\n",
" <td>2018-08-30</td>\n",
" <td>522524</td>\n",
" <td>2018-08-30</td>\n",
" <td>2018-09-19</td>\n",
" <td>24.0</td>\n",
" <td>7561.0</td>\n",
" <td>0.250</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.53</td>\n",
" <td>14.5</td>\n",
" <td>24.5</td>\n",
" <td>521434</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3081</th>\n",
" <td>2018-08-31</td>\n",
" <td>522699</td>\n",
" <td>2018-08-31</td>\n",
" <td>2018-09-19</td>\n",
" <td>24.0</td>\n",
" <td>11099.0</td>\n",
" <td>0.200</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>12.86</td>\n",
" <td>14.0</td>\n",
" <td>24.5</td>\n",
" <td>521434</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3082</th>\n",
" <td>2018-09-04</td>\n",
" <td>522874</td>\n",
" <td>2018-09-04</td>\n",
" <td>2018-09-19</td>\n",
" <td>24.0</td>\n",
" <td>1849.0</td>\n",
" <td>0.175</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.16</td>\n",
" <td>14.0</td>\n",
" <td>24.5</td>\n",
" <td>521434</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3083</th>\n",
" <td>2018-09-05</td>\n",
" <td>523049</td>\n",
" <td>2018-09-05</td>\n",
" <td>2018-09-19</td>\n",
" <td>24.0</td>\n",
" <td>85.0</td>\n",
" <td>0.200</td>\n",
" <td>2018-08-22</td>\n",
" <td>2018-09-21</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>13.91</td>\n",
" <td>14.5</td>\n",
" <td>24.5</td>\n",
" <td>521434</td>\n",
" <td>0.5</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date i quote_date expiration strike trade_volume price \\\n",
"3079 2018-08-29 522349 2018-08-29 2018-09-19 24.0 10116.0 0.200 \n",
"3080 2018-08-30 522524 2018-08-30 2018-09-19 24.0 7561.0 0.250 \n",
"3081 2018-08-31 522699 2018-08-31 2018-09-19 24.0 11099.0 0.200 \n",
"3082 2018-09-04 522874 2018-09-04 2018-09-19 24.0 1849.0 0.175 \n",
"3083 2018-09-05 523049 2018-09-05 2018-09-19 24.0 85.0 0.200 \n",
"\n",
" newMonth targetExpiration ExpDiff mid_underlying \\\n",
"3079 2018-08-22 2018-09-21 2 days 00:00:00.000000000 12.25 \n",
"3080 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.53 \n",
"3081 2018-08-22 2018-09-21 2 days 00:00:00.000000000 12.86 \n",
"3082 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.16 \n",
"3083 2018-08-22 2018-09-21 2 days 00:00:00.000000000 13.91 \n",
"\n",
" futures strikeTarget strikeLocation StrikeDiff entry exit \n",
"3079 14.0 24.5 521434 0.5 False False \n",
"3080 14.5 24.5 521434 0.5 False False \n",
"3081 14.0 24.5 521434 0.5 False False \n",
"3082 14.0 24.5 521434 0.5 False False \n",
"3083 14.5 24.5 521434 0.5 False NaN "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"callsL.tail()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:55.495820Z",
"start_time": "2018-09-12T13:45:55.477864Z"
}
},
"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>callsL_quote_date</th>\n",
" <th>callsL_expiration</th>\n",
" <th>callsL_strike</th>\n",
" <th>callsL_trade_volume</th>\n",
" <th>callsL_price</th>\n",
" <th>callsL_targetExpiration</th>\n",
" <th>callsL_ExpDiff</th>\n",
" <th>callsL_mid_underlying</th>\n",
" <th>callsL_futures</th>\n",
" <th>callsL_entry</th>\n",
" <th>callsL_exit</th>\n",
" </tr>\n",
" <tr>\n",
" <th>callsL_quote_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>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" callsL_quote_date callsL_expiration callsL_strike \\\n",
"callsL_quote_date \n",
"2006-04-19 2006-04-19 2006-05-17 22.5 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 \n",
"\n",
" callsL_trade_volume callsL_price callsL_targetExpiration \\\n",
"callsL_quote_date \n",
"2006-04-19 0.0 0.075 2006-05-19 \n",
"2006-04-20 0.0 0.075 2006-05-19 \n",
"2006-04-21 0.0 0.075 2006-05-19 \n",
"2006-04-24 0.0 0.075 2006-05-19 \n",
"2006-04-25 0.0 0.050 2006-05-19 \n",
"\n",
" callsL_ExpDiff callsL_mid_underlying \\\n",
"callsL_quote_date \n",
"2006-04-19 2 days 00:00:00.000000000 11.32 \n",
"2006-04-20 2 days 00:00:00.000000000 11.64 \n",
"2006-04-21 2 days 00:00:00.000000000 11.59 \n",
"2006-04-24 2 days 00:00:00.000000000 11.75 \n",
"2006-04-25 2 days 00:00:00.000000000 11.76 \n",
"\n",
" callsL_futures callsL_entry callsL_exit \n",
"callsL_quote_date \n",
"2006-04-19 22.5 False False \n",
"2006-04-20 12.5 False False \n",
"2006-04-21 12.5 False False \n",
"2006-04-24 12.5 False False \n",
"2006-04-25 12.5 False False "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"callsL_prices = callsL.filter(\n",
" [\n",
" 'quote_date', 'expiration', 'strike', 'trade_volume', 'price',\n",
" 'targetExpiration', 'ExpDiff', 'mid_underlying', 'futures','entry', 'exit'\n",
" ],\n",
" axis=1)\n",
"callsL_prices.rename(\n",
" columns={\n",
" 'quote_date': 'callsL_quote_date',\n",
" 'expiration': 'callsL_expiration',\n",
" 'strike': 'callsL_strike',\n",
" 'trade_volume': 'callsL_trade_volume',\n",
" 'price': 'callsL_price',\n",
" 'targetExpiration': 'callsL_targetExpiration',\n",
" 'ExpDiff': 'callsL_ExpDiff',\n",
" 'mid_underlying': 'callsL_mid_underlying',\n",
" 'futures': 'callsL_futures',\n",
" 'entry': 'callsL_entry',\n",
" 'exit': 'callsL_exit'\n",
" },\n",
" inplace=True)\n",
"callsL_prices.index = callsL_prices.callsL_quote_date\n",
"callsL_prices.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:55.514793Z",
"start_time": "2018-09-12T13:45:55.497810Z"
}
},
"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>callsS_quote_date</th>\n",
" <th>callsS_expiration</th>\n",
" <th>callsS_strike</th>\n",
" <th>callsS_trade_volume</th>\n",
" <th>callsS_price</th>\n",
" <th>callsS_targetExpiration</th>\n",
" <th>callsS_ExpDiff</th>\n",
" <th>callsS_mid_underlying</th>\n",
" <th>callsS_futures</th>\n",
" <th>callsS_entry</th>\n",
" <th>callsS_exit</th>\n",
" </tr>\n",
" <tr>\n",
" <th>callsS_quote_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>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" callsS_quote_date callsS_expiration callsS_strike \\\n",
"callsS_quote_date \n",
"2006-04-19 2006-04-19 2006-05-17 22.5 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 \n",
"\n",
" callsS_trade_volume callsS_price callsS_targetExpiration \\\n",
"callsS_quote_date \n",
"2006-04-19 0.0 0.075 2006-05-19 \n",
"2006-04-20 0.0 0.075 2006-05-19 \n",
"2006-04-21 0.0 0.075 2006-05-19 \n",
"2006-04-24 0.0 0.075 2006-05-19 \n",
"2006-04-25 0.0 0.050 2006-05-19 \n",
"\n",
" callsS_ExpDiff callsS_mid_underlying \\\n",
"callsS_quote_date \n",
"2006-04-19 2 days 00:00:00.000000000 11.32 \n",
"2006-04-20 2 days 00:00:00.000000000 11.64 \n",
"2006-04-21 2 days 00:00:00.000000000 11.59 \n",
"2006-04-24 2 days 00:00:00.000000000 11.75 \n",
"2006-04-25 2 days 00:00:00.000000000 11.76 \n",
"\n",
" callsS_futures callsS_entry callsS_exit \n",
"callsS_quote_date \n",
"2006-04-19 22.5 False False \n",
"2006-04-20 12.5 False False \n",
"2006-04-21 12.5 False False \n",
"2006-04-24 12.5 False False \n",
"2006-04-25 12.5 False False "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"callsS_prices = callsS.filter(\n",
" [\n",
" 'quote_date', 'expiration', 'strike', 'trade_volume', 'price',\n",
" 'targetExpiration', 'ExpDiff', 'mid_underlying', 'futures','entry', 'exit'\n",
" ],\n",
" axis=1)\n",
"callsS_prices.rename(\n",
" columns={\n",
" 'quote_date': 'callsS_quote_date',\n",
" 'expiration': 'callsS_expiration',\n",
" 'strike': 'callsS_strike',\n",
" 'trade_volume': 'callsS_trade_volume',\n",
" 'price': 'callsS_price',\n",
" 'targetExpiration': 'callsS_targetExpiration',\n",
" 'ExpDiff': 'callsS_ExpDiff',\n",
" 'mid_underlying': 'callsS_mid_underlying',\n",
" 'futures': 'callsS_futures',\n",
" 'entry': 'callsS_entry',\n",
" 'exit': 'callsS_exit'\n",
" },\n",
" inplace=True)\n",
"callsS_prices.index = callsS_prices.callsS_quote_date\n",
"callsS_prices.head()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:56.688673Z",
"start_time": "2018-09-12T13:45:55.678328Z"
}
},
"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>callsL_quote_date</th>\n",
" <th>callsL_expiration</th>\n",
" <th>callsL_strike</th>\n",
" <th>callsL_trade_volume</th>\n",
" <th>callsL_price</th>\n",
" <th>callsL_targetExpiration</th>\n",
" <th>callsL_ExpDiff</th>\n",
" <th>callsL_mid_underlying</th>\n",
" <th>callsL_futures</th>\n",
" <th>callsL_entry</th>\n",
" <th>callsL_exit</th>\n",
" <th>callsS_quote_date</th>\n",
" <th>callsS_expiration</th>\n",
" <th>callsS_strike</th>\n",
" <th>callsS_trade_volume</th>\n",
" <th>callsS_price</th>\n",
" <th>callsS_targetExpiration</th>\n",
" <th>callsS_ExpDiff</th>\n",
" <th>callsS_mid_underlying</th>\n",
" <th>callsS_futures</th>\n",
" <th>callsS_entry</th>\n",
" <th>callsS_exit</th>\n",
" <th>put_quote_date</th>\n",
" <th>put_expiration</th>\n",
" <th>put_strike</th>\n",
" <th>put_trade_volume</th>\n",
" <th>put_price</th>\n",
" <th>put_targetExpiration</th>\n",
" <th>put_ExpDiff</th>\n",
" <th>put_mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>put_entry</th>\n",
" <th>put_exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.55</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.35</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>20.0</td>\n",
" <td>12.45</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" callsL_quote_date callsL_expiration callsL_strike \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 \n",
"\n",
" callsL_trade_volume callsL_price callsL_targetExpiration \\\n",
"2006-04-19 0.0 0.075 2006-05-19 \n",
"2006-04-20 0.0 0.075 2006-05-19 \n",
"2006-04-21 0.0 0.075 2006-05-19 \n",
"2006-04-24 0.0 0.075 2006-05-19 \n",
"2006-04-25 0.0 0.050 2006-05-19 \n",
"\n",
" callsL_ExpDiff callsL_mid_underlying callsL_futures \\\n",
"2006-04-19 2 days 00:00:00.000000000 11.32 22.5 \n",
"2006-04-20 2 days 00:00:00.000000000 11.64 12.5 \n",
"2006-04-21 2 days 00:00:00.000000000 11.59 12.5 \n",
"2006-04-24 2 days 00:00:00.000000000 11.75 12.5 \n",
"2006-04-25 2 days 00:00:00.000000000 11.76 12.5 \n",
"\n",
" callsL_entry callsL_exit callsS_quote_date callsS_expiration \\\n",
"2006-04-19 False False 2006-04-19 2006-05-17 \n",
"2006-04-20 False False 2006-04-20 2006-05-17 \n",
"2006-04-21 False False 2006-04-21 2006-05-17 \n",
"2006-04-24 False False 2006-04-24 2006-05-17 \n",
"2006-04-25 False False 2006-04-25 2006-05-17 \n",
"\n",
" callsS_strike callsS_trade_volume callsS_price \\\n",
"2006-04-19 22.5 0.0 0.075 \n",
"2006-04-20 22.5 0.0 0.075 \n",
"2006-04-21 22.5 0.0 0.075 \n",
"2006-04-24 22.5 0.0 0.075 \n",
"2006-04-25 22.5 0.0 0.050 \n",
"\n",
" callsS_targetExpiration callsS_ExpDiff \\\n",
"2006-04-19 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-20 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-21 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-24 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-25 2006-05-19 2 days 00:00:00.000000000 \n",
"\n",
" callsS_mid_underlying callsS_futures callsS_entry callsS_exit \\\n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False \n",
"\n",
" put_quote_date put_expiration put_strike put_trade_volume \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 0.0 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 0.0 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 0.0 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 20.0 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 0.0 \n",
"\n",
" put_price put_targetExpiration put_ExpDiff \\\n",
"2006-04-19 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-20 12.55 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-21 12.35 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-24 12.45 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-25 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"\n",
" put_mid_underlying futures put_entry put_exit \n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combined = pd.concat([callsL_prices, callsS_prices,put_prices], axis=1, sort=False)\n",
"combined.to_csv('../data/Options/combined1.csv')\n",
"combined.head() #.fillna(method='ffill',inplace=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:57.622127Z",
"start_time": "2018-09-12T13:45:56.690691Z"
}
},
"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>callsL_quote_date</th>\n",
" <th>callsL_expiration</th>\n",
" <th>callsL_strike</th>\n",
" <th>callsL_trade_volume</th>\n",
" <th>callsL_price</th>\n",
" <th>callsL_targetExpiration</th>\n",
" <th>callsL_ExpDiff</th>\n",
" <th>callsL_mid_underlying</th>\n",
" <th>callsL_futures</th>\n",
" <th>callsL_entry</th>\n",
" <th>callsL_exit</th>\n",
" <th>callsS_quote_date</th>\n",
" <th>callsS_expiration</th>\n",
" <th>callsS_strike</th>\n",
" <th>callsS_trade_volume</th>\n",
" <th>callsS_price</th>\n",
" <th>callsS_targetExpiration</th>\n",
" <th>callsS_ExpDiff</th>\n",
" <th>callsS_mid_underlying</th>\n",
" <th>callsS_futures</th>\n",
" <th>callsS_entry</th>\n",
" <th>callsS_exit</th>\n",
" <th>put_quote_date</th>\n",
" <th>put_expiration</th>\n",
" <th>put_strike</th>\n",
" <th>put_trade_volume</th>\n",
" <th>put_price</th>\n",
" <th>put_targetExpiration</th>\n",
" <th>put_ExpDiff</th>\n",
" <th>put_mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>put_entry</th>\n",
" <th>put_exit</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.55</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.35</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>20.0</td>\n",
" <td>12.45</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" callsL_quote_date callsL_expiration callsL_strike \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 \n",
"\n",
" callsL_trade_volume callsL_price callsL_targetExpiration \\\n",
"2006-04-19 0.0 0.075 2006-05-19 \n",
"2006-04-20 0.0 0.075 2006-05-19 \n",
"2006-04-21 0.0 0.075 2006-05-19 \n",
"2006-04-24 0.0 0.075 2006-05-19 \n",
"2006-04-25 0.0 0.050 2006-05-19 \n",
"\n",
" callsL_ExpDiff callsL_mid_underlying callsL_futures \\\n",
"2006-04-19 2 days 00:00:00.000000000 11.32 22.5 \n",
"2006-04-20 2 days 00:00:00.000000000 11.64 12.5 \n",
"2006-04-21 2 days 00:00:00.000000000 11.59 12.5 \n",
"2006-04-24 2 days 00:00:00.000000000 11.75 12.5 \n",
"2006-04-25 2 days 00:00:00.000000000 11.76 12.5 \n",
"\n",
" callsL_entry callsL_exit callsS_quote_date callsS_expiration \\\n",
"2006-04-19 False False 2006-04-19 2006-05-17 \n",
"2006-04-20 False False 2006-04-20 2006-05-17 \n",
"2006-04-21 False False 2006-04-21 2006-05-17 \n",
"2006-04-24 False False 2006-04-24 2006-05-17 \n",
"2006-04-25 False False 2006-04-25 2006-05-17 \n",
"\n",
" callsS_strike callsS_trade_volume callsS_price \\\n",
"2006-04-19 22.5 0.0 0.075 \n",
"2006-04-20 22.5 0.0 0.075 \n",
"2006-04-21 22.5 0.0 0.075 \n",
"2006-04-24 22.5 0.0 0.075 \n",
"2006-04-25 22.5 0.0 0.050 \n",
"\n",
" callsS_targetExpiration callsS_ExpDiff \\\n",
"2006-04-19 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-20 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-21 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-24 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-25 2006-05-19 2 days 00:00:00.000000000 \n",
"\n",
" callsS_mid_underlying callsS_futures callsS_entry callsS_exit \\\n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False \n",
"\n",
" put_quote_date put_expiration put_strike put_trade_volume \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 0.0 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 0.0 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 0.0 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 20.0 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 0.0 \n",
"\n",
" put_price put_targetExpiration put_ExpDiff \\\n",
"2006-04-19 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-20 12.55 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-21 12.35 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-24 12.45 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-25 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"\n",
" put_mid_underlying futures put_entry put_exit \n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combined.fillna(method='ffill',inplace=True)\n",
"combined.to_csv('../data/Options/combined2.csv')\n",
"combined.head()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:57.632101Z",
"start_time": "2018-09-12T13:45:57.625119Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Empty DataFrame\n",
"Columns: [callsL_quote_date, callsL_expiration, callsL_strike, callsL_trade_volume, callsL_price, callsL_targetExpiration, callsL_ExpDiff, callsL_mid_underlying, callsL_futures, callsL_entry, callsL_exit, callsS_quote_date, callsS_expiration, callsS_strike, callsS_trade_volume, callsS_price, callsS_targetExpiration, callsS_ExpDiff, callsS_mid_underlying, callsS_futures, callsS_entry, callsS_exit, put_quote_date, put_expiration, put_strike, put_trade_volume, put_price, put_targetExpiration, put_ExpDiff, put_mid_underlying, futures, put_entry, put_exit]\n",
"Index: []\n"
]
}
],
"source": [
"mask = combined['callsS_price'].isnull()\n",
"print(combined.loc[mask])\n",
"# fill cell with one from adjoining column df.loc[df['foo'].isnull(),'foo'] = df['bar']"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:57.646063Z",
"start_time": "2018-09-12T13:45:57.634095Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Empty DataFrame\n",
"Columns: [callsL_quote_date, callsL_expiration, callsL_strike, callsL_trade_volume, callsL_price, callsL_targetExpiration, callsL_ExpDiff, callsL_mid_underlying, callsL_futures, callsL_entry, callsL_exit, callsS_quote_date, callsS_expiration, callsS_strike, callsS_trade_volume, callsS_price, callsS_targetExpiration, callsS_ExpDiff, callsS_mid_underlying, callsS_futures, callsS_entry, callsS_exit, put_quote_date, put_expiration, put_strike, put_trade_volume, put_price, put_targetExpiration, put_ExpDiff, put_mid_underlying, futures, put_entry, put_exit]\n",
"Index: []\n"
]
}
],
"source": [
"mask = combined['callsL_price'].isnull()\n",
"print(combined.loc[mask])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:45:57.672991Z",
"start_time": "2018-09-12T13:45:57.649055Z"
}
},
"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>callsL_quote_date</th>\n",
" <th>callsL_expiration</th>\n",
" <th>callsL_strike</th>\n",
" <th>callsL_trade_volume</th>\n",
" <th>callsL_price</th>\n",
" <th>callsL_targetExpiration</th>\n",
" <th>callsL_ExpDiff</th>\n",
" <th>callsL_mid_underlying</th>\n",
" <th>callsL_futures</th>\n",
" <th>callsL_entry</th>\n",
" <th>callsL_exit</th>\n",
" <th>callsS_quote_date</th>\n",
" <th>callsS_expiration</th>\n",
" <th>callsS_strike</th>\n",
" <th>callsS_trade_volume</th>\n",
" <th>callsS_price</th>\n",
" <th>callsS_targetExpiration</th>\n",
" <th>callsS_ExpDiff</th>\n",
" <th>callsS_mid_underlying</th>\n",
" <th>callsS_futures</th>\n",
" <th>callsS_entry</th>\n",
" <th>callsS_exit</th>\n",
" <th>put_quote_date</th>\n",
" <th>put_expiration</th>\n",
" <th>put_strike</th>\n",
" <th>put_trade_volume</th>\n",
" <th>put_price</th>\n",
" <th>put_targetExpiration</th>\n",
" <th>put_ExpDiff</th>\n",
" <th>put_mid_underlying</th>\n",
" <th>futures</th>\n",
" <th>put_entry</th>\n",
" <th>put_exit</th>\n",
" <th>quote_date</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2006-04-19</th>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.32</td>\n",
" <td>22.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.55</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.64</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>12.35</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.59</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.075</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>20.0</td>\n",
" <td>12.45</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.75</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>0.050</td>\n",
" <td>2006-05-19</td>\n",
" <td>2 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" <td>2006-05-17</td>\n",
" <td>22.5</td>\n",
" <td>0.0</td>\n",
" <td>9.90</td>\n",
" <td>2006-11-05</td>\n",
" <td>172 days 00:00:00.000000000</td>\n",
" <td>11.76</td>\n",
" <td>12.5</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" <td>2006-04-25</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" callsL_quote_date callsL_expiration callsL_strike \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 \n",
"\n",
" callsL_trade_volume callsL_price callsL_targetExpiration \\\n",
"2006-04-19 0.0 0.075 2006-05-19 \n",
"2006-04-20 0.0 0.075 2006-05-19 \n",
"2006-04-21 0.0 0.075 2006-05-19 \n",
"2006-04-24 0.0 0.075 2006-05-19 \n",
"2006-04-25 0.0 0.050 2006-05-19 \n",
"\n",
" callsL_ExpDiff callsL_mid_underlying callsL_futures \\\n",
"2006-04-19 2 days 00:00:00.000000000 11.32 22.5 \n",
"2006-04-20 2 days 00:00:00.000000000 11.64 12.5 \n",
"2006-04-21 2 days 00:00:00.000000000 11.59 12.5 \n",
"2006-04-24 2 days 00:00:00.000000000 11.75 12.5 \n",
"2006-04-25 2 days 00:00:00.000000000 11.76 12.5 \n",
"\n",
" callsL_entry callsL_exit callsS_quote_date callsS_expiration \\\n",
"2006-04-19 False False 2006-04-19 2006-05-17 \n",
"2006-04-20 False False 2006-04-20 2006-05-17 \n",
"2006-04-21 False False 2006-04-21 2006-05-17 \n",
"2006-04-24 False False 2006-04-24 2006-05-17 \n",
"2006-04-25 False False 2006-04-25 2006-05-17 \n",
"\n",
" callsS_strike callsS_trade_volume callsS_price \\\n",
"2006-04-19 22.5 0.0 0.075 \n",
"2006-04-20 22.5 0.0 0.075 \n",
"2006-04-21 22.5 0.0 0.075 \n",
"2006-04-24 22.5 0.0 0.075 \n",
"2006-04-25 22.5 0.0 0.050 \n",
"\n",
" callsS_targetExpiration callsS_ExpDiff \\\n",
"2006-04-19 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-20 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-21 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-24 2006-05-19 2 days 00:00:00.000000000 \n",
"2006-04-25 2006-05-19 2 days 00:00:00.000000000 \n",
"\n",
" callsS_mid_underlying callsS_futures callsS_entry callsS_exit \\\n",
"2006-04-19 11.32 22.5 False False \n",
"2006-04-20 11.64 12.5 False False \n",
"2006-04-21 11.59 12.5 False False \n",
"2006-04-24 11.75 12.5 False False \n",
"2006-04-25 11.76 12.5 False False \n",
"\n",
" put_quote_date put_expiration put_strike put_trade_volume \\\n",
"2006-04-19 2006-04-19 2006-05-17 22.5 0.0 \n",
"2006-04-20 2006-04-20 2006-05-17 22.5 0.0 \n",
"2006-04-21 2006-04-21 2006-05-17 22.5 0.0 \n",
"2006-04-24 2006-04-24 2006-05-17 22.5 20.0 \n",
"2006-04-25 2006-04-25 2006-05-17 22.5 0.0 \n",
"\n",
" put_price put_targetExpiration put_ExpDiff \\\n",
"2006-04-19 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-20 12.55 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-21 12.35 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-24 12.45 2006-11-05 172 days 00:00:00.000000000 \n",
"2006-04-25 9.90 2006-11-05 172 days 00:00:00.000000000 \n",
"\n",
" put_mid_underlying futures put_entry put_exit quote_date \n",
"2006-04-19 11.32 22.5 False False 2006-04-19 \n",
"2006-04-20 11.64 12.5 False False 2006-04-20 \n",
"2006-04-21 11.59 12.5 False False 2006-04-21 \n",
"2006-04-24 11.75 12.5 False False 2006-04-24 \n",
"2006-04-25 11.76 12.5 False False 2006-04-25 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combined['quote_date'] = combined.index\n",
"combined.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:51.304629Z",
"start_time": "2018-09-12T13:59:51.167964Z"
},
"pixiedust": {
"displayParams": {}
}
},
"outputs": [],
"source": [
"#%%pixie_debugger\n",
"##BUY CALL\n",
"starting_capital = 100000.00\n",
"\n",
"put_allocation = 0.00\n",
"callsL_allocation = 0.0025\n",
"callsS_allocation = 0.01\n",
"\n",
"put_position = 0\n",
"put_position_value = 0\n",
"callsL_position = 0\n",
"callsL_position_value = 0\n",
"callsS_position = 0\n",
"callsS_position_value = 0\n",
"\n",
"short_proceeds = 0\n",
"cash = 0.00\n",
"equity_curve = 0\n",
"new_cash = 0.00\n",
"\n",
"money_management = 0 #money_magament: 1 for percentage of equity, 0 for same number of shares as the short call position\n",
"long_multiple = 1\n",
"temp_PnL = {}\n",
"\n",
"for i, row in enumerate(combined.itertuples(), 0):\n",
" #if i == 24: break\n",
" if i == 0: equity_curve = starting_capital\n",
"\n",
" if (row.callsL_entry == True and row.callsS_entry == True\n",
" and row.put_entry == True) or (i == 0):\n",
" if row.callsS_price > 0:\n",
" callsS_position = round(\n",
" (equity_curve * callsS_allocation) / row.callsS_price, 0)\n",
" else:\n",
" callsS_position = 0\n",
" callsS_position_value = callsS_position * row.callsS_price\n",
" short_proceeds = callsS_position_value\n",
" if money_management == 1:\n",
" if row.callsL_price > 0:\n",
" callsL_position = round(\n",
" (equity_curve * callsL_allocation) / row.callsL_price, 0)\n",
" else:\n",
" callsL_position = 0\n",
" else:\n",
" callsL_position = callsS_position * long_multiple\n",
"\n",
" callsL_position_value = callsL_position * row.callsL_price\n",
" if row.put_price > 0:\n",
" put_position = round(\n",
" (equity_curve * put_allocation) / row.put_price, 0)\n",
" else:\n",
" put_position = 0\n",
"\n",
" put_position_value = put_position * row.put_price\n",
"\n",
" cash = equity_curve - (\n",
" callsL_position_value + callsS_position_value + put_position_value)\n",
" equity_curve = callsL_position_value + callsS_position_value + put_position_value + cash\n",
"\n",
" temp_PnL[combined.index[i]] = [\n",
" i, row.callsL_price, callsL_position, callsL_position_value,\n",
" row.callsS_price, callsS_position, callsS_position_value,\n",
" row.put_price, put_position, put_position_value, cash, equity_curve\n",
" ]\n",
" #print(i, row.price, 'position', position, 'position_value',\n",
" #position_value, 'cash', cash, 'equity_curve', equity_curve)\n",
"\n",
" if (row.callsL_entry == False and row.callsS_entry == False\n",
" and row.put_entry == False) and (row.callsL_exit == False\n",
" and row.callsS_exit == False\n",
" and row.put_exit == False):\n",
" callsL_position_value = callsL_position * row.callsL_price\n",
" callsS_position_value = short_proceeds + (\n",
" short_proceeds - (callsS_position * row.callsS_price))\n",
" put_position_value = put_position * row.put_price\n",
" equity_curve = callsL_position_value + callsS_position_value + put_position_value + cash\n",
" temp_PnL[combined.index[i]] = [\n",
" i, row.callsL_price, callsL_position, callsL_position_value,\n",
" row.callsS_price, callsS_position, callsS_position_value,\n",
" row.put_price, put_position, put_position_value, cash, equity_curve\n",
" ]\n",
" if (row.callsL_exit == True and row.callsS_exit == True\n",
" and row.put_exit == True):\n",
" callsL_position_value = callsL_position * (\n",
" row.callsL_mid_underlying - row.callsL_strike)\n",
" if callsL_position_value < 0: callsL_position_value = 0\n",
" endVal=(row.callsL_mid_underlying - row.callsS_strike)*callsS_position\n",
" if endVal<0: endVal=0\n",
" callsS_position_value = short_proceeds + (short_proceeds - (endVal))\n",
" put_position_value = put_position * row.put_price\n",
" equity_curve = callsL_position_value + callsS_position_value + put_position_value + cash\n",
" temp_PnL[combined.index[i]] = [\n",
" i, row.callsL_price, callsL_position, callsL_position_value,\n",
" row.callsS_price, callsS_position, callsS_position_value,\n",
" row.put_price, put_position, put_position_value, cash, equity_curve\n",
" ]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:51.666662Z",
"start_time": "2018-09-12T13:59:51.308621Z"
}
},
"outputs": [],
"source": [
"PL = pd.DataFrame(temp_PnL).T.fillna(method='ffill')\n",
"PL.index.name = 'Date'\n",
"PL.columns = [\n",
" 'i', 'longCall_price', 'longCall_position', 'longCall_position_value', 'shortCall_price',\n",
" 'shortCall_position', 'shortCall_position_value',\n",
" 'put_price', 'put_position', 'put_position_value',\n",
" 'cash', 'equity_curve'\n",
"]\n",
"PL.to_csv('../data/Options/vixPnL.csv')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.354150Z",
"start_time": "2018-09-12T13:59:51.670628Z"
}
},
"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>i</th>\n",
" <th>longCall_price</th>\n",
" <th>longCall_position</th>\n",
" <th>longCall_position_value</th>\n",
" <th>shortCall_price</th>\n",
" <th>shortCall_position</th>\n",
" <th>shortCall_position_value</th>\n",
" <th>put_price</th>\n",
" <th>put_position</th>\n",
" <th>put_position_value</th>\n",
" <th>cash</th>\n",
" <th>equity_curve</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>2018-08-29</th>\n",
" <td>3101.0</td>\n",
" <td>0.200</td>\n",
" <td>493.0</td>\n",
" <td>98.600</td>\n",
" <td>2.100</td>\n",
" <td>493.0</td>\n",
" <td>1306.450</td>\n",
" <td>0.300</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>115665.855</td>\n",
" <td>117070.905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-08-30</th>\n",
" <td>3102.0</td>\n",
" <td>0.250</td>\n",
" <td>493.0</td>\n",
" <td>123.250</td>\n",
" <td>2.625</td>\n",
" <td>493.0</td>\n",
" <td>1047.625</td>\n",
" <td>0.275</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>115665.855</td>\n",
" <td>116836.730</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-08-31</th>\n",
" <td>3103.0</td>\n",
" <td>0.200</td>\n",
" <td>493.0</td>\n",
" <td>98.600</td>\n",
" <td>2.125</td>\n",
" <td>493.0</td>\n",
" <td>1294.125</td>\n",
" <td>0.325</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>115665.855</td>\n",
" <td>117058.580</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-09-04</th>\n",
" <td>3104.0</td>\n",
" <td>0.175</td>\n",
" <td>493.0</td>\n",
" <td>86.275</td>\n",
" <td>2.300</td>\n",
" <td>493.0</td>\n",
" <td>1207.850</td>\n",
" <td>0.300</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>115665.855</td>\n",
" <td>116959.980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-09-05</th>\n",
" <td>3105.0</td>\n",
" <td>0.200</td>\n",
" <td>493.0</td>\n",
" <td>98.600</td>\n",
" <td>2.625</td>\n",
" <td>493.0</td>\n",
" <td>1047.625</td>\n",
" <td>0.300</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>115665.855</td>\n",
" <td>116812.080</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" i longCall_price longCall_position \\\n",
"Date \n",
"2018-08-29 3101.0 0.200 493.0 \n",
"2018-08-30 3102.0 0.250 493.0 \n",
"2018-08-31 3103.0 0.200 493.0 \n",
"2018-09-04 3104.0 0.175 493.0 \n",
"2018-09-05 3105.0 0.200 493.0 \n",
"\n",
" longCall_position_value shortCall_price shortCall_position \\\n",
"Date \n",
"2018-08-29 98.600 2.100 493.0 \n",
"2018-08-30 123.250 2.625 493.0 \n",
"2018-08-31 98.600 2.125 493.0 \n",
"2018-09-04 86.275 2.300 493.0 \n",
"2018-09-05 98.600 2.625 493.0 \n",
"\n",
" shortCall_position_value put_price put_position \\\n",
"Date \n",
"2018-08-29 1306.450 0.300 0.0 \n",
"2018-08-30 1047.625 0.275 0.0 \n",
"2018-08-31 1294.125 0.325 0.0 \n",
"2018-09-04 1207.850 0.300 0.0 \n",
"2018-09-05 1047.625 0.300 0.0 \n",
"\n",
" put_position_value cash equity_curve \n",
"Date \n",
"2018-08-29 0.0 115665.855 117070.905 \n",
"2018-08-30 0.0 115665.855 116836.730 \n",
"2018-08-31 0.0 115665.855 117058.580 \n",
"2018-09-04 0.0 115665.855 116959.980 \n",
"2018-09-05 0.0 115665.855 116812.080 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"PL.tail()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.362145Z",
"start_time": "2018-09-12T13:59:53.357111Z"
}
},
"outputs": [],
"source": [
"#because the is_list_like is moved to pandas.api.types\n",
"pd.core.common.is_list_like = pd.api.types.is_list_like\n",
"import ffn"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.389055Z",
"start_time": "2018-09-12T13:59:53.366087Z"
}
},
"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>equity_curve</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2006-04-19</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" equity_curve\n",
"Date \n",
"2006-04-19 100000.0\n",
"2006-04-20 100000.0\n",
"2006-04-21 100000.0\n",
"2006-04-24 100000.0\n",
"2006-04-25 100000.0"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"option_series=PL[['equity_curve']].copy()\n",
"option_series.head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.412017Z",
"start_time": "2018-09-12T13:59:53.393013Z"
}
},
"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>Options</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2006-04-19</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-20</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-21</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-24</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006-04-25</th>\n",
" <td>100000.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Options\n",
"Date \n",
"2006-04-19 100000.0\n",
"2006-04-20 100000.0\n",
"2006-04-21 100000.0\n",
"2006-04-24 100000.0\n",
"2006-04-25 100000.0"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"option_series.rename(columns={'equity_curve': 'Options'}, inplace=True)\n",
"option_series.head()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.566580Z",
"start_time": "2018-09-12T13:59:53.420972Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#option_series=option_series[(option_series.index< '2009-01-01') & (option_series.index> '2008-09-01')]\n",
"#option_series=option_series[(option_series.index> '2008-12-01')]\n",
"ax = option_series.plot(logy=True)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.637358Z",
"start_time": "2018-09-12T13:59:53.575526Z"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAECCAYAAADq7fyyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFGlJREFUeJzt3X2UXHV9x/H3PkAwzZKFumqrULR4vtVq6QliUBOIFeWpPbRq2xyrKD5QaVRSU0UlmFipFg6gIA/2gIitolQQH2oD0dOKMUYjiNYo/Qa0NtVWD4kuJEaDIds/7l2YbCa7m8nMzvjj/Ton58z9ze/OfO5k9zN37tyZ7RsbG0OSVI7+bgeQJLWXxS5JhbHYJakwFrskFcZil6TCWOySVJjBbgeQOiEiXgucBRwAjAFfB87NzE1TrLcaeElmbo6IfwX+JjO/0/HAUhu5x67iRMRFwIuAP8zMpwJPBz4HrIuIJ0yx+vPHL2TmKZa6fhX1+QEllaQu7v8EDsvMn0647lKqV6mnAh+lKvFh4OLMvCoiPgi8AtgAnAKsAV6cmbdHxJnAG4AHgR8Dr8vMjRFxHXA/1ZPHYcB/AKdn5raIeAfwJ8ADwBbgFZn5f53cfgncY1d55gN3TSz12ueBBfXlQ4FjgEXA30bE0zPzjPq652bm/4yvFBF/ALy5Hj8KuB74ZET01VOOBk4CngIcAfxpRBwGLAWOycxnAKvrbFLHWewq0QF7GZ9Fdbwd4IrMHMvMHwC3AC+Y5PZOAm7IzHsBMvM64PFUJQ5wS2buyMxfAt+ietL4IfBN4Ov1oaFvZOYnW98kafosdpXmK8CTI+JxTa57LvDl+vLOhvF+qkMsezPAw08I4/p4+Ank5w3jY0BfZu4Cjqc6tLMFeE9EXDidDZD2l8WuomTmD4HLgI9GxOPHxyPiDKo3VC+oh06vxw+n2ltfVY8/yJ57/LcAiyNipOG2tgD37C1HRBxFdaz+rsx8N/AeqkM/UsdZ7CpOZr4V+DDwqYjYEBF3AycAz8rM/66nPTEi7qAq7TdkZtbjHwdui4inNdze56iK+d8i4tvAy6nOuNk1SYZvAv8M3B4RtwOvBN7Y1g2V9sKzYvSIExHfpz7bpctRpI5wj12SCuMeuyQVxj12SSqMxS5JhbHYJakwPfHtjvfeu3W3A/1z5sxi27Yd3YrTVC9mgt7MZabp6cVM0Ju5zNTcyMhQX7PxKYs9IgaAq4Gg+vDGGVSfuruO6lN2G4AlmbkrIlZQfcHSTmBpZq6PiCObzZ3sPgcHB6a3VTOoFzNBb+Yy0/T0YibozVxm2jfTORTzRwCZ+Rzg7cAl9b/lmbmQquRPi4h5VB+hng8sBq6o199jblu3QJK0mymLvf7iojPrxd+i+srSo4Hb6rFVVJ/qWwCsrr9YaRMwWH8Eu9lcSVKHTOsYe2bujIgPUX239IupPk49flx8KzAXOJjq+zOYMN7XZO5u5syZtdvLmoGBfoaHZ+/jpnRWL2aC3sxlpunpxUzQm7nMtG+m/eZpZr48Is4Bvgo8quGqIWCU6o8NDDUZ39VkbDcT34AYHp7N6Oj26UabEb2YCXozl5mmpxczQW/mMlNzIyNDTcenPBQTES+LiLfWi9upivr2iFhUj51M9Zdm1gInRkR//Y15/Zm5GbizyVxJUodMZ4/9E8AHI+KLVF9nuhS4C7g6Ig6sL9+YmQ9GxBpgHdUTxpJ6/WUT57Z5GyRJDaYs9sz8GfBnTa46vsnclcDKCWMbm82VJHWGnzyVpML0xCdPpV51zMVf7Np9f23ZcV27b/1qc49dkgpjsUtSYSx2SSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVxmKXpMJY7JJUGItdkgozONmVEXEAcC1wBDALOB/4AfAZ4O562lWZeUNErABOBXYCSzNzfUQcCVwHjAEbgCWZuasD2yFJqk21x/5SYEtmLgROBi4H5gGXZOai+t8NETEPOB6YDywGrqjXvwRYXq/fB5zWiY2QJD1s0j124OPAjQ3LO4GjgYiI06j22pcCC4DVmTkGbIqIwYgYqefeVq+7CngBcHMb80uSJpi02DNzG0BEDFEV/HKqQzLXZOYdEXEusAIYBbY0rLoVmAv01WXfOLaHOXNmMTg48NDywEA/w8OzW9qgTunFTNCbuczUHt3K24uPlZn2zVR77ETEYVR72Vdm5vURMZyZo/XVNwPvAz4FDDWsNkRV9ruajO1h27Yduy0PD89mdHT7dLdhRvRiJujNXGZqj27l7cXHykzNjYwMNR2f9Bh7RDwWWA2ck5nX1sO3RsQz68vPA+4A1gInRkR/RBwO9GfmZuDOiFhUzz0ZWLNfWyFJmtJUe+xvAw4BzouI8+qxNwLvjYgHgB8BZ2bm/RGxBlhH9WSxpJ67DLg6Ig4E7mL34/WSpA6Y6hj72cDZTa56dpO5K4GVE8Y2Up0tI0maIX5ASZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVxmKXpMJY7JJUGItdkgpjsUtSYSx2SSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYUZnOzKiDgAuBY4ApgFnA98B7gOGAM2AEsyc1dErABOBXYCSzNzfUQc2WxuR7ZEkgRMvcf+UmBLZi4ETgYuBy4BltdjfcBpETEPOB6YDywGrqjX32Nu+zdBktRoqmL/OHBew/JO4Gjgtnp5FXACsABYnZljmbkJGIyIkb3MlSR10KSHYjJzG0BEDAE3AsuBizJzrJ6yFZgLHAxsaVh1fLyvydw9zJkzi8HBgYeWBwb6GR6evc8b00m9mAl6M5eZ2qNbeXvxsTLTvpm02AEi4jDgZuDKzLw+Ii5suHoIGAXury9PHN/VZGwP27bt2G15eHg2o6Pbp5N/xvRiJujNXGZqj27l7cXHykzNjYwMNR2f9FBMRDwWWA2ck5nX1sN3RsSi+vLJwBpgLXBiRPRHxOFAf2Zu3stcSVIHTbXH/jbgEOC8iBg/1n42cFlEHAjcBdyYmQ9GxBpgHdWTxZJ67jLg6sa57d4ASdLupjrGfjZVkU90fJO5K4GVE8Y2NpsrSeocP6AkSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVxmKXpMJY7JJUGItdkgpjsUtSYSx2SSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBVmcDqTImI+cEFmLoqIecBngLvrq6/KzBsiYgVwKrATWJqZ6yPiSOA6YAzYACzJzF3t3ghJ0sOmLPaIeDPwMuBn9dA84JLMvLhhzjzgeGA+cBhwE3AMcAmwPDO/EBHvB04Dbm7rFkiSdjOdPfbvAi8E/qlePhqIiDiNaq99KbAAWJ2ZY8CmiBiMiJF67m31equAF2CxS1JHTXmMPTNvAn7ZMLQeeFNmHgd8D1gBHAzc1zBnKzAX6KvLvnFMktRB0zrGPsHNmTk6fhl4H/ApYKhhzhAwCuxqMraHOXNmMTg48NDywEA/w8OzW4jWOb2YCXozl5nao1t5e/GxMtO+aaXYb42I12fmeuB5wB3AWuDCiLgIeALQn5mbI+LOiFiUmV8ATgb+vdkNbtu2Y7fl4eHZjI5ubyFa5/RiJujNXGZqj27l7cXHykzNjYwMNR1vpdjPAi6PiAeAHwFnZub9EbEGWEd1eGdJPXcZcHVEHAjcBdzYwv1JkvbBtIo9M78PHFtf/jrw7CZzVgIrJ4xtpDpbRpI0Q/yAkiQVxmKXpMJY7JJUGItdkgpjsUtSYSx2SSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVxmKXpMJY7JJUGItdkgozOJ1JETEfuCAzF0XEkcB1wBiwAViSmbsiYgVwKrATWJqZ6/c2t/2bIUkaN+Uee0S8GbgGOKgeugRYnpkLgT7gtIiYBxwPzAcWA1fsbW5740uSJprOoZjvAi9sWD4auK2+vAo4AVgArM7MsczcBAxGxMhe5kqSOmjKQzGZeVNEHNEw1JeZY/XlrcBc4GBgS8Oc8fFmc/cwZ84sBgcHHloeGOhneHj2dLdhRvRiJujNXGZqj27l7cXHykz7ZlrH2CdoPEY+BIwC99eXJ443m7uHbdt27LY8PDyb0dHtLUTrnF7MBL2Zy0zt0a28vfhYmam5kZGhpuOtnBVzZ0Qsqi+fDKwB1gInRkR/RBwO9Gfm5r3MlSR1UCt77MuAqyPiQOAu4MbMfDAi1gDrqJ4sluxtbhsyS5ImMa1iz8zvA8fWlzdSnQEzcc5KYOWEsaZzJUmd4weUJKkwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVxmKXpMJY7JJUGItdkgpjsUtSYSx2SSqMxS5JhbHYJakwFrskFcZil6TCWOySVJjBVleMiDuB++rF/wL+AbgU2Amszsx3REQ/cCVwFLADeHVm3rN/kSVJk2mp2CPiIIDMXNQw9g3gRcD3gM9GxDzgCOCgzHxWRBwLXAyctp+ZJUmTaHWP/ShgdkSsrm9jJTArM78LEBG3As8DfgO4BSAzvxIRz9jvxJKkSbVa7NuBi4BrgCcDq4DRhuu3Ak8CDubhwzUAD0bEYGbubLyxOXNmMTg48NDywEA/w8OzW4zWGb2YCXozl5nao1t5e/GxMtO+abXYNwL3ZOYYsDEi7gMObbh+iKroZ9eXx/VPLHWAbdt27LY8PDyb0dHtLUbrjF7MBL2Zy0zt0a28vfhYmam5kZGhpuOtnhXzSqrj5UTEb1IV+M8i4rcjog84EVgDrAVOqecdC3yrxfuTJE1Tq3vsHwCui4gvAWNURb8L+AgwQHVWzFcj4mvA8yPiy0AfcEYbMkuSJtFSsWfmA8BLmlx17IR5u4DXtnIfkqTW+AElSSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmEsdkkqjMUuSYWx2CWpMBa7JBXGYpekwljsklQYi12SCmOxS1JhLHZJKozFLkmFsdglqTAWuyQVpqU/Zi2p8465+Itdud+733lSV+5X7eMeuyQVxmKXpMJY7JJUGItdkgpjsUtSYSx2SSpMx093jIh+4ErgKGAH8OrMvKfT9ytJj1Qzscf+x8BBmfks4C3AxTNwn5L0iDUTH1BaANwCkJlfiYhnzMB9qjDd+rCO9Kuob2xsrKN3EBHXADdl5qp6eRPwpMzc2dE7lqRHqJk4FHM/MNR4n5a6JHXOTBT7WuAUgIg4FvjWDNynJD1izcQx9puB50fEl4E+4IwZuE9JesTq+DH2vYmIRwEfBh4DbAVenpn3Npl3JPDJzHxavfxo4HrgUcD/Amdk5vaZyhQRK4BTgZ3A0sxcHxG/D7y/HttIdUrnri5negxwNXAIMACcnpnfbUem/cnVcN1LgNfXZ0t1NVP9//c+4EGqU3JPz8wf72eWSU/zjYjXAH9Z5zg/M/+lkz/b+5HpcOBaqp3APuDMzMxuZmq47jjgI5l5WLvy7E+uiPg14CrgicCBVD/f6/e48RnQzQ8onQV8KzMXAv8ILJ84ISJeBnwMeHTD8NuB6+v17qR6cGckU0TMA44H5gOLgSvqq1YAf5uZC4BZVMXR7UwXUv3QH1ev8zttzLQ/uaiL9FVURdELmS6l+iVcBHwCOKcNWfZ6mm9EPA54A/Ac4ETg3RExi87+bLea6Z3A5fVj8y7g3T2QiYg4DFgGHNDmPPuT603Ahvr/7zVAdCjblLpZ7A+dBgmsAk5oMuenVL+I+7pepzItAFZn5lhmbgIGI2KE6pfw0Ijoo3qj+Jc9kOk5wBMi4vPAXwBfaGOmlnNFxK8Dfw8sbXOeljMBizPzG/WcQeAX7cySmV8BGk/zfSawNjN3ZOZ9wD3A700jfzcyLQM+W89p12OzX5ki4iCqV8h/1eYs+5WLquQfiIhbgfOAWzuYb1Iz8oc2IuJVwF9PGP4xcF99eSswd+J64y+7InZ74jt4qvU6mOlgYEvD8vicu6n2/pbX63+hBzIdAfw0M0+IiLdT7YW+vcu5DgUuqG/r561k6UCmueMvsSPi2cDrgOP2J1vDfd3XsPxgRAzWZ4RNvG48a1t+ttuZKTM3A0T1S3gR1Z5sVzMBlwMXZeYPJ3RDt3M9GjgkM0+MiNOpHq/TOxVwMjNS7Jn5AeADjWMR8QkePg1yCBid5s2Nnz75831crx2ZJp66OT7nUmBhZn47IpZQvWxb0uVMW4BP12OfAf5uX/N0INdc4MlUxyEPAp4aEe/NzH3ee2/zY0VE/DlwLnBqs/d6WjDZab57y9GWn+02ZyIinkt1vPll7Ty+3mKmB4CFwJH1+yWHRsTHMnNxl3M1+517S5szTVs3D8U8dBokcDKwpsPrteO21wInRkR//aZSf71H8xOq/2yo3vQ6pAcyfalhveOAb7cxU6u51mfm79bHaxcD32ml1NucaXNEvJRqT31RZn6v3VmanOa7HlgYEQdFxFzgKcCGaeSf8Ux1qV8KnJSZt7c5TyuZ1mdmZOai+ufoJx0o9VZybaDzv3PT1s2/eXoV8KGI+BLVs/BLACLiQuDGSd5NPr9e7zXA5vH1ZipTRKwB1lE9KY7vlb8a+FhE7KzXe00PZFoGXBMRZ1G9bGzn47Q/uTppnzNFxABwGbAJ+ET90v62zFyxn1n2OM03It4I3JOZn46Iy6iKux84NzN/ERGd/NluNdN7qc7w+FD92GRmtvNN3X3O1Mb7bmuuiHgX1e/cOqr32bpyGAa6eLqjJKkz/D52SSqMxS5JhbHYJakwFrskFcZil6TCWOySVBiLXZIKY7FLUmH+Hw17xEWVImJAAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"returns = option_series.to_returns().dropna()\n",
"ax = returns.hist()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"ExecuteTime": {
"end_time": "2018-09-12T13:59:53.797930Z",
"start_time": "2018-09-12T13:59:53.640352Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stat Options\n",
"------------------- ----------\n",
"Start 2006-04-19\n",
"End 2018-09-05\n",
"Risk-free rate 0.00%\n",
"\n",
"Total Return 16.81%\n",
"Daily Sharpe 0.24\n",
"Daily Sortino 0.32\n",
"CAGR 1.26%\n",
"Max Drawdown -17.52%\n",
"Calmar Ratio 0.07\n",
"\n",
"MTD -0.21%\n",
"3m 1.61%\n",
"6m 4.37%\n",
"YTD -4.46%\n",
"1Y -2.22%\n",
"3Y (ann.) 1.75%\n",
"5Y (ann.) 0.86%\n",
"10Y (ann.) 0.79%\n",
"Since Incep. (ann.) 1.26%\n",
"\n",
"Daily Sharpe 0.24\n",
"Daily Sortino 0.32\n",
"Daily Mean (ann.) 1.47%\n",
"Daily Vol (ann.) 6.23%\n",
"Daily Skew -3.18\n",
"Daily Kurt 152.47\n",
"Best Day 6.93%\n",
"Worst Day -9.41%\n",
"\n",
"Monthly Sharpe 0.23\n",
"Monthly Sortino 0.27\n",
"Monthly Mean (ann.) 1.47%\n",
"Monthly Vol (ann.) 6.40%\n",
"Monthly Skew -4.33\n",
"Monthly Kurt 27.36\n",
"Best Month 2.85%\n",
"Worst Month -14.25%\n",
"\n",
"Yearly Sharpe 0.21\n",
"Yearly Sortino 0.34\n",
"Yearly Mean 1.23%\n",
"Yearly Vol 5.77%\n",
"Yearly Skew -1.01\n",
"Yearly Kurt 1.59\n",
"Best Year 8.17%\n",
"Worst Year -12.18%\n",
"\n",
"Avg. Drawdown -1.02%\n",
"Avg. Drawdown Days 45.43\n",
"Avg. Up Month 0.83%\n",
"Avg. Down Month -1.58%\n",
"Win Year % 75.00%\n",
"Win 12m % 69.78%\n"
]
}
],
"source": [
"stats = option_series.calc_stats()\n",
"stats.display()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.5"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"position": {
"height": "416px",
"left": "1163px",
"right": "20px",
"top": "127px",
"width": "356px"
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment