決算ギャップ×三日ルール:日本株PEADを初心者でも実装できる超具体ガイド

イベントドリブン

本記事では、個人投資家でも再現しやすいイベントドリブン戦略として「決算ギャップ×三日ルール」を解説します。決算発表の直後に発生しやすい価格の継続性(いわゆるPost-Earnings Announcement Drift/PEAD)を、日本株に合わせた実務フローと明確な売買ルールに落とし込みます。難解な理論ではなく、初心者の方でも今日から準備できる具体的ステップを提示します。

戦略の全体像

「決算ギャップ×三日ルール」は、決算発表後の寄付きで生じたギャップ(窓)がその後の数営業日にわたり方向性を維持しやすいという経験則を利用する戦略です。上方サプライズでギャップアップした銘柄に限定して買いで参加し、最大3営業日だけ保有します。時間で区切ることで「伸び悩み」や「往復ビンタ」を避け、短期で完結させます。

この戦略の狙い

  • 決算開示をトリガーとした需給の偏り(買い手優位)を素早く捉えること。
  • ニュースの解釈が市場全体に浸透する「遅行反応」を3日という期限で刈り取ること。
  • 明確なルール化で「迷い」を排し、シンプルに実行すること。

売買ルール(ベースライン)

以下は最小限のルールセットです。まずはこの形で紙上検証→小ロット実践→ロット調整の順で段階的に進めます。

対象銘柄フィルタ

  1. 直近の決算(本決算・四半期いずれも可)が適時開示で前日夕場〜当日朝までに公表された銘柄。
  2. 当日の寄付き価格が前日終値から+2.0%〜+8.0%のギャップアップ。(+2%未満は勢い不足、+8%超は過熱リスクが高いと想定)
  3. 寄り直後30分の出来高が過去20日平均の同時間比で120%以上(流動性担保)。
  4. 株価水準が100円未満や出来高が極端に薄い銘柄は除外。

エントリー

  • 寄り付きから5〜15分待ち、押し戻しで急いで掴むことを避けつつ、当日高値更新で成行買い(逆指値買いでも可)。
  • 代替案:寄り後のVWAP上を推移し続け、かつ初回押しでVWAPを明確に割れないことを確認してから買い。

イグジット(最大3営業日)

  1. 時間決済:エントリーから3営業日目の大引けで成行売り。
  2. 損切り:前日安値割れまたはエントリー当日のVWAP明確割れで即時撤退。
  3. 利食いオプション:終値がエントリー日高値の+5%上で引けた場合はその時点で半分利確、残りは3営業日ルールに従う。

ポジションサイズ

1トレードの許容損失を資金の0.5%〜1.0%に固定します。損切り幅(円)=トリガー価格−損切り価格。
株数=(口座残高×許容損失%)÷損切り幅。
例:口座300万円、許容1%、損切り幅50円なら株数=(3,000,000×0.01)÷50=600株。

この戦略が機能しやすい背景

決算は「情報の非連続点」です。投資家の解釈と機関投資家のリバランス、指数組み入れの影響、アルゴのフローなどが短期間に集中します。
上方サプライズ時は、空売りの買い戻し・パッシブ資金の追随・ニュース露出による新規資金流入が重なり、初動後も数日間のドリフトが生じやすくなります。逆に10営業日以上の長期保有に伸ばすと情報鮮度が低下し、勝率・リスク比が悪化しやすいです。

具体例(架空データ)

ケースA:教科書どおりの上昇

銘柄X(前日終値1,000円)。夕場にサプライズな上方修正を発表。翌朝寄り1,050円(+5.0%ギャップ)。寄り後10分で1,040円まで押すがVWAPを維持。
当日高値1,060円をブレイクした時点で逆指値買い(1,061円)。損切りは当日VWAP1,045円割れ。
2営業日目終値1,110円、3営業日目引け1,130円で全決済。リスク1に対してリターン約+69円(1,130−1,061)÷(1,061−1,045=16)≒+4.3R。

ケースB:損切り発動

銘柄Y(前日2,000円)。寄り2,120円(+6.0%)。高値2,148円を上抜けで2,149円エントリー。ところが引けにかけてVWAP割れの弱い推移。
翌朝ギャップダウンで始まり、当日VWAP(2,130円)を回復できず、2,129円で撤退。損失は−20円(約−1.25R)。
このように損切りの一貫性が、平均損失を限定し戦略全体の期待値を守ります。

期待値設計と勝ちパターン

