Beispiel #1
0
def test_roi_topN():
    type = 'short'
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', 'close', 'date', score_name])
    df.loc[0] = [0.2, 20, '20160520', 1.1]
    df.loc[1] = [0.3, 40, '20160520', 0.9]
    df.loc[2] = [0.2, 20, '20160521', 1.1]
    res = ana.roi_topN(df, tscore, 1, 'short')
    assert res['roi4'][0] == -100

    res = ana.roi_topN(df, tscore, 1, 'long')
    assert res['roi4'][0] == -100
Beispiel #2
0
def test_accurate_topN():
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', score_name])
    df.loc[0] = [0.1, 1]
    df.loc[1] = [0.9, 1]
    df.loc[2] = [0.2, 0]
    df.loc[3] = [0.6, 0]

    res = ana.accurate_topN(df, tscore, 2, 'long')
    assert res[res.top == '2'].iloc[0, 1] == 0.5
    assert res[res.top == '2'].iloc[0, 2] == 0.6

    res = ana.accurate_topN(df, tscore, 2, 'short')
    assert res[res.top == '2'].iloc[0, 1] == 0.5
    assert res[res.top == '2'].iloc[0, 2] == 0.2
Beispiel #3
0
def test_roi_level_per_year():
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', 'close', 'date', score_name])
    df.loc[0] = [0.2, 20, '20160520', 1.1]
    df.loc[1] = [0.3, 40, '20160520', 0.9]
    df.loc[2] = [0.2, 20, '20170521', 1.1]
    df.loc[3] = [0.4, 20, '20170521', 0.8]
    res = ana.roi_level_per_year(df, tscore, 0.2, 0.3, 'long')
    assert res[res.year == '2016'].iloc[0, 2] == 2
    assert res[res.year == '2016'].iloc[0, 3] == 0
    assert res[res.year == '2016'].iloc[0, 5] == 1
    assert res[res.year == '2016'].iloc[0, 6] == -100

    res = ana.roi_level_per_year(df, tscore, 0.2, 0.3, 'short')
    assert res[res.year == '2017'].iloc[0, 2] == 1
    assert res[res.year == '2017'].iloc[0, 3] == -100
    assert res[res.year == '2017'].iloc[0, 5] == 1
    assert res[res.year == '2017'].iloc[0, 6] == -100
Beispiel #4
0
def test_roi_last_months():
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', 'close', 'date', score_name])
    df.loc[0] = [0.1, 20, '2016-05-31', 1.1]
    df.loc[1] = [0.3, 40, '2016-05-30', 0.9]
    df.loc[2] = [0.2, 20, '2016-06-01', 1.1]
    df.loc[3] = [0.4, 20, '2016-06-02', 0.8]
    df.loc[4] = [0.25, 20, '2016-06-03', 1]

    res = ana.roi_last_months(df, tscore, 0.2, 0.3, 'long')
    assert res[res.month == '2016-05'].iloc[0, 1] == 0.2
    assert res[res.month == '2016-05'].iloc[0, 2] == 1
    assert res[res.month == '2016-05'].iloc[0, 3] == -100
    assert res[res.month == '2016-05'].iloc[0, 4] == 0.3
    assert res[res.month == '2016-05'].iloc[0, 5] == 1
    assert res[res.month == '2016-05'].iloc[0, 6] == -100

    assert res[res.month == '2016-06'].iloc[0, 1] == 0.2
    assert res[res.month == '2016-06'].iloc[0, 2] == 3
    assert res[res.month == '2016-06'].iloc[0, 3] == -100.0 / 3
    assert res[res.month == '2016-06'].iloc[0, 4] == 0.3
    assert res[res.month == '2016-06'].iloc[0, 5] == 1
    assert res[res.month == '2016-06'].iloc[0, 6] == -200

    res = ana.roi_last_months(df, tscore, 0.2, 0.3, 'short')
    assert res[res.month == '2016-05'].iloc[0, 1] == 0.2
    assert res[res.month == '2016-05'].iloc[0, 2] == 1
    assert res[res.month == '2016-05'].iloc[0, 3] == -100
    assert res[res.month == '2016-05'].iloc[0, 4] == 0.3
    assert res[res.month == '2016-05'].iloc[0, 5] == 2
    assert res[res.month == '2016-05'].iloc[0, 6] == 0

    assert res[res.month == '2016-06'].iloc[0, 1] == 0.2
    assert res[res.month == '2016-06'].iloc[0, 2] == 1
    assert res[res.month == '2016-06'].iloc[0, 3] == -100.0
    assert res[res.month == '2016-06'].iloc[0, 4] == 0.3
    assert res[res.month == '2016-06'].iloc[0, 5] == 2
    assert res[res.month == '2016-06'].iloc[0, 6] == -50
