When the simulation is complete, run the full period risk report
        and send it out on the results socket.

def handle_simulation_end(self, data_portal):
        """
        When the simulation is complete, run the full period risk report
        and send it out on the results socket.
        """
        log.info(
            'Simulated {} trading days\n'
            'first open: {}\n'
            'last close: {}',
            self._session_count,
            self._trading_calendar.session_open(self._first_session),
            self._trading_calendar.session_close(self._last_session),
        )

        packet = {}
        self.end_of_simulation(
            packet,
            self._ledger,
            self._trading_calendar,
            self._sessions,
            data_portal,
            self._benchmark_source,
        )
        return packet