Esempio n. 1
0
def test_run(main=False):
    # for i in [True, False]:
    for rstype in [True, False]:
        if rstype:
            runonces = [True]
        else:
            runonces = [True, False]

        for runonce in runonces:
            data = testcommon.getdata(0)

            if rstype:
                data = bt.DataResampler(dataname=data,
                                        timeframe=bt.TimeFrame.Weeks,
                                        compression=1)
            else:
                data.resample(timeframe=bt.TimeFrame.Weeks, compression=1)

            datas = [data]
            testcommon.runtest(datas,
                               testcommon.TestStrategy,
                               main=main,
                               runonce=runonce,
                               plot=main,
                               chkind=chkind,
                               chkmin=chkmin,
                               chkvals=chkvals,
                               chkargs=chkargs)
def test_run(main=False):
    # for i in [True, False]:
    for rstype in [True, False]:
        if rstype:
            runonces = [True]
        else:
            runonces = [True, False]

        for runonce in runonces:
            data = testcommon.getdata(0)

            if rstype:
                data = bt.DataResampler(
                    dataname=data,
                    timeframe=bt.TimeFrame.Weeks,
                    compression=1)
            else:
                data.resample(
                    timeframe=bt.TimeFrame.Weeks,
                    compression=1)

            datas = [data]
            testcommon.runtest(datas,
                               testcommon.TestStrategy,
                               main=main,
                               runonce=runonce,
                               plot=main,
                               chkind=chkind,
                               chkmin=chkmin,
                               chkvals=chkvals,
                               chkargs=chkargs)
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    testcommon.runtest(datas,
                       TestStrategy,
                       printdata=main,
                       printops=main,
                       plot=main)
Esempio n. 4
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    testcommon.runtest(datas,
                       TestStrategy,
                       printdata=main,
                       printops=main,
                       plot=main)
Esempio n. 5
0
def test_run(main=False):
    for i in [True, False]:
        data = testcommon.getdata(0)

        if i:
            data = bt.DataReplayer(
                dataname=data,
                timeframe=bt.TimeFrame.Weeks,
                compression=1)
        else:
            data.replay(
                timeframe=bt.TimeFrame.Weeks,
                compression=1)

        datas = [data]
        testcommon.runtest(datas,
                           testcommon.TestStrategy,
                           main=main,
                           plot=main,
                           chkind=chkind,
                           chkmin=chkmin,
                           chkvals=chkvals,
                           chknext=chknext,
                           chkargs=chkargs,
                           runonce=False, preload=False)
Esempio n. 6
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    testcommon.runtest(datas,
                       testcommon.TestStrategy,
                       main=main,
                       plot=main,
                       chkind=chkind,
                       chkmin=chkmin,
                       chkvals=chkvals)
def test_run(main=False):
    for stlike in [False, True]:
        datas = [testcommon.getdata(i) for i in range(chkdatas)]
        testcommon.runtest(datas,
                           TestStrategy,
                           printdata=main,
                           printops=main,
                           stocklike=stlike,
                           plot=main)
Esempio n. 8
0
def test_run(main=False):
    for stlike in [False, True]:
        datas = [testcommon.getdata(i) for i in range(chkdatas)]
        testcommon.runtest(datas,
                           TestStrategy,
                           printdata=main,
                           printops=main,
                           stocklike=stlike,
                           plot=main)
Esempio n. 9
0
def test_run(main=False):
    for runonce in [True, False]:
        data = testcommon.getdata(0)
        data.resample(timeframe=bt.TimeFrame.Weeks, compression=1)

        datas = [data]
        testcommon.runtest(datas,
                           testcommon.TestStrategy,
                           main=main,
                           runonce=runonce,
                           plot=main,
                           chkind=chkind,
                           chkmin=chkmin,
                           chkvals=chkvals,
                           chkargs=chkargs)
