「株テック | Kabutech Lab.」は、日本株トレードを初心者向けに解説するメディアです。

ツールの使い方や考え方、環境構築方法を学ぶ場として、主に以下の内容を解説しています:

  • TradingViewを使ったバックテスト・ストラテジーの実践情報
    (プログラミング知識がなくても始めやすい検証ツールです)
  • 三菱UFJ eスマート証券のkabu APIを使った環境構築
    (日本株の発注が可能な数少ないAPI接続サービスです)

バックテストは自作プログラム(Pandasなど)で応用可能、発注は他の証券会社のRSSなどでも対応できます。
特定の証券会社やツールを強く推奨するものではありません。

以下の点にご留意ください:

  • 個別銘柄の売買や投資判断の助言は行いません。
  • サンプルのストラテジーやコードは学習・検証用の参考資料であり、実際の売買や利益を保証しません。
  • バックテストは過去データに基づく結果であり、将来の成果を保証しません。
  • 自動売買環境はエラーハンドリングと十分な整備が必須です。
  • 市場変動、システム障害、予期せぬ遅延やエラーなどのリスクがあります。

投資はあくまで自己責任です。リスクを理解して慎重に取り組んでください。

当サイトでは一部アフィリエイト広告を利用しています (プライバシーポリシー)。

ご質問はこちらまでお気軽にどうぞ。

ORB(寄付き初動)攻略ガイド|TradingViewで実践する「高期待値」順張り戦略

🧭 はじめての方へ:基礎 → 実践 → 設計 → 検証 → 理論。最短で再現性に辿り着くためのロードマップ
👉️ Kabutech Lab.のおすすめの進め方

テクニカル分析一覧

本シリーズでは、VWAP、VPVR、SMC、ワイコフなど主要テクニカル指標を整理して紹介しています。 各指標の特徴や押し目・戻り目の考え方、TradingViewでのチャート活用例をまとめており、 初心者から実践者まで、自分のトレードに応用できる情報を効率よく確認できます。

🧩 【初心者向け】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 で十分に再現可能です。

  • OR形成
  • ブレイク 判定
  • アラート 通知

TradingView 通知を利用して 裁量トレード を行うには、このコードだけでも問題ありません。

🧩 少し応用発展的な実装も追加してみる

🧩 ORB × トレンド方向|精度を上げる一番簡単な方法

ORB は その日の方向性がある時に強い戦略 です。

日足で方向を確認 → 寄付きで ORB

日足トレンド ORB 判断 エントリー方針
上昇トレンド OR 高値ブレイクを重視 ロング主体
下降トレンド OR 安値ブレイクを重視 ショート主体
レンジ 両方向に注意 フェイクに注意 or 見送りも可

⚠️ 注意:初動の ボラティリティ が小さいとダマシも多いため、他の指標や 出来高 も合わせて確認すると精度向上が期待できます。

🎯 エントリーの具体例

ロング(買い)

  1. 日足 :上昇 トレンド
  2. OR の高値 ライン を引く
  3. 出来高 が増加しながら高値 ブレイク
  4. 順張り ロング

ショート(売り)

  1. 日足 :下降 トレンド
  2. OR の安値 ライン を引く
  3. 高値更新できず弱気 → 安値 ブレイク
  4. 順張り ショート

より実戦向きの設計

さらに実際の デイトレード では、 日足 トレンド 方向のフィルターだけでなく

  • 出来高 の確認
  • 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 を活用して、自動で取引や通知を実行できます。 手動管理の手間を減らし、安定した運用環境を構築するステップを紹介。

🧭 はじめての方へ:基礎 → 実践 → 設計 → 検証 → 理論。最短で再現性に辿り着くためのロードマップ
👉️ Kabutech Lab.のおすすめの進め方

テクニカル分析一覧

本シリーズでは、VWAP、VPVR、SMC、ワイコフなど主要テクニカル指標を整理して紹介しています。 各指標の特徴や押し目・戻り目の考え方、TradingViewでのチャート活用例をまとめており、 初心者から実践者まで、自分のトレードに応用できる情報を効率よく確認できます。

📈 【無料】テクニカル分析

テクニカル指標をTradingViewで実践活用

詳しく見る

🛠️ 自動売買の構築

TradingView, kabu API を使った環境構築

詳しく見る

📊 戦略設計

戦略を検証し、改善するための手法と実装

詳しく見る

🔧 ストラテジー作成

Pineスクリプトでの戦略実装をガイド

詳しく見る

📦 システム拡張

Slack連携/プロセス監視で安定・拡張

詳しく見る
FO 日本株自動売買
背景画像
「戦略が、自律する。」