コンテンツにスキップ

リスクリワードと期待値

リスクリワードと期待値は、1回ごとの勝ち負けではなく、勝率、平均利益、平均損失、取引コストを R 単位で統一して USD/JPY の売買を設計するための枠組みです。エントリー前の損切りと利確の設計、ロット計算、トレード記録の評価、部分利確や建値移動が本当に有利かを検証するときに使います。

ここでは R 倍の計算、勝率とペイオフの関係、期待値 E=pWqLE = pW - qL、実運用での R 設計、部分利確が期待値に与える影響を扱います。

定義

Rとは何か

R は、1回のトレードで最初に受け入れる損失額です。

1R=entrystop×position size+cost1R = |\text{entry} - \text{stop}| \times \text{position size} + \text{cost}

USD/JPY では価格差を pips に直します。

pips=price difference×100\text{pips} = |\text{price difference}| \times 100

例として次の2つを挙げます。

  • 買い:150.00 でエントリー、149.75 で損切り → 25 pips
  • 売り:150.00 でエントリー、150.30 で損切り → 30 pips

JPY 口座で USD/JPY を取引する場合、1通貨あたりの 1pip 価値は約 0.01円 です。

pip valueJPY=units×0.01\text{pip value}_{JPY} = \text{units} \times 0.01
取引数量1pip価値
1,000 USD10円
10,000 USD100円
100,000 USD1,000円

pip 価値の詳細はpip価値計算ツールにまとめています。

R倍計算

利益 R は、利益幅を初期リスク幅で割ります。

Rprofit=take profit pipsstop pipsR_{\text{profit}} = \frac{\text{take profit pips}}{\text{stop pips}}

例を表に示します。

損切り利確R倍
20 pips20 pips1.0R
20 pips30 pips1.5R
25 pips50 pips2.0R
40 pips60 pips1.5R

先に利確幅を決めて R を作るのが目的ではありません。先に無効化ラインで損切りを決め、到達可能な利確候補までの距離で R が足りるかを見ます。損切り位置の決め方は損切りの置き方を参照してください。

期待値

期待値は、平均的に1回のトレードでどれだけ増減するかを表します。

E=pWqLE = pW - qL
  • pp:勝率
  • qq:敗率。q=1pq = 1 - p
  • WW:平均利益
  • LL:平均損失

R 単位に正規化すると、平均損失を 1R1R として扱えます。

ER=p×b(1p)E_R = p \times b - (1 - p)

ここで bb は平均利益 R です。

期待値がプラスになる条件は次の通りです。

p×b>1pp \times b > 1 - p

したがって損益分岐勝率は次のようになります。

pBE=11+bp_{BE} = \frac{1}{1 + b}

勝率とペイオフの関係

平均利益R損益分岐勝率
0.5R66.7%
1.0R50.0%
1.2R45.5%
1.5R40.0%
2.0R33.3%
3.0R25.0%

勝率だけでは優位性を判断できません。勝率60%でも平均利益 0.5R なら期待値はマイナスになります。

ER=0.60×0.50.40=0.10RE_R = 0.60 \times 0.5 - 0.40 = -0.10R

逆に勝率40%でも平均利益 2R なら期待値はプラスになります。

ER=0.40×2.00.60=0.20RE_R = 0.40 \times 2.0 - 0.60 = 0.20R

取引コストを入れる

実運用では、スプレッド、滑り、手数料、スワップを無視しません。特に USD/JPY の短期売買では、損切り幅が狭いほどコスト R が大きくなります。

costR=spread pips+slippage pips+commission pipsstop pips\text{cost}_R = \frac{\text{spread pips} + \text{slippage pips} + \text{commission pips}}{\text{stop pips}}

コスト込み期待値は次のように見ます。

ER=pb(1p)costRE_R = p b - (1 - p) - \text{cost}_R

例として次の条件を置きます。

  • 損切り:20 pips
  • 平均利益:1.5R
  • 勝率:42%
  • 往復コスト:1.0 pip
costR=120=0.05R\text{cost}_R = \frac{1}{20} = 0.05R ER=0.42×1.50.580.05=0.00RE_R = 0.42 \times 1.5 - 0.58 - 0.05 = 0.00R

この戦略は見かけ上はプラスに見えても、コスト込みではほぼゼロです。

USD/JPYでのR設計

USD/JPY では、R は「何 pips 欲しいか」ではなく「どこまで逆行したら根拠が消えるか」で決めます。

順張り

上位足が上昇トレンドで押し目買いを狙う場合は次の手順で組みます。

  1. 押し安値、MA、水平線の下に損切りを置く
  2. 直近高値、日足節目、介入警戒水準の手前を利確候補にする
  3. 利確候補まで最低 1.5R ないなら見送る

例を示します。

  • エントリー:150.20
  • 損切り:149.90
  • リスク:30 pips
  • 利確候補:150.80
  • 利益:60 pips
R=6030=2.0RR = \frac{60}{30} = 2.0R

逆張り

レンジ上限で売る場合は次の手順で組みます。

  1. 損切りはレンジ上限の外側に置く
  2. 利確は中央線またはレンジ下限に置く
  3. レンジ幅が狭く、コスト込みで 1.2R 未満なら取引しない

