記事一覧
CCIオシレーター逆張り順張りインジケーターバックテストドル円

CCIの設定と±100の使い方:2,448通り検証で逆張りは負け

CCIの±100を逆張りと順張りの両方で読み、ドル円2,448通りをバックテストしました。線が±100の外にいるのは年の約4割です。抜けた直後は値が伸び、内側に戻った直後は伸びません。最も残ったのはゼロラインで、それは移動平均線クロスと同じものでした。

CCI(Commodity Channel Index)は、価格がその平均からどれだけ離れているかを、離れ方の平均で割って目盛りにしたオシレーターです。**±100の2本の線が引かれていて、そこを超えたら「行き過ぎ」**という説明とセットで紹介されます。

ただし、その先の使い方は2つに割れています。±100の外側で反対方向に入る逆張りと、±100を抜けた方向に入る順張りです。同じ線を見て、正反対のことをします。どちらが正しいのかは、指標の説明からは決まりません。

もう一つ、あまり触れられない前提があります。±100という線は「珍しい」ことになっている、という前提です。CCIの式に入っている0.015という定数は、読み取り値のおおむね7〜8割が±100の内側に収まるように選ばれた、と説明されます。逆に言えば、外側は2〜3割のはずです。

そこから測りました。±100の外側は、年の約4割でした。

50%60%70%80%71014203050CCIの期間
M15H1H4定数0.015が狙った7〜8割ドル円2025年・各時間足の全足
0.015という定数は読み取り値の7〜8割を±100の内側に収めるためのものです。どの時間足でもどの期間でも57.5〜61.9%にしかならず、線は年の約4割を±100の外で過ごしていました。

CCIは何を測っているのか

計算は3段です。

  1. 典型価格 =(高値+安値+終値)÷3
  2. 平均偏差 = 直近N本の典型価格が、その平均からどれだけ離れているかの平均
  3. CCI =(典型価格 − 平均)÷(0.015 × 平均偏差)

分子は「平均からどれだけ離れたか」、分母は「ふだんどれくらい離れるものか」です。ふだんの離れ方の何倍離れているかを測っている、と読めます。

ここに恣意的な選択が3つ入っています。典型価格を使うこと、標準偏差ではなく平均偏差を使うこと、そして0.015という定数です。順に測りました。

定数0.015と水準100は、同じつまみ

0.015は割る数なので、変えると線全体が拡大縮小するだけです。別の定数にすることは、別の水準で読むことと同じであって、別の指標にはなりません。

定数0.015で読むと最大誤差
0.010水準66.71.1e-13
0.015水準1000
0.020水準133.35.7e-14
0.030水準2000

誤差は浮動小数点の丸めの桁です。定数と水準は2つのつまみに見えて、1つしかありません。

期間がCCIの上限を決める

平均からのずれは合計すると必ず0になるので、プラス側の合計とマイナス側の合計は等しくなります。1本の足が持てるのはプラス側の全部までで、そこから**|CCI| ≤ 期間 ÷ 0.03** という上限が出ます。

期間上限2025年の実測最大(1時間足)
7233.3233.3
10333.3333.3
14466.7466.7
20666.7507.2
301000.0596.4
501666.7592.1

上限は理屈だけの話ではなく、実際に触ります。 時間足3種×期間6種の18通りのうち9通りで、その年の最大値が上限とぴったり一致しました。

実務上の意味は一つです。期間を短くすると、水準を上げても届かなくなります。 このスイープでも、期間7で±250を待つ設定は、時間足と期間の12区分すべてで7通りずつが1回も発動せず、取引数0で終わりました。期間と水準は独立したつまみではありません。

平均偏差か標準偏差か

分母を標準偏差に差し替えて比べました(1時間足・2025年)。

期間相関±100の内外が食い違う足ゼロの上下が食い違う足
70.99619.73%0%
140.99509.11%0%
500.99579.57%0%

ゼロの上下は1本も食い違いません。 分母は絶対に負にならないので、どんな散らばりの測り方を使っても符号は変わらないからです。分母が動かせるのは目盛りだけで、±100の内外は1割の足で入れ替わります。

