私は怪物を作ってしまったのかもしれない…。
そう言いたくて、作りましたよシステムトレードを1から。
コイツはスゴイね、指標は日々のデータを元に常に更新されるから、相場の変化に対応できる柔軟性を持つ。
人間がシステムに介入する必要は無い。
いや、厳密には人間は介入しています。
でも、それはシステムトレードのマスターである私ではなく、市場を動かす有象無象の世界の人々。
世界の人々の戦略を丹念に拾っていくことによって、人間の介入を疑似的に行う…。
ある意味で、根柢の設計思想には下記記事も役だったかもしれない。
情報収集、解析、分析、指示、実行…、これらを分離させること。
役割を分離させながら、全体を統合して生きたシステムを作り出すこと。
それぞれの目的は単純であり、英語で言うなら実に simple…
しかしながら、それらが有機的につながることによって一つの意思のようなものを生み出す。
意外なことに、妄想で書いた物語がヒントの鉱脈となったのです。
ハーイ、テクノロジー評論家のコンバット(クリムゾン)越後です。
今回は、システムトレードを作る際の問題点を羅列してみたいと思います。
土台は人間が考えろ
システムトレードで重要なのは言うまでもなくロジック・戦術です。
少なくとも生成AIに
「利益を生むトレード戦術を教えてください」などと漠然とした投げかけをしても無意味です。
なぜなら、確実性の高いものは
インデックスの長期積み立て投資
これ以外に無いからです。
これでは満足できないから、優れた戦術を求めるのですよね?
いや、しかし冷静に考えたら分かりそうなものですが「インデックスの長期積み立て」より優れているメソッドが確立されているのなら、あなたはそれを既に知っているはずです。
まあ、生成AIに聞くまでもないって話です。
不確かなものを掘るという覚悟が必要です。
あそこに金脈がありそうだ。
あそこに油田がありそうだ。
そういったアタリを付けて、その推測の真贋を深掘り検証していくプロセスです。
だから、最初の第一歩としての正解はこんな感じです。
私はシステム・トレードを構築しようと考えています。
戦術としては○○を××したら□□なので、そこで▲▲で利益を生み出せないかという考え方です。
どうでしょうか?
こんな具合でしょうか。
最低限の具体性が必要となってきます。
何かデタラメなデータを出してくるぞ

1分足で考えているのですね?
では、その1分足のデータはありますか?

無いです

じゃあ、検証用に最低限のデータセットを作りますので、それでテストしましょう
最初にヤバいと思ったのはここです。
この最低限のデータセットを作ってくれたのはいいのですが、それを見てこう思ったので反論しました。

何ですか、この仮データは。
こんな都合の良い値動きするなんてあり得ない。
やっぱり、リアルなやつを拾ってこないと。
インターネッツで取得できるでしょ?

アナタがやりたいのは、くりっく株365ですよね?
それの1分足データを取得することはできません。
公開されているものが無いようです

無いのかよ。
じゃ、じゃあ…、データを作ろう。
実際の値動きを拾ってデータベースを作ろうやんか
よくこんな面倒な方向に舵を切ったなあと思います。
再ログインの必要があるぞ
さあ、ここで VBA という話になってきました。
Excel の機能で付いているマクロというやつです。
私、一応、Python (というプログラム言語)はちょっとばかりカジっていたのですね。
下記の講習を2025年にしましたし、それの後もいくつかの Python によるプロジェクトを作ったりしました。
何で VBA かっていうと、証券会社のデータ提供プラットフォームがExcelベースだからなのですね。
やったことないけど、まあいいや。
比較的、簡単に進みます。
ここは生成AI利用のいいところですね、基礎なんかすっ飛ばして書いてもらったコードをコピペするだけです。
やった、1分毎に銘柄のレートをExcelに記録することができるぞ。
これで、リアル・データを積み上げたうえで戦術の妥当性を検討することができる。

