すべてのシステムベットは数列で表せる
久々にメモ代わりで書きます。
始めに
システムベットではインターネット上で検索したときに数多くの方法があります。
例えばネガティブプログレッションならマーチンゲール法、ダランベール法、モンテカルロ法、2連勝法、オスカーズグラインド法等。
ポジティブプログレッションならイーストコーストプログレッションやグッドマン等。
これら全ては数列で管理できます。
ここで注意したいのは数列をベット額にするのか損利益額にするのかで管理のしやすさが代わります。後述しています。
(私は損利益額で管理することをオススメします)
実際にマーチンゲール法、ダランベール法、2連勝法を数列で管理してみる
※ベット額での管理と損利益での管理それぞれをお見せします。
◼️考え方のベースはモンテカルロ法
○モンテカルロの場合
┣初期数列[1,2,3]
┣最初と最後の要素値を足した数がベット額(1+3=4)
┣負けたとき、右端にベット額を追加[1,2,3,4]
┗買ったとき、最初と最後の要素値を削除[2]
上記をベースにシステムベットを数列化します。
◼️共通設定
┣【ベット額管理】初期数列[1]
┗【損利益額管理】初期数列[10円](数列/10=ベット額)
(0,0)=(Win,Loss)
┣加減数[数列]ベット額
┗加減数[数列]ベット額
※負けたときに数列に追加
※-40[10,10,20]⇒[10,10,20,40]
◼️マーチンゲール法
┣初期数列[1]
┣ベット額=数列要素値を全て合計
┣Loss=右端にベット額を追加
┗Win=数列全削除
(0,0)=(Win,Loss)
┣[1]1
┗[10円]10/10=1
(0,1)
┣-1[1,1]1+1=2
┗-10[10,10]10+10=20/10=2
(0,2)
┣-2[1,1,2]1+1+2=4
┗-20[10,10,20]40/10=4
(1,2)
┣+4[/]⇒数列リセット
┗+40[/]⇒数列リセット
マーチンゲール法を数列で表現するとこのようになります。
◼️ダランベール法
┣初期数列[10]※
┣増減額=±5(±50円)
※この数値によって必要勝率が大きく変わる
┣ベット額=右端の要素値
┣Loss=右端にベット額を追加&追加要素値に増減額を加算&左端の要素値に加算分を減算
┣Win=右端を削除
┗左端の要素値が0になったら削除
※少し複雑に見えますが、下記を見たらイメージしやすいです。
(0,0)=(Win,Loss)
┣[10]10
┗[100円]100/10=10
(0,1)
┣-10[10-5,10+5]15
┗-100[100-50,100+50]150/10=15
(0,2)
┣-15[5-5,15,15+5]=[0,15,20]=[15,20]20
┗-150[50-50,150,150+50]=[150,200]20
(1,2)
┣+20[15]15
┗+200[150]15
ダランベール法は破産リスク自体は他のベットシステムと比較してかなり低いのですが、利益がでるまでのベット回数、ベット額が分かりづらいのが難点です。(マーチンゲール法は一回勝つだけで利益になるので分かりやすい)
ですが、数列で管理することで一目で利益までの必要ベット回数、ベット額が分かります。さらに、増減額の設定値によって必要な勝率が変わるのがより理解しやすくなるかと思います。
ぜひ増減値を±1や±10などでも検証してみると、もっと理解しやすくなりますのでお試し下さい。
◼️2連勝法(≠31システム法)
┣初期数列[1]
┣ベット額=全要素値の半分
┣Loss=右端にベット額を追加
┗Win=ベット額分を削除&要素数を1つに合算
(0,0)=(Win,Loss)
┣[1]1
┗[10円]10/10=1
(0,1)
┣-1[1,1](1+1)/2=1
┗-10[10,10](10+10)/2=10/10=1
(0,2)
┣-1[1,1,1]3/2=1.5=2
┗-10[10,10,10]30/2=15/10=1.5=2
(0,3)
┣-2[1,1,1,2]5/2=2.5=3
┗-20[10,10,10,20]50/2=25/10=2.5=3
(1,3)※勝ったときは要素数を1つに合算
┣+3[1,1]=[1+1]=[2]2
┗+30[10,10]=[10+10]=[20]20/10=2
(2,3)
┣+2[/]
┗+20[/]
2連勝法はこのようになります。
※※※
従来の2連勝法(31システム法)では、損切りをしていますが、こちらではそれを考慮しません。システムベット法をプログラムを組んで検証したことがある方は理由が分かるかと思います。
伝えたいこと
上述の通りマーチンゲール法、ダランベール法、2連勝法を簡単に数列で管理してみました。
(上記以外のシステムベットも数列で管理することももちろん可能です)
それぞれ負けたときや勝ったときで数列の処理方法が異なって複雑に見えてしまう方もいらっしゃるかもしれませんが、私自身はシステムベットを数列で管理するこもよって大きな可能性を感じられました。
それが、
1.結局、システムベットは負けたときにベットを上げるor下げるor固定にするかのどれかでしかない
2.数列を並列管理することによるリスク分散
3.損利益管理によるトレーリングストップや相場のボラティリティに合わせた決済の実現
です。具体的に後述していきます。
◼️1.結局、負けたときにベットを上げるor下げるor固定にするかのどれか
今回、具体例をあげたシステムベットは負けたときにベット額を上げる方法となっています。ほとんどのシステムベット法が同様となっています。
しかし、数列管理によってベット額を上げる以外にも下げたり、固定させたりする方法を考慮するようになりました。
(固定システムベットはオスカーズグラインド法や分解モンテカルロ法が有名ですね)
例えば、5連敗した際の数列管理をみてみます。
(0,0)
┣上昇+5[10]10
┣下降-5[10]10
┗固定[10]10
※最小数列要素数[1]
(0,1)
┣上昇-10[10-5,10+5]=[5,15]15
┣下降-10[10+5,10-5]=[15,5]5
┗固定-10[10,10]10
(0,2)
┣上昇-15[5-5,15,15+5]=[0,15,20]=[15,20]20
┣下降-5[15+4,5,5-4]=[19,5,1]1
┗固定-10[10,10,10]10
(0,3)
┣上昇-20[15-5,20,20+5]25
┣下降-1[19,5,1,1]1
┗固定-10[10,10,10,10]10
(0,4)
┣上昇-25[5,20,25,30]30
┣下降-1[19,5,1,1,1]1
┗固定-10[10,10,10,10,10]1
(0,5)
┣上昇-30[5-5,20,25,30,30+5]=[20,25,30,35]35
┣下降-1[19,5,1,1,1,1]1
┗固定-10[10,10,10,10,10,10]10
上記それぞれの合計要素数を見てみると、
上昇[110]、下降[28]、固定[60]となります。
当然ですが、差は一目瞭然です。損失をすぐに取り戻したくて、負けるたびにベット額を上げていては、連敗時に取り返しのつかない数値になってしまいますね。
また、連敗時のみの状況を紹介しましたが、勝ったときの処理の方法も重要です。下降verは各要素値の数字がバラバラですので、平均化するなどの工夫も必要です。
(0,5)下降[19,5,1,1,1,1]1
(1,5)下降+1[19,5,1,1,1]=27/5=[5,5,5,6,6]6
さらに必要勝率もこのままでは下降、固定共に50%を越えてしまいますので、分解モンテカルロ法と同様の処理が良いかもしれません。
(初期数列[0,10]、勝ったときに数列を2消費)
2.数列の並列管理
前置きですが、私はFXでシステムベットを用いる際に、大きな障壁があると考えています。それは、最小ロット数に対しての必要資金の大きさ、スプレッド及び手数料、勝率の保証がないことです。
最小ロット数に対しての必要資金の大きさとは、某FX会社のMT5マイクロ口座での最小ロット数は0.10です。USDJPYでの1pipsは±1円になるので、仮にTPSL共に20pipsとしたときに、一回の取引で±20円かかります。
私は分解モンテカルロ法を用いて勝率49.5%&払い戻し2倍のゲームを5000万回以上検証しましたが、数列の合計要素数が300万を越えたのを確認しています。つまり、+1円にするためには、資金300万円以上必要ということです。これを一回の取引で±20円になると、資金は6000万円必要になってしまうということです。勿論、FXで一生涯で5000万回取引することは流石にないと思います。ただ、覚えていてほしいのは、分解モンテカルロ法を使用しても勝率49.5%の保証があろうとロット数を抑えようと聖杯にはならないということです。(Xなどで分解モンテカルロ法がさも聖杯かのように謳っている人もいますが、騙されないようにね)
といっても私自信、システムベットで何とかならないか考えたりしている際に思い付いたのが、数列の並列管理です。
例えば異なる通貨ペアで数列管理を行い、一方が連敗し、一方が勝ち負けを繰り返しても並列で管理することで要素数の増加を抑える方法です。
具体例)
|1|分解モンテカルロ法(固定ver)[0,1]
|2|分解モンテカルロ法(上昇ver)[0,1]
(0,0)|1|(固定ver)[0,20]20/200=0.10
(0,0)|2|(上昇ver)[0,20]20/200=0.10
(0,1)|1|(固定ver)-20[0,20,20]20/200=0.10
(0,1)|2|(上昇ver)-20[0,20-5,20+5]25/200=0.13
(0,2)|1|(固定ver)-20[0,20,20,20]20/200=0.10
(0,2)|2|(上昇ver)-26[0,15-5,25,26+5]=[0,10,25,31]31/200=0.16
(0,3)|1|(固定ver)-20[0,20,20,20,20]0.10
(1,2)|2|(上昇ver)+32[10,25-1]=平均化[17,17]0.17
(0,4)|1|(固定ver)-20[0,20,20,20,20,20]0.10
(1,3)|2|(上昇ver)-34[17,17,34]
=ゼロ化[0,34,34]0.17
(1,4)|1|(固定ver)+20[20,20,20,20]0.20
(1,4)|2|(上昇ver)-34[0,34,34,34]0.17
(1,5)|1|(固定ver)-20[20,20,20,20,40]
=ゼロ化[0,30,30,30,30]0.15
【全体平均化】
┗|2|の最初と最後の要素値は固定
120+68=188/6=31…2
(1,5)|1|(固定ver)[0,31,31,31,32]0.16
(1,4)|2|(上昇ver)[0,31,32,34]0.17
分かりづらいと思いますが、上記のように数列同士を平均化して分散させていきます。
(数列がもっと膨らんだ際により効果が実感できると思います)
今回は2つの数列や分解モンテカルロ法だけですが、管理する数列を増やしたり色々なシステムベット法を組み合わせるのも面白そうです。(一発で数列をリセットできるマーチンゲール法もありかもしれません)
◼️3.損利益管理によるトレーリングストップや相場のボラティリティに合わせた決済
TPSLを固定した場合、どうしても相場に合わず、損失を出し続けてしまいます。従来のシステムベットだと、柔軟な対応が難しくなってしまいます。その為、損利益管理によって対応が簡単になります。
(具体例)
(1,5)|1|(固定ver)[0,31,31,31,32]32/200=0.16
※トレーリングストップ使用+16
(1,5)|1|(固定ver)+16[0,31,31,31,32]
=[0,31,31,31,32-16]=109/4=27
=[0,27,27,27,28]28/200=0.14
このような感じです。トレーリングストップを勝ちに換算するのか等は検証中ですが、ロット数の計算はかなりしやすいですよね。
以上です。
長々と書きたいことを書きまくってました。
現在こんな感じでスプレッドシートで検証してます。EA化はCSV関連と資金関連で躓いてますね…
↓
ここまで、読んでくださりありがとうございました。