예제 #1
0
 def __get_performance_manager(self):
     # TODO 加入回测是否运行的判断
     if False:
         raise ValueError('please run the backtest first')
     return StrategyPerformanceManagerOnline(
         self.__strategy_engine.profit_records,
         self.__strategy_engine.deals, self.__strategy_engine.positions)
예제 #2
0
 def get_sharpe(self, start_time, end_time, simple=True):
     si, ei = self.get_index(start_time, end_time)
     if si >= len(self.__pnl):
         return 0
     records = self.__pnl[si:ei]
     manager = StrategyPerformanceManagerOnline(records, {}, {})
     performance = manager.get_performance()
     if simple:
         return performance.sharpe_ratio.total
     else:
         return performance.sharpe_ratio_compound.total
예제 #3
0
 def performance(self):
     if self._performance is None:
         self._performance_manager = StrategyPerformanceManagerOnline(self.profit_records, self.deals,
                                                                      self.positions)
         self._performance = self._performance_manager.get_performance()
     return self._performance
예제 #4
0
 def get_performance(self, start_time, end_time):
     si, ei = self.get_index(start_time, end_time)
     if si >= len(self.__pnl):
         return None
     records = self.__pnl[si:ei]
     return StrategyPerformanceManagerOnline(records, {}, {})