Beispiel #5
0
def test_accurate_level():
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', score_name])
    df.loc[0] = [0.1, 1]
    df.loc[1] = [0.9, 1]
    df.loc[2] = [0.2, 0]
    df.loc[3] = [0.6, 0]
    res = ana.accurate_level(df, tscore, 'long', [1, 2, 3, 4])
    assert res[res.top == '1'].iloc[0, 1] == 1.0
    assert res[res.top == '1'].iloc[0, 2] == 0.9
    assert res[res.top == '2'].iloc[0, 1] == 0.5
    assert res[res.top == '2'].iloc[0, 2] == 0.6
    assert res[res.top == '3'].iloc[0, 1] == 1.0 / 3
    assert res[res.top == '3'].iloc[0, 2] == 0.2

    res = ana.accurate_level(df, tscore, 'short', [1, 2, 3, 4])
    assert res[res.top == '1'].iloc[0, 1] == 0
    assert res[res.top == '1'].iloc[0, 2] == 0.1
    assert res[res.top == '2'].iloc[0, 1] == 0.5
    assert res[res.top == '2'].iloc[0, 2] == 0.2
    assert res[res.top == '3'].iloc[0, 1] == 2.0 / 3
    assert res[res.top == '3'].iloc[0, 2] == 0.6
Beispiel #6
0
def test_roi_level():
    tscore = score.ScoreLabel(5, 1.0)
    score_name = tscore.get_name()
    df = pd.DataFrame(columns=['pred', 'close', 'date', score_name])
    df.loc[0] = [0.1, 20, '20160520', 1.1]
    df.loc[1] = [0.3, 40, '20160519', 0.9]
    df.loc[2] = [0.2, 20, '20170521', 1.1]
    df.loc[3] = [0.4, 20, '20170522', 0.8]
    df.loc[4] = [0.25, 20, '20170523', 1]

    levels = [1, 2, 3, 4, -1]
    res = ana.roi_level(df, tscore, 'short', levels)

    assert res[res.top == 1.0].iloc[0, 2] == 1
    assert res[res.top == 1.0].iloc[0, 1] == 0.1
    assert res[res.top == 1.0].iloc[0, 3] == -100

    assert res[res.top == 2.0].iloc[0, 2] == 2
    assert res[res.top == 2.0].iloc[0, 1] == 0.2
    assert res[res.top == 2.0].iloc[0, 3] == -100

    assert res[res.top == -1].iloc[0, 2] == 5
    assert res[res.top == -1].iloc[0, 1] == 0.4
    assert res[res.top == -1].iloc[0, 3] == 20

    res = ana.roi_level(df, tscore, 'long', levels)
    assert res[res.top == 1.0].iloc[0, 2] == 1
    assert res[res.top == 1.0].iloc[0, 1] == 0.4
    assert res[res.top == 1.0].iloc[0, 3] == -200

    assert res[res.top == 2.0].iloc[0, 2] == 2
    assert res[res.top == 2.0].iloc[0, 1] == 0.3
    assert res[res.top == 2.0].iloc[0, 3] == -150

    assert res[res.top == -1].iloc[0, 2] == 5
    assert res[res.top == -1].iloc[0, 1] == 0.1
    assert res[res.top == -1].iloc[0, 3] == -20