「AIに相場を見せて判断させる」ところまでは決まったのに、実装に入った途端に手が止まる。プロンプトに何を書けばいいのか。直近の値動きは何本渡すのか。インジケータは入れているぶんを全部渡した方がいいのか。費用の見当がついたあと、実装の手前で止まるのがここだ。
決めることは2つしかない。AIに渡す情報と、AIに返させる形式。この2つが決まれば、あとは組み立てるだけになる。プロンプトの言い回しを練るのは、その後でいい。文章の書き方で何日も悩んでいるときは、たいていまだ材料の方が決まっていない。
逆に、この2つを曖昧にしたまま動かすと、動いてはいるが後から誰も確かめられないEAになります。半年後に「なぜこの判定だったのか」を追えるかどうかは、実装のこの段階で決まってしまいます。今回は決める順番を置いていきます。ご自身のルールに当てはめながら読んでいただければ。
決めるのは2つ、文章は後回し
渡す情報とは、AIに見せる材料のこと。値動き、インジケータの値、いま持っているポジションの状況。返させる形式とは、返答の受け取り方のこと。買いか、売りか、見送りか。それをどんな並びで返してもらうか。この2つを紙に書き出すところまでが設計だ。
この2つが実装の中身になる。プロンプトの文章は、決めた材料を決めた形で説明するための包み紙にすぎない。材料が決まらないまま文章だけ長くしても、返ってくる答えは安定しない。長い指示ほど良い答えが返る、という関係にはならない。
最初に伺うのは「その判断を人がやるとしたら、何を見ますか」だ。チャートのどこに目が行き、何を見て手を止めているか。そこに出てこないものは渡さない。判定に使わない項目は、答えを良くしないまま費用と待ち時間だけを増やす。
値だけを渡すと、後から追えなくなる
よくあるのは、価格とインジケータの値をそのまま並べて送る形。動くには動く。困るのは何か月か経ってからで、残っている記録を見ても「この判定はどの足のものだったか」が言えなくなる。答え合わせをしようとした時点で手詰まりになる。
EAは複数の銘柄で動かすこともあれば、途中で足を変えることもある。値だけの記録は、どの条件で出た答えなのかを持っていない。渡す値には銘柄・足・その値が確定した時刻を添える。三つ書き足すだけで、後から検証する手段が残る。
添えるものはもう一つある。判定を求めた時刻そのものだ。足が確定した時刻と、AIに聞いた時刻は別物になる。ふだんは数秒しか離れないが、遅れが出た日にはここが開く。分けて持っておくと、動きがおかしいときにどちらがずれたのかを切り分けられる。
直近の値動きは何本渡すか
直近N本を渡す作りにするとき、Nを大きくすれば1回の入力が伸びる。伸びた分だけ1回あたりの費用が増え、返答を待つ時間も伸びる。AI搭載EAの費用は1回いくら×何回で決まるので、渡す量はそのまま毎月の金額に効いてくる。
多く渡してから減らすのは難しい。どの材料が効いていたのかを切り分けられないからだ。少なく始めて、判定が粗いと感じたときに1種類ずつ足していく。足したことで答えがどう変わったかも、1種類ずつなら見える。まとめて足すと、また分からなくなる。
足す候補は、当てが外れた場面から拾う。そのとき自分は何を見て違和感を持ったのか、書き出してみる。出てきたものだけを候補にする。持っているから渡す、ではなく、判断に使うから渡す。この線引きで落ちる項目は、思ったより多い。
桁と単位は、渡す前にそろえる
見落とされやすいのがここだ。価格の小数の桁は銘柄によって違う。時刻はサーバの時刻なのか、日本時間なのか。率はパーセントなのか小数なのか。そろえずに渡すと、銘柄を変えたときだけ答えが変わるという、いちばん追いにくい形で出てくる。
抜けた足の扱いも先に決めておく。休場や取りこぼしで足が欠けることはある。詰めて渡すのか、欠けていると分かる形で渡すのか。決めていないと、その日だけ材料の足りない状態でAIに聞くことになり、しかもそのことが記録に残らない。
面倒に見えるが、先に1枚にまとめておくと後がまるで違う。当方は業務のシステムを作るときも同じようにしていて、外部へ渡す情報は項目と桁と単位と基準の時刻を決めてから組み始める。この1枚がないまま繋いだところは、あとになって食い違いが出てくる。
渡す形が決まっていない情報は、どこかで食い違う。
返させる形は先に決めて、外れたら捨てる
返答は自由に書かせない。判定と、一行の根拠。返す並びまで決めて、その形以外は受け取らない。受け取れなかったものは判定なしとして扱う。ここを曖昧にすると、返答が少し崩れただけで発注の処理が止まる。
崩れた返答をどう扱うか、返事が来ないときにどう動かすかは、それだけで一本の話になります。当方は返事が得られないときはテクニカルの判定だけで動かし続ける形にしていますが、止めるのか続けるのかを決めていないと、そこで止まります。ここで決めておきたいのは「決めた形以外は捨てる」という方針の方です。受け取る形が広いほど、後から入る例外の数も増えていきます。
組み立ては1か所にまとめる
最後に作り方の話を。渡す情報を文字に組み立てる処理は、1か所にまとめておく。あちこちに散らばっていると、モデルを差し替えたい、項目を1つ足したいというときに直し漏れが出る。直し漏れた側だけが古い形のまま動き続けるので、気づくのも遅れる。
あわせて、送った内容と返ってきた答えをそのまま残す。要約せず、判定だけを抜き出すのでもなく、そのまま。後になって判定の理由をたどるとき、使えるのは加工していない記録の方だ。容量が惜しくなる量にはならない。
モデルは入れ替わるし、返答の形式も変わる。1か所にまとまっていれば、そのときの手直しは短く済む。年に一度は触る前提で置いておきたい。作った直後よりも、しばらく動かした後にこの差が出てくる。
当方は元金融系のシステムエンジニアで、MT5のEAをいただいた売買ルールから開発しています。AIに渡す情報と返させる形式の設計もあわせてお受けしており、判定の基準はご依頼者さまのルールをもとに組みます。ルールが箇条書きの段階でも、何を渡すべきかの整理からお手伝いできますので、ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。