日本株PTS→翌朝“ギャップ・フェード”戦略の完全ガイド(初心者から実践まで)

初心者向け

本稿は、日本株の夜間PTSで形成された価格乖離(ギャップ)が、翌朝の寄付きから前場にかけて平均回帰(フェード)する傾向に焦点を当て、初心者でも再現できる実践手順として体系化したものです。抽象的なアノマリー紹介ではなく、口座準備 → 銘柄抽出 → 売買ルール → 発注運用 → バックテスト → リスク管理の順で、実務に落とし込みます。小資金(例:10万円から)でも段階的に拡張可能な構成にしています。

スポンサーリンク

この戦略で狙う現象

決算やニュースなどの明確な情報イベントがないにもかかわらず、夜間PTSで現物終値から大きく離れて取引されるケースがあります。出来高や気配の偏り、需給による一時的な歪みであり、翌朝のオークションと寄付き後の流動性供給によって、価格が終値や公正価値へ回帰しやすいという特徴を利用します。これをギャップ・フェードと呼びます。

対象市場と前提

対象は東証上場銘柄のうち、夜間PTSでの出来高が一定以上ある銘柄。特にプライム構成銘柄や人気のグロース銘柄はサンプルが集まりやすく、検証と実運用の両方で取り組みやすいです。PTSの取引時間帯や手数料体系、成行/指値の可否は証券会社・PTS運営で差があるため、実運用前に必ず最新仕様を確認してください。

準備:必要な口座と環境

1. PTS対応の証券口座

夜間PTSに参加できる証券会社で口座開設を行います。開設後、PTS取引の利用申込や信用口座の開設(空売りを用いる拡張版で必要)を済ませておきます。最低限、指値・逆指値・成行(可能なら)・OCOに対応していること、スマホとPCの両方で発注が容易であることを確認します。

2. データ取得環境

スクリーニングと検証のために、現物終値・翌日の寄付き・高値/安値・出来高が取得できる無料/有料ソースを用意します。まずは無料の株価サイトや証券会社の約定履歴で十分です。PTSの約定価格は銘柄ページの履歴や当日のチャートから控えます。

3. 検証ツール

Excel/Google Sheetsでのシート検証から始め、慣れてきたらPythonによる簡易バックテストへ拡張します。後述のテンプレートをそのまま写経すれば再現できます。

基本戦略の設計思想

ギャップ・フェードは過大反応の修正を利益源泉にします。PTSは参加者・板の厚みが限定的で、わずかな成行や偏った指値で価格が動きやすい環境です。翌朝、寄付きオークションと前場の流動性が増えると、過剰な歪みが是正されやすい。この統計的傾向に基づき、以下のようなルールを作ります。

売買ルール(基本版)

シグナル生成

  • 前日現物終値Close0夜間PTS終値(または直近約定値)PTS0とする。
  • ギャップ率: (PTS0 - Close0) / Close0
  • 閾値:|ギャップ率| ≥ 1.0%〜2.0%(検証で最適化)。
  • 除外条件:決算発表日/翌日、材料性IR/報道、特別気配/売買停止、極端な出来高欠如、連続ストップ高/安の直後など。

エントリー(翌朝)

  • ギャップ上(PTS0 > Close0):翌朝、ショート(空売り)でフェード狙い(信用口座必須)。空売り不可なら見送り。
  • ギャップ下(PTS0 < Close0):翌朝、ロング(買い)で反発狙い。
  • 約定条件:寄成/寄指を用い、約定不成立時は寄り後のVWAP付近に分割指値。指値は深追いしない(置き去りリスク対策)。

イグジット

  • ターゲットClose0への50%〜80%の回帰で利確(フル回帰を待ちすぎない)。
  • 損切り寄付き価格(Open1)から±0.6〜1.0%の固定幅、または当日ATR(5)の0.6倍。
  • 時間切れ:前場引けで未達なら成行/成行同等でクローズ(後場に持ち越さない基本方針)。

ポジションサイズ

  • 口座資金の0.5%〜1.0%を最大損失に収める逆算で建玉数量を決定。
  • 同時エントリーは最大2〜3銘柄。相関・業種偏りを避ける。

発注実務(初心者がつまづく点を潰す)

寄成/寄指の使い分け