これ、Excel を開きっぱなしにしておけば未来永劫
データを記録し続けてくれるのでしょ?
そう思っていた時期がオレにもありました
はい、そんなに簡単にはいきません。
営業日が変わる際に、再ログインしてくれというメッセージボックスがでてきます。
再ログインしない限りは、データの更新が止まってしまいます。
ああ、面倒くさい。
だったら、やってやろうじゃねえか RPA。
バックテストの結果、ダメじゃん…
データがある程度そろったら、「ぼくの考えた最強戦術」がどうなのかテストしたくなってきます。
これができるようになると、少し面白いです。
逆に言うと、ここまでの過程はまったく面白くないです。
ところが、結果が振るわない。
設定値を色々と微調整してみても、よくてトントンな感じ。
つまり、クソ戦術…。

いや、でも値動きで儲けるってことじゃなくて
金利を逆に利用するっていう考えだから…
でもね、ちょっと手詰まり感がでてきたのです。
これ…、元々の考えをゴリ押ししても うまくいかない気がする そんな、予感…。
博識なる金融ロジックの秀才
でも、生成AIとの対話の中で、他のオプションが見えてきたのも確か。

いくら相関が高くても回帰性が低ければ、短期間での収束は望めません。
コインテグレーションの回帰性についての検証は米国で盛んであり、論文も多数出ております。
計算式なら私の方で提示できますが
…何かよく分からんが。

し、知っているのか雷電!
こういう場面で、AIの提案に乗るか否か?
これが重要な分岐点となります。
大部分の工程は、生成AIの出したコードをコピペしたり、不具合が出た際のデバッグに費やされますが、こういった今後の展開を左右する重要な分岐イベントもたまに発生します。
こういう場面で相手の提案に乗っかるか、別の方法を模索するか、元々のメソッドに固執するか…、この選択によって今後の展開が大きく左右されます。
アドベンチャーゲームの節目にあるエンディング分岐イベントみたいなものです。
想定と違うデータ集積の結果
ここはChat-GPT先生の案に乗っかることにしました。
良し悪しを検証するにしても、データの蓄積が足りないので毎日コツコツと1分毎の記録を継続していきます。
それで、過去3日間のデータを元にした超短期解析
過去10日間のデータによる短期解析
過去30日間のデータによる中期解析
過去90日間のデータによる長期解析
こういう形でデータまとめをしようと立案したのですね。
ザックリ言うなら、2つの銘柄の力関係が一時的には乖離するがやがて元通りになる…という仕組みを利用して利益を出そうという考えです。

ナスダックに対して日経が高すぎじゃん、
ここから先は元通りの比率になるような値動きが想定されますね。
つまり、日経は下がりやすく、ナスダックは上がりやすい
まあ、厳密にはもう少し複雑ですが、ザックリ言うならこんな感じですね。
それで、さっきの短期・中期・長期、の話に戻りますがロングなデータになるほど収束すると思っていました。
パチンコで例えるなら、初当たり10回だと 1/420 だったが、初当たり30回だと 1/342 となり、初当たり90回だと 1/324 となり、初当たり5,000回だと 1/319 となった、みたいな概念ですね。
ところが、意外な結果に。
別に長期のデータになるほど相関や回帰性が増えるわけではないという現実。
これは、長期になると途中でレジーム・チェンジが起こるため、きれいにデータがまとまらないという現象です。
例えるなら、6月と7月の気温を観測すれば「徐々に上がっていく」という一貫性のある結果が得られますが、6月・7月・8月・9月の気温を観測すれば「徐々に上がっていく」とは言い難い結果になるでしょ?
まあ、そういうことです。
ここで、私は重大な決断をします。
30営業日や90営業日の累積データなど不要、3営業日と10営業日の累積データだけで判断する! と、いう方針の確立です。
結果的にこれが英断だったと思うわけです。

基本的には過去10営業日のデータを元に、
相性占いが望ましいペア3組を選ぶ。
何を言っているのか分からんだろ?