CCIの設定と読み方

主要な環境には最初から入っています。CCIは価格チャートの下に別枠で表示されるタイプで、ローソク足には重なりません。

環境追加する場所
MT4 / MT5挿入 → インディケータ → オシレーター → Commodity Channel Index
TradingViewインジケーター検索から Commodity Channel Index
ブラウザ(Formiq)インジケーター一覧から「CCI」

設定ダイアログに並ぶ項目

項目既定値意味
Period(期間)14何本ぶんの価格を使うか。20を使う流派もある
Apply to(適用価格)Typical price (HLC/3)高値・安値・終値の平均。終値ではない
Levels(水準線)−100 と +100枠の中に引かれる2本の横線。売買の判断に使う

MT4で引かれる水準線は初期状態では0本のことがあります。 その場合は「レベル表示」タブで −100 と 100 を手で追加します。この2本が無いと、この記事の話は画面上で確認できません。

画面に出るもの

別枠の中を、1本の線が上下します。RSIやストキャスティクスと違って上限も下限もありません。 0を挟んで、大きく上に行くこともあれば下に行くこともあります。

線の位置一般的な読み方
+100より上買われすぎ、または上昇の勢いが強い
−100〜+100中立。何もしない
−100より下売られすぎ、または下降の勢いが強い
0を上下に抜ける上向き/下向きの転換

「または」と書いたのは、同じ位置を正反対に読む2つの流派があるからです。この記事はその2つを別々に測っています。

売買のルールとして使われている形

呼び方入り方考え方
逆張り−100より下で買い、+100より上で売り行き過ぎたから戻る
順張り(±100の抜け)+100を上に抜けたら買い、−100を下に抜けたら売り抜けたということは勢いがある
ゼロライン0を上に抜けたら買い、下に抜けたら売り向きが変わった

同じ±100の線を見て、逆張りと順張りは正反対の売買をします。 どちらが正しいかは指標の説明からは決まらないので、この記事では両方を同じ条件で回して比べました。

いじれるつまみは、実は2つではない

期間と水準の2つに見えますが、後半で書くとおり期間は水準の上限も決めています(期間7のCCIは±233.3までしか動きません)。適用価格を終値に変えると別の線になり、±100の内外が食い違う足が期間7で14.68%、期間50で5.00%出ます。無視できる差ではありません。

検証の条件

数字を見る前に、何をどう測ったかを書いておきます。この表と同じ設定を入れれば、同じ結果が出ます。

項目
通貨ペア米ドル/円
期間2025-01-01 〜 2025-12-31(比較用に2024年も同条件)
時間足15分足 / 1時間足 / 4時間足
読み方逆張り(±水準の外側で反対方向)/ ±水準の抜け(抜けた方向)/ ゼロライン(水準を上下に抜ける)
期間7・10・14・20・30・50
水準逆張り:入口100・150・200・250 × 出口0・50・100/ 抜け:50・100・150・200・250/ ゼロライン:−100・−50・0・50・100
組み合わせ1区分あたり204通り。時間足3種 × 期間4区分で合計2,448通り
決済反対シグナルまで。逆張りだけは出口の水準を別に指定する
損切り・利確使わない(別セクションで測定)
スプレッド0.3pips固定。約定は終値
ロット0.1ロット

逆張りは買いと売りのどちらか一方しか作りません(「−100より下は買い」は買いしか作らない)ので、買い側と売り側を別のシステムとして回しました。 抜けとゼロラインは対称なので、エントリーと決済に同じルールセットを使います。

±100を抜けた先に何があるか

バックテストの前に、値動きだけを見ました。売買ルールも決済も挟まないので、「±100が何か言っているのか」だけが残ります。

期間14のCCIが±100を抜けた足、そして±100の内側に戻った足を全部拾い、そこから10本・20本・50本先の値幅を測ります。ただし生の値幅では意味がありません。2024年のドル円は年間で1,632pips上げているので、どの足から測っても買い方向の数字は大きくなるからです。そこで同じ区間の全足の平均値幅を引き、平均的な足と比べてどれだけ余分に動いたかを見ます。

