<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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