AIとMQLを書いて、AIが間違えたところを12件並べました
FX
インジ開発室
AIとMQLを書いて、AIが間違えたところを12件並べました ── コンパイルで見つかったのは1件だけ
lab.aiueo | MT4/MT5インジケーターを開発・販売
この記事でわかること
■AIと書いたMQLで、AIが間違えた12件
■それぞれの症状・見つけ方・今のルール
■12件を並べて分かったこと
12件 並べたAIの間違い | 1件 コンパイルのエラーで見つかった | 11件 コンパイルは通っていた |
MT4/MT5のインジケーターを作って、GogoJungleで販売している lab.aiueo です。
私は、組込みのC言語を20年近く書いてきました。今のインジは、AI(Claude Code)と一緒に書いています。
開発のメモには、AIが間違えたところと、そのあと決めたルールが残っています。今日は、その中から、あとで効いてきた12件を並べます。
先に、並べてみて分かったことを書きます。
ポイント
12件のうち、コンパイルのエラーで見つかったのは1件だけでした。
残りの11件は、コンパイルが通り、動いているように見えていました。
いちばん重かった1件
1. 検証スクリプトの1行が、未来の足を見ていた
- 症状:ゴールドのサインツール GD-Signal の検証で、勝率87%・PF2.21という数字が出た。商品ページと記事に載せた
- 原因:MQL4のロジックをPythonに書き直したとき、損切りを決める1行だけ、足の並びの向きを逆にし忘れた。損切りが「これから先の6本の安値」の下に置かれていた
- 見つけ方:別のサインツールをEAにしてMT4のテスターで回したら、勝率が52%しか出ず、Pythonの数字と合わなかった
- 今のルール:数字は、MT4の実機で同じ値が出るまで信じない。未来の足を見ていないかの確認は、レビューとは別に1行ずつ行う
この1行は、AIが書いたコードを、全部の行を見るレビューに通したあとでも、残っていました。GD-Signal は販売をやめました。買ってくださった方がいなかったので、実害は出ていません。
数字を間違えた
2. 過去のサインを、今の相場の状態で採点していた
- 症状:MT5版の SMC-Signal で、過去のチャートに売りの矢印しか出なかった
- 原因:過去の足を描き直すとき、上の時間足の向きを、チャートに入れた瞬間の向きで数えていた
- 見つけ方:買ってくださった方からのご連絡
- 今のルール:過去を描き直すときは、すべて「その足の時点」の情報で数える
3. ロットの切り捨てが、いつも1段小さくなっていた
- 症状:資金管理のインジ RM-LOT で、1.43ロットになるはずの計算が1.42ロットになった
- 原因:1.43÷0.01 は、コンピューターの中では142.999…になる。それを切り捨てると142になる
- 見つけ方:デモ口座で、表示の数字を1つずつ手で検算していて気づいた
- 今のルール:切り捨ての前に、ごく小さい数(0.00000001)を足す。お金の計算は、手で検算する
ファイルを壊した
4. 保存したら、文字コードが変わっていた
- 症状:MT4のソースが、Shift-JISからUTF-8に変わって保存されていた
- 原因:AIが使う編集の道具が、Shift-JISのファイルをUTF-8で書き戻した
- 見つけ方:変わったファイルに気づき、gitに残っていた最後のShift-JISの版から戻した
- 今のルール:MT4のソースは、Pythonで、Shift-JISとして読んで、Shift-JISで書き戻す
5. 置き換えのコマンドで、「\」が半分になった
- 症状:MQLの文字列の「\\」が「\」に、「\r\n」が本物の改行になった
- 原因:AIが打ったコマンドの中で、「\」が1段階分解釈されてから、Pythonに渡っていた
- 見つけ方:コンパイルのエラー。12件の中で、エラーで見つかったのはこれだけ
- 今のルール:「\」を含む置き換えは、スクリプトをファイルに書いてから実行する
6. 検証のスクリプトを、一時フォルダに置いたままにしていた
- 症状:勝率やPFの数字だけがメモに残り、それを出したスクリプトが一時フォルダにあった
- 原因:AIは、使い捨てのつもりのスクリプトを一時フォルダに書く
- 見つけ方:1の件で、元の数字を出したスクリプトを探したら、消えかけていた
- 今のルール:数字を出したスクリプトは、必ずリポジトリに入れる。数字だけをメモに残さない
画面を間違えた
7. パネルを画面の下に置くと、細い帯になった
- 症状:SMC-Signal の情報パネルを画面の下の角に置くと、背景が細い帯のようになった
- 原因:MT4で、下の角を基準にした置き方が、背景の四角では仕様どおりに動かない
- 見つけ方:チャートを見て。同じ指摘を、私は何度もしました
- 今のルール:パネルは、いつも左上を基準に置き、チャートの幅と高さから位置を計算する
8. インジを外しても、矢印とパネルが残った
- 症状:インジをチャートから外したあと、矢印・点数・パネルが残っていた
- 原因:動いている間に「残しておく」ための削除の関数を、終了するときにも使っていた
- 見つけ方:チャートを見て、私が気づいた
- 今のルール:動いている間の削除と、終了するときの削除を、別の関数にする
9. 出品の直前まで、パネルの文字がはみ出していた
- 症状:GD-Deck で、初期設定ではオフのオプション2つの行が、パネルの枠からはみ出していた。補足の文字の色も、背景に対して見にくかった
- 原因:画面で1回見ただけで、文字の幅も色の濃さも、数字で測っていなかった
- 見つけ方:私が「灰色が見にくい」と伝えたのがきっかけで、全部の行を測り直した
- 今のルール:パネルは、文字の幅を実際のフォントで測り、色のコントラストを計算してから出す
10. 左下に置いた盤面が、MT5では右下に出た
- 症状:SMC-Compass のMT5版で、左下を選ぶと盤面が右下に出た
- 原因:チャートの角を表す数字が、MT4とMT5で違う。数字をそのまま渡していた
- 見つけ方:チャートを見て
- 今のルール:角の指定は、数字ではなく名前の付いた定数で渡す
思い込みで書いた
11. 「MT4はコマンドでビルドできない」と、手順書に書いていた
- 症状:MT4のインジは、毎回MetaEditorを開いてコンパイルしていた
- 原因:AIが作った手順書に「MT4はコマンドからのビルド不可」と書いてあった
- 見つけ方:RM-LOT を作るとき、試しにMT5と同じ方法で叩いたら、そのまま通った
- 今のルール:「できない」と書く前に、試す
12. 出品の文章に、採点の要素を1つ多く書いていた
- 症状:SMC-Compass MT5 の出品フォームとアフィリエイトの紹介文に、「BOS/CHoCHを含む6要素で採点」と書いていた
- 原因:採点は5要素。BOS/CHoCHは、採点の土台に使っているだけだった
- 見つけ方:出品の素材を作っている途中で、AI自身が気づいて直した
- 今のルール:機能の説明は、マニュアルと商品ページと、数字のレベルで合わせる
並べてみて分かったこと
- コンパイルが通ることは、正しいことの証明にならない。12件のうち11件は、コンパイルが通っていた
- 見つけたのは、チャートを見た目、買ってくださった方、手で検算した数字、別の方法で出した数字だった
- AIの間違いは、エラーにならない形で出てくる。だから、確かめ方を先に決めておく
配列の向き、文字コード、小数の丸め。並べてみると、どれもAIに特有の間違いではありません。人が昔からしてきた種類の間違いを、AIも同じようにします。
違うのは、AIは速く書くことです。確かめる側が追いつかないと、間違いも速く積み上がります。
まとめ
■AIと書いたMQLの間違いを、開発のメモから12件並べた
■12件のうち、コンパイルのエラーで見つかったのは1件だけ
■いちばん重かったのは、検証スクリプトの1行が未来の足を見ていた件。全行のレビューを通っていた
■見つけたのは、チャートを見た目、買ってくださった方、手の検算、別の方法で出した数字
■間違えたら、ルールを1つ決めて、メモに残す
免責事項
本記事は、私自身の開発の記録です。特定のAIサービスやツールを勧めるもの、または否定するものではありません。投資判断はご自身の責任で行ってください。
最後まで読んでいただき、ありがとうございました。
次回BOSとCHoCHをコードにすると、「確定」をいつにするかで矢印の時刻が変わる話を書きます。