アーリーリタイアを目指すプログラマのブログ

アーリーリタイアを目指すプログラマのブログです。アーリーリタイアを目指すにあたって考えたことや調べたことを書いていきます。

どの建玉から決済すると余力を大きく取り戻せるか

下記の記事において、余力を大きく取り戻せる建玉はどれかということがわかると、無駄な注文を防ぐことができそうでした。

www.jitenspin.com

上の記事では決済を優先する建玉レバレッジ倍率が同じ場合は建単価が小さい方がいい、と書いていましたが、これは間違っていました。 同一銘柄内の評価損益によって変わってきます。

この記事ではなぜ間違っているのかについて書いていきます。

ちなみにロスカットレートが同じ場合は常に建単価が大きい建玉がいいです。これについても書きます。

反例

まず反例から考えてみます。

建単価800と1200の建玉があるとします。現在値は1200とします。 レバレッジ倍率はどちらも2倍とすると、拘束証拠金はそれぞれ400と600になります。

このとき、同一銘柄内の評価損益がプラス400の場合は、建単価800を決済するとプラス800、建単価1200はプラス600になるので、 建単価が小さいほうが余力を大きく取り戻せるような気がしますが、

同一銘柄内の評価損益がプラスマイナスゼロの場合は、建単価800を決済するとその建玉の評価損益がなくなって同一銘柄内の評価損益がマイナス400になることで余力はプラス400と減ってしまい、建単価1200を決済するほうが余力を大きく取り戻せることになります。

一般化して考える

簡単のため、口座内にはひとつの銘柄の建玉しかないことにします。

口座内にある2つの建玉を考えていきます。2つの建玉で、どちらが余力を大きく取り戻せるか比較していきます。 この比較という二項関係が全順序になるなら、口座内で最も大きく余力を取り戻せる建玉がわかるので、それが狙いです。

まずは記号の定義をします。

  • 2つの建玉の建単価をそれぞれU1, U2 (U1 < U2)
  • レバレッジ倍率をL(L = 建単価 / 拘束証拠金。L >= 1)
  • 現在のBID値をB (B >= 0)
  • 決済前の未拘束残高をD、決済後の未拘束残高をD' (D, D' >= 0)
  • 決済前の口座内の評価損益をV、決済後の評価損益をV'(評価損益は全建玉の評価損益の総和)
  • 決済前の余力をR、決済後の余力をR'

とします。

まず、決済で戻ってくる拘束証拠金は、建単価Uに対してU / Lになります(Lの定義がU / 拘束証拠金のため)。

次に、余力RはR=D+min(V,0)になります。未拘束残高から評価損を引く形です。評価益の場合は含めないという定義です(GMOクリック証券CFDの定義)。

D'はD+(B-U)+U/Lになります。B-Uは差額、U/Lは拘束証拠金です。 V'はV-(B-U)になります。Uの評価損益が引かれるイメージです。

ここで、余力差分関数d(U)を考えます。これは建単価Uを与えて、その建玉を決済したときの余力の差分を返す関数です。

d(U) 
= R' - R 
= D' + min(V', 0) - (D + min(V, 0))
= D + (B - U) + U / L + min(V - (B - U), 0) - (D + min(V, 0))
= (B - U) + U / L + min(V - (B - U), 0) - min(V, 0)

となります。

このdを最大にするUを建単価に持つ建玉が、最も余力が大きく取り戻せる建玉ということになりますが、 min(V - (B - U), 0)とmin(V, 0)という項が入っているので、簡単にはいきません。

場合分けが必要になります。

d(U1) - d(U2)の結果が正であればU1のほうが勝ち、負であればU2のほうが勝ちです。 min(V, 0)についてはどちらにも入っているのでいいですが、U1, U2についてはどちらかしか入っていないので、 V - (B - U1), V - (B - U2)それぞれに対してひたすら場合分けしていきます。

