「買ったEAのロットの決め方だけ変えたい」「時間帯のフィルターを足したい」——こうしたご相談は多い。話としては小さいし、直す作業そのものは半日で終わることもある。
ただ、着手の前に確かめることがある。直してよいものかどうかと、そもそも直せる形で手元にあるかどうかだ。この二つは別の話で、どちらか片方が欠けているだけで依頼が成り立たなくなる。
しかも両方とも、相談する前に自分で確かめられる。今回はその順番を並べていく。確かめた結果「頼めない」と分かることもあるが、そのときに残る道も最後に書く。
手元にあるのは、どちらのファイルか
まずEAの置いてあるフォルダを開く。実体は二種類ある。.mq4 と .mq5 が人の読める形、.ex4 と .ex5 が端末の動かす形だ。前者があれば中身を読んで直せる。後者しか無ければ、中身は読めない。
配布されているEAは、たいてい後者だけで渡される。作り方を明かさないためだ。買った側から見ると、ファイルはある、動いてもいる、なのに一文字も直せない、という状態になる。ここが最初の分かれ道になる。
例外もある。ソースはあるが開くのにパスワードが要るもの、一部だけが公開されているもの、拡張子は .mq5 でも中身は別のファイルを呼んでいるだけのもの。名前だけで決めつけず、実際に開けるかどうかまで見ておきたい。
作者との約束を、先に読む
ファイルの形がそろっていても、次の門がある。元の作者との約束だ。販売ページの説明、同梱されている説明書、購入したときのメール。このどこかに、たいてい書いてある。
よく置かれているのは、改造の禁止・再配布の禁止・第三者への譲渡の禁止・使える口座の数の制限あたりだ。無料で配られているものにも使用条件が付いていることがある。何も見当たらない場合は、配った人に一言聞くのがいちばん早い。
見落としやすいのは、買ったのが「使う権利」であって中身そのものではない場合がある、という点だ。手元にあるから自由に扱ってよい、とはならない。ここを飛ばすと、直したあとで人に渡せない、売れない、という話になる。
「お金を払ったのだから自由に使える」——使えるのはそのとおりで、書き換えてよいかどうかは別に書いてある。
口座番号と期限が埋まっている場合
配布されるEAには、動く条件を中に埋め込んだものがある。特定の口座番号でしか起動しない。ある日付を過ぎると新規を出さなくなる。買ったときの端末でしか動かない。
これは壊れているのではなく、そう作られている。外側の設定をいくら探しても、該当する項目は出てこない。口座を移した、業者を変えた、デモから本番に切り替えた——そのタイミングで急に黙るなら、まずここを疑う。
見分けはログに出ることが多い。起動した直後の一行に、その口座では使えない旨の文字が出ていれば、それが答えだ。何も言わずに新規だけ出さなくなる作りもあるので、その場合は作者に聞くしかない。埋め込まれた条件を外から解くのは、作った人にしかできない。
呼んでいる部品ごと、引き継げているか
EA本体だけをコピーして動かない、というご相談も多い。EAが一人で完結していないからだ。判定に自作のインジケーターを使っている。外部のライブラリを呼んでいる。設定値を別のファイルから読んでいる。
置き場所はそれぞれ違うフォルダになる。EAだけを新しい端末へ移すと、この周りが丸ごと抜ける。抜けたときに何も言わずに止まる作りのほうが多いので、原因が分かりにくい。
部品が第三者の作ったものだと、その部品にも別の約束が付いてくる。有料のインジケーターを呼ぶEAを誰かに譲ると、EAは譲れてもインジケーターは譲れない、ということが起きる。
移す前のフォルダは、上書きせずに日付をつけて別に残しておきたい。動いていた頃の状態が残っていないと、後からどこが変わったのかを誰も確かめられない。設定ファイルとログも一緒に取っておく。直す側から見ると、これがあるかどうかで手間がまるで変わる。
MT4のものをMT5で動かしたいとき
これは頼まれる回数が多いので、分けて書いておく。結論から言うと、.mq4 は MT5 でそのままは動かない。少し書き換えれば済むという量ではなく、作り直しに近い。
注文の扱い方の考え方が違うからだ。MT4は一つひとつの取引を番号で追う。MT5は注文と、その結果できたポジションを分けて持ち、まとめた形で送る。決済の考え方も変わる。ここに触れている部分は、書き方の置き換えではなく組み直しになる。
見た目の動きを合わせることはできる。ただし同じコードを少し直す作業ではないので、費用と期間はそのつもりで見ておいたほうがいい。判断の材料は二つ。いま使っている口座がどちらの端末なのか。呼んでいる部品がどちらの側にあるか。部品がMT4用のインジケーターなら、そちらも一緒に移すことになる。
頼めないと分かったときに残る道
ここまで見て「改造禁止だった」「ソースが無い」となることはある。そのときに取れる手は三つある。
一つめは作者に頼む。中身を知っている人がいちばん速い。口座番号の書き換えも期限の延長も、作った本人ならすぐ終わる。二つめは外側の設定で届かないか探す。ロットの固定、時間帯、銘柄名の末尾は、入力の項目として外に出ていることが少なくない。ここで足りるなら中身を触る必要はない。
三つめが、ルールを自分の言葉で書き直して、そこから組み直す道だ。入る条件、出る条件、使う指標と期間、時間足、ロットの決め方、触らない時間帯。この六つが文になっていれば着手できる。元のEAと完全に同じ動きになるとは限らないのは、先に言っておきたい。内部の計算まで外からは分からないからだ。
なお、他の方が作ったコンパイル済みファイルの解析や複製は、当方ではお受けしていない。作者との約束に触れる可能性があることと、取り出したものが元と同じ動きになる保証が無いこと、この二つが理由だ。三つめの道は元を復元するのではなく、依頼者ご自身のルールとして一から作る形になる。
当方は元金融系のシステムエンジニアで、MT4・MT5のEAの改修と最適化をココナラでお受けしています。手元のファイルの拡張子と、変えたい箇所を一行だけ添えていただければ、直せる形かどうかの確認から承ります。「これは頼めるものなのか」という段階で構いませんので、ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。