Парсинг данных для модели IPO Mainline
В статье мы попытались создать модель для прогнозирования открытой цены 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
).
Полный код можно найти здесь.