イベント戦略の肝は「平均利益 > 平均損失」を作ることです。勝率が5割でも、平均利益が平均損失の2倍なら期待値は正です。
ベースラインでは、損切り幅をVWAP割れ等で短く抑え、利幅は値動きに任せて3営業日まで伸ばすことで、分布の右裾を確保します。

  • 勝率:45〜60%を想定(銘柄フィルタとエントリー基準で変動)。
  • 平均損失:−0.8R〜−1.2Rに収斂。
  • 平均利益:+1.6R〜+2.8Rを狙う設計。

上記レンジは設計意図の目安であり、実際の数値は個々の検証で確認します。重要なのは、R(リスク単位)で設計し、ロットはR基準で調整することです。

実務フロー:前日〜当日朝の準備

  1. 前日夕場〜夜:TDnetで上方修正やサプライズの可能性が高い開示をブックマーク。証券会社の決算カレンダーで翌朝の候補をリスト化。
  2. 当日寄り前:気配値・出来高・ニュースヘッドラインを確認。気配が+2%〜+8%帯に入っている銘柄をWatch。
  3. 寄り後30分:VWAPと出来高ペースを監視。基準を満たしたらシグナル用の逆指値(高値更新)を発注。直後の板薄で飛びつかない。

執行のコツ(約定品質を上げる)

  • 板の空白(ギャップ)に成行で突っ込まず、逆指値+指値の組み合わせで平均約定を平滑化します。
  • 寄り後10〜15分はアルゴの価格探索が続きやすく、最初の押し目待ちが有効です。
  • ガイドライン:1銘柄の発注は2〜3回に分割。初回はシグナルで1/2、押し戻し確認で1/4、トレンド継続で残り1/4。
  • 流動性が薄い銘柄はスリッページが大きいので避けます。

リスク管理と想定外への対応

  1. ギャップ拡大リスク:+8%超の寄りは利確圧力が強くなりやすく、リバーサルも出やすい。避けるかロットを落とします。
  2. 同日多銘柄エントリー:セクター相関で同時に負ける可能性。1日3銘柄以内、セクター分散を意識。
  3. 注意銘柄:値幅制限に到達しやすい低位株、増資・POの思惑がある銘柄、信用規制銘柄は除外。
  4. ニュース継続:追加IRやアナリストレポートで二段上げが起きることがありますが、3営業日ルールは守る(再現性重視)。

データ取得と簡易検証のやり方

本格的なプログラミングがなくても、以下の手順で紙上テストが可能です。

  1. 証券会社の決算カレンダーとTDnetで、ギャップアップした銘柄を日次で記録。
  2. 無料チャートサイトやTradingViewで、寄り値・当日高値・VWAP・3営業日後の引け値を控える。
  3. スプレッドシートでR(損切り幅)と損益を計算。少なくとも50〜100例を集め、平均・中央値・最大DDを可視化。

Pine Script(TradingView)によるシグナル可視化

以下は学習用の簡易スクリプトです(実売買は各自の検証が前提です)。


//@version=5
indicator("Earnings Gap x 3-Day (JP) - Signal", overlay=true)
gapPct = (open - close[1]) / close[1] * 100
gapOK  = gapPct >= 2 and gapPct <= 8
vOK    = volume > ta.sma(volume, 20) * 1.2
longSig = gapOK and vOK and high > ta.highest(high, 1)[1]
plotshape(longSig, title="Buy Trigger", style=shape.triangleup, location=location.belowbar, size=size.tiny, text="BUY")
vwap = ta.vwap(hlc3)
plot(vwap, title="VWAP")

MQL4 EA(学習用テンプレート)

CFD銘柄などでシグナルロジックを学ぶ目的の雛形です。実運用前に必ずデモ検証を行ってください。


//+------------------------------------------------------------------+
//|  EarningsGap3DayJP.mq4 (Template)                                |
//+------------------------------------------------------------------+
#property strict
input double RiskPerTrade = 1.0;   // percent
input double GapMin = 2.0;
input double GapMax = 8.0;
datetime entryTime;
double entryPrice, vwapToday;

double GetVWAPToday() {
   // placeholder: compute intraday VWAP if broker provides tick data
   return iMA(NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 0);
}

bool GapOK() {
   double prevClose = iClose(NULL, PERIOD_D1, 1);
   double todayOpen = iOpen(NULL, PERIOD_D1, 0);
   double gapPct = (todayOpen - prevClose) / prevClose * 100.0;
   return (gapPct >= GapMin && gapPct <= GapMax);
}

