Format: application/octet-stream
⬇ Download File (71.2 KB)
   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&amp;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&amp;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