def testMarketTiming(self): files = [] instruments = ["VTI", "VEU", "IEF", "VNQ", "DBC", "SPY"] for year in range(2007, 2013+1): for symbol in instruments: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("samples", "data", fileName)) # The differences in the output are related to key ordering in dicts. if six.PY3: expected_output = "market_timing.output.37" else: expected_output = "market_timing.output.27" with common.CopyFiles(files, "."): code = """import sys sys.path.append('samples') import market_timing market_timing.main(False) """ res = common.run_python_code(code) self.assertTrue(res.exit_ok()) self.assertEqual( res.get_output_lines()[-10:], common.tail_file(expected_output, 10) )
def testExample1(self): with common.CopyFiles( [os.path.join("testcases", "data", "bitstampUSD-2.csv")], "bitstampUSD.csv"): code = """import sys sys.path.append('samples') import bccharts_example_1 bccharts_example_1.main() """ res = common.run_python_code(code) lines = common.get_file_lines("30min-bitstampUSD.csv") os.remove("30min-bitstampUSD.csv") # Float str doesn't behave the same in Pyhton2 and Python3. if six.PY3: lines = lines[0:1] + [ round_csv_line(line, 5, 8) for line in lines[1:] ] self.assertTrue(res.exit_ok(), res.get_output()) self.assertEqual( lines[0:10], common.head_file("30min-bitstampUSD-2.csv", 10, path="testcases/data")) self.assertEqual( lines[-10:], common.tail_file("30min-bitstampUSD-2.csv", 10, path="testcases/data"))
def testCompInv_1(self): files = [os.path.join("samples", "data", src) for src in ["aeti-2011-yahoofinance.csv", "egan-2011-yahoofinance.csv", "simo-2011-yahoofinance.csv", "glng-2011-yahoofinance.csv"]] with common.CopyFiles(files, "."): lines = common.run_sample_script("compinv-1.py") # Skip the first two lines that have debug messages from the # broker. self.assertTrue(common.compare_head("compinv-1.output", lines[2:]))
def testSampleStrategyAnalyzer(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): lines = common.run_sample_script( "sample-strategy-analyzer.py").split("\n") self.assertTrue( common.compare_head("sample-strategy-analyzer.output", lines[:-1]))
def testTutorial3(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): lines = common.run_sample_script("tutorial-3.py").split("\n") self.assertTrue( common.compare_head("tutorial-3.output", lines[:30])) self.assertTrue( common.compare_tail("tutorial-3.output", lines[-4:-1]))
def testSampleStrategyAnalyzer(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): res = common.run_sample_script("sample-strategy-analyzer.py") self.assertTrue( common.compare_head("sample-strategy-analyzer.output", res.get_output_lines(True))) self.assertTrue(res.exit_ok())
def testTutorial4(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): res = common.run_sample_script("tutorial-4.py") lines = res.get_output_lines(True) self.assertEqual(common.head_file("tutorial-4.output", len(lines)), lines) self.assertTrue(res.exit_ok())
def testTutorial4(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): res = common.run_sample_script("tutorial-4.py") self.assertTrue( common.compare_head("tutorial-4.output", res.get_output_lines(True))) self.assertTrue(res.exit_ok())
def testSampleStrategyAnalyzer(self): with common.CopyFiles([os.path.join("data", "orcl-2000.csv")], "."): res = common.run_sample_script("sample-strategy-analyzer.py") lines = res.get_output_lines() self.assertEqual( lines, common.head_file("sample-strategy-analyzer.output", len(lines), path="../samples") )
def testTutorial4(self): with common.CopyFiles( [os.path.join("testcases", "data", "WIKI-ORCL-2000-quandl.csv")], "."): res = common.run_sample_module("tutorial-4") lines = res.get_output_lines(True) self.assertEqual(common.head_file("tutorial-4.output", len(lines)), lines, res.get_output()) self.assertTrue(res.exit_ok())
def testTutorial3(self): with common.CopyFiles( [os.path.join("testcases", "data", "orcl-2000.csv")], "."): res = common.run_sample_script("tutorial-3.py") self.assertEqual(common.head_file("tutorial-3.output", 30), res.get_output_lines(True)[:30]) self.assertEqual(common.tail_file("tutorial-3.output", 3), res.get_output_lines(True)[-3:]) self.assertTrue(res.exit_ok())
def testCSVFeed(self): with common.CopyFiles([os.path.join("samples", "data", "quandl_gold_2.csv")], "."): code = """import sys sys.path.append('samples') import csvfeed_1 """ lines = common.run_python_code(code).split("\n") self.assertTrue(common.compare_head("csvfeed_1.output", lines[0:10])) self.assertTrue(common.compare_tail("csvfeed_1.output", lines[-10:-1]))
def testExample2(self): with common.CopyFiles([os.path.join("testcases", "data", "30min-bitstampUSD-2.csv")], "30min-bitstampUSD.csv"): code = """import sys sys.path.append('samples') import bccharts_example_2 bccharts_example_2.main(False) """ lines = common.run_python_code(code).split("\n") self.assertTrue(common.compare_head("bccharts_example_2.output", lines[0:10], "testcases/data")) self.assertTrue(common.compare_tail("bccharts_example_2.output", lines[-10:-1], "testcases/data"))
def testTutorial1MtGox(self): with common.CopyFiles([os.path.join("samples", "data", "trades-mtgox-usd-2013-03.csv")], "."): code = """import sys sys.path.append('samples') import tutorial_mtgox_1 tutorial_mtgox_1.main(False) """ lines = run_python_code(code).split("\n") self.assertTrue(compare_head("tutorial_mtgox_1.output", lines[0:10])) self.assertTrue(compare_tail("tutorial_mtgox_1.output", lines[-10:-1]))
def testTutorial3(self): with common.CopyFiles( [os.path.join("testcases", "data", "WIKI-ORCL-2000-quandl.csv")], "."): res = common.run_sample_module("tutorial-3") self.assertEqual(common.head_file("tutorial-3.output", 30), res.get_output_lines(True)[:30], res.get_output()) self.assertEqual(common.tail_file("tutorial-3.output", 3), res.get_output_lines(True)[-3:], res.get_output()) self.assertTrue(res.exit_ok())
def testSampleStrategyAnalyzer(self): with common.CopyFiles([os.path.join("testcases", "data", "orcl-2000-yahoofinance.csv")], "."): res = common.run_sample_module("sample-strategy-analyzer") self.assertTrue(res.exit_ok()) lines = res.get_output_lines() self.assertGreaterEqual(len(lines), 20) self.assertEqual( lines, common.head_file("sample-strategy-analyzer.output", len(lines)) )
def testCompInv_1(self): files = [ os.path.join("samples", "data", src) for src in [ "aeti-2011-yahoofinance.csv", "egan-2011-yahoofinance.csv", "simo-2011-yahoofinance.csv", "glng-2011-yahoofinance.csv" ] ] with common.CopyFiles(files, "."): lines = common.run_sample_script("compinv-1.py").split("\n") self.assertTrue(common.compare_head("compinv-1.output", lines[:-1]))
def testTutorial2(self): with common.CopyFiles([os.path.join("data", "orcl-2000.csv")], "."): res = common.run_sample_script("tutorial-2.py") self.assertEqual( common.head_file("tutorial-2.output", 15, path="../samples"), res.get_output_lines(True)[:15] ) self.assertEqual( common.tail_file("tutorial-2.output", 3, path="../samples"), res.get_output_lines(True)[-3:] )
def testCSVFeed(self): with common.CopyFiles([os.path.join("..", "samples", "data", "quandl_gold_2.csv")], "."): res = common.run_sample_script("csvfeed_1.py") lines = res.get_output_lines(True) self.assertEqual( common.head_file("csvfeed_1.output", 10, path="../samples"), lines[0:10] ) self.assertEqual( common.tail_file("csvfeed_1.output", 10, path="../samples"), lines[-10:] )
def testExample2(self): with common.CopyFiles([os.path.join("data", "30min-bitstampUSD-2.csv")], "30min-bitstampUSD.csv"): from samples import bccharts_example_2 res = bccharts_example_2.main(False) self.assertEqual( res.get_output_lines()[0:10], common.head_file("bccharts_example_2.output", 10, path="data") ) self.assertEqual( res.get_output_lines()[-10:], common.tail_file("bccharts_example_2.output", 10, path="data") )
def testCompInv_1(self): files = [os.path.join("samples", "data", src) for src in ["aeti-2011-yahoofinance.csv", "egan-2011-yahoofinance.csv", "simo-2011-yahoofinance.csv", "glng-2011-yahoofinance.csv"]] with common.CopyFiles(files, "."): res = common.run_sample_script("compinv-1.py") self.assertTrue(res.exit_ok()) # Skip the first two lines that have debug messages from the broker. lines = res.get_output_lines()[2:] self.assertEqual( lines, common.head_file("compinv-1.output", len(lines)) )
def testExample1(self): with common.CopyFiles([os.path.join("testcases", "data", "bitstampUSD-2.csv")], "bitstampUSD.csv"): code = """import sys sys.path.append('samples') import bccharts_example_1 bccharts_example_1.main() """ common.run_python_code(code) lines = common.get_file_lines("30min-bitstampUSD.csv") self.assertTrue(common.compare_head("30min-bitstampUSD-2.csv", lines[0:10], "testcases/data")) self.assertTrue(common.compare_tail("30min-bitstampUSD-2.csv", lines[-10:], "testcases/data")) os.remove("30min-bitstampUSD.csv")
def testErnieChanGldVsGdx(self): files = [] for year in range(2006, 2013): for symbol in ["gld", "gdx"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("..", "samples", "data", fileName)) with common.CopyFiles(files, "."): res = common.run_sample_script("statarb_erniechan.py") self.assertEqual( res.get_output_lines()[-1:], common.tail_file("statarb_erniechan.output", 1, path="../samples") )
def testSMACrossOver(self): files = [] for year in range(2011, 2013): for symbol in ["aapl"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("..", "samples", "data", fileName)) with common.CopyFiles(files, "."): res = common.run_sample_script("sma_crossover_sample.py") self.assertEqual( res.get_output_lines()[-1:], common.tail_file("sma_crossover.output", 1) )
def testVWAPMomentum(self): files = [] for year in range(2011, 2013): for symbol in ["aapl"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("..", "samples", "data", fileName)) with common.CopyFiles(files, "."): res = common.run_sample_script("vwap_momentum.py") self.assertEqual( res.get_output_lines()[-1:], common.tail_file("vwap_momentum.output", 1, path="../samples") )
def testBBands(self): files = [] for year in range(2011, 2013): for symbol in ["yhoo"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("..", "samples", "data", fileName)) with common.CopyFiles(files, "."): from samples import bbands res = bbands.main(False) self.assertEqual( res.get_output_lines()[-1:], common.tail_file("bbands.output", 1, path="../samples") )
def testCSVFeed(self): with common.CopyFiles( [os.path.join("samples", "data", "quandl_gold_2.csv")], "."): code = """import sys sys.path.append('samples') import csvfeed_1 """ res = common.run_python_code(code) lines = res.get_output_lines(True) self.assertEqual(common.head_file("csvfeed_1.output", 10), lines[0:10]) self.assertEqual(common.tail_file("csvfeed_1.output", 10), lines[-10:]) self.assertTrue(res.exit_ok())
def testBBands(self): files = [] for year in range(2011, 2013): for symbol in ["yhoo"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("samples", "data", fileName)) with common.CopyFiles(files, "."): code = """import sys sys.path.append('samples') import bbands bbands.main(False) """ lines = common.run_python_code(code).split("\n") self.assertTrue(common.compare_tail("bbands.output", lines[-2:-1]))
def testErnieChanGldVsGdx(self): files = [] for year in range(2006, 2013): for symbol in ["gld", "gdx"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("samples", "data", fileName)) with common.CopyFiles(files, "."): code = """import sys sys.path.append('samples') import statarb_erniechan statarb_erniechan.main(False) """ lines = common.run_python_code(code).split("\n") self.assertTrue(common.compare_tail("statarb_erniechan.output", lines[-2:-1]))
def testEventStudy(self): files = [] for year in range(2008, 2010): for symbol in ["AA", "AES", "AIG"]: fileName = "%s-%d-yahoofinance.csv" % (symbol, year) files.append(os.path.join("samples", "data", fileName)) with common.CopyFiles(files, "."): code = """import sys sys.path.append('samples') import eventstudy eventstudy.main(False) """ lines = common.run_python_code(code).split("\n") self.assertTrue(common.compare_tail("eventstudy.output", lines[-2:-1]))