相性が良かったら、喧嘩してもすぐ元に戻るし
相性が悪かったら、喧嘩したら関係性が底なしに崩れるってこと?
私も何を言っているのか分かりません
バックテストで好成績を実現
カーブフィッティングという言葉をご存じでしょうか?
予想の材料に未来に知り得るものを混ぜてはいけない、こういうことです。
データを2~3ヵ月ほど集めたから、これで戦術の有効性を検証してくれよ。
こうなるのですが、ここで注意すべきポイントがあります。
7/27(mon)の取引をバックテストしようと思ったら、そこに対して与える情報はそれ以前のものに限ります。
7/28~7/31のデータも持っているから、それらを使うことはできるのですが、基準点である7/27より未来に得たデータを一切、利用してはいけないのです。

カーブフィッティングの考え方。
頭文字D(イニシャルD)で、どこかの山道に対して異常に詳しい青年がラスボスだったような気がします。
彼は山越えで通学していたので、子供の頃から積み重ねた経験によってコースの構造や特性を異常なまでに熟知しています(この”熟知”こそが彼自身のドライビングスキルにプラスされる強力な武器となります)。
目で直接拾える情報に加えて、道路端の落ち葉の下がどうなっているのかまで知り尽くしているという狂気じみたアドバンテージ。
ゆえに強い=速い=正確。
でも、これから走るのが一度も通ったことのない知らない道だとしたら?
7/27~7/31 の週に何が起こるのかをテスト者は知っています。
当然、データとしてその「未来の結果」を持っているわけですが、それを混ぜないように気を付けなくてはならないのです。
この、大前提が一つ。
あとは、細かく条件をいじりすぎないということでしょうか。
そして、ある程度の期間を通してテストをすること。

何だこのデータは、イマイチだな。
でも、この辺をこんな風に調整して…良くなった。
では、さらにこの辺も調整して…

ダメだ、むやみやたらにイジるな。
来週の結果を待て。
再来週の結果を待て。
何もしないことが最良なんだ、今は傍観せよ

人は恐れる…
長い時間をかけて何の成果も生み出せないことを。
だが、その恐れが屋台骨を腐らせる…。
今日はやめてパチンコでも行ってくるか…
まあ、何だかんだ。
最初の条件設定から少しイジッただけで放置しました。
その結果、案外悪くないことが分かりました。
5月はイマイチだが微妙に勝ち越し。
6月は中々に良い成績。
何も変更せずにそのまま…
7月も良い、良いのだ…、悪くない結果。
予算開放、機材を更新せよ!

Surface Pro4 なんて古いマシーンで…
…Core i5-6300U
シストレの中核をこれで担ったというのか

うむ

やはり重要なのは設計がスマートであるかドウカ。
スペックに頼って重たい処理を繰り返せば問題が解決シマスカ?
そんな力技のゴリ押しだなんてゴリラ的発想ナノデス
旧スペック型落ちマシーンで偉大なことをやる…
旧型の兵器が最新の敵軍をボコすみたいなやつ…
こういうのがロマンかなあ、って思っていました。
手持ちマシンではASUS の ZenBook の方がスペックは良いのですが(まあこれも古いけど)、Surface pro4 の方には純正の Excel が入っていますからね。
私は岡三オンライン証券の口座を持っていまして、だから、岡三なら Excel のアドインでシステムトレードができる!っていう条件にシビれましたね。
ああ、新たに口座を開設しないでもできるやん!ってね
今、調べたら IB証券 などが Python api 提供しているから、(CFDで株価指数をやるにしても)そっちの方が良さそうなのですけどね。
とにかく、最初の構想段階では「手持ちの機材や証券口座で何とかしよう」…そう、思っていたのです。
それに Surface Pro4 はほとんど使っていないから、システムトレード専用機として放置プレイができそう。
だが、限界がやってきた。
前回の記事でファンがうるさくて我慢できない、うるさいだけじゃなくて実害もある。
だが、ディスプレイの輝度を下げることによって何とかなりそう…って書きましたが、やっぱり安定感が足りないのがダメすぎる。

