Ejemplo n.º 1
0
    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)
            )
Ejemplo n.º 2
0
    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"))
Ejemplo n.º 3
0
 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:]))
Ejemplo n.º 4
0
 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]))
Ejemplo n.º 5
0
 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]))
Ejemplo n.º 6
0
 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())
Ejemplo n.º 7
0
 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())
Ejemplo n.º 8
0
 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())
Ejemplo n.º 9
0
    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")
            )
Ejemplo n.º 10
0
 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())
Ejemplo n.º 11
0
 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())
Ejemplo n.º 12
0
    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]))
Ejemplo n.º 13
0
    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"))
Ejemplo n.º 14
0
    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]))
Ejemplo n.º 15
0
 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())
Ejemplo n.º 16
0
    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))
            )
Ejemplo n.º 17
0
 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]))
Ejemplo n.º 18
0
 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:]
         )
Ejemplo n.º 19
0
 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:]
         )
Ejemplo n.º 20
0
 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")
         )
Ejemplo n.º 21
0
    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))
            )
Ejemplo n.º 22
0
    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")
Ejemplo n.º 23
0
    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")
            )
Ejemplo n.º 24
0
    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)
            )
Ejemplo n.º 25
0
    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")
            )
Ejemplo n.º 26
0
    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")
            )
Ejemplo n.º 27
0
    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())
Ejemplo n.º 28
0
    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]))
Ejemplo n.º 29
0
    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]))
Ejemplo n.º 30
0
    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]))