株価100円の銘柄で移動平均の差が2円、株価1万円の銘柄で差が200円なら、勢いはどちらが強いのでしょうか。MACDの数値だけなら200円の方が大きく見えます。しかし、どちらも長期EMAに対して2%の差なら、価格水準をそろえた比較では同じです。この「差を百分率へ直す」のがPPOです。
PPO(Percentage Price Oscillator、パーセンテージ・プライス・オシレーター)は、短期EMAと長期EMAの差を長期EMAで割るオシレーターです。代表設定は12・26・9で、PPO線、シグナル線、ヒストグラムを使います。本記事では数式、MACDとの違い、設定、相場条件、銘柄比較、注文、撤退、数量、見送り、バックテストまで一つの手順にします。価格と成績例は学習用の架空例で、特定銘柄の実績ではありません。
先に結論
- PPO=100×(短期EMA-長期EMA)÷長期EMAです。
- PPOが+2なら、短期EMAは長期EMAより2%上です。値は2%ポイントとして読みます。
- MACDは価格単位の差、PPOは百分率の差です。異なる価格水準や長い期間の比較ではPPOが便利です。
- 正規化されるのは価格水準だけです。値動きの荒さ、流動性、事業価値はそろいません。
- ゼロライン、シグナルクロス、ヒストグラムは候補であり、売買保証ではありません。
- 確定足の後に注文を決め、実際の買値と撤退価格から数量を計算します。
PPOの式:まず3本を分ける
StockChartsの公式学習ページは、PPOを二つの移動平均の差を長い方の移動平均に対する百分率で表すモメンタム・オシレーターと説明しています。標準的な形は、PPO線=100×[12日EMA-26日EMA]÷26日EMA、シグナル線=PPO線の9日EMA、PPOヒストグラム=PPO線-シグナル線です。出典:StockCharts ChartSchool「Percentage Price Oscillator – PPO」(2026年9月25日確認)。
一般化すると、PPOt=100×[EMAfast,t-EMAslow,t]÷EMAslow,tです。Signalt=EMAsignal(PPO)、Histogramt=PPOt-Signaltです。PPO(12,26,9)と書けば、短期12、長期26、シグナル9を示します。
短期EMAが102円、長期EMAが100円ならPPO=100×2÷100=+2.00です。これは「2%の利益」でも「株価が2%上がった」でもなく、短期EMAが長期EMAより2%高いという意味です。短期98円、長期100円なら-2.00です。PPOがゼロなら両EMAは等しく、ゼロをまたぐ動きは二つのEMAの交差と同値です。
| 表示 | 式 | 単位 | 意味 |
|---|---|---|---|
| PPO線 | 100×(EMA短期−EMA長期)÷EMA長期 | %ポイント | 相対的な平均差 |
| シグナル線 | PPO線のEMA | %ポイント | PPOの平滑線 |
| ヒストグラム | PPO線−シグナル線 | %ポイント | 2線の相対差 |
| ゼロライン | PPO=0 | — | 短期EMA=長期EMA |

なぜMACDではなく百分率にするのか
MACDは短期EMA-長期EMAという価格単位の差です。100円株の差2円と1万円株の差200円を並べると、後者が100倍大きく表示されます。PPOはその差を長期EMAで割るため、どちらも+2%になります。StockChartsも、MACDは絶対差、PPOは相対差であり、異なる証券や、価格が大きく変化した長期間を比べるときにPPOが向くと説明しています。
価格系列全体を正の定数c倍しても、EMAもc倍されます。PPOは100×[cEMA短期-cEMA長期]÷cEMA長期なのでcが約分され、値は変わりません。同じEMA初期化、調整、丸めを使う限り、株式分割で価格表示だけが変わっても、正しく調整された系列なら前後の尺度をそろえられます。
ただし、PPOが同じ2%だから二つの銘柄が同じ投資対象になるわけではありません。日々の変動率、出来高、スプレッド、時価総額、決算、財務、イベントリスクは正規化されません。PPOがそろえるのは「二つのEMAの相対的な開き」だけです。

