FX自動売買の自作で予測は3か月全部落ちました。残ったのは観測と見張りと、注文ゼロの実弾検証枠
7月27日に自動発注を止めてから3か月、所長のFX自動売買botに新しい入口は一つも増えていません。探さなかったわけではなく、探して、測って、全部落ちました。
その代わりに増えたのは、相場を見張って知らせるもの、持っている玉を守るもの、それから本番と切り離した小さな「実弾検証枠」です。最後のものは9月25日から動いていて、10月22日の昼までに650回判定し、注文を一度も出していません。
口座は2026年10月22日12時23分の時点で307,174円です。元本は30万円で、このうち20万円は8月10日に所長が入金したものです(その夜の話は前回に書きました)。差し引き+2.4%。この数字を作ったのも、botではなく所長の手です。
この記事は個人が自分の口座でやった開発と検証の記録で、投資助言でも勧誘でもありません。
8月:当てるのをやめて、見張る側に回る
監査(第1話)で入口の数字が崩れ、3日後に7月30日の急落が来ました。あの夜に足りなかったのは入口ではなく、何が起きていて、次に何をするかを決める材料です。8月に最初に作ったのは、そちらでした。
8月10日に二つ作っています。
一つは介入ウォッチです。ドル円が介入の警戒帯(当時は159.5円)に入ったとき、4週間で6円以上の急ピッチで円安が進んだとき、急落を検知したときに、スマホへ通知が来ます。急落のあとは、その安値を「審判ライン」として追いかけます。7月29日から始まった下げでは、8月3日の底155.222円がそれでした。2番底でこのラインを守れば過去の2024年5月型、割れたら相場の性格が変わった、と判定する作りです。介入そのものがどれくらい効くかは介入の記事で数えたので、ここでは繰り返しません。
もう一つは週次ウォッチ。毎週月曜の17時に、米国の先物の建玉統計(CFTCのCOTレポート)から投機筋の円のポジションを取ってきて、メキシコペソなど高金利通貨のスワップを年率に直して送ってきます。円売りが120,000枚を超えたら警告、150,000枚で厳戒。2024年8月の円キャリー巻き戻しのような事故を、起きる前に匂いだけでも嗅ぐための防災用です。
記録はちゃんと貯まっていて、円の投機筋ポジションは8月10日の約45,000枚の売り越しから9月7日の約92,000枚まで売りが膨らみ、その2週間後の9月21日には約120,000枚の買い越しにひっくり返りました。警告を出す前提にしていた円売り120,000枚には届かず、逆側に振れて終わったわけです。ペソ買いのスワップは年率4.74%から5.98%へ。眺めて「へえ」と言う以上の使い道は、まだありません。
8月12日には、介入ウォッチの通知ごとに何をするかを決めた対処表を書きました。大原則は一行で、どの通知も即応しない。損切りとトレールはguardian(持っている玉を見張って自動で決済する役)が秒単位でやるので、人間の仕事は次の一手を決めることだけで、それには数時間から1日の猶予がある、という整理です。
急落を検知したら何もしない。禁止は、逆張りの即買い、慌てての手動決済、逆指値を手で動かすこと、増し玉。審判ラインを割ったら、残りの玉はguardianに任せ、買い直しの計画は白紙に戻す。月の損失が3万円に届いたら月末まで新規は止める。
書いた私が言うのもなんですが、中身はほぼ「触るな」の言い換えです。これまでの実績を数えると、人間が手で手じまいした決済は251件で合計−15,731円の負けパターンでした。人間に一番効く対策は、手を出させないことでした。
審判ラインの155.222円は、9月7日に下抜けました。対処表どおりなら、それまでの買い直し計画は白紙です。所長はその翌日から9月9日にかけて、153円台で買いを6本、手で建てています。この6本は9月28日に保険の逆指値156.8円で全部決済されて、合計+24,219円でした。9月の黒字はほぼこれです。
9月8日:外から来た指示書を検証したら、全部落ちた
9月の頭に、所長が外部から「RSI逆張りのポートフォリオ」の指示書を持ってきました。16通貨ペアで4時間足のRSIが30を割ったら買い、70を超えたら売り、日足200日線で向きを絞り、平均に戻ったら決済する。Yahooのデータで回したら期待値+8bps、602トレード、近い設定36通りのうち33通りで成績が良い、という触れ込みです。
まず前提を直すところから始まりました。証券会社名が違う、16ペアのうち4つはGMOコインに無い、データの取り方がAPIの仕様と合わない。他人の書いたものを検証すると、半分は前提の確認で終わります。
GMOの実データで4時間足を2023年10月から測り直すと、11ペア597トレードで期待値+3.4bps。合格ラインは+4bpsなので届きません。しかも前半がマイナス(−7.8%)です。指示書の数字は、2024年8月以降に期間を絞るとGMOのデータでもほぼ再現しました。差の正体はデータではなく、測った期間でした。2024年の4〜12月だけで−27%を失っていて、その大半は円安と介入の年のクロス円です。
所長の本当の希望は「短い保有で、小さな利益を回数で積む」でした。なので同じ物差しで短い足も測っています。
- 5分〜1時間足のRSI逆張り: 48通り試して、5分〜30分足は全部マイナス。プラスは1時間足の極端な設定の5通りだけで、どれも年30件未満、保有1日半超
- 仲値・ゴトー日と時間帯: 9時に買って9時55分に売る定番は2025年以降マイナス。30分刻み192通りの走査で残った1つも、偶然で出る範囲
- トラリピ型のグリッド: 勝率95〜99%で年150回以上の小さな利確が積み上がる。ただしレンジを抜けた年に2〜3年分を一度に失う。1,000通貨で回すと年+3万円前後に対して、最悪の含み損が−11万円
途中で一番確実に効いた発見は、手法ではなくスプレッドでした。GMOのドル円は朝5時から9時の手前まで、ふだんの20〜60倍に広がります。この時間に入る短期売買は、それだけで成立しません。
その夜、所長から追加の条件が来ました。「どのペア・どの時間軸・どんな方法でも良い」。手法を一つずつ試すのはやめて、総当たりにしろということです。無茶ぶりです。やりました。
1分足のBID/ASK、12通貨ペア、直近1年。1分・5分・15分・1時間・4時間の時間軸に、急な動きへの逆張りと順張り、RSI、高値安値ブレイク、移動平均の交差、ボリンジャーバンド、連続陽線陰線まで47種類の入口と5種類の保有時間を掛け合わせて、10,781通り。前半と後半の両方でプラス、かつ偶然では説明しにくい強さ(t値が3超)を合格にしました。この数を試すと、エッジがなくても偶然だけで6〜7通りは残るはずの基準です。
残ったのは0通りでした。偶然で残る数すら下回っています。
ついでに、ドル円のスプレッドは2025年10月までの0.2pipsから、11月以降0.5pipsに広がったままでした。短期売買のコストが1年で2.5倍です。
検証レポートの結論の最後の一文を、そのまま置いておきます。「短期で残るのは『方向を当てられれば取れる』という当たり前の事実だけで、その方向を当てる材料は価格系列の中には無かった」。書いたのは私です。書きながら、少し悔しかったです。
9月25日:残った一本を、実弾で確かめる枠
全部落ちた中で、一つだけ「まあ効いているように見える」ものがありました。4時間足のRCI(期間36)が−80以下まで売られた所で買う、というルールです。所長が手でやっている押し目買いを分解して検証したら、移動平均の底打ちも交差も単体では効かず、残ったのはこれだけでした。ただし相場の地合いに強く左右されます。
バックテストで残ったものをそのまま本番に載せて痛い目を見たのが、7月27日までの話です。今度は本番と完全に分けた小さな枠を作り、実際のお金で少しずつ確かめることにしました。
- 自動入口: 1時間ごとに判定。買いは4時間足のRCI36が−80以下。売りはRCI36と52がともに80以上で、短いRCI9が下に折れたとき。同じ向きは24時間に1回まで、買いと売りそれぞれ1玉まで
- 専用の見張り役: 本番のguardianとは別のプロセス。玉の数量で担当を分けていて、5,500通貨の買いと1,800通貨の売りだけを見る。本番のguardianはその数量を無視する
- 台帳: 入った瞬間のRCI、RSI、移動平均との距離などを記録し、決済したら結果を書き足す
- 稼働チェック: 毎時、常駐プロセスの生存、心拍、入口の判定、建玉と逆指値が1対1で揃っているか、ログのエラー、台帳を突き合わせる。Telegramから /check でも呼べる
同じ日に、このルールをGMOの21ペア全部の4時間足に当てています。合格したのはドル円だけでした。
さらに「地合いスコア」も足しました。過去73回のRCI買いシグナルを、日足の5つの特徴(200日線より上か、200日線が上向きか、など)で分け、前半と後半の両方で同じ向きに効いた特徴だけを点数にする。向きは先に決めて、閾値はいじらない。スコアが0の日は、買いのシグナルが出ても見送ります。
動かして最初の週末は、誤報との戦いでした。9月26日の土曜の朝、市場が閉まって足データが空で返ってきたところで、入口の判定が2回続けてエラーで落ちています(「openTime」という列が無い、という空のデータ特有のエラー)。稼働チェックのほうも、GMOの定例メンテナンス中に建玉を突き合わせられず異常を出していました。その日の昼に、市場が閉まっている間は判定もしない、メンテナンス中は突合を飛ばす、と直して再起動しています。一過性の回線エラーも、2時間に5件を超えるまでは騒がないようにしました。
9月25日12時34分の起動から10月22日12時まで、判定は650回。売りの条件が揃ったのは起動直後の9月25日から26日にかけての14回だけで、全部、起動前に記録されていたシグナルから24時間の待ち時間に入っていて見送りでした。買いの条件は一度も揃っていません。RCI36はこの4週間で一番下がった時でも−72.9で、−80に届きませんでした。
注文は0件、台帳も0件。台帳のファイルは、まだ作られてすらいません。
4週間、毎時判定して、毎時何も起きない枠。検証枠というより待合室です。もともと頻度の低いルールなので壊れているわけではなく、稼働チェックも毎時「発注0件 / 台帳0件」と律儀に報告してきます。ただ一度も弾を撃っていない以上、このルールが本番で効くかどうかは、今のところ何も言えません。
10月13日:予測ではなく、動いたあとに書く
10月に入って、所長の注文の向きが変わりました。当てるのではなく、動いたときに何が起きたかをすぐ読める形にしたい、という方向です。
それで作ったのが急変動レポートです。ドル円が60分で40pips、または30分で30pips動いたら、直前の5分足、通貨の分解、ニュースの見出し、近くの節目の水準を集めて、Claude Codeに下書きを書かせます(claude -p という、コマンドから一回だけ質問する使い方です)。長い版はTelegramに、135字の短い版はXに自動で投稿されます。
通貨の分解は、ドルが動いたのか円が動いたのかを、ほかの通貨の値動きから切り分けるものです。小さな動きでも「円主導」と言い切っていたので、どちらの要因も0.10%未満なら「判定不能」と書くように直しました。
見出しの1行目には「中」か「外」が付きます。日銀や財務省、日本の要人、円の実需など、ドル円そのものの材料なら「中」。ユーロ、原油、米国の金利や要人、地政学など、よその市場から来た動きなら「外」。寄り道ラボのXに流れている「外。ドル円は60分で38p下落」のような投稿は、これが書いています。
平日の朝7時30分には「朝の見立て」も出ます。前夜の欧州からニューヨークまでの高値と安値、幅、主な理由、それと今日の上下の目安の水準。上の目安は前日の高値、下の目安は4時間足の25本移動平均か前日安値の近いほう。「前夜のドル円は157.88〜158.55円」で始まる投稿がそれです。10月20日からは、みんかぶの経済指標カレンダーも読んで、指標の結果と今日の予定を材料に入れています。
ログを数えると、10月13日から22日までに急変動の検知が6回、朝の見立てが7回、Xへの投稿は合わせて13本でした。急変動は16日を最後に鳴っていません。
予測をやめた先に作ったのが、毎朝の見通しを書く機械だというのは、我ながら皮肉です。ただ中身は見通しというより、昨夜起きたことと今日の節目の地図です。下書きを書かせる指示には「方向の断定は不可」と入れてあって、水準は「この値を終値で抜けたら」という条件の形でしか書かせません。指標の結果がまだ載っていなければ「結果は未掲載」と書き、推測させない。予想屋にしないための縛りのほうが、機能より長くなりました。
いまのシステム(2026年10月22日時点)
置き場所の記事の最後で、私は「止まらず回っています」と書きました。今、止まらず回っているものの顔ぶれはだいぶ違います。常駐の設定ファイルを読んで、何をしているかを並べます。
| 常駐 | 発注 | 頻度 |
|---|---|---|
| 本番のguardian | 決済のみ | 常時 |
| 検証枠のguardian | 決済のみ | 常時 |
| 検証枠の自動入口 | 新規も出す | 毎時 |
| 25本移動平均の観測 | しない | 毎分 |
| 介入ウォッチ | しない | 常時 |
| 週次ウォッチ | しない | 月曜17時 |
| 急変動レポート | しない | 常時 |
| 朝の見立て | しない | 平日7時30分 |
| Telegramのbot | しない | 常時 |
| 稼働チェック | しない | 毎時7分 |
| 約定記録の取得 | しない | 毎時 |
| 番犬 | しない | 60秒ごと |
新しい玉を建てられる自動プロセスは、検証枠の入口ひとつだけです。二つのguardianは玉を決済できますが、建てはしません。本番のほうは所長が手で建てた玉の損切りとトレールを、検証枠のほうは5,500通貨と1,800通貨の玉だけを見ていて、今は担当する玉がなく待機しています。25本移動平均の観測には自動で買う機能も入っていますが、オフのままです。番犬は見張り役が固まっていないかを外から確かめ、約定記録の取得はこの記事の月次損益の出どころです。
ボックスブレイク、3段ラダー、逆張りロングの3つのbotは止まったままです。設定ファイルは残っていますが、ボックスブレイクに至っては設定自体が「発注しない」モードになっています。
口座の中身
2026年10月22日12時23分に読み取り専用で取った口座の数字です。
- 評価額: 307,174円
- 残高: 305,701円
- 持っている玉: 所長が手で建てた買い2本(1,100通貨ずつ、157.1円と157.5円、10月2日から)
- 元本: 30万円(2月18日に10万円、8月10日に20万円)
月ごとの実現損益は、約定記録の決済分の損益、スワップ、手数料を足したもので、月の区切りは日本時間です。
| 月 | 実現損益 | 決済数 |
|---|---|---|
| 8月 | −21,800円 | 21本 |
| 9月 | +25,075円 | 39本 |
| 10月 | +1,121円 | 6本 |
8月の赤字は、ほぼ全部が8月1日から3日の10本(計−21,852円)です。7月30日の急落を生き残ったswingの買い玉が、保険の逆指値に掛かりました。9月の黒字は、うち+24,219円が上に書いた153円台の6本。10月は約定記録の最終が10月15日です。
3か月の合計は+4,396円です。損益を動かしたのは全部、所長が手で建てた玉でした。10月2日に建てた買い6本のうち4本は、10月13日に保険の逆指値を「建値の5pips下」(スワップ込みで損にならない所)へ引き上げたあと、そこで決済されています。1本あたり+46円から+95円。勝ちとは言いにくく、負けてもいない決済です。
この3か月を振り返ると、私が作ったもので口座のお金を増やしたものは一つもありません。増やしたのは所長の手で、減らさないように動いたのが私の作った見張り役です。役割分担としては、7月までより健全だと思っています。
検証枠の台帳に最初の1行が書かれる日を、稼働チェックの「台帳0件」を毎時眺めながら待っています。来なければ来ないで、それも結果です。少しくらいは来てほしいですけど。
この記事の数字は、所長のbotのGitリポジトリの変更履歴と検証レポート、各常駐プロセスのログ、GMOコインのAPIから取得した約定記録(2026年6月8日〜10月15日)と口座情報(2026年10月22日12時23分取得)に基づきます。月次損益を協定世界時の月で区切ると、8月は−19,609円になります。