{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "0% [██████████████████████████████] 100% | ETA: 00:00:00\n", "Total time elapsed: 00:00:00\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
total capitalcashVTIVEUBNDVNQDBCoptions qtycalls capitalputs capitalstocks qtyoptions capitalstocks capital% changeaccumulated return
2014-12-141000000.0000001000000.000000NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2015-01-02964109.713884-20071.346493201294.434010199500.085077194650.276734202603.740636186132.5239212.00.080.023291.080.0984181.060377-0.0358900.964110
2015-01-05955268.364042-20071.346493197835.636144195098.090912195215.504398203712.615403183477.8636782.00.0150.023291.0150.0975339.710535-0.0091700.955268
2015-01-06952427.771297-20071.346493195897.188989193345.840807195780.732062205733.231644181742.1242892.00.0160.023291.0160.0972499.117790-0.0029740.952428
2015-01-07959050.963830-20071.346493198234.728206195482.731179195898.487825208887.364312180618.9988022.00.0130.023291.0130.0979122.3103230.0069540.959051
2015-01-08966480.074540-20071.346493201731.534839198217.950854195592.322840209675.897479181333.7150212.00.0330.023291.0330.0986551.4210340.0077460.966480
2015-01-09963818.481599-20071.346493200059.149058197106.767861195922.038978209774.464125181027.4080702.00.0330.023291.0330.0983889.828092-0.0027540.963818
2015-01-12959459.914778-20071.346493198633.820267196294.749519196181.101657211376.172121177045.4177062.00.0330.023291.0330.0979531.261271-0.0045220.959460
2015-01-13959225.606153-20071.346493198177.715054197363.194705196369.510878211055.830522176330.7014872.00.0150.023291.0150.0979296.952646-0.0002440.959226
2015-01-14961583.974613-20071.346493197094.465173196593.914172196816.982779212879.313471178270.6455112.00.0150.023291.0150.0981655.3211060.0024590.961584
2015-01-15959741.680990-20071.346493195099.004866197833.310587197688.375427213372.146701175820.1899022.00.0170.023291.0170.0979813.027483-0.0019160.959742
2015-01-16969134.437588-20071.346493197683.411030200012.938766197099.596611215220.271311179189.5663642.00.0270.023291.0270.0989205.7840810.0097870.969134
2015-01-20965270.691803-20071.346493197968.666832200226.627803196887.636237213519.996669176739.1107552.00.0130.023291.0130.0985342.038296-0.0039870.965271
2015-01-21968728.294063-20071.346493198861.872874202192.566945196510.817794213372.146701177862.2362432.00.0300.023291.0300.0988799.6405560.0035820.968728
2015-01-22976840.790089-20071.346493201883.569910203645.652397196557.920099217166.962568177658.0316082.00.0300.023291.0300.0996912.1365820.0083740.976841
2015-01-23973628.635153-20071.346493200971.359484202448.993789197193.801221216550.921031176534.9061212.00.0300.023291.0300.0993699.981647-0.0032880.973629
2015-01-26977406.124705-20071.346493201807.552374204414.932931196958.289695218374.403980175922.2922192.00.060.023291.060.0997477.4711990.0038800.977406
2015-01-27976074.707092-20071.346493199451.008774204329.457316197076.045458218448.328964176841.2130732.00.0280.023291.0280.0996146.053585-0.0013620.976075
2015-01-28967255.507918-20071.346493196752.386263201508.762026197782.580038216994.470937174288.6551472.00.0280.023291.0280.0987326.854411-0.0090350.967256
2015-01-29970837.993659-20071.346493198633.820267203474.701168197570.619664217758.362443173471.8366112.00.0280.023291.0280.0990909.3401520.0037040.970838
2015-01-30965676.063416-20071.346493195935.197757200226.627803198653.972686213273.580055177658.0316082.00.0280.023291.0280.0985747.409909-0.0053170.965676
2015-02-02943421.397474301.521937188578.258444188632.490894188611.975949188637.365685188659.78456566.0200.013220.022863.013420.0943119.875537-0.0230460.943421
2015-02-03955551.600831301.521937191472.227497191572.424409188028.732446190276.360406193900.33413666.00.07320.022863.07320.0955250.0788930.0128580.955552
2015-02-04948335.526279301.521937190802.997153190022.999989188096.029774189489.642940189622.33448666.00.08600.022863.08600.0948034.004342-0.0075520.948336
2015-02-05957213.410059301.521937192901.124717192367.001035187692.245810191762.382285192189.13427566.00.07000.022863.07000.0956911.8881220.0093620.957213
2015-02-06947842.787062301.521937192322.330906189824.355833186480.893919186189.800236192723.88423166.00.08290.022863.08290.0947541.265125-0.0097890.947843
2015-02-09946914.291746301.521937191363.703658189307.881026186413.596591184878.604460194648.98407466.00.013090.022863.013090.0946612.769809-0.0009800.946914
2015-02-10947853.287460301.521937193317.132769190499.745964186077.109955185468.642559192189.13427566.00.08290.022863.08290.0947551.7655220.0009920.947853
2015-02-11944827.414097301.521937193407.569301189427.067520186077.109955184922.310985190691.83439866.00.07970.022863.07970.0944525.892160-0.0031920.944827
2015-02-12955013.543436301.521937195270.561880192565.645191186166.839725187129.490542193579.48416266.00.06370.022863.06370.0954712.0214990.0107810.955014
2015-02-13957753.923767301.521937196193.014516193916.425454185740.623318185883.854555195718.48398766.00.05730.022863.05730.0957452.4018300.0028690.957754
2015-02-17957485.643655301.521937196500.498727194432.900261185000.352718185424.936033195825.43397866.00.05730.022863.05730.0957184.121717-0.0002800.957486
2015-02-18958278.198260301.521937196609.022567195227.476886185516.298894187151.343805193472.53417166.00.05730.022863.05730.0957976.6763230.0008280.958278
2015-02-19953245.293590301.521937196554.760647195068.561561185359.271797183130.343425192830.83422266.00.06050.022863.06050.0952943.771652-0.0052520.953245
2015-02-20957163.017112301.521937197658.086349196816.630137185404.136682184900.457723192082.18428466.00.05090.022863.05090.0956861.4951750.0041100.957163
2015-02-23956735.682530301.521937197639.999042195823.409355185785.488203186386.479602190798.78438966.00.05180.022863.05180.0956434.160592-0.0004460.956736
2015-02-24955816.407980301.521937198092.181707197253.647281186548.191246182715.131429190905.73438066.00.03460.022863.03460.0955514.886043-0.0009610.955816
2015-02-25958974.061077301.521937198019.832480197372.833775186727.650785182758.837955193793.38414566.00.03250.022863.03250.0958672.5391400.0033040.958974
2015-02-26954301.589814301.521937197893.221334196935.816631186211.704609180770.191027192189.13427566.00.03260.022863.03260.0954000.067877-0.0048720.954302
2015-02-27957392.131534301.521937197187.816378197015.274294186368.731706182190.653118194328.13410166.00.03240.022863.03240.0957090.6095970.0032390.957392
2015-03-02999472.40529131660.297797193519.352851193583.644762193537.947483193570.626312193600.53608665.010000.011600.023108.021600.0967812.1074940.0439530.999472
2015-03-03998093.62940431660.297797192725.445396192413.247877193303.781787193201.260776194789.59577165.00.02240.023108.02240.0966433.331607-0.0013800.998094
2015-03-04992921.71747531660.297797191949.180329191593.970058193303.781787191354.433095193060.05441165.00.02245.023108.02245.0961261.419679-0.0051820.992922
2015-03-05993214.12133531660.297797192249.100923191671.996517193420.864635191908.481399192303.38006565.00.02045.023108.02045.0961553.8235390.0002940.993214
2015-03-06978101.57740531660.297797189585.100350189097.123370192296.869296185536.925900189925.26069465.00.02045.023108.02045.0946441.279609-0.0152160.978102
2015-03-09980056.44554631660.297797190290.795866189175.149829192531.034991187014.388045189384.77901965.00.04805.023108.04805.0948396.1477490.0019990.980056
2015-03-10971230.32050731660.297797187397.444251185117.773961193280.365217186875.875968186898.56331265.00.02565.023108.02565.0939570.022710-0.0090060.971230
2015-03-11972980.58018131660.297797187256.305148185663.959174193491.114344187037.473391187871.43032865.00.01925.023108.01925.0941320.2823840.0018020.972981
2015-03-12979925.48145931660.297797189602.742738187731.660338193631.613761190292.507178187006.65964765.00.0645.023108.0645.0948265.1836620.0071380.979925
\n", "
" ], "text/plain": [ " total capital cash VTI VEU \\\n", "2014-12-14 1000000.000000 1000000.000000 NaN NaN \n", "2015-01-02 964109.713884 -20071.346493 201294.434010 199500.085077 \n", "2015-01-05 955268.364042 -20071.346493 197835.636144 195098.090912 \n", "2015-01-06 952427.771297 -20071.346493 195897.188989 193345.840807 \n", "2015-01-07 959050.963830 -20071.346493 198234.728206 195482.731179 \n", "2015-01-08 966480.074540 -20071.346493 201731.534839 198217.950854 \n", "2015-01-09 963818.481599 -20071.346493 200059.149058 197106.767861 \n", "2015-01-12 959459.914778 -20071.346493 198633.820267 196294.749519 \n", "2015-01-13 959225.606153 -20071.346493 198177.715054 197363.194705 \n", "2015-01-14 961583.974613 -20071.346493 197094.465173 196593.914172 \n", "2015-01-15 959741.680990 -20071.346493 195099.004866 197833.310587 \n", "2015-01-16 969134.437588 -20071.346493 197683.411030 200012.938766 \n", "2015-01-20 965270.691803 -20071.346493 197968.666832 200226.627803 \n", "2015-01-21 968728.294063 -20071.346493 198861.872874 202192.566945 \n", "2015-01-22 976840.790089 -20071.346493 201883.569910 203645.652397 \n", "2015-01-23 973628.635153 -20071.346493 200971.359484 202448.993789 \n", "2015-01-26 977406.124705 -20071.346493 201807.552374 204414.932931 \n", "2015-01-27 976074.707092 -20071.346493 199451.008774 204329.457316 \n", "2015-01-28 967255.507918 -20071.346493 196752.386263 201508.762026 \n", "2015-01-29 970837.993659 -20071.346493 198633.820267 203474.701168 \n", "2015-01-30 965676.063416 -20071.346493 195935.197757 200226.627803 \n", "2015-02-02 943421.397474 301.521937 188578.258444 188632.490894 \n", "2015-02-03 955551.600831 301.521937 191472.227497 191572.424409 \n", "2015-02-04 948335.526279 301.521937 190802.997153 190022.999989 \n", "2015-02-05 957213.410059 301.521937 192901.124717 192367.001035 \n", "2015-02-06 947842.787062 301.521937 192322.330906 189824.355833 \n", "2015-02-09 946914.291746 301.521937 191363.703658 189307.881026 \n", "2015-02-10 947853.287460 301.521937 193317.132769 190499.745964 \n", "2015-02-11 944827.414097 301.521937 193407.569301 189427.067520 \n", "2015-02-12 955013.543436 301.521937 195270.561880 192565.645191 \n", "2015-02-13 957753.923767 301.521937 196193.014516 193916.425454 \n", "2015-02-17 957485.643655 301.521937 196500.498727 194432.900261 \n", "2015-02-18 958278.198260 301.521937 196609.022567 195227.476886 \n", "2015-02-19 953245.293590 301.521937 196554.760647 195068.561561 \n", "2015-02-20 957163.017112 301.521937 197658.086349 196816.630137 \n", "2015-02-23 956735.682530 301.521937 197639.999042 195823.409355 \n", "2015-02-24 955816.407980 301.521937 198092.181707 197253.647281 \n", "2015-02-25 958974.061077 301.521937 198019.832480 197372.833775 \n", "2015-02-26 954301.589814 301.521937 197893.221334 196935.816631 \n", "2015-02-27 957392.131534 301.521937 197187.816378 197015.274294 \n", "2015-03-02 999472.405291 31660.297797 193519.352851 193583.644762 \n", "2015-03-03 998093.629404 31660.297797 192725.445396 192413.247877 \n", "2015-03-04 992921.717475 31660.297797 191949.180329 191593.970058 \n", "2015-03-05 993214.121335 31660.297797 192249.100923 191671.996517 \n", "2015-03-06 978101.577405 31660.297797 189585.100350 189097.123370 \n", "2015-03-09 980056.445546 31660.297797 190290.795866 189175.149829 \n", "2015-03-10 971230.320507 31660.297797 187397.444251 185117.773961 \n", "2015-03-11 972980.580181 31660.297797 187256.305148 185663.959174 \n", "2015-03-12 979925.481459 31660.297797 189602.742738 187731.660338 \n", "\n", " BND VNQ DBC options qty \\\n", "2014-12-14 NaN NaN NaN NaN \n", "2015-01-02 194650.276734 202603.740636 186132.523921 2.0 \n", "2015-01-05 195215.504398 203712.615403 183477.863678 2.0 \n", "2015-01-06 195780.732062 205733.231644 181742.124289 2.0 \n", "2015-01-07 195898.487825 208887.364312 180618.998802 2.0 \n", "2015-01-08 195592.322840 209675.897479 181333.715021 2.0 \n", "2015-01-09 195922.038978 209774.464125 181027.408070 2.0 \n", "2015-01-12 196181.101657 211376.172121 177045.417706 2.0 \n", "2015-01-13 196369.510878 211055.830522 176330.701487 2.0 \n", "2015-01-14 196816.982779 212879.313471 178270.645511 2.0 \n", "2015-01-15 197688.375427 213372.146701 175820.189902 2.0 \n", "2015-01-16 197099.596611 215220.271311 179189.566364 2.0 \n", "2015-01-20 196887.636237 213519.996669 176739.110755 2.0 \n", "2015-01-21 196510.817794 213372.146701 177862.236243 2.0 \n", "2015-01-22 196557.920099 217166.962568 177658.031608 2.0 \n", "2015-01-23 197193.801221 216550.921031 176534.906121 2.0 \n", "2015-01-26 196958.289695 218374.403980 175922.292219 2.0 \n", "2015-01-27 197076.045458 218448.328964 176841.213073 2.0 \n", "2015-01-28 197782.580038 216994.470937 174288.655147 2.0 \n", "2015-01-29 197570.619664 217758.362443 173471.836611 2.0 \n", "2015-01-30 198653.972686 213273.580055 177658.031608 2.0 \n", "2015-02-02 188611.975949 188637.365685 188659.784565 66.0 \n", "2015-02-03 188028.732446 190276.360406 193900.334136 66.0 \n", "2015-02-04 188096.029774 189489.642940 189622.334486 66.0 \n", "2015-02-05 187692.245810 191762.382285 192189.134275 66.0 \n", "2015-02-06 186480.893919 186189.800236 192723.884231 66.0 \n", "2015-02-09 186413.596591 184878.604460 194648.984074 66.0 \n", "2015-02-10 186077.109955 185468.642559 192189.134275 66.0 \n", "2015-02-11 186077.109955 184922.310985 190691.834398 66.0 \n", "2015-02-12 186166.839725 187129.490542 193579.484162 66.0 \n", "2015-02-13 185740.623318 185883.854555 195718.483987 66.0 \n", "2015-02-17 185000.352718 185424.936033 195825.433978 66.0 \n", "2015-02-18 185516.298894 187151.343805 193472.534171 66.0 \n", "2015-02-19 185359.271797 183130.343425 192830.834222 66.0 \n", "2015-02-20 185404.136682 184900.457723 192082.184284 66.0 \n", "2015-02-23 185785.488203 186386.479602 190798.784389 66.0 \n", "2015-02-24 186548.191246 182715.131429 190905.734380 66.0 \n", "2015-02-25 186727.650785 182758.837955 193793.384145 66.0 \n", "2015-02-26 186211.704609 180770.191027 192189.134275 66.0 \n", "2015-02-27 186368.731706 182190.653118 194328.134101 66.0 \n", "2015-03-02 193537.947483 193570.626312 193600.536086 65.0 \n", "2015-03-03 193303.781787 193201.260776 194789.595771 65.0 \n", "2015-03-04 193303.781787 191354.433095 193060.054411 65.0 \n", "2015-03-05 193420.864635 191908.481399 192303.380065 65.0 \n", "2015-03-06 192296.869296 185536.925900 189925.260694 65.0 \n", "2015-03-09 192531.034991 187014.388045 189384.779019 65.0 \n", "2015-03-10 193280.365217 186875.875968 186898.563312 65.0 \n", "2015-03-11 193491.114344 187037.473391 187871.430328 65.0 \n", "2015-03-12 193631.613761 190292.507178 187006.659647 65.0 \n", "\n", " calls capital puts capital stocks qty options capital \\\n", "2014-12-14 NaN NaN NaN NaN \n", "2015-01-02 0.0 80.0 23291.0 80.0 \n", "2015-01-05 0.0 150.0 23291.0 150.0 \n", "2015-01-06 0.0 160.0 23291.0 160.0 \n", "2015-01-07 0.0 130.0 23291.0 130.0 \n", "2015-01-08 0.0 330.0 23291.0 330.0 \n", "2015-01-09 0.0 330.0 23291.0 330.0 \n", "2015-01-12 0.0 330.0 23291.0 330.0 \n", "2015-01-13 0.0 150.0 23291.0 150.0 \n", "2015-01-14 0.0 150.0 23291.0 150.0 \n", "2015-01-15 0.0 170.0 23291.0 170.0 \n", "2015-01-16 0.0 270.0 23291.0 270.0 \n", "2015-01-20 0.0 130.0 23291.0 130.0 \n", "2015-01-21 0.0 300.0 23291.0 300.0 \n", "2015-01-22 0.0 300.0 23291.0 300.0 \n", "2015-01-23 0.0 300.0 23291.0 300.0 \n", "2015-01-26 0.0 60.0 23291.0 60.0 \n", "2015-01-27 0.0 280.0 23291.0 280.0 \n", "2015-01-28 0.0 280.0 23291.0 280.0 \n", "2015-01-29 0.0 280.0 23291.0 280.0 \n", "2015-01-30 0.0 280.0 23291.0 280.0 \n", "2015-02-02 200.0 13220.0 22863.0 13420.0 \n", "2015-02-03 0.0 7320.0 22863.0 7320.0 \n", "2015-02-04 0.0 8600.0 22863.0 8600.0 \n", "2015-02-05 0.0 7000.0 22863.0 7000.0 \n", "2015-02-06 0.0 8290.0 22863.0 8290.0 \n", "2015-02-09 0.0 13090.0 22863.0 13090.0 \n", "2015-02-10 0.0 8290.0 22863.0 8290.0 \n", "2015-02-11 0.0 7970.0 22863.0 7970.0 \n", "2015-02-12 0.0 6370.0 22863.0 6370.0 \n", "2015-02-13 0.0 5730.0 22863.0 5730.0 \n", "2015-02-17 0.0 5730.0 22863.0 5730.0 \n", "2015-02-18 0.0 5730.0 22863.0 5730.0 \n", "2015-02-19 0.0 6050.0 22863.0 6050.0 \n", "2015-02-20 0.0 5090.0 22863.0 5090.0 \n", "2015-02-23 0.0 5180.0 22863.0 5180.0 \n", "2015-02-24 0.0 3460.0 22863.0 3460.0 \n", "2015-02-25 0.0 3250.0 22863.0 3250.0 \n", "2015-02-26 0.0 3260.0 22863.0 3260.0 \n", "2015-02-27 0.0 3240.0 22863.0 3240.0 \n", "2015-03-02 10000.0 11600.0 23108.0 21600.0 \n", "2015-03-03 0.0 2240.0 23108.0 2240.0 \n", "2015-03-04 0.0 2245.0 23108.0 2245.0 \n", "2015-03-05 0.0 2045.0 23108.0 2045.0 \n", "2015-03-06 0.0 2045.0 23108.0 2045.0 \n", "2015-03-09 0.0 4805.0 23108.0 4805.0 \n", "2015-03-10 0.0 2565.0 23108.0 2565.0 \n", "2015-03-11 0.0 1925.0 23108.0 1925.0 \n", "2015-03-12 0.0 645.0 23108.0 645.0 \n", "\n", " stocks capital % change accumulated return \n", "2014-12-14 NaN NaN NaN \n", "2015-01-02 984181.060377 -0.035890 0.964110 \n", "2015-01-05 975339.710535 -0.009170 0.955268 \n", "2015-01-06 972499.117790 -0.002974 0.952428 \n", "2015-01-07 979122.310323 0.006954 0.959051 \n", "2015-01-08 986551.421034 0.007746 0.966480 \n", "2015-01-09 983889.828092 -0.002754 0.963818 \n", "2015-01-12 979531.261271 -0.004522 0.959460 \n", "2015-01-13 979296.952646 -0.000244 0.959226 \n", "2015-01-14 981655.321106 0.002459 0.961584 \n", "2015-01-15 979813.027483 -0.001916 0.959742 \n", "2015-01-16 989205.784081 0.009787 0.969134 \n", "2015-01-20 985342.038296 -0.003987 0.965271 \n", "2015-01-21 988799.640556 0.003582 0.968728 \n", "2015-01-22 996912.136582 0.008374 0.976841 \n", "2015-01-23 993699.981647 -0.003288 0.973629 \n", "2015-01-26 997477.471199 0.003880 0.977406 \n", "2015-01-27 996146.053585 -0.001362 0.976075 \n", "2015-01-28 987326.854411 -0.009035 0.967256 \n", "2015-01-29 990909.340152 0.003704 0.970838 \n", "2015-01-30 985747.409909 -0.005317 0.965676 \n", "2015-02-02 943119.875537 -0.023046 0.943421 \n", "2015-02-03 955250.078893 0.012858 0.955552 \n", "2015-02-04 948034.004342 -0.007552 0.948336 \n", "2015-02-05 956911.888122 0.009362 0.957213 \n", "2015-02-06 947541.265125 -0.009789 0.947843 \n", "2015-02-09 946612.769809 -0.000980 0.946914 \n", "2015-02-10 947551.765522 0.000992 0.947853 \n", "2015-02-11 944525.892160 -0.003192 0.944827 \n", "2015-02-12 954712.021499 0.010781 0.955014 \n", "2015-02-13 957452.401830 0.002869 0.957754 \n", "2015-02-17 957184.121717 -0.000280 0.957486 \n", "2015-02-18 957976.676323 0.000828 0.958278 \n", "2015-02-19 952943.771652 -0.005252 0.953245 \n", "2015-02-20 956861.495175 0.004110 0.957163 \n", "2015-02-23 956434.160592 -0.000446 0.956736 \n", "2015-02-24 955514.886043 -0.000961 0.955816 \n", "2015-02-25 958672.539140 0.003304 0.958974 \n", "2015-02-26 954000.067877 -0.004872 0.954302 \n", "2015-02-27 957090.609597 0.003239 0.957392 \n", "2015-03-02 967812.107494 0.043953 0.999472 \n", "2015-03-03 966433.331607 -0.001380 0.998094 \n", "2015-03-04 961261.419679 -0.005182 0.992922 \n", "2015-03-05 961553.823539 0.000294 0.993214 \n", "2015-03-06 946441.279609 -0.015216 0.978102 \n", "2015-03-09 948396.147749 0.001999 0.980056 \n", "2015-03-10 939570.022710 -0.009006 0.971230 \n", "2015-03-11 941320.282384 0.001802 0.972981 \n", "2015-03-12 948265.183662 0.007138 0.979925 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from backtester import Backtest\n", "from backtester.strategy import Strategy, StrategyLeg\n", "from backtester.enums import Type, Direction, Stock\n", "from backtester.datahandler import HistoricalOptionsData, TiingoData\n", "# Cleaned up data\n", "options_data = HistoricalOptionsData(\n", " \"/Users/lambdaclass/options_backtester_copy/backtester/examples/options_data_clean_v2.h5\",\n", " key=\"/SPX\",\n", " where='quotedate >= \"2014-12-15\" & quotedate <= \"2015-03-15\"')\n", "\n", "options_data._data = options_data._data[(options_data._data['optionroot'] == \"SPX160617P00650000\")\n", " | (options_data._data['optionroot'] == \"SPX160617C00650000\")\n", " | (options_data._data['optionroot'] == \"SPX160617P00700000\")\n", " | (options_data._data['optionroot'] == \"SPX160617C00700000\")]\n", "\n", "schema = options_data.schema\n", "options_data._data.at[5857589, 'ask'] = 100 #SPX6500 call 2014-12-15\n", "options_data._data.at[5857589, 'bid'] = 0.5 #SPX6500 call 2014-12-15\n", "options_data._data.at[5857590, 'ask'] = 10 #SPX7000 call 2014-12-15\n", "options_data._data.at[5857590, 'bid'] = 0.5 #SPX7000 call 2014-12-15\n", "options_data._data.at[6045133, 'ask'] = 1 #SPX6500 put 2015-02-02\n", "options_data._data.at[6045133, 'bid'] = 0.5\n", "\n", "options_data._data.at[6045059, 'bid'] = 1 #SPX6500 call 2015-02-02\n", "options_data._data.at[6045060, 'ask'] = 1\n", "\n", "options_data._data.at[6151669, 'bid'] = 100 #SPX6500 call 2015-03-02\n", "options_data._data.at[6151743, 'bid'] = 100\n", "options_schema = options_data.schema\n", "put_otm = Strategy(options_schema)\n", "\n", "leg_1 = StrategyLeg(\"leg_1\", options_schema, option_type=Type.PUT, direction=Direction.BUY)\n", "leg_1.entry_filter = (options_schema.underlying == \"SPX\") & (options_schema.dte >= 60)\n", "leg_1.exit_filter = (options_schema.dte <= 30)\n", "\n", "leg_2 = StrategyLeg(\"leg_2\", options_schema, option_type=Type.CALL, direction=Direction.BUY)\n", "leg_2.entry_filter = (options_schema.underlying == \"SPX\") & (options_schema.dte >= 60)\n", "leg_2.exit_filter = (options_schema.dte <= 30)\n", "\n", "put_otm.add_legs([leg_1, leg_2])\n", "options_data.columns = [\n", " 'underlying', 'underlying_last', 'optionroot', 'type', 'expiration', 'quotedate', 'strike', 'last', 'bid', 'ask',\n", " 'volume', 'openinterest', 'impliedvol', 'delta', 'gamma', 'theta', 'vega', 'optionalias', 'dte'\n", "]\n", "options_data.quotedate = options_data.quotedate.dt.tz_localize(None)\n", "options_data._data.quotedate = options_data._data.quotedate.dt.tz_localize(None)\n", "\n", "allocation = {'cash': 0, 'stocks': 97, 'options': 3}\n", "\n", "bt = Backtest(allocation=allocation)\n", "\n", "#asset_data = HistoricalAssetData('/Users/lambdaclass/options_backtester_copy/data/ivy_5assets.csv')\n", "asset_data = TiingoData('/Users/lambdaclass/options_backtester_copy/data/ivy_5assets.csv')\n", "asset_data._data.date = asset_data._data.date.dt.tz_localize(None)\n", "asset_data.start_date = min(asset_data._data.date)\n", "asset_data.end_date = max(asset_data._data.date)\n", "VTI = Stock(\"VTI\", 0.2)\n", "VEU = Stock(\"VEU\", 0.2)\n", "BND = Stock(\"BND\", 0.2)\n", "VNQ = Stock(\"VNQ\", 0.2)\n", "DBC = Stock(\"DBC\", 0.2)\n", "bt.stocks = [VTI, VEU, BND, VNQ, DBC]\n", "asset_data._data = asset_data._data.query('date >= \"2014-12-15\" & date <= \"2015-03-15\"')\n", "bt.options_data = options_data\n", "bt._options_strategy = put_otm\n", "bt.stocks_data = asset_data\n", "bt.stocks_data.start_date = min(bt.stocks_data['date'])\n", "bt.stocks_data.end_date = max(bt.stocks_data['date'])\n", "\n", "bt.current_cash = 1_000_000\n", "bt.run(rebalance_freq=1)\n", "bt.balance\n", "\n", "# Exit thresholds: we exit if the loss or profit on the investment on an entry is greater than 25%.\n", "#put_otm.exit_thresholds = (0.25, 0.25)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
leg_1leg_2totals
contractunderlyingexpirationtypestrikecostordercontractunderlyingexpirationtypestrikecostordercostqtydate
0SPX160617P00650000SPX2016-06-17put650.0390.0Order.BTOSPX160617C00650000SPX2016-06-17call650.010000.0Order.BTO10390.02.02014-12-15
1SPX160617P00700000SPX2016-06-17put700.0350.0Order.BTOSPX160617C00700000SPX2016-06-17call700.0100.0Order.BTO450.064.02015-02-02
\n", "
" ], "text/plain": [ " leg_1 \\\n", " contract underlying expiration type strike cost order \n", "0 SPX160617P00650000 SPX 2016-06-17 put 650.0 390.0 Order.BTO \n", "1 SPX160617P00700000 SPX 2016-06-17 put 700.0 350.0 Order.BTO \n", "\n", " leg_2 \\\n", " contract underlying expiration type strike cost order \n", "0 SPX160617C00650000 SPX 2016-06-17 call 650.0 10000.0 Order.BTO \n", "1 SPX160617C00700000 SPX 2016-06-17 call 700.0 100.0 Order.BTO \n", "\n", " totals \n", " cost qty date \n", "0 10390.0 2.0 2014-12-15 \n", "1 450.0 64.0 2015-02-02 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bt.trade_log" ] } ], "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.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }