「Labouchere」といわれるベッティングシステムを検証してみました。
その検証結果を紹介します。
↓ ↓ ↓
Labouchereベッティングシステムとは
Labouchereベッティングシステムとは、以下のようなものです。
- まず紙に「1 1 1 1 1 1 1 1 1 1 1」と書きます。
各番号は賭け単位(unit)を表します。 - 左の数字と右の数字の合計を賭け数とします(1つの数字だけ残っている場合はその数を賭け数とします)。
- 勝った場合は、両端の数字を消します。
- 負けた場合は、両端の数字を合計した数を右端に書き足します。
- すべての数字が消されるか(1セッション終了)、当初想定した最大損失に到達するまで、この手順を繰り返していきます。
マーチンゲールと比べて、連敗しても一気に賭け数が増えないシステムとなっています。
検証する際の設定値、検証方法
- BASE_UNITS(最初のかけ数リスト):[1,1,1,1,1,1,1,1,1,1]
- BASE_BANKROLL(当初資金):1000
- 勝率:50%
※最初の賭け数はBASE_UNITSの左端と右端の数の合計(1+1=)2単位となります。
100回勝負を1000回繰り返し、その平均最終残高と損益合計を算出します。
なお、途中で資金が0以下になったら終了します。
検証結果1
20回分の検証結果が以下になります。(100回勝負×1000回テスト20回分の結果)
平均最終残高/損益合計
- 985.44/-1456(負)
- 814.97/-18503(負)
- 968.77/-3123(負)
- 964.57/-3543(負)
- 1094.39/9439(勝)
- 1037.04/3704(勝)
- 1091.32/9132(勝)
- 956.11/-4389(負)
- 923.84/-7616(負)
- 1089.63/8963(勝)
- 849.28/-15072(負)
- 1019.7/1970(勝)
- 1030.72/3072(勝)
- 945.7/-5430(負)
- 886.81/-11319(負)
- 891.75/-10825(負)
- 952.37/-4763(負)
- 967.09/-3291(負)
- 913.86/-8614(負)
- 1056.56/5656(勝)
当初資金より平均額が上回ったのは20回中7回と負けが込んでしまいました。
検証結果2
途中で資金が底を付いたのが原因かもしれないと考えて、
再度、当初資金(BASE_BANKROLL)を10倍の10000として20回のテストを行いました。
- 10174.56/17456(勝)
- 10093.4/9340(勝)
- 10014.7/1470(勝)
- 9955.02/-4498(負)
- 9713.67/-28633(負)
- 9886.62/-11338(負)
- 9764.79/-23521(負)
- 9959.07/-4093(負)
- 10361.7/36170(勝)
- 10021.91/2191(勝)
- 9704.66/-29534(負)
- 10061.14/6114(勝)
- 9966.68/-3332(負)
- 9990.49/-951(負)
- 9344.75/-65525(負)
- 10222.44/22244(勝)
- 10008.92/892(勝)
- 9520.13/-47987(負)
- 10402.8/40280(勝)
- 9824.36/-17564(負)
- 10241.15/24115(勝)
結果は、20回中勝ちが10回となり、若干良くなりました。
しかし、賭け数が最大6072になることもあったり、とても実用的ではありません。
検証結果3
最後に、当初資金を10000のまま、勝率を55%に上げて同様にテストしてみました。
- 10641.18/64118(勝)
- 10661.42/66142(勝)
- 10797.82/79782(勝)
- 10792.48/79248(勝)
- 10768.55/76855(勝)
- 10794.21/79421(勝)
- 10654.47/65447(勝)
- 10653.98/65398(勝)
- 10669.02/66902(勝)
- 10544.87/54487(勝)
- 10771.13/77113(勝)
- 10772.16/77216(勝)
- 10796.52/79652(勝)
- 10777.77/77777(勝)
- 10769.39/76939(勝)
- 10805.06/80506(勝)
- 10665.5/66550(勝)
- 10667.68/66768(勝)
- 10650.67/65067(勝)
- 10807.11/80711(勝)
全勝となりました。
しかし、この場合でも最大賭け数が2366にもなる場合があり、とても実用的とは言えません。
ちなみに勝率51%としても19勝1敗と好結果でした。
十分な資金と50%より若干でも勝率の高い手法(そんな手法が存在するならば)で回数をこなせばほぼ勝てると言えます。
検証コード配布
以下は検証に使ったコードです。(python)
詳細の説明は省きます。よければ参考にしてみてください。
何か新しい発見があれば、コメント欄に報告していただけるとありがたいです。
import random import copy num = 0 BASE_UNITS = [1,1,1,1,1,1,1,1,1,1] units = copy.deepcopy(BASE_UNITS) BASE_BANKROLL = 1000 maximum_unit = 1 BANKROLL_ALL = 0 GAIN = 0 times = 10 times2 = 1000 while num < times: num2 = 0 BANKROLL=BASE_BANKROLL units = copy.deepcopy(BASE_UNITS) unit = units[0]+units[len(units)-1] max_unit = 1 while num2 < times2: judge = random.randint(1,100) if judge>50: BANKROLL+=unit units.pop() if len(units)>0: units.pop(0) if len(units)<=0: units = copy.deepcopy(BASE_UNITS) unit = units[0]+units[len(units)-1] else: BANKROLL-=unit units.append(units[0]+units[len(units)-1]) unit = units[0]+units[len(units)-1] if BANKROLL<=(BASE_BANKROLL-300): break max_unit = max(unit,max_unit) num2+=1 maximum_unit = max(max_unit,maximum_unit) BANKROLL_ALL += BANKROLL GAIN += BANKROLL - BASE_BANKROLL num+=1 print("BANKROLL " + str(BANKROLL) + " " + str(max_unit) + " " + str(maximum_unit)) print(str(BANKROLL_ALL/times) + " " + str(GAIN))</code>
コメント