Abstract
- 出典: Trading Steady「Is the ORB Strategy Actually Profitable? 6 Month Results」
- やったこと: EURUSD・15分足で使われていたORBの最終形を、USDJPY・1時間足に翻訳して検証
- 対象: USDJPY(ドル円) / 1h / 結果固定時点の720暦日(2024-07-21〜2026-07-10、判定はニューヨーク時間)
- 結論: 固定スプレッド控除後でプラス。……でも、薄い。そして数字より、翻訳で2つの道具の働きが変わっていたほうが本題だった。
| 指標 | 値 |
|---|---|
| トレード数 | 82 |
| 勝率 | 54.9% |
| 固定スプレッド控除後リターン | +3.04%(年率にすると 1.5% くらい) |
| 最大ドローダウン(決済ベース) | −3.62% |
| 1トレードあたり平均損益 | +0.038R |
1. Introduction — 深夜に、他人の手法を見ていた
自分の手法が、うまく揃わなかった。
詰まると、他人のやってることを眺めたくなる。人の手法は、気楽だ。決めるところが、もう全部決まってる。深夜のターミナルの横で、動画を流していた。
海外の人が、淡々と数字を出していた。「ORB、半年回してみました」。オープニングレンジ・ブレイクアウト。チャートはEURUSD。ニューヨーク市場が開く最初の15分で高値と安値の箱を作って、そこを抜けたらついていく。抜けた反対側に損切りを置いて、利確はリスクの1.5倍。
半年で70本、勝率44.3%、リターン+6.5%。実現したリワード・リスク比は1.44だった、と動画ではまとめていた。
利確の +1.5R か損切りの −1R だけで全トレードが終わる、と単純化すれば、トントンになる勝率は 1 ÷ (1 + 1.5) = 40.0%。44.3%は、そこから4.3ポイント上にある。
ただし、これは時間切れもコストもない、きれいな二択の線だ。動画の実現値は1.44だし、途中でルールも変わっている。そのまま損益分岐点には使えない。
……それでも、余白は厚くなさそう。
ちょっと条件が変わったら、形も変わるかもしれない。
そして、わたしがやろうとしているのは、条件を変えることだった。この手法はEURUSD・15分足の話。でも、わたしの手元に15分足の長いデータはない。yfinanceから降ってくる15分足は、せいぜい60日ぶん。半年には届かない。
だから、長く取れたUSDJPYの1時間足に置き換えてみる。足も、通貨ペアも変わる。置き換えたら、これはもう、あの人の手法そのものじゃない。わたしの翻訳になる。
2. Method — 翻訳する
2.1 動画のルールを書き取る
まず、動画で確認できたルールを、自分用に写す。
| 項目 | 動画で確認できた内容 |
|---|---|
| 対象 | EURUSD(動画内チャートは OANDA) |
| 足・市場 | 15分足 / ニューヨーク市場オープン |
| レンジ定義 | 9:30の足(最初の15分)の高値と安値 |
| エントリー | レンジ外で終値が確定 → 次の足の始値で成行 |
| ストップ | レンジの反対側の端 |
| 利確 | リワード・リスク 1.5 : 1 |
| 時間フィルタ | 12:00以降はエントリーしない |
| ATRフィルタ | レンジ幅 > 3.0×ATR、または < 1.25×ATR なら見送り |
| ATRの期間・平滑化 | 動画では確認できず |
| 保有の終了時刻 | 動画では確認できず |
ATRフィルタは、動画の最初から使われていたわけではない。3か月回したあと、負け方を見て追加されていた。動画の70本と+6.5%は、ATRなしの前半と、ATRありの後半が混ざった6か月の記録だった。
決まって見えた1.25にも、向こう側の三か月があった。
今回は、最後に残った1.25と3.0を、最初の日から全区間に置くことにした。動画の6か月を再現するのではなく、最終形のルールを別の場所へ運んでみる。
2.2 翻訳の決断
書き写して、すぐ手が止まった。「9:30の足」が、USDJPYの1時間足にはない。
この1h足は、正時きざみ。9:00、10:00、11:00……。9:30から始まる足は、どこにもない。原文の起点が、宙に浮いてしまう。
いくつか置き換え方を考えて、9:00〜10:00の1時間足の高値・安値をレンジにすることにした。9:30を中に含む正時の箱で、「ニューヨークの寄り」という時刻だけは残す。(東京の9時やロンドンの寄りを選ぶ案もあった。でも、それはさらに別の手法になる。)
もうひとつ、あとで効いてくる決断。損切り幅の基準を、「エントリー価格から、レンジの反対端まで」にした。エントリーは次の足の始値だから、すでにレンジの外。損切り幅は、レンジ幅そのものにはならない。
利確はその損切り幅の1.5倍。12:00以降は建てない。ここまでは動画で確認できた。
一方、16:00 ETで強制的に閉じるのは、わたしが足した条件だ。動画では保有の終了時刻を確認できなかった。ORBを当日中の手法として閉じるために置いたけど、この1本は原文から運んだ線ではない。
2.3 これは、わたしの翻訳
忘れそうだから、先に残す。
ここで確かめてるのは、動画の6か月そのものじゃない。
EURUSD・15分足の最終ルールを、USDJPY・1h足へ移したあとのルール。
「9:30の足」は9:00の箱で代えた。終了時刻は16:00に置いた。
数字が何を言っても、それは翻訳を経たあとの数字。
2.4 翻訳の代償 — 入り口が、1日1回になった
1時間足で手順を追い直すと、変なことに気づく。
レンジは9:00〜10:00。その外で終値が確定しうる最初の足は10:00〜11:00で、確定するのは11:00。エントリーはその次、11:00の始値。次のブレイクを確認してから建てる時刻は12:00になって、時間フィルタで消える。
つまり、1日に入れるチャンスは、ちょうど1回。15分足では何度かあったはずの入り口が、1個になった。
これは「1hだと少し粗くなる」だけじゃない。手法の骨格が変わってる。
2.5 ATRを、初めてちゃんと見る
書き写したルールの中に、ずっと素通りしてた数字がある。ATRフィルタ、1.25と3.0。
正直、ATRが何なのか、あんまり分かってないまま打ち込んでた。「× 1.25」「× 3.0」。……平均、なんだっけ。
いちど、定義に戻ってみる。ATRが見ていたのは、その足の高値と安値だけじゃなかった。前の終値からできた隙間も拾って、その中でいちばん大きい値幅を残している。それを、今回は14本ぶん、単純に平均した。
動画では、期間も平均の取り方も確認できなかった。
置いてみて、走らせる前に、日ごとのレンジ幅がフィルタを通るか数えてみた。そこで、手が止まる。
下限(1.25倍)で、半分以上の日が消えた。58%。 安全のためのフィルタ、のはずなのに。……半分、以上?
レンジ幅をATRで割った比を、ぜんぶ並べてみる。中央値は1.18。四分の一が0.94、四分の三が1.51。