| 比較 | MACD | PPO |
|---|---|---|
| 基本式 | EMA短期−EMA長期 | MACD÷EMA長期×100 |
| 単位 | 円・ドル等 | %ポイント |
| 異銘柄比較 | 価格水準の影響あり | 価格水準を正規化 |
| 長期比較 | 値上がりで尺度拡大 | 相対差を比較しやすい |
| ゼロ交差 | EMA交差 | EMA交差 |
| 変動率の正規化 | しない | しない |
| PPOが同じでも異なる要素 | 別に確認する指標・資料 |
|---|---|
| 価格変動の荒さ | ATR・実現変動率 |
| 売買しやすさ | 出来高・売買代金・スプレッド |
| 事業の質 | 決算・開示資料 |
| イベント | 決算日・権利・指数変更 |
| 下値リスク | 支持帯・ギャップ履歴 |
PPO、シグナル、ヒストグラムの読み分け
PPOがプラスなら短期EMAが長期EMAより上、マイナスなら下です。ゼロラインの上でPPOが上昇していれば相対的な上向き差が拡大し、下落していれば差が縮小しています。ゼロより上だから株価が必ず上がるわけではなく、上昇後の減速でもプラスは維持されます。
PPOがシグナル線を上抜けばヒストグラムはマイナスからプラスへ変わります。これはPPO自身がその平滑線を上回っただけで、価格と長期EMAの関係を直接示すものではありません。ゼロより下の強気クロスは下降局面の戻り、ゼロより上の弱気クロスは上昇中の一服かもしれません。価格構造と環境を組み合わせます。
ヒストグラムが拡大すると2線の差が広がり、縮小すると差が狭まります。「勢いの加速」と呼ぶことはできますが、物理的な加速度でも将来の反転予告でもありません。シグナル線もPPOから作るため、PPO線とヒストグラムを二つの独立証拠として数えません。
| 状態 | PPO | ヒストグラム | 読み方の候補 | 注意 |
|---|---|---|---|---|
| 上昇拡大 | 0より上で上昇 | プラス拡大 | 上向き差が拡大 | 過熱保証でない |
| 上昇減速 | 0より上で低下 | 縮小・マイナス | 差が縮小 | 即反転でない |
| 下降拡大 | 0より下で低下 | マイナス拡大 | 下向き差が拡大 | 売り保証でない |
| 下降減速 | 0より下で上昇 | 縮小・プラス | 下向き差が縮小 | 底打ち保証でない |
| シグナル | 計算上の事実 | 追加確認 |
|---|---|---|
| PPOゼロ上抜け | 短期EMAが長期EMAを上抜け | 価格の突破・流動性 |
| PPOゼロ下抜け | 短期EMAが長期EMAを下抜け | 支持割れ・イベント |
| シグナル上抜け | PPOが自身のEMAを上抜け | ゼロの位置・価格構造 |
| ヒストグラム反転 | PPOとSignalの差が符号転換 | 確定足・だまし |
PPOは上限・下限が固定されない
RSIの0〜100のような固定範囲はPPOにありません。StockChartsもPPOを理論上無制限とし、固定した買われすぎ・売られすぎ水準には向かないと説明しています。+5や-5を全銘柄共通の極端値と決めると、平常時の変動率が違う銘柄を誤比較します。
極端値を使うなら、同じ銘柄・同じ時間軸の過去分布で、たとえば直近3年の95%点や5%点を設計期間だけで決めます。それでも分布は相場環境で変わります。固定閾値と分位点の両方を未見期間へ持ち込み、売買回数と損失の変化を確認します。
PPOのダイバージェンスも同様です。株価が高値更新、PPOが高値未更新でも、反転の必要条件ではありません。上昇が続きながら相対的なEMA差だけが縮むことがあります。実際の支持割れ、出来高、決算日、注文可能性を待ちます。
| 閾値方法 | 長所 | 弱点 | 検証 |
|---|---|---|---|
| 固定±2等 | 単純 | 銘柄差が大きい | 複数群 |
| 過去分位 | 銘柄内で適応 | 期間依存 | ローリング |
| 標準化 | 分布を比較 | 外れ値・非定常 | 頑健尺度 |
| 閾値なし | 方向だけ利用 | 候補増加 | 価格構造を追加 |
設定12・26・9は出発点であって正解ではない
標準設定12・26・9は、終値の12期間EMA、26期間EMA、PPOの9期間EMAです。日足なら12日・26日・9日、60分足なら12本・26本・9本であり、同じ数字でも意味する時間は違います。週足で日足と同じ値を使えば、はるかに長い現象を測ります。設定値だけでなく、何時間・何日分の動きを測るかを保有期間と照合します。
短期期間を小さくする、長期期間を大きくする、またはシグナル期間を短くすると一般に反応は速く、交差が増えます。反応が速いほど良いとは限りません。レンジでは往復し、手数料、スプレッド、滑りの影響が強まります。遅い設定は小さな揺れをならす一方、転換後の損失を広げることがあります。
パラメータ探索では、12・26・9のほかに少数の役割別候補を先に決めます。たとえば5・20・5、12・26・9、20・50・9です。最良値だけを残さず、隣接設定で結果が急崩れしないか、別期間・別銘柄群で維持されるかを見ます。
| 設定例 | 主な役割 | 反応 | 注意 |
|---|---|---|---|
| 5,20,5 | 短期の変化 | 速い | 交差・費用増 |
| 12,26,9 | 標準的な出発点 | 中間 | 万能ではない |
| 20,50,9 | 中期の環境 | 遅い | 転換遅れ |
| 週足12,26,9 | 長期環境 | 非常に遅い | 未確定週足 |
| 速くする変更 | 起こりやすい変化 | 遅くする変更 |
|---|---|---|
| 短期期間を小さく | PPOの振幅・交差増 | 短期期間を大きく |
| 長期期間を大きく | 平均との差拡大 | 長期期間を短期へ近づける |
| Signalを短く | ヒストグラム反転増 | Signalを長く |
計算の再現性:EMA初期値と調整価格を固定する
PPOはEMAを二本使うため、EMAの初期化が違えば開始直後の値も違います。最初の価格を種にする、最初のN本のSMAから始める、取得履歴のさらに前から計算するなど実装差があります。十分な前履歴で差は小さくなる傾向がありますが、上場直後や大きなギャップでは残ります。
検証開始日の直前だけを読み込まず、少なくとも長期期間の数倍から数百本の前履歴を用意し、開始日のPPOが履歴長を増やしても実務上変わらないか確認します。TA-LibにもPPO関数がありますが、使用するMAタイプ、初期値、欠損処理をコードと一緒に保存します。出典:TA-Lib「PPO – Percentage Price Oscillator」(2026年9月25日確認)。
未調整の株式分割は価格を一日で大きく変え、EMAとPPOを壊します。調整済み終値を使う場合は、配当を含むか、OHLCすべてを同じ係数で調整したかを確認します。データ提供元、タイムゾーン、日足の締め、欠損、上場廃止銘柄を記録します。途中の小数を画面表示へ丸めて次のEMAへ使わず、内部精度を保ちます。
| 再現項目 | 固定する内容 | 不一致の例 |
|---|---|---|
| 価格 | 終値・調整方法 | 分割未調整 |
| EMA | α・初期値 | SMA seedと初値seed |
| 履歴 | ウォームアップ本数 | 開始点違い |
| 欠損 | 飛ばす・欠損 | 前値埋め |
| 時間 | 市場・締め時刻 | 日足違い |
| 精度 | 内部小数 | 途中丸め |
| MA種別 | EMA | SMA等へ変更 |
相場条件と組み合わせ:価格構造を先に置く
PPOはトレンドが持続するときに方向確認へ使いやすく、狭いレンジではゼロやシグナルを往復しやすい指標です。候補ルールは、①PPOがゼロより上、②ヒストグラムがプラスへ転換、③終値が直近高値を突破、④上位足も上向き、⑤次の抵抗まで余地がある、⑥流動性とイベント条件を満たす、です。
横ばいを除外するならCHOPやADXを別案として使えます。ただしPPO、MACD、EMA、ADXはいずれも価格から作る部分があり、数を増やすほど独立した根拠が増えるわけではありません。支持抵抗、出来高、決算日など異なる情報を優先します。
銘柄横断のランキングでは、同じ日、同じ時間軸、同じ設定、同じ調整方法でPPOを計算します。PPO上位だけを買うのではなく、売買代金、スプレッド、価格構造、業種集中、決算日をフィルターにします。値が高い銘柄へ集中すれば、すでに伸び切った局面を追う可能性があります。順位が付くと上位から買いたくなりそうですが、その価格からまだどのくらい余地があるかは別に知りたいところです。
| 用途 | PPO条件例 | 別情報 | 見送り |
|---|---|---|---|
| 上昇継続 | 0より上・再上昇 | 高値突破 | 抵抗直下 |
| 押し目 | 0より上で低下後反転 | 支持帯反発 | 支持割れ |
| 転換候補 | 0より下でSignal上抜け | 安値切上げ | 下降継続 |
| ランキング | 同設定のPPO | 流動性・業種 | イベント偏重 |
| レンジ除外 | 交差回数を制限 | CHOP等 | 往復頻発 |
| 組み合わせ | 追加する情報 | 重複リスク |
|---|---|---|
| PPO+支持抵抗 | 実際の高安 | 低い |
| PPO+出来高 | 参加量 | 中 |
| PPO+決算日 | イベント | 低い |
| PPO+MACD | 同じEMA差 | 非常に高い |
| PPO+EMAクロス | ゼロ交差と同値 | 非常に高い |
確定足から注文へ:同じ終値には約定できない
日足終値でPPOを計算するなら、シグナルは引けるまで確定しません。バックテストでシグナル日の終値へ買いを置かず、次の始値、上限指値、直近高値を超える買いストップなど実行可能な注文に変えます。場中のPPOは価格とともに変わるため、一時的な交差を確定信号と扱いません。
Investor.govは、成行注文は執行を優先する一方で価格を保証せず、指値注文は価格を制御する一方で約定を保証しないと説明しています。ストップ注文は到達後に成行となり、急変時にはストップ価格と約定価格が離れ得ます。出典:Investor.gov「Types of Orders」(2026年9月25日確認)。
東京証券取引所では基準値段に応じて一日の制限値幅があります。逆指値を置いても、特別気配や値幅制限で希望価格に約定するとは限りません。出典:日本取引所グループ「制限値幅」(2026年9月25日確認)。注文の有効期限、逆指値の条件、単元は利用する証券会社で確認します。
| 注文 | 利用場面 | 利点 | 保証されないこと |
|---|---|---|---|
| 翌日成行 | 確定後に参加 | 執行優先 | 価格 |
| 上限指値 | 追随上限を固定 | 買値制御 | 約定 |
| 買いストップ | 高値突破で発動 | 突破確認 | 発動価格 |
| 押し目指値 | 支持帯へ戻る想定 | リスク縮小 | 反発・約定 |
| 取消 | 期限・条件崩れ | 古い注文防止 | 再機会 |
撤退と数量:PPOのクロスを損切り価格にしない
撤退価格は、PPOが弱気クロスする場所ではなく、買い仮説を否定する支持帯や直近安値から決めます。PPOの弱気クロスを待つと、ギャップや急落で損失が拡大し得ます。時間切れ、イベント前、流動性低下も別の退出条件にします。
架空例として、口座100万円、1回の許容損失0.8%=8,000円、売買単位100株とします。PPOがゼロより上でヒストグラムが再びプラス、終値2,050円が直近高値を超え、支持帯の下1,988円を撤退候補とします。手数料と滑りの保守的見積りは往復4円/株です。
次の取引時に2,056円で買えるなら、1株リスク=2,056-1,988+4=72円です。8,000÷72=111株なので、100株へ切り下げ、予定損失は7,200円です。翌朝2,140円へギャップアップした場合は、1株リスク=156円、理論数量は51株です。100株へ切り上げると15,600円で予算超過となるため、採用数量は0株です。
| 項目 | 通常 | 上方ギャップ |
|---|---|---|
| 想定買値 | 2,056円 | 2,140円 |
| 撤退候補 | 1,988円 | 1,988円 |
| 費用等 | 4円/株 | 4円/株 |
| 1株リスク | 72円 | 156円 |
| 理論数量 | 111株 | 51株 |
| 採用数量 | 100株 | 0株 |
| 予定損失 | 7,200円 | 0円 |