寄成は約定確度が高い一方で、寄り気配が飛ぶと不利な価格で約定します。寄指は価格を限定できるが不成立リスクがある。寄成で1/2、寄指(気配より不利になりにくい位置)で1/2など分割が実務的です。

逆指値とOCO

寄り後に逆行した場合の損切り自動化、利確・損切りを同時に置くOCOを活用。スマホアプリの「発注同時設定」を練習し、人間の迷いを排除します。

板の読み方(簡易)

寄付き直前の板で、厚みの偏り・直近約定の連続性・不自然なアイスバーグを観察。ギャップ方向への勢いが強すぎる場合は、初動の踏み上げ/投げに巻き込まれないよう、最初の1〜3分は観察に徹してから指値する選択肢もあります。

銘柄スクリーニング手順(手作業 → 半自動へ)

  1. 前日終値(Close0)を控える。
  2. 夜間PTSの約定履歴から終盤の価格(PTS0)を取得。
  3. ギャップ率を計算し、±1.5%以上を抽出。
  4. 出来高が極端に薄い銘柄、単価が極端に低い銘柄(例:200円未満)は除外。
  5. ニュース/決算カレンダーで材料銘柄を除く。

慣れてきたら、ブラウザの拡張機能や簡易スクレイピング(許諾範囲で)で、前日夜の候補抽出を半自動化します。

Excel/Google Sheetsでの簡易バックテスト

初心者はまずシートでルールの骨格を掴むのが近道です。以下のテーブル構成を作り、20〜50銘柄×過去3〜6か月で試してください。

列A: 日付
列B: 銘柄コード
列C: Close0(前日現物終値)
列D: PTS0(夜間PTS終値または直近約定)
列E: ギャップ率 = (D - C) / C
列F: Open1(翌日寄付)
列G: High1(前場高値)
列H: Low1(前場安値)
列I: VWAP1(前場VWAP・代替として(高値+安値+寄付)/3)
列J: 方向(=IF(E>=閾値,"ショート",IF(E<=-閾値,"ロング","なし")))
列K: 仕掛価格(寄付または寄後VWAP)
列L: 利確価格(Close0への回帰率×)
列M: 損切価格(寄付±幅)
列N: 退出価格(ルールに基づく実現価格)
列O: 損益(N - K)×方向係数
列P: 最大DD、列Q: 勝率、列R: PF、列S: 期待値 など

Sheets例:回帰ターゲット70%のロング利確価格

=IF(J2="ロング", C2 - 0.3*(C2 - F2), IF(J2="ショート", C2 + 0.3*(F2 - C2), ))

これで、回帰がどの程度まで達成されるか(50%/70%/100%)を比較できます。勝率だけでなく、PF(Profit Factor)・平均損失/利益比も併せて評価します。

Pythonによる最小実装(学習用)

以下は教育目的の簡易コードです(実運用には板寄せロジックやスリッページ、空売り可否などを詳細化してください)。

import pandas as pd

# df: 必要列 = ['date','code','close0','pts0','open1','high1','low1']
# 方向・シグナル
thr = 0.015  # 1.5%
df['gap'] = (df['pts0'] - df['close0']) / df['close0']
df['dir'] = df['gap'].apply(lambda g: 'S' if g >= thr else ('L' if g <= -thr else 'N'))
df = df[df['dir'] != 'N']

# 約定価格(寄付採用)とターゲット(70%回帰)
df['px_in'] = df['open1']
df['px_tgt'] = df.apply(lambda r: r['close0'] + 0.3*(r['open1']-r['close0']) if r['dir']=='L'
                        else r['close0'] - 0.3*(r['close0']-r['open1']), axis=1)

# 損切(±0.8%)
stop = 0.008
df['px_stp'] = df.apply(lambda r: r['open1']*(1-stop) if r['dir']=='L' else r['open1']*(1+stop), axis=1)

# 到達判定(前場内の高安で簡易判定)
def exit_price(r):
    if r['dir']=='L':
        if r['low1'] <= r['px_stp']: return r['px_stp']
        if r['high1'] >= r['px_tgt']: return r['px_tgt']
    else:
        if r['high1'] >= r['px_stp']: return r['px_stp']
        if r['low1'] <= r['px_tgt']: return r['px_tgt']
    return r['open1']  # 時間切れ同値近辺