横軸がレンジ幅÷ATR。山のいちばん厚いところに、1.25の赤い線が立ってる。上限の3.0(点線)は、ずっと右で、ほとんど何も引っかからない。
1.25の線。……端っこじゃない。
分布の、ほとんど真ん中に刺さってる。
「1時間足にしたからだ」と書きかけて、止めた。
動画のEURUSD・15分足でも、「1本」とATRを作る足は同じ長さだ。通貨ペア、時間帯、足の長さ、平均の取り方。まとめて変えすぎて、犯人を一人にできない。
分かってるのは、USDJPY・1h・14本の単純平均では、中央値が1.18で、1.25の下限が58%の日を落としたことまで。
元動画の1.25は、数か月の結果を見て追加された数字だった。それを別の場所へ固定値のまま置いたら、平凡な日を半分捨てるゲートとして働いた。壊れた、と言うより、働きが変わっていた。
2.6 検証の設計(走らせる前に決めたこと)
数字を見てから条件を緩めない。これは、たぶん、ルールより先に必要なルールだった。
| 項目 | 設定 |
|---|---|
| データ | yfinance / USDJPY / 1h / 720暦日 |
| 時刻 | ニューヨーク時間。夏時間・冬時間に追随 |
| レンジ | 9:00〜10:00。1日で最初に確定したブレイクだけを見る |
| エントリー | ブレイク確定の次の足の始値 |
| 終了 | 損切り / 利確 / 16:00の強制手仕舞い |
| コスト | 固定スプレッドだけを反映。ほかは0として置く |
| サイズ | 1回の初期リスク = 口座の1% |
| 期間分割 | 720暦日を144日ずつ、5つに分ける |
| 調整 | 今回の結果を見て数字を変えない |
固定スプレッドは、OANDA証券が公表していたUSDJPY 0.3銭〜 の下限を使った。売る側と買う側に半分ずつ。ずっと下限のまま、という置き方だから、現実より静かな相場を仮定している。
今回の数字を見て、1.25や1.5は動かしていない。向こうで選ばれた数字を借り、USDJPY・1時間足への翻訳条件は、走らせる前に固定した。
ひとつ、走らせる前に正直に置いておく。標本が薄い。数えたら、720日で82本。「100を割ったら統計の話は控える」と先に決めていたから、それに引っかかってる。動画の70本と、だいたい同じ厚みしかない。「厚く確かめる」つもりが、そうならなかった。
だから、この先の数字から、手法の良し悪しは言わない。言えるのは「わたしの翻訳では、この窓で、こう出た」まで。
3. Results — 数字、そのあとで気づいたこと
3.1 数字
| 主版 | 参考(判定には使わない) | |
|---|---|---|
| 内容 | 12:00カットあり | カット撤廃 |
| トレード数 | 82 | 169 |
| 勝率 | 54.9% | 52.1% |
| 固定スプレッド控除後リターン | +3.04% | +6.46% |
| 最大ドローダウン(決済ベース) | −3.62% | −5.31% |
| 純プラスの区間 | 3 / 5 | 3 / 5 |
判定は通った。全期間+3.04%。5つの区間のうち、3つがプラス。
固定スプレッドを外すと+3.59%。0.56ポイント削られて、それでもプラス側には残った。少なくとも、わたしが置いた0.3銭では死ななかった。ほかのコストは、まだここに入ってない。
勝率54.9%の横に、「40.0%より上」と書きかけた。
消した。
82本のうち、ほとんどは +1.5R でも −1R でも終わっていなかった。同じものさしじゃない。
動画の6か月と、並べておく。
| わたしの翻訳(USDJPY / 1h / 720日) | 動画の記録(EURUSD / 15分 / 6か月) | |
|---|---|---|
| トレード数 | 82 | 70 |
| 勝率 | 54.9% | 44.3% |
| リターン | +3.04%(固定スプレッドのみ控除) | +6.5% |
| ルール | 最終形を全期間に固定 | 途中からATRフィルタを追加 |
EURUSDとUSDJPY。15分と1時間。途中でルールが増えた6か月と、最初から固定した720日。
並べることはできても、比べることはできない。表にしたら、別物になった輪郭だけが見えた。
3.2 決済理由を、開いてみる
判定は通った。でも、ずっと引っかかってた。1トレードあたりの平均損益が、+0.038R。ほとんどゼロ。プラスなのに、なんでこんなに薄いんだろう。
トレードを、どういう理由で閉じたかで数えてみる。
- 16:00の強制手仕舞い … 76本
- 損切り … 5本
- 利確 … 1本
82本のうち、76本が「時間切れ」で閉じてる。利確まで届いたのは、1本だけ。

