Убрал явные мелкие ошибки коде и получил такой файл:

При бектесте, какое то время все идет ОК. Но потом вываливается ошибка pandas:
Видимо ошибка где то внутри. Почему выскакивает за пределы масcива Pandas? Для дебага их IDE не очень подходит, а изучать Doker для установки на локальную машину не очень хочется.
Строчка self.df = self.History(i,2). Это запрос истории по инструменту за два дня. Переменная self.df содержит в себе тип массив Pandas. Не понятно почему выскакивает за её пределы массива. Я же просто по индексу обращаюсь. И перед этим делаю проверку что в массиве не менее 2-х элементов.
Загорелся я как-то S#, начал смотреть. Оказалось, что там нет ничего, что реально нужно и делается больше чем за полчаса, а наворочено много и требует еще и изучения.
Немного знакомился с MQL — там есть базовые классы для торговых систем. В итоге оказалось, что все это совершенно не нужно и даже бесполезно. Как-то развить это в принципе невозможно.
Можно было бы еще примеров накидать с такими вот доморощенными библиотеками — много раз сталкивался.