Пример #1
0
    def testControllerPosAlerts(self):
        plog = '%s/positions.csv' % os.path.dirname(__file__)
        elog = '%s/equity.csv' % os.path.dirname(__file__)
        rlog = '%s/returns.csv' % os.path.dirname(__file__)
        slog = '%s/summary.csv' % os.path.dirname(__file__)

        ctrl = ClenowController({ 'Ag-1' : ['RR'] }, plog, elog, rlog, summaryFile=slog)
        ctrl.run(datetime.datetime(2011,12,31),datetime.datetime(2012,8,1),datetime.datetime(2013,12,31))

        tlog = '%s/posalert.log' % os.path.dirname(__file__)
        ctrl.writePositionAlerts(tlog)

        self.assertTrue(test_util.file_compare('%s/posalert.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)

        tlog = '%s/trade7.log' % os.path.dirname(__file__)
        ctrl.writeAllTrades(tlog)
        
        self.assertTrue(test_util.file_compare('%s/trade7.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)
        
        tlog = '%s/tssb' % os.path.dirname(__file__)
        ctrl.writeTSSBTrades(tlog)

        self.assertTrue(test_util.file_compare('%s_long.reflog' % tlog, '%s_long.csv' % tlog))
        self.assertTrue(test_util.file_compare('%s_short.reflog' % tlog, '%s_short.csv' % tlog))
        os.remove('%s_long.csv' % tlog)
        os.remove('%s_short.csv' % tlog)
        os.remove(plog)
        os.remove(elog)
        os.remove(rlog)
        os.remove(slog)
Пример #2
0
    def testControllerPosAlerts(self):
        plog = '%s/positions.csv' % os.path.dirname(__file__)
        elog = '%s/equity.csv' % os.path.dirname(__file__)
        rlog = '%s/returns.csv' % os.path.dirname(__file__)
        slog = '%s/summary.csv' % os.path.dirname(__file__)

        ctrl = ClenowController({'Ag-1': ['RR']},
                                plog,
                                elog,
                                rlog,
                                summaryFile=slog)
        ctrl.run(datetime.datetime(2011, 12,
                                   31), datetime.datetime(2012, 8, 1),
                 datetime.datetime(2013, 12, 31))

        tlog = '%s/posalert.log' % os.path.dirname(__file__)
        ctrl.writePositionAlerts(tlog)

        self.assertTrue(
            test_util.file_compare(
                '%s/posalert.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)

        tlog = '%s/trade7.log' % os.path.dirname(__file__)
        ctrl.writeAllTrades(tlog)

        self.assertTrue(
            test_util.file_compare(
                '%s/trade7.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)

        tlog = '%s/tssb' % os.path.dirname(__file__)
        ctrl.writeTSSBTrades(tlog)

        self.assertTrue(
            test_util.file_compare('%s_long.reflog' % tlog,
                                   '%s_long.csv' % tlog))
        self.assertTrue(
            test_util.file_compare('%s_short.reflog' % tlog,
                                   '%s_short.csv' % tlog))
        os.remove('%s_long.csv' % tlog)
        os.remove('%s_short.csv' % tlog)
        os.remove(plog)
        os.remove(elog)
        os.remove(rlog)
        os.remove(slog)
Пример #3
0
    def testClenowRunGroup(self):
        #crg = ClenowRunGroup(['RR','LH','O'])
        
        #crg.feed().start()
        #crg.strategy().exitPositions()
        plog = '%s/positions.csv' % os.path.dirname(__file__)
        elog = '%s/equity.csv' % os.path.dirname(__file__)
        rlog = '%s/returns.csv' % os.path.dirname(__file__)
        slog = '%s/summary.csv' % os.path.dirname(__file__)

        ctrl = ClenowController({ 'Ag-1' : ['RR','LH','O'], 'Ag-2' : ['LB','LC']}, plog, elog, rlog, summaryFile=slog)
        ctrl.run(datetime.datetime(2011,12,31),datetime.datetime(2012,8,1),datetime.datetime(2013,12,31))

        tlog = '%s/trade4.log' % os.path.dirname(__file__)
        ctrl.writeAllTrades(tlog)

        self.assertAlmostEqual(ctrl.get_net_profit(),ctrl.get_trade_profit(),places=2)
        
        crg = ctrl._runGroups['Ag-1']
        trades = crg.trades_analyzer()
        
        self.assertEqual(trades.getCount(),6)
        self.assertEqual(trades.getProfitableCount(),1)
        self.assertEqual(trades.getUnprofitableCount(),5)
        
        self.assertTrue(test_util.file_compare('%s/trade4.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)
        self.assertTrue(test_util.file_compare('%s/positions.refcsv' % os.path.dirname(__file__), plog))
        os.remove(plog)
        self.assertTrue(test_util.file_compare('%s/equity.refcsv' % os.path.dirname(__file__), elog))
        os.remove(elog)
        self.assertTrue(test_util.file_compare('%s/returns.refcsv' % os.path.dirname(__file__), rlog))
        os.remove(rlog)
        self.assertTrue(test_util.file_compare('%s/summary.refcsv' % os.path.dirname(__file__), slog))
        os.remove(slog)

        # now check the last open trades 
        pos_alerts = ctrl.get_position_alerts()
        self.assertEqual(len(pos_alerts),1)
        self.assertEqual(pos_alerts[0].stop,1476.35)
Пример #4
0
    def testClenowRunGroup(self):
        #crg = ClenowRunGroup(['RR','LH','O'])

        #crg.feed().start()
        #crg.strategy().exitPositions()
        plog = '%s/positions.csv' % os.path.dirname(__file__)
        elog = '%s/equity.csv' % os.path.dirname(__file__)
        rlog = '%s/returns.csv' % os.path.dirname(__file__)
        slog = '%s/summary.csv' % os.path.dirname(__file__)

        ctrl = ClenowController(
            {
                'Ag-1': ['RR', 'LH', 'O'],
                'Ag-2': ['LB', 'LC']
            },
            plog,
            elog,
            rlog,
            summaryFile=slog)
        ctrl.run(datetime.datetime(2011, 12,
                                   31), datetime.datetime(2012, 8, 1),
                 datetime.datetime(2013, 12, 31))

        tlog = '%s/trade4.log' % os.path.dirname(__file__)
        ctrl.writeAllTrades(tlog)

        self.assertAlmostEqual(ctrl.get_net_profit(),
                               ctrl.get_trade_profit(),
                               places=2)

        crg = ctrl._runGroups['Ag-1']
        trades = crg.trades_analyzer()

        self.assertEqual(trades.getCount(), 6)
        self.assertEqual(trades.getProfitableCount(), 1)
        self.assertEqual(trades.getUnprofitableCount(), 5)

        self.assertTrue(
            test_util.file_compare(
                '%s/trade4.reflog' % os.path.dirname(__file__), tlog))
        os.remove(tlog)
        self.assertTrue(
            test_util.file_compare(
                '%s/positions.refcsv' % os.path.dirname(__file__), plog))
        os.remove(plog)
        self.assertTrue(
            test_util.file_compare(
                '%s/equity.refcsv' % os.path.dirname(__file__), elog))
        os.remove(elog)
        self.assertTrue(
            test_util.file_compare(
                '%s/returns.refcsv' % os.path.dirname(__file__), rlog))
        os.remove(rlog)
        self.assertTrue(
            test_util.file_compare(
                '%s/summary.refcsv' % os.path.dirname(__file__), slog))
        os.remove(slog)

        # now check the last open trades
        pos_alerts = ctrl.get_position_alerts()
        self.assertEqual(len(pos_alerts), 1)
        self.assertEqual(pos_alerts[0].stop, 1476.35)