赔率计算公式
欧洲盘 = 返奖率/胜率
盈利 = (赔率 - 1) * 本金
亏损 = 本金 * -1
胜率 = 返奖率 / 赔率
香港盘 = 返奖率/胜率 - 1
盈利 = 赔率 * 本金
亏损 = 本金 * -1
胜率 = 返奖率/ (赔率+1)
马来盘 = if(返奖率/胜率 <= 2){ 返奖率/胜率 - 1 }else{ (1 / (返奖率/胜率 - 1)*-1 }
盈利(赔率 > 0)= 赔率 * 本金
盈利(赔率 < 0)= 本金
亏损(赔率 > 0)= 本金 * -1
亏损(赔率 < 0) = 赔率 * 本金
赔率 > 0 , 胜率 = 返奖率/ (赔率+1)
赔率 < 0 , 胜率 = 返奖率 / (1/赔率 *-1 + 1)
印尼盘 = if(返奖率/胜率 >= 2){ 返奖率/胜率 - 1 }else{ 1 / (返奖率/胜率 - 1)*-1 }
盈利(赔率 > 0) = 赔率 * 本金
盈利(赔率 < 0)= 本金
亏损(赔率 > 0)= 本金 * -1
亏损(赔率 < 0) = 赔率 * 本金
赔率 > 0, 胜率 = 返奖率 / (赔率 + 1)
赔率 < 0, 胜率 = 返奖率 / (1/赔率 *-1 + 1)
赔率对照
胜率计算赔率的算法代码
C# 版本
- <p>/// <summary></p><p>/// 根据胜率得到赔率,保留四位小数</p><p>/// </summary></p><p>/// <param name="winRate">胜率</param></p><p>/// <param name="returnRate">返奖率</param></p><p>/// <param name="type">赔率类型</param></p><p>/// <returns></returns></p><p>public static decimal GetOdds(this decimal winRate, decimal returnRate, OddsType type = OddsType.EU)</p><p>{</p><p> decimal eu = returnRate / winRate;</p><p> return type switch</p><p> {</p><p> OddsType.EU => Math.Round(eu, 4),</p><p> OddsType.HK => Math.Round(eu - 1M, 4),</p><p> OddsType.MY => Math.Round(eu <= 2M ? eu - 1M : decimal.MinusOne / (eu - 1M), 4),</p><p> OddsType.IN => Math.Round(eu >= 2M ? eu - 1M : decimal.MinusOne / (eu - 1M), 4),</p><p> _ => throw new NotImplementedException($"暂不支持赔率类型{type}")</p><p> };</p><p>}</p>
复制代码
JS 版本
- <p>const GetOdds = (winRate,rebate,type)=>{</p><p> var odds = rebate / winRate;</p><p> switch(type){</p><p> case "EU":</p><p> odds = odds;</p><p> break;</p><p> case "HK":</p><p> odds = odds - 1;</p><p> break;</p><p> case "MY":</p><p> odds = odds <= 2 ? odds - 1 : -1/(odds - 1);</p><p> break;</p><p> case "IN":</p><p> odds = odds >= 2 ? odds - 1 : -1 / (odds - 1);</p><p> breack</p><p> }</p><p> return Math.floor(odds * 10000) / 10000;</p><p>}</p>
复制代码
|
|