金曜の夜に仕掛けが揃っていたはずなのに、月曜の朝に口座を開くと何も起きていない。ログを遡ると、土曜の未明でぱたりと途切れている。原因はパソコンの更新プログラムだった——自宅でEAを動かしている方から、この話はよく届く。
相場は自分の生活とは関係なく動く。寝ている間も、出かけている間も、更新プログラムが勝手に再起動をかけている間も。EAを24時間動かすと決めた時点で、どこで動かすかは好みの話ではなくなる。仕様の一部だ。
今回は、自宅のパソコンで足りるのか、借りるなら何を見て選ぶのか、移すときに何が消えるのかを順に書いていく。EAの中身の話は出てこない。置き場所だけの話だ。
止まっている間のことは、記録にも残らない
自宅のパソコンでEAを動かすこと自体はできる。実際にそうしている方はいる。厄介なのは、止まったときに誰も教えてくれないことだ。EAは落ちるときに音を出さないし、翌朝チャートを開くまで気づく手立てが無い。
落ちる場面は探せばいくらでもある。更新プログラムの再起動。スリープ。ノートパソコンを閉じた。停電。回線の瞬断。どれも数分から数時間の話で、そのほとんどは自分が見ていない時間に起きる。
長さが問題なのではない。その数分に条件が揃っていたのかどうかを、あとから確かめられないことのほうが重い。出なかった注文はログに残らない。動かなかったという事実だけは、どこにも記録されない。成績が想定とずれたとき、ロジックの問題なのか電源の問題なのかを切り分ける材料が無い。
借りる側を選ぶときに見る二つ
常時動かす環境(VPS)を借りるとなると、料金表にはCPUの数や台数が並ぶ。ただ、EAの動きに効いてくるのは主に二つだ。メモリと、取引サーバーとの距離。ここを決めてから値段を見ればいい。
メモリは動かす端末の本数で決まる。MT4とMT5を並べ、口座も複数となれば一本ずつ積み上がる。ここで他人の書いた必要量をそのまま借りないほうがいい。載せるチャートの数もEAの作りも人によって違う。自分の環境で測るほうが早い。
足りないとどうなるかというと、いきなり落ちるわけではない。先に重くなる。チャートの更新が遅れ、判定が一拍ずれる。落ちてくれれば気づくが、遅いだけの状態には気づきにくい。少し余らせておく。
もう一つの距離は、取引サーバーとの物理的な近さだ。注文は往復の通信で成立するので、遠いほど時間がかかる。効くかどうかはEAの性格による。日足で持ち越す作りなら気にしなくていい。分足で薄い値幅を取りにいくなら効く。口座の業者が東京にサーバーを置いているなら、借りる場所も東京にしておく。
再起動のあと、EAは勝手には戻らない
借りれば止まらない、という話ではない。向こうでも更新は走るし、再起動もかかる。障害も起きる。違うのは止まる回数と、止まったあとに自分で戻ってこられるかどうかのほうだ。
戻るために要るものは三つ。端末がOSの起動と一緒に立ち上がること。そのとき自動売買の許可が入っていること。EAがチャートに載った状態で保存されていること。どれが欠けても、画面だけが開いていて何も起きない状態になる。
抜けやすいのは三つめだ。端末は終了したときの状態を覚えていて、次の起動でそれを開き直す。EAを外した状態で閉じれば外れたまま起動するし、検証用のパラメータで閉じればその値のまま動き出す。
24時間動かすつもりの仕組みを、24時間は面倒を見られない場所に置いている。
あわせて、再起動を挟んだときに持っているポジションをどう扱うかも決めておきたい。自分の注文を覚え直せる作りなら再開できるが、そうでなければ同じ場所でもう一度入る。仕組みが困るのは正常に流れているときではなく、途中で切れたときだ。ここは作りの話になる。
その契約は、誰の名義になっているか
EAを作ってもらった流れで、動かす環境まで用意してもらうことがある。設置まで済んだ状態で渡されるので楽ではある。ただ、契約が誰の名義になっているかは分けて確認しておきたい。
相手の名義のままだと、支払いも、管理画面に入る権限も、解約の判断も相手側にある。連絡が取れなくなったとき、動いているのは自分のEAで、繋がっているのは自分の口座なのに、自分では何もできない。再起動もパラメータの変更も手が届かない。
契約は自分の名義で、支払いも自分。作業のあいだだけ相手に入ってもらい、終わったらパスワードを変える。取引口座のパスワードと同じ扱いにしておけばいい。月額が数百円違うかどうかより、こちらのほうが効いてくる。
引っ越しで消えるのは、EAではなく設定
自宅から借りた環境へ移す。借りた先を乗り換える。どちらも、EAのファイルを一つコピーすれば終わりだと思われがちだが、そうはならない。運べるものと運べないものがある。
運べるのはEA本体だ。ファイルなので、置けば動く。運べないのはそのEAをどう載せていたかのほう。どの通貨ペアのどの時間足に置いていたか。パラメータをいくつに変えていたか。どのサーバーに口座を登録していたか。新しい端末には何も入っていない。
いちばん再現できなくなるのがパラメータだ。長く回していれば少しずつ触っている。最後に触った値は記憶では出てこない。移す前にプリセットとして保存し、いつ時点のものかを添えて残す。数値だけを書き写すと、あとから「これはいつの設定か」が分からなくなる。
口座の登録も業者名だけでは足りない。同じ業者にサーバー名が複数並ぶ。リアルとデモ、口座タイプごとに別のものがあるので、似た名前を選んで別の口座に繋いでしまう。いま繋がっているサーバー名を、そのまま控えておく。
旧い側を止めてから、新しい側を動かす
移行でいちばん多い事故がこれだ。新しい環境で動くのを早く見たくて先に立ち上げ、古いほうはまだ落としていない。この数時間のあいだ、同じ口座に同じEAが二つ繋がる。
二つあると同じ条件で二回入る。数量は想定の倍だ。段階的に増やす作りなら増え方まで倍になる。決済も噛み合わなくなり、片方が閉じたポジションをもう片方が探しにいく。管理番号が同じなら、二つのEAはお互いの注文を自分のものだと思い込む。
順番はこうする。古い側でEAをチャートから外す。自動売買を切る。端末を終了する。それから新しい側で口座に繋ぎ、まずデモか最小の数量で一本通す。動くのを見てから本番の設定に戻す。重なる時間をゼロにするのは難しいので、重なっている間はどちらも発注しない状態にしておく。
そして古い側は、すぐに消さない。残しておけば、新しい側で何かおかしいときに動いていた頃の設定を見に戻れる。消すのは、新しい側が何日か問題なく回ってからでいい。
当方は元金融系のシステムエンジニアで、ココナラでMT5のEA開発をお受けしています(MT4は移植・改修のご相談から承ります)。再起動を挟んでも状態を見失わない形や、切れたときの振る舞いは、開発の段階で決めておく部分です。動かす環境がまだ決まっていなくても構いません。ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。