🧩 【初心者向け】ORB(Opening Range Breakout)解説|寄付き高安を活かしたブレイク戦略
「
寄付き
直後に一気に動いて、その後も方向性が続くことが多い」
こんな値動きを見たことはありませんか?
その 市場の勢い(モメンタム) を捉える戦略が ORB(Opening Range Breakout) です。
💡 ORB は 感覚ではなく、「時間帯による
需給
構造」を利用した戦略です。
👥 この記事は誰向け?
-
寄付き
の値動きに乗り遅れたくない
デイトレ
ーダー
- 銘柄の勢いをシンプルに捉えたい人
- 指標ゴリゴリより、明確な価格基準で判断したい人
📖 この記事でわかること
- ORB(Opening Range Breakout)の基本概念
-
寄付き
の時間帯での高値・安値の活用方法
-
トレンド
方向に沿った
エントリー
の判断ルール
-
TradingView
Pine Script
での実装例
📺 この記事の概要は、下記の動画でもわかりやすく解説しています!
🧩 ORB(Opening Range Breakout)とは?|寄付きの値動きを戦略化する
各市場には「
寄付き
特有の勢い」があります。
- 機関投資家の注文が集中する
- 前日のニュースや海外市場を反映して
ギャップ
が発生
-
需給
が偏りやすい
その結果、
寄付き
直後は方向性が出やすい時間帯です。
Opening Range(オープニングレンジ)
-
寄付き
の高値と安値 を「オープニング
レンジ
」として定義
- OR は 9:00-9:15 で定義するのがおすすめです
💡価格 × 時間 → シンプルかつ
再現性
が高いのが特徴です。
短い OR → ダマシ増える
長い OR → チャンス減るが精度向上
OR(オープニングレンジ)の代表的な5パターン
| パターン名 |
値動きの特徴 |
市場心理と戦略 |
| オープン・ドライブ (Open Drive) |
寄付きから一度も戻らず、一方向に突き抜ける。 |
非常に強い。 機関投資家の確信的な買い・売り。即順張り。 |
| オープン・テスト・ドライブ (Open Test Drive) |
一旦、前日終値などを「試し(テスト)」に行ってから反転、一気に抜ける。 |
強い。 逆方向の損切りを巻き込んで加速する。テスト後の反転でエントリー。 |
| オープン・リジェクション・リバース (Open Rejection Reverse) |
寄付き後に大きく動くが、ある価格で強く拒絶(リジェクション)され、レンジ内に戻る。 |
転換の兆し。 高値・安値の更新失敗を確認し、逆張りを検討。 |
| オープン・オークション (Open Auction) |
レンジ内を行ったり来たりし、方向感が定まらない。 |
迷い。 需給が均衡している。レンジを明確にブレイクするまで「待ち」。 |
| オープン・レンジ・エクステンション (Open Range Extension) |
最初はレンジを作るが、その後じわじわと一方向にレンジを拡張していく。 |
持続的なトレンド。 典型的なデイトレ日和。拡張が始まった方向へ順張り。 |
💡 補足:ORB(Opening Range Breakout)で順張りを狙う場合、主に オープンドライブ(Open Drive)の初動
ブレイク
を狙います。
ORB の基本ルール
ルールはシンプルでこの OR
レンジ
を上抜け・下抜けしたら順張り
エントリー
です。
| 条件 |
エントリー |
イメージ |
| 価格が OR 高値を上抜け |
ロング(買い順張り) |
勢いに乗る |
| 価格が OR 安値を下抜け |
ショート(売り順張り) |
下落モメンタムに乗る |
-
寄付き
直後の値動きが分かるため、短期で方向性を把握しやすい
- 初動
ブレイク
のタイミングで
リスク管理
された順張り
エントリー
が可能
- マーケットプロファイルの知識と組み合わせると、
レンジ
幅や潜在的ターゲットが見える
⚠️ ORB は 初動で負けると痛い 戦略です。
損切り
ルールがないとかなり危険です。
具体的な
損切り
位置を設定してからの導入をおすすめします。
🧩 TradingView での ORB 実装例(Pine Script)
【Pine Script】 Opening Range Breakout 9:00-9:15(寄付きレンジ 9:00-9:15 ブレイク戦略)
✅️ 高値突破で
ロング
、安値割れで
ショート
//@version=6
indicator("Opening Range Breakout 9:00-9:15", overlay=true)
// === 入力 ===
session = input.session("0900-0915", "OR時間帯")
// === セッション判定(v6対応)===
inSession = not na(time(timeframe.period, session))
// === OR高値・安値の計算 ===
var float orHigh = na
var float orLow = na
// === 初回ブレイク判定(OR確定後のみ) ===
var bool longTriggered = false
var bool shortTriggered = false
// セッション開始時(初回バー)に初期化
if inSession and not inSession[1]
orHigh := high
orLow := low
// セッション中は高値・安値を更新
else if inSession
orHigh := math.max(orHigh, high)
orLow := math.min(orLow, low)
// セッション終了後は値を固定
if not inSession and inSession[1]
orHigh := orHigh
orLow := orLow
longTriggered := false
shortTriggered := false
// === 描画 ===
plot(orHigh, "OR High", color.red, 2, plot.style_linebr)
plot(orLow, "OR Low", color.green, 2, plot.style_linebr)
// === アラート条件 ===
longSignal = ta.crossover(close, orHigh) and not inSession and not longTriggered
shortSignal = ta.crossunder(close, orLow) and not inSession and not shortTriggered
// 初回フラグ更新
if longSignal
longTriggered := true
if shortSignal
shortTriggered := true
alertcondition(longSignal, title="OR高値ブレイク", message="ロングチャンス!")
alertcondition(shortSignal, title="OR安値ブレイク", message="ショートチャンス!")
// === オプション:ブレイク時に矢印表示 ===
plotshape(longSignal, title="ロングシグナル", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortSignal, title="ショートシグナル", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
💡 コードや戦略はあくまで学習用のサンプルです。
実際の利益や成果を保証するものではありません。
必ず
バックテスト
などで検証の上、ご自身の判断・責任で戦略に取り組んでください。
👉️ バックテストで戦略評価・戦略設計
🧩 ORBの基本戦略はこのコードで再現できます
ここまで解説した ORB の基本ロジックは、
上記の
Pine Script
で十分に再現可能です。
TradingView
通知を利用して
裁量トレード
を行うには、このコードだけでも問題ありません。
🧩 少し応用発展的な実装も追加してみる
🧩 ORB × トレンド方向|精度を上げる一番簡単な方法
ORB は その日の方向性がある時に強い戦略 です。
日足で方向を確認 → 寄付きで ORB
| 日足トレンド |
ORB 判断 |
エントリー方針 |
| 上昇トレンド |
OR 高値ブレイクを重視 |
ロング主体 |
| 下降トレンド |
OR 安値ブレイクを重視 |
ショート主体 |
| レンジ |
両方向に注意 |
フェイクに注意 or 見送りも可 |
⚠️ 注意:初動の
ボラティリティ
が小さいとダマシも多いため、他の指標や
出来高
も合わせて確認すると精度向上が期待できます。
🎯 エントリーの具体例
ロング(買い)
-
日足
:上昇
トレンド
- OR の高値
ライン
を引く
-
出来高
が増加しながら高値
ブレイク
- 順張り
ロング
ショート(売り)
-
日足
:下降
トレンド
- OR の安値
ライン
を引く
- 高値更新できず弱気 → 安値
ブレイク
- 順張り
ショート
より実戦向きの設計
さらに実際の
デイトレード
では、
日足
トレンド
方向のフィルターだけでなく
-
出来高
の確認
-
ATR
による利確・
損切り
- 1日1回制御
-
引け
決済
などの仕様を追加することで、より実戦向きの設計になります。
そこで今回は、少し応用発展版の実装例も紹介します。
ORB Flexible
//@version=6
strategy("ORB Flexible", overlay=true, initial_capital=1000000)
// === 引け決済設定 ===
useEODClose = input.bool(true, "引け決済を使う")
eodHour = input.int(15, "引け決済 時")
eodMinute = input.int(20, "引け決済 分")
tz = input.string("Asia/Tokyo", "タイムゾーン")
// === 日足フィルター ===
useDailyFilter = input.bool(true, "日足MAフィルターを使う")
dailyMaLength = input.int(25, "日足MA期間")
// === OR時間設定 ===
orHour = 9
orMinute = 0
orLengthMin = 15
// === 他入力 ===
volLength = input.int(20, "出来高MA期間")
volMultiplier = input.float(1.5, "出来高倍率", step=0.1)
atrLength = input.int(14, "ATR期間")
tpATR = input.float(2.0, "利確ATR倍率", step=0.1)
slATR = input.float(1.0, "損切ATR倍率", step=0.1)
// === OR計算 ===
var float orHigh = na
var float orLow = na
// === 日付管理(1日1回制御)===
var bool tradedToday = false
if ta.change(time("D")) != 0
tradedToday := false
orHigh := na
orLow := na
// === OR時間判定 ===
startTime = timestamp(year, month, dayofmonth, orHour, orMinute)
endTime = startTime + orLengthMin * 60 * 1000
inSession = time >= startTime and time < endTime
if inSession and not inSession[1]
orHigh := high
orLow := low
else if inSession
orHigh := math.max(orHigh, high)
orLow := math.min(orLow, low)
// === 出来高フィルター ===
volMA = ta.sma(volume, volLength)
volFilter = volume > volMA * volMultiplier
// === 日足フィルター ===
// 「[1]」を付けて、前日確定時点の値を取得する
dailyClose = request.security(syminfo.tickerid, "D", close[1])
dailyMA = request.security(syminfo.tickerid, "D", ta.sma(close, dailyMaLength)[1])
longDailyFilter = not useDailyFilter or dailyClose > dailyMA
shortDailyFilter = not useDailyFilter or dailyClose < dailyMA
// === ATR ===
atr = ta.atr(atrLength)
// === ブレイク条件 ===
longSignal = ta.crossover(close, orHigh) and not inSession and volFilter and not tradedToday and longDailyFilter
shortSignal = ta.crossunder(close, orLow) and not inSession and volFilter and not tradedToday and shortDailyFilter
// === エントリー ===
if longSignal
strategy.entry("LONG", strategy.long)
tradedToday := true
if shortSignal
strategy.entry("SHORT", strategy.short)
tradedToday := true
// === 利確損切り ===
longTP = strategy.position_avg_price + atr * tpATR
longSL = strategy.position_avg_price - atr * slATR
shortTP = strategy.position_avg_price - atr * tpATR
shortSL = strategy.position_avg_price + atr * slATR
strategy.exit("CLOSE", from_entry="LONG", limit=longTP, stop=longSL)
strategy.exit("CLOSE", from_entry="SHORT", limit=shortTP, stop=shortSL)
// ====================
// 引け決済
// ====================
if useEODClose
isAfter1520 = (hour == 15 and minute >= 15) or hour > 15
if isAfter1520 and barstate.isconfirmed
strategy.close_all(comment="EOD CLOSE")
// === 描画 ===
plot(orHigh, "OR High", color.red, 2, plot.style_linebr)
plot(orLow, "OR Low", color.green, 2, plot.style_linebr)
🧩 詳しいロジックの意味について
各パラメータやロジックの詳細な考え方は
下記の「
ストラテジー
設計編」で解説しています。
👉 ストラテジー実装・設計の考え方はこちら
🧩 ORB 戦略のまとめ
-
寄付き
の高値・安値 が基準(9:00-9:15)が一般的でおすすめ
- 初動
ブレイク
で順張り、
レンジ
内では逆張りを活用
- マーケットプロファイルや他指標と組み合わせると信頼度アップ
-
TradingView
で可視化して、自動
アラート
も設定可能
ORBはルールが明確だからこそ、検証・改善・自動化に向いている戦略です。
🧩 通知までと、自動運用は別世界です
今回のコードは、
TradingView
上でシグナル検出・
アラート
通知まで可能です。
しかし実際に資金を動かすには、
- 証券
API
との接続
- 自動発注処理
- サーバー常時稼働
- エラー時の再接続処理
など、別の設計が必要になります。
ORB戦略の弱点
ORBのような寄り付き型戦略は、基本的に「1日1回」の試行になります。
単一銘柄だけでは試行回数を増やしづらい点が弱みです。
✅️ 試行回数が少ない戦略は、統計的な優位性を確認するまでに時間がかかるという構造的な弱点があります。
この弱点を補うには、複数銘柄を同時に運用し、試行回数を分散させる必要があります。
しかし、人力で何十銘柄も監視・発注するのは現実的ではありません。
FO(Flex Order)
本記事で紹介した戦略ロジックは、FO(Flex Order)に組み込むことで、
-
TradingView
アラート
連携
- 証券
API
自動発注
-
VPS
常時稼働
- 複数銘柄の同時運用
といった自動化が可能になります。
👉 FO の詳細はこちら
💡 ORBの弱点を「分散」によって補いながら、実運用へと拡張できます。
🧩 関連コンテンツ(学習・活用リンク)
単体の指標だけではダマシも発生します。
複数指標を組み合わせることで、
エントリー
や利確の精度を高める方法を体系的に解説。
高度な
テクニカル
指標を使っても、検証せずに運用するのは危険です。
勝率
や損益、
リスク管理
の精度を確認して、より確実な手法へブラッシュアップ。
アラート
や
Webhook
を活用して、自動で取引や通知を実行できます。
手動管理の手間を減らし、安定した運用環境を構築するステップを紹介。