コード例 #1
0
    def testIntraDay(self):
        barFeed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE,
                                       marketsession.USEquities.getTimezone())
        barFeed.setBarFilter(csvfeed.USEquitiesRTH())
        barFeed.addBarsFromCSV(
            "spy", common.get_data_file_path("nt-spy-minute-2011.csv"))
        strat = strategy_test.TestStrategy(barFeed, 1000)
        stratAnalyzer = sharpe.SharpeRatio(False)
        strat.attachAnalyzer(stratAnalyzer)
        strat.marketOrder("spy", 1)

        strat.run()

        tradingPeriods = 252 * 6.5 * 60
        manualAnnualized = sharpe.sharpe_ratio(stratAnalyzer.getReturns(),
                                               0.04, tradingPeriods, True)
        manualNotAnnualized = sharpe.sharpe_ratio(stratAnalyzer.getReturns(),
                                                  0.04, tradingPeriods, False)
        analyzerAnnualized = stratAnalyzer.getSharpeRatio(0.04)
        analyzerNotAnnualized = stratAnalyzer.getSharpeRatio(0.04, False)

        self.assertEqual(round(analyzerAnnualized, 10), -1.1814830854)
        self.assertEqual(round(analyzerNotAnnualized, 10), -0.0037659686)
        # They should be similar, but not identical because the analyzer uses 365 days/year
        # when useDailyReturns is set to False.
        self.assertEqual(round(analyzerAnnualized, 1),
                         round(manualAnnualized, 1))
        self.assertEqual(round(analyzerNotAnnualized, 3),
                         round(manualNotAnnualized, 3))
コード例 #2
0
 def __loadBarFeed(self):
     ret = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
     barFilter = csvfeed.USEquitiesRTH()
     ret.setBarFilter(barFilter)
     ret.addBarsFromCSV(TradesAnalyzerTestCase.TestInstrument,
                        common.get_data_file_path("nt-spy-minute-2011.csv"))
     return ret
コード例 #3
0
 def __loadBarFeed(self):
     ret = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
     barFilter = csvfeed.USEquitiesRTH()
     ret.setBarFilter(barFilter)
     ret.addBarsFromCSV(INSTRUMENT,
                        common.get_data_file_path("nt-spy-minute-2011.csv"))
     return ret
コード例 #4
0
 def __createStrategy(self):
     barFeed = ninjatraderfeed.Feed(ninjatraderfeed.Frequency.MINUTE)
     barFilter = csvfeed.USEquitiesRTH()
     barFeed.setBarFilter(barFilter)
     barFeed.addBarsFromCSV(
         TradesAnalyzerTestCase.TestInstrument,
         common.get_data_file_path("nt-spy-minute-2011.csv"))
     return strategy_test.TestStrategy(barFeed, 1000)
コード例 #5
0
 def loadIntradayBarFeed(self):
     fromMonth = 1
     toMonth = 1
     fromDay = 3
     toDay = 3
     barFilter = csvfeed.USEquitiesRTH(us_equities_datetime(2011, fromMonth, fromDay, 00, 00), us_equities_datetime(2011, toMonth, toDay, 23, 59))
     barFeed = ninjatraderfeed.Feed(barfeed.Frequency.MINUTE)
     barFeed.setBarFilter(barFilter)
     barFeed.addBarsFromCSV(BaseTestCase.TestInstrument, common.get_data_file_path("nt-spy-minute-2011.csv"))
     return barFeed