数学的乐趣浅论数学在菠菜中的运用(跨平台套利)(二)
写在前面的话:
首先着一系列文章是我平时闲暇之时,实践总结的东西,拿出来给大家分享。我本身水平有限,很多地方没有深入研究,定有纰漏,怕贻笑大方,所以如有写的荒谬之处,还请各为高手一笑了之。
其次,写这一系列文章不是为了鼓励大家,菠菜是概率的一种游戏,一种数学游戏,我对数学一直感兴趣,因此,就把这当娱乐,当玩了。我会在这一系列文章中给大家尽量浅显的讲解算法,请大家不要叫我操盘,不要问我要源程序,但是欢迎讨论算法,把这个当做娱乐。
最后,大部分我文中列出的菠菜公司都是国外的在当地合法的公司,很多菠菜公司中国用户访问不了,即使你翻墙能访问,这些菠菜公司也不接受大陆身份证,护照,以及银行注册的。
正文:
今天这一篇先讲一下最最简单的体育比赛菠菜的跨平台对冲套利,其实有个专门的英文单词叫Arbitrage. 简单的说就是:同一场比赛,针对所有可能的比赛结果,在不同的菠菜公司,同时下注,最后,无论什么比赛结果发生,都能获利。
我来举例说明这个操作吧,首先看下图:
数学的乐趣:浅论数学在菠菜中的运用之一(跨平台套利)
这是一场2019年3月14日,伦敦时间23点的,巴西的BNN篮球联赛的一场比赛,两个队,主队名字叫 Basquete Cearense,客队叫 EC Pinheiros (别问我是否了解巴西篮球联赛,别问我是否知道这两个队,答案一律是No,我其实不是任何比赛的粉丝)。图中,两行数字是不同菠菜公司,对主队客队胜出开出的赔率,而这两行数字上面,各种五颜六色的写着英文的长条就是不同菠菜公司的名字。
让我们来仔细看一下,betvictor公司(就是第三列)开出的赔率,如果主队赢,赔率为2.62,这意味着,如果你在这个公司下注主队赢100元,并且最后比赛结果是主队赢,你赢100*(2.62-1)=162元,为何要减一,因为1代表你的本金100元。
同时,我们看到Boylesports菠菜公司,这场比赛,对客队取胜的赔率为1.66,如果你在这个菠菜公司下注客队赢100元,并且最后结果是客队赢,你获利100*(1.66-1)=66元。
但是,为了要对冲套利,我们在两家公司下注的金额肯定不可能都是100元,下注的金额为多少呢?我先说答案,说结果,然后再解释为何下注这个金额。
具体下注的金额应该是:在betvictor公司,下注主队赢100元,在boylesports公司,下注客队赢157.83元。如果最后主队赢了,我们的盈亏情况为100*(2.62-1)-157.83=4.17元,如果客队赢我们的盈亏情况为157.83*(1.66-1)-100=4.17元。看到没有,任何结果发生,我们都是赚钱的,至于投资回报比为多少呢,就是4.17/(100+157.83)=0.016,即1.6%,且风险为0!
至于为何这些在不同菠菜公司为何押注这些钱呢?为何不是其他值呢?这就是就是数学中注明的分支,线性(非线性)规划!属于《运筹学》范畴!
即,在一些条件约束下,求函数的最大值或者最小值是,各个未知数分别为多少,此例中,未知数个数为2个(因为结果只有两个),足球比赛是三个(因为足球比赛结果是胜平负三种),至于赛马比赛,那就好多啦……
我用数学形式(此例为非线性规划)把此例重新写一下:
假设在betvictor公司下注主队赢的钱为 x0 元,在boylesports公司下注客队赢的钱为 x1 元。
首先是目标,即无论任何结果发生,盈利情况一样,且,投资回报比最大,写出目标方程:
[(2.62-1)*x0 - x1] / ( x0 + x1 ) 最大化!
下面是约束条件:
第一个约束条件:(2.62-1)*x0 - x1 >= 0, 这表示如果主队赢,盈利的钱减去投注客队的钱,要大于零,表示盈利!
第二个约束条件:-x0 + (1.66-1)*x1 >= 0, 这表示如果客队赢,盈利的钱减去投注主队的钱,要大于零,表示盈利!
第三个约束条件:(2.62-1)*x0 - x1 = -x0 + (1.66-1)*x1 这表示无论主队赢还是客队赢,盈利的钱都一样!
最后两个约束条件,就是投个投注额要大于0,这里咱们就规定大于100元吧,至于上界,没有!即,x0 >= 100, x1>=100
然后就是在这些约束条件下,求目标函数最大值,即求投资收益比最高!
至于怎么解,两个未知数的容易解(例如可以用图解法),如果未知数是三个(例如足球),甚至更多,例如赛马,怎么办?一个不幸的消息是,传统的解法很难解出来,但是另一个很幸运的消息是,我们可以借助数值算法(具体什么是数值算法呢,就是不停的求方程的偏导数,一介是雅克布矩阵,二阶是海森矩阵,然后不停地迭代,最后逼近解),而强大的计算机就是擅长这样迭代求解,这么一个简单的求解,计算机几乎在几毫秒就能算出结果。(这里不展开说明了,因为数值计算是本科或者研究生的一门课,篇幅有限,不好意思)
所以下面要做的就是计算机编程求解了,我用的是Python,用的库是Scipy(如果不懂的话,可以上网查一下),代码如下:(请不要求我解释代码,会python的人自然看得懂,不会的人,我三言两语也将不明白)
另外,一个关键问题来了:是不是每场比赛都能这么搞?答案是否定的,因为这样对冲套利的机会并不多,但是,但是,但是,对于不同类型的比赛,例如足球,排球,篮球,羽毛球,斯诺克,网球,赛马,板球等等,全世界每天不知道多少场比赛,我以前每天都能找出几场至几十场可以套利的机会!
当然,这个工作量很大,不过还好,我自己写了网页爬虫程序,每隔半小时就上网去自动找这样的对冲套利机会,然后,再用我的线性非线性规划程序自动算出,各个公司,不同赛果该投注多少钱,然后我人工去这些网站,手动下注。不要小看一场比赛套利百分之零点几至百分之几,但是,每场比赛结束,立刻结算,回来的钱可以继续投注,这是复利,就算平均每天获利1.5%,复利,你算算我一个月获利多少?
我实战过,当时还是在国外,此国菠菜合法,我就这样搞了一个月,本金1000左右,一个月后,赚了600多,且不像股票,每次投注,我损失的风险为0!
回国后,就不玩了,因为去不了那些网站,也不允许玩了,但是作为一个数学应用的实例,还是蛮有趣的。(我会写一些数学在股票上面应用。菠菜,股票可能让我赚钱,只是做人开心第一,赚钱才是第二,我现在正在努力着……)
最后,这是此系列最简单的一个数学的应用,一个大学理工科的本科学生就能搞明白,那么后来我又用人工智能的深度学习,预测比赛结果,这个应用,我将来会分两次阐述清楚的。
再次重申,写此系列的初衷是激起大家对数学的兴趣,让大家看看数学的威力,有句话这么说,一流的数学家去菠菜公司(做精算师),二流的数学家去华尔街搞金融,哈哈哈哈,可见,数学永远应用好就最能赚钱
- 上一篇:菠菜必看必发指数的奥秘终生受用
- 下一篇:如何跑赢菠菜公司的赔率(一)