Esempio n. 10
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    cerebros = testcommon.runtest(datas,
                                  TestStrategy,
                                  main=main,
                                  plot=main,
                                  writer=(bt.WriterStringIO, dict(csv=True)))

    for cerebro in cerebros:
        writer = cerebro.runwriters[0]
        if main:
            # writer.out.seek(0)
            for l in writer.out:
                print(l.rstrip('\r\n'))

        else:
            lines = iter(writer.out)
            l = next(lines).rstrip('\r\n')
            assert l == '=' * 79

            count = 0
            while True:
                l = next(lines).rstrip('\r\n')
                if l[0] == '=':
                    break
                count += 1

            assert count == 256  # header + 256 lines data
Esempio n. 11
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    cerebros = testcommon.runtest(datas,
                                  TestStrategy,
                                  main=main,
                                  plot=main,
                                  writer=(bt.WriterStringIO, dict(csv=True)))

    for cerebro in cerebros:
        writer = cerebro.runwriters[0]
        if main:
            # writer.out.seek(0)
            for l in writer.out:
                print(l.rstrip('\r\n'))

        else:
            lines = iter(writer.out)
            l = next(lines).rstrip('\r\n')
            assert l == '=' * 79

            count = 0
            while True:
                l = next(lines).rstrip('\r\n')
                if l[0] == '=':
                    break
                count += 1

            assert count == 256  # header + 256 lines data
Esempio n. 12
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    cerebros = testcommon.runtest(
        datas,
        TestStrategy,
        printdata=main,
        stocklike=False,
        printops=main,
        plot=main,
        analyzer=(bt.analyzers.TimeReturn, dict(timeframe=bt.TimeFrame.Years)))

    for cerebro in cerebros:
        strat = cerebro.runstrats[0][0]  # no optimization, only 1
        analyzer = strat.analyzers[0]  # only 1
        analysis = analyzer.get_analysis()
        if main:
            print(analysis)
            print(str(analysis[next(iter(analysis.keys()))]))
        else:
            # Handle different precision
            if PY2:
                sval = '0.2795'
            else:
                sval = '0.2794999999999983'

            assert str(analysis[next(iter(analysis.keys()))]) == sval
Esempio n. 13
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]

    for maxtrades in [None, 0, 1]:
        cerebros = testcommon.runtest(datas,
                                      TestStrategy,
                                      printdata=main,
                                      stocklike=False,
                                      maxtrades=maxtrades,
                                      printops=main,
                                      plot=main,
                                      analyzer=(bt.analyzers.SQN, {}))

        for cerebro in cerebros:
            strat = cerebro.runstrats[0][0]  # no optimization, only 1
            analyzer = strat.analyzers[0]  # only 1
            analysis = analyzer.get_analysis()
            if main:
                print(analysis)
                print(str(analysis.sqn))
            else:
                if maxtrades == 0 or maxtrades == 1:
                    assert analysis.sqn == 0
                    assert analysis.trades == maxtrades
                else:
                    # Handle different precision
                    assert str(analysis.sqn)[0:14] == '0.912550316439'
                    assert str(analysis.trades) == '11'
Esempio n. 14
0
def test_run(main=False):
    data = testcommon.getdata(0)

    data = bt.DataResampler(dataname=data,
                            timeframe=bt.TimeFrame.Weeks,
                            compression=1)

    datas = [data]
    testcommon.runtest(datas,
                       testcommon.TestStrategy,
                       main=main,
                       plot=main,
                       chkind=chkind,
                       chkmin=chkmin,
                       chkvals=chkvals,
                       chkargs=chkargs)
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    cerebros = testcommon.runtest(datas,
                                  TestStrategy,
                                  printdata=main,
                                  stocklike=False,
                                  printops=main,
                                  plot=main,
                                  analyzer=(bt.analyzers.TimeReturn,
                                            dict(timeframe=bt.TimeFrame.Years))
                                  )

    for cerebro in cerebros:
        strat = cerebro.runstrats[0][0]  # no optimization, only 1
        analyzer = strat.analyzers[0]  # only 1
        analysis = analyzer.get_analysis()
        if main:
            print(analysis)
            print(str(analysis[next(iter(analysis.keys()))]))
        else:
            # Handle different precision
            if PY2:
                sval = '0.2795'
            else:
                sval = '0.2794999999999983'

            assert str(analysis[next(iter(analysis.keys()))]) == sval
