12年の裁量ロジックを「AIにコードを書かせて」EAにした全工程 ― ゴールドEA「Arsene」開発記

ゴールドEA

FX歴12年、システムトレーダーのRYOです。

これまでこのブログでは、自分の12年の裁量ロジックを詰め込んだゴールド(XAUUSD)の自動売買EA「Arsene(アルセーヌ)」について、検証結果(純益4.5億の裏に相対ドローダウン81%、固定ロットの素の実力はPF1.41、16年全期間でPF1.08)や、設計思想(なぜゴールド・ロング専用・押し目スキャル・5戦略アンサンブルなのか)を書いてきました。

今日は、まだ一度も書いていない角度の話をします。「で、それを実際にどうやって作ったの?」 という、制作プロセスそのものの話です。

最初にハッキリさせておきたいことがあります。Arseneは「AIが考えたEA」ではありません。戦略の中身――どの相場を狙うか、どの押し目を拾うか、どう損切りするか――は、全部、僕の12年の裁量判断です。AIにやってもらったのは、その頭の中のルールを、MQL(MT4/MT5が動くプログラミング言語)のコードに翻訳する作業、つまり「コーダー(実装担当)」の役割です。

この区別はものすごく大事なので、先に強調しておきます。世の中には「AIにEAを丸ごと考えさせる」という別物の取り組みがあって、僕もそれは”AI実験EA”として完全に別シリーズで検証しています(戦略すらAIが作ったものを、忖度なくバックテストする企画。Arseneとは全くの別物です)。今日の話は、その対極。「戦略=人間(僕)、実装=AI」という分担で作った、Arseneの開発記です。

Arseneは販売していません。これは検証と制作の記録です。


結論を先に:AIは「優秀なコーダー」だが「相場観ゼロの新人」でもある

長くなるので、今日の結論を先に置きます。

  1. AIは実装(コーディング)を劇的に速くした。 頭の中にあった裁量ルールを、ものの数時間でMQLの動く形にしてくれた。ここは本当に便利だった。
  2. でもAIは相場観を一切持っていない。 「なぜこの押し目を見送るのか」という判断の意図は、人間が言語化して渡さない限り、AIには絶対に出てこない。戦略の質は、僕がどれだけ自分のロジックを言語化できたかで決まった。
  3. 一番きつかったのは「コードの誤り」ではなく「自分の裁量の曖昧さ」。 言語化してみて初めて、自分が無意識でやっていた判断のいい加減さに気づかされた。AI化の本当の作業は、コーディングではなく”自分の言語化”だった。

ここから、工程を順番に書いていきます。


工程1:12年の裁量判断を「言葉」にする(一番苦しい工程)

EA化と聞くと、いきなりプログラミングの話を想像するかもしれません。違いました。最初にして最大の山は、コードを1行も書く前の「言語化」でした。

僕は12年、ゴールドのチャートを見て裁量でトレードしてきました。「あ、この押し目は来る」「これはダメ、見送り」という判断を、半ば体で覚えた感覚でやっていた。問題は、その感覚は、僕の頭の中にしか無く、しかも本人ですらハッキリ言葉にできていなかったことです。

EAは曖昧な感覚では動きません。機械は「なんとなく良さそう」を実行できない。だから、自分の判断を全部こう問い直す作業から始まりました。

  • 「この押し目は来る」と思うとき、自分は具体的に何を見ているのか?(勢い?売られすぎ?それまでの上げ方?)
  • 「見送る」と判断するのは、どういう条件が揃ったときか
  • 損切りするのはどの状態になったときか。利確で抜けるのは何が起きたときか

これを言葉に落とそうとして、愕然としました。自分でも明確に説明できない判断が、山ほどあったんです。「同じような形でも、ある日は入って、ある日は見送っている。その違いは何だ?」と自問して、答えに詰まる。12年やってきたのに、です。

この工程で痛感したのは、AIにEAを作らせる作業の本体は、コーディングではなく”自分の暗黙知の発掘”だということでした。ここが曖昧なままだと、どれだけAIが優秀でも、出てくるEAは「曖昧なルールを忠実に実装した、曖昧なEA」にしかなりません。AIは僕の言語化以上のものは絶対に作れない。戦略の上限は、僕の言語化の精度で決まる。 これは作る前には分かっていませんでした。

設計思想の記事で「押し目買いの本質は、どの押し目を見送るかだ」と書きましたが、あの一文も、この言語化の苦闘の中から出てきたものです。


工程2:言語化したルールを「AIにMQLコードへ翻訳させる」

