Анализ инвестиционных возможностей с помощью Python: как получить доступ и обработать исторические данные о ценах на акции с веб-сайта Moneycontrol.

I. Введение

На рынке существует множество инвестиционных возможностей, но довольно сложно определить правильные акции для инвестиций. Однако с помощью правильных инструментов и данных вы можете принимать обоснованные решения, которые могут принести значительную прибыль. В этой статье мы рассмотрим, как получить доступ и обработать исторические цены акций Reliance Industries Ltd из Moneycontrol, одного из ведущих финансовых новостей и аналитических материалов Индии, с использованием Python. Затем мы будем использовать эти данные для анализа инвестиционных возможностей, применяя подходящее распределение вероятностей из нормального распределения, логнормального распределения и t-распределения Стьюдента. К концу этой статьи у вас будет более глубокое понимание того, как использовать данные и статистические методы для принятия обоснованных инвестиционных решений.

II. Получение данных из Moneycontrol:

Во-первых, нам нужно будет получить данные с официального сайта Moneycontrol для интересующих нас акций (здесь Reliance Industries Ltd.). Выполните следующие шаги, чтобы получить доступ к набору данных.

Шаги:

1. Зайдите на сайт Moneycontrol (https://www.moneycontrol.com/) и введите в строке поиска Reliance Industries.

2. Нажмите «Reliance Industries Ltd». Из результатов поиска перейдите на страницу акций RIL.

3. На странице акций перейдите на вкладку «Исторические цены».

4. Настройте временные рамки в соответствии с вашими требованиями. Мы хранили его в течение 5 лет с января 2018 года по январь 2023 года по ежедневным ценам.

Далее мы будем очищать данные с помощью Python и сохранять их во фрейме данных. Фрагмент кода для этого выглядит следующим образом:

import pandas as pd

def fetch_data():
    urls_list = [
             'https://www.moneycontrol.com/stocks/hist_stock_result.php?sc_id=RI&pno=1&hdn=daily&fdt=2018-01-01&todt=2023-01-01&ex=B',
             'https://www.moneycontrol.com/stocks/hist_stock_result.php?sc_id=RI&pno=2&hdn=daily&fdt=2018-01-01&todt=2023-01-01&ex=B',
             'https://www.moneycontrol.com/stocks/hist_stock_result.php?sc_id=RI&pno=3&hdn=daily&fdt=2018-01-01&todt=2023-01-01&ex=B'
    ]
    dfs=[]
    for url in urls_list:
        data = pd.read_html(url, attrs={'class':'tblchart'})
        data = pd.DataFrame(data[0])
        dfs.append(data)
    
    df = pd.concat(dfs)
    df.columns = df.columns.droplevel(0)
    df = df.reset_index()
    df = df.drop(['index'],axis=1)
    return df

df = fetch_data()

Мы получили исторические цены на акции RIL с веб-сайта Moneycontrol. Имеющиеся у нас данные включают дату, цену открытия, максимальную цену, минимальную цену, цену закрытия, объем и спред между максимальной и минимальной ценой, а также спред между ценой открытия и закрытия.

Мы хотим проанализировать эти данные, чтобы понять, принесут ли инвестиции в эти акции большую прибыль. Поэтому мы используем эти данные для расчета ежедневной доходности акций RIL по формуле:

Доход = (Цена закрытия — Цена открытия) * 100 / Цена открытия

df['Return'] = (df['Close']-df['Open'])/df['Open']

III. Распределение вероятностей и инвестиции

Инвестиции в фондовый рынок могут быть сложной задачей, особенно когда существует так много неопределенности. Однако вероятность и статистика уже давно являются надежными друзьями инвесторов. Хотя существуют разные типы распределений вероятностей, в этой статье вы познакомитесь с тремя из них: нормальным распределением, логнормальным распределением и t-распределением Стьюдента.

А. Нормальное распределение. Нормальное распределение часто используется для моделирования доходности портфеля акций или других инвестиций. Предполагается, что доходность обычно распределяется вокруг среднего , с некоторым стандартным отклонением. Это означает, что большую часть времени доходность будет близка к среднему значению, но вероятность экстремальной доходности меньше. Например, предположим, что портфель акций имеет ожидаемую доходность 8% и стандартное отклонение 15%. Используя нормальное распределение, мы можем оценить, что существует вероятность 68%, что доходность будет находиться в диапазоне от -7% до 23%, и вероятность 95%, что доходность будет находиться в диапазоне от -22% до 38%. %. Понимая эти потенциальные результаты, инвесторы могут лучше управлять своими ожиданиями и принимать обоснованные решения о своих инвестициях.

Здесь среднее значение равно 5, а стандартное отклонение равно 2. Распределение построено на случайных 10 000 точек.

Б. Логарифмически нормальное распределение Логнормальное распределение часто используется для моделирования доходности отдельных акций или других инвестиций. Предполагается, что доходность распределяется логарифмически со средним и среднеквадратичное отклонение. Поскольку цены на акции, как правило, положительны и могут расти экспоненциально с течением времени, логарифмически нормальное распределение лучше подходит для моделирования доходности акций, чем нормальное распределение. Например, предположим, что ожидаемая доходность акции составляет 10 %, а стандартное отклонение — 20 %. Используя логарифмически нормальное распределение, мы можем оценить, что существует вероятность 68 %, что акция вернется в диапазоне от -5% до 25 %, и вероятность 95 %, что акция вернется в диапазоне от -28 % до 48 %.

Здесь среднее значение равно 1, а стандартное отклонение равно 0,5. Раздача построена на случайных 10 000 баллов.

С. Распределение Стьюдента.Распределение Стьюдента — это более гибкое распределение вероятностей, которое можно использовать, когда размер выборки мал или когда распределение результатов не является абсолютно нормальным. . Он часто используется в инвестиционном анализе для учета того факта, что доходность акций может иметь толстые хвосты, а это означает, что существует более высокая вероятность экстремальной доходности, чем можно было бы предсказать при нормальном распределении. Например, допустим, у нас есть выборка из 10 доходностей акций со средним значением 10% и стандартным отклонением 30%. Используя t-распределение Стьюдента, мы можем оценить, что существует вероятность 68%, что истинное среднее значение генеральной совокупности находится в диапазоне от -8% до 28%, и вероятность 95%, что истинное среднее значение генеральной совокупности находится в диапазоне - от 41% до 61%.

Здесь степень свободы равна 5. Распределение построено по случайным 1000 точкам.

IV. Анализ инвестиционных возможностей

Давайте посмотрим, как выглядит распределение акций RIL.

Глядя на рисунок, мы можем сказать, что распределение рентабельности инвестиций следует нормальному распределению. Следовательно, можно с уверенностью сказать, что мы можем применить нормальное распределение для анализа и расчета ожидаемой доходности.

Код для того же приведен ниже.

# Calculate the daily returns
df['daily_returns'] = df['Close'].pct_change()

# Calculate the mean daily return
mean_return = df['daily_returns'].mean()

# Print the mean daily return as a percentage
print("Mean daily return: {:.2%}".format(mean_return))
Mean daily return: -0.06%

Ежедневная доходность -0,06% означает, что стоимость акций или инвестиций уменьшилась на 0,06% в этот конкретный день. Это мера того, насколько стоимость акции изменилась по сравнению со стоимостью закрытия предыдущего дня. Отрицательная доходность может возникнуть по разным причинам, таким как падение цен на акции, снижение спроса на продукт или услугу, изменение рыночных условий или неожиданные события, такие как стихийные бедствия. Важно иметь в виду, что инвестирование всегда сопряжено с определенным уровнем риска и нет гарантии положительной отдачи.

V. Заключение

Основываясь на анализе ежедневной доходности акций RIL за пятилетний период, можно сделать вывод, что доходность имеет нормальное распределение.

Кроме того, ежедневная доходность акций RIL демонстрирует небольшую отрицательную динамику за пятилетний период, при этом дневная доходность в среднем составляет -0,06%. Это говорит о том, что в краткосрочной перспективе может быть некоторое понижательное давление на акции, и инвесторы должны учитывать это при принятии инвестиционных решений.

Важно отметить, что прошлые результаты не обязательно свидетельствуют о будущих результатах и ​​что при принятии инвестиционных решений следует учитывать и другие факторы, такие как финансовые показатели компании, отраслевые тенденции и глобальные экономические условия.

Поэтому в этой статье мы рассмотрели, как распределение вероятностей может помочь понять, как конкретная акция ведет себя на рынке, а также помочь принять решение о ваших следующих шагах при инвестировании.

VI. Код

Записную книжку, которую я использовал, чтобы получить предполагаемую рентабельность инвестиций, можно найти на моем GitHub.



До встречи на следующей теме!