−10−50+5+10+1510本先20本先50本先その足から先の値幅(平均的な足との差・pips)
M15 · n=5776H1 · n=1396H4 · n=346実線=±100を抜けた直後/破線=±100の内側に戻った直後
±100を抜けた直後は平均的な足より値が伸び、±100の内側に戻った直後は伸びません。4時間足だけが両方とも逆を向いています。
時間足抜けた直後(10 / 20 / 50本先)内側に戻った直後件数
15分足+0.46 / +0.93 / +2.04−0.86 / −1.01 / −1.925,776
1時間足+2.51 / +3.93 / +2.89−2.61 / −3.06 / −3.171,396
4時間足−3.89 / −3.14 / −9.79+2.91 / +5.02 / +12.50346

2024年と2025年、上抜けと下抜けを合わせた平均です。15分足と1時間足では、抜けた直後は平均より伸び、戻った直後は伸びません。 年・時間足・先読み本数で分けた24通りのうち、抜けが平均を上回ったのは22通り、戻りが下回ったのは24通り全部でした。

4時間足だけが両方とも逆を向いています。 ただし12通り中6通りと5通りで、当たっているかどうかも判定できない数字です。件数も346件しかありません。

つまり±100は「行き過ぎ」ではなく、「まだ続く」の側に寄っています。少なくとも15分足と1時間足では。

3つの読み方をバックテストした

同じ期間14・水準100を、3通りに読ませました。逆張りは買い側と売り側の合計です。

時間足逆張り±100の抜けゼロライン
15分足2025−1,175.2+643.4−1,136.4
15分足2024−805.2−203.2−910.7
1時間足2025−1,193.7+424.8+2,294.4
1時間足2024−2,249.8+1,839.9+2,579.8
4時間足2025−156.2+577.5+569.5
4時間足2024−995.8+863.8+1,363.3

逆張りは6通りすべてで赤字、抜けは6通り中5通り、ゼロラインは6通り中4通りで黒字でした。値動きだけを見て出た結論と、売買した結果は一致しています。

取引数も添えておきます。1時間足2025年で、逆張りは買い210回・売り212回、抜けは321回、ゼロラインは693回です。

逆張りの中身

逆張りが負ける形はいつも同じでした。勝率は高く、勝ちが小さく、負けが大きい。

読み方時間足平均勝率平均利益平均損失2025年に黒字だった設定
逆張り・買い1時間足59.9%+44.4−68.727/69
逆張り・売り1時間足56.7%+44.0−83.12/69
±100の抜け1時間足40.1%+101.6−71.820/29
ゼロライン1時間足31.2%+59.5−23.327/30

売買の生きている設定だけの平均です。勝率で並べると順序が完全に逆になります。 これはこのシリーズで18本目の同じ結果です。

逆張りの売り側はとくにひどく、15分足では2025年に黒字の設定が69通り中0通りでした。2024年のドル円が1,632pips上げた年だったことを差し引いても、2025年は年間−56pipsの横ばいです。相場の向きだけでは説明が付きません。

時間足別に、両方の年で残った設定

片方の年だけの結果は選び方の問題になるので、2024年と2025年の両方で黒字だった設定を数えます。

読み方15分足1時間足4時間足
逆張り・買い2/728/7222/72
逆張り・売り0/720/721/72
±100の抜け17/3020/3011/30
ゼロライン6/3022/3013/30

1時間足のゼロラインが22/30で最も残りました。 逆張りの売りは216通り中1通りです。

4時間足は逆張りの買いが22/72と、逆張りの中では唯一まともな数字を出しています。ただし2025年だけを見ると56/69が黒字で、2024年と重ねると22通りまで落ちます。片方の年で6割が黒字になる読み方は、翌年に残るとは限りません。

パラメータ別

読み方ごとに分けて出します。同じつまみが読み方によって逆を向くからです。

ゼロライン・15分足(期間別、2025年/2024年に黒字だった数)

期間2025年の平均平均取引数黒字 2025黒字 2024
7−1,1214,5510/50/5
14−7303,0300/50/5
30+3281,9563/53/5
50+1,2551,4195/54/5

