Помогите, пожалуйста, найти ошибку в решении задачи по курсу [scilbox] . Где моя ошибка?

Задача: вычислить 3 тикера с максимальной и 3 тикера с минимальной волатильностью.

Тикеры находятся в файле.

trades*

https://drive.google.com/file/d/1l5sia-9c-t91iIPiGyBc1s9mQ8RgTNqb/view?usp=sharing

третья часть кода

import csv
import os
from Utils import time_track,  print_report, get_next_file


class TickerVolatility:
    def __init__(self, file_path, tickers_path):
        if os.path.exists(file_path):
            self.file_path = file_path
            self.tickers_path = tickers_path
        else:
            raise FileExistsError('файл отсутствует')

    def get_tickers_into_file(self):
        ticker = None
        prices = []

        with open(file=self.file_path, mode='r', encoding='utf8') as csv_file:
            csv_dict = csv.DictReader(csv_file, delimiter=',')
            for line in csv_dict:
                ticker = line['SECID']
                prices.append(float(line['PRICE']))

        return ticker, prices

    def run(self):

        ticker, prices = self.get_tickers_info_from_file()

        max_price, min_price = max(prices), min(prices)
        average_price = (max_price + min_price) / 2
        volatility = ((max_price - min_price) / average_price) * 100

        return ticker, volatility

    @time_track

    def main(tickers_path):
        tickers = {}

        for file_name in get_next_file(tickers_path):
            calc_volatility = TickerVolatility(file_path=file_name)
            ticker, volatility = calc_volatility.run()
            tickers[ticker] = volatility

        print_report(tickers)

        if __name__ == '__main__':
            TRADE_FILES = './trades'

            main(tickers_path=TRADE_FILES)
# вторая часть кода
import os
import time
from collections import OrderedDict


def time_track(func):
    def surrogate(*args, **kwargs):
        started_at = time.time()

        result = func(*args, **kwargs)

        ended_at = time.time()
        elapsed = round(ended_at - started_at, 4)
        print(f'Функция работала {elapsed} секунд(ы)')
        return result
    return surrogate


def print_report(tickers_dict):
    zero_tickers = {}
    tickers = {}

    for ticker, volatility in tickers_dict.items():
        if volatility == 0:
            zero_tickers[ticker] = volatility
        else:
            tickers[ticker] = volatility

    ordered_tickers = OrderedDict(sorted(tickers.items(), key=lambda x: x[1], reverse=True))
    tickers_list = list(ordered_tickers.keys())

    print('Максимальная волатильность:')
    for secid in tickers_list[:3]:
        print(f'\t{secid} - {ordered_tickers[secid]:2.2f} %')

    print('Минимальная волатильность:')
    for secid in tickers_list[-3:]:
        print(f'\t{secid} - {ordered_tickers[secid]:2.2f} %')

    print('Нулевая волатильность:')
    print('\t', ', '.join(sorted(zero_tickers.keys())), sep='')


def get_next_file(file_path):
    for dirpath, dirnames, filenames in os.walk(file_path):
        for filename in filenames:
            file_name = os.path.join(dirpath, filename)
            yield file_name

Ответы (0 шт):