本記事では、日本時間9:55の「仲値(Tokyo Fixing)」前後でUSD/JPYに発生しやすい需給偏りを、初学者でも実践しやすい形に落とし込みます。仲値は銀行が顧客(輸入企業・輸出企業・機関投資家など)に当日適用する為替レートを決定する社内業務プロセスに由来します。この時間帯は、実需フローのヘッジやポジション調整が一時的に集中しやすく、短い時間ウィンドウに価格の歪みが生じることがあります。
重要な前提として、本稿は特定の利益を保証するものではありません。短時間のイベントを狙う戦略は、スプレッド拡大・滑り(スリッページ)・約定拒否・サーバー遅延などの実務的リスクに敏感です。再現性は執行品質に依存しやすく、取引コストを含めた検証が不可欠です。本記事は、初心者でも段階的に検証・改善できる「実装ベース」のガイドとして構成しています。
仲値(Tokyo Fixing)とは何か
仲値は一般に日本時間9:55頃に各行が提示・確定する対顧客レートを指します。銀行は顧客注文の片側に立つため、顧客フローの偏りが大きい日は自らの市場リスクを調整する必要があり、9:30〜9:55の過程でスポット市場にヘッジフローが出ることがあります。結果的に、特定方向へ短期的な需給の歪みが出現し、9:55直前〜直後に一時的なトレンド・反転が観測されることがあります。
戦略コンセプト:時間×簡易トレンドフィルター
本稿の戦略は極めてシンプルです。時間条件(東京9:40〜9:58)と、簡易トレンドフィルター(移動平均)を組み合わせ、価格に追随するモメンタム型のエントリーを行い、9:55〜9:58で手仕舞う設計です。方向は「直近30分のモメンタムに追随」を基本とし、レンジ日はエントリーを見送る頻度を上げます。
推奨する基本ルール(手動運用)
- 監視時間:日本時間9:35からチャート監視を開始します。5分足または1分足を利用します。
 - フィルター:EMA20とEMA60を5分足に適用。EMA20がEMA60を上回り、かつ価格が両者の上にあれば「上昇モメンタム」、逆は「下降モメンタム」とみなします。
 - エントリー:9:45〜9:52の間、直近高値/安値のブレイクで成行または指値で片側のみエントリー(多ポジ禁止)。
 - 手仕舞い:時間決済を優先し、9:56:30までに全決済。利確/損切りと併用します。
 - 損切り:エントリーから8〜15 pipsの固定SL。過度に広げないこと。
 - 利確:時間決済が優先ですが、10〜25 pipsのTPを入れておき、急変に備えます。
 - 見送り条件:重要イベント(日本のGDP、雇用統計、CPIなど)が9:30〜10:00に近接する日、スプレッドが通常の2倍以上、主要祝日・月末最終営業日で流動性やフローが極端に偏りやすい日。
 
なぜ「時間条件」が効きやすいのか
多くの戦略が価格情報のみを用いるのに対し、仲値戦略は時間という独立変数を使います。ヘッジフローや社内決定プロセスは人為的なスケジュールに依存し、市場が完全に効率的でない限り、時間帯固定の需給偏りが断続的に現れます。このため、価格×時間の2軸で条件を定義すると優位性が生まれる可能性があります。
口座・ツール準備(初心者向け)
- 口座:USD/JPYが取引でき、東京時間帯のスプレッドが安定している口座を選びます。デモ口座で先に練習します。
 - プラットフォーム:MT4/MT5またはTradingView。今回はMT4を前提にEAも付属します。
 - 時間設定:ブローカーサーバー時間とJSTの差を必ず把握します(EAのパラメータで補正)。
 - データ:過去の1分足・5分足の品質が検証の成否を左右します。欠落データや異常ヒゲの有無を確認します。
 
