コード例 #1
0
    def __processJob(self, job, barsFreq, instruments, bars):
        parameters = job.getNextParameters()
        bestParams = parameters
        bestResult = None

        while parameters is not None:
            # Wrap the bars into a feed.
            feed = barfeed.OptimizerBarFeed(barsFreq, instruments, bars)

            # Run the strategy.
            self.getLogger().info(
                "Running strategy with parameters {}".format(parameters))
            result = None

            try:
                result = self.runStrategy(feed, *parameters)
            except Exception as e:
                self.getLogger().exception(
                    "Error running strategy with parameters {}: {}".format(
                        parameters, e))

            self.getLogger().info("Result {}".format(result))

            if bestResult is None or result > bestResult:
                bestResult = result
                bestParams = parameters

            # Run with the next set of parameters.
            parameters = job.getNextParameters()

        assert (bestParams is not None)
        self.pushJobResults(job.getId(), bestResult, bestParams)
コード例 #2
0
ファイル: barfeed_test.py プロジェクト: ynzheng/mooquant
    def testBaseBarFeedNoAdjClose(self):
        bars = [
            bar.Bars({
                "orcl":
                bar.BasicBar(datetime.datetime(2001, 1, 1), 1, 1, 1, 1, 1,
                             None, bar.Frequency.DAY)
            }),
            bar.Bars({
                "orcl":
                bar.BasicBar(datetime.datetime(2001, 1, 2), 1, 1, 1, 1, 1,
                             None, bar.Frequency.DAY)
            }),
        ]

        barFeed = barfeed.OptimizerBarFeed(bar.Frequency.DAY, ["orcl"], bars)
        check_base_barfeed(self, barFeed, False)
コード例 #3
0
ファイル: barfeed_test.py プロジェクト: ynzheng/mooquant
    def testDateTimesNotInOrder(self):
        bars = [
            bar.Bars({
                "orcl":
                bar.BasicBar(datetime.datetime(2001, 1, 2), 1, 1, 1, 1, 1, 1,
                             bar.Frequency.DAY)
            }),
            bar.Bars({
                "orcl":
                bar.BasicBar(datetime.datetime(2001, 1, 1), 1, 1, 1, 1, 1, 1,
                             bar.Frequency.DAY)
            }),
        ]

        f = barfeed.OptimizerBarFeed(bar.Frequency.DAY, ["orcl"], bars)

        with self.assertRaisesRegex(Exception,
                                    "Bar date times are not in order.*"):
            for dt, b in f:
                pass
コード例 #4
0
ファイル: barfeed_test.py プロジェクト: ynzheng/mooquant
 def testEmtpy(self):
     barFeed = barfeed.OptimizerBarFeed(bar.Frequency.DAY, ["orcl"], [])
     self.assertEqual(barFeed.barsHaveAdjClose(), False)