どうもこんにちは。戦術トレードラボのラボ長です。
AIを使えば、プログラミングができなくてもEAは作れます。
私も非エンジニアの兼業トレーダーですが、Claude Codeで自分の手法のEAを作っています。
ただ、やってみて一番時間がかかったのは、コードではありませんでした。
自分が「目」でやっている判断を、言葉にすることです。
この記事では、これからEAを自作する方に向けて、AI(やプログラマー)に渡す「仕様書」の書き方をまとめます。
最後に、コピーしてそのまま使えるテンプレートも載せています。
なぜ「仕様書」が必要なのか
AIに「私の手法はこうです」と話しかけると、会話の上ではとても的確に返してくれます。
「完全に理解しました」くらいの勢いで、EAもすぐにできあがります。
ところが、売買した場所をチャートに描かせてみると、まるでチグハグ。
私はこれを、何度も経験しました。
原因の多くは、同じ言葉を、私とAIが少しずつ違う意味で使っていたことでした。
たとえば私が「下降」と言ったとき、AIは上昇の途中の小さな戻りまで「下降」に含めていました。
そして振り返ってみると、私自身も言葉を正しく使わずに説明していたんです。
会話だけで進めると、このズレは最後まで表に出てきません。
だから、判断のルールを一か所に、項目ごとに書いた文書が必要になります。それが仕様書です。
仕様書があると、次のようなメリットがあります。
- AIに毎回同じ前提で作業してもらえる(会話が長くなっても、前提がぶれにくい)
- 「言ったつもり」と「実際に書いたこと」の差に、自分で気づける
- バックテストの結果がおかしいとき、仕様とEAのどちらがズレているのかを切り分けられる
仕様書を書くときの5つのコツ
1. 言葉の「定義」から書く
いきなり条件を書く前に、手法の中で使う言葉を定義します。
「トレンド」「押し目」「転換」「レンジ」のような言葉ほど、人によって指す範囲が違います。
悪い例と良い例を並べると、こんな感じです(移動平均線を使う、架空の手法の例です)。
| あいまいな書き方 | 定義した書き方(例) |
|---|---|
| トレンドが出ていたら | 1時間足の終値が、移動平均線より上で3本続いたら「上昇」と呼ぶ |
| 押し目で買う | 「上昇」のあいだに、終値が移動平均線に触れたあと、次の足が陽線で確定したら |
| 大きく動いたら利確 | 直近の高値に達したら、半分を利確する |
数字はあくまで例です。大事なのは、誰が読んでも同じ場所を指せるかです。
2. 「その時点で分かる情報」だけで書く
これは、私が一番やらかしたポイントです。
チャート画像を見ながら「ここが正解」とAIに伝えていたのですが、あるとき気づきました。
「これ、この先の値動きを見て決めた感がある」
その時点では分からないはずの情報を使って正解を作っていたので、EAが私に合わせられるはずがありませんでした。
自分で付けた正解を、自分で撤回することになりました。
仕様書の条件は、すべてその足が確定した時点で、確かめられることで書きます。
「あとから見れば高値だった場所」は、EAには分かりません。
プログラムの世界では、先のデータを使ってしまうことを「未来参照」と呼びます。バックテストの成績が不自然に良いときは、まずこれを疑ってください。
3. 「なんとなく」を洗い出す
裁量トレードには、言葉にしていない判断がたくさん混ざっています。
- 指標発表の前は、なんとなく入らない
- 値動きが荒いときは、なんとなく見送る
- 週末は、なんとなくポジションを軽くする
こうした判断も、EAには書かないと伝わりません。
自分のトレード記録を見返して、「なぜここは入らなかったのか」を1件ずつ書き出すと、隠れたルールが見つかります。
4. 数字で表せない判断は、無理に置き換えない
言葉で伝わらないなら、数字で表せる指標に置き換えればいい。
私もそう考えて、波の大きさを測る物差しを11通り試してもらいました。
結果は、どれも私の目を再現できませんでした。
私は指標を見て判断していたわけではなかったので、別の物差しで言い換えても、ずれるのは当たり前だったんです。
置き換える前に、自分が本当は何を見て判断しているのかを突き止めるのが近道でした。
5. 「正解データ」を用意する
言葉にしきれない部分は、自分がチャートに付けた印を正解として渡すのが有効でした。
私は、チャートに手書きで「ここ」と印を付けた場所だけでトレードしたらどうなるかを、AIにシミュレーションしてもらいました。
それはちゃんと合っていて、「自分の目は機能している」と確かめられました。
そこから、その印に合わせて判定を作り直していきました。
正解データを作るときも、コツ2と同じでその時点で見えている情報だけで印を付けます。
仕様書に書く項目
EAの仕様書に入れておきたい項目を、一覧にしました。
| 項目 | 書くこと |
|---|---|
| 基本情報 | 通貨ペア、時間足、取引する時間帯、同時に持つポジションの数 |
| 用語の定義 | 手法の中で使う言葉と、その意味(コツ1) |
| 相場の状態の判定 | 上昇・下降・様子見などを、何で判定するか |
| エントリー | どの足が確定したら、成行か指値か、同じ方向に重ねて入るか |
| 損切り | どこに置くか、あとで動かすか(建値に移すなど) |
| 利確 | どこで出るか、分割するか、途中で条件が崩れたらどうするか |
| ロット | 1回のトレードで失ってもよい金額(資金の何%か) |
| やらないこと | 指標発表の前後、週末、スプレッドが広がったとき など |
| 確認方法 | 売買した場所をチャートにどう描くか、何と比べて「正しい」とするか |
| 未決事項 | まだ決めていないこと。空欄にせず「未定」と書く |
ロットについて一つ補足です。
1回の損失を資金の一定割合におさえる考え方では、ざっくり次のように計算します。
ロット数 = 許容する損失額 ÷(損切りまでの幅 × その通貨ペアの1ロットあたりの値動きの価値)
損切りの幅が広いトレードほど、ロットは小さくなります。
EAにする前に、この考え方を仕様書に書いておくと、あとで資金管理を変えたくなったときも迷いません。
コピーして使えるテンプレート
# EA仕様書(バージョン: )
## 1. 基本情報
- 通貨ペア:
- 時間足(判定に使う足 / 実際に入る足):
- 取引する時間帯:
- 同時に持つポジション数:
## 2. 用語の定義
- 「(言葉)」とは:
- 「(言葉)」とは:
## 3. 相場の状態の判定(足が確定した時点で判定する)
- 上昇とする条件:
- 下降とする条件:
- どちらでもないとき:
## 4. エントリー
- 買いの条件:
- 売りの条件:
- 注文の種類(成行 / 指値 / 逆指値):
- 入らない条件:
## 5. 損切り
- 置く場所:
- あとで動かすか:
## 6. 利確
- 出る場所:
- 分割するか:
- 条件が崩れたときの対応:
## 7. ロット
- 1回のトレードで許容する損失(資金の %):
## 8. やらないこと
-
## 9. 確認方法
- チャートに描くもの(矢印・線など):
- 正解データ(自分で印を付けたチャート):
## 10. 未決事項
-
AIに渡すときは、仕様書と一緒に次のひと言を添えるのがおすすめです。
- 「分からないところは、推測で埋めずに質問してください」
- 「この仕様書にない判断をコードに入れたら、必ず教えてください」
AIは、あいまいな所を推測で埋めるのがとても上手です。
上手すぎるので、こちらが頼まない限り、黙って埋めてしまいます。
仕様書を書いたあとのチェックリスト
- [ ] 仕様書の中の言葉に、定義のない言葉が残っていないか
- [ ] すべての条件が「その足が確定した時点」で確かめられるか
- [ ] 「なんとなく」やっていた判断を、書き出したか
- [ ] 損切りのないエントリーがないか
- [ ] ロットの決め方が書いてあるか
- [ ] 売買した場所をチャートに描いて、自分の目で確かめる方法があるか
- [ ] 仕様を変えたら、バージョンと変えた理由を残しているか
よくある質問
Q. 最初から完璧な仕様書を書く必要はありますか?
A. ありません。私も何度も書き直しました。むしろ「未決事項」を正直に書いておくほうが、AIが勝手に埋めるのを防げます。
Q. 仕様書そのものをAIに作ってもらってもいいですか?
A. いい方法だと思います。「私の手法について、仕様書を作るための質問を1つずつしてください」と頼むと、自分では気づかなかった抜けが見つかります。ただし、できあがった文書の中身は、必ず自分の言葉で確かめてください。
Q. 裁量の判断が、どうしても言葉になりません。
A. 無理に言葉や指標にせず、チャートに印を付けた「正解データ」を用意してみてください。EAがその印とどれくらい一致するかで、進み具合を測れます。
Q. 仕様書どおりに作ったのに、成績が悪いです。
A. まず、EAが仕様書どおりに動いているかを、チャートに描かせて確かめてください。仕様どおりなのに負けるなら、手法そのものの問題です。仕様どおりでないなら、仕様書かコードのどちらかにズレがあります。この切り分けができるのが、仕様書を書く一番の価値です。
まとめ
- EA作りで一番難しいのは、コードではなく「自分の判断を言葉にすること」
- 仕様書は、言葉の定義から書く
- 条件は「その時点で分かる情報」だけで書く
- 言葉にしきれない部分は、自分で付けた印を「正解データ」にする
- AIには「推測で埋めずに質問して」と頼む
自分の「目」を言葉にしようとして苦戦した話は、連載の第3話に書いています。
AIでEAを作る前の心構えは、AIでEAを自作する前に知っておきたい5つのこともどうぞ。
関連: 裁量をルールにする / はじめてのEA開発
連載: 第2話 / 第3話 / 第4話
※本ブログの内容は私個人の経験にもとづくもので、将来の利益を保証するものではありません。投資は自己責任でお願いします。


コメント