Esempio n. 16
0
def test_run(main=False, exbar=False):
    data = testcommon.getdata(0)
    data.replay(timeframe=bt.TimeFrame.Weeks, compression=1)
    datas = [data]
    testcommon.runtest(datas,
                       testcommon.TestStrategy,
                       main=main,
                       plot=main,
                       chkind=chkind,
                       chkmin=chkmin,
                       chkvals=chkvals,
                       chknext=chknext,
                       chkargs=chkargs,
                       runonce=False,
                       preload=False,
                       exbar=exbar)
Esempio n. 17
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]

    for maxtrades in [None, 0, 1]:
        cerebros = testcommon.runtest(datas,
                                      TestStrategy,
                                      printdata=main,
                                      stocklike=False,
                                      maxtrades=maxtrades,
                                      printops=main,
                                      plot=main,
                                      analyzer=(bt.analyzers.SQN, {}))

        for cerebro in cerebros:
            strat = cerebro.runstrats[0][0]  # no optimization, only 1
            analyzer = strat.analyzers[0]  # only 1
            analysis = analyzer.get_analysis()
            if main:
                print(analysis)
                print(str(analysis.sqn))
            else:
                if maxtrades == 0 or maxtrades == 1:
                    assert analysis.sqn == 0
                    assert analysis.trades == maxtrades
                else:
                    # Handle different precision
                    assert str(analysis.sqn)[0:14] == '0.912550316439'
                    assert str(analysis.trades) == '11'
Esempio n. 18
0
def test_run(main=False, exbar=False):
    data = testcommon.getdata(0)
    data.replay(timeframe=bt.TimeFrame.Weeks, compression=1)
    datas = [data]
    testcommon.runtest(datas,
                       testcommon.TestStrategy,
                       main=main,
                       plot=main,
                       chkind=chkind,
                       chkmin=chkmin,
                       chkvals=chkvals,
                       chknext=chknext,
                       chkargs=chkargs,
                       runonce=False,
                       preload=False,
                       exbar=exbar)
Esempio n. 19
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    testcommon.runtest(datas,
                       TestStrategy,
                       optimize=True,
                       period=xrange(5, 45),
                       printdata=main,
                       printops=main,
                       plot=False)

    if not main:
        assert CHKVALUES == _chkvalues
        assert CHKCASH == _chkcash

    else:
        print(_chkvalues)
        print(_chkcash)
Esempio n. 20
0
def test_run(main=False):
    data = testcommon.getdata(0)

    data = bt.DataResampler(
        data=data,
        timeframe=bt.TimeFrame.Weeks,
        compression=1)

    datas = [data]
    testcommon.runtest(datas,
                       testcommon.TestStrategy,
                       main=main,
                       plot=main,
                       chkind=chkind,
                       chkmin=chkmin,
                       chkvals=chkvals,
                       chkargs=chkargs)
Esempio n. 21
0
def test_run(main=False):
    # Create list with bool possibilitys for:
    # PandasData and PandasOptix,
    # no headers,
    dc = [0, 1]
    data = [getdata(i, noheaders=nh) for i in dc for nh in dc]

    for runonce in [True, False]:
        datas = data
        testcommon.runtest(datas,
                           testcommon.TestStrategy,
                           main=main,
                           runonce=runonce,
                           plot=False,
                           chkind=chkind,
                           chkmin=chkmin,
                           chkvals=chkvals,
                           chkargs=chkargs)
