Format: application/octet-stream
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "id": "9140cf54",
7 "metadata": {},
8 "outputs": [],
9 "source": [
10 "import datetime\n",
11 "import pandas as pd\n",
12 "import time\n",
13 "from scipy.stats import linregress"
14 ]
15 },
16 {
17 "cell_type": "code",
18 "execution_count": 2,
19 "id": "6cb52f60",
20 "metadata": {},
21 "outputs": [],
22 "source": [
23 "names=pd.read_csv('names.csv').Symbol.to_list()\n",
24 "names=[x+'.NS' for x in names]\n",
25 "names.append('%5ENSEI')"
26 ]
27 },
28 {
29 "cell_type": "code",
30 "execution_count": 3,
31 "id": "49a554ff",
32 "metadata": {},
33 "outputs": [
34 {
35 "data": {
36 "text/plain": [
37 "51"
38 ]
39 },
40 "execution_count": 3,
41 "metadata": {},
42 "output_type": "execute_result"
43 }
44 ],
45 "source": [
46 "len(names)"
47 ]
48 },
49 {
50 "cell_type": "code",
51 "execution_count": 4,
52 "id": "e8b24ddb",
53 "metadata": {},
54 "outputs": [],
55 "source": [
56 "#t2=int(time.mktime(datetime.date.today().timetuple())+19800)\n",
57 "t2=int(time.mktime((datetime.date.today() - datetime.timedelta(1)).timetuple())+19800)\n",
58 "t1=int(time.mktime((datetime.date.today() - datetime.timedelta(500)).timetuple())+19800)"
59 ]
60 },
61 {
62 "cell_type": "code",
63 "execution_count": 28,
64 "id": "38e850fe",
65 "metadata": {},
66 "outputs": [
67 {
68 "name": "stdout",
69 "output_type": "stream",
70 "text": [
71 "ADANIPORTS success\n",
72 "ASIANPAINT success\n",
73 "AXISBANK success\n",
74 "BAJAJ-AUTO success\n",
75 "BAJFINANCE success\n",
76 "BAJAJFINSV success\n",
77 "BPCL success\n",
78 "BHARTIARTL success\n",
79 "BRITANNIA success\n",
80 "CIPLA success\n",
81 "COALINDIA success\n",
82 "DIVISLAB success\n",
83 "DRREDDY success\n",
84 "EICHERMOT success\n",
85 "GRASIM success\n",
86 "HCLTECH success\n",
87 "HDFCBANK success\n",
88 "HDFCLIFE success\n",
89 "HEROMOTOCO success\n",
90 "HINDALCO success\n",
91 "HINDUNILVR success\n",
92 "HDFC success\n",
93 "ICICIBANK success\n",
94 "ITC success\n",
95 "IOC success\n",
96 "INDUSINDBK success\n",
97 "INFY success\n",
98 "JSWSTEEL success\n",
99 "KOTAKBANK success\n",
100 "LT success\n",
101 "M&M success\n",
102 "MARUTI success\n",
103 "NTPC success\n",
104 "NESTLEIND success\n",
105 "ONGC success\n",
106 "POWERGRID success\n",
107 "RELIANCE success\n",
108 "SBILIFE success\n",
109 "SHREECEM success\n",
110 "SBIN success\n",
111 "SUNPHARMA success\n",
112 "TCS success\n",
113 "TATACONSUM success\n",
114 "TATAMOTORS success\n",
115 "TATASTEEL success\n",
116 "TECHM success\n",
117 "TITAN success\n",
118 "UPL success\n",
119 "ULTRACEMCO success\n",
120 "WIPRO success\n",
121 "NIFTY success\n"
122 ]
123 }
124 ],
125 "source": [
126 "df= pd.DataFrame()\n",
127 "for name in names:\n",
128 " url='https://query1.finance.yahoo.com/v7/finance/download/' \\\n",
129 " +name+'?period1='+str(t1)+'&period2='+str(t2)+'&interval=1d&events=history&includeAdjustedClose=true'\n",
130 " try:\n",
131 " if name!= '%5ENSEI':\n",
132 " df[name[:-3]]=pd.read_csv(url)['Adj Close']\n",
133 " print(name[:-3]+' success')\n",
134 " else:\n",
135 " df['NIFTY']=pd.read_csv(url)['Adj Close']\n",
136 " print('NIFTY success')\n",
137 " except:\n",
138 " print(name[:-3]+' failed')"
139 ]
140 },
141 {
142 "cell_type": "code",
143 "execution_count": 99,
144 "id": "9df48f11",
145 "metadata": {},
146 "outputs": [],
147 "source": [
148 "df_return= df.div(df.shift())-1"
149 ]
150 },
151 {
152 "cell_type": "code",
153 "execution_count": 100,
154 "id": "7debe803",
155 "metadata": {},
156 "outputs": [],
157 "source": [
158 "df_return.dropna(axis=0,inplace=True)"
159 ]
160 },
161 {
162 "cell_type": "code",
163 "execution_count": 111,
164 "id": "8a233889",
165 "metadata": {},
166 "outputs": [
167 {
168 "data": {
169 "text/html": [
170 "<div>\n",
171 "<style scoped>\n",
172 " .dataframe tbody tr th:only-of-type {\n",
173 " vertical-align: middle;\n",
174 " }\n",
175 "\n",
176 " .dataframe tbody tr th {\n",
177 " vertical-align: top;\n",
178 " }\n",
179 "\n",
180 " .dataframe thead th {\n",
181 " text-align: right;\n",
182 " }\n",
183 "</style>\n",
184 "<table border=\"1\" class=\"dataframe\">\n",
185 " <thead>\n",
186 " <tr style=\"text-align: right;\">\n",
187 " <th></th>\n",
188 " <th>1</th>\n",
189 " <th>2</th>\n",
190 " <th>3</th>\n",
191 " <th>4</th>\n",
192 " <th>5</th>\n",
193 " <th>6</th>\n",
194 " <th>7</th>\n",
195 " <th>8</th>\n",
196 " <th>9</th>\n",
197 " <th>10</th>\n",
198 " <th>...</th>\n",
199 " <th>329</th>\n",
200 " <th>330</th>\n",
201 " <th>331</th>\n",
202 " <th>332</th>\n",
203 " <th>333</th>\n",
204 " <th>334</th>\n",
205 " <th>335</th>\n",
206 " <th>336</th>\n",
207 " <th>337</th>\n",
208 " <th>338</th>\n",
209 " </tr>\n",
210 " </thead>\n",
211 " <tbody>\n",
212 " <tr>\n",
213 " <th>ADANIPORTS</th>\n",
214 " <td>-0.001212</td>\n",
215 " <td>-0.023190</td>\n",
216 " <td>-0.010628</td>\n",
217 " <td>0.000000</td>\n",
218 " <td>-0.013114</td>\n",
219 " <td>-0.032513</td>\n",
220 " <td>-0.004530</td>\n",
221 " <td>0.019522</td>\n",
222 " <td>-0.003887</td>\n",
223 " <td>0.009250</td>\n",
224 " <td>...</td>\n",
225 " <td>0.073350</td>\n",
226 " <td>0.052855</td>\n",
227 " <td>0.016210</td>\n",
228 " <td>-0.032575</td>\n",
229 " <td>-0.005324</td>\n",
230 " <td>0.003240</td>\n",
231 " <td>0.005687</td>\n",
232 " <td>-0.007330</td>\n",
233 " <td>-0.010267</td>\n",
234 " <td>-0.000853</td>\n",
235 " </tr>\n",
236 " <tr>\n",
237 " <th>BAJAJ-AUTO</th>\n",
238 " <td>-0.008218</td>\n",
239 " <td>-0.027728</td>\n",
240 " <td>-0.011106</td>\n",
241 " <td>-0.000271</td>\n",
242 " <td>-0.003394</td>\n",
243 " <td>-0.015869</td>\n",
244 " <td>-0.033841</td>\n",
245 " <td>0.007503</td>\n",
246 " <td>0.007150</td>\n",
247 " <td>-0.002895</td>\n",
248 " <td>...</td>\n",
249 " <td>0.027924</td>\n",
250 " <td>0.003732</td>\n",
251 " <td>0.009312</td>\n",
252 " <td>-0.005448</td>\n",
253 " <td>0.006740</td>\n",
254 " <td>-0.007275</td>\n",
255 " <td>-0.003027</td>\n",
256 " <td>-0.014055</td>\n",
257 " <td>0.002231</td>\n",
258 " <td>0.017103</td>\n",
259 " </tr>\n",
260 " <tr>\n",
261 " <th>BPCL</th>\n",
262 " <td>-0.007991</td>\n",
263 " <td>-0.015050</td>\n",
264 " <td>-0.017002</td>\n",
265 " <td>-0.017406</td>\n",
266 " <td>-0.010584</td>\n",
267 " <td>-0.039860</td>\n",
268 " <td>-0.032837</td>\n",
269 " <td>0.030678</td>\n",
270 " <td>-0.014824</td>\n",
271 " <td>-0.000717</td>\n",
272 " <td>...</td>\n",
273 " <td>-0.009541</td>\n",
274 " <td>0.005716</td>\n",
275 " <td>-0.002947</td>\n",
276 " <td>-0.008551</td>\n",
277 " <td>-0.007453</td>\n",
278 " <td>0.008475</td>\n",
279 " <td>-0.006170</td>\n",
280 " <td>-0.001927</td>\n",
281 " <td>0.003968</td>\n",
282 " <td>-0.011429</td>\n",
283 " </tr>\n",
284 " <tr>\n",
285 " <th>BHARTIARTL</th>\n",
286 " <td>0.004048</td>\n",
287 " <td>-0.028776</td>\n",
288 " <td>0.010096</td>\n",
289 " <td>0.001308</td>\n",
290 " <td>-0.008023</td>\n",
291 " <td>-0.015330</td>\n",
292 " <td>-0.009838</td>\n",
293 " <td>0.004727</td>\n",
294 " <td>-0.007777</td>\n",
295 " <td>0.019642</td>\n",
296 " <td>...</td>\n",
297 " <td>0.019105</td>\n",
298 " <td>0.001578</td>\n",
299 " <td>-0.005930</td>\n",
300 " <td>-0.004381</td>\n",
301 " <td>-0.009924</td>\n",
302 " <td>0.012009</td>\n",
303 " <td>-0.007288</td>\n",
304 " <td>-0.011766</td>\n",
305 " <td>0.001333</td>\n",
306 " <td>-0.005707</td>\n",
307 " </tr>\n",
308 " <tr>\n",
309 " <th>BRITANNIA</th>\n",
310 " <td>-0.007413</td>\n",
311 " <td>-0.007583</td>\n",
312 " <td>-0.000873</td>\n",
313 " <td>0.002571</td>\n",
314 " <td>-0.005031</td>\n",
315 " <td>-0.018456</td>\n",
316 " <td>-0.007104</td>\n",
317 " <td>0.026245</td>\n",
318 " <td>0.012077</td>\n",
319 " <td>0.020927</td>\n",
320 " <td>...</td>\n",
321 " <td>-0.010647</td>\n",
322 " <td>0.008192</td>\n",
323 " <td>0.000562</td>\n",
324 " <td>0.002301</td>\n",
325 " <td>0.008144</td>\n",
326 " <td>-0.005164</td>\n",
327 " <td>-0.000763</td>\n",
328 " <td>-0.002754</td>\n",
329 " <td>-0.002051</td>\n",
330 " <td>-0.014755</td>\n",
331 " </tr>\n",
332 " <tr>\n",
333 " <th>CIPLA</th>\n",
334 " <td>-0.026257</td>\n",
335 " <td>-0.012851</td>\n",
336 " <td>-0.010113</td>\n",
337 " <td>-0.008455</td>\n",
338 " <td>-0.002369</td>\n",
339 " <td>-0.045347</td>\n",
340 " <td>-0.000373</td>\n",
341 " <td>0.058092</td>\n",
342 " <td>0.052551</td>\n",
343 " <td>-0.015749</td>\n",
344 " <td>...</td>\n",
345 " <td>0.010463</td>\n",
346 " <td>-0.000781</td>\n",
347 " <td>-0.004479</td>\n",
348 " <td>0.001988</td>\n",
349 " <td>-0.007152</td>\n",
350 " <td>0.006520</td>\n",
351 " <td>0.006217</td>\n",
352 " <td>0.017185</td>\n",
353 " <td>-0.007860</td>\n",
354 " <td>0.006379</td>\n",
355 " </tr>\n",
356 " <tr>\n",
357 " <th>DIVISLAB</th>\n",
358 " <td>-0.007548</td>\n",
359 " <td>-0.004103</td>\n",
360 " <td>-0.013267</td>\n",
361 " <td>0.012335</td>\n",
362 " <td>0.006746</td>\n",
363 " <td>-0.023000</td>\n",
364 " <td>0.001092</td>\n",
365 " <td>0.035012</td>\n",
366 " <td>-0.003802</td>\n",
367 " <td>0.022508</td>\n",
368 " <td>...</td>\n",
369 " <td>-0.024417</td>\n",
370 " <td>0.007576</td>\n",
371 " <td>0.014105</td>\n",
372 " <td>-0.014958</td>\n",
373 " <td>0.006095</td>\n",
374 " <td>-0.000376</td>\n",
375 " <td>0.015452</td>\n",
376 " <td>0.009677</td>\n",
377 " <td>0.011960</td>\n",
378 " <td>0.006227</td>\n",
379 " </tr>\n",
380 " <tr>\n",
381 " <th>DRREDDY</th>\n",
382 " <td>-0.006970</td>\n",
383 " <td>-0.024268</td>\n",
384 " <td>-0.028146</td>\n",
385 " <td>-0.003742</td>\n",
386 " <td>-0.002699</td>\n",
387 " <td>-0.045630</td>\n",
388 " <td>-0.007362</td>\n",
389 " <td>0.047547</td>\n",
390 " <td>0.041939</td>\n",
391 " <td>0.004131</td>\n",
392 " <td>...</td>\n",
393 " <td>-0.000492</td>\n",
394 " <td>-0.000360</td>\n",
395 " <td>0.004989</td>\n",
396 " <td>-0.001695</td>\n",
397 " <td>-0.004095</td>\n",
398 " <td>0.005997</td>\n",
399 " <td>0.017884</td>\n",
400 " <td>0.005338</td>\n",
401 " <td>-0.001850</td>\n",
402 " <td>0.024977</td>\n",
403 " </tr>\n",
404 " <tr>\n",
405 " <th>EICHERMOT</th>\n",
406 " <td>-0.001407</td>\n",
407 " <td>-0.047680</td>\n",
408 " <td>-0.023267</td>\n",
409 " <td>-0.021409</td>\n",
410 " <td>-0.006035</td>\n",
411 " <td>-0.026449</td>\n",
412 " <td>0.024759</td>\n",
413 " <td>0.051433</td>\n",
414 " <td>-0.035456</td>\n",
415 " <td>0.030204</td>\n",
416 " <td>...</td>\n",
417 " <td>0.012641</td>\n",
418 " <td>-0.003361</td>\n",
419 " <td>0.007319</td>\n",
420 " <td>0.003826</td>\n",
421 " <td>-0.008008</td>\n",
422 " <td>0.005191</td>\n",
423 " <td>0.007222</td>\n",
424 " <td>-0.012899</td>\n",
425 " <td>-0.012550</td>\n",
426 " <td>0.001554</td>\n",
427 " </tr>\n",
428 " <tr>\n",
429 " <th>GRASIM</th>\n",
430 " <td>-0.007726</td>\n",
431 " <td>-0.035139</td>\n",
432 " <td>-0.006208</td>\n",
433 " <td>-0.024431</td>\n",
434 " <td>0.014300</td>\n",
435 " <td>-0.035982</td>\n",
436 " <td>-0.027285</td>\n",
437 " <td>0.047273</td>\n",
438 " <td>-0.015070</td>\n",
439 " <td>-0.013343</td>\n",
440 " <td>...</td>\n",
441 " <td>0.015464</td>\n",
442 " <td>0.010738</td>\n",
443 " <td>-0.000234</td>\n",
444 " <td>0.001637</td>\n",
445 " <td>0.000100</td>\n",
446 " <td>0.005304</td>\n",
447 " <td>0.009125</td>\n",
448 " <td>-0.011377</td>\n",
449 " <td>-0.003027</td>\n",
450 " <td>0.001034</td>\n",
451 " </tr>\n",
452 " <tr>\n",
453 " <th>HCLTECH</th>\n",
454 " <td>0.003797</td>\n",
455 " <td>-0.021215</td>\n",
456 " <td>-0.021339</td>\n",
457 " <td>0.001974</td>\n",
458 " <td>-0.018077</td>\n",
459 " <td>-0.067533</td>\n",
460 " <td>0.028727</td>\n",
461 " <td>0.027924</td>\n",
462 " <td>-0.003451</td>\n",
463 " <td>0.023619</td>\n",
464 " <td>...</td>\n",
465 " <td>-0.011304</td>\n",
466 " <td>0.006921</td>\n",
467 " <td>-0.001935</td>\n",
468 " <td>-0.007346</td>\n",
469 " <td>0.017268</td>\n",
470 " <td>0.006012</td>\n",
471 " <td>-0.010395</td>\n",
472 " <td>-0.001725</td>\n",
473 " <td>-0.000102</td>\n",
474 " <td>0.002034</td>\n",
475 " </tr>\n",
476 " <tr>\n",
477 " <th>HDFCBANK</th>\n",
478 " <td>-0.008230</td>\n",
479 " <td>-0.005875</td>\n",
480 " <td>-0.007975</td>\n",
481 " <td>-0.000875</td>\n",
482 " <td>0.000167</td>\n",
483 " <td>-0.018175</td>\n",
484 " <td>0.001656</td>\n",
485 " <td>0.001865</td>\n",
486 " <td>-0.027881</td>\n",
487 " <td>0.002176</td>\n",
488 " <td>...</td>\n",
489 " <td>0.009345</td>\n",
490 " <td>0.006014</td>\n",
491 " <td>-0.003291</td>\n",
492 " <td>0.001146</td>\n",
493 " <td>0.013968</td>\n",
494 " <td>0.005876</td>\n",
495 " <td>-0.004455</td>\n",
496 " <td>0.000133</td>\n",
497 " <td>-0.002763</td>\n",
498 " <td>-0.007444</td>\n",
499 " </tr>\n",
500 " <tr>\n",
501 " <th>HDFCLIFE</th>\n",
502 " <td>-0.009670</td>\n",
503 " <td>-0.022145</td>\n",
504 " <td>0.015514</td>\n",
505 " <td>-0.021861</td>\n",
506 " <td>0.017323</td>\n",
507 " <td>-0.039880</td>\n",
508 " <td>0.019114</td>\n",
509 " <td>0.016231</td>\n",
510 " <td>0.009051</td>\n",
511 " <td>-0.006419</td>\n",
512 " <td>...</td>\n",
513 " <td>0.012709</td>\n",
514 " <td>0.013466</td>\n",
515 " <td>-0.002783</td>\n",
516 " <td>0.001395</td>\n",
517 " <td>0.002577</td>\n",
518 " <td>0.008824</td>\n",
519 " <td>-0.040981</td>\n",
520 " <td>-0.013933</td>\n",
521 " <td>0.002659</td>\n",
522 " <td>-0.000801</td>\n",
523 " </tr>\n",
524 " <tr>\n",
525 " <th>HEROMOTOCO</th>\n",
526 " <td>-0.005041</td>\n",
527 " <td>-0.025020</td>\n",
528 " <td>-0.000023</td>\n",
529 " <td>-0.019046</td>\n",
530 " <td>-0.015075</td>\n",
531 " <td>-0.027722</td>\n",
532 " <td>-0.037188</td>\n",
533 " <td>0.040193</td>\n",
534 " <td>-0.004137</td>\n",
535 " <td>0.008576</td>\n",
536 " <td>...</td>\n",
537 " <td>-0.007807</td>\n",
538 " <td>0.001211</td>\n",
539 " <td>0.004214</td>\n",
540 " <td>0.007327</td>\n",
541 " <td>-0.007308</td>\n",
542 " <td>0.011094</td>\n",
543 " <td>0.001514</td>\n",
544 " <td>-0.005486</td>\n",
545 " <td>-0.008506</td>\n",
546 " <td>0.006856</td>\n",
547 " </tr>\n",
548 " <tr>\n",
549 " <th>HINDALCO</th>\n",
550 " <td>0.009835</td>\n",
551 " <td>-0.057384</td>\n",
552 " <td>-0.025691</td>\n",
553 " <td>-0.026082</td>\n",
554 " <td>-0.009123</td>\n",
555 " <td>-0.073953</td>\n",
556 " <td>-0.039448</td>\n",
557 " <td>0.063773</td>\n",
558 " <td>0.008161</td>\n",
559 " <td>-0.031756</td>\n",
560 " <td>...</td>\n",
561 " <td>0.005687</td>\n",
562 " <td>-0.010098</td>\n",
563 " <td>-0.000136</td>\n",
564 " <td>0.001496</td>\n",
565 " <td>0.002581</td>\n",
566 " <td>0.018561</td>\n",
567 " <td>0.017026</td>\n",
568 " <td>-0.021057</td>\n",
569 " <td>-0.005878</td>\n",
570 " <td>0.019755</td>\n",
571 " </tr>\n",
572 " <tr>\n",
573 " <th>HINDUNILVR</th>\n",
574 " <td>-0.019152</td>\n",
575 " <td>-0.014723</td>\n",
576 " <td>0.008329</td>\n",
577 " <td>0.001164</td>\n",
578 " <td>0.008385</td>\n",
579 " <td>-0.035566</td>\n",
580 " <td>-0.007035</td>\n",
581 " <td>0.003334</td>\n",
582 " <td>0.004246</td>\n",
583 " <td>0.019372</td>\n",
584 " <td>...</td>\n",
585 " <td>0.026968</td>\n",
586 " <td>0.012667</td>\n",
587 " <td>-0.009585</td>\n",
588 " <td>-0.003915</td>\n",
589 " <td>0.003890</td>\n",
590 " <td>-0.016666</td>\n",
591 " <td>0.004717</td>\n",
592 " <td>0.013149</td>\n",
593 " <td>-0.008525</td>\n",
594 " <td>0.002711</td>\n",
595 " </tr>\n",
596 " <tr>\n",
597 " <th>ITC</th>\n",
598 " <td>0.003628</td>\n",
599 " <td>-0.021451</td>\n",
600 " <td>-0.005911</td>\n",
601 " <td>-0.015857</td>\n",
602 " <td>-0.005287</td>\n",
603 " <td>0.000000</td>\n",
604 " <td>-0.011389</td>\n",
605 " <td>-0.007424</td>\n",
606 " <td>-0.032757</td>\n",
607 " <td>0.002933</td>\n",
608 " <td>...</td>\n",
609 " <td>-0.005349</td>\n",
610 " <td>-0.000489</td>\n",
611 " <td>0.003179</td>\n",
612 " <td>-0.005607</td>\n",
613 " <td>-0.003432</td>\n",
614 " <td>0.008856</td>\n",
615 " <td>-0.007071</td>\n",
616 " <td>-0.001473</td>\n",
617 " <td>-0.002951</td>\n",
618 " <td>0.001480</td>\n",
619 " </tr>\n",
620 " <tr>\n",
621 " <th>INFY</th>\n",
622 " <td>-0.004310</td>\n",
623 " <td>-0.001443</td>\n",
624 " <td>0.003204</td>\n",
625 " <td>-0.019602</td>\n",
626 " <td>-0.006260</td>\n",
627 " <td>-0.059330</td>\n",
628 " <td>0.012778</td>\n",
629 " <td>0.008029</td>\n",
630 " <td>0.015730</td>\n",
631 " <td>-0.005470</td>\n",
632 " <td>...</td>\n",
633 " <td>0.005350</td>\n",
634 " <td>-0.001996</td>\n",
635 " <td>0.007698</td>\n",
636 " <td>-0.005755</td>\n",
637 " <td>0.037288</td>\n",
638 " <td>0.009620</td>\n",
639 " <td>-0.001525</td>\n",
640 " <td>-0.005567</td>\n",
641 " <td>0.011356</td>\n",
642 " <td>-0.012905</td>\n",
643 " </tr>\n",
644 " <tr>\n",
645 " <th>M&M</th>\n",
646 " <td>-0.002945</td>\n",
647 " <td>-0.022197</td>\n",
648 " <td>-0.008281</td>\n",
649 " <td>-0.011691</td>\n",
650 " <td>-0.018887</td>\n",
651 " <td>-0.073860</td>\n",
652 " <td>0.002735</td>\n",
653 " <td>0.017347</td>\n",
654 " <td>0.018016</td>\n",
655 " <td>0.009797</td>\n",
656 " <td>...</td>\n",
657 " <td>-0.029974</td>\n",
658 " <td>-0.006014</td>\n",
659 " <td>-0.002124</td>\n",
660 " <td>0.008707</td>\n",
661 " <td>0.012597</td>\n",
662 " <td>0.003094</td>\n",
663 " <td>-0.000944</td>\n",
664 " <td>-0.014997</td>\n",
665 " <td>-0.004990</td>\n",
666 " <td>0.002250</td>\n",
667 " </tr>\n",
668 " <tr>\n",
669 " <th>MARUTI</th>\n",
670 " <td>0.000148</td>\n",
671 " <td>-0.042500</td>\n",
672 " <td>-0.008632</td>\n",
673 " <td>-0.028014</td>\n",
674 " <td>0.008813</td>\n",
675 " <td>-0.001065</td>\n",
676 " <td>0.000326</td>\n",
677 " <td>0.016054</td>\n",
678 " <td>-0.000266</td>\n",
679 " <td>-0.002882</td>\n",
680 " <td>...</td>\n",
681 " <td>-0.001435</td>\n",
682 " <td>-0.008542</td>\n",
683 " <td>0.052972</td>\n",
684 " <td>0.023027</td>\n",
685 " <td>0.012748</td>\n",
686 " <td>0.016148</td>\n",
687 " <td>-0.006896</td>\n",
688 " <td>-0.014316</td>\n",
689 " <td>0.003793</td>\n",
690 " <td>0.009114</td>\n",
691 " </tr>\n",
692 " <tr>\n",
693 " <th>NESTLEIND</th>\n",
694 " <td>-0.014629</td>\n",
695 " <td>-0.012228</td>\n",
696 " <td>0.002647</td>\n",
697 " <td>-0.008568</td>\n",
698 " <td>0.001453</td>\n",
699 " <td>-0.029815</td>\n",
700 " <td>0.020984</td>\n",
701 " <td>0.015484</td>\n",
702 " <td>0.011131</td>\n",
703 " <td>0.002104</td>\n",
704 " <td>...</td>\n",
705 " <td>-0.021507</td>\n",
706 " <td>-0.001217</td>\n",
707 " <td>-0.012046</td>\n",
708 " <td>-0.001247</td>\n",
709 " <td>0.011769</td>\n",
710 " <td>-0.006416</td>\n",
711 " <td>-0.000031</td>\n",
712 " <td>0.005318</td>\n",
713 " <td>0.001918</td>\n",
714 " <td>0.000749</td>\n",
715 " </tr>\n",
716 " <tr>\n",
717 " <th>ONGC</th>\n",
718 " <td>0.010816</td>\n",
719 " <td>-0.046206</td>\n",
720 " <td>-0.005099</td>\n",
721 " <td>-0.017939</td>\n",
722 " <td>-0.025574</td>\n",
723 " <td>-0.014997</td>\n",
724 " <td>-0.030995</td>\n",
725 " <td>0.047699</td>\n",
726 " <td>-0.005892</td>\n",
727 " <td>-0.002155</td>\n",
728 " <td>...</td>\n",
729 " <td>-0.038769</td>\n",
730 " <td>0.005821</td>\n",
731 " <td>0.009095</td>\n",
732 " <td>0.010651</td>\n",
733 " <td>-0.010944</td>\n",
734 " <td>-0.009016</td>\n",
735 " <td>0.011993</td>\n",
736 " <td>-0.024111</td>\n",
737 " <td>-0.014238</td>\n",
738 " <td>0.009771</td>\n",
739 " </tr>\n",
740 " <tr>\n",
741 " <th>POWERGRID</th>\n",
742 " <td>0.009333</td>\n",
743 " <td>-0.016645</td>\n",
744 " <td>0.000269</td>\n",
745 " <td>-0.001612</td>\n",
746 " <td>0.003228</td>\n",
747 " <td>-0.026549</td>\n",
748 " <td>0.011019</td>\n",
749 " <td>0.044687</td>\n",
750 " <td>0.027908</td>\n",
751 " <td>-0.005582</td>\n",
752 " <td>...</td>\n",
753 " <td>-0.028560</td>\n",
754 " <td>0.007940</td>\n",
755 " <td>-0.003406</td>\n",
756 " <td>-0.007691</td>\n",
757 " <td>-0.004736</td>\n",
758 " <td>-0.001298</td>\n",
759 " <td>0.004332</td>\n",
760 " <td>0.017899</td>\n",
761 " <td>-0.015254</td>\n",
762 " <td>-0.006885</td>\n",
763 " </tr>\n",
764 " <tr>\n",
765 " <th>RELIANCE</th>\n",
766 " <td>-0.011870</td>\n",
767 " <td>-0.027592</td>\n",
768 " <td>-0.019759</td>\n",
769 " <td>-0.017227</td>\n",
770 " <td>-0.004131</td>\n",
771 " <td>-0.041551</td>\n",
772 " <td>-0.009408</td>\n",
773 " <td>0.020286</td>\n",
774 " <td>-0.002346</td>\n",
775 " <td>-0.021311</td>\n",
776 " <td>...</td>\n",
777 " <td>0.004513</td>\n",
778 " <td>0.005212</td>\n",
779 " <td>-0.005140</td>\n",
780 " <td>-0.009165</td>\n",
781 " <td>-0.023511</td>\n",
782 " <td>-0.022777</td>\n",
783 " <td>-0.008767</td>\n",
784 " <td>0.000863</td>\n",
785 " <td>0.010944</td>\n",
786 " <td>-0.006017</td>\n",
787 " </tr>\n",
788 " <tr>\n",
789 " <th>SBILIFE</th>\n",
790 " <td>-0.010073</td>\n",
791 " <td>-0.013082</td>\n",
792 " <td>-0.016801</td>\n",
793 " <td>-0.010930</td>\n",
794 " <td>0.015707</td>\n",
795 " <td>-0.016513</td>\n",
796 " <td>0.004212</td>\n",
797 " <td>0.006375</td>\n",
798 " <td>-0.016392</td>\n",
799 " <td>-0.000734</td>\n",
800 " <td>...</td>\n",
801 " <td>-0.000763</td>\n",
802 " <td>-0.001018</td>\n",
803 " <td>0.025928</td>\n",
804 " <td>-0.006405</td>\n",
805 " <td>0.001599</td>\n",
806 " <td>0.004989</td>\n",
807 " <td>-0.005014</td>\n",
808 " <td>-0.002694</td>\n",
809 " <td>0.008755</td>\n",
810 " <td>-0.001240</td>\n",
811 " </tr>\n",
812 " <tr>\n",
813 " <th>SHREECEM</th>\n",
814 " <td>-0.005130</td>\n",
815 " <td>-0.019171</td>\n",
816 " <td>-0.010891</td>\n",
817 " <td>-0.004535</td>\n",
818 " <td>0.014805</td>\n",
819 " <td>-0.047941</td>\n",
820 " <td>0.016367</td>\n",
821 " <td>0.023919</td>\n",
822 " <td>-0.014290</td>\n",
823 " <td>-0.008161</td>\n",
824 " <td>...</td>\n",
825 " <td>-0.011361</td>\n",
826 " <td>0.006402</td>\n",
827 " <td>0.035915</td>\n",
828 " <td>-0.012718</td>\n",
829 " <td>-0.006752</td>\n",
830 " <td>0.001981</td>\n",
831 " <td>-0.011796</td>\n",
832 " <td>-0.009008</td>\n",
833 " <td>-0.022387</td>\n",
834 " <td>-0.016166</td>\n",
835 " </tr>\n",
836 " <tr>\n",
837 " <th>SUNPHARMA</th>\n",
838 " <td>0.003469</td>\n",
839 " <td>-0.017533</td>\n",
840 " <td>-0.022496</td>\n",
841 " <td>-0.036513</td>\n",
842 " <td>0.036830</td>\n",
843 " <td>-0.040155</td>\n",
844 " <td>-0.009118</td>\n",
845 " <td>0.065088</td>\n",
846 " <td>0.030238</td>\n",
847 " <td>-0.001357</td>\n",
848 " <td>...</td>\n",
849 " <td>0.005188</td>\n",
850 " <td>0.004263</td>\n",
851 " <td>-0.006777</td>\n",
852 " <td>-0.002325</td>\n",
853 " <td>-0.000676</td>\n",
854 " <td>0.011206</td>\n",
855 " <td>0.006025</td>\n",
856 " <td>0.001922</td>\n",
857 " <td>-0.003173</td>\n",
858 " <td>0.012880</td>\n",
859 " </tr>\n",
860 " <tr>\n",
861 " <th>TCS</th>\n",
862 " <td>-0.018007</td>\n",
863 " <td>-0.019218</td>\n",
864 " <td>0.019287</td>\n",
865 " <td>-0.015096</td>\n",
866 " <td>-0.008523</td>\n",
867 " <td>-0.050036</td>\n",
868 " <td>0.000575</td>\n",
869 " <td>0.017439</td>\n",
870 " <td>0.023082</td>\n",
871 " <td>0.020089</td>\n",
872 " <td>...</td>\n",
873 " <td>-0.006164</td>\n",
874 " <td>-0.007339</td>\n",
875 " <td>0.008585</td>\n",
876 " <td>-0.012056</td>\n",
877 " <td>0.034402</td>\n",
878 " <td>0.002134</td>\n",
879 " <td>-0.013029</td>\n",
880 " <td>0.001229</td>\n",
881 " <td>0.001467</td>\n",
882 " <td>-0.001270</td>\n",
883 " </tr>\n",
884 " <tr>\n",
885 " <th>TATACONSUM</th>\n",
886 " <td>-0.006916</td>\n",
887 " <td>-0.029961</td>\n",
888 " <td>-0.000271</td>\n",
889 " <td>-0.009079</td>\n",
890 " <td>-0.006427</td>\n",
891 " <td>-0.047206</td>\n",
892 " <td>-0.021234</td>\n",
893 " <td>0.048701</td>\n",
894 " <td>-0.017168</td>\n",
895 " <td>-0.002005</td>\n",
896 " <td>...</td>\n",
897 " <td>-0.006980</td>\n",
898 " <td>0.003717</td>\n",
899 " <td>0.019056</td>\n",
900 " <td>0.001520</td>\n",
901 " <td>-0.000528</td>\n",
902 " <td>0.000198</td>\n",
903 " <td>0.010626</td>\n",
904 " <td>-0.009926</td>\n",
905 " <td>-0.004815</td>\n",
906 " <td>0.002187</td>\n",
907 " </tr>\n",
908 " </tbody>\n",
909 "</table>\n",
910 "<p>29 rows × 334 columns</p>\n",
911 "</div>"
912 ],
913 "text/plain": [
914 " 1 2 3 4 5 6 \\\n",
915 "ADANIPORTS -0.001212 -0.023190 -0.010628 0.000000 -0.013114 -0.032513 \n",
916 "BAJAJ-AUTO -0.008218 -0.027728 -0.011106 -0.000271 -0.003394 -0.015869 \n",
917 "BPCL -0.007991 -0.015050 -0.017002 -0.017406 -0.010584 -0.039860 \n",
918 "BHARTIARTL 0.004048 -0.028776 0.010096 0.001308 -0.008023 -0.015330 \n",
919 "BRITANNIA -0.007413 -0.007583 -0.000873 0.002571 -0.005031 -0.018456 \n",
920 "CIPLA -0.026257 -0.012851 -0.010113 -0.008455 -0.002369 -0.045347 \n",
921 "DIVISLAB -0.007548 -0.004103 -0.013267 0.012335 0.006746 -0.023000 \n",
922 "DRREDDY -0.006970 -0.024268 -0.028146 -0.003742 -0.002699 -0.045630 \n",
923 "EICHERMOT -0.001407 -0.047680 -0.023267 -0.021409 -0.006035 -0.026449 \n",
924 "GRASIM -0.007726 -0.035139 -0.006208 -0.024431 0.014300 -0.035982 \n",
925 "HCLTECH 0.003797 -0.021215 -0.021339 0.001974 -0.018077 -0.067533 \n",
926 "HDFCBANK -0.008230 -0.005875 -0.007975 -0.000875 0.000167 -0.018175 \n",
927 "HDFCLIFE -0.009670 -0.022145 0.015514 -0.021861 0.017323 -0.039880 \n",
928 "HEROMOTOCO -0.005041 -0.025020 -0.000023 -0.019046 -0.015075 -0.027722 \n",
929 "HINDALCO 0.009835 -0.057384 -0.025691 -0.026082 -0.009123 -0.073953 \n",
930 "HINDUNILVR -0.019152 -0.014723 0.008329 0.001164 0.008385 -0.035566 \n",
931 "ITC 0.003628 -0.021451 -0.005911 -0.015857 -0.005287 0.000000 \n",
932 "INFY -0.004310 -0.001443 0.003204 -0.019602 -0.006260 -0.059330 \n",
933 "M&M -0.002945 -0.022197 -0.008281 -0.011691 -0.018887 -0.073860 \n",
934 "MARUTI 0.000148 -0.042500 -0.008632 -0.028014 0.008813 -0.001065 \n",
935 "NESTLEIND -0.014629 -0.012228 0.002647 -0.008568 0.001453 -0.029815 \n",
936 "ONGC 0.010816 -0.046206 -0.005099 -0.017939 -0.025574 -0.014997 \n",
937 "POWERGRID 0.009333 -0.016645 0.000269 -0.001612 0.003228 -0.026549 \n",
938 "RELIANCE -0.011870 -0.027592 -0.019759 -0.017227 -0.004131 -0.041551 \n",
939 "SBILIFE -0.010073 -0.013082 -0.016801 -0.010930 0.015707 -0.016513 \n",
940 "SHREECEM -0.005130 -0.019171 -0.010891 -0.004535 0.014805 -0.047941 \n",
941 "SUNPHARMA 0.003469 -0.017533 -0.022496 -0.036513 0.036830 -0.040155 \n",
942 "TCS -0.018007 -0.019218 0.019287 -0.015096 -0.008523 -0.050036 \n",
943 "TATACONSUM -0.006916 -0.029961 -0.000271 -0.009079 -0.006427 -0.047206 \n",
944 "\n",
945 " 7 8 9 10 ... 329 330 \\\n",
946 "ADANIPORTS -0.004530 0.019522 -0.003887 0.009250 ... 0.073350 0.052855 \n",
947 "BAJAJ-AUTO -0.033841 0.007503 0.007150 -0.002895 ... 0.027924 0.003732 \n",
948 "BPCL -0.032837 0.030678 -0.014824 -0.000717 ... -0.009541 0.005716 \n",
949 "BHARTIARTL -0.009838 0.004727 -0.007777 0.019642 ... 0.019105 0.001578 \n",
950 "BRITANNIA -0.007104 0.026245 0.012077 0.020927 ... -0.010647 0.008192 \n",
951 "CIPLA -0.000373 0.058092 0.052551 -0.015749 ... 0.010463 -0.000781 \n",
952 "DIVISLAB 0.001092 0.035012 -0.003802 0.022508 ... -0.024417 0.007576 \n",
953 "DRREDDY -0.007362 0.047547 0.041939 0.004131 ... -0.000492 -0.000360 \n",
954 "EICHERMOT 0.024759 0.051433 -0.035456 0.030204 ... 0.012641 -0.003361 \n",
955 "GRASIM -0.027285 0.047273 -0.015070 -0.013343 ... 0.015464 0.010738 \n",
956 "HCLTECH 0.028727 0.027924 -0.003451 0.023619 ... -0.011304 0.006921 \n",
957 "HDFCBANK 0.001656 0.001865 -0.027881 0.002176 ... 0.009345 0.006014 \n",
958 "HDFCLIFE 0.019114 0.016231 0.009051 -0.006419 ... 0.012709 0.013466 \n",
959 "HEROMOTOCO -0.037188 0.040193 -0.004137 0.008576 ... -0.007807 0.001211 \n",
960 "HINDALCO -0.039448 0.063773 0.008161 -0.031756 ... 0.005687 -0.010098 \n",
961 "HINDUNILVR -0.007035 0.003334 0.004246 0.019372 ... 0.026968 0.012667 \n",
962 "ITC -0.011389 -0.007424 -0.032757 0.002933 ... -0.005349 -0.000489 \n",
963 "INFY 0.012778 0.008029 0.015730 -0.005470 ... 0.005350 -0.001996 \n",
964 "M&M 0.002735 0.017347 0.018016 0.009797 ... -0.029974 -0.006014 \n",
965 "MARUTI 0.000326 0.016054 -0.000266 -0.002882 ... -0.001435 -0.008542 \n",
966 "NESTLEIND 0.020984 0.015484 0.011131 0.002104 ... -0.021507 -0.001217 \n",
967 "ONGC -0.030995 0.047699 -0.005892 -0.002155 ... -0.038769 0.005821 \n",
968 "POWERGRID 0.011019 0.044687 0.027908 -0.005582 ... -0.028560 0.007940 \n",
969 "RELIANCE -0.009408 0.020286 -0.002346 -0.021311 ... 0.004513 0.005212 \n",
970 "SBILIFE 0.004212 0.006375 -0.016392 -0.000734 ... -0.000763 -0.001018 \n",
971 "SHREECEM 0.016367 0.023919 -0.014290 -0.008161 ... -0.011361 0.006402 \n",
972 "SUNPHARMA -0.009118 0.065088 0.030238 -0.001357 ... 0.005188 0.004263 \n",
973 "TCS 0.000575 0.017439 0.023082 0.020089 ... -0.006164 -0.007339 \n",
974 "TATACONSUM -0.021234 0.048701 -0.017168 -0.002005 ... -0.006980 0.003717 \n",
975 "\n",
976 " 331 332 333 334 335 336 \\\n",
977 "ADANIPORTS 0.016210 -0.032575 -0.005324 0.003240 0.005687 -0.007330 \n",
978 "BAJAJ-AUTO 0.009312 -0.005448 0.006740 -0.007275 -0.003027 -0.014055 \n",
979 "BPCL -0.002947 -0.008551 -0.007453 0.008475 -0.006170 -0.001927 \n",
980 "BHARTIARTL -0.005930 -0.004381 -0.009924 0.012009 -0.007288 -0.011766 \n",
981 "BRITANNIA 0.000562 0.002301 0.008144 -0.005164 -0.000763 -0.002754 \n",
982 "CIPLA -0.004479 0.001988 -0.007152 0.006520 0.006217 0.017185 \n",
983 "DIVISLAB 0.014105 -0.014958 0.006095 -0.000376 0.015452 0.009677 \n",
984 "DRREDDY 0.004989 -0.001695 -0.004095 0.005997 0.017884 0.005338 \n",
985 "EICHERMOT 0.007319 0.003826 -0.008008 0.005191 0.007222 -0.012899 \n",
986 "GRASIM -0.000234 0.001637 0.000100 0.005304 0.009125 -0.011377 \n",
987 "HCLTECH -0.001935 -0.007346 0.017268 0.006012 -0.010395 -0.001725 \n",
988 "HDFCBANK -0.003291 0.001146 0.013968 0.005876 -0.004455 0.000133 \n",
989 "HDFCLIFE -0.002783 0.001395 0.002577 0.008824 -0.040981 -0.013933 \n",
990 "HEROMOTOCO 0.004214 0.007327 -0.007308 0.011094 0.001514 -0.005486 \n",
991 "HINDALCO -0.000136 0.001496 0.002581 0.018561 0.017026 -0.021057 \n",
992 "HINDUNILVR -0.009585 -0.003915 0.003890 -0.016666 0.004717 0.013149 \n",
993 "ITC 0.003179 -0.005607 -0.003432 0.008856 -0.007071 -0.001473 \n",
994 "INFY 0.007698 -0.005755 0.037288 0.009620 -0.001525 -0.005567 \n",
995 "M&M -0.002124 0.008707 0.012597 0.003094 -0.000944 -0.014997 \n",
996 "MARUTI 0.052972 0.023027 0.012748 0.016148 -0.006896 -0.014316 \n",
997 "NESTLEIND -0.012046 -0.001247 0.011769 -0.006416 -0.000031 0.005318 \n",
998 "ONGC 0.009095 0.010651 -0.010944 -0.009016 0.011993 -0.024111 \n",
999 "POWERGRID -0.003406 -0.007691 -0.004736 -0.001298 0.004332 0.017899 \n",
1000 "RELIANCE -0.005140 -0.009165 -0.023511 -0.022777 -0.008767 0.000863 \n",
1001 "SBILIFE 0.025928 -0.006405 0.001599 0.004989 -0.005014 -0.002694 \n",
1002 "SHREECEM 0.035915 -0.012718 -0.006752 0.001981 -0.011796 -0.009008 \n",
1003 "SUNPHARMA -0.006777 -0.002325 -0.000676 0.011206 0.006025 0.001922 \n",
1004 "TCS 0.008585 -0.012056 0.034402 0.002134 -0.013029 0.001229 \n",
1005 "TATACONSUM 0.019056 0.001520 -0.000528 0.000198 0.010626 -0.009926 \n",
1006 "\n",
1007 " 337 338 \n",
1008 "ADANIPORTS -0.010267 -0.000853 \n",
1009 "BAJAJ-AUTO 0.002231 0.017103 \n",
1010 "BPCL 0.003968 -0.011429 \n",
1011 "BHARTIARTL 0.001333 -0.005707 \n",
1012 "BRITANNIA -0.002051 -0.014755 \n",
1013 "CIPLA -0.007860 0.006379 \n",
1014 "DIVISLAB 0.011960 0.006227 \n",
1015 "DRREDDY -0.001850 0.024977 \n",
1016 "EICHERMOT -0.012550 0.001554 \n",
1017 "GRASIM -0.003027 0.001034 \n",
1018 "HCLTECH -0.000102 0.002034 \n",
1019 "HDFCBANK -0.002763 -0.007444 \n",
1020 "HDFCLIFE 0.002659 -0.000801 \n",
1021 "HEROMOTOCO -0.008506 0.006856 \n",
1022 "HINDALCO -0.005878 0.019755 \n",
1023 "HINDUNILVR -0.008525 0.002711 \n",
1024 "ITC -0.002951 0.001480 \n",
1025 "INFY 0.011356 -0.012905 \n",
1026 "M&M -0.004990 0.002250 \n",
1027 "MARUTI 0.003793 0.009114 \n",
1028 "NESTLEIND 0.001918 0.000749 \n",
1029 "ONGC -0.014238 0.009771 \n",
1030 "POWERGRID -0.015254 -0.006885 \n",
1031 "RELIANCE 0.010944 -0.006017 \n",
1032 "SBILIFE 0.008755 -0.001240 \n",
1033 "SHREECEM -0.022387 -0.016166 \n",
1034 "SUNPHARMA -0.003173 0.012880 \n",
1035 "TCS 0.001467 -0.001270 \n",
1036 "TATACONSUM -0.004815 0.002187 \n",
1037 "\n",
1038 "[29 rows x 334 columns]"
1039 ]
1040 },
1041 "execution_count": 111,
1042 "metadata": {},
1043 "output_type": "execute_result"
1044 }
1045 ],
1046 "source": [
1047 "df_return"
1048 ]
1049 },
1050 {
1051 "cell_type": "code",
1052 "execution_count": 87,
1053 "id": "7658fc97",
1054 "metadata": {},
1055 "outputs": [],
1056 "source": [
1057 "#What Is Beta?\n",
1058 "#Beta is a measure of a stock's volatility in relation to the overall market. \n",
1059 "#By definition, the market, such as the S&P 500 Index, has a beta of 1.0\n",
1060 "\n",
1061 "\n",
1062 "#A stock that swings more than the market over time has a beta above 1.0. \n",
1063 "#If a stock moves less than the market, the stock's beta is less than 1.0. \n",
1064 "#High-beta stocks are supposed to be riskier but provide higher return potential; \n",
1065 "#low-beta stocks pose less risk but also lower returns."
1066 ]
1067 },
1068 {
1069 "cell_type": "code",
1070 "execution_count": 88,
1071 "id": "3f20947f",
1072 "metadata": {},
1073 "outputs": [],
1074 "source": [
1075 "#Alpha refers to excess returns earned on an investment above the benchmark return.\n",
1076 "#Active portfolio managers seek to generate alpha in diversified portfolios, \n",
1077 "#with diversification intended to eliminate unsystematic risk."
1078 ]
1079 },
1080 {
1081 "cell_type": "code",
1082 "execution_count": 89,
1083 "id": "aec874dc",
1084 "metadata": {},
1085 "outputs": [],
1086 "source": [
1087 "stats=pd.DataFrame()\n",
1088 "num_days=90\n",
1089 "for column in df_return.columns:\n",
1090 " slope, intercept,rvalue,pvalue,stderr=linregress(df_return['NIFTY'][:num_days],df_return[column][:num_days])\n",
1091 " stats[column]= pd.Series([slope, intercept,rvalue,pvalue,stderr])\n",
1092 "stats=stats.T.rename(columns={0:'Beta',1:'Alpha',2:'rvalue',3:'pvalue',4:'stderr'})\n"
1093 ]
1094 },
1095 {
1096 "cell_type": "code",
1097 "execution_count": 90,
1098 "id": "d44f6efd",
1099 "metadata": {},
1100 "outputs": [],
1101 "source": [
1102 "stats=stats[(stats.Beta>0) &(stats.Alpha>0)]"
1103 ]
1104 },
1105 {
1106 "cell_type": "code",
1107 "execution_count": 91,
1108 "id": "8d1c14cb",
1109 "metadata": {},
1110 "outputs": [
1111 {
1112 "data": {
1113 "text/plain": [
1114 "29"
1115 ]
1116 },
1117 "execution_count": 91,
1118 "metadata": {},
1119 "output_type": "execute_result"
1120 }
1121 ],
1122 "source": [
1123 "len(stats)"
1124 ]
1125 },
1126 {
1127 "cell_type": "code",
1128 "execution_count": 92,
1129 "id": "ef140fe9",
1130 "metadata": {},
1131 "outputs": [],
1132 "source": [
1133 "stats['beta_weights']= stats.Beta.div(sum(stats.Beta))"
1134 ]
1135 },
1136 {
1137 "cell_type": "code",
1138 "execution_count": 93,
1139 "id": "b47e6b88",
1140 "metadata": {},
1141 "outputs": [],
1142 "source": [
1143 "stats['alpha_weights']= stats.Alpha.div(sum(stats.Alpha))"
1144 ]
1145 },
1146 {
1147 "cell_type": "code",
1148 "execution_count": null,
1149 "id": "2acd848a",
1150 "metadata": {},
1151 "outputs": [],
1152 "source": []
1153 },
1154 {
1155 "cell_type": "code",
1156 "execution_count": 94,
1157 "id": "8dba0aec",
1158 "metadata": {},
1159 "outputs": [
1160 {
1161 "data": {
1162 "text/html": [
1163 "<div>\n",
1164 "<style scoped>\n",
1165 " .dataframe tbody tr th:only-of-type {\n",
1166 " vertical-align: middle;\n",
1167 " }\n",
1168 "\n",
1169 " .dataframe tbody tr th {\n",
1170 " vertical-align: top;\n",
1171 " }\n",
1172 "\n",
1173 " .dataframe thead th {\n",
1174 " text-align: right;\n",
1175 " }\n",
1176 "</style>\n",
1177 "<table border=\"1\" class=\"dataframe\">\n",
1178 " <thead>\n",
1179 " <tr style=\"text-align: right;\">\n",
1180 " <th></th>\n",
1181 " <th>Beta</th>\n",
1182 " <th>Alpha</th>\n",
1183 " <th>rvalue</th>\n",
1184 " <th>pvalue</th>\n",
1185 " <th>stderr</th>\n",
1186 " <th>beta_weights</th>\n",
1187 " <th>alpha_weights</th>\n",
1188 " </tr>\n",
1189 " </thead>\n",
1190 " <tbody>\n",
1191 " <tr>\n",
1192 " <th>ADANIPORTS</th>\n",
1193 " <td>0.895755</td>\n",
1194 " <td>0.001280</td>\n",
1195 " <td>0.711127</td>\n",
1196 " <td>4.049750e-15</td>\n",
1197 " <td>0.094405</td>\n",
1198 " <td>0.036081</td>\n",
1199 " <td>0.027759</td>\n",
1200 " </tr>\n",
1201 " <tr>\n",
1202 " <th>BAJAJ-AUTO</th>\n",
1203 " <td>0.861023</td>\n",
1204 " <td>0.001101</td>\n",
1205 " <td>0.757273</td>\n",
1206 " <td>5.804819e-18</td>\n",
1207 " <td>0.079159</td>\n",
1208 " <td>0.034682</td>\n",
1209 " <td>0.023887</td>\n",
1210 " </tr>\n",
1211 " <tr>\n",
1212 " <th>BPCL</th>\n",
1213 " <td>0.995791</td>\n",
1214 " <td>0.000141</td>\n",
1215 " <td>0.713010</td>\n",
1216 " <td>3.179843e-15</td>\n",
1217 " <td>0.104387</td>\n",
1218 " <td>0.040110</td>\n",
1219 " <td>0.003052</td>\n",
1220 " </tr>\n",
1221 " <tr>\n",
1222 " <th>BHARTIARTL</th>\n",
1223 " <td>0.767870</td>\n",
1224 " <td>0.001933</td>\n",
1225 " <td>0.657993</td>\n",
1226 " <td>1.833635e-12</td>\n",
1227 " <td>0.093677</td>\n",
1228 " <td>0.030929</td>\n",
1229 " <td>0.041936</td>\n",
1230 " </tr>\n",
1231 " <tr>\n",
1232 " <th>BRITANNIA</th>\n",
1233 " <td>0.794236</td>\n",
1234 " <td>0.003160</td>\n",
1235 " <td>0.721510</td>\n",
1236 " <td>1.041164e-15</td>\n",
1237 " <td>0.081250</td>\n",
1238 " <td>0.031991</td>\n",
1239 " <td>0.068548</td>\n",
1240 " </tr>\n",
1241 " <tr>\n",
1242 " <th>CIPLA</th>\n",
1243 " <td>0.423074</td>\n",
1244 " <td>0.004783</td>\n",
1245 " <td>0.397378</td>\n",
1246 " <td>1.052614e-04</td>\n",
1247 " <td>0.104148</td>\n",
1248 " <td>0.017041</td>\n",
1249 " <td>0.103745</td>\n",
1250 " </tr>\n",
1251 " <tr>\n",
1252 " <th>DIVISLAB</th>\n",
1253 " <td>0.540678</td>\n",
1254 " <td>0.000802</td>\n",
1255 " <td>0.591730</td>\n",
1256 " <td>8.160938e-10</td>\n",
1257 " <td>0.078520</td>\n",
1258 " <td>0.021778</td>\n",
1259 " <td>0.017398</td>\n",
1260 " </tr>\n",
1261 " <tr>\n",
1262 " <th>DRREDDY</th>\n",
1263 " <td>0.511975</td>\n",
1264 " <td>0.002733</td>\n",
1265 " <td>0.547835</td>\n",
1266 " <td>2.291640e-08</td>\n",
1267 " <td>0.083343</td>\n",
1268 " <td>0.020622</td>\n",
1269 " <td>0.059274</td>\n",
1270 " </tr>\n",
1271 " <tr>\n",
1272 " <th>EICHERMOT</th>\n",
1273 " <td>0.847342</td>\n",
1274 " <td>0.001675</td>\n",
1275 " <td>0.718170</td>\n",
1276 " <td>1.622323e-15</td>\n",
1277 " <td>0.087522</td>\n",
1278 " <td>0.034130</td>\n",
1279 " <td>0.036323</td>\n",
1280 " </tr>\n",
1281 " <tr>\n",
1282 " <th>GRASIM</th>\n",
1283 " <td>1.153968</td>\n",
1284 " <td>0.000034</td>\n",
1285 " <td>0.831132</td>\n",
1286 " <td>3.787729e-24</td>\n",
1287 " <td>0.082303</td>\n",
1288 " <td>0.046481</td>\n",
1289 " <td>0.000738</td>\n",
1290 " </tr>\n",
1291 " <tr>\n",
1292 " <th>HCLTECH</th>\n",
1293 " <td>0.806342</td>\n",
1294 " <td>0.000726</td>\n",
1295 " <td>0.736878</td>\n",
1296 " <td>1.241252e-16</td>\n",
1297 " <td>0.078858</td>\n",
1298 " <td>0.032479</td>\n",
1299 " <td>0.015750</td>\n",
1300 " </tr>\n",
1301 " <tr>\n",
1302 " <th>HDFCBANK</th>\n",
1303 " <td>1.070626</td>\n",
1304 " <td>0.000440</td>\n",
1305 " <td>0.863902</td>\n",
1306 " <td>6.003556e-28</td>\n",
1307 " <td>0.066538</td>\n",
1308 " <td>0.043124</td>\n",
1309 " <td>0.009551</td>\n",
1310 " </tr>\n",
1311 " <tr>\n",
1312 " <th>HDFCLIFE</th>\n",
1313 " <td>1.129709</td>\n",
1314 " <td>0.002056</td>\n",
1315 " <td>0.774306</td>\n",
1316 " <td>3.535886e-19</td>\n",
1317 " <td>0.098421</td>\n",
1318 " <td>0.045504</td>\n",
1319 " <td>0.044600</td>\n",
1320 " </tr>\n",
1321 " <tr>\n",
1322 " <th>HEROMOTOCO</th>\n",
1323 " <td>0.881682</td>\n",
1324 " <td>0.003828</td>\n",
1325 " <td>0.681071</td>\n",
1326 " <td>1.507190e-13</td>\n",
1327 " <td>0.101046</td>\n",
1328 " <td>0.035514</td>\n",
1329 " <td>0.083026</td>\n",
1330 " </tr>\n",
1331 " <tr>\n",
1332 " <th>HINDALCO</th>\n",
1333 " <td>1.413791</td>\n",
1334 " <td>0.000317</td>\n",
1335 " <td>0.841126</td>\n",
1336 " <td>3.247921e-25</td>\n",
1337 " <td>0.096906</td>\n",
1338 " <td>0.056947</td>\n",
1339 " <td>0.006881</td>\n",
1340 " </tr>\n",
1341 " <tr>\n",
1342 " <th>HINDUNILVR</th>\n",
1343 " <td>0.674073</td>\n",
1344 " <td>0.000493</td>\n",
1345 " <td>0.640879</td>\n",
1346 " <td>1.020894e-11</td>\n",
1347 " <td>0.086069</td>\n",
1348 " <td>0.027151</td>\n",
1349 " <td>0.010704</td>\n",
1350 " </tr>\n",
1351 " <tr>\n",
1352 " <th>ITC</th>\n",
1353 " <td>0.644056</td>\n",
1354 " <td>0.001352</td>\n",
1355 " <td>0.555297</td>\n",
1356 " <td>1.344592e-08</td>\n",
1357 " <td>0.102825</td>\n",
1358 " <td>0.025942</td>\n",
1359 " <td>0.029328</td>\n",
1360 " </tr>\n",
1361 " <tr>\n",
1362 " <th>INFY</th>\n",
1363 " <td>0.900669</td>\n",
1364 " <td>0.001006</td>\n",
1365 " <td>0.783850</td>\n",
1366 " <td>6.610627e-20</td>\n",
1367 " <td>0.076058</td>\n",
1368 " <td>0.036278</td>\n",
1369 " <td>0.021818</td>\n",
1370 " </tr>\n",
1371 " <tr>\n",
1372 " <th>M&M</th>\n",
1373 " <td>0.986166</td>\n",
1374 " <td>0.002683</td>\n",
1375 " <td>0.680960</td>\n",
1376 " <td>1.526249e-13</td>\n",
1377 " <td>0.113055</td>\n",
1378 " <td>0.039722</td>\n",
1379 " <td>0.058191</td>\n",
1380 " </tr>\n",
1381 " <tr>\n",
1382 " <th>MARUTI</th>\n",
1383 " <td>1.159254</td>\n",
1384 " <td>0.000890</td>\n",
1385 " <td>0.790180</td>\n",
1386 " <td>2.073142e-20</td>\n",
1387 " <td>0.095848</td>\n",
1388 " <td>0.046694</td>\n",
1389 " <td>0.019313</td>\n",
1390 " </tr>\n",
1391 " <tr>\n",
1392 " <th>NESTLEIND</th>\n",
1393 " <td>0.609998</td>\n",
1394 " <td>0.001078</td>\n",
1395 " <td>0.630517</td>\n",
1396 " <td>2.742949e-11</td>\n",
1397 " <td>0.080048</td>\n",
1398 " <td>0.024570</td>\n",
1399 " <td>0.023391</td>\n",
1400 " </tr>\n",
1401 " <tr>\n",
1402 " <th>ONGC</th>\n",
1403 " <td>0.946766</td>\n",
1404 " <td>0.000615</td>\n",
1405 " <td>0.591265</td>\n",
1406 " <td>8.476440e-10</td>\n",
1407 " <td>0.137661</td>\n",
1408 " <td>0.038135</td>\n",
1409 " <td>0.013335</td>\n",
1410 " </tr>\n",
1411 " <tr>\n",
1412 " <th>POWERGRID</th>\n",
1413 " <td>0.546962</td>\n",
1414 " <td>0.000674</td>\n",
1415 " <td>0.602836</td>\n",
1416 " <td>3.235837e-10</td>\n",
1417 " <td>0.077170</td>\n",
1418 " <td>0.022031</td>\n",
1419 " <td>0.014612</td>\n",
1420 " </tr>\n",
1421 " <tr>\n",
1422 " <th>RELIANCE</th>\n",
1423 " <td>1.135087</td>\n",
1424 " <td>0.004316</td>\n",
1425 " <td>0.814925</td>\n",
1426 " <td>1.472509e-22</td>\n",
1427 " <td>0.086055</td>\n",
1428 " <td>0.045721</td>\n",
1429 " <td>0.093603</td>\n",
1430 " </tr>\n",
1431 " <tr>\n",
1432 " <th>SBILIFE</th>\n",
1433 " <td>0.937018</td>\n",
1434 " <td>0.000577</td>\n",
1435 " <td>0.767873</td>\n",
1436 " <td>1.046227e-18</td>\n",
1437 " <td>0.083331</td>\n",
1438 " <td>0.037743</td>\n",
1439 " <td>0.012512</td>\n",
1440 " </tr>\n",
1441 " <tr>\n",
1442 " <th>SHREECEM</th>\n",
1443 " <td>0.816441</td>\n",
1444 " <td>0.000606</td>\n",
1445 " <td>0.770082</td>\n",
1446 " <td>7.238150e-19</td>\n",
1447 " <td>0.072099</td>\n",
1448 " <td>0.032886</td>\n",
1449 " <td>0.013143</td>\n",
1450 " </tr>\n",
1451 " <tr>\n",
1452 " <th>SUNPHARMA</th>\n",
1453 " <td>0.610399</td>\n",
1454 " <td>0.002969</td>\n",
1455 " <td>0.574827</td>\n",
1456 " <td>3.124497e-09</td>\n",
1457 " <td>0.092626</td>\n",
1458 " <td>0.024587</td>\n",
1459 " <td>0.064388</td>\n",
1460 " </tr>\n",
1461 " <tr>\n",
1462 " <th>TCS</th>\n",
1463 " <td>0.790902</td>\n",
1464 " <td>0.001600</td>\n",
1465 " <td>0.776260</td>\n",
1466 " <td>2.525346e-19</td>\n",
1467 " <td>0.068470</td>\n",
1468 " <td>0.031857</td>\n",
1469 " <td>0.034696</td>\n",
1470 " </tr>\n",
1471 " <tr>\n",
1472 " <th>TATACONSUM</th>\n",
1473 " <td>0.974910</td>\n",
1474 " <td>0.002236</td>\n",
1475 " <td>0.799473</td>\n",
1476 " <td>3.507506e-21</td>\n",
1477 " <td>0.078087</td>\n",
1478 " <td>0.039269</td>\n",
1479 " <td>0.048498</td>\n",
1480 " </tr>\n",
1481 " </tbody>\n",
1482 "</table>\n",
1483 "</div>"
1484 ],
1485 "text/plain": [
1486 " Beta Alpha rvalue pvalue stderr \\\n",
1487 "ADANIPORTS 0.895755 0.001280 0.711127 4.049750e-15 0.094405 \n",
1488 "BAJAJ-AUTO 0.861023 0.001101 0.757273 5.804819e-18 0.079159 \n",
1489 "BPCL 0.995791 0.000141 0.713010 3.179843e-15 0.104387 \n",
1490 "BHARTIARTL 0.767870 0.001933 0.657993 1.833635e-12 0.093677 \n",
1491 "BRITANNIA 0.794236 0.003160 0.721510 1.041164e-15 0.081250 \n",
1492 "CIPLA 0.423074 0.004783 0.397378 1.052614e-04 0.104148 \n",
1493 "DIVISLAB 0.540678 0.000802 0.591730 8.160938e-10 0.078520 \n",
1494 "DRREDDY 0.511975 0.002733 0.547835 2.291640e-08 0.083343 \n",
1495 "EICHERMOT 0.847342 0.001675 0.718170 1.622323e-15 0.087522 \n",
1496 "GRASIM 1.153968 0.000034 0.831132 3.787729e-24 0.082303 \n",
1497 "HCLTECH 0.806342 0.000726 0.736878 1.241252e-16 0.078858 \n",
1498 "HDFCBANK 1.070626 0.000440 0.863902 6.003556e-28 0.066538 \n",
1499 "HDFCLIFE 1.129709 0.002056 0.774306 3.535886e-19 0.098421 \n",
1500 "HEROMOTOCO 0.881682 0.003828 0.681071 1.507190e-13 0.101046 \n",
1501 "HINDALCO 1.413791 0.000317 0.841126 3.247921e-25 0.096906 \n",
1502 "HINDUNILVR 0.674073 0.000493 0.640879 1.020894e-11 0.086069 \n",
1503 "ITC 0.644056 0.001352 0.555297 1.344592e-08 0.102825 \n",
1504 "INFY 0.900669 0.001006 0.783850 6.610627e-20 0.076058 \n",
1505 "M&M 0.986166 0.002683 0.680960 1.526249e-13 0.113055 \n",
1506 "MARUTI 1.159254 0.000890 0.790180 2.073142e-20 0.095848 \n",
1507 "NESTLEIND 0.609998 0.001078 0.630517 2.742949e-11 0.080048 \n",
1508 "ONGC 0.946766 0.000615 0.591265 8.476440e-10 0.137661 \n",
1509 "POWERGRID 0.546962 0.000674 0.602836 3.235837e-10 0.077170 \n",
1510 "RELIANCE 1.135087 0.004316 0.814925 1.472509e-22 0.086055 \n",
1511 "SBILIFE 0.937018 0.000577 0.767873 1.046227e-18 0.083331 \n",
1512 "SHREECEM 0.816441 0.000606 0.770082 7.238150e-19 0.072099 \n",
1513 "SUNPHARMA 0.610399 0.002969 0.574827 3.124497e-09 0.092626 \n",
1514 "TCS 0.790902 0.001600 0.776260 2.525346e-19 0.068470 \n",
1515 "TATACONSUM 0.974910 0.002236 0.799473 3.507506e-21 0.078087 \n",
1516 "\n",
1517 " beta_weights alpha_weights \n",
1518 "ADANIPORTS 0.036081 0.027759 \n",
1519 "BAJAJ-AUTO 0.034682 0.023887 \n",
1520 "BPCL 0.040110 0.003052 \n",
1521 "BHARTIARTL 0.030929 0.041936 \n",
1522 "BRITANNIA 0.031991 0.068548 \n",
1523 "CIPLA 0.017041 0.103745 \n",
1524 "DIVISLAB 0.021778 0.017398 \n",
1525 "DRREDDY 0.020622 0.059274 \n",
1526 "EICHERMOT 0.034130 0.036323 \n",
1527 "GRASIM 0.046481 0.000738 \n",
1528 "HCLTECH 0.032479 0.015750 \n",
1529 "HDFCBANK 0.043124 0.009551 \n",
1530 "HDFCLIFE 0.045504 0.044600 \n",
1531 "HEROMOTOCO 0.035514 0.083026 \n",
1532 "HINDALCO 0.056947 0.006881 \n",
1533 "HINDUNILVR 0.027151 0.010704 \n",
1534 "ITC 0.025942 0.029328 \n",
1535 "INFY 0.036278 0.021818 \n",
1536 "M&M 0.039722 0.058191 \n",
1537 "MARUTI 0.046694 0.019313 \n",
1538 "NESTLEIND 0.024570 0.023391 \n",
1539 "ONGC 0.038135 0.013335 \n",
1540 "POWERGRID 0.022031 0.014612 \n",
1541 "RELIANCE 0.045721 0.093603 \n",
1542 "SBILIFE 0.037743 0.012512 \n",
1543 "SHREECEM 0.032886 0.013143 \n",
1544 "SUNPHARMA 0.024587 0.064388 \n",
1545 "TCS 0.031857 0.034696 \n",
1546 "TATACONSUM 0.039269 0.048498 "
1547 ]
1548 },
1549 "execution_count": 94,
1550 "metadata": {},
1551 "output_type": "execute_result"
1552 }
1553 ],
1554 "source": [
1555 "stats"
1556 ]
1557 },
1558 {
1559 "cell_type": "code",
1560 "execution_count": null,
1561 "id": "53b7d9c3",
1562 "metadata": {},
1563 "outputs": [],
1564 "source": []
1565 },
1566 {
1567 "cell_type": "code",
1568 "execution_count": 50,
1569 "id": "40c5dd85",
1570 "metadata": {},
1571 "outputs": [],
1572 "source": [
1573 "portfolio_return=pd.DataFrame()"
1574 ]
1575 },
1576 {
1577 "cell_type": "code",
1578 "execution_count": null,
1579 "id": "960816d4",
1580 "metadata": {},
1581 "outputs": [],
1582 "source": []
1583 },
1584 {
1585 "cell_type": "code",
1586 "execution_count": 96,
1587 "id": "26d99d1a",
1588 "metadata": {},
1589 "outputs": [],
1590 "source": [
1591 "import numpy as np\n"
1592 ]
1593 },
1594 {
1595 "cell_type": "code",
1596 "execution_count": 97,
1597 "id": "c0e56db5",
1598 "metadata": {},
1599 "outputs": [],
1600 "source": [
1601 "nifty=df_return.pop('NIFTY')"
1602 ]
1603 },
1604 {
1605 "cell_type": "code",
1606 "execution_count": null,
1607 "id": "be67c4f2",
1608 "metadata": {},
1609 "outputs": [],
1610 "source": []
1611 },
1612 {
1613 "cell_type": "code",
1614 "execution_count": 104,
1615 "id": "62df9fe8",
1616 "metadata": {},
1617 "outputs": [],
1618 "source": [
1619 "df_return=df_return[stats.T.columns].T"
1620 ]
1621 },
1622 {
1623 "cell_type": "code",
1624 "execution_count": null,
1625 "id": "a484276c",
1626 "metadata": {},
1627 "outputs": [],
1628 "source": [
1629 "stats"
1630 ]
1631 },
1632 {
1633 "cell_type": "code",
1634 "execution_count": 121,
1635 "id": "e7ea6f1a",
1636 "metadata": {
1637 "scrolled": true
1638 },
1639 "outputs": [
1640 {
1641 "data": {
1642 "text/plain": [
1643 "ADANIPORTS -0.001212\n",
1644 "BAJAJ-AUTO -0.008218\n",
1645 "BPCL -0.007991\n",
1646 "BHARTIARTL 0.004048\n",
1647 "BRITANNIA -0.007413\n",
1648 "Name: 1, dtype: float64"
1649 ]
1650 },
1651 "execution_count": 121,
1652 "metadata": {},
1653 "output_type": "execute_result"
1654 }
1655 ],
1656 "source": [
1657 "df_return[1].head()"
1658 ]
1659 },
1660 {
1661 "cell_type": "code",
1662 "execution_count": 122,
1663 "id": "bbe59fa1",
1664 "metadata": {},
1665 "outputs": [
1666 {
1667 "data": {
1668 "text/plain": [
1669 "ADANIPORTS 0.027759\n",
1670 "BAJAJ-AUTO 0.023887\n",
1671 "BPCL 0.003052\n",
1672 "BHARTIARTL 0.041936\n",
1673 "BRITANNIA 0.068548\n",
1674 "Name: alpha_weights, dtype: float64"
1675 ]
1676 },
1677 "execution_count": 122,
1678 "metadata": {},
1679 "output_type": "execute_result"
1680 }
1681 ],
1682 "source": [
1683 "stats.alpha_weights.head()"
1684 ]
1685 },
1686 {
1687 "cell_type": "code",
1688 "execution_count": 123,
1689 "id": "06584e4c",
1690 "metadata": {},
1691 "outputs": [
1692 {
1693 "data": {
1694 "text/plain": [
1695 "-3.3643908e-05"
1696 ]
1697 },
1698 "execution_count": 123,
1699 "metadata": {},
1700 "output_type": "execute_result"
1701 }
1702 ],
1703 "source": [
1704 "0.027759*-0.001212"
1705 ]
1706 },
1707 {
1708 "cell_type": "code",
1709 "execution_count": null,
1710 "id": "11c894ac",
1711 "metadata": {},
1712 "outputs": [],
1713 "source": []
1714 },
1715 {
1716 "cell_type": "code",
1717 "execution_count": 124,
1718 "id": "be1d50a3",
1719 "metadata": {},
1720 "outputs": [
1721 {
1722 "data": {
1723 "text/plain": [
1724 "-0.007182989036520953"
1725 ]
1726 },
1727 "execution_count": 124,
1728 "metadata": {},
1729 "output_type": "execute_result"
1730 }
1731 ],
1732 "source": [
1733 "sum(df_return[1]*stats.alpha_weights)"
1734 ]
1735 },
1736 {
1737 "cell_type": "code",
1738 "execution_count": 144,
1739 "id": "d005bb25",
1740 "metadata": {},
1741 "outputs": [],
1742 "source": [
1743 "portfolio_return=pd.DataFrame()\n",
1744 "portfolio_return['alpha_return']= df_return.apply(lambda x: sum(x*stats.alpha_weights))\n",
1745 "portfolio_return['beta_return']=df_return.apply(lambda x : sum(x*stats.beta_weights))"
1746 ]
1747 },
1748 {
1749 "cell_type": "code",
1750 "execution_count": 146,
1751 "id": "c2ed1649",
1752 "metadata": {},
1753 "outputs": [
1754 {
1755 "data": {
1756 "text/plain": [
1757 "alpha_return 0.001425\n",
1758 "beta_return 0.001311\n",
1759 "dtype: float64"
1760 ]
1761 },
1762 "execution_count": 146,
1763 "metadata": {},
1764 "output_type": "execute_result"
1765 }
1766 ],
1767 "source": [
1768 "np.mean(portfolio_return)"
1769 ]
1770 },
1771 {
1772 "cell_type": "code",
1773 "execution_count": 147,
1774 "id": "a6e6edee",
1775 "metadata": {},
1776 "outputs": [
1777 {
1778 "data": {
1779 "text/plain": [
1780 "alpha_return 0.015755\n",
1781 "beta_return 0.017037\n",
1782 "dtype: float64"
1783 ]
1784 },
1785 "execution_count": 147,
1786 "metadata": {},
1787 "output_type": "execute_result"
1788 }
1789 ],
1790 "source": [
1791 "np.std(portfolio_return)"
1792 ]
1793 },
1794 {
1795 "cell_type": "code",
1796 "execution_count": null,
1797 "id": "31c1f33a",
1798 "metadata": {},
1799 "outputs": [],
1800 "source": [
1801 "#sharpe ratio= return / std"
1802 ]
1803 },
1804 {
1805 "cell_type": "code",
1806 "execution_count": 150,
1807 "id": "56f4cf3b",
1808 "metadata": {},
1809 "outputs": [
1810 {
1811 "data": {
1812 "text/plain": [
1813 "alpha_return 0.090473\n",
1814 "beta_return 0.076961\n",
1815 "dtype: float64"
1816 ]
1817 },
1818 "execution_count": 150,
1819 "metadata": {},
1820 "output_type": "execute_result"
1821 }
1822 ],
1823 "source": [
1824 "np.mean(portfolio_return)/ np.std(portfolio_return)"
1825 ]
1826 },
1827 {
1828 "cell_type": "code",
1829 "execution_count": null,
1830 "id": "0355a09d",
1831 "metadata": {},
1832 "outputs": [],
1833 "source": []
1834 },
1835 {
1836 "cell_type": "code",
1837 "execution_count": null,
1838 "id": "c3f375e6",
1839 "metadata": {},
1840 "outputs": [],
1841 "source": []
1842 },
1843 {
1844 "cell_type": "code",
1845 "execution_count": 15,
1846 "id": "7899a4d2",
1847 "metadata": {},
1848 "outputs": [
1849 {
1850 "ename": "KeyError",
1851 "evalue": "'slope'",
1852 "output_type": "error",
1853 "traceback": [
1854 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
1855 "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
1856 "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3079\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3080\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3081\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
1857 "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
1858 "\u001b[1;32mpandas\\_libs\\index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
1859 "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
1860 "\u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi\u001b[0m in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
1861 "\u001b[1;31mKeyError\u001b[0m: 'slope'",
1862 "\nThe above exception was the direct cause of the following exception:\n",
1863 "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
1864 "\u001b[1;32m<ipython-input-15-177aabdccf6a>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mscore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mr2_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_return\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mcolumn\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_pre\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mscore\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mstats\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'r2_score'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mR2Score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
1865 "\u001b[1;32m<ipython-input-15-177aabdccf6a>\u001b[0m in \u001b[0;36mR2Score\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mscore\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mcolumn\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0my_pre\u001b[0m\u001b[1;33m=\u001b[0m \u001b[0mdf_return\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'NIFTY'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mstats\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'slope'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mcolumn\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m+\u001b[0m \u001b[0mstats\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'intercept'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mcolumn\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mscore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mr2_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdf_return\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mcolumn\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_pre\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mscore\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
1866 "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\core\\frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3022\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnlevels\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3023\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3024\u001b[1;33m \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3025\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3026\u001b[0m \u001b[0mindexer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mindexer\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
1867 "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\base.py\u001b[0m in \u001b[0;36mget_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3080\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcasted_key\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3081\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3082\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0merr\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3083\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3084\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mtolerance\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
1868 "\u001b[1;31mKeyError\u001b[0m: 'slope'"
1869 ]
1870 }
1871 ],
1872 "source": [
1873 "from sklearn.metrics import r2_score\n",
1874 "def R2Score():\n",
1875 " score=[]\n",
1876 " for column in df.columns:\n",
1877 " y_pre= df_return['NIFTY']*stats['slope'][column]+ stats['intercept'][column]\n",
1878 " score.append(r2_score(df_return[column], y_pre))\n",
1879 " return score \n",
1880 "stats['r2_score']=R2Score()"
1881 ]
1882 },
1883 {
1884 "cell_type": "code",
1885 "execution_count": null,
1886 "id": "adddebc9",
1887 "metadata": {},
1888 "outputs": [],
1889 "source": [
1890 "stats.sort_values(by='r2_score', ascending=False)"
1891 ]
1892 },
1893 {
1894 "cell_type": "code",
1895 "execution_count": null,
1896 "id": "58ae0f23",
1897 "metadata": {},
1898 "outputs": [],
1899 "source": []
1900 },
1901 {
1902 "cell_type": "code",
1903 "execution_count": null,
1904 "id": "9c9f04b5",
1905 "metadata": {},
1906 "outputs": [],
1907 "source": [
1908 "def plot_relations():\n",
1909 " import matplotlib.pyplot as plt\n",
1910 " import matplotlib as mpl\n",
1911 " mpl.rc('figure', max_open_warning = 0)\n",
1912 " x=df_return['%5ENSEI']\n",
1913 " for column in df_return.columns: #it will plot all 51 graphs \n",
1914 " plt.figure()\n",
1915 " plt.scatter(x, df_return[column])\n",
1916 " plt.plot(x,stats['slope'][column]*x+stats['intercept'][column], color='r')\n",
1917 " plt.xlabel('Nifty %Return')\n",
1918 " plt.title(column[:-3])\n",
1919 "\n",
1920 " \n",
1921 "#plot_relations()"
1922 ]
1923 },
1924 {
1925 "cell_type": "code",
1926 "execution_count": null,
1927 "id": "19728789",
1928 "metadata": {},
1929 "outputs": [],
1930 "source": [
1931 "#if graphs using too much ram use code below\n",
1932 "\n",
1933 "#plt.close('all')"
1934 ]
1935 },
1936 {
1937 "cell_type": "code",
1938 "execution_count": null,
1939 "id": "637a22c1",
1940 "metadata": {},
1941 "outputs": [],
1942 "source": []
1943 },
1944 {
1945 "cell_type": "code",
1946 "execution_count": null,
1947 "id": "23cb67db",
1948 "metadata": {},
1949 "outputs": [],
1950 "source": [
1951 "stats['ratio']= stats.intercept/ stats.slope #to minimize slope and maximize intercept, just maximize this ratio"
1952 ]
1953 },
1954 {
1955 "cell_type": "code",
1956 "execution_count": null,
1957 "id": "605fb050",
1958 "metadata": {},
1959 "outputs": [],
1960 "source": [
1961 "stats.sort_values(by='ratio', ascending=False)"
1962 ]
1963 },
1964 {
1965 "cell_type": "code",
1966 "execution_count": null,
1967 "id": "c1d0088a",
1968 "metadata": {},
1969 "outputs": [],
1970 "source": []
1971 },
1972 {
1973 "cell_type": "code",
1974 "execution_count": null,
1975 "id": "ea647559",
1976 "metadata": {},
1977 "outputs": [],
1978 "source": []
1979 },
1980 {
1981 "cell_type": "code",
1982 "execution_count": null,
1983 "id": "bfb20700",
1984 "metadata": {},
1985 "outputs": [],
1986 "source": []
1987 }
1988 ],
1989 "metadata": {
1990 "kernelspec": {
1991 "display_name": "Python 3",
1992 "language": "python",
1993 "name": "python3"
1994 },
1995 "language_info": {
1996 "codemirror_mode": {
1997 "name": "ipython",
1998 "version": 3
1999 },
2000 "file_extension": ".py",
2001 "mimetype": "text/x-python",
2002 "name": "python",
2003 "nbconvert_exporter": "python",
2004 "pygments_lexer": "ipython3",
2005 "version": "3.8.8"
2006 }
2007 },
2008 "nbformat": 4,
2009 "nbformat_minor": 5
2010 }
2011