CoderCastrov logo
CoderCastrov
IPO

Парсинг данных для модели IPO Mainline

Парсинг данных для модели IPO Mainline
просмотров
2 мин чтение
#IPO

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

Парсинг включает в себя три основных шага:

Базовая настройка

Мы настроили базу данных SQLite3 для сохранения собранных данных. Это позволяет нам избежать потери собранных данных. Кроме того, это поможет нам минимизировать объем парсинга в будущем, если потребуется. В настоящее время требования к парсингу не очень высокие. Каждая страница/API парсится только один раз, и в том же потоке используется вся информация.

Парсинг основной информации об IPO

Основная информация включает:

  • Название IPO
  • Краткое описание IPO
  • Дата открытия и закрытия IPO
  • Цена размещения акций
  • Количество акций, предлагаемых к размещению
  • Размер предложения для продажи (OFS)
  • Рейтинг аналитика (0 - не рекомендуется, 1 - возможно подписаться, 2 - рекомендуется подписаться)

Каждая из этих информаций получается из моего предпочитаемого сайта для IPO (https://www.chittorgarh.com/). В коде я парсил цену ставки с https://www.topsharebrokers.com, чтобы получить цену GMP.

В базе данных размер предложения для продажи (OFS) записывается как доля размера IPO, предназначенная для OFS. Для чистого IPO OFS равен 0, для чистого первичного размещения - 1. Для других IPO OFS находится между 0 и 1.

Для рейтинга аналитика я записываю только рейтинг Дилипа Давдаджи. 0 - не рекомендуется, 1 - возможно подписаться, 2 - рекомендуется подписаться. Вы можете изменить это для предпочитаемого аналитика, если необходимо.

Остальные данные записываются в базу данных без особых преобразований.

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

Парсинг GMP (Grey Market Premium)

Эта информация взята с topsharebrokers.com. Здесь захватывается информация о GMP, цене заявки, цене листинга и годе листинга. Вы можете обратиться к функции scrap_gmp_url для этой логики. Здесь используется информация о GMP от topsharebrokers. Она разбита на страницы, и посещаются 4 страницы.

Парсинг бычьих трендов

Он основан на данных Nifty100. Для этого были загружены данные за последние 5 лет. Однако данные не непрерывны и имеют пропуски. Данные сканируются для определения диапазонов, а затем пытаются определить тренд за 1 месяц. Если тренд составляет более +5%, он считается бычьим. В противном случае - медвежьим.

Данные Nifty100 можно получить из разных источников. В моем случае я получил их с groww.in. Я должен вызвать это только один раз в процессе парсинга. Вы можете обратиться к потоку get_nifty100data для получения подробной информации.

На каждом шаге данные сохраняются в базе данных sqlite3. В конце из данных генерируется csv-файл для обучения (в функции output_csv).

Полный код можно найти здесь.