Skip to content

Instantly share code, notes, and snippets.

@nerevar
Last active March 22, 2020 09:24
Show Gist options
  • Save nerevar/45a981bb0575c49fe9319a92dfcab8fa to your computer and use it in GitHub Desktop.
Save nerevar/45a981bb0575c49fe9319a92dfcab8fa to your computer and use it in GitHub Desktop.
Дивиденды, выплаченные компаниями в 2018-2019-2020, взято с https://investmint.ru/
ticker datetime close dividend percent
NLMK 2018-01-09 153.0 5.13 3.35
AVAN 2018-01-09 520.0 6.2 1.19
KAZTP 2018-01-08 84.7 1.0 1.18
AKRN 2018-01-23 4180.0 112.0 2.68
PHOR 2018-03-12 2491.0 21.0 0.84
HIMCP 2018-03-25 6.03 0.12 1.97
GCHE 2018-04-03 1310.0 75.07 5.73
AGRO 2018-04-13 637.0 16.7 2.62
NVTK 2018-05-03 770.0 8.0 1.04
CHEP 2018-05-10 251.0 11.56 4.61
KAZT 2018-05-10 86.6 2.0 2.31
KAZTP 2018-05-10 86.0 2.0 2.33
POLY 2018-05-11 612.6 18.9906 3.1
MOEX 2018-05-15 123.06 5.47 4.44
TTLK 2018-05-15 0.21 0.0192 8.95
FIVE 2018-05-25 1871.5 79.5 4.25
TRCN 2018-05-28 5295.0 293.04 5.53
DSKY 2018-05-29 96.5 3.88 4.02
VLHZ 2018-05-30 95.5 4.9 5.13
PMSB 2018-05-30 86.0 8.37 9.73
PMSBP 2018-05-30 86.3 8.37 9.7
IRAO 2018-06-01 4.07 0.13 3.2
BSPB 2018-06-04 50.6 1.62 3.2
VTBR 2018-06-04 0.04989 0.0034535 6.92
KUBE 2018-06-05 67.8 1.06 1.56
VSMO 2018-06-06 17640.0 890.45 5.05
PLZL 2018-06-10 3911.0 147.12 3.76
SFIN 2018-06-08 702.0 17.25 2.46
MAGN 2018-06-13 49.2 0.81 1.64
MRKV 2018-06-13 0.13 0.0148 11.0
MRKU 2018-06-13 0.22 0.0216 9.62
MRKC 2018-06-13 0.36 0.0208 5.86
MRKP 2018-06-12 0.36 0.0402 11.32
PHOR 2018-06-13 2306.0 15.0 0.65
AKRN 2018-06-14 4404.0 185.0 4.2
TCSG 2018-06-15 1340.73 15.016176000000003 1.12
MSNG 2018-06-18 2.56 0.17 6.48
MSRS 2018-06-18 0.72 0.0316 4.37
KZOS 2018-06-18 100.0 4.25 4.25
KZOSP 2018-06-18 9.7 0.25 2.58
TORSP 2018-06-18 0.32 0.0172 5.36
CNTL 2018-06-18 16.5 0.030069 0.18
CNTLP 2018-06-18 12.0 0.030069 0.25
LSNG 2018-06-19 5.88 0.14 2.32
LSNGP 2018-06-19 120.0 13.47 11.23
MRKS 2018-06-19 0.11 0.0037 3.39
CHMF 2018-06-19 1039.4 66.04 6.35
MRKY 2018-06-20 0.0658 0.0054644 8.3
NLMK 2018-06-20 167.3 9.09 5.43
ENRU 2018-06-22 1.46 0.14 9.96
MAGN 2018-06-25 45.3 0.8 1.77
TGKA 2018-06-25 0.00964 0.0004898 5.08
SIBN 2018-06-26 312.4 5.0 1.6
NKHP 2018-06-26 215.5 5.66 2.63
SBER 2018-06-26 214.43 12.0 5.6
SBERP 2018-06-26 191.5 12.0 6.27
HIMCP 2018-06-26 7.0 0.21 2.99
ABRD 2018-06-26 147.0 2.86 1.95
ROSN 2018-07-02 396.5 6.65 1.68
TRMK 2018-07-02 77.7 2.28 2.93
MSTT 2018-07-03 107.0 2.19 2.05
UPRO 2018-07-03 2.91 0.11 3.82
DIOD 2018-07-04 5.12 0.43 8.4
AFLT 2018-07-06 140.0 12.81 9.15
KBTK 2018-07-06 184.0 10.0 5.43
MGNT 2018-07-06 4630.0 135.5 2.93
RTKM 2018-07-08 74.9 5.05 6.74
RTKMP 2018-07-08 66.0 5.05 7.65
HYDR 2018-07-07 0.68 0.0263 3.84
TATN 2018-07-06 684.15 12.16 1.78
TATNP 2018-07-06 458.4 24.32 5.31
AVAN 2018-07-08 547.0 6.2 1.13
BANE 2018-07-09 2138.0 158.95 7.43
BANEP 2018-07-09 1758.5 158.95 9.04
LNZLP 2018-07-09 2790.0 8.71 0.31
MTSS 2018-07-09 288.0 23.4 8.13
RSTI 2018-07-09 0.79 0.012 1.52
RSTIP 2018-07-09 1.37 0.0429 3.14
CHKZ 2018-07-09 2100.0 100.0 4.76
MRSB 2018-07-09 0.43 0.01165 2.7
VZRZ 2018-07-10 401.0 0.5 0.12
VZRZP 2018-07-10 205.0 2.0 0.98
LSRG 2018-07-10 850.0 78.0 9.18
OGKB 2018-07-10 0.4 0.0163 4.08
TRNFP 2018-07-10 168850.0 7578.27 4.49
HIMCP 2018-07-10 6.9 0.14 2.0
LKOH 2018-07-11 4452.0 130.0 2.92
MGTSP 2018-07-12 2130.0 231.0 10.85
MGTS 2018-07-12 2230.0 231.0 10.36
ALRS 2018-07-14 106.0 5.24 4.94
KBSB 2018-07-16 149.0 4.14 2.78
OBUV 2018-07-16 98.6 2.32 2.35
IRKT 2018-07-17 23.9 1.14 4.77
GMKN 2018-07-17 11398.0 607.98 5.33
KMAZ 2018-07-18 60.95 1.06 1.74
MTLRP 2018-07-18 135.75 16.66 12.27
FEES 2018-07-18 0.19 0.0148 7.83
AFKS 2018-07-19 9.04 0.11 1.22
GAZP 2018-07-19 145.31 8.04 5.53
SNGS 2018-07-19 28.6 0.65 2.27
SNGSP 2018-07-19 33.4 1.38 4.13
PHOR 2018-07-23 2328.0 24.0 1.03
PIKK 2018-09-04 364.0 22.71 6.24
POLY 2018-09-07 556.5 11.5752 2.08
AGRO 2018-09-14 723.0 8.14 1.13
TCSG 2018-09-14 1122.18 16.608264000000002 1.48
CHMF 2018-09-25 1115.0 45.94 4.12
GMKN 2018-10-01 11830.0 776.02 6.56
GCHE 2018-10-08 1155.0 20.48 1.77
MAGN 2018-10-09 51.8 1.59 3.07
MTSS 2018-10-09 275.1 2.6 0.95
NMTP 2018-10-09 6.99 0.52 7.43
ROSN 2018-10-09 503.0 14.58 2.9
NVTK 2018-10-10 1180.0 9.25 0.78
VSMO 2018-10-12 16660.0 756.0 4.54
NLMK 2018-10-12 176.34 5.24 2.97
TATN 2018-10-12 823.8 30.27 3.67
TATNP 2018-10-12 578.0 30.27 5.24
PHOR 2018-10-12 2493.0 45.0 1.81
ALRS 2018-10-15 101.0 5.93 5.87
PLZL 2018-10-18 4316.0 131.11 3.04
AKRN 2018-10-30 4531.0 40.0 0.88
CHMF 2018-12-04 1002.7 44.39 4.43
TCSG 2018-12-07 1132.97 18.694005 1.65
HIMCP 2018-12-11 6.54 0.14 2.11
NKHP 2018-12-17 247.0 17.75 7.19
MAGN 2018-12-18 46.72 2.11 4.52
UPRO 2018-12-18 2.71 0.11 4.1
LKOH 2018-12-21 4910.0 95.0 1.93
MGNT 2018-12-21 3675.0 137.38 3.74
KAZT 2018-12-23 103.6 2.0 1.93
KAZTP 2018-12-23 104.0 2.0 1.92
DSKY 2018-12-26 94.88 4.39 4.63
SIBN 2018-12-28 359.5 22.05 6.13
NLMK 2019-01-09 155.68 6.04 3.88
NMTP 2019-01-09 6.92 0.26 3.82
TATN 2019-01-09 737.7 22.26 3.02
TATNP 2019-01-09 519.0 22.26 4.29
RTKM 2019-01-13 73.76 2.5 3.39
RTKMP 2019-01-13 61.8 2.5 4.05
PHOR 2019-02-04 2583.0 72.0 2.79
AKRN 2019-03-22 4700.0 130.0 2.77
TCSG 2019-03-22 1226.07 20.475368999999997 1.67
HIMCP 2019-03-25 6.78 0.15 2.27
GCHE 2019-04-07 1950.0 101.63 5.21
NKNC 2019-04-22 88.8 19.94 22.45
NKNCP 2019-04-22 75.5 19.94 26.41
AGRO 2019-05-01 748.0 25.65 3.43
AVAN 2019-05-03 780.0 24.78 3.18
NLMK 2019-05-06 175.08 5.8 3.31
NVTK 2019-05-06 1207.2 16.81 1.39
KZOS 2019-05-06 103.7 7.79 7.51
KZOSP 2019-05-06 8.99 0.25 2.78
CHMF 2019-05-07 1055.0 32.08 3.04
KAZT 2019-05-07 136.6 5.0 3.66
KAZTP 2019-05-07 136.6 5.0 3.66
POLY 2019-05-10 688.0 20.296000000000003 2.95
MOEX 2019-05-14 91.67 7.7 8.4
TTLK 2019-05-14 0.22 0.0193 8.67
PLZL 2019-05-16 5018.0 143.62 2.86
FIVE 2019-05-24 1933.5 92.06 4.76
TCSG 2019-05-24 1339.26 10.981931999999999 0.82
DSKY 2019-05-27 89.8 4.45 4.96
QIWI 2019-05-28 1061.0 18.09 1.7
IRAO 2019-05-31 4.1 0.17 4.19
KUZB 2019-06-01 0.01111 0.000844 7.6
TRCN 2019-06-01 6795.0 480.37 7.07
VSMO 2019-06-03 17600.0 873.42 4.96
MRKU 2019-06-03 0.18 0.003 1.68
PIKK 2019-06-03 389.9 22.71 5.82
PMSB 2019-06-03 104.8 10.9 10.4
PMSBP 2019-06-03 99.8 10.9 10.92
CBOM 2019-06-07 5.98 0.11 1.84
SFIN 2019-06-08 518.0 14.5 2.8
BSPB 2019-06-10 54.2 3.71 6.85
MRKV 2019-06-10 0.11 0.0132 12.22
MRKC 2019-06-10 0.3 0.0208 6.92
PHOR 2019-06-10 2448.0 51.0 2.08
AKRN 2019-06-11 4634.0 135.0 2.91
VZRZP 2019-06-11 216.2 2.0 0.93
MAGN 2019-06-11 45.6 1.4 3.07
SBER 2019-06-13 249.0 16.0 6.43
SBERP 2019-06-13 220.1 16.0 7.27
MGNT 2019-06-14 3781.0 166.78 4.41
HIMCP 2019-06-16 6.05 0.14 2.35
ROSN 2019-06-17 422.0 11.33 2.68
CHMF 2019-06-18 1121.0 35.43 3.16
MRKY 2019-06-19 0.07435 0.0068417 9.2
NLMK 2019-06-19 182.0 7.34 4.03
CNTL 2019-06-19 22.4 7.41 33.08
CNTLP 2019-06-19 19.4 7.41 38.2
MAGN 2019-06-20 47.0 1.49 3.17
GMKN 2019-06-21 14868.0 792.52 5.33
BANE 2019-06-24 2062.0 158.95 7.71
BANEP 2019-06-24 1784.0 158.95 8.91
VTBR 2019-06-24 0.040415 0.0010987 2.72
MRKS 2019-06-24 0.29 0.00102 0.35
SELGP 2019-06-24 25.55 2.25 8.81
MSRS 2019-06-25 0.79 0.059 7.46
MRKZ 2019-06-25 0.06915 0.003985 5.76
MRKP 2019-06-25 0.3 0.0407 13.38
NMTP 2019-06-25 7.77 0.5 6.44
UPRO 2019-06-25 2.6 0.11 4.27
AVAN 2019-06-25 580.0 11.15 1.92
TGKA 2019-06-26 0.010874 0.0006446 5.93
OGKB 2019-06-28 0.56 0.0368 6.53
SIBN 2019-07-01 403.9 7.95 1.97
LSNG 2019-07-01 5.73 0.0352 0.61
LSNGP 2019-07-01 110.7 11.14 10.06
KUBE 2019-07-01 65.8 0.47 0.72
MSNG 2019-07-02 2.51 0.21 8.37
TORS 2019-07-03 0.31 0.011 3.57
TORSP 2019-07-03 0.28 0.011 3.91
RTKM 2019-07-04 80.66 2.5 3.1
RTKMP 2019-07-04 65.15 2.5 3.84
AFLT 2019-07-05 104.6 2.69 2.57
TATN 2019-07-05 780.0 32.38 4.15
TATNP 2019-07-05 664.5 32.38 4.87
LNZLP 2019-07-08 3100.0 110.0 3.55
RSTI 2019-07-08 1.4 0.0244 1.74
RSTIP 2019-07-08 1.67 0.08 4.79
ENRU 2019-07-08 1.14 0.14 12.44
ALNU 2019-07-09 95200.0 10395.0 10.92
LKOH 2019-07-09 5460.0 155.0 2.84
MTSS 2019-07-09 284.95 19.98 7.01
NKHP 2019-07-09 248.0 6.96 2.81
HYDR 2019-07-09 0.62 0.0367 5.91
CHEP 2019-07-09 153.0 15.38 10.05
LSRG 2019-07-10 790.0 78.0 9.87
PHOR 2019-07-10 2501.0 72.0 2.88
ABRD 2019-07-10 142.0 2.86 2.01
DIOD 2019-07-11 5.08 0.43 8.46
MGTSP 2019-07-11 2034.0 232.0 11.41
MGTS 2019-07-11 2135.0 232.0 10.87
ALRS 2019-07-15 82.52 4.11 4.98
FEES 2019-07-16 0.2 0.016 7.91
AFKS 2019-07-18 11.57 0.11 0.95
GAZP 2019-07-18 238.01 16.61 6.98
MTLRP 2019-07-18 116.15 18.21 15.68
SNGS 2019-07-18 26.83 0.65 2.42
SNGSP 2019-07-18 41.95 7.62 18.16
TRMK 2019-07-18 60.0 2.55 4.25
OBUV 2019-07-18 58.4 2.36 4.04
TRNFP 2019-07-20 165200.0 10706.0 6.48
HIMCP 2019-08-17 6.33 0.0882 1.39
QIWI 2019-08-30 1592.0 18.75 1.18
POLY 2019-09-06 971.6 13.213760000000002 1.36
AVAN 2019-09-09 680.0 8.67 1.28
AGRO 2019-09-13 734.0 12.68 1.73
CHMF 2019-09-17 1014.0 26.72 2.64
KAZT 2019-09-23 155.0 1.0 0.65
KAZTP 2019-09-23 156.8 1.0 0.64
TATN 2019-09-27 740.0 40.11 5.42
TATNP 2019-09-27 667.0 40.11 6.01
GEMA 2019-10-01 633.4 33.0 5.21
TRCN 2019-10-03 8740.0 154.57 1.77
GMKN 2019-10-07 16602.0 883.93 5.32
GCHE 2019-10-07 1810.0 48.79 2.7
NLMK 2019-10-10 131.58 3.68 2.8
NVTK 2019-10-10 1314.0 14.23 1.08
PLZL 2019-10-10 7680.0 162.98 2.12
VSMO 2019-10-11 17740.0 884.6 4.99
ROSN 2019-10-11 421.15 15.34 3.64
ALRS 2019-10-14 73.2 3.84 5.25
MTSS 2019-10-14 272.75 8.68 3.18
MAGN 2019-10-15 37.61 0.69 1.83
PHOR 2019-10-15 2504.0 162.0 6.47
SIBN 2019-10-18 428.2 54.42 12.71
RASP 2019-10-20 118.28 2.5 2.11
CHKZ 2019-11-18 7300.0 125.0 1.71
KUZB 2019-11-19 0.02349 0.00066656324 2.84
AVAN 2019-11-25 740.0 11.16 1.51
QIWI 2019-12-02 1277.0 17.92 1.4
MRSB 2019-12-02 0.39 0.014843 3.78
CHMF 2019-12-03 908.0 27.47 3.03
HIMCP 2019-12-10 6.0 0.0882 1.47
AKRN 2019-12-11 4980.0 303.0 6.08
UPRO 2019-12-15 2.76 0.11 4.02
MVID 2019-12-16 600.0 100.11 16.69
DSKY 2019-12-17 98.74 5.06 5.12
LKOH 2019-12-20 6250.5 192.0 3.07
SELG 2019-12-24 13.31 0.78 5.86
SELGP 2019-12-24 32.5 2.25 6.92
GMKN 2019-12-27 19890.0 604.09 3.04
KAZT 2019-12-29 149.4 1.0 0.67
KAZTP 2019-12-29 148.4 1.0 0.67
TATN 2019-12-30 789.0 24.36 3.09
TATNP 2019-12-30 752.9 24.36 3.24
GEMA 2019-12-31 760.5 11.0 1.45
POLY 2020-02-14 1049.5867768595042 12.700000000000001 1.21
TORSP 2020-01-14 0.3003412969283276 0.0088 2.93
NKHP 2020-01-15 259.59183673469386 6.36 2.45
MTSS 2020-01-10 327.970297029703 13.25 4.04
CHEP 2020-01-09 205.0104384133612 9.82 4.79
NLMK 2020-01-09 141.8502202643172 3.22 2.27
MGNT 2020-01-10 3423.0232558139537 147.19 4.3
FEES 2020-01-13 0.21227951807228918 0.0088096 4.15
MRKC 2020-01-13 0.3295081967213115 0.0201 6.1
MRKP 2020-01-14 0.24292101341281663 0.0163 6.71
MRKU 2020-01-14 0.1702127659574468 0.0032 1.88
MRKS 2020-01-14 0.2778095238095238 0.002917 1.05
MRKZ 2020-01-14 0.05509641873278237 0.002 3.63
MRKV 2020-01-14 0.0900601001669449 0.0053946 5.99
MSRS 2020-01-14 1.261904761904762 0.0424 3.36
MAGN 2020-01-15 44.59459459459459 1.65 3.7
PHOR 2020-02-04 2474.226804123711 48.0 1.94
import re
import requests
from bs4 import BeautifulSoup
from datetime import datetime
def parse_value(value):
"""парсит числовое значение в html таблице, возвращет float или None"""
value = re.sub(r'\s+', '', value) \
.split('(')[0] \
.replace('$', '') \
.replace('₽', '') \
.replace('%', '') \
.replace(',', '.')
return float(value) if value else None
MONTHS = ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек']
dividends = []
for year in [2018, 2019]:
r = requests.get('https://investmint.ru/dividendnyj-kalendar-{}/'.format(year))
soup = BeautifulSoup(r.text, 'html.parser')
for row in soup.select('table tr'):
if not row.select_one('.smallbadge'):
continue
ticker = row.select_one('.smallbadge').text
close = parse_value(row.select_one('td:nth-of-type(3)').text)
if not close:
print('no price for {}: {}'.format(ticker, row.select_one('td:nth-of-type(3)').text))
continue
percent = parse_value(row.select_one('td:nth-of-type(5)').text)
if not percent:
print('no percent for {}: {}'.format(ticker, row.select_one('td:nth-of-type(5)').text))
continue
dividend_string = row.select_one('td:nth-of-type(4)').text
if '$' in dividend_string:
# для $ высчитываем дивиденд от цены закрытия и процента доходности
dividend = close * percent * 0.01
else:
dividend = parse_value(dividend_string)
if not dividend:
print('no dividend for {}: {}'.format(ticker, row.select_one('td:nth-of-type(4)').text))
continue
dt = re.sub(r'\s+', '', row.select_one('td:nth-of-type(2)').text)
for idx, month_name in enumerate(MONTHS):
dt = dt.replace(month_name, '.{}.'.format(idx + 1))
dt = datetime.strptime(dt, '%d.%m.%Y').strftime('%Y-%m-%d')
dividends.append((ticker, dt, close, dividend, percent))
# print(ticker, dt, close, dividend, percent)
for year in [2020]:
# для 2020 отдельный парсер таблицы
r = requests.get('https://investmint.ru/')
soup = BeautifulSoup(r.text, 'html.parser')
for row in soup.select('table tr[data-category*="all past ru 2020"]'):
if not row.select_one('.smallbadge'):
continue
ticker = row.select_one('.smallbadge').text
percent = parse_value(row.select_one('td:nth-of-type(6)').text)
if not percent:
print('no percent for {}: {}'.format(ticker, row.select_one('td:nth-of-type(6)').text))
continue
dividend_string = row.select_one('td:nth-of-type(5)').text
if '$' in dividend_string:
# пока цены нет, считаем цену рублях ¯\_(ツ)_/¯
dividend = parse_value(dividend_string) * 63.5
else:
dividend = parse_value(dividend_string)
if not dividend:
print('no dividend for {}: {}'.format(ticker, row.select_one('td:nth-of-type(5)').text))
continue
# вычисляем цену закрытия
close = dividend / (percent * 0.01)
dt = re.sub(r'\s+', '', row.select_one('td:nth-of-type(3)').text)
for idx, month_name in enumerate(MONTHS):
dt = dt.replace(month_name, '.{}.'.format(idx + 1))
dt = datetime.strptime(dt, '%d.%m.%Y').strftime('%Y-%m-%d')
dividends.append((ticker, dt, close, dividend, percent))
# print(ticker, dt, close, dividend, percent)
with open('moex_dividend_yield_2018_2019_2020.csv', 'w') as f:
f.write('ticker,datetime,close,dividend,percent\n')
for item in dividends:
f.write('{},{},{},{},{}\n'.format(*item))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment