Ejemplo n.º 1
0
def analyze_by_metric():
    factors_by_metric = {}
    count = 0
    for race in race_feed(2000):
        if len([
                s for s in race
                if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0
        ]) > 0:
            continue
        assign_metrics(race)
        for m in race.metrics:
            if m not in factors_by_metric:
                factors_by_metric[m] = [
                    FactorStats(f) for f in [just_broke_the_maiden]
                ]
        try:
            race.takeout = 1.0 - 1.0 / sum(
                [1.0 / (1.0 + s.final_odds) for s in race])
            for starter in race:
                starter.crowd_probability = (1.0 - race.takeout) / (
                    1.0 + starter.final_odds)

            for m in race.metrics:
                factor_stats = factors_by_metric[m]
                map(lambda f: f.add(race), factor_stats)
            count += 1
        except Exception as e:
            print 'here', e, race.parent.track, race.parent.date, race.number

    for m in factors_by_metric:
        print m
        factor_stats = factors_by_metric[m]
        map(lambda f: f.show_details(), factor_stats)
Ejemplo n.º 2
0
def analyze_by_metric():
    factors_by_metric = {}
    count = 0
    for race in race_feed(2000):
        if len([s for s in race if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0]) > 0:
            continue
        assign_metrics(race)
        for m in race.metrics:
            if m not in factors_by_metric:
                factors_by_metric[m] = [FactorStats(f) for f in [just_broke_the_maiden]]
        try:
            race.takeout = 1.0 - 1.0 / sum([1.0 / (1.0 + s.final_odds) for s in race])
            for starter in race:
                starter.crowd_probability = (1.0 - race.takeout) / (1.0 + starter.final_odds)

            for m in race.metrics:
                factor_stats = factors_by_metric[m]
                map(lambda f: f.add(race), factor_stats)
            count += 1
        except Exception as e:
            print "here", e, race.parent.track, race.parent.date, race.number

    for m in factors_by_metric:
        print m
        factor_stats = factors_by_metric[m]
        map(lambda f: f.show_details(), factor_stats)
Ejemplo n.º 3
0
def analyze_favorites():
    #factor_stats =[all_favorites, first_time_out, short_layoff, layoff, long_layoff, second_of_layoff, third_of_layoff, deep_form_cycle] 

    #factor_stats = [ FactorStats(f) for f in factor_stats]

    factor_stats = []
 
    for days_off in  range(20,200,15):

        f = foo(days_off)
        f.__name__ = 'layoff_{0}'.format(days_off)
        func = FactorStats(f)
        factor_stats.append(func)

        f = slo(days_off)
        f.__name__ = '2nd of layoff_{0}'.format(days_off)
        func = FactorStats(f)
        factor_stats.append(func)

        f = tlo(days_off)
        f.__name__ = '3rd of layoff_{0}'.format(days_off)
        func = FactorStats(f)
        factor_stats.append(func)


    count = 0

    for race in race_feed():

        if len([s for s in race if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0]) > 0:
                    continue

        try:
                race.takeout = 1.0 - 1.0 / sum( [ 1.0 / (1.0 + s.final_odds) for s in race] )
                for starter in race:
                     starter.crowd_probability = 1.0 / ( (race.takeout + 1.0) * ( 1.0 + starter.final_odds))

                map(lambda f : f.add(race.favorite), factor_stats)
                count += 1

        except Exception as e:
            print 'here',e, race.parent.track, race.parent.date, race.number


    s = '{0:35} '.format('factor')
    s += '{0:12} '.format('expected')
    s += '{0:12}'.format('observed')
    s += '{0:12}'.format('rate')
    s += '{0:12}'.format('roi')
    print s
    print


    for factor in factor_stats:
        print str(factor)
        #factor.show_details()

    print 'number of races:', count
