Почему? Это же будет полезно?
Давайте сделаем сшивку, это позволит строить стресс и бек тесты на более длинных горизонтах.
Чем могу помочь, чтобы это реализовать?
Да, согласен, что это полезно. Но может быт трудоёмким процессом. Посмотрю, старые скрипты. Если всё работает, сделаю. Если нет, обращусь за помощью ![]()
По склейке можно наверное составить типо такого словаря, естественно дополнив его
LEGACY_MAPPING: Dict[str, tuple] = {
“T”: (“TCSG”, 1.0), # Т-Банк (Тинькофф)
“X5”: (“FIVE”, 1.0), # X5 Group
“UPRO”: (“EONR”, 1.0), # Юнипро
“YDEX”: (“YNDX”, 1.0), # Яндекс
“VKCO”: (“MAIL”, 1.0), # VK (бывш. Mail Ru)
“LENT”: (“LNTA”, 1.0), # Лента
“HEAD”: (“HHRU”, 1.0), # HeadHunter
}
Я у себя использовал такой алгоритм склейки:
-
При запросе тикера, присутствующего в LEGACY_MAPPING, определяется старый тикер и коэффициент конвертации.
-
Если данных по новому тикеру недостаточно (начальная дата запроса раньше начала торгов новым тикером), рекурсивно загружаются данные старого тикера.
-
Цены старого тикера делятся на коэффициент (для приведения к ценам нового тикера).
-
Данные старого и нового тикеров объединяются с сохранением разрыва (gap) между периодами торгов.
-
Дивиденды также объединяются с аналогичной корректировкой сумм.
Покопавшись понял, что полноценная склейка обычных тикеров пока невозможна. В нашей базе данных не хранится информация по дивидендам. Мы ее берем из внешних источников. Adjusted_close надо пересчитывать ежедневно с учетом поступающих дивиов. Надо переделывать базу дынных и самим считать adjusted_close. Пока такое не потянем.