結局、システムは全て上記のニューマシーンに引き継がせることにしました。
ミニPCって結局、モバイル用のプロセッサ搭載なのでノートパソコンと性能は大差ないのですけどね。
まあ、ノートPCみたいに薄くせずにレイアウト自由なので、冷却効率という点では優れていると思います。
また、上記の製品は簡単に蓋が開くのでメモリーやSSDの拡張も容易に行えるみたいです。
これは Windows11 pro が入っていましたが、Office は無しだったので、Amazon で Excel2024 のダウンロード版を買いました。
経費がかかるなあ…。

ここまできたら、やり遂げるしかない。
どれだけの時間と労力を使ったと思っているんだ。
20万円以下ならポン出しよ
ダメな企業ってこういう感じで、潰れていくのでしょうけどね。
だが、私には勝算がある。
バックテストの結果を現実に反映させることは、技術的な諸問題を潰していく作業にすぎない。
勝ちは保証されている。

今後もバックテストのロジックが
現実の相場で有効であり続ける
保証など無いのだけどな
勝利は結果であって、約束などされていません。
だがそこに夢を見なくては、生きていけないのです。
VBAって正直なところ…嫌い
エラーの修正をせずとも、とんとん拍子で進む。
そんなことを書きました。
ああ…、これなら簡単だね。
そう思っていましたが、VBAの方が複雑化するにつれバグの修正作業が過酷になってきました。
今回のプロジェクトは下記のように分けています。
Python による処理
・Excelの生データを加工して解析、バックテストを行ったり morning_params を作成する
VBA(Excelのマクロ)による処理
・相場のデータを1分毎に記録する
・ペーパートレード(仮想取引)を行う
・実際のトレードを行う
リアルタイム依存な作業は全てVBAで処理しています。
その理由は、岡三のExcelアドインを利用しているからです。
VBA の魅力は、わざわざ Python とか VSCode みたいなものをインストールしてセットアップしなくても、Excel の「開発」タブを押すだけでよい、環境構築の手間が不要ということでしょう。
企業などでは、インストールできるアプリに制限がありますし、現場で手軽に効率化を試す分には良いものだと思います。
しかし、その手軽さゆえにモッサリ・モサモサ…。
文句はク〇ほどあるのですが、それをここで書いても長くなりすぎるから割愛。
VSCode で GitHub の Copilot と連携させると、「その変数名はこうした方がよくない?」「その記述だとコンパイルエラーですよ、こうやったら解決すっぞ」みたいなことが秒で出てくるので、大変にやりやすいです。
それに比べてVBAときたら…、もういいから。
ただ…、看過できないク〇要素として「動的な読み取りが失敗しがち」という点が挙げられます。
Excel上に変化する数字がパッパッパッと描画されているものをイメージしてください。
今回の場合は、相場のレートとかそういう動的に変わるものですね。
これを、1分毎に更新するハンドラー内だったら読めるのだけど、別系統の命令で「今の数字を読んで」ってすると読めない。

岡三RSSの瞬間値は読めない可能性がでてきました。 1分周期ハンドラーからなら読める、 ある瞬間の即時実行だと無理、 この推論を確認するスクリプトを考えてもらえないでしょうか?
上記は実際に Chat-GPT とやり取りしたものです。
この推論が多分、当たっているのですけど(このあと散々、試したからね)、この答えにたどりついたのは人間たる私です、GPTさんは別の可能性を延々と述べるばかり。
いつまでたっても真実にたどりつかない。

あっちの方はうまくいって、こっちの方はうまくいかない。
だったら、あっちの方法でやればいいって。
何でそうなるのかは知らんが、動けばええやん…
人はこういう考え方をします。
目的を最優先するっていうのかな。
しかし、生成AIは別。