Esempio n. 22
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]

    for maxtrades in [None, 0, 1]:
        cerebros = testcommon.runtest(datas,
                                      TestStrategy,
                                      printdata=main,
                                      stocklike=False,
                                      maxtrades=maxtrades,
                                      printops=main,
                                      plot=main,
                                      analyzer=(bt.analyzers.LatestBar, {}))

        for cerebro in cerebros:
            strat = cerebro.runstrats[0][0]  # no optimization, only 1
            analyzer = strat.analyzers[0]  # only 1
            analysis = analyzer.get_analysis()
            if main:
                print(analysis)
            else:
                assert analysis['datetime'] == datetime.datetime(
                    2006, 12, 29, 23, 59, 59, 999989)
                assert analysis['close'] == 4119.94
                assert analysis['prev_close'] == 4130.66
                assert analysis['low'] == 4119.94
                assert analysis['prev_low'] == 4125.14
                assert analysis['high'] == 4142.01
                assert analysis['prev_high'] == 4142.06
                assert analysis['open'] == 4130.12
                assert analysis['prev_open'] == 4137.44
                assert analysis['volume'] == 0.0
                assert analysis['prev_volume'] == 0.0
                assert analysis['openinterest'] == 0.0
                assert analysis['prev_openinterest'] == 0.0

                assert analysis['sma_sma'] == 4095.012
                assert analysis['prev_sma_sma'] == 4087.17
                assert analysis['co_crossover'] == 0.0
                assert analysis['prev_co_crossover'] == 0.0
                # do not validate broker, we get diff results
                # assert analysis['b_cash'] == 11902.199999999986
                # assert analysis['prev_b_cash'] == 11944.199999999984
                # assert analysis['b_value'] == 12902.199999999986
                # assert analysis['prev_b_value'] == 12944.199999999984
                assert np.isnan(analysis['bs_buy'])
                assert np.isnan(analysis['prev_bs_buy'])
                assert np.isnan(analysis['bs_sell'])
                assert np.isnan(analysis['prev_bs_sell'])
                assert np.isnan(analysis['t_pnlplus'])
                assert np.isnan(analysis['prev_t_pnlplus'])
                assert np.isnan(analysis['t_pnlminus'])
                assert np.isnan(analysis['prev_t_pnlminus'])
Esempio n. 23
0
def test_run(main=False):
    global _chkvalues
    global _chkcash

    for runonce in [True, False]:
        for preload in [True, False]:
            for exbar in [True, False, -1, -2]:
                _chkvalues = list()
                _chkcash = list()

                datas = [testcommon.getdata(i) for i in range(chkdatas)]
                testcommon.runtest(datas,
                                   TestStrategy,
                                   runonce=runonce,
                                   preload=preload,
                                   exbar=exbar,
                                   optimize=True,
                                   period=range(5, 45),
                                   printdata=main,
                                   printops=main,
                                   plot=False)

                if not main:
                    assert CHKVALUES == _chkvalues
                    assert CHKCASH == _chkcash

                else:
                    print('*' * 50)
                    print(CHKVALUES == _chkvalues)
                    print('-' * 50)
                    print(CHKVALUES)
                    print('-' * 50)
                    print(_chkvalues)
                    print('*' * 50)
                    print(CHKCASH == _chkcash)
                    print('-' * 50)
                    print(CHKCASH)
                    print('-' * 50)
                    print(_chkcash)
Esempio n. 24
0
def test_run(main=False):
    datas = [testcommon.getdata(i) for i in range(chkdatas)]
    cerebros = testcommon.runtest(datas,
                                  TestStrategy,
                                  printdata=main,
                                  stocklike=False,
                                  printops=main,
                                  plot=main,
                                  analyzer=(bt.analyzers.SQN, {}))

    for cerebro in cerebros:
        strat = cerebro.runstrats[0][0]  # no optimization, only 1
        analyzer = strat.analyzers[0]  # only 1
        analysis = analyzer.get_analysis()
        if main:
            print(analysis)
            print(str(analysis.sqn))
        else:
            assert str(analysis.sqn) == '0.912550316439'
            assert str(analysis.trades) == '11'