「売って、買う」だけなのに、なぜか現金が足りなくなった話
こんにちは、クロンです。インフラエンジニアの管理職をしながら、AI(Claude Code)と一緒に日本株のスイングBotを自作しています。プログラミングもデイトレも素人です。
これは連載の12本目です。前回まではこちら↓
「月1%」が「月0.6%」に。バックテストの数字を26年でならしたら
バックテストの次は「フォワードテスト」。口座ゼロでも今日から始められる
損切りもショートも効かない。効いたのは地味な「分散」だけだった
「ツキイチ」を「シューイチ」にしたら、成績が半分になった
バックテストで"効いた"のに、手数料を入れたら消えた
"炭鉱のカナリア"を見張り番にしたら、暴落の痛みが浅くなった
銘柄を増やしたら年利がほぼ倍になった。でも、それは「未来のカンニング」だった
「5月に売れ」をBotに入れたら、下げ幅は縮んだ。でも年利がそれ以上に減った
9回いじって、9回ボツ。Botの改善は、いったんやめる
コードは書けない。でも「判断」の責任は自分にある
「指数に勝った」と喜んだら、比較の日経225が別の期間の数字だった
この連載でずっと扱ってきた「ツキイチ」は、信用取引を使わず、地味に堅実に増やす作戦のBotだった。今、僕はそれとは別に、もう1つ新しいBot(以下、新Bot)を設計してる。こっちは信用取引(=証券会社からお金を借りて、自己資金より大きい金額で株を買う仕組み)を使って、個別株のポジション(=持ち高)を自己資金以上に膨らませ、もっと大きく増やしにいく作戦。ツキイチをやめるわけじゃなく、2本目のBotとして並行で育ててるところだ。
その新Botの設計で「指数を売って、個別株を買う」というシンプルな乗り換えを組み込もうとしたら、思わぬところで現金が足りなくなることに気づいた。結論から言うと、「売る場所」と「買う場所」が同じ時刻に開くと、その間に現金を作る時間が存在しない。これに気づかず設計を進めていたら、実際に動かした瞬間に発注できないBotが出来上がるところだった。
この記事で分かることは2つです。
「Aを売ってBを買う」乗り換え型の設計で、見落としがちな現金化のタイムラグの正体
頭の中で考えているだけでは気づけない落とし穴に、どうやって気づいたか
なぜ指数を持たせたかったのか
新Botは、信用取引で個別株のポジションを膨らませて狙う作戦。でも常に個別株のシグナルが出るわけじゃないから、待機中の資金は現金で寝かせるより、指数(日経平均のような市場全体の値動き)を持たせておいた方がいい、というのがこれまでの検証で分かってた。個別株のシグナルが出たら、指数の一部を売って、その分を個別株に回す。この「乗り換え」がスムーズにできることが設計の前提になってる。
投資信託は解約が遅い
最初に考えたのは、指数を投資信託(=みんなのお金をまとめて専門家が運用する商品)で持つ案。でも「投資信託を解約するとき、現金化するまで時間かかるよな」とふと引っかかって調べ直したら、投資信託は1日1回しか売買が成立せず、しかも解約したお金が実際に口座に振り込まれるまで数営業日から1週間ほどかかることが多いと分かった。
これだと、シグナルが出た日に指数を売って個別株に乗り換える、ができない。結局「現金で待つ期間」が発生してしまい、そもそも指数を持たせた意味が薄れる。というわけで、投資信託は不採用。ETF(=株と同じようにその場で売買できる上場投資信託)に変える方針にした。
米国のETFは時間が合わない、と思ったら合ってた
ETFに変えると決めたところで、次の疑問が出た。「指数がFANG+やNASDAQ100のような米国系だと、アメリカのETFになるよね?信用取引を使う日本の個別株とは市場が開いてる時間が真逆じゃない?」
たしかに、アメリカのETFが取引できるのは日本時間の夜中。日本の個別株を売買できるのは日中。パッと見た瞬間は「時間が合わないから無理」と結論しかけた。
でも実際にタイムラインを並べてみると、話が変わってきた。新Botの設計はシグナルの判定を夜(その日の終値が確定してから)にやる。個別株のエントリーは翌朝の日本市場の始まり。この2つの間に、アメリカ市場の1回分の取引時間がまるっと収まる。つまり「夜に判定→夜中にアメリカのETFを売る→翌朝に日本の個別株を買う」という順番なら、時間はちゃんと噛み合う。「真逆だから無理」と即断したのは、判定とエントリーが同じ日中に起きると思い込んでたのが原因だった。
とはいえ、ドルを円に両替する手間や、証券口座をまたぐ手間はやっぱり残る。わざわざ複雑にする理由もないので、日本の取引所に上場してる円建てのETFを第一候補にすることにした。
「同じ時刻に重なる」という本当の落とし穴
ここでようやく本題。日本のETFに落ち着いて一安心、と思った矢先、また引っかかる所に気づいた。寄り付き(=市場が開いた瞬間の最初の取引)で個別株を買うのに、昨晩シグナルを受け取っても、買うための現金がまだ無いんじゃないか。
改めて考えて気づいた。日本のETFも個別株も、同じ東証の、同じ朝9時の寄り付きでしか売買できない。ということは、ETFを売る瞬間と、個別株を買う瞬間が、時計の針としてまったく同じ時刻に重なる。「売った代金で買う」ためには、売りが先に成立して現金が口座に入ってから買う、という順番が必要なのに、両方が同時刻に押し込まれたら、その順番を作る隙間が存在しない。
米国のETFを「面倒だから」と一度却下したのに、皮肉なことにこの現金問題に限っては米国ETFの方が有利だった。アメリカ市場の取引時間が、日本の判定とエントリーの間にちょうど挟まっているから、そこで現金化する時間を確保できる。ただしそれは円転や口座またぎという、また別の面倒とのトレードオフになる。
バックテストで確かめた解決策
結局、一番シンプルな解決策は「個別株を買うタイミングを1営業日ずらす」だった。ETFを朝の寄り付きで売って、個別株を買うのはその日の引け(市場が閉まる直前)か翌営業日にする。数十日単位でポジションを持つ設計だから、1日ずれたところで大きな影響はないだろう、という予想はあったけど、予想だけで進めるのは危ないので、実際にバックテスト(過去のデータで作戦を試すこと)で確かめた。
今の設計(ずらさない)のまま計算すると、年利は+34.72%、最大の落ち込みは-38.31%。個別株のエントリーを1日ずらしても、年利は+34.76%とほぼ変わらず、最大の落ち込みは-41.20%とやや深くなる程度。2日ずらすと、年利はむしろ+36.01%まで上がり、最大の落ち込みは-40.71%だった。実際に使う予定の設定でも同じ検証をしたところ、数字にブレはあるものの、崩れるような結果にはならなかった。
現金が足りなくて発注自体ができない設計よりは、1〜2日のズレを受け入れて確実に動く設計の方がずっといい。というわけで、「エントリーを1日ずらす」を対応策として採用することにした。
今回の学び
頭の中で「AがダメならB、Bがダメなら次はC」と考えを進めていくだけでは、この落とし穴には気づけなかった。実際にカレンダーと時計を並べて、いつ何が起きるかを1個ずつ書き出して初めて「同じ時刻に重なってる」ことが見えてきた。仕組みや設計を考えるときは、頭の中のロジックだけじゃなく、実際の時間の流れをちゃんと並べてみる。それをサボると、動かしてみて初めて「あれ、発注できない」と気づくことになる。
ちなみに、これに気づけたのは、専門知識がなくても誰でも思いつきそうな「現金あるの?」という素朴な疑問を、自分でちゃんと拾ったからだった。詳しい人ほど「時間は普通に噛み合うものだ」と無意識に思い込んでしまうのかもしれない。素人の自分だからこそ拾えた見落としだったと思う。
次は、日本に上場してるETFの中でどれを使うか、出来高(そのETFがどれだけ活発に売買されてるか)を確認して絞り込む作業に入る。同じように「乗り換え型」の仕組みを考えてる人は、売る場所と買う場所が同じ時刻に開いてないか、一度カレンダーと時計を並べて確認してみてほしい。
※この記事は僕の開発記録です。特定の銘柄や手法をすすめるものではありません。投資は自己判断で。
いいなと思ったら応援しよう!
この記事は noteマネー にピックアップされました