裁量判断を、なんとか「条件と手順」の形まで言葉にできたら、次がいよいよ実装です。ここで初めてAIの出番が来ます。

僕がやったのは、ざっくり言うとこうです。「こういう条件のときに買い、こういう状態で利確、こういう状態で損切り」という日本語のルールを、AIに渡して、MQLのコードに書き起こしてもらう。

ここは、正直に言って革命的に便利でした。

  • 昔なら、自分でMQLの文法を調べながら何日もかけて書いた(あるいはプログラマーに発注した)コードが、会話で要件を伝えるだけで、数時間で動く形になる
  • 「ここの利確条件をこう変えたい」と言えば、その場で書き直してくれる。試行錯誤の回転速度が、桁違いに上がった
  • 自分が思いつかなかった実装上の注意点(例:1分足での計算負荷、同時に複数ポジションを持つときの処理)を、AIが先回りで指摘してくれることもあった。

12年前の自分が聞いたら信じないと思います。「頭の中のロジックを、しゃべるだけで動くEAになる」なんて。実装のハードルが劇的に下がったのは間違いなく、AIを使った一番の恩恵でした。

ただし――ここからが本題です。便利さの裏で、何度も詰まりました。


工程3:AIに実装させて「詰まった」ところを正直に書く

「会話だけでEAができるなら、誰でも作れるじゃないか」と思うかもしれません。実際はそんなに甘くなかったので、詰まった箇所を正直に書きます。

詰まり1:AIは「指示した通り」に書くが、「意図した通り」には書かない。
一番多かったのがこれです。僕が「押し目で買う」と曖昧に伝えると、AIはそれっぽく動くけど、僕の意図とは微妙にズレたコードを返してくる。AIは僕の頭の中を読めないので、言葉にした部分しか実装できない。結果、「動くんだけど、これは僕のやりたかった押し目買いじゃない」というものが何度も出てきました。直すたびに、自分の指示がいかに曖昧だったかを思い知らされる。工程1の言語化の甘さが、ここで全部ツケとして回ってきました。

詰まり2:相場観の欠落を、コードでは埋められない。
AIは「なぜこの条件なのか」を理解していません。だから、僕が条件Aと条件Bを組み合わせた意図(Aの騙しをBで弾く、という設計思想の記事に書いたアンサンブルの発想)を、AIは”ただの2つの条件”としてしか扱えない。「ここは効率化できますよ」とAIが良かれと思って簡略化した結果、僕が一番大事にしていた”見送りの判断”が消えていた、なんてこともありました。効率的なコードと、相場的に正しいコードは、別物です。ここは毎回、人間がチェックして戻す必要がありました。

詰まり3:「動く」と「正しい」は全く違う。
AIが書いたコードは、たいてい一発で「動き」ます。でも「動く」と「意図通りに正しく動く」の間には、深い溝がある。バックテストを回して初めて「あれ、想定と違う場所でエントリーしてる」と気づく。コードのエラーで止まるなら、まだ分かりやすい。一番怖いのは、エラーも出さずに静かに”間違った正解”を出し続けるコードでした。これを見抜くには、結局、相場を分かっている人間が一つずつ検証するしかありませんでした。

つまり、AIは実装を速くしてくれたが、「正しさの番人」は最後まで人間(僕)の仕事だったということです。


工程4:検証して、ダメなロジックを「削る」

コードが動く形になったら、次はひたすら検証です。ここでやったことの中心は、足すことではなく「削ること」でした。

最初に言語化した裁量ルールの中には、自分では「効いている」と信じていたけど、バックテストで検証したら、実は何の役にも立っていなかった(むしろ足を引っ張っていた)ロジックが、いくつもありました。

これが、自分一人の裁量では絶対に気づけなかった部分です。裁量トレードだと、勝ったトレードは記憶に残り、負けたトレードは「相場が悪かった」で流してしまう。人間の記憶は都合よく歪みます。でも、EA化してバックテストにかけると、「そのルールが本当に貢献しているか」が、感情抜きの数字で出る

「これは自分の必殺技だ」と思っていた条件を外してみたら、成績がほとんど変わらなかった――つまり思い込みだった、というケース。逆に、なんとなく付けていた地味な条件が、外すと成績がガクッと落ちた――こっちが本当の柱だった、というケース。検証は、12年の自分の裁量を、容赦なく棚卸しする作業でした。

