季節は9月半ば。夏の暑さが少し和らぎ、秋の訪れを朝晩に感じる頃となった。
パソコンに向かう姿も背中に汗を感じることがなくなってきた。
そんな折り、ストップしていたEA開発を再開した。
以前の開発では普段チャートを見ながら下している判断を、できるだけそのまま機会に移植することを目指していた。
支配波があって、反転の兆しが見える。構造否定が起こって、1波が発生する。押し戻りを経て3波整合を観測する。FEを基準に到達点を見る。
トレーダー自身が見れば、これはひとかたまりの流れとして理解できる。条件として順に並べればEAとして再現できるはずだった。実際ver.1ではかなりのところまで形にできたと思っている。
しかし開発を進めれば進めるほど、問題の根幹はコードの中には見つからなかった。
生成ファイル800近く及んだ試行錯誤の問題の根幹は、その手前にあったのだ。
条件を明確にする。それがEA開発の前提であることは、プログラマーではない私でもわかる。人の目から見れば、「ここはまだ有効そうだ」とか「これはもう終わった構造だろう」と環境認識を踏まえて判断できる。ところが機械にはその「なんとなく」は通用しない。
Sラインひとつとっても、水平線を1本引けば終わりではなかった。いつ生成されたのか、何を根拠に生成されて、どの時点で確定したのか。
ヒゲで抜かれたら即座に無効になるのか、それとも終値確定まで待つのか。役目を終えた後も履歴として保持するのかどうか。
次の構造が生まれたら、旧構造いつその役目を失効するのか。
こうした問いが次々に出てきた。最初はそれぞれに条件を足せばいいと思っていた。最初は大変でもこの概念を後続へ継承できればいいと思っていたのだ。
しかし実際は違った様相を呈していた。
概念をAIとすり合わせていくたびに、コードは膨らみ、私が同じ意図で伝えた言葉が違う文脈で違う意味を持ち始めた。
Sライン、W1、FE、Terminal、NewDom。用語は増えた。境界を明らかにするためだ。しかし本当の問題は増えすぎた用語の数ではなかった。
同じ「構造」という言葉の中に、まだ候補でしかないもの、すでに成立したもの、観測は続いているが売買根拠として使えないもの、役目を終えたが一部を残すべきものが混在していた。
機能を増やしすぎたのではなくて、1つの状態として扱ってはいけないものを1つにまとめようとしていたことだと思う。
相場を、ある状態から次の状態へ順番に移るものとして扱っていた。
構造が生まれる。確定する。伸長する。目標へ到達する。終了する。次の構造へ移る。言葉で並べると分かりやすい。だが実際のチャートは、そう単純ではなかった。
価格構造が変化するタイミングと、FE観測の進行は一致しない。構造そのものは残っていても、それを売買判断に使ってよい期間は先に終わることがある。
逆に、売買対象としてはすでに役割を終えていても、「なぜここまで相場をそう解釈していたのか」を説明する履歴としては残す必要がある。新しい構造が発生した瞬間に、旧構造の説明権が完全に失われるとも限らない。
相場は状態から状態へ移行する時に、兆しを示しながら変化する。グラデーションだ。
しかし本質的な捉え方で言えば、この解釈は2次元的だ。実際には波の起こりの時点で、多層化していたのだ。
これはカオス波動という私に定義による解釈だ。無数の可能性を持ったあり得た未来を圧縮された領域。波の進行と共に分岐し、収束し、より大きな波へと遷移していく。
一本の状態遷移だけで相場を表現すること自体に無理があったのだ。
構造には構造の時空がある。FEにはFEの時空がある。観測寿命には観測寿命の時空がある。
そして「今この相場をどの構造が説明しているのか」という説明権にも別の時空がある。
1つのチャート上で、複数の時空が同時に進んでいた。チャートは思ったよりも多層化されており、その起こりと遷移のタイミングや帰結までもがオーバーラップしていたのだ。
過去に存在した構造がある。それは事実として履歴に残せる。だがその構造がすでに失効しているなら、現在の売買根拠として使ってはいけない。
トレーダーとしては当たり前の区別だが、機械の中では意識して分離しなければならないのだ。
「過去に観測した」ことと「現在も有効である」ことは別だ。
「現在も観測対象である」ことと「売買に利用してよい」ことも別なのだ。
このあたりの再認識から、EAというより何か別のものを作っているような感覚が強くなっていった。
ここで大きな判断をした。ver.1を直し続けるのをやめたのだ。
積み重ねてきた試行錯誤には価値がある。だから正解として継ぎ足し続けることはやめても、資料としては手放さないでいい。旧コードはLegacy Baselineとして扱う。ver.2は、コードからではなく理論の側からもう一度組み立て直すことにした。
理論原点から始まり、観測語彙を経て概念状態モデルの定義に進んだ。証拠と認識時刻、観測寿命を求めて境界を明らかにした。
親子関係、所有関係、説明権といった細部まで整える。出力契約や受入ケース、機械仕様。そして最後に実装へつ繋ぐ。
以前とはほぼ逆なんだ。ver.1は「この条件ならこの処理をする」という形で理論をコードに落とそうとした。
ver.2は先に決める。そもそも機械は何を観測したことになるのか。いつそれを知ったことにするのか。その認識はいつまで有効なのか。何が起きたら捨てるのか。次の構造へ何を引き継ぐのか。コードは最後に来るべきだった。
作ろうとしているものの性質も少し変わったように思う。
最初は構造否定フラクタル手法をEA化することが目的だった。
条件を満たせばエントリー、条件を失えば見送り、目標へ到達すれば利確。最終的には売買へ接続する。
それは変わらない。だがその前段階に、もっと根本的なものが必要だったのだ。
昨日まで、相場をどの構造で説明していたのか。その説明は今日も維持されているのか。何が起きたことで、その説明は否定されたのか。
新しい構造候補は、まだ候補なのか、すでに説明権を持ったのか。判断できないとき、本当に「判断不能」と言えるのか。
こういうことを追跡できるシステムでなければ、売買だけ自動化しても意味がない。今はそう考えている。
「上がるか下がるかを予測するEA」ではない。「条件が一致したら売買するだけのEA」でもない。相場についての仮説が、どう生まれ、どの証拠で維持され、どの出来事で否定され、次の説明へ引き継がれていくのか。それを観測するシステムだ。
ここまで書いてみると、面白い状況になっていると気づいた。
私はEAに自分の相場理論を教えているつもりだった。しかし実際には、作る過程でこちらが問い返されていた。
私は何を構造と呼んでいるのか。何をもって成立とみなしているのか。整合しているとはどういう状態なのか。説明できない状態を、本当に説明できないまま保持できているのか。
人間は曖昧さを抱えたまま行動できる。それは強みでもあるが、自分でも気付かずに定義をすり替えられるということでもある。EAはそこを許さない。条件を書けば、条件通りにしか動かない。だから自分の中にあった曖昧さが、容赦なく表に出てくる。
ver.1からver.2への移行は、バージョンアップではない。手法をコード化する作業から、自分が相場をどう認識しているのかを一度分解して組み直す作業へ変わった。今はその途中にいる。
以前書いた「構造否定フラクタル」や「整合性の正体」も、この開発を通して少しずつ見え方が変わり始めている。構造とは何か。整合性とは何か。カオスをどう扱うべきか。もう少し深いところまで書けそうな気がしている。
それについては、また改めて。
EAを作っていたら、自分が相場をどう見ているのか分からなくなった話――構造否定フラクタルEA ver.1からver.2へ
Tagged in :
Author Profile

SINONOME
波の完成形を見たい波形トレーダー