最終更新: 2026年06月
「ストキャスティクスのスローとファスト、どちらを使えばいいですか?」という質問は定番だ。答えから言う。ほぼ全ての場合、スローストキャスティクスを使えばいい。
ただ、その理由を計算式レベルで理解していないと、応用が利かない。設定値の意味も分からないまま使い続けることになる。本記事では計算原理から整理し、EAへの実装時の考え方まで掘り下げる。
ストキャスティクスの計算原理
直接回答: スローストキャスティクスはファストストキャスティクスをさらに平滑化したものであり、ダマシが少なく実務では圧倒的に多く使われます。設定値は「%K期間=14、スローイング=3、%D期間=3」が標準です。
ストキャスティクスは、指定した期間における価格の「位置」を0〜100で表すオシレーターだ。基本となる計算式は以下の通り。
%K = (当日終値 - 過去N日間の最安値) ÷ (過去N日間の最高値 - 過去N日間の最安値) × 100
直感的には「直近の値動きの中で、今の価格がどこにいるか」を示す。100に近いほど高値圏、0に近いほど安値圏にいる。
%Kを計算した後、その移動平均を取ったものが%Dだ。
%D = %Kのm期間移動平均
この%Kと%Dの組み合わせがストキャスティクスの基本形だ。
ストキャスティクスが優れている点は「価格の位置」を直接数値化することです。RSIは「値上がり幅の比率」を使うのに対し、ストキャスティクスは「高値・安値の範囲の中のどこにいるか」を計算します。この違いにより、ストキャスティクスはレンジの境界付近での反転シグナルにより敏感な特性を持ちます。
ファストとスローの構造的な違い
ファストとスローの違いは「平滑化の有無」だ。
ファストストキャスティクス
| ライン | 内容 | |---|---| | %K(ファスト) | 上記の計算式そのもの。平滑化なし | | %D(ファスト) | %Kのm期間単純移動平均 |
ファストは価格変動をそのまま反映するため、反応が速い。速すぎるため、ノイズ(偽シグナル)が多くなる。
スローストキャスティクス
| ライン | 内容 | |---|---| | スロー%K | ファーストの%D(平滑化済みの値)を%Kとして使う | | スロー%D | スロー%Kのさらなる移動平均 |
つまりスローストキャスティクスは、ファーストの%Dを出発点にしてもう一段平滑化したものだ。視覚的に滑らかになり、ダマシが減る。
一般的に実務でストキャスティクスを使う際は「スロー」が指定される。理由は単純で、シグナルの質がファストより安定しているからだ。
「平滑化の段数」で整理すると、ファストは1段(%Kから%Dへの1回の移動平均)、スローは2段(%KのMA→スロー%K→スロー%D)の処理をします。この追加の平滑化によってチャートの線が滑らかになり、短期的なノイズによる誤シグナルが減ります。ただし平滑化の代償として、シグナルが少し遅れます。この遅れが「許容できるかどうか」がファストとスローの選択基準になります。
標準設定値(14, 3, 3)の意味
MT4/MT5での標準設定は「%K期間=14、スローイング=3、%D期間=3」だ。
| パラメータ | 値 | 意味 | |---|---|---| | %K期間 | 14 | 価格の高安値を参照する期間 | | スローイング | 3 | %Kを平滑化する期間(1=ファスト、2以上=スロー) | | %D期間 | 3 | %Dの移動平均期間 |
スローイングを1に設定するとファスト、2以上に設定するとスローになる——これがMT4の仕様上の重要なポイントだ。
標準設定「14, 3, 3」が広く使われている理由は、RSIの標準設定(期間14)と参照期間を合わせることで、2つの指標が同じ価格データを見ていることにあります。RSIとストキャスティクスを組み合わせて使う場合、期間を統一することで「2つが同じ判断をしているか」の確認が直感的にしやすくなります。
時間軸別の推奨設定値
| 時間足 | 推奨設定 | 備考 | |---|---|---| | M1〜M15 | (5, 3, 3) または (7, 3, 3) | 応答性を優先。ノイズには損切りで対応 | | H1 | (9, 3, 3) または (14, 3, 3) | 標準設定が多くのトレーダーと目線を揃えやすい | | H4以上 | (14, 3, 3) または (21, 3, 3) | 大きなサイクルを捉える | | スイング・日足 | (15, 5, 5) | より平滑化された信頼性の高いシグナル |
FX市場は24時間稼働であり、株式市場より短期のサイクルが多い。そのため株式向けの標準設定(14, 3, 3)よりも短め(9, 3, 3)の設定がFX専用バックテストでは安定しやすいケースがある——とはいえ、これは市場条件次第であり、統計的に検証してから適用することが前提だ。
設定値を変更する際は「バックテストで統計的な有効性を確認すること」が必須です。特定の設定値が「良さそう」という感覚的な判断ではなく、実際のバックテストで過去3〜5年以上のデータにおいてPFが改善されるかを確認してから変更してください。設定値の変更は過剰最適化リスクを伴うため、パラメーター数が増えるほど過去データへのフィッティングが強まります。
シグナルの読み方
ストキャスティクスの基本的な使い方は以下の通りだ。
過熱感の判定
- 80以上: 買われすぎゾーン(売りシグナルの候補)
- 20以下: 売られすぎゾーン(買いシグナルの候補)
ただし、強いトレンド相場では80超でも上昇し続けることが多い。逆張りシグナルとして使う場合は「トレンドを確認してから逆張り」という矛盾を常に意識する必要がある。
80/20のレベルは固定値として使うだけでなく、「ゾーンからの脱出」を使う方法もあります。「ストキャスティクスが80を超えて高値圏に入り、その後80を下抜けたタイミングを売りシグナルとする」という使い方は、単純なバンドタッチより少し遅れますがシグナルの信頼性が高まります。ストキャスティクスが高値圏・安値圏に「入ってから出てきたとき」を判断基準にするのが実務的な使い方として効果的です。
%Kと%Dのクロス
%Kが%Dを上抜けたら買いシグナル、下抜けたら売りシグナルとして使われる。クロスが過熱ゾーン(80以上)または売られすぎゾーン(20以下)内または付近で発生したとき、シグナルの信頼性が高まる。
ダイバージェンス
価格が高値を更新しているのにストキャスティクスの高値が低下している(強気ダイバージェンス逆)→ トレンド転換の先行シグナルとして機能することがある。
ダイバージェンスはストキャスティクスの応用技術として最も強力な使い方の一つです。価格チャートとストキャスティクスの動きを比較し、「価格は高値を更新しているが指標の高値は前回より低い(弱気ダイバージェンス)」という状態は、買いの勢いが弱まっていることを示します。ただしダイバージェンスは確認に時間がかかるため、主に日足・週足などの高位時間足で使うと信頼性が高まります。
ファストとスローの使い分け実例
筆者の実装経験から言うと、スキャルピング系のEAにはファスト設定(スローイング=1)、スイング系・長期系にはスロー設定(スローイング=3以上)を使い分けることが多い。
具体的な判断基準はこうだ。
- シグナルの速度 > 精度 → ファスト。エントリータイミングを1本でも早く取りたいスキャルピング向け
- 精度 > 速度 → スロー。ダマシを減らして勝率を上げたいスイング向け
実際にバックテストで比較すると、スキャルピング戦略ではファストがわずかに優位なケースがある一方、日足ベースのスイング戦略ではスローが明確に安定しやすい——という傾向が確認されている(要検証だが、筆者の複数通貨ペアでの観察に基づく)。
スキャルピングでファストを使う場合の注意点として、損切り設定の重要性があります。ファストはシグナルが速い代わりにダマシも多いため、損切りを狭く設定してダマシの損失を小さく抑える設計が必要です。「シグナルが速いから多くの場合に機能する」ではなく「速い分ダマシも多い、そのダマシを小さな損失で処理する」という発想で設計することが重要です。
Claudeと会話しながらインジケータが作れる[hedgrow-fx]はこちら
ストキャスティクスのパラメータ最適化やEA実装を効率化したい場合、Hedgrow FX のようにClaudeと会話しながらインジケータが作れる環境を活用することで、試行錯誤のサイクルを短縮できる。
ストキャスティクスを含む複合指標のEA設計では「複数の条件が揃ったときのみエントリー」という論理を正確にコード化することが求められます。Hedgrow FXでは日本語で「ストキャスティクスのスロー%Kが20以下から上向きに転換し、かつボリンジャーバンドが下限付近のときのみロングエントリー」といった複合条件をそのまま入力してコードを生成できるため、MQL5の文法を詳しく知らなくても実装ができます。
EA実装時の注意点(MQL5)
MQL5でストキャスティクスを実装する場合、iStochastic() 関数を使う。
double stoch_main = iStochastic(
_Symbol, // シンボル
_Period, // 時間足
14, // %K期間
3, // %D期間
3, // スローイング(1=ファスト)
MODE_SMA, // 平滑化方法
STO_LOWHIGH // 適用価格(高安値)
);
設計上の注意点として、スローイングパラメータの値が「1ならファースト、2以上ならスロー」になることをコード内のコメントに明記しておくことを推奨する。後でパラメータを変更した際の意図が明確になる。
MQL5でのiStochastic()関数使用時の実務的な注意点として「バッファインデックスの指定」があります。iStochastic()はインジケーターハンドルを返す関数で、実際の値を取得するにはCopyBuffer()関数と組み合わせる必要があります。バッファ0が%K(メイン)、バッファ1が%D(シグナル)に対応します。この仕様はMT4のiStochastic()とは異なるため、MT4からの移植コードでは書き換えが必要です。
内部リンク:関連記事
- FXボリンジャーバンドの設定値おすすめ — ストキャスティクスと組み合わせる代表的なテクニカル指標
- EAフォワードテストのやり方と過剰最適化防止 — ストキャスティクスEAの検証方法
- EAバックテストのスプレッド設定 — ストキャスティクスを使ったスキャルピングEAのバックテスト精度向上
まとめ
ストキャスティクスのスロー・ファストの違いと活用方法をまとめます。
- スローはファストをさらに平滑化したもの。ダマシが少なく実務ではほぼスローを使う
- 標準設定「14, 3, 3」のスローイング=3がスロー設定、スローイング=1にするとファスト設定
- スキャルピング向けは速度優先のファスト(スローイング=1)も選択肢
- 80/20のゾーン脱出シグナルは単純バンドタッチより信頼性が高い
- %Kと%Dのクロスは高値圏・安値圏内で発生したときに信頼性が増す
- ダイバージェンスは高位時間足で使うと信頼性が高まる
免責事項: 本記事はFXトレードおよびEA設計の教育目的で作成されています。FX取引には元本割れを含む損失リスクがあります。バックテスト結果は過去のデータに基づくものであり、将来の利益を保証するものではありません。投資判断はご自身の責任において行ってください。
よくある質問(FAQ)
Q: ストキャスティクスとRSIの使い分けはどうすればいいですか? A: RSIは「値上がり幅の比率」、ストキャスティクスは「価格の位置」という異なる計算原理を持つ。両者を組み合わせると確認効果が得られる。同じ類の指標なので重複情報になる面もあるが、独立性は一定程度ある。
Q: フルストキャスティクスとは何ですか? A: ファストとスローを統合した設定で、%K期間・スローイング・%D期間をすべて独立してカスタム設定できる。実質的にはスローストキャスティクスの汎用版だ。MT4ではフルストキャスティクスとして実装されていることが多い。
Q: ストキャスティクス単体のバックテスト成績はどうですか? A: RSIと同様、単体ではプロフィットファクターが1.00前後に収束しやすい。他の指標・条件と組み合わせることが前提になる。
Q: ストキャスティクスとMACDを組み合わせる場合の注意点は? A: 両者ともにモメンタム系のため情報の重複が生じる。トレンド系(移動平均線)+ ストキャスティクスという組み合わせの方が独立性が高く、相互補完しやすい。
Q: ストキャスティクスの計算に使う価格は終値だけですか? A: デフォルト設定では高値・安値を使う(STO_LOWHIGH)。終値のみ(STO_CLOSECLOSE)に変更することもできるが、一般的には高安値の方が相場の実態に近い価格帯を参照できる。
Q: スローストキャスティクスの設定で「5, 3, 3」はどういう意味ですか? A: %K期間=5、スローイング(平滑化期間)=3、%D期間=3という設定です。%K期間を14から5に短縮することで参照する高安値の期間が短くなり、より短期の価格変動に敏感に反応します。スキャルピングや15分足以下の短期取引に向いています。ノイズが増えるため損切りの設計が重要です。
Q: MT4とMT5でストキャスティクスの実装コードは変わりますか? A: はい、変わります。MT4のiStochastic()は直接数値を返しますが、MT5のiStochastic()はハンドルを返すためCopyBuffer()との組み合わせが必要です。また引数の並び順も異なります。MT4からMT5への移植では、このインジケーター取得部分の書き直しが必ず必要になります。
著者: Hedgrow FX編集部(金融工学専門家監修)