資金管理:ロット計算と最大ドローダウン想定
短時間戦略は「勝率」と「平均損益比」の微小な差でエッジを作ります。1トレードの許容損失額を資金の0.5〜1.0%に制限し、SL(pips)と1pipsあたりの価値からロットを逆算します。連敗を前提とし、最大ドローダウン=(連敗数×1トレード損失)を常時モニター。連敗時にロットを上げるマーチン系は採用しません。
実践オペレーション:分単位の行動表
| 時刻(JST) | やること | 
|---|---|
| 09:35 | チャート準備(5分足・1分足、EMA20/60)。経済指標カレンダー確認。 | 
| 09:40 | モメンタム判定(EMA20≷EMA60、価格の位置)。 | 
| 09:45 | 直近高値/安値を更新し始めたらブレイク指値準備。スプレッド監視。 | 
| 09:50 | 過度な乱高下なら見送り判断。建玉は1ポジのみ。 | 
| 09:55 | 時間経過とともに決済方針を固定。突発変動に備えSL/TP確認。 | 
| 09:56〜09:58 | 時間決済でクローズ。再エントリーしない。 | 
回避・調整ルール
- 月末営業日:実需フローが通常と異なる挙動を示しやすく、ギャップや急反転が増える傾向。経験を積むまでは回避。
 - 主要指標・要人発言:仲値前に日本のマクロ指標発表がある日は、イベント主導のボラでルールが無効化されやすい。
 - 急なスプレッド拡大:スプレッドが一時的に3桁(0.3→1.0pipsなど)へ拡大したら成行は避け、指値活用か見送り。
 - 通信遅延:VPS未使用で家庭回線の場合、遅延・約定品質の不安定さが増す。裁量は成行でなくブレイク指値を中心に。
 
検証(バックテスト)手順
- 期間:直近2〜3年を最低ラインに、可能なら5年。
 - データ品質:1分足の欠損や異常スパイクを手修正(または高品質データを再取得)。
 - ロジック固定:時間条件・EMA条件・SL/TPを固定。パラメータの過剰最適化は禁止。
 - コスト反映:平均スプレッド、想定スリッページ(例:±0.2〜0.5pips)を加味。
 - 評価:勝率、平均損益比、PF、最大DD、連敗数、年次ごとの安定性。
 
