Прошу помощи. Не могу понять почему неправильно отрабатывает делегат

Делаю учебное задание суть которого в том, чтобы из csv файла заполнить модель для tableView. В csv файле находится информация по цене на золото. Необходимо в ячейках с ценой с помощью делегата показать куда двигалась цена вверх вниз или оставалась на месте. Я всё это реализовал, но у меня одна проблема, стрелочки устанавливаются со смещением вниз, т.е в ячейках нулевой строки вообще ничего не отрисовывается, а остальные как рисуются как бы со сдвигом вниз и из-за этого стрелочки не соответствуют движению цены. Я реализовал свою модель, чтобы переопределить data для выравнивания значений по центру в ячейках столбца 1 и 2. Код прилагаю. Проверял сборку и компиляцию проекта под Qt5.15 и Qt6.5. И ещё проблема в том, что если быстро скролить в некоторых ячейка начинают пропадать и потом обратно появляться отрисованные иконки стрелок. Код весь подробно прокомментировал. Короче, SOS, ребята, сам уже всю голову сломал, что я делаю не так, Qt начал изучать недавно и пока не хватает опыта.