V - (B - U1) V - (B - U2) d(U1) - d(U2)
((B - U1) + U1 / L - min(V, 0)) - ((B - U2) + U2 / L - min(V, 0)) = (U2 - U1) - (U2 - U1) / L = (U2 - U1)(L - 1) / L. U2 > U1 と L >= 1 であることから必ず正
V - (B - U1) > V - (B - U2), U1 > U2 ということになり矛盾
((B - U1) + U1 / L + V - (B - U1) - min(V, 0)) - ((B - U2) + U2 / L - min(V, 0)) = (V - (B - U2)) - (U2 - U1) / L
((B - U1) + U1 / L + V - (B - U1) - min(V, 0)) - ((B - U2) + U2 / L + V - (B - U2) - min(V, 0)) = - (U2 - U1) / L. U2 > U1 であることから必ず負

V - (B - U1)とV - (B - U1)がどちらも正の場合は建単価が小さい方の建玉を、V - (B - U1)とV - (B - U2)がどちらも負の場合は建単価が大きい方の建玉を決済するといいことがわかりました。

そもそもV-(B-U)が正とか負とかというのはどういうことかというと、

V-(B-U)が正なら、V>B-Uなので、その建玉の評価損益が口座の評価損益よりも小さいことを表します。つまり、Vが負ならその建玉を決済すれば口座の評価損益が正になることを表します。

V-(B-U)が負なら、V<B-Uなので、その建玉の評価損益が口座の評価損益よりも大きいことを表します。つまり、Vが正ならその建玉を決済すると口座の評価損益が負になることを表します。

さて、問題はV - (B - U1)が負でV - (B - U2)が正の場合です。

(V - (B - U2)) - (U2 - U1) / Lが正の場合、つまりV-(B-U2) > (U2-U1)/Lの場合は小さい方の建玉を、逆に負の場合、つまりV-(B-U2) < (U2-U1)/Lの場合は大きい方の建玉を決済するほうがいいということになります。

例えばV=+0,B=1000,U1=800,U2=1200の場合を考えてみます。V - (B - U1) = 0 - (1000 - 800) = -200で負、V - (B - U2) = 0 - (1000 - 1200) = +200で正になるので、どちらを決済すればいいかはレバレッジ倍率次第です。

L=1の場合は(U2 - U1) / L = +400になるので、この場合は大きい方の建玉を決済するほうがいいです。実際、戻ってくる余力はそれぞれ800と1000なので大きい方を決済するほうがいいです。 L=2の場合は(U2 - U1) / L = +200になるので、どちらを決済してもいいです(戻ってくる余力は400)。 L=5の場合は(U2 - U1) / L = +80になるので、建単価が小さい方の建玉を決済するほうがいいです(戻ってくる余力はそれぞれ160、40。実際は決済する前にロスカットされますが…)。

ということで、たしかにどちらを決済すればいいかがレバレッジ倍率によって変わることがわかりました。

現実ではどうするか

どちらを決済すればいいかはわかりましたが、いちいち計算するのはとても面倒です。

だいたいの傾向から、どちらを決済すればいいかを考えてみたいと思います。

口座内の建玉がすべてプラスの場合

V - (B - U)は必ず正になるので、建単価の小さい方を決済するといいでしょう。

口座内の建玉がすべてマイナスの場合

V - (B - U)は必ず負になるので、建単価の大きい方を決済するといいでしょう。

ひとつだけ極端にプラスの建玉がありほかはマイナスで口座内の評価損益がプラスの場合

極端にプラスの建玉はV - (B - U)が負になり、ほかの建玉は正になるので、レバレッジ倍率によって変わります。

傾向としては、レバレッジ倍率が大きい場合は建単価が小さい建玉、つまり極端にプラスの建玉を決済するといいでしょう。 レバレッジ倍率が低い場合は建単価が大きい建玉を決済するといいでしょう。

ひとつだけ極端にマイナスの建玉がありほかはプラスで口座内の評価損益がマイナスの場合