ここでの僕のスタンスは一貫していて、「自分のロジックでも、検証で価値が確認できないものは削る」。思い入れで残さない。これは、検証記事でずっと書いてきた「数字を盛らない」と同じ姿勢の、開発側のバージョンです。作る段階でも、自分に都合の悪い結果を受け入れる。そうやって、曖昧で過剰だった初期の塊から、贅肉を削ぎ落としていきました。

(※削った結果、最終的にゴールド・M1・ロング専用・押し目スキャル・5戦略アンサンブルという形に落ち着いた理由=”なぜこの設計か”の思想面は、別記事「Arseneの設計思想」で詳しく書いています。この記事はあくまで”どう作ったか”の工程の話です。)


改めて:これは「AI製EA」とは別物です(混同しないでほしい)

ここまで読んでもらうと、Arseneにおける「人間とAIの分担」が見えたと思います。最後にもう一度、整理させてください。

工程 担当
どの相場を狙うか(戦略の核) 人間(僕の12年の裁量)
どの押し目を拾い、どれを見送るか 人間(言語化が一番の難所)
ルールをMQLコードに翻訳 AI(コーダーとして/劇的に速い)
コードが意図通りか検証 人間(正しさの番人)
ダメなロジックを削る判断 人間(数字で容赦なく棚卸し)

AIがやったのは、表の3行目――翻訳(コーディング)の高速化です。戦略を考えたわけでも、相場を判断したわけでもありません。Arseneの優位性(や弱点)の出どころは、全部、僕の12年の裁量側にあります。

なぜここをしつこく言うかというと、巷で「AIが作った最強EA」みたいな言葉が独り歩きしているからです。僕自身、「AIにロジックごと考えさせたEAは、忖度なく検証したらどうなるのか」を、Arseneとは完全に別の実験シリーズとして進めています。そっちは「AIが戦略を考える」企画。Arseneは「人間が戦略を考え、AIは実装だけ」。同じ”AIを使った”でも、中身は正反対です。この2つを混同してほしくない、というのが、今日この開発記を書いた一番の動機でもあります。


まとめ:AI化の本体は「コーディング」ではなく「自分の言語化」だった

長くなったので、開発記の要点をまとめます。

  • AIは優秀なコーダー。 頭の中のルールをMQLコードにする速度は、革命的に上がった。実装のハードルは確実に下がった。
  • でもAIは相場観ゼロの新人。 「なぜこの判断なのか」は人間が言語化しない限り出てこない。戦略の質は、AIではなく僕の言語化の精度で決まった。
  • 一番きつかったのは、コードの誤りではなく、自分の裁量の曖昧さ。 AI化の本当の作業は、コーディングではなく「自分の暗黙知の発掘と棚卸し」だった。
  • 検証では足すより削った。 「効いていると思い込んでいたロジック」を、数字で容赦なく外した。
  • だから、Arseneは”AI製EA”ではない。 戦略は人間、実装だけAI。AIにロジックごと考えさせる実験は、完全に別シリーズでやっている。

「AIを使ってEAを作った」と聞くと、ボタン一つで聖杯が出てくるような響きがあります。実際は逆でした。AIは、自分が12年で何をやってきたのかを、嫌というほど言語化させられる鏡でした。便利な道具を手にしたからこそ、「結局、戦略を持っているのは人間側だ」と痛感した――それが、Arseneを作って一番残った実感です。

Arseneの検証の続報(過剰最適化の宿題への取り組みや、全天候型「Noir」の開発状況)も、引き続き正直に書いていきます。


注記(必ずお読みください)

  • 本記事はArseneの制作プロセス(人間が戦略を設計し、実装にAIを活用した過程)の共有を目的としたもので、具体的なパラメータ・しきい値・内部ロジックの数式は開示していません。
  • Arseneは「AIが戦略を考えたEA」ではありません。戦略はRYO本人の裁量ロジックであり、AIは実装(コーディング)に活用したものです。AIに戦略そのものを考えさせる取り組みは、これとは別の実験シリーズとして検証しています。
  • 本記事で触れたバックテスト結果(PF1.41・PF1.08・相対DD81%・複利での純益など)は、特定の検証条件(XMTrading実データ・XAUUSD・M1・各期間・変動スプレッド・モデリング品質99.9%)における過去の結果であり、将来の成果を保証するものではありません
  • FX・自動売買にはリスクが伴い、元本割れ(損失)の可能性があります。投資は自己責任で、余裕資金の範囲で行ってください。
  • 本記事は特定のEA・通貨の売買を推奨するものではなく、検証・制作の記録の共有を目的としています。

コメント

タイトルとURLをコピーしました