15分足のゼロクロスは、期間を伸ばすほど良くなります。 理由は取引数です。期間7・水準0は年4,533回売買していて、スプレッド0.3pipsだけで1,359.9pipsを払います。実際の損益は−1,699.3pipsなので、取引しなければ払わずに済んだぶんが損失の8割です。

同じ設定を期間50にすると1,469回まで減り、2025年は+614.1pips、2024年は+189.5pipsになります。

±100の抜け・1時間足(水準別)

水準2025年の平均平均取引数両方の年で黒字
±50+1,5514046/6
±100+1,3952926/6
±150+1,5191826/6
±200−936852/6
±250−675290/6

±50から±150までは平らで、±200から先で崩れます。 ここも取引数の問題で、±250は年29回しか発動しません。

ゼロライン・1時間足(水準別)

水準2025年の平均2024年の平均両方の年で黒字
−100+166+1,8923/6
−50+1,325+2,3096/6
0+1,548+1,8176/6
+50+1,763+6534/6
+100+1,710−4253/6

ゼロラインをゼロから動かす理由は見つかりませんでした。 −50と0だけが両方の年で6/6です。+50と+100は2025年のほうが良く見えますが、2024年で落ちます。

既定値(期間14・水準100)はどこにいたか

多くの環境の初期値は期間14で、引かれる線は±100です。

読み方時間足2025年の順位2024年の順位
±100の抜け1時間足18/3010/30
ゼロライン(14@0)1時間足6/304/30
±100の抜け15分足13/3026/30

ゼロラインの既定期間は両方の年で上位でした。 ±100の抜けの既定値は真ん中です。悪くはありませんが、この検証では水準を±50や±150にしたほうが安定しています。

アウトオブサンプル検定:片方の年の最良を、相手の年に当てる

このシリーズの中心にある検定です。

読み方時間足2024年の最良2025年に当てると
±100の抜け1時間足20@±100(+3,393.7)+1,048.5(16/30・中央値+1,113.0)
ゼロライン1時間足30@−50(+3,046.7)+1,729.0(13/30・中央値+1,294.1)
±100の抜け15分足30@±50(+3,250.8)+1,717.2(5/30・中央値+549.8)
逆張り・買い4時間足10/200→100(+946.1)+176.7(54/72・中央値+387.5)

4通り中2通りが中央値を上回りました。上回ったのは15分足の抜け(5/30)と1時間足のゼロライン(13/30)です。1時間足の抜けは中央値+1,113.0に対して+1,048.5で、64.5pipsだけ下に着地しました。

はっきり沈んだのは逆張りだけです(72通り中54位、中央値+387.5に対して+176.7)。順張り側の3通りは順位で見れば上位か真ん中に留まっていて、このシリーズでは珍しく穏やかな結果です。ただし「中央値を超える」ところまで言えたのは半分でした。

順位相関も出しておきます。

読み方15分足1時間足4時間足
±100の抜け+0.527+0.255−0.408
ゼロライン+0.605−0.112−0.514
逆張り・買い+0.316+0.008−0.214

15分足だけが正の相関を出しました。 4時間足は全部マイナスです。時間足が長いほど1年の標本が減るので当然ではありますが、「4時間足で去年よかった設定」は今年の下位を指しています。

なお4時間足の抜けの2025年最良は水準±250・期間50で+1,777.3pipsですが、取引数は2回です。この手の数字を設定選びの根拠にはできません。

ゼロラインは移動平均線クロスそのもの

ここが一番はっきりした結果です。

CCIの分母は 0.015 × 平均偏差 で、平均偏差は絶対に負になりません。したがってCCIの符号は(典型価格 − その単純移動平均)の符号と完全に一致します。 実測でも、期間7から50まで、符号の不一致は0件、クロスした足の不一致も0件でした。

つまりCCIのゼロクロスは、価格が自分の移動平均を抜けたことを別の目盛りで見たものです。この記事でいちばん成績のよかった読み方は、CCIでなくても再現できます。

では、CCIであることに意味はないのか。典型価格を使う点だけは残ります。 同じルールを終値で読ませたもの(SMA(1)とSMA(N)のクロス。SMA(1)は終値そのもの)と、36通りで突き合わせました。