ほとんどが16:00の時間切れ。利確(緑)まで届いたのは、82本のうち1本。
なんで届かないんだろう、と手を動かす。損切り幅(エントリーからレンジ反対端まで)の中央値を見たら、52pipsもあった。利確はその1.5倍、だいたい78pips先。損切りは52pips逆行したところ。11:00に建てて16:00に閉じるまで、5時間。1時間足5本ぶん。
だから、大半の日が、どっちの線にも触れないまま16:00を迎える。利確も損切りも、5時間の箱には遠い場所に引いてある。

標本のなかで、損切り幅が中央値くらいの1本を選んだ。エントリー(黒)から利確(緑)まで遠く、価格はレンジ帯と利確線のあいだを漂って、そのまま16:00を迎える。
リワード・リスク1.5の設計が、ほとんど働いていない。これは「ブレイクを11:00に買って、16:00に成行で閉じる」手法に近くなってる。
ATRのときと、おなじだ、と思った。
でも、16:00に閉じる線を足したのは、わたしだった。
1hに持ってきて、5時間の箱に入れた。その中では、届かない場所に線があった。
……時間足だけのせいには、できない。
3.3 時期でも、割れてる
固定した5つの144日区間を、古いほうから見る。区間1〜3はプラス、区間4〜5はマイナス。新しい2区間では弱っている。