今回のケースでは、数式セルを読めないのではなく、読み取った瞬間に数式結果がエラーだったと考えるのが自然です。5秒程度リトライして、それでも戻らなければREJECTEDにする構成が安全です。
上記も実際にChat-GPT とやり取りしたものの一部です。
○○が原因で××してしまうのではないか → だから□□した方がいいですよ
基本的にはこういう感じ。
ちょっと変ですよ。
たまたま悪いタイミングだったせいで読み取りに失敗したというのなら、成功したり失敗したりということじゃないと整合性が付かない。
正直、原因は分からないけど何かそれっぽいことを答えよう…そんな気がします。
それに、最も大事なのは原因を追究することではない、それを回避する方法を考えることだ。
まあ、VBA という選択をしたが故の苦労でしたね。
ただ良かった点もあります。
Excelの感覚で簡単に作図・作表できるので頭に描いたイメージを画面に反映させることは容易でしたね。
何事にも長所と短所があるということでしょうか。
苦労したってことは、分かってくれるのですね
下記も実際にChat-GPT とやり取りしたものの一部ですが、総括みたいなことを言ってきます。
一部において、人間味を感じます。
ここまでの完成度
実際にはかなり大きな節目まで来ています。
- ✅ OPEN セーフティチェック
- ✅ 実発注
- ✅ 建玉確認
- ✅ PROCESSING 管理
- ✅ ALREADY_ORDERED
- ✅ CLOSE セーフティチェック
- ✅ 全決済発注
- ✅ 建玉0確認
- ⏳ ALREADY_CLOSED(最終確認待ち)
残っているのは、この最後の1点だけです。
月曜日にこの1サイクルが成功すれば、「発注から決済まで完全自動」の最初の版が完成と言ってよいレベルです。
ここまで本当によく積み上げてきましたね。実売買を安全に行うための仕組みが、だいぶ形になってきています。
では、人間による総括を

完了確認なんて飾りですよ。
偉い人にはそれが分からんのです
と、いうことでパイロット版は「ほぼ完成」ですね。
実際に金曜日、日経とナスダックのペアを自動トレードすることで収益を上げることに成功しています。
そこに特別な感動は無かった。
いつものペーパートレードの延長線上としか思えない、感覚がバグっている。
今はただ、画面上で動く数字に特別な気持ちは持っていない。
ただあるのは、それを増やすという命題だけなのです。
2026年7月、ついにこのブログも欠番してしまいました(月間で記事無し)。
それだけシストレ構築作業が大変だったということです。
手を出す奴は地獄を見るぞ
YouTube動画やnoteで「自動取引」「自動売買」のネタをいっぱい見ました。
その結果、わかったことがあります。
LV1.システムの構築とバックテスト
LV2.リアルタイムのペーパートレード運用
LV3.証券口座と連動させた実取引開始
LV4.完成形への到達~放置運転~
わかりますか?
道は想像以上に長い。

AIにスクリプト書かせたらいいから。
戦術のロジックもAIに検証させればいいから。
おっと、マジで? これ儲かりそうやん!
これ系で満足してドヤ!って言っている人が多いです、つまりはLV.1です。
なかにはLV.2~LV.3まで踏み込む人もいますが、試行錯誤の連続でみなさん苦労されているようです。
そして感じる違和感、何ていうか高度なAIテクニックを披露して短時間で物事を劇的に進めていることを勝ち誇ってばかりな様で…。
違う、手段に溺れて実質を見失っている。
手段だけでは勝てない、真実には到達できないと考える。
結局はそこに向かおうとする執念が大事なのだ、と。
久しぶりの挑戦、挫折
私は今年の2月に、久しぶりにくりっく株365に手を出しました。
過去2回の惨敗を経て3度目の挑戦です。
奇しくも、最初のトレードをした際は米国とイランの核協議開催中でしたが、急転直下の空爆が起こり相場は大混乱となりました。
3度目の挑戦をした、たった数日後の出来事です。
そんな中、裁量取引で50万から70万超まで増やしますが、結局はドジを踏んで利益の全てを溶かします。
3月末には40万円まで落としますが、そこからギャンブルトレードを行って50万まで戻しました。
「もう、こんなことは無理だ」
「仮にうまくいき続けて、500万まで育ったとして、額が大きくなれば損失だって増えるわけでしょ…、耐えられるのか? 精神が持つのか?」
そう思って、裁量取引から手を引きました。
多くのトレーダーが陥るポジポジ病ですが、これに耐え4月以降は取引を行いませんでした。
次、やるときは自動取引が完成したときである、と。
その決意を守ったこと、まずはオメデトウです。