df['px_out'] = df.apply(exit_price, axis=1)
df['pnl'] = df.apply(lambda r: (r['px_out']-r['px_in']) * (1 if r['dir']=='L' else -1), axis=1)
print(df['pnl'].sum(), df['pnl'].mean(), (df['pnl']>0).mean())

現実のズレに対する対策

  • スリッページ:寄成は滑る。寄指の併用や分割約定で平均取得を整える。
  • 出来高不足:指値が刺さらない/薄板で急変。単価・出来高フィルタを強める。
  • ニュース介入:材料銘柄を除外しきれない日がある。値幅拡大・注意喚起が出たら見送り。
  • ボラティリティ変 regime:相場の地合いで回帰力が弱まる。地合いフィルタ(先物/指数のギャップ方向)を導入。

検証時の指標と最低基準

  • 勝率 >= 53%(損益比 1:1 前後)
  • PF >= 1.25、期待値 > 0
  • 最大DD(資産比) <= 8%(初心者)
  • 連敗想定:二項モデルで7連敗が起き得る前提で資金配分

資金管理:1トレード最大損失の固定

最初は口座資金の0.5%を1トレードの最大損失に固定。例:資金100万円なら5,000円。損切幅0.8%なら、許容損失5,000円 ÷ 0.008 = 625,000円分の建玉が上限。単価と単元に合わせて丸めます。

拡張ルール(精度向上)

  1. ボラ基準の可変ターゲット:ATR(5)に応じて回帰率を50/70/80%で切替。
  2. 地合いバイアス:日経平均先物の朝ギャップ方向と逆一致のときは、回帰期待を下げる(サイズ半分)。
  3. 出来高確認:寄付き出来高が前5日平均のx倍未満なら見送り。
  4. PTS出来高閾値:夜間PTS出来高が異常に少ない場合はノーシグナル。
  5. イベント除外:決算日±1日、重要指標や大型ニュース日は除外。

よくある失敗と対策

  • フル回帰待ち:利確を欲張りすぎて逆転負け。部分回帰利確を標準に。
  • ナンピン依存:薄板でナンピンは平均取得悪化の温床。前提としてしない。するなら計画的な分割のみ。
  • 材料見落とし:IR・報道の見落としで一方向に走る。朝のニュース確認はルーチン化。
  • 後場持越し:フェードは前場でやり切る設計。時間切れ撤退を徹底。

チェックリスト(印刷推奨)

  • (前夜)候補抽出:|ギャップ率| ≥ 1.5%、出来高/単価フィルタ通過
  • (前夜)材料チェック:決算/IR/注意喚起なし
  • (当日朝)地合い:先物ギャップと方向整合
  • (寄り)分割発注:寄成1/2 + 寄指1/2、OCO設定
  • (前場)ターゲット達成で機械的利確、時間切れで撤退
  • (昼)ログ記録:スクショ・約定明細・反省点

ケーススタディ(概念例)

あるプライム銘柄が終値1,000円、夜間PTSで1,018円(+1.8%)。翌朝の寄付は1,012円。ショートで仕掛け、利確目標は終値への70%回帰=1,006円、損切は寄付から+0.8%=1,020円。前場の高値1,015円、安値1,005円となり、1,006円で利確。期待通りの回帰例です。逆に、材料が隠れていたケースでは寄り後に一段高で損切到達、回避策は材料除外・出来高/板厚みの再チェックでした。

運用の拡張:信用・空売りの扱い

ギャップ上のフェードには空売りが有効ですが、信用金利・貸株料・逆日歩などのコストに注意してください。初心者段階ではロング側(ギャップ下の反発)に絞る選択も合理的です。

自動化の方向性(将来)

  • 前夜のPTS終値・出来高の自動取得(許諾範囲で)。
  • 決算/IRスクリーニングの自動判定。
  • 寄付き後のVWAP到達で成行同等の自動決済。

まずは手動・半自動で運用と検証に慣れ、ルールが安定してから自動化に踏み出すのが安全です。

まとめ

夜間PTSで生じた歪みは、翌朝の流動性供給で修正されやすい。狙い所を“非材料・適度なギャップ・出来高確保・前場完結”に限定し、機械的に実行することで、初心者でも再現性を持たせやすい短期戦略になります。検証→少額実弾→サイズ拡大の順で段階的に進めてください。

コメント

タイトルとURLをコピーしました