720暦日窓を、開始日から144日ずつ5つに固定分割。緑の区間1〜3はプラス、赤の区間4〜5はマイナス。
「この窓の後半2区間では、この翻訳ルールは負けてた」。それ以上は、82本からは言わない。各区間は10〜22本しかない。
4. Discussion — 線だけを、連れてきてしまった
4.1 条件は、あとから来なかった
1.25は、USDJPY・1hでは58%の日を落とす門になった。1.5の先に置いた利確線は、16:00が来るまでに、ほとんど届かなかった。
1.25も1.5も、ここへ置いたときには、完成した数字に見えた。
ただし、同じ原因とは言えない。ATRでは通貨ペア、足、時間帯、計算方法をまとめて変えた。損切りと利確には、1時間のレンジに加えて、動画で確認できなかった16:00決済が入っている。
法則、とまでは言わない。ひとつの翻訳で、二度、条件の置き忘れを見つけただけ。
4.2 まだ、線の外にあるもの
82本しかない。まだ、手法の良し悪しを言えるほど厚くない。
今回の数字を見てパラメータは変えていない。ただ、借りてきたのは、向こうで三か月の結果を見たあとに残った最終形だった。
コストとして入れたのも、ずっと一定のスプレッドだけ。急に広がる夜も、滑る瞬間も、この中にはいない。ドローダウンも、決済したあとの残高だけを見ている。持っている途中の、まだ名前のついていない痛みまでは数えてない。
だから、+3.04%は答えじゃない。この窓で、この置き方をしたら、少しだけ上に残った。それだけ。
4.3 次は、一つずつ運ぶ
今度は、いっぺんに戻さない。
今回は、部屋を移したうえに、家具の置き場所まで変えて、それで「前と違う」と言っていたみたいだった。
一段戻すたびに、どの働きが戻ってくるのか。
わたしが変えたから届かなくなったのか。場所を離れたから、意味が薄くなったのか。
今度は、急がずに見たい。
「平均」って言葉、ずっと使ってたのに、なんの平均なのか、ちゃんと見たのは今日が初めてだった。
決済理由の表を一緒に眺めてもらって、AIに「これ、時間切ればっかりだね」って言ったら、「そうですね」って静かに返してきた。……そうですね、って。まあ、そうなんだけど。
布団に入ってから、思い出した。人の手法は気楽だ、って思ってたんだった。決めるところが、もう決まってるから、って。
レンジの時刻も、ATRの計算も、16:00の線も、ぜんぶ、わたしが決めてた。
……借りられたの、ルールの形だけだ。いまごろ気づいた。
Appendix — 再現環境
- 再現コード: GitHub
- 記事時点CSVの照合:
python chapters/season2/ch01_orb_1h_translation/run.py - Yahoo Financeからの再実行:
python chapters/season2/ch01_orb_1h_translation/run.py --live - 図の生成:
python chapters/season2/ch01_orb_1h_translation/figures.py - 結果生成コード:
src/bocchi_the_botter_repro/season2/orb.py - 再照合日時: 2026-07-11 23:57:17 UTC
- Python: 3.13.7 / yfinance 1.3.0 / pandas 3.0.2 / numpy 2.4.4
- データ:
JPY=X1h /period="max"/auto_adjust=False - 取得時に得られた約730暦日から、末尾720暦日を使用(730日は保証された仕様ではなく、この取得時点の観測)
- 窓(ET): 2024-07-21 19:00:00−04:00 〜 2026-07-10 16:00:00−04:00
- 実効バー数: 12,084 / ATR評価可能日: 510
- スプレッド: OANDA証券「スプレッド比較」の2026-04-14取得記録を使用(2026-04-06〜04-10計測、東京サーバー裁量プランMT5、USDJPY 0.3銭〜、配信率96.56%帯の下限)
- トレード明細:
results/reference/ch01_orb_1h_translation/trades_S2-1_ORB_USDJPY_{main,ref}_net.csv - 固定144日区間:
results/reference/ch01_orb_1h_translation/segments_S2-1_ORB_USDJPY_main_net.csv - 元動画: Trading Steady、2025-09-19公開。ルール・チャート・自動字幕を2026-07-11再確認
- 元OHLCは保存していない。保存済みなのはトレード明細のため、Yahoo側の修正後に完全再現できない可能性がある
検証条件の詳細
- ATR:
max(H−L, |H−前Close|, |L−前Close|)の14本SMA。9:00 ETのレンジ足確定時点で判定 - シグナル: ET日ごとに最初に確定したブレイクのみ。次足Openで約定
- 足内判定: 同一1h足でSLとTPの両方に到達した場合はSL優先
- 強制決済: 16:00 ETの1h足Open
- コスト: 固定bid-ask全幅0.3銭相当のみ。手数料・スリッページ・スワップ・スプレッド変動は0
- サイズ: 初期リスク1% / 証拠金率4%。サイズ不足による見送りは0件
- 休場日: NYSE休場日を除外しない
- 最大DD: 各取引の決済後残高から算出。保有中の時価評価を含めない
固定144日区間の内訳
| 区間 | 期間(開始日を含み、終了日を含まない) | 取引数 | 損益 |
|---|---|---|---|
| S1 | 2024-07-21〜2024-12-12 | 19 | +29,607円 |
| S2 | 2024-12-12〜2025-05-05 | 22 | +18,419円 |
| S3 | 2025-05-05〜2025-09-26 | 18 | +12,329円 |
| S4 | 2025-09-26〜2026-02-17 | 13 | −9,219円 |
| S5 | 2026-02-17〜2026-07-11 | 10 | −20,770円 |
取得時点の公開データと記載条件に基づく検証です。データ仕様の変更・欠損・修正などで結果は変わりえます。投資助言ではなく、売買判断はご自身の責任で。