バックテスト:PPOの便利さを未来情報にしない
検証では銘柄、時間軸、調整価格、EMA定義、12・26・9、初期値、ウォームアップ、確定時刻を保存します。信号日の終値と発注可能な次バーを分け、手数料、スプレッド、滑り、指値未約定、ストップのギャップ超過を反映します。ランキングなら、その時点で取引可能だった全銘柄を母集団にし、上場廃止を除外しません。
設計期間、検証期間、最後の未見期間を分けます。12・26・9だけでなく隣接設定の頑健性を確認し、最良パラメータだけを公表しません。上昇、下降、横ばい、高・低変動、決算期へ分け、PPOが機能しない環境も記録します。
勝率だけでなく、1回当たり期待値、平均利益、平均損失、最大ドローダウン、保有期間、回転率、未約定率、ギャップ損失、銘柄・業種集中を見ます。PPO上位を並べた比較でも、価格水準は正規化されますがリスクは正規化されないため、ポジションサイズは別にそろえます。
| 検証項目 | 保存値 | 防ぐ誤り |
|---|---|---|
| 計算 | EMA・期間・初期値 | 実装差 |
| データ | 調整・時刻・欠損 | 分割歪み |
| 信号 | 確定日時 | 未確定足 |
| 発注 | 次バー・上限 | 同終値約定 |
| 費用 | 手数料・滑り | 理想約定 |
| 母集団 | 当時の全銘柄 | 生存者偏向 |
| 評価 | 期待値・DD・回転 | 勝率偏重 |
| 比較案 | 変更点 | 固定するもの |
|---|---|---|
| A | PPOゼロ上抜け | 母集団・費用 |
| B | Signal上抜け | 同上 |
| C | 価格突破を追加 | PPO設定 |
| D | 12,26,9→20,50,9 | 注文・撤退 |
| E | PPO→MACD | 注文・撤退・数量 |
見送る条件を先に決める
EMA初期値や調整方法が不明、分割・欠損の異常、未確定足、レンジ内で交差が頻発、抵抗までの余地不足、決算直前、低流動性、スプレッド拡大、上方ギャップで最小単元を持てない場合は見送ります。PPOが強いという理由だけで例外を作りません。
異銘柄比較では、同じPPOでも変動率や流動性が違うため、ランキング上位をそのまま等金額で買いません。リスク量、業種、相関、イベントを確認し、同じ要因へ集中するなら候補を減らします。
| 見送り条件 | 理由 | 再検討 |
|---|---|---|
| 調整不明 | 値が再現不能 | データ確認 |
| 交差頻発 | レンジの往復 | 価格が端へ |
| 抵抗直下 | 利益余地不足 | 突破後 |
| 決算直前 | ギャップリスク | 発表後 |
| 低流動性 | 表示値で約定困難 | 売買代金回復 |
| 単元超過 | 損失予算違反 | 0株 |
| 未確定足 | 値が変わる | 引け後 |
| 業種集中 | 共通要因 | 候補分散 |
実践チェックリスト
| 時点 | 確認 | 記録 |
|---|---|---|
| 設定 | fast・slow・signal | 12,26,9等 |
| データ | 調整・欠損・時刻 | 提供元 |
| 初期化 | EMA seed・前履歴 | 方法 |
| 比較 | 同じ日・同じ足 | 母集団 |
| 環境 | 支持抵抗・イベント | 見送り理由 |
| 確定 | 足が閉じたか | 信号時刻 |
| 注文 | 成行・指値・期限 | 上限 |
| 撤退 | 仮説否定価格 | 1株リスク |
| 数量 | 予算÷リスク | 単元切下げ |
| 終了後 | 実約定・費用 | 逸脱 |
まとめ:PPOは価格水準をそろえるが、リスクまではそろえない
PPOは、短期EMAと長期EMAの差を長期EMAで割り、百分率に直したオシレーターです。+2なら短期EMAが長期EMAより2%上です。標準的なPPO(12,26,9)は、PPO線、9期間シグナル、両者の差であるヒストグラムを表示します。
MACDが価格単位の差であるのに対し、PPOは価格水準を正規化します。100円株と1万円株、または長期間に価格が大きく変わった同一銘柄を比べやすい点が強みです。ただし変動率、流動性、企業価値、イベントリスクは正規化されません。固定上限・下限もありません。
ゼロ交差やシグナル交差は候補です。確定足、価格構造、流動性、イベントを確認し、次に実行可能な注文へ変換します。撤退は支持帯など仮説否定点から決め、実際の買値との距離で数量を再計算します。最小単元がリスク予算を超えるなら0株が答えです。PPOで比べやすくなるのは価格水準です。私が求めたいのは、その比較が実際の注文を良くするかで、同じ値なら同じ量を持てるという安心感ではありません。
資料確認・更新日:2026年9月25日。図表・数値例は当ブログ作成です。
免責事項
本記事は情報提供を目的とし、特定銘柄、売買手法、金融商品を推奨するものではありません。PPO、MACD、移動平均は将来の値動きや利益を保証しません。急変、ギャップ、値幅制限、売買停止、未約定、滑りにより想定以上の損失が生じる場合があります。投資の最終判断はご自身の責任でお願いいたします。記載の数値は、本文中に示した日付時点の決算短信・会社のIR資料などの公開情報に基づきます。最新の情報は各社の開示でご確認ください。
広告・PR:この記事にはアフィリエイト広告が含まれます。リンク経由の申込みなどにより、運営者が報酬を受け取る場合があります。

