木曜の夜、テクニカルのサインは出ていたのに、注文が入っていない。エキスパートタブを開くと、その時刻に「AI:見送り」と一行だけ出ている。何を見て見送ったのか、そのときAIにどんな値を渡していたのかは、どこにも残っていない。
AIを組み込んだEAでいちばん落ち着かないのは、この場面だと思う。テクニカルだけのEAなら、入らなかった理由は条件の数字を追えば出てくる。AIが間に入ると、その道が途中で途切れる。記録が無ければ、確かめることも直すこともできない。
今回は、AI搭載EAが1回の判断ごとに何を残しておけばよいかを並べていく。残す項目、理由の返させ方、見送りを残す意味、置き場所の順に見る。残したログをどう読むかは別の話になるので、ここでは残し方までにとどめる。
同じ相場なら、同じ答えが返るのか
同じ相場を見せ、同じ指示文を送っても、AIが毎回同じ答えを返すとは限らない。返事はその場で作られていて、後から同じ問いを投げ直しても、当時の答えが戻ってくる保証はない。テクニカルの判定なら計算し直せば同じ値が出るが、AIの判定には計算し直す手がない。
モデルもいずれ替わる。提供が終わったモデルには、同じ問いを投げることすらできなくなる。半年前の見送りを確かめようとしても、答えた相手がもういない。AIの判断は、その場で書き留めた分しか後に残らない。判断ログが要るのは、AIの答えがこういう性質のものだからだ。
1回の判断につき、1行
残す単位は、AIに1回問い合わせるごとに1行。その1行に11の項目を横に並べる。時刻・銘柄・足・AIに送った値・AIの判定・判定の理由・モデル名・指示文の版・発注したか・応答にかかった時間・エラーの有無。
並べると多く見えるが、中身は5つのまとまりに分かれる。いつ、どの相場について聞いたか。何を送ったか。何が返ってきたか。どのモデルが、どの版の指示文で答えたか。そしてEAが最後にどう動いたか。どれか一つが欠けると、ほかがそろっていても、その判断を説明できなくなる。
送る文には、テクニカルのサインがどちら向きだったかも入れておく。買いのサインに対してAIが見送ったのか、逆の向きを返したのかが同じ行から読めるので、テクニカルとAIの判定が割れた回も、ここから数えられる。
応答にかかった時間とエラーの有無は、省かれやすい項目だ。当方の標準の作りでは、返事が得られないときや、崩れた返事を捨てたときは、テクニカルの判定だけで動き続ける。その回は、AIの判定を経ずに注文が出る。エラーの欄が無いと、AIが同意して出た注文と、AI抜きで出た注文の見分けがつかない。
理由は一行、決まった形で返させる
判定の理由は、AIに自由に書かせない。返させるのは「判定」と「理由」の2項目で、理由は一行に収める。長く書かせるほど、1回あたりの費用と返事を待つ時間が伸びていく。形が決まっていれば、判定は判定の列に、理由は理由の列に、そのまま収まる。
当方の作るAI搭載EAでは、判定と一緒に理由を返させ、見送った回も含めて毎回記録に残す作りにしている。たとえば理由の欄に「直前の足で長い上ヒゲ」と残っていれば、そのとき送った値の中に、その足が本当に入っていたかを突き合わせられる。
ただし理由の欄は、AIが判定と一緒に書いた説明であって、AIの中で何が起きたかを証明するものではない。それでも、何を根拠に見送ったと言っているかが残っていれば、送った値と噛み合っているかどうかは人の目で確かめられる。噛み合わない理由が続くなら、それ自体が直す手がかりになる。
見送った回こそ、残す
注文を出した回だけを書き出す作りにしていると、AIのしたことはほとんど残らない。テクニカルのサインに横から待ったをかけるのがAIの主な持ち場なので、働いた跡は見送りの側に溜まるからだ。見送りの行は、発注の行と同じ形で同じファイルに書く。分けて残すと、後で並べるときに手間が増える。
費用の面から見ても同じことが言える。AIへの問い合わせは、見送りで終わった回にも1回分かかっている。見送りの記録を捨てるのは、払った分の答えを読まずに捨てるのと変わらない。何にいくら払ったのかを説明できるのも、見送りの行が残っていればこそだ。
見送りが残っていないEAは、外から見ると「入らないEA」にしか見えません。サインがそもそも出なかったのか、サインは出たがAIが止めたのか。見送りの行が残っていれば、入らなかった場面のうち、どれがAIの判断によるものかを数えられます。
置き場は、日付ごとのファイル
置き場は、1行1判断で日付ごとに分けたファイルにする。項目は区切り文字でそろえ、後で表計算で開ける形にしておく。MT5のEAがファイルを書き出せる場所は、MT5の決めたフォルダの中に限られる。どこに出るかは作りによるので、受け取るときに確かめておくと迷いません。
送った文と返ってきた文は、要約せずにそのまま残す。ただし原文は長いので、表で開く列には入れず、別のファイルに置く。1行ごとに通し番号を振っておけば、表の行から原文をすぐに引ける。数える用と読み返す用を分けておくと、どちらの作業も楽になる。
モデル名と指示文の版を1行ごとに書くのは、設定が途中で変わるからだ。入力と、規則の版と、結果。この3つがそろって、はじめて1件の判断として説明がつく。業務の帳票でも、金額だけを残して、どの単価表で計算したかを残さないものは、後から説明がつかない。
当方は元金融系のシステムエンジニアで、MT5のAI搭載EAをココナラで開発しています。判定と理由を毎回記録に残す作りを基本に、残す項目はご依頼の内容に合わせて一緒に決めます。何を残せばいいか決まっていない段階でも構いません。ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。