void OnTick() {
   // Only trade in the first 15 minutes after session open (placeholder logic)
   if(TimeHour(TimeCurrent())==9 && TimeMinute(TimeCurrent())<=30) {
      if(GapOK() && OrdersTotal()==0) {
         double todayHigh = iHigh(NULL, PERIOD_M5, 0);
         double prevHigh  = iHigh(NULL, PERIOD_M5, 1);
         if(todayHigh > prevHigh) {
            // Buy
            double accEquity = AccountEquity();
            double stopPrice = GetVWAPToday(); // placeholder
            double stopDist  = MathMax( Point, Ask - stopPrice );
            double riskAmt   = accEquity * RiskPerTrade / 100.0;
            double lot       = NormalizeDouble( riskAmt / (stopDist*MarketInfo(Symbol(), MODE_TICKVALUE)), 2 );
            OrderSend(Symbol(), OP_BUY, lot, Ask, 5, stopPrice, 0, "EG3D", 0, 0, clrBlue);
            entryTime = TimeCurrent();
            entryPrice = Ask;
            vwapToday = stopPrice;
         }
      }
   }
   // Exit after 3 trading days (approx. in seconds)
   for(int i=OrdersTotal()-1; i>=0; i--) {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if(OrderType()==OP_BUY) {
            // Time exit
            if(TimeCurrent() - entryTime > 3*24*60*60) {
               OrderClose(OrderTicket(), OrderLots(), Bid, 5, clrRed);
            }
            // VWAP stop (placeholder)
            if(Bid < vwapToday) {
               OrderClose(OrderTicket(), OrderLots(), Bid, 5, clrRed);
            }
         }
      }
   }
}

証券口座開設の一般的な流れ

  1. 本人確認書類・マイナンバー・銀行口座を用意します。
  2. オンライン申込みで基本情報を入力し、規約を確認します。
  3. 審査完了後、ログイン情報を受領し、入金テストと発注画面の操作確認を行います。
  4. チャート・ニュース・スクリーナーの表示を自分用にカスタマイズし、決算カレンダーやTDnetへの導線を整えます。

よくある落とし穴と対策

  • ストップ高張り付き:寄り天や引け成りで約定できないリスク。シグナル成立の定義を厳格に(当日高値更新など)。
  • ギャップ後の陰線包み:初日が長い上ヒゲの陰線で終わった場合はシビアに撤退。
  • 貸借・規制:逆日歩・規制により値動きが歪むことがあるため、信用関連の注意喚起を確認。
  • 決算の質:売上ではなく一過性要因中心の増益など、質が低いサプライズは伸びにくい傾向。本文のフィルタで回避。

発展アイデア

  • 3日ではなく2日+トレーリングで利食い。勝率低下と分布の右裾拡大のトレードオフを検討。
  • ギャップレンジ別の最適ロット(+2〜3%、+3〜5%、+5〜8%)を別々に最適化。
  • 出来高サプライズ(出来高zスコア)を加味して、強いフローのみ採用。

チェックリスト(プレイブック)

  • 決算の種類と要旨を一行でメモ(通期・進捗・ガイダンス)。
  • 寄りギャップ率:2%〜8%の帯に入っているか。
  • 寄り後30分の出来高が20日平均比120%以上か。
  • 当日高値更新でシグナル、VWAPでリスク限定。
  • 3営業日で必ず手仕舞う。連勝・連敗でもルールは一貫。

Q&A

Q. 決算が悪くギャップダウンした場合は?
A. 初心者はスルーが安全です。下方向はボラが大きく、踏み上げの急反発もあり難易度が高いです。

Q. 保有は翌日までに短縮した方が良い?
A. 市況や銘柄の性質で最適解は変わります。まずは標準の3営業日で検証し、平均損益と勝率の組み合わせで調整します。

Q. ニュースの「質」はどう見極める?
A. 一過性(特別利益など)か、持続的(構造的な増益)かで分けます。後者ほど継続しやすい傾向があります。

まとめ

「決算ギャップ×三日ルール」は、情報の鮮度と需給の偏りを短期間で刈り取るシンプルなイベント戦略です。フィルタ→エントリー→VWAPでの損切り→3営業日で手仕舞いという一貫した手順を守ることで、初心者でも再現性の高い運用が目指せます。最初は小さく始め、十分な検証を経てロットを調整していきましょう。実行の質(執行・管理)が期待値を決めます。

コメント

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