MQL4 EA(完全自動売買)サンプル
以下は本戦略の最小構成EAです。教育目的で提供しており、実運用前に必ずデモ検証を行ってください。ブローカーサーバー時間とJSTの差をBrokerToJSTHoursで補正します。
//+------------------------------------------------------------------+
//|  TokyoFix_955_MomentumEA.mq4                                    |
//|  Simple educational EA for USDJPY Tokyo Fix (9:55 JST)          |
//+------------------------------------------------------------------+
#property strict
extern string  __SECTION1 = "=== Time Settings ===";
extern int     TokyoFixHourJST = 9;      // 9:55 JST
extern int     TokyoFixMinuteJST = 55;
extern int     PreEntryStartMin = 45;    // enter window start (minutes) JST
extern int     PreEntryEndMin   = 52;    // enter window end (minutes) JST
extern int     BrokerToJSTHours = 7;     // Example: if broker is 2:55 when JST is 9:55 -> 7
extern string  __SECTION2 = "=== Filters ===";
extern int     EMAfast = 20;
extern int     EMAslow = 60;
extern int     TimeframeFilter = PERIOD_M5;
extern double  MinRangePips = 5;         // avoid dead-flat
extern string  __SECTION3 = "=== Risk Settings ===";
extern double  RiskPerTradePct = 0.7;
extern double  StopLossPips    = 12;
extern double  TakeProfitPips  = 18;
extern bool    UseTimeExit     = true;   // force exit before 9:58 JST
extern int     ExitMinuteJST   = 58;
extern string  __SECTION4 = "=== Misc ===";
extern int     Magic = 955001;
extern bool    OnePositionOnly = true;
extern double  SlipPips = 2;
int ticket;
//--- Convert broker time to JST
datetime ToJST(datetime bt) {
   return bt + (BrokerToJSTHours*3600);
}
datetime ToBroker(datetime jt) {
   return jt - (BrokerToJSTHours*3600);
}
bool IsWithinPreEntryWindow(datetime jt) {
   int h = TimeHour(jt);
   int m = TimeMinute(jt);
   if(h!=TokyoFixHourJST) return false;
   return (m>=PreEntryStartMin && m<=PreEntryEndMin);
}
bool IsTimeToForceExit(datetime jt) {
   int h = TimeHour(jt);
   int m = TimeMinute(jt);
   return (UseTimeExit && h==TokyoFixHourJST && m>=ExitMinuteJST);
}
bool HasOpenPosition() {
   for(int i=OrdersTotal()-1;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()) return true;
   }
   return false;
}
//--- Pips value helper
double PipValue(){ return (MarketInfo(Symbol(), MODE_POINT) * (Digits==3 || Digits==5 ? 10 : 1)); }
double ToPoints(double pips){ return pips * (1.0 / PipValue()); }
//--- Position sizing (fixed % risk)
double CalcLots(double stop_pips) {
   double acc = AccountBalance();
   double risk = MathMax(0.01, RiskPerTradePct/100.0) * acc;
   double tickvalue = MarketInfo(Symbol(), MODE_TICKVALUE);
   double pip_value_per_lot = tickvalue * (ToPoints(1.0)); // rough
   if(pip_value_per_lot<=0) return 0.01;
   double lots = risk / (stop_pips * pip_value_per_lot);
   // normalize
   double step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double minl = MarketInfo(Symbol(), MODE_MINLOT);
   double maxl = MarketInfo(Symbol(), MODE_MAXLOT);
   lots = MathFloor(lots/step)*step;
   lots = MathMax(minl, MathMin(maxl, lots));
   return lots;
}
//--- Trend filter on M5 EMA20/60
int TrendSignal() {
   int tf = TimeframeFilter;
   int fast = iMA(Symbol(), tf, EMAfast, 0, MODE_EMA, PRICE_CLOSE, 0);
   int slow = iMA(Symbol(), tf, EMAslow, 0, MODE_EMA, PRICE_CLOSE, 0);
   double emaFast0 = iMA(Symbol(), tf, EMAfast, 0, MODE_EMA, PRICE_CLOSE, 0);
   double emaSlow0 = iMA(Symbol(), tf, EMAslow, 0, MODE_EMA, PRICE_CLOSE, 0);
   double emaFast1 = iMA(Symbol(), tf, EMAfast, 0, MODE_EMA, PRICE_CLOSE, 1);
   double emaSlow1 = iMA(Symbol(), tf, EMAslow, 0, MODE_EMA, PRICE_CLOSE, 1);
   // basic direction by position of price vs EMAs
   double close0 = iClose(Symbol(), tf, 0);
   double rangePips = (iHigh(Symbol(), PERIOD_M5, 0) - iLow(Symbol(), PERIOD_M5, 0))/PipValue();
   if(rangePips < MinRangePips) return 0; // flat
   if(close0>emaFast0 && emaFast0>emaSlow0) return 1;  // long bias
   if(close00) {
      t = OrderSend(Symbol(), OP_BUY, lots, priceAsk, slip, priceAsk - sl*Point, priceAsk + tp*Point, "TF955 Buy", Magic, 0, clrNONE);
   } else if(dir<0) {
      t = OrderSend(Symbol(), OP_SELL, lots, priceBid, slip, priceBid + sl*Point, priceBid - tp*Point, "TF955 Sell", Magic, 0, clrNONE);
   }
}
//--- Time exit
void ForceExitAll(){
   for(int i=OrdersTotal()-1;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderMagicNumber()!=Magic || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY)  OrderClose(OrderTicket(), OrderLots(), Bid, (int)ToPoints(SlipPips), clrNONE);
      if(OrderType()==OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, (int)ToPoints(SlipPips), clrNONE);
   }
}
int OnInit(){ return(INIT_SUCCEEDED); }
int OnDeinit(){ return(0); }
int start(){
   datetime bt = TimeCurrent();
   datetime jt = ToJST(bt);
   // Force exit window
   if(IsTimeToForceExit(jt)) {
      ForceExitAll();
      return(0);
   }
   // Pre-entry window
   if(IsWithinPreEntryWindow(jt)) {
      int dir = TrendSignal();
      if(dir!=0) TryEnter(dir);
   }
   return(0);
}
//+------------------------------------------------------------------+
   
EAの使い方(超要約)
- USDJPYのM5チャートに適用します。
 - BrokerToJSTHoursをブローカーのサーバー時間に合わせて調整します。
 - デモ口座で2〜4週間検証し、約定品質・スリッページ・スプレッドの癖を把握します。
 - 連敗やDDが資金管理許容内かを必ず確認します。
 
発展:改良アイデア
- ボラティリティフィルター:ATRベースで「閾値未満は見送り」。
 - イベントフィルター:カレンダーフィードから回避日を自動判定。
 - 時間分散:9:44・9:48・9:52の3回に分割して小口で仕掛ける。
 - 決済強化:部分利確+残り時間決済、もしくは急変時の非常決済(トレイリング)。
 
よくある失敗
- 一発勝負のフルレバ:短期イベントで最大ロットは厳禁です。
 - スプレッド非監視:通常の2倍以上に拡大しているのに成行で突撃しない。
 - 時間誤認:ブローカー時間とJSTの変換ミスで全てが崩れます。まずここを固定。
 
まとめ
仲値アノマリーは「時間に縛られた需給」という構造を利用するシンプルな戦略です。時間条件+簡易モメンタム+厳格なリスク上限の組み合わせを守れば、初心者でも検証・運用の土台を築けます。過度な期待は禁物ですが、学習コストに対して得られる示唆は大きく、裁量・自動売買の双方に展開しやすいテーマです。
  
  
  
  

コメント