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))
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
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
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)
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