相場には曜日効果やイベント効果だけでなく、時間帯別の需給偏りが存在します。特に、銀行が顧客約定を取りまとめる東京仲値(JST 9:55)、機関投資家のリバランス需要が出やすいロンドンFIX(ロンドン16:00)は、短時間にオーダーが集中しやすく、方向性やボラティリティの偏りが観測されます。本稿では、FX(USD/JPYを中心)と暗号資産(BTC/USDT)でこの時間帯優位性を収益化するための、データ取得→検証→戦略設計→執行最適化→リスク管理までを、初めてでも再現できるレベルで体系化します。
1. コンセプト:時間帯優位性とは何か
時間帯優位性(Time-of-Day Edge)は、取引が集中する定時に価格変化の統計的偏りが繰り返し観測される現象です。実需(輸出入・リバランス・ヘッジ)や、アルゴのスケジュール実行(TWAP/VWAP/POV)、価格指標の算出タイミングが原因になります。「いつも同じ時間に同じパターンが生じやすい」ならば、事前に準備して薄利高勝率の繰り返しを狙えます。
2. 対象時間の定義と前提
2.1 東京仲値(JST 9:55)
日本の銀行は朝方に顧客のスポット外貨取引を取りまとめ、9:55時点のインターバンクレートをもとに仲値を公表します。直前に向けて外貨需要が強まると、USD/JPY上昇圧力(円安)が出やすい一方、その直後は需給一巡で反転・伸び悩みが起こることがあります。
2.2 ロンドンFIX(London 16:00)
世界の資産運用の中心であるロンドンで、ベンチマーク価格に連動したリバランスや信託の約定がまとまります。株・債券・為替・コモディティのクロスアセットでフローが発生し、為替やBTCでも同時刻に板が薄くなる/厚くなるといった特徴が出ます。
2.3 クリプト特有の時間
暗号資産は24/7稼働ですが、欧米・アジアのオーバーラップ、資金調達料(Funding)更新時刻、主要先物の清算バッチなど、半定時イベントが存在します。BTCではUTC 0:00/8:00/16:00付近の出来高・変動率の偏りがしばしば観測されます。
3. データの集め方(無料の現実解)
まずは無料APIやCSVで十分です。為替はブローカーの1分足、暗号資産は主要取引所(例:Binance/Bybit/OKX)の1分足・Funding履歴を取得します。期間は最低でも過去2年、できれば4年以上。祝日・サマータイム切替は必ずタイムゾーン変換で吸収します。
- 為替(USD/JPY):1分足OHLCV、ローカルタイムはJSTに統一
- BTC/USDT(現物・パーペチュアル):1分足OHLCV、Funding履歴、清算データ
- イベントタイムスタンプ:JST 9:55、Europe/London 16:00、UTC 0/8/16時
欠損・外れ値は中央値補間やリサンプリングで補正し、イベント前後のウィンドウ(例:±45分)を切り出して特徴量(変化率、平均・標準偏差、ラグ、出来高変化率)を構築します。
4. 仮説の立て方
代表的な仮説は以下です。
- 東京仲値前(9:15→9:55)はドル買い/円売りの順張りが優位(ただし前日/当日ギャップが大きい日は除外)。
- 仲値直後(9:56→10:15)は需給一巡で反転/もみ合いの確率上昇。
- ロンドンFIX前(15:30→16:00 London)は方向性が日次の株・債券フローに連動しやすい。
- BTCはFundingが大幅プラスのとき、Fix/0:00/8:00/16:00の直前は逆張り優位になりやすい。
5. バックテスト設計(手戻りしない最低限の要件)
5.1 テンプレート
- サンプル外検証(期間分割:学習=最初70%、検証=残り30%)。
- フォワード期間は最新6ヶ月を別枠で評価。
- スリッページ/スプレッド/手数料は実測の悲観値で固定。
- 取引はイベントウィンドウ内の1回に限定(多重取引の過最適化回避)。
- ユニットリスク(1回の想定最大損失)を資金の0.5〜1.0%に制約。
5.2 代表ルール(USD/JPY仲値順張り)
条件例:
- 9:20の価格を基準に9:45までに+0.10%超上昇かつ出来高増。
- 9:45に成行買い(または9:45→9:50でTWAP分割)。
- 利確:9:54:30で成行決済。損切り:基準から-0.08%またはATR×0.7。
- 発注不可日:重要指標(雇用統計、CPI、FOMC当日)と日銀会合日。
5.3 代表ルール(BTCロンドンFIX逆張り)
- Fundingが+0.03%/8h以上で強いロングバイアス。
- London 15:45→15:59に5分足RSIが70超、かつ出来高急増。
- 16:00直前にショート、16:10にクローズ。損切りは直近高値+0.3%。
6. リスク管理:勝ち続けるための3枚看板
6.1 ボラターゲティング
直近20日ATRまたは分足の実現ボラからポジションサイズを調整します。毎トレードの想定損失を資金の0.5〜1.0%に固定し、連敗時は自動的にサイズを縮小します。
6.2 ケリー上限×最大DD制約
過去勝率p、平均RRで分数ケリーの理論サイズを計算しつつ、最大ドローダウン目標(例:-10%)を超えないように上限を切ります。
6.3 テールリスク対策
Fix/仲値は突発ニュースの温床でもあります。OCO(利確+損切り)とトレーリングを併用し、約定拒否に備えて指値→成行フェイルオーバを用意します。
7. 執行最適化:スリッページを稼ぐ側になる
- TWAP/VWAP/POV:9:45→9:55や15:45→16:00の発注は分割が基本。
- スマートルーティング:CEX/DEX/ブローカー間で最良気配に自動ルーティング。
- 板気配読解:DOMの厚み・アイスバーグ・キャンセル率を可視化。
- 逆指値の滑り許容:最大スリッページ幅を事前に数値化。
8. 具体的な取引手順(チェックリスト)
8.1 仲値順張り(USD/JPY)
- 8:00時点で重要指標カレンダーを確認(該当日は休む)。
- 9:15に前日終値からのギャップ、当日ボラ、出来高を確認。
- 9:45にTWAP開始。サイズは口座残高×0.5%リスクに収まるロット。
- 9:54:30で手仕舞い(または直前の勢いが強ければ9:55直後に数秒持ち越し)。
- 約定レポートにスリッページとコストを記録。
8.2 ロンドンFIX逆張り(BTC/USDT)
- Fundingが直近+0.03%/8h超かつポジション偏りがロング優勢を確認。
- 15:45→15:59(London)でRSI>70と出来高急増の同時発生を監視。
- 成行または浅い指値でエントリー、16:10に時間決済。
- 損切りは直近高値+0.3%にOCOで連結。
- 毎回のR/R、勝率、平均スリッページをログ化。
9. MQL4 EA(仲値順張りの原型)
// 仲値順張り 原型EA(USDJPY, M1想定)
// 重要:実運用前に必ずデモ/フォワード検証を行ってください。
#property strict
input double RiskPerTrade = 0.005; // 0.5%
input int TwapMinutes = 10; // 9:45からの分割
input double TakeSecBefore = 30; // 9:54:30で手仕舞い
input double SL_atr_mult = 0.7;
datetime session_date;
double entryPrice, slPrice;
double ATR(int period=14){
double atr=0;
for(int i=1;i<=period;i++) atr += iATR(NULL, PERIOD_M1, period, i);
return atr/period;
}
void OnTick(){
datetime t = TimeCurrent();
int hour = TimeHour(t); int minute = TimeMinute(t);
// 平日9:45〜9:55の間のみ
if(TimeDayOfWeek(t)==0 || TimeDayOfWeek(t)==6) return;
if(hour==9 && minute>=45 && minute<55){
// 9:20からの上昇率 + 出来高条件(簡略化)
int idx_920 = iBarShift(NULL, PERIOD_M1, StrToTime(TimeToString(t, TIME_DATE)+" 09:20"));
double p920 = iClose(NULL, PERIOD_M1, idx_920);
double pnow = iClose(NULL, PERIOD_M1, 0);
if((pnow/p920-1.0) >= 0.0010){
double atr = ATR(14);
double sl = atr*SL_atr_mult;
double acc = AccountBalance();
double lot = MathMax(0.01, (acc*RiskPerTrade)/(sl*100000)); // 簡易計算
if(PositionsTotal()==0){
entryPrice = pnow;
slPrice = entryPrice - sl;
OrderSend(Symbol(), OP_BUY, lot, Ask, 2, slPrice, 0, "TokyoFix", 0, 0, clrGreen);
}
}
}
// 9:54:30で成行クローズ
if(hour==9 && minute==54 && TimeSeconds(t)>=30){
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderType()==OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3);
}
}
}
}
10. 期待値の源泉を壊さない運用ルール
- 多通貨・多銘柄で同時に追いかけない(流動性分散でエッジ希薄化)。
- イベント日は休む。勝ちやすい日のみ参加する選択が最強。
- ログをとり、勝率×平均損益−コストの劣化を即検知して停止判断。
11. クリプト応用:FundingとFixの掛け算
Fundingが極端なときほど片寄った玉の手仕舞い圧が出やすく、Fix直前は逆張りが通る確率が上がります。一方で清算の連鎖が走ると逆行のリスクもあるため、損切りは浅く、利確は時間決済を基本にします。
12. 運用結果の評価と改善手順
- 月次でPF、SQN、最大DD、ヒットレシオ、平均滑りを集計。
- サンプル外の6ヶ月で正のPF(>1.2)を維持できるか確認。
- エグジット時刻の微調整(±3〜5分)で頑健性をテスト。
13. まとめ
時間帯別優位性は、シンプル・再現可能・裁量に依存しにくいのが最大の利点です。仲値とロンドンFIXという明確な「鐘の鳴る時刻」に合わせ、前提条件のフィルタ→小さなサイズ→徹底した執行最適化でコツコツ積み上げていきましょう。


コメント