EAを指標発表の時間だけ止める3つの方法と選び方

EAを指標発表の時間だけ止める3つの方法と選び方

記事
マネー・副業
21時30分をまたいでポジションを持っていた。翌朝ログを見ると、エントリーの条件はきれいに満たされている。決済も設定どおりに走っている。EAは一つも間違えていない。ただその数十秒だけ、いつもの値幅ではなかった。

相談でよくいただくのが「指標発表の時間だけ止まるようにできますか」という一行だ。できます。ただし作り方が三つあって、かかる手間も、壊れやすさも違う。同じ「止める」でも中身が変わる。

今回はその三つと、どれを選ぶかを並べていく。あわせて、止める範囲の話も書いておきたい。ここを決めないまま「指標のときは止めて」とだけ渡すと、出来上がったものが想像と食い違う。作り手の側も、そこが埋まらないと着手できない。

手で書くか、端末に聞くか、外へ取りに行くか

やり方は三つに分かれる。一つめ、止めたい時刻を自分で書いてEAに持たせる。二つめ、端末に入っている経済指標カレンダーをEAから読む。三つめ、外部の配信元から予定を取りに行く。どれも結果は同じで「その時間は新規を出さない」だ。違うのは、その時間表をどこから手に入れるかだけになる。

そして、その違いはそのまま依存先の数になる。一つめは依存先がゼロ。二つめは端末と業者の配信に依存する。三つめは通信の設定と相手方のサーバーに依存する。依存先が増えるほど手入力は減り、代わりに黙って効かなくなる箇所が増える。どこで折り合いをつけるか、という話だ。

時刻を手で書く形が、いちばん壊れにくい

拍子抜けするかもしれないが、当方が最初に勧めるのはこれだ。「何月何日の何時何分から何分間は新規を出さない」という一覧を、パラメータとして外に出しておく。EAはその表と現在時刻を見比べるだけになる。外部と通信しない。端末の機能にも寄りかからない。だからテスターでも実運用でも同じように動く。過去に流した検証結果と、いま動いているEAが同じ計算の上に乗る。

代わりに、毎週の手入力が要る。金曜に来週ぶんを書き写して五分、というのが実際のところだ。ここで先に決めておきたいのが時刻の基準で、書き写す時刻が日本時間なのか、口座のサーバー時刻なのか。サーバー時刻は業者ごとに違ううえ、夏時間の切り替わりで年に二回ずれる。比較する場所すべてで基準を揃える。混ざったまま進むと、半年後に一時間だけずれた表で動くことになる。

もう一つ。その表は上書きしないほうがいい。指標の予定時刻や重要度は、あとから変わることがある。最新の状態に上書きしてしまうと、去年の検証を流し直したときに当時と違う場所で止まる。日付ごとに足していく形にしておけば、いつ時点の表で判断したのかが残る。

三つの作り方の違い

端末のカレンダーを読む

端末に経済指標カレンダーが入っているなら、EAからその予定を読める。手入力が消えるのが最大の利点で、指標名や重要度で絞ることもできる。「重要度の高いものの前後十五分だけ止める」が設定で書けるようになる。

ただしこれは、使える端末と使えない端末がある。世代の古い端末には仕組みそのものが無い。新しいほうでも、業者の配信設定によっては中身が空のまま返ってくる。組み込んでみたら一件も取れなかった、という結末が普通に起きる。先に自分の口座の端末で、カレンダーに中身があるかを確かめる。頼む前に見ておけば、方式の選択はその場で決まる。

あわせて見ておきたいのが、テスターの中でどう振る舞うかだ。過去に遡ってどこまで予定が取れるかは環境によって差がある。ここが空だと、実運用では止まるのにテストでは止まらないEAになる。二つの結果が噛み合わなくなると、どちらを信じるかで迷うことになる。

外から取りに行くと、増えるのは不安定さ

三つめは、外部の配信元から予定を取ってくる形だ。カレンダーが空の端末でも使えるし、業者が配信していない情報を混ぜることもできる。自由度はいちばん高い。そのぶん、動かし続けるうえで増えるものが二つある。どちらもEAの中身とは別のところで効いてくる。

一つは通信の許可設定だ。EAが外部へ問い合わせるには、端末側で相手先を許可しておく必要がある。これは端末側の設定なので、入れ直したり別のパソコンへ移したりすると消える。EA本体は正しく動いているのに予定だけ取れない、という形で出るので、原因を探すのに時間がかかる。

もう一つは相手側の障害。落ちる日はある。ここで決めておくのが「取れなかったときにどうするか」だ。取れないなら全部見送るのか、前回取れた表をそのまま使い続けるのか。取得した時刻を表と一緒に持たせて、古すぎるものは使わない形にしておくと、静かな事故がひとつ減る。
取れなかったこと自体より、取れていないのに動き続けることのほうが困る。

何の指標かを、当てにいかない

予定表を持たない道もある。値動きが荒いこと自体を条件にして降りる形だ。直近の足の値幅が普段の何倍か。スプレッドが普段の何倍に開いているか。基準を超えている間は新規を出さない。指標の名前も時刻も見ない。

利点は、カレンダーに載らない出来事にも効くことだ。要人の発言、突然の報道、参加者の少ない時間帯。予定表で止められるのは予定されたものだけで、当日になって決まったことは載らない。値動きのほうを見ていれば、理由が何であっても扱いは同じになる。

弱点もはっきりしている。荒れてから反応するので、発表の瞬間には間に合わない。それと「普段」を数字で決める必要がある。過去何本の平均値幅に対して何倍か、スプレッドは何倍か。ここを置かずに「荒れていたら止まる」とだけ書いても、そのままでは作れない。実装できる形は、数字と単位を持っている。

実務では、二つを併用するのが落ち着きどころになる。予定されたものは時刻で切って、そこから漏れたものを値動きで拾う。片方だけで全部を賄おうとすると、条件が増え続けるか、止まりすぎるかのどちらかに寄っていく。

止める範囲を先に決める

最後に、いちばん食い違うところを書いておく。「止める」が何を指すのかは、人によって違う。新規のエントリーだけを見送るのか。すでに持っている分も閉じてしまうのか。決済の注文だけは通すのか。三つとも別の作りになる。

よく見るのは、新規は止めたのに保有分はそのまま持ち越していて、結局いちばん動く時間を抱えたままだった、という形だ。逆に全部閉じる作りにすると、数日持つ設計のEAでは毎週閉じることになり、元のルールとは別のものになってしまう。

止める範囲で決めること

再開の時刻も同じだ。一分後に戻すのか、三十分後なのか。決め方に唯一の正解は無い。ただ、書いていない項目は作り手のほうで埋めることになる。埋めた形が想像と違えば、直すのはお渡しした後の作業になる。

当方は元金融系のシステムエンジニアで、MT5のEA開発をココナラでお受けしています(MT4は移植・改修のご相談から承ります)。指標の時間帯を避ける仕組みは、いまお使いのEAへの追加としてもご相談いただけます。使っている端末と通貨ペア、止めたい時間の考え方を添えて、ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。
サービス数100万件のスキルマーケット、あなたにぴったりのサービスを探す