Пример #1
0
def get_performance_stats_by_month(
    entity_type="stock",
    start_timestamp="2015-01-01",
    end_timestamp=now_pd_timestamp(),
    adjust_type: Union[AdjustType, str] = None,
    data_provider=None,
):
    ranges = month_start_end_ranges(start_date=start_timestamp,
                                    end_date=end_timestamp)

    month_stats = {}
    for month_range in ranges:
        start_timestamp = month_range[0]
        end_timestamp = month_range[1]
        logger.info(f"calculate range [{start_timestamp}, {end_timestamp}]")
        stats = get_performance_stats(
            entity_type=entity_type,
            start_timestamp=start_timestamp,
            end_timestamp=end_timestamp,
            adjust_type=adjust_type,
            data_provider=data_provider,
        )
        if stats:
            month_stats[f"{to_time_str(start_timestamp)}"] = stats

    return pd.DataFrame.from_dict(data=month_stats, orient="index")
Пример #2
0
def test_month_start_end_range():
    start = "2020-01-01"
    end = "2021-01-01"
    ranges = month_start_end_ranges(start_date=start, end_date=end)
    print(ranges)
    assert is_same_date(ranges[0][0], "2020-01-01")
    assert is_same_date(ranges[0][1], "2020-01-31")

    assert is_same_date(ranges[-1][0], "2020-12-01")
    assert is_same_date(ranges[-1][1], "2020-12-31")

    start = "2020-01-01"
    end = "2021-01-31"
    ranges = month_start_end_ranges(start_date=start, end_date=end)
    print(ranges)
    assert is_same_date(ranges[0][0], "2020-01-01")
    assert is_same_date(ranges[0][1], "2020-01-31")

    assert is_same_date(ranges[-1][0], "2021-01-01")
    assert is_same_date(ranges[-1][1], "2021-01-31")
Пример #3
0
def test_month_start_end_range():
    start = '2020-01-01'
    end = '2021-01-01'
    ranges = month_start_end_ranges(start_date=start, end_date=end)
    print(ranges)
    assert is_same_date(ranges[0][0], '2020-01-01')
    assert is_same_date(ranges[0][1], '2020-01-31')

    assert is_same_date(ranges[-1][0], '2020-12-01')
    assert is_same_date(ranges[-1][1], '2020-12-31')

    start = '2020-01-01'
    end = '2021-01-31'
    ranges = month_start_end_ranges(start_date=start, end_date=end)
    print(ranges)
    assert is_same_date(ranges[0][0], '2020-01-01')
    assert is_same_date(ranges[0][1], '2020-01-31')

    assert is_same_date(ranges[-1][0], '2021-01-01')
    assert is_same_date(ranges[-1][1], '2021-01-31')
Пример #4
0
def got_top_performance_by_month(entity_type='stock',
                                 start_timestamp='2015-01-01',
                                 end_timestamp=now_pd_timestamp(),
                                 list_days=None):
    ranges = month_start_end_ranges(start_date=start_timestamp, end_date=end_timestamp)

    for month_range in ranges:
        start_timestamp = month_range[0]
        end_timestamp = month_range[1]
        top, _ = get_top_performance_entities(entity_type=entity_type, start_timestamp=start_timestamp,
                                              end_timestamp=end_timestamp, list_days=list_days)

        yield (end_timestamp, top)
Пример #5
0
def get_top_performance_by_month(
        entity_type="stock",
        start_timestamp="2015-01-01",
        end_timestamp=now_pd_timestamp(),
        list_days=None,
        data_provider=None,
):
    ranges = month_start_end_ranges(start_date=start_timestamp,
                                    end_date=end_timestamp)

    for month_range in ranges:
        start_timestamp = month_range[0]
        end_timestamp = month_range[1]
        top, _ = get_top_performance_entities(
            entity_type=entity_type,
            start_timestamp=start_timestamp,
            end_timestamp=end_timestamp,
            list_days=list_days,
            data_provider=data_provider,
        )

        yield start_timestamp, end_timestamp, top