−3k−3k−1.5k−1.5k00+1.5k+1.5k+3k+3k終値の移動平均線クロス(pips)CCIのゼロクロス(pips)
1点=時間足×年×期間の1通り(全36通り)対角線より上=CCIのゼロクロスが勝った(25通り)
ゼロクロスと、同じルールを終値で読んだ場合の比較です。取引は36通りすべてで少なく勝率も36通りすべてで高い一方、損益で上回ったのは25通りでした。
CCIのゼロクロス終値の移動平均線クロス
取引数(1時間足・2025年・期間14)693885
勝率30.45%26.44%
損益+2,294.4+1,801.6

36通り全部でこうなりました。

  • 取引数が少ないのは36通り中36通り
  • 勝率が高いのも36通り中36通り(差は1.5〜8.0ポイント)
  • 損益で上回ったのは36通り中25通り

(高値+安値+終値)÷3は、だましを減らします。 1本の足の終値だけを見ると、ヒゲの先で平均線を抜けて戻る足を数えてしまう。典型価格はその足の中身を平均するので、抜けたことにならない。これは36通り全部で一貫していて、例外がありません。

ただし減った取引が良い取引だったこともあります。 損益で負けた11通りがそれです。減らす効果は確実で、その結果が良いかどうかは確実ではない、という形になっています。

フィルター・損切り利確・コスト

ADXフィルターは順張りを壊す

トレンドの強さで絞れば順張りが良くなりそうに見えますが、逆でした。

設定ベースADX≥20ADX≥25ADX≥30
±100の抜け・15分足・2025+643.4(1,298回)−183.8(854回)−618.9(577回)−229.5(358回)
ゼロライン・1時間足・2025+2,294.4(693回)+786.0(399回)+617.2(285回)−19.7(179回)

強い順張りに強さのフィルターを足すと、条件が重複します。 GMMAの検証でも同じことが起きました。これで3回目です。

4時間足の逆張りだけはADXで良くなりますが(2025年 +796.2 → +1,091.2、ただし16回)、2024年は同じフィルターで+26.6 → −527.9 です。年をまたぎませんでした。

時間帯

東京時間(UTC 0〜8)は±100の抜けに効きました。15分足2025年 +643.4 → +877.0、2024年 −203.2 → +1,718.7。1時間足も2025年 +424.8 → +1,146.8。ただし2024年の1時間足は +1,839.9 → +1,746.0 で、4通り中3通りです。ゼロラインには効きませんでした(1時間足2025年 +2,294.4 → +571.3)。

損切り・利確

ゼロライン・1時間足で、損切り100・利確200を足すと2025年は+2,807.8まで伸びますが、2024年は+2,089.5に落ちます(ベース+2,579.8)。時間決済24本も2025年は+3,588.2、2024年は+2,303.0です。どれも片方の年でしか良くなりません。

コスト

損益はスプレッドに対してきれいに直線でした。失ったpips=取引回数×スプレッドが、4つの設定すべてで誤差なく成立します。

設定取引数スプレッド00.31.0損益分岐
±100の抜け・15分足1,298+1,032.8+643.4−265.20.80pips
±100の抜け・1時間足321+521.1+424.8+200.11.62pips
ゼロライン・1時間足693+2,502.2+2,294.4+1,809.33.61pips

1時間足のゼロクロスの損益分岐3.61pipsは、このシリーズで最も高い数字です。 15分足の抜けは0.80pipsしかなく、スプレッドが1pips開く環境では成立しません。