Ejemplo n.º 4
0
def recency_histogram():
    counter = Counter()
    for race in race_feed():
        if len([s for s in race if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0]) > 0:
                    continue
        try:
            for starter in race:
                if first_time_out(starter):
                    pass
                else:
                    counter[int(starter.days_off)] += 1
        except Exception as e:
            print 'here',e, race.parent.track, race.parent.date, race.number

    keys = sorted(counter.keys())
    for k in keys:
        print '{0},{1}'.format(k, counter[k])
Ejemplo n.º 5
0
def analyze(factors):
    factor_stats = [FactorStats(f) for f in factors]
    count = 0
    for race in race_feed():
        if len([s for s in race if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0]) > 0:
            continue
        try:
            race.takeout = 1.0 - 1.0 / sum([1.0 / (1.0 + s.final_odds) for s in race])
            for starter in race:
                starter.crowd_probability = (1.0 - race.takeout) / (1.0 + starter.final_odds)

            map(lambda f: f.add(race), factor_stats)
            count += 1

        except Exception as e:
            print "here", e, race.parent.track, race.parent.date, race.number
    map(lambda f: f.show_details(), factor_stats)
Ejemplo n.º 6
0
def analyze(factors):
    factor_stats = [FactorStats(f) for f in factors]
    count = 0
    for race in race_feed():
        if len([
                s for s in race
                if s.final_odds < 0.01 or len(s.entry_indicator.strip()) > 0
        ]) > 0:
            continue
        try:
            race.takeout = 1.0 - 1.0 / sum(
                [1.0 / (1.0 + s.final_odds) for s in race])
            for starter in race:
                starter.crowd_probability = (1.0 - race.takeout) / (
                    1.0 + starter.final_odds)

            map(lambda f: f.add(race), factor_stats)
            count += 1

        except Exception as e:
            print 'here', e, race.parent.track, race.parent.date, race.number
    map(lambda f: f.show_details(), factor_stats)
Ejemplo n.º 7
0
def evaluate_opening_call_of_race(pp):
    return get_evaluator().evaluate_opening_call_of_race(pp)


def evaluate_final_time_of_race(pp):
    return get_evaluator().evaluate_final_time_of_race(pp)


def evaluate_closing_for_starter(pp):
    return get_evaluator().evaluate_closing_for_starter(pp)


def get_closing_time_for_starter(pp):
    return get_evaluator().get_closing_time_for_starter(pp)


def get_fractions_for_starter(pp):
    return get_evaluator().get_fractions_for_starter(pp)


if __name__ == '__main__':
    from card_loader import race_feed
    for race in race_feed():
        for starter in race.starters:
            for pp in starter.past_performances:
                print fancy_format(evaluate_opening_call_of_race(pp), 'OPEN'),
                print evaluate_opening_call_of_race(pp),
                print fancy_format(evaluate_final_time_of_race(pp), 'FINAL'),
                print evaluate_final_time_of_race(pp),
                print evaluate_closing_for_starter(pp)
Ejemplo n.º 8
0
    if  distance_metrics is None:
        distance_metrics = DistanceMetrics()
    assert(None is not distance_metrics)
    return distance_metrics

def evaluate_opening_call_of_race(pp):
    return get_evaluator().evaluate_opening_call_of_race(pp)

def evaluate_final_time_of_race(pp):
    return get_evaluator().evaluate_final_time_of_race(pp)

def evaluate_closing_for_starter(pp):
    return  get_evaluator().evaluate_closing_for_starter(pp)

def get_closing_time_for_starter(pp):
    return  get_evaluator().get_closing_time_for_starter(pp)

def get_fractions_for_starter(pp):
    return  get_evaluator().get_fractions_for_starter(pp)

if __name__ == '__main__':
    from card_loader import race_feed
    for race in race_feed():
        for starter in race.starters:
            for pp in starter.past_performances:
                print fancy_format(evaluate_opening_call_of_race(pp), 'OPEN'),
                print evaluate_opening_call_of_race(pp),
                print fancy_format(evaluate_final_time_of_race(pp), 'FINAL'),
                print evaluate_final_time_of_race(pp),
                print evaluate_closing_for_starter(pp)