OCO注文とは何か
OCO(One Cancels the Other)は、二つの指値系注文を同時に置き、片方が約定したらもう一方を自動でキャンセルする仕組みです。典型例は「利確の指値」と「損切りの逆指値」を同時に置く“ブランケット(括り)注文”です。これにより損小利大の設計を注文段階で固定化できます。
関連する基本用語
- 指値(Limit):指定価格以上で買わない/以下で売らない注文。スプレッドや板厚の影響を受けます。
 - 成行(Market):即時約定を優先する注文。スリッページが発生しやすい一方、約定率は高いです。
 - 逆指値(Stop / Stop-Loss):トリガー価格到達で発動する注文。多くの取引所は発動後に「成行」か「指値」のどちらかを選択できます。
 - OCO:利確用の指値と損切り用の逆指値をペア化。片方が約定すると他方が自動キャンセル。
 - トレーリングストップ:価格が有利に動くほど損切り水準を自動で追随させ、利益の目減りを抑えます。
 - GTC/IOC/FOK:有効期限指定。GTCはキャンセルまで有効。IOCは即時約定分のみ執行。FOKは全量即時約定が条件。
 - Reduce-Only:先物・永続でポジションを増やさず決済のみに使う指定。誤って反転ポジションになる事故を防ぎます。
 
OCOを使う狙い:期待値と一貫性
OCOは「入る前に出方を決めておく」ための道具です。売買の期待値は、勝率と損益比(R倍)の組合せで決まります。例えば勝率40%でも、平均利益が平均損失の2倍(R=2)なら期待値はプラスになります。OCOで利確価格(TP)と損切り価格(SL)を固定し、R/Rを先に規定することで、裁量のブレを抑えます。
リスク管理とポジションサイズ計算
最重要は「1トレードの最大損失(口座残高に対する割合)」を先に決めることです。多くの個人投資家は1%前後を上限の目安にします。サイズ計算は以下です。
許容損失額 = 口座残高 × 許容リスク率
1単位あたりのリスク = |エントリー価格 - 損切り価格| × 1単位の原資産価値
発注数量 = 許容損失額 / 1単位あたりのリスク
  
先物・永続では資金効率が上がる一方、強制ロスカットや資金調達率の影響を受けるため、クロスマージンよりアイソレーテッド+Reduce-Onlyを基本にし、過度なレバレッジを避けます。
具体シナリオ:ビットコイン現物のOCO(利確+損切り)
仮にBTC価格が65,000ドル付近、あなたは上昇トレンドの継続を想定して買いエントリーを検討しています。口座残高は10,000ドル、1トレードの許容損失を1%(=100ドル)とします。損切りは63,800ドル、利確は67,600ドルに設定しました(およそR=+2)。
- 想定エントリー価格:65,200ドル(スプレッドと板厚を考慮)。
 - 1単位あたりリスク:65,200 – 63,800 = 1,400ドル。
 - 許容損失:100ドル → 発注数量 = 100 / 1,400 ≈ 0.0714単位(=0.0714 BTC相当は大きすぎるため、ここでは0.0714ではなく0.0714/100の桁を調整する必要があります。実務では米ドル建て最小取引単位を考慮して数量を桁合わせしてください)。
 
注:現物の最小数量や小数点制限、板スリップ、手数料を含めて再計算し、過小・過大約定を防ぎます。計算に自信がなければ少し小さめに発注し、実効R/Rを維持します。
ストップの種類:Stop-MarketとStop-Limit
- Stop-Market:発動後は成行。約定率が高く、急落時の“飛び”にも対応。ただしスリッページは増えます。
 - Stop-Limit:発動後は指値。スリッページを抑えますが、薄い板や急変では約定しないリスクがあります。SLにはStop-Marketが無難です。
 
トレーリングストップで利益を守る
含み益が伸びたら、SLを建値付近→直近安値下へと繰り上げるのが定石です。可能ならトレーリング幅をATR(平均真の値幅)の0.8~1.2倍程度に合わせ、ノイズとトレンドをバランスさせます。OCOに代えて「トレーリング+部分利確」の運用もよく使われます。
部分利確と階段的OCO
分割して複数のOCOを置くと、期待値の安定に寄与します。例:ポジションの50%はR=+1で利確、残り50%はR=+2で利確。後者が残る間はSLを建値に引き上げ、“勝ちを残し負けを縮小”する状態を維持します。
ブレイクアウトとレンジでの使い分け
- トレンドフォロー型:上値抵抗を明確に超えたら成行/指値で参入し、OCOでTP/SLを同時セット。
 - レンジ逆張り型:レンジ上限近くでショート、下限でロング。必ずレンジブレイクに備えたSLを置きます。
 
DEXでの条件注文の考え方
多くのDEXは標準で逆指値/OCOを持ちません。自動化にはエグゼキュータ(例:キーパー/タスク実行サービス)を使う、あるいはリスク許容の範囲で「発注と同時の反対注文」を分離配置します。スリッページ許容値・最小受取量・フロントラン耐性(MEV保護)を必ず設定します。
チェックリスト(ミス防止)
- トリガー基準は「マーク価格」か「最終取引価格」か。
 - 損切りはStop-Marketか(指値にして約定漏れしないか)。
 - 先物はReduce-Only指定か。ポジション反転を防止。
 - OCOの数量合計は保有数量を超えていないか。
 - 有効期限(GTC/Limited)が意図どおりか。
 - 想定手数料・資金調達率を織り込んだR/Rか。
 - 板の薄さとスリッページに対する安全余白(SL距離・サイズ縮小)。
 
よくある落とし穴
- 逆指値の価格向きを誤る(ロングの損切りは「現在値より下」、ショートの損切りは「現在値より上」)。
 - Stop-Limitのリミット価格をトリガーより不利に置きすぎて埋まらない。
 - トリガーの基準価格(インデックス/マーク/ラスト)を見誤り、想定外の発動。
 - 永続でReduce-Onlyを外し、決済のつもりが新規建てになる。
 - イベント時(CPI・FOMC)にギャップやストップ狩りに遭う。サイズとSL距離で対応。
 
簡易バックテストの進め方
チャート上で過去のパターンに対して「エントリー位置・TP・SL」を固定し、約100トレードで勝率・平均R・最大ドローダウンを記録します。Rの分布を確認し、R=+2以上の尾が残る構成を探します。止めどき基準として「月次で期待値が崩れたら一旦停止」などルール化すると健全です。
執行の最適化ヒント
- 板寄せを避け、主要セッション(ロンドン・NY)で流動性が厚い時間帯に執行。
 - スプレッドが広いときは指値→成行への切替ロジックを用意。
 - 大口はTWAP/VWAP/POVアルゴを活用し、エントリー価格の分散でSL距離の相対負担を低減。
 
まとめ
OCOは「利確と損切りをペアで固定」し、期待値の設計をブレさせないための基本ツールです。サイズ計算・ストップ種別・トレーリングの三点を押さえれば、初心者でも損小利大の型を実装できます。まずは小サイズで運用し、ルール順守と記録から改善を重ねてください。
  
  
  
  

コメント