如何将 Excel 求解器与 IF 语句一起使用?
How do I use Excel Solver with IF statements?
我有 table 的网球运动员,我已经计算出他们以三种不同的方式赢得各自比赛的概率,例如前 10 场比赛获胜的百分比,比赛中的首次发球百分比等等。我已经为这些概率中的每一个分配了权重以创建混合概率,我将其转换为预测赔率。然后,我将这些预测赔率与博彩公司提供的实际赔率进行比较,得出 'edge'。优势意味着博彩公司提供的赔率高于应有的赔率,并且下注有 'value'。存在三种可能的情况:
- 边缘 >= 边缘阈值,玩家赢然后我赢 £100 x 实际赔率
- 边缘 >= 边缘阈值,玩家输了我就输了 £100
- Edge < Edge threshold, 不赌所以不输也不输
我想找出产生最高利润水平的三个概率和边缘阈值的最佳组合。我尝试使用 Excel Solver 来执行此操作,但显然它无法处理 IF 语句。我在一些地方读到过,您可以将 IF 语句转换为复杂的公式来解决这个问题,但我还没有找到足够清晰的示例。有哪些潜在的解决方案?
这里是 table:
的示例供参考
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
| PKG | Probability 1 | Probability 2 | Probability 3 | Blended probability | Predicted odds | Actuals odds | Edge | WIN/ LOSE | Overall P&L |
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
| 1 | 32.4% | 28.6% | 74.0% | 43.4% | 2.31 | 2.81 | 7.86 | 1 | 0 |
| 2 | 36.2% | 34.1% | 61.0% | 42.8% | 2.34 | 4.47 | 20.39 | 0 | -100 |
| 3 | 55.2% | 58.2% | 42.0% | 52.4% | 1.91 | 4.13 | 28.19 | 1 | 413 |
| 4 | 60.7% | 64.7% | 67.0% | 64.2% | 1.56 | 1.44 | -5.17 | 0 | 0 |
| 5 | 33.7% | 40.1% | 75.0% | 48.6% | 2.06 | 2.32 | 5.57 | 1 | 0 |
| 6 | 48.7% | 47.8% | 77.0% | 56.8% | 1.76 | 3.41 | 27.46 | 0 | -100 |
| 7 | 55.2% | 64.1% | 79.0% | 65.9% | 1.52 | 2.38 | 23.87 | 1 | 238 |
| 8 | 45.6% | 34.9% | 30.0% | 36.6% | 2.73 | 3.70 | 9.63 | 0 | 0 |
| 9 | 56.9% | 63.1% | 49.0% | 57.0% | 1.75 | 3.00 | 23.64 | 1 | 300 |
| 10 | 38.6% | 37.6% | 25.0% | 34.1% | 2.93 | 3.25 | 3.32 | 0 | 0 |
| 11 | 56.4% | 56.4% | 63.0% | 58.4% | 1.71 | 2.74 | 21.90 | 1 | 274 |
| 12 | 71.3% | 78.1% | 38.0% | 64.1% | 1.56 | 3.66 | 36.75 | 0 | -100 |
| 13 | 61.4% | 67.5% | 72.0% | 67.0% | 1.49 | 1.23 | -14.50 | 1 | 0 |
| 14 | 66.4% | 73.0% | 76.0% | 71.9% | 1.39 | 1.42 | 1.46 | 0 | 0 |
| 15 | 56.1% | 64.8% | 21.0% | 49.1% | 2.04 | 1.35 | -25.19 | 1 | 0 |
| 16 | 61.5% | 53.4% | 57.0% | 56.9% | 1.76 | 1.37 | 21.03 | 0 | -100 |
| 17 | 32.4% | 26.2% | 45.0% | 33.7% | 2.97 | 1.45 | -35.14 | 1 | 0 |
| 18 | 69.5% | 62.5% | 43.0% | 58.8% | 1.70 | 1.77 | 2.19 | 0 | 0 |
| 19 | 65.0% | 65.3% | 45.0% | 59.1% | 1.69 | 3.66 | 31.81 | 1 | 366 |
| 20 | 73.1% | 81.9% | 45.0% | 68.2% | 1.47 | 1.12 | -21.03 | 0 | 0 |
| 21 | 52.2% | 51.4% | 25.0% | 43.7% | 2.29 | 2.59 | 5.14 | 1 | 0 |
| 22 | 30.9% | 38.2% | 27.0% | 32.6% | 3.06 | 2.26 | -11.61 | 0 | 0 |
| 23 | 61.6% | 43.1% | 46.0% | 49.5% | 2.02 | 2.82 | 14.11 | 1 | 0 |
| 24 | 58.6% | 73.4% | 34.0% | 57.1% | 1.75 | 4.21 | 33.38 | 0 | -100 |
| 25 | 64.4% | 72.8% | 61.0% | 66.7% | 1.50 | 2.24 | 21.99 | 1 | 224 |
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
权重如下:
+---------------+-----------+
| Blend | Weighting |
+---------------+-----------+
| Probability 1 | 30.0% |
| Probability 2 | 40.0% |
| Probability 3 | 30.0% |
+---------------+-----------+
预测赔率使用以下公式计算:
=1/Blend prob
边缘使用以下公式计算:
=(100/Pred odds)-(100/Act odds)
当前边缘阈值为20。
计算整体盈亏的IF语句为:
=IF(WIN/LOSE=1,IF(Edge>=Edge threshold,100*Act odds,0),IF(Edge>=Edge threshold,-100,0))
我设置求解器如下:
- Objective:汇总总损益单元格的单元格的最大值
- 变量:i) 上面的权重单元格作为固定值和 ii) 边缘阈值作为固定值的单元格
- 常量:对权重求和的单元格 - 设置为 1 (100%) 并将边缘阈值设置为整数
- 方法:尝试了 GRG 非线性和进化(后者应该能够处理 'non-smooth' 问题,即 IF 语句)
所以我使用 Solver 测试了你的样本数据,设置如下:
变量范围是C29:C32
(三个权重和阈值);
约束是:
C29:C31<=1
因为它们是概率;
C32<=100
必须为此变量设置一个上限,所以我选择了 100
哪个应该是安全的?
C33=1
三个权重之和应该是 100% 准确的?
使用进化方法得到如下:
- 最大利润:
2210
;
- 概率 1:
37.5%
- 概率 2:
9.1%
- 概率 3:
53.4%
- 阈值:
18
I think the WIN/LOSS result plays a significant role in this exercise but what would be the reasonable constraints for this range except binary
?
我有 table 的网球运动员,我已经计算出他们以三种不同的方式赢得各自比赛的概率,例如前 10 场比赛获胜的百分比,比赛中的首次发球百分比等等。我已经为这些概率中的每一个分配了权重以创建混合概率,我将其转换为预测赔率。然后,我将这些预测赔率与博彩公司提供的实际赔率进行比较,得出 'edge'。优势意味着博彩公司提供的赔率高于应有的赔率,并且下注有 'value'。存在三种可能的情况:
- 边缘 >= 边缘阈值,玩家赢然后我赢 £100 x 实际赔率
- 边缘 >= 边缘阈值,玩家输了我就输了 £100
- Edge < Edge threshold, 不赌所以不输也不输
我想找出产生最高利润水平的三个概率和边缘阈值的最佳组合。我尝试使用 Excel Solver 来执行此操作,但显然它无法处理 IF 语句。我在一些地方读到过,您可以将 IF 语句转换为复杂的公式来解决这个问题,但我还没有找到足够清晰的示例。有哪些潜在的解决方案?
这里是 table:
的示例供参考
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
| PKG | Probability 1 | Probability 2 | Probability 3 | Blended probability | Predicted odds | Actuals odds | Edge | WIN/ LOSE | Overall P&L |
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
| 1 | 32.4% | 28.6% | 74.0% | 43.4% | 2.31 | 2.81 | 7.86 | 1 | 0 |
| 2 | 36.2% | 34.1% | 61.0% | 42.8% | 2.34 | 4.47 | 20.39 | 0 | -100 |
| 3 | 55.2% | 58.2% | 42.0% | 52.4% | 1.91 | 4.13 | 28.19 | 1 | 413 |
| 4 | 60.7% | 64.7% | 67.0% | 64.2% | 1.56 | 1.44 | -5.17 | 0 | 0 |
| 5 | 33.7% | 40.1% | 75.0% | 48.6% | 2.06 | 2.32 | 5.57 | 1 | 0 |
| 6 | 48.7% | 47.8% | 77.0% | 56.8% | 1.76 | 3.41 | 27.46 | 0 | -100 |
| 7 | 55.2% | 64.1% | 79.0% | 65.9% | 1.52 | 2.38 | 23.87 | 1 | 238 |
| 8 | 45.6% | 34.9% | 30.0% | 36.6% | 2.73 | 3.70 | 9.63 | 0 | 0 |
| 9 | 56.9% | 63.1% | 49.0% | 57.0% | 1.75 | 3.00 | 23.64 | 1 | 300 |
| 10 | 38.6% | 37.6% | 25.0% | 34.1% | 2.93 | 3.25 | 3.32 | 0 | 0 |
| 11 | 56.4% | 56.4% | 63.0% | 58.4% | 1.71 | 2.74 | 21.90 | 1 | 274 |
| 12 | 71.3% | 78.1% | 38.0% | 64.1% | 1.56 | 3.66 | 36.75 | 0 | -100 |
| 13 | 61.4% | 67.5% | 72.0% | 67.0% | 1.49 | 1.23 | -14.50 | 1 | 0 |
| 14 | 66.4% | 73.0% | 76.0% | 71.9% | 1.39 | 1.42 | 1.46 | 0 | 0 |
| 15 | 56.1% | 64.8% | 21.0% | 49.1% | 2.04 | 1.35 | -25.19 | 1 | 0 |
| 16 | 61.5% | 53.4% | 57.0% | 56.9% | 1.76 | 1.37 | 21.03 | 0 | -100 |
| 17 | 32.4% | 26.2% | 45.0% | 33.7% | 2.97 | 1.45 | -35.14 | 1 | 0 |
| 18 | 69.5% | 62.5% | 43.0% | 58.8% | 1.70 | 1.77 | 2.19 | 0 | 0 |
| 19 | 65.0% | 65.3% | 45.0% | 59.1% | 1.69 | 3.66 | 31.81 | 1 | 366 |
| 20 | 73.1% | 81.9% | 45.0% | 68.2% | 1.47 | 1.12 | -21.03 | 0 | 0 |
| 21 | 52.2% | 51.4% | 25.0% | 43.7% | 2.29 | 2.59 | 5.14 | 1 | 0 |
| 22 | 30.9% | 38.2% | 27.0% | 32.6% | 3.06 | 2.26 | -11.61 | 0 | 0 |
| 23 | 61.6% | 43.1% | 46.0% | 49.5% | 2.02 | 2.82 | 14.11 | 1 | 0 |
| 24 | 58.6% | 73.4% | 34.0% | 57.1% | 1.75 | 4.21 | 33.38 | 0 | -100 |
| 25 | 64.4% | 72.8% | 61.0% | 66.7% | 1.50 | 2.24 | 21.99 | 1 | 224 |
+-----+---------------+---------------+---------------+---------------------+----------------+--------------+--------+-----------+-------------+
权重如下:
+---------------+-----------+
| Blend | Weighting |
+---------------+-----------+
| Probability 1 | 30.0% |
| Probability 2 | 40.0% |
| Probability 3 | 30.0% |
+---------------+-----------+
预测赔率使用以下公式计算:
=1/Blend prob
边缘使用以下公式计算:
=(100/Pred odds)-(100/Act odds)
当前边缘阈值为20。
计算整体盈亏的IF语句为:
=IF(WIN/LOSE=1,IF(Edge>=Edge threshold,100*Act odds,0),IF(Edge>=Edge threshold,-100,0))
我设置求解器如下:
- Objective:汇总总损益单元格的单元格的最大值
- 变量:i) 上面的权重单元格作为固定值和 ii) 边缘阈值作为固定值的单元格
- 常量:对权重求和的单元格 - 设置为 1 (100%) 并将边缘阈值设置为整数
- 方法:尝试了 GRG 非线性和进化(后者应该能够处理 'non-smooth' 问题,即 IF 语句)
所以我使用 Solver 测试了你的样本数据,设置如下:
变量范围是C29:C32
(三个权重和阈值);
约束是:
C29:C31<=1
因为它们是概率;C32<=100
必须为此变量设置一个上限,所以我选择了100
哪个应该是安全的?C33=1
三个权重之和应该是 100% 准确的?
使用进化方法得到如下:
- 最大利润:
2210
; - 概率 1:
37.5%
- 概率 2:
9.1%
- 概率 3:
53.4%
- 阈值:
18
I think the WIN/LOSS result plays a significant role in this exercise but what would be the reasonable constraints for this range except
binary
?