ゴトー日(5日・10日など)に東京時間の午前にロングエントリーし、9時55分に決済するというトレード戦略は、裁定取引や仲値需要を背景にした人気のあるアプローチです。本記事では、MetaTrader(MT4/MT5)でそのようなEA(エキスパートアドバイザー)を作る方法と、日付・時刻で取引条件を指定する方法について解説します。
ゴトー日とは?戦略の前提を理解しよう
「ゴトー日」とは、毎月5日・10日・15日・20日・25日・30日など「5の倍数の日」を指し、企業の決済や送金が集中しやすく、特に午前9時55分前後に円安に振れやすい傾向があります。
このため、仲値確定前の時間帯(例:3時〜9時55分)にロングポジションを取る戦略は、短期的に有効であると言われています。
EAの基本構造:時間指定での売買ロジック
MT4やMT5では、MQLという独自言語でEAを記述します。以下は、毎朝3:00にロングエントリーし、9:55に決済する基本的なロジックの一例です(MT4のMQL4を想定)。
void OnTick() { datetime now = TimeCurrent(); int hour = TimeHour(now); int minute = TimeMinute(now); int day = TimeDay(now); if ((day == 5 || day == 10 || day == 15 || day == 20 || day == 25 || day == 30) && hour == 3 && minute == 0) { if (OrdersTotal() == 0) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Goto Buy", 0, 0, clrGreen); } } if (hour == 9 && minute == 55) { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY) { OrderClose(OrderTicket(), OrderLots(), Bid, 3, clrRed); } } } }
このように、時間・分・日付の条件を指定して発注や決済を制御することが可能です。
ゴトー日を動的に判定する方法
ゴトー日は「5で割り切れる日」ですが、実務的には土日や祝日を除く営業日のみに実施されます。以下のように土日除外ロジックを追加することで、より正確な判定ができます。
bool IsGotoDay() { int d = TimeDay(TimeCurrent()); int w = TimeDayOfWeek(); return (d % 5 == 0 && w != 0 && w != 6); }
このように関数化して使うと、コードの見通しも良くなります。
時間判定を柔軟に処理する方法
複数の条件(時刻、注文数など)を同時にチェックしたいときは、以下のように論理式でまとめて判定できます。
if (IsGotoDay() && TimeHour(TimeCurrent()) == 3 && OrdersTotal() == 0) { /* ロング処理 */ }
また、決済条件も複数ポジションやリトライ処理を含めて丁寧に記述することで、予期しない残ポジションを防ぐことができます。
日付・時刻トリガーを活用した他の応用例
このようなロジックは、以下のようなトレード戦略にも応用可能です。
- 毎月末のリバランス売買
- 経済指標発表前の事前ヘッジ
- 東京時間、ロンドン時間開始時のブレイクアウト
特に、曜日や時間帯で傾向がある戦略には非常に相性が良いです。
まとめ:ゴトー日ロジックはEA化との相性が抜群
ゴトー日ロング戦略はシンプルでありながら実践的なアルゴリズムです。時間と日付の判定ロジックを活用すれば、人間の感覚ではなく明確なルールに従ってトレードを自動化できます。
まずはデモ口座でテストを行い、ロジックの正確性や想定通りの発注タイミングになるか確認してから実運用に移行しましょう。EAは「時間」を制御することで、優位性ある戦略を形にできる強力なツールです。

こんにちは!利益の管理人です。このブログは投資する人を増やしたいという思いから開設し運営しています。株式投資をメインに分散投資をしています。
コメント