個人でUSD/JPYの自動売買システムを開発しています。 最近、相場の動きを物理法則で記述する「世界論」を作り始めて、 実際にデータから法則が見つかったので書いてみます。


きっかけ

自動売買を作っていると、テクニカル指標のパラメータ調整の沼にハマります。 MAの期間を20にするか25にするか。RSIの閾値を70にするか75にするか。 これは結局、過去データへのカーブフィッティングです。

ある時ふと思いました。 そもそも為替レートって何なの? なぜ動くの? この問いに答えられないまま、表面的なパターンだけ探していていいのか。


バネに挟まれたボール

考えてみると、ドル円レートは2つの引力に挟まれています。

  • ドルの引力: 金利が高い → お金がドルに流れる → 円安方向に引っ張る
  • 円の引力: 金利が低い → 引力は弱いが、ゼロではない

レートは、この2つのバネに挟まれたボールです。

 

[ドル引力]===強いバネ===●===弱いバネ===[円引力]

バネに挟まれたボールを放っておくと何が起きるか。 物理学の答えは明快です。振動します。 そして摩擦があるので、徐々に減衰して均衡点に収束します。

つまりレンジ相場はデフォルト状態です。異常ではない。 むしろトレンド(一方向への持続的な動き)のほうが特殊で、 誰かがエネルギーを投入し続けないと起きない現象です。


世界の方程式

これを方程式で書くとこうなります。

 

m·ẍ = -k·(x - x_eq) + F - γ·ẋ

  • x はレート
  • k はバネの強さ(金利差)
  • F は推進力(市場参加者の売買エネルギー)
  • γ は摩擦(スプレッド等のコスト)

高校物理のバネ-ダンパー系と同じ構造です。

ただし正直に言うと、この方程式を書いた時点では 記号を置き換えただけでした。 「レンジ」を「減衰振動」と呼び、「トレンド」を「推進飛行」と呼んだだけ。 それでは世界論とは言えない。

本当の世界論は、データに値を入れたら答えが出る法則があって初めて成立する。


データから法則を探す

ケプラーは、惑星の軌道データを何年も眺めて T² = a³ を見つけました。 なぜそうなるかはケプラー自身にもわからなかった。後からニュートンが説明した。

順序は まず法則、次に理論 です。

私のシステムでは、ニューラルネットが5分ごとに 「5分後、10分後、...、60分後の価格変動」を12本の予測として出力します。 この12本の予測と、実際の価格変動を大量に並べて、関係式を探しました。


見つかった法則

法則1: 予測精度は時間の平方根に比例する

予測精度(相関係数)を縦軸、予測の先の時間を横軸にプロットすると、 12個の点がほぼ完璧に1本の曲線に乗りました。

 

精度 = a·√(時間) + b

フィッティングの決定係数 R² = 0.982。

5分先の予測はほとんどランダムに近い。 でも60分先になると、そこそこ当たる。 その間の精度の上がり方が、平方根に比例する。

なぜ平方根なのか。おそらく、ランダムウォークの標準偏差が√tで増大する性質と関係しています。 短期ではノイズが支配的で予測が難しいが、 長期では構造的なドリフト(引力バランスの方向)が顕在化する。

法則2: 市場参加者が多いほど予測が当たる

5分間のティック数(取引の活発さ)と予測精度の相関が r = 0.87。

市場が活発なとき(ティック密度が高い)はパターンが明瞭で、NNが捉えやすい。 閑散としているとき(ティック密度が低い)はノイズが支配的で、予測が外れやすい。

これは方程式の推進力Fの代理変数としてティック密度が使えることを意味します。 エネルギーが大きいときほど、世界は予測可能になる。

法則3: 予測は実際より控えめ

NNの予測値と実際の変動を比べると、 実際は予測の約1.4倍動いていました。

NNは「こっちに動きそう」という方向は当てるが、 「どのくらい動くか」は控えめに見積もる。 これはMSE損失関数の性質(条件付き平均への収縮)で理論的にも説明できます。


これの何がうれしいのか

値を代入すれば答えが出る。

これまでの自動売買の設計は「こうしたら儲かるかも」→「バックテストで確認」の繰り返しでした。 でも法則があれば、なぜ儲かるか(あるいは儲からないか)が説明できる

例えば:

  • 法則2から「閑散相場ではエントリーしない」というフィルタが自然に導かれる
  • 法則1から「5分先の予測は信頼しない、60分先の予測を重視する」が定量的に決まる
  • 法則3から「予測値を1.4倍に補正すべきか」を検証できる

フィルタの根拠が「バックテストで良かったから」ではなく 「物理法則がそう言っているから」になる。 カーブフィッティングとは本質的に違います。


将棋AIとの類比

私のシステムの設計思想は将棋のBonanzaと同じです。

  • 評価関数(NNで学習): 市場がこれからどう動くかを予測する
  • 探索(アルゴリズム): 予測を見て、いつ売買するかを決める

評価関数は複雑でいい。NNに任せる。人間はルールを作らない。 でも探索(売買判断)はシンプルなアルゴリズムにする。

世界論はこの探索層に属します。 「推進力が十分強く、かつ振動状態でないときだけ、順張りで入る。」 これが今のところの行動公式の全てです。


まだ途中

世界論はまだv4(第4版)です。 見つかった法則は3つだけ。未検証の仮説がたくさんあります。

でも方向は見えています。 1つずつ法則を検証して積み上げていけば、 最終的には数行の公式で全ての売買判断が記述できるはずです。

世界を理解してから、世界の中で行動する。 遠回りに見えるけど、これが一番確実なやり方だと思っています。