この検証で言えること

  1. ±100は珍しくない。 内側にいるのは57.5〜61.9%で、7〜8割ではありません。時間足3種・期間6種のどれでもそうでした
  2. ±100は「行き過ぎ」ではなく「まだ続く」に寄っている。 抜けた直後は平均より伸び(15分足と1時間足の24通り中22通り)、内側に戻った直後は伸びません(24通り中24通り)。バックテストでも逆張りは6通り全部が赤字です
  3. 期間と水準は独立していない。 |CCI|は期間÷0.03を超えられず、18通り中9通りで実際に上限に触りました。期間7で±250を待つルールは一度も発動しません
  4. 定数0.015と水準は同じつまみ。 0.01にすることは水準を66.7にすることと数値的に同じです
  5. 最も残ったゼロラインは、CCI固有のものではない。 CCIの符号は(典型価格−その移動平均)の符号と完全に一致します。CCIが足しているのは典型価格を使うことだけで、それは取引数を36通り全部で減らし勝率を36通り全部で上げましたが、損益で上回ったのは25通りでした

関連記事

この検証の限界

  • 通貨ペアはドル円だけ、期間は2年だけです。CCIは商品先物のために作られた指標なので、対象が変われば±100の外にいる時間の割合そのものが変わります
  • 2024年は年間+1,632pips、2025年は−56pipsで、相場の性格がまったく違います。逆張りの売りが両方の年で崩れたことは、上昇年と横ばい年の2つでしか確かめていません
  • スプレッドは0.3pips固定です。実際は指標発表時に開きます。損益分岐0.80pipsの設定は、この前提が崩れると成立しません
  • 決済は反対シグナルまでです。損切りと利確を足した場合は別セクションの数字になり、片方の年でしか良くなりませんでした
  • 4時間足の数字は標本が小さい(±100の抜けで年40回前後、逆張りで20回前後)。4時間足だけが値動きの計測でも逆を向きましたが、12通り中6通りなので判定できていません
  • 「典型価格が効く」は取引数と勝率でだけ一貫していて、損益では36通り中25通りです。ここを「効く」と読むかは、何を見るかによります

よくある質問

CCIの±100を超えるのは珍しいことですか?
珍しくありませんでした。CCIの計算に入っている0.015という定数は、読み取り値のおおむね7〜8割が±100の内側に収まるように選ばれた、と説明されます。ドル円2025年で実測すると、15分足・1時間足・4時間足のどれでも、期間7から50までのどれでも、内側に収まったのは57.5〜61.9%でした。線は年の約4割を±100の外で過ごしています。
CCIは逆張りと順張りのどちらで使うべきですか?
この検証では順張りが勝ちました。期間14・水準100で、逆張り(±100の外側で反対方向にエントリー)は時間足3種×2年の6通りすべてで赤字です。同じ±100を抜けた方向に入る順張りは6通り中5通りで黒字でした。値動きだけを見ても同じで、±100を抜けた直後の値幅が平均的な足を上回ったのは15分足と1時間足の24通り中22通り、内側に戻った直後が下回ったのは24通り中24通りです。
CCIのゼロラインは何を意味しますか?
典型価格がその移動平均を上回っているかどうか、そのものです。CCIの分母は絶対に負にならないので、CCIの符号は(典型価格−その単純移動平均)の符号と一致します。実測でも期間7から50まで符号の不一致は0件、クロスした足の不一致も0件でした。つまりCCIのゼロクロスは、価格と移動平均線のクロスを別の目盛りで見たものです。
CCIの期間はいくつがよいですか?
読み方によって逆を向きました。ゼロクロスは15分足では期間を伸ばすほど良く(期間7は2024年も2025年も5通り全部が赤字、期間50は2025年5通り全部が黒字)、1時間足では期間10と14が最も残ります。±100の抜けは15分足で期間20以上が安定しました。なお期間はCCIが取りうる最大値も決めていて、|CCI|は期間÷0.03を超えられません。期間7のCCIは±233.3までしか動かないので、±250で待つルールは一度も発動しません。
CCIはMT4に入っていますか?
標準で入っています。MT4とMT5では挿入→インディケータ→オシレーター→Commodity Channel Indexで、期間と適用価格を指定します。TradingViewもインジケーター検索からCommodity Channel Indexを追加できます。Formiqのチャートにも入っていて、バックテスト側では読み方4種(水準・水準の行き過ぎ・±水準の抜け・ゼロライン)を条件にできます。

Formiqは、リプレイ練習とノーコードバックテストをブラウザだけで使える無料のFXツールです。 チャートを開く、または無料プランでできることをご覧ください。