python-pour-finance/11-Quantopian-Avancé/01-Effet-de-Levier.ipynb

827 lines
325 KiB
Plaintext
Raw Normal View History

2023-08-21 15:12:19 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Effet de levier - Leverage\n",
"\n",
"N'oubliez pas de regarder la vidéo et les diapositives liées pour obtenir une explication complète !\n",
"\n",
"$ Leverage Ratio = \\frac{Debt + Capital Base}{Capital Base}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Effet de levier depuis l'Algorithme\n",
"\n",
"N'oubliez pas de regarder la vidéo pour cela ! En gros, lancez cette opération et prenez votre propre backtestid comme indiqué dans la vidéo. Plus d'infos :\n",
"\n",
"La fonction get_backtest donne un accès programmatique aux résultats des backtests effectués sur la plateforme Quantopian. Elle prend un seul paramètre, l'ID d'un backtest pour lequel on souhaite obtenir des résultats.\n",
"\n",
"Vous pouvez trouver l'ID d'un backtest dans l'URL de sa page de résultats complète, qui sera de la forme\n",
"\n",
"https://www.quantopian.com/algorithms/<algorithm_id>/<backtest_id>. \n",
"\n",
"Vous n'avez le droit de consulter que les backtests que soit :\n",
"\n",
"* 1) vous avez créé\n",
"* 2) sur lesquels vous collaborer"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"def initialize(context):\n",
" context.amzn = sid(16841)\n",
" context.ibm = sid(3766)\n",
" \n",
" schedule_function(rebalance,date_rules.every_day(),time_rules.market_open())\n",
" schedule_function(record_vars,date_rules.every_day(),time_rules.market_close())\n",
" \n",
"def rebalance(context,data):\n",
" order_target_percent(context.amzn,0.5)\n",
" order_target_percent(context.ibm,-0.5)\n",
" \n",
"def record_vars(context,data):\n",
" record(amzn_close=data.current(context.amzn,'close'))\n",
" record(ibm_close=data.current(context.ibm,'close'))\n",
" record(Leverage = context.account.leverage)\n",
" record(Exposure = context.account.net_leverage)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Info Backtest"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100% Time: 0:00:02|##########################################################|\n"
]
}
],
"source": [
"bt = get_backtest('5e99d5b574dcf245a1628f55')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'5e99d5b574dcf245a1628f55'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bt.algo_id"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Exposure</th>\n",
" <th>Leverage</th>\n",
" <th>amzn_close</th>\n",
" <th>ibm_close</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2016-08-04 00:00:00+00:00</th>\n",
" <td>0.003096</td>\n",
" <td>1.003300</td>\n",
" <td>760.960</td>\n",
" <td>161.410</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-05 00:00:00+00:00</th>\n",
" <td>-0.002652</td>\n",
" <td>1.007467</td>\n",
" <td>765.890</td>\n",
" <td>163.450</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-08 00:00:00+00:00</th>\n",
" <td>0.002615</td>\n",
" <td>0.994985</td>\n",
" <td>766.360</td>\n",
" <td>162.050</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-09 00:00:00+00:00</th>\n",
" <td>0.001590</td>\n",
" <td>0.996875</td>\n",
" <td>767.705</td>\n",
" <td>161.750</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-10 00:00:00+00:00</th>\n",
" <td>0.000042</td>\n",
" <td>0.998992</td>\n",
" <td>768.480</td>\n",
" <td>162.020</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-11 00:00:00+00:00</th>\n",
" <td>-0.002797</td>\n",
" <td>1.007279</td>\n",
" <td>771.410</td>\n",
" <td>163.465</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-12 00:00:00+00:00</th>\n",
" <td>0.005987</td>\n",
" <td>0.991420</td>\n",
" <td>772.520</td>\n",
" <td>161.970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-15 00:00:00+00:00</th>\n",
" <td>0.000702</td>\n",
" <td>0.993980</td>\n",
" <td>768.330</td>\n",
" <td>161.870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-16 00:00:00+00:00</th>\n",
" <td>-0.000795</td>\n",
" <td>0.997210</td>\n",
" <td>764.645</td>\n",
" <td>160.730</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-17 00:00:00+00:00</th>\n",
" <td>0.001646</td>\n",
" <td>0.996850</td>\n",
" <td>764.192</td>\n",
" <td>160.370</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-18 00:00:00+00:00</th>\n",
" <td>0.000044</td>\n",
" <td>1.001224</td>\n",
" <td>764.230</td>\n",
" <td>161.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-19 00:00:00+00:00</th>\n",
" <td>0.000217</td>\n",
" <td>0.995336</td>\n",
" <td>757.420</td>\n",
" <td>160.070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-22 00:00:00+00:00</th>\n",
" <td>0.000794</td>\n",
" <td>1.002406</td>\n",
" <td>759.075</td>\n",
" <td>159.990</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-23 00:00:00+00:00</th>\n",
" <td>0.001344</td>\n",
" <td>0.997335</td>\n",
" <td>762.730</td>\n",
" <td>160.340</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-24 00:00:00+00:00</th>\n",
" <td>-0.000552</td>\n",
" <td>0.993571</td>\n",
" <td>756.280</td>\n",
" <td>158.910</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-25 00:00:00+00:00</th>\n",
" <td>0.003806</td>\n",
" <td>0.996406</td>\n",
" <td>759.135</td>\n",
" <td>158.540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-26 00:00:00+00:00</th>\n",
" <td>0.008680</td>\n",
" <td>0.993440</td>\n",
" <td>769.440</td>\n",
" <td>158.390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-29 00:00:00+00:00</th>\n",
" <td>-0.000909</td>\n",
" <td>1.005754</td>\n",
" <td>771.540</td>\n",
" <td>159.740</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-30 00:00:00+00:00</th>\n",
" <td>-0.000420</td>\n",
" <td>0.996126</td>\n",
" <td>767.130</td>\n",
" <td>159.240</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-08-31 00:00:00+00:00</th>\n",
" <td>0.002120</td>\n",
" <td>0.998379</td>\n",
" <td>769.140</td>\n",
" <td>158.900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-01 00:00:00+00:00</th>\n",
" <td>-0.003576</td>\n",
" <td>1.007524</td>\n",
" <td>770.880</td>\n",
" <td>159.580</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-02 00:00:00+00:00</th>\n",
" <td>0.001812</td>\n",
" <td>0.995739</td>\n",
" <td>772.535</td>\n",
" <td>159.565</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-06 00:00:00+00:00</th>\n",
" <td>0.009427</td>\n",
" <td>1.001175</td>\n",
" <td>789.310</td>\n",
" <td>160.210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-07 00:00:00+00:00</th>\n",
" <td>-0.006505</td>\n",
" <td>1.007876</td>\n",
" <td>784.920</td>\n",
" <td>161.500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-08 00:00:00+00:00</th>\n",
" <td>0.005996</td>\n",
" <td>0.988005</td>\n",
" <td>783.530</td>\n",
" <td>159.010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-09 00:00:00+00:00</th>\n",
" <td>-0.004476</td>\n",
" <td>0.984749</td>\n",
" <td>761.200</td>\n",
" <td>155.670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-12 00:00:00+00:00</th>\n",
" <td>-0.000033</td>\n",
" <td>1.019942</td>\n",
" <td>771.880</td>\n",
" <td>158.230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-13 00:00:00+00:00</th>\n",
" <td>0.000773</td>\n",
" <td>0.989815</td>\n",
" <td>761.110</td>\n",
" <td>155.840</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-14 00:00:00+00:00</th>\n",
" <td>0.004385</td>\n",
" <td>0.987785</td>\n",
" <td>760.720</td>\n",
" <td>153.880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-09-15 00:00:00+00:00</th>\n",
" <td>-0.000990</td>\n",
" <td>1.013132</td>\n",
" <td>770.040</td>\n",
" <td>155.710</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-23 00:00:00+00:00</th>\n",
" <td>0.000637</td>\n",
" <td>0.998966</td>\n",
" <td>1003.230</td>\n",
" <td>154.230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-26 00:00:00+00:00</th>\n",
" <td>-0.007915</td>\n",
" <td>1.002252</td>\n",
" <td>993.520</td>\n",
" <td>155.225</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-27 00:00:00+00:00</th>\n",
" <td>-0.006184</td>\n",
" <td>0.999259</td>\n",
" <td>978.668</td>\n",
" <td>154.890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-28 00:00:00+00:00</th>\n",
" <td>0.005992</td>\n",
" <td>1.001239</td>\n",
" <td>989.950</td>\n",
" <td>155.390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-29 00:00:00+00:00</th>\n",
" <td>0.000291</td>\n",
" <td>0.992604</td>\n",
" <td>975.920</td>\n",
" <td>154.210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-30 00:00:00+00:00</th>\n",
" <td>-0.004950</td>\n",
" <td>0.998371</td>\n",
" <td>968.630</td>\n",
" <td>154.010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-03 00:00:00+00:00</th>\n",
" <td>-0.017883</td>\n",
" <td>1.014753</td>\n",
" <td>952.649</td>\n",
" <td>155.840</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-05 00:00:00+00:00</th>\n",
" <td>0.013366</td>\n",
" <td>0.987060</td>\n",
" <td>972.526</td>\n",
" <td>153.770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-06 00:00:00+00:00</th>\n",
" <td>0.004389</td>\n",
" <td>0.993199</td>\n",
" <td>965.470</td>\n",
" <td>152.455</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-07 00:00:00+00:00</th>\n",
" <td>0.001886</td>\n",
" <td>1.003163</td>\n",
" <td>978.960</td>\n",
" <td>152.970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-10 00:00:00+00:00</th>\n",
" <td>0.004704</td>\n",
" <td>1.004924</td>\n",
" <td>997.910</td>\n",
" <td>153.510</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-11 00:00:00+00:00</th>\n",
" <td>0.000693</td>\n",
" <td>1.000555</td>\n",
" <td>993.990</td>\n",
" <td>153.270</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-12 00:00:00+00:00</th>\n",
" <td>0.001536</td>\n",
" <td>1.001212</td>\n",
" <td>1006.500</td>\n",
" <td>153.810</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-13 00:00:00+00:00</th>\n",
" <td>-0.002498</td>\n",
" <td>1.001662</td>\n",
" <td>999.400</td>\n",
" <td>153.690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-14 00:00:00+00:00</th>\n",
" <td>-0.002118</td>\n",
" <td>1.002101</td>\n",
" <td>1000.700</td>\n",
" <td>154.270</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-17 00:00:00+00:00</th>\n",
" <td>0.004571</td>\n",
" <td>0.995807</td>\n",
" <td>1009.650</td>\n",
" <td>153.020</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-18 00:00:00+00:00</th>\n",
" <td>0.002587</td>\n",
" <td>1.012954</td>\n",
" <td>1023.440</td>\n",
" <td>154.035</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-19 00:00:00+00:00</th>\n",
" <td>0.009454</td>\n",
" <td>0.981507</td>\n",
" <td>1026.214</td>\n",
" <td>147.290</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-20 00:00:00+00:00</th>\n",
" <td>-0.001488</td>\n",
" <td>1.000321</td>\n",
" <td>1029.000</td>\n",
" <td>147.820</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-21 00:00:00+00:00</th>\n",
" <td>0.006785</td>\n",
" <td>0.996385</td>\n",
" <td>1024.849</td>\n",
" <td>146.950</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-24 00:00:00+00:00</th>\n",
" <td>0.008440</td>\n",
" <td>0.993816</td>\n",
" <td>1039.680</td>\n",
" <td>146.010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-25 00:00:00+00:00</th>\n",
" <td>0.002671</td>\n",
" <td>0.998173</td>\n",
" <td>1039.450</td>\n",
" <td>146.130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-26 00:00:00+00:00</th>\n",
" <td>0.007847</td>\n",
" <td>0.992674</td>\n",
" <td>1052.760</td>\n",
" <td>145.270</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-27 00:00:00+00:00</th>\n",
" <td>-0.011926</td>\n",
" <td>0.999686</td>\n",
" <td>1044.849</td>\n",
" <td>144.950</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-28 00:00:00+00:00</th>\n",
" <td>0.007741</td>\n",
" <td>0.995508</td>\n",
" <td>1019.040</td>\n",
" <td>144.315</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-31 00:00:00+00:00</th>\n",
" <td>-0.013958</td>\n",
" <td>1.000308</td>\n",
" <td>987.250</td>\n",
" <td>144.640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-08-01 00:00:00+00:00</th>\n",
" <td>-0.001224</td>\n",
" <td>1.001045</td>\n",
" <td>996.490</td>\n",
" <td>145.310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-08-02 00:00:00+00:00</th>\n",
" <td>-0.001123</td>\n",
" <td>0.996678</td>\n",
" <td>995.891</td>\n",
" <td>144.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-08-03 00:00:00+00:00</th>\n",
" <td>-0.006547</td>\n",
" <td>1.002374</td>\n",
" <td>986.630</td>\n",
" <td>144.870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-08-04 00:00:00+00:00</th>\n",
" <td>-0.001247</td>\n",
" <td>1.000390</td>\n",
" <td>987.020</td>\n",
" <td>145.150</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>253 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" Exposure Leverage amzn_close ibm_close\n",
"2016-08-04 00:00:00+00:00 0.003096 1.003300 760.960 161.410\n",
"2016-08-05 00:00:00+00:00 -0.002652 1.007467 765.890 163.450\n",
"2016-08-08 00:00:00+00:00 0.002615 0.994985 766.360 162.050\n",
"2016-08-09 00:00:00+00:00 0.001590 0.996875 767.705 161.750\n",
"2016-08-10 00:00:00+00:00 0.000042 0.998992 768.480 162.020\n",
"2016-08-11 00:00:00+00:00 -0.002797 1.007279 771.410 163.465\n",
"2016-08-12 00:00:00+00:00 0.005987 0.991420 772.520 161.970\n",
"2016-08-15 00:00:00+00:00 0.000702 0.993980 768.330 161.870\n",
"2016-08-16 00:00:00+00:00 -0.000795 0.997210 764.645 160.730\n",
"2016-08-17 00:00:00+00:00 0.001646 0.996850 764.192 160.370\n",
"2016-08-18 00:00:00+00:00 0.000044 1.001224 764.230 161.400\n",
"2016-08-19 00:00:00+00:00 0.000217 0.995336 757.420 160.070\n",
"2016-08-22 00:00:00+00:00 0.000794 1.002406 759.075 159.990\n",
"2016-08-23 00:00:00+00:00 0.001344 0.997335 762.730 160.340\n",
"2016-08-24 00:00:00+00:00 -0.000552 0.993571 756.280 158.910\n",
"2016-08-25 00:00:00+00:00 0.003806 0.996406 759.135 158.540\n",
"2016-08-26 00:00:00+00:00 0.008680 0.993440 769.440 158.390\n",
"2016-08-29 00:00:00+00:00 -0.000909 1.005754 771.540 159.740\n",
"2016-08-30 00:00:00+00:00 -0.000420 0.996126 767.130 159.240\n",
"2016-08-31 00:00:00+00:00 0.002120 0.998379 769.140 158.900\n",
"2016-09-01 00:00:00+00:00 -0.003576 1.007524 770.880 159.580\n",
"2016-09-02 00:00:00+00:00 0.001812 0.995739 772.535 159.565\n",
"2016-09-06 00:00:00+00:00 0.009427 1.001175 789.310 160.210\n",
"2016-09-07 00:00:00+00:00 -0.006505 1.007876 784.920 161.500\n",
"2016-09-08 00:00:00+00:00 0.005996 0.988005 783.530 159.010\n",
"2016-09-09 00:00:00+00:00 -0.004476 0.984749 761.200 155.670\n",
"2016-09-12 00:00:00+00:00 -0.000033 1.019942 771.880 158.230\n",
"2016-09-13 00:00:00+00:00 0.000773 0.989815 761.110 155.840\n",
"2016-09-14 00:00:00+00:00 0.004385 0.987785 760.720 153.880\n",
"2016-09-15 00:00:00+00:00 -0.000990 1.013132 770.040 155.710\n",
"... ... ... ... ...\n",
"2017-06-23 00:00:00+00:00 0.000637 0.998966 1003.230 154.230\n",
"2017-06-26 00:00:00+00:00 -0.007915 1.002252 993.520 155.225\n",
"2017-06-27 00:00:00+00:00 -0.006184 0.999259 978.668 154.890\n",
"2017-06-28 00:00:00+00:00 0.005992 1.001239 989.950 155.390\n",
"2017-06-29 00:00:00+00:00 0.000291 0.992604 975.920 154.210\n",
"2017-06-30 00:00:00+00:00 -0.004950 0.998371 968.630 154.010\n",
"2017-07-03 00:00:00+00:00 -0.017883 1.014753 952.649 155.840\n",
"2017-07-05 00:00:00+00:00 0.013366 0.987060 972.526 153.770\n",
"2017-07-06 00:00:00+00:00 0.004389 0.993199 965.470 152.455\n",
"2017-07-07 00:00:00+00:00 0.001886 1.003163 978.960 152.970\n",
"2017-07-10 00:00:00+00:00 0.004704 1.004924 997.910 153.510\n",
"2017-07-11 00:00:00+00:00 0.000693 1.000555 993.990 153.270\n",
"2017-07-12 00:00:00+00:00 0.001536 1.001212 1006.500 153.810\n",
"2017-07-13 00:00:00+00:00 -0.002498 1.001662 999.400 153.690\n",
"2017-07-14 00:00:00+00:00 -0.002118 1.002101 1000.700 154.270\n",
"2017-07-17 00:00:00+00:00 0.004571 0.995807 1009.650 153.020\n",
"2017-07-18 00:00:00+00:00 0.002587 1.012954 1023.440 154.035\n",
"2017-07-19 00:00:00+00:00 0.009454 0.981507 1026.214 147.290\n",
"2017-07-20 00:00:00+00:00 -0.001488 1.000321 1029.000 147.820\n",
"2017-07-21 00:00:00+00:00 0.006785 0.996385 1024.849 146.950\n",
"2017-07-24 00:00:00+00:00 0.008440 0.993816 1039.680 146.010\n",
"2017-07-25 00:00:00+00:00 0.002671 0.998173 1039.450 146.130\n",
"2017-07-26 00:00:00+00:00 0.007847 0.992674 1052.760 145.270\n",
"2017-07-27 00:00:00+00:00 -0.011926 0.999686 1044.849 144.950\n",
"2017-07-28 00:00:00+00:00 0.007741 0.995508 1019.040 144.315\n",
"2017-07-31 00:00:00+00:00 -0.013958 1.000308 987.250 144.640\n",
"2017-08-01 00:00:00+00:00 -0.001224 1.001045 996.490 145.310\n",
"2017-08-02 00:00:00+00:00 -0.001123 0.996678 995.891 144.400\n",
"2017-08-03 00:00:00+00:00 -0.006547 1.002374 986.630 144.870\n",
"2017-08-04 00:00:00+00:00 -0.001247 1.000390 987.020 145.150\n",
"\n",
"[253 rows x 4 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bt.recorded_vars"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7e8017d588>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nzi3F5PAAhmEYpgC4sJk
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7e80140048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bt.recorded_vars['Leverage'].plot()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7e7fd4b5c0>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nN2Lfvn2On+/atQtf+9r
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7e800aaeb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bt.recorded_vars['Exposure'].plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exemple à fort effet de levier\n",
"\n",
"Vous pouvez en fait spécifier d'emprunter sur marge (NON RECOMMANDÉ)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def initialize(context):\n",
" context.amzn = sid(16841)\n",
" context.ibm = sid(3766)\n",
" \n",
" schedule_function(rebalance,date_rules.every_day(),time_rules.market_open())\n",
" schedule_function(record_vars,date_rules.every_day(),time_rules.market_close())\n",
" \n",
"def rebalance(context,data):\n",
" order_target_percent(context.ibm,-2.0)\n",
" order_target_percent(context.amzn,2.0)\n",
" \n",
"def record_vars(context,data):\n",
" record(amzn_close=data.current(context.amzn,'close'))\n",
" record(ibm_close=data.current(context.ibm,'close'))\n",
" record(Leverage = context.account.leverage)\n",
" record(Exposure = context.account.net_leverage)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100% Time: 0:00:00|##########################################################|\n"
]
}
],
"source": [
"bt = get_backtest('5e99e723b7582d4574188c70')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7e7fd3c630>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nubmmLpKkl/n5eb7fHeR
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7e7edfc080>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bt.recorded_vars['Leverage'].plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fixer une limite stricte à l'effet de levier\n",
"\n",
"http://www.zipline.io/appendix.html?highlight=leverage#zipline.api.set_max_leverage"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def initialize(context):\n",
" context.amzn = sid(16841)\n",
" context.ibm = sid(3766)\n",
" \n",
" set_max_leverage(1.03)\n",
" \n",
" schedule_function(rebalance,date_rules.every_day(),time_rules.market_open())\n",
" schedule_function(record_vars,date_rules.every_day(),time_rules.market_close())\n",
" \n",
"def rebalance(context,data):\n",
" order_target_percent(context.ibm,-0.5)\n",
" order_target_percent(context.amzn,0.5)\n",
" \n",
"def record_vars(context,data):\n",
" record(amzn_close=data.current(context.amzn,'close'))\n",
" record(ibm_close=data.current(context.ibm,'close'))\n",
" record(Leverage = context.account.leverage)\n",
" record(Exposure = context.account.net_leverage)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.5",
"language": "python",
"name": "py35"
},
"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.5.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}