プラスの建玉ははV - (B - U)が負になり、極端にマイナスの建玉は正になるので、レバレッジ倍率によって変わります。

傾向としては、レバレッジ倍率が大きい場合は建単価が小さいプラスの建玉を決済するといいでしょう。 レバレッジ倍率が低い場合は極端にマイナスの建玉を決済するといいでしょう。

ロスカットレートが同じ場合

こちらも同様に記号から定義していきます。

  • 2つの建玉の建単価をそれぞれU1, U2 (U1 < U2)
  • ロスカットレートをL
  • 拘束証拠金をM
  • 現在のBID値をB (B >= 0)
  • 決済前の未拘束残高をD、決済後の未拘束残高をD' (D, D' >= 0)
  • 決済前の口座内の評価損益をV、決済後の評価損益をV'(評価損益は全建玉の評価損益の総和)
  • 決済前の余力をR、決済後の余力をR'

とします。

拘束証拠金Mは、M=U0.1+U0.95-Lになります。必要証拠金U*0.1と、任意証拠金(建単価からロスカット幅を引いたものからロスカットレートを引いたもの)を足しています。

決済後の未拘束残高D'は、

D'
= D + (B - U) + M
= D + B + U * 0.05 - L

です。

決済後の口座内評価損益はV' = V - (B - U)になります。

では、d(U)について考えます。d(U)は、

d(U)
= R' - R 
= D' + min(V', 0) - (D + min(V, 0)) 
= D + B + U * 0.05 - L + min(V - (B - U), 0) - (D + min(V, 0))
= B + U * 0.05 - L + min(V - (B - U), 0) - min(V, 0)

になります。

同様に場合分けしていきます。

V - (B - U1) V - (B - U2) d(U1) - d(U2)
(B + U1 * 0.05 - L - min(V, 0)) - (B + U2 * 0.05 - L - min(V, 0)) = -(U2 - U1) * 0.05. U2 > U1 であることから必ず負
V - (B - U1) > V - (B - U2)、つまりU1 > U2ということになり矛盾
(B + U1 * 0.05 - L + V - (B - U1) - min(V, 0)) - (B + U2 * 0.05 - L - min(V, 0)) = -(U2 - U1) * 0.05 +V - B + U1 = 1.05 * U1 - 0.05 * U2 + V - B
(B + U1 * 0.05 - L + V - (B - U1) - min(V, 0)) - (B + U2 * 0.05 - L + V - (B - U2) - min(V, 0)) = -(U2 - U1) * 1.05. U2 > U1 であることから必ず負

正正および負負の場合はどちらも負になり、建単価が大きい方から決済していくほうがいいということになります。

では負正の場合はどうでしょうか。

仮に 1.05 * U1 - 0.05 * U2 + V - B が正であるとします。1.05 * U1 - 0.05 * U2 + V - B > 0です。

整理すると、V > 0.05 * U2 - 1.05 * U1 + Bとなります。

また、V - (B - U1) < 0なので、V < B - U1になります。

この2つを組み合わせて、0.05 * U2 - 1.05 * U1 + B < B - U1となり、整理すると(U2 - U1) * 0.05 < 0となります。 U2 > U1なので(U2 - U1) * 0.05は正になるので、これは矛盾です。

ということで、1.05 * U1 - 0.05 * U2 + V - B は正ではありません。ゼロの場合はどちらを決済してもいいということなので、とりあえず建単価が大きい方を決済するのが間違いなさそうです。

以上から、全パターンで建単価が大きい方を決済するのがいいということになりました。

まとめ

この記事では、レバレッジ倍率が同じ場合にどの建玉から決済すると余力を大きく取り戻せるかを書いていきました。 また、ロスカットレートが同じ場合は建単価が大きい方を決済するほうがいいということも書きました。

レバレッジ倍率が同じ場合はそこそこ複雑な条件分岐になり面倒ですが、おそらくこれを気をつけて決済を節約していくと塵も積もれば山となる的に複利が効いてくると思います。