逆張りは勝率を重視する戦略ですが、平均利益が小さくなりやすいものです。勝率だけで正当化しません。

部分利確

部分利確は心理的には楽になりますが、期待値を自動的に改善しません。利益を早く固定するほど、平均利益 R は小さくなります。

50% を 1R で利確し、残り 50% を 3R で利確する場合、フル到達時の利益は次の通りです。

W=0.5×1R+0.5×3R=2RW = 0.5 \times 1R + 0.5 \times 3R = 2R

しかし、1R 到達後に建値撤退するケースが多いなら、多分岐で計算します。

結果損益確率
損切り-1.0R52%
1Rで半分利確、残り建値+0.5R18%
1Rで半分利確、残り3R+2.0R30%
ER=(1.0×0.52)+(0.5×0.18)+(2.0×0.30)E_R = (-1.0 \times 0.52) + (0.5 \times 0.18) + (2.0 \times 0.30) ER=0.52+0.09+0.60=0.17RE_R = -0.52 + 0.09 + 0.60 = 0.17R

部分利確は、単純な勝ち負けではなく「損切り」「小勝ち」「大勝ち」の分布で評価します。

ロット設計

口座資金に対する許容リスクを先に決めます。

risk amount=equity×risk pct\text{risk amount} = \text{equity} \times \text{risk pct}

JPY 口座で USD/JPY を取引する場合は次のように数量を出します。

units=risk amount JPYstop pips×0.01\text{units} = \frac{\text{risk amount JPY}}{\text{stop pips} \times 0.01}

例を示します。

  • 口座:1,000,000円
  • 許容リスク:1%
  • リスク額:10,000円
  • 損切り:25 pips
units=1000025×0.01=40000\text{units} = \frac{10000}{25 \times 0.01} = 40000

この場合、取引数量は 40,000 USD が上限です。数量の逆算はポジションサイジングポジションサイズ計算ツールで詳しく扱います。

落とし穴

  • RRだけで勝てると考えない:2R を狙っても勝率が低すぎれば期待値はマイナスになる。
  • 損切りを狭めてRを良く見せない:無効化ラインより手前に置いた損切りはノイズで刈られる。
  • 部分利確を過信しない:早い利確は勝率を上げる一方で平均利益を削る。
  • 建値移動を無料オプション扱いしない:建値撤退が多すぎると、トレンドの伸びを捨てる。
  • コストを無視しない:10〜15pips 程度の短期損切りでは、1pip のコストでも期待値に大きく効く。
  • ニュース時の滑りを通常時と同じにしない:米CPI、FOMC、日銀、為替介入警戒時は実質 R が急に大きくなる。
  • 勝率を固定しない:USD/JPY は時間帯、金利テーマ、介入警戒、リスクオンとリスクオフで同じ手法の勝率が変わる。
  • 平均値だけを見ない:大きな損失が少数混じる戦略は、平均期待値がプラスでも実運用に耐えない場合がある。

Python 実装スケッチ

from dataclasses import dataclass
from typing import Iterable
def usdjpy_pips(entry: float, exit: float) -> float:
return abs(exit - entry) * 100.0
def pip_value_jpy(units: float) -> float:
return units * 0.01
def position_units_jpy(equity_jpy: float, risk_pct: float, stop_pips: float) -> float:
risk_amount = equity_jpy * risk_pct
return risk_amount / (stop_pips * 0.01)
def breakeven_win_rate(avg_win_r: float) -> float:
return 1.0 / (1.0 + avg_win_r)
def expectancy_binary(win_rate: float, avg_win_r: float, avg_loss_r: float = 1.0, cost_r: float = 0.0) -> float:
loss_rate = 1.0 - win_rate
return win_rate * avg_win_r - loss_rate * avg_loss_r - cost_r
@dataclass(frozen=True)
class Outcome:
probability: float
r_multiple: float
def expectancy_multi(outcomes: Iterable[Outcome]) -> float:
rows = list(outcomes)
total_p = sum(x.probability for x in rows)
if abs(total_p - 1.0) > 1e-9:
raise ValueError(f"probabilities must sum to 1.0, got {total_p}")
return sum(x.probability * x.r_multiple for x in rows)
def cost_r(spread_pips: float, slippage_pips: float, commission_pips: float, stop_pips: float) -> float:
return (spread_pips + slippage_pips + commission_pips) / stop_pips
# Example: USD/JPY partial exit
outcomes = [
Outcome(0.52, -1.0),
Outcome(0.18, 0.5),
Outcome(0.30, 2.0),
]
print(expectancy_multi(outcomes)) # 0.17R

参考

  • Investopedia — “Understanding Profit/Loss Ratio: Definition, Formula, and Practical Insights”
  • Investopedia — “The Myth of Profit/Loss Ratios”
  • Investopedia — “How Much Are Pips Worth and How Do They Work in Currency Pairs?”
  • Federal Register / CFTC — “Regulation of Off-Exchange Retail Foreign Exchange Transactions and Intermediaries”, 75 FR 55410