-
Notifications
You must be signed in to change notification settings - Fork 53
/
Copy pathportfoliomodel.py
55 lines (36 loc) · 1.35 KB
/
portfoliomodel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" determine lottery portfolio model """
__author__ = 'ggstar'
import lottery
def get_best_profit(portfolio):
def min_pay(w, d, l, wp, dp, lp):
if w * wp <= d * dp and w * wp <= l * lp:
return w * wp
if d * dp <= w * wp and d * dp <= l * lp:
return d * dp
else:
return l * lp
for i in range(100):
for j in range(100-i):
profit = min_pay(portfolio.win_item.cw_odds,
portfolio.draw_item.cd_odds,
portfolio.lose_item.cl_odds,
i, j, 100 - i -j)
if profit > portfolio.profit:
portfolio.profit = profit
portfolio.win_percentage = i
portfolio.draw_percentage = j
portfolio.lose_percentage = 100 - i - j
return portfolio
def best_portfolio(match):
portfolio = lottery.LotteryPortfolio()
for item in match.item_arr:
if portfolio.win_item.cw_odds < item.cw_odds:
portfolio.win_item = item
if portfolio.draw_item.cd_odds < item.cd_odds:
portfolio.draw_item = item
if portfolio.lose_item.cl_odds < item.cl_odds:
portfolio.lose_item = item
portfolio = get_best_profit(portfolio)
return portfolio