ポジポジ病は、なったことのある人しか分からないと思いますが、激しいトレードを繰り返したのち、まだまだ証券会社の口座に元金が残っているのに手を出さないのは…難しいことなんです。
ヤニカスがヤニを我慢するくらい、大変なのです。
それは壮大なロードマップでした。
①データを取るためのシステムを構築し
②取得したデータから戦術を立案・検証し
③出来上がった戦術を元にリアルタイムで仮想取引を行い
④戦術の見直しとバックテストプログラムの構築を行い
⑤仮想トレードと現実トレードの間にある障壁を取り除き
⑥誤発注を防止するシステムに落とし込む
ここまで本当によく積み上げてきましたね。
ああ…、そうだな。
これでようやく審判の日を迎えることができる。
今後のオート・トレードに幸あらんことを。
P.S 元気です
やっとできた! そう思った矢先、7月末に自作の自動取引で華麗なアタックを決めることができました。
ペアトレードなのでNASDAQの買いも同時に入れているのですが、日経マイクロの売りで 65,401.7 → 63,945.1 、10:17に入って12:48に決済。
これはチャートで見るとなかなかに見事、上がりきったところで売りポジを持って、下がりきったところで買い戻しています。
象徴的な勝利をおさめ、すべては上手くいくと思ったような気もしますが、そこから先はエラー・不具合・修正・修正…、戦術面も見直しが必要で修正・修正…微妙。
いつまでたっても終わらない泥沼の日々が続きました。
まあ、ロジックの甘さによって負けが続いた…ということなら、まだ納得もできます。
ところが、入るべきところで入らない。入っちゃいけない条件なのに入る。ペアトレードなのに「買い」側しかポジションを持てずに安全装置発動で強制決済…。
失敗するたびに、間抜けな出費や無駄なスプレッドや手数料によるダメージを重ねます。
バグって途中でシステムがフリーズしたり、朝の立ち上げに失敗してゲームに参加できていなかったり…、ログが途切れれば日々の記録にも穴が開いてドンドン不完全な虫食いデータになってしまいます…。
私は初めて「リアルタイム・ドッキング型プログラム」の辛酸を知ることとなりました。
例えばゲームなら、夜に切り替わるタイミングで特定のエリアにいるとバグるみたい…ということなら、その状況を(強制的に)再現してバグの情報収集をしたり、訂正後の内容をテストすることも可能です。
ところが、朝の〇〇が気に入らない、夜の〇〇が何かおかしい、相場の動きが激しいときにテストしたいなあ…etc、もうもう…、直すけどさ…、事前に準備した対応が本当に現実世界でマッチするのか試すだけでも大変です。
いちいち、狙ったシチュエーションを待たねばならないから。

あ~シンドイ
AIがコードを書いてくれたら完成なんてわけ、
絶対にないからね、甘くないってことだ
気が付けばもう9月も終わる。
いったい、いつからやっているのだろうか?
結局、審判の日なんてものは来なかった。
毎日、小規模な勝ち負けが続く混沌とした日々が続く。
細かな修正がときには正解であり、ときには失敗なのだろう。
戦い続けるしかない、考え続けて、悩み続けるしかない。
いつの日か、勝利を確信できるときが来るかもしれない、生き残り続ければ…。







コメント