フィボナッチ比率は特別なのか ― 20%から90%まで全部試した記録
EA開発をしているトノチと申します。私は今まで気になっていたけれど見過ごしてきた様々な手法をAIの力を借りて分析し、良いものはEAに取り入れ、私の分析では優位性を見出せないと判断したものはこのような形で発表させてもらってます。今回はその一本です。
題材はフィボナッチ。38.2%・50%・61.8%という、チャート分析でいちばん有名な数字のひとつです。これを機械に検証させたらどうなるのか。戻りの深さを20%から90%まで2.5%刻みで全部試して、フィボナッチの数字だけが特別に良いのかを調べました。
先に結論を書きます。私の測り方では、フィボナッチの数字だけが良いという結果は出ませんでした。
ただし「フィボナッチは効かない」という話ではありません。私が試したのは、無数にある使い方のうちのひとつだけです。起点の取り方も、入るタイミングも、決済の作り方も、私が決めた一通りしか試していません。この記事は「ある一つの測り方をしたら、こうなった」という記録として読んでいただければと思います。
そのうえで、途中で分かったことのほうが面白かったので、そちらを中心に書きます。
1. フィボナッチは、どこを起点にするかで線が全部変わる
フィボナッチは、高値と安値を選んで、その間を割る道具です。38.2%戻ったところ、半分戻ったところ、61.8%戻ったところ。ここで反発しやすい、という使い方をします。
チャートを見ながら手で引く分には、何も難しくありません。ぱっと見て「ここが山、ここが谷」と決められます。
ただ、検証をする側から見ると、ひとつ厄介な性質があります。どの山を起点にするかで、線を引く位置が全部変わることです。同じチャートでも、起点が違えば38.2%の場所は別のところに来ます。
▲図1:フィボナッチは、高値と安値を選んでその間を各比率で割る道具。①がその引き方。②は同じチャートで別の波を起点にした場合で、同じ「38.2%」が59pips違う値段に来る。USDJPY・1時間足。
図の②がそれです。同じ「38.2%」なのに、起点を変えるだけで59pipsも違う値段になっています。
ということは、「38.2%は効くのか」をそのまま測っても、出てくるのはフィボナッチの成績ではなく、私が起点をどう選んだかの成績です。まずここを固定しないと、その先の数字は全部いいかげんになります。
2. 今回の起点の決め方
そこで今回は、起点を「直近の決まった本数のなかでの高値と安値」という単純な形に固定しました。20本・50本・100本の3種類です。
この3つは、結果が互いによく一致しました(順位の一致度で0.80〜0.91)。本数を変えても順位が入れ替わらないなら、少なくともこの土俵の中では答えが安定している、と考えていいはずです。
実際にこの取り方で線を引くと、こうなります。直近100本のなかでいちばん高いところを0%、いちばん安いところを100%として、その間を各比率で割っています。起点さえ決まれば、あとは自動です。
▲図2:ドル円の1時間足。直近100本の高値(125.10)を0%、安値(120.95)を100%として、23.6%・38.2%・50%・61.8%・78.6%の水平線を引いた図。安値から高値へ上昇したあと押しが入り、いまの価格は54%戻りの位置にある。
正直に書いておくと、これは手で引くフィボナッチと同じものではありません。人が引くときは「意味のある山」を選びますが、機械が見ているのは直近の値幅だけです。ですからこの先の結果はすべて、「この起点の取り方をしたときには」という条件つきの話になります。
3. 発想を変える ― 偽物と比べる
ここで検証の方針を変えました。
「38.2%で入ると勝てるか」を調べても、実は答えが出ません。勝てたとしても、それがフィボナッチの数字だからなのか、単に「押しが深いところで入ったから」なのかが分からないからです。押しが深いほど有利、というのはフィボナッチとは関係なく起こりうる話です。
そこで、薬の効き目を確かめるときのやり方を借りました。新薬の効果を測るときは、見た目がそっくりで中身のない偽薬と比べます。効いたように見えても、偽薬でも同じだけ効くなら、その薬の成分のおかげではない。
同じことをします。戻りの深さを20%から90%まで、2.5%刻みで全部試す。そして、フィボナッチの数字のところだけが、隣の数字より飛び抜けて良いかを見ます。
見るのは水準そのものの成績ではなく、「両隣の平均からどれだけ出っ張っているか」です。こうすれば「深いほど有利」という下地があっても、その影響を受けません。カーブが滑らかなら、効いているのは深さであってフィボナッチの数字ではない。フィボナッチのところにだけ山が立つなら、その数字に意味がある、ということになります。
▲図3:見方の説明(模式図)。①効いているのが「深さ」だけなら、フィボの数字も両隣と同じ高さに並ぶ。②数字そのものに意味があるなら、38.2%・50%・61.8%だけが両隣より飛び出す。実際の結果は次の図。
4. 結果 ― コイン投げでした
時間足を3通り、山と谷を測る本数を3通り、持ち続ける長さを3通り、合わせて27通りの条件で試しました。通貨は7つ、期間は2000年から今年までです。
フィボナッチの数字が、それ以外の数字より良かったのは27条件のうち12 でした。半分以下です。
代表的な条件(1時間足)での「出っ張り」を平均すると:
| 出っ張りの平均 | |
|---|---|
| フィボナッチの水準(23.6/38.2/50/61.8/78.6%) | −0.134 pips |
| それ以外の水準 | +0.023 pips |
符号が逆です。通貨ごとに見ても、7通貨のうち5つでフィボナッチ側がマイナスでした。いちばん有名な「半値戻し」(50%)は、むしろ周りより悪いという結果です。
カーブ全体を見ると、こうなっています。フィボナッチの数字(○)が特別な位置にいるようには見えません。
▲図4:戻りの深さ20〜90%を横軸、その後の平均pipsを縦軸にとった折れ線。フィボナッチの5水準に○印を付けてあるが、いずれも周囲より飛び抜けてはいない。70%あたりまでは全体にマイナス圏で推移し、75%より深い側でプラスに転じる。
5. 決定的だったのは、件数との関係
ここがこの検証でいちばん面白かったところです。
条件によっては、フィボナッチの数字に立派な山が立ちます。4時間足で測ると +1.211 pips もプラスになっており、これだけ見れば「効いている」と言いたくなります。
ところが、件数と並べると話が反転します。
| 条件 | フィボの出っ張り | 1水準あたりの件数 |
|---|---|---|
| 15分足 | −0.002 | 115,522件 |
| 1時間足 | −0.134 | 27,385件 |
| 4時間足 | +1.211 | 6,782件 |
件数が少ない条件ほど、山が大きくなっています。
本物の効果なら逆でなければいけません。件数が多いほど、ばらつきが打ち消し合って、本当の形がはっきり見えるはずです。ところが実際は、いちばん件数の多い15分足で出っ張りがほぼゼロ(−0.002)になり、件数が減るほど数字が暴れる。
▲図5:左右2つの横棒グラフ。左はフィボ水準の「出っ張り」で、15分足−0.002・1時間足−0.134・4時間足+1.211。右は1水準あたりの件数で、15分足115,522件・1時間足27,385件・4時間足6,782件。件数が少ないほど出っ張りが大きい。
これはたまたま出た凸凹の振る舞いそのものです。サイコロを6回振れば偏りますが、6万回振れば均されます。それと同じことが起きています。
私は自分の検証でこの罠に何度も落ちかけているので、「良い数字が出たら、まず件数を見る」を習慣にしています。今回はその習慣が働きました。
6. 副産物 ― 深さそのものには、わずかに偏りがある
フィボナッチの数字には差が出ませんでしたが、戻りの深さ自体にはゆるやかな傾向がありました(1時間足・7通貨平均・単位はpips)。
| 戻りの深さ | 平均 |
|---|---|
| 20% | −0.73 |
| 50% | −0.71 |
| 70% | −0.93 |
| 75% | +0.66 |
| 85% | +0.52 |
| 90% | +0.60 |
75%より深く戻った場合だけ、わずかにプラスです。特定の比率ではなく、深い側の帯全体がそうなっています。
ただしこれはそのままでは使えません。プラスといっても平均0.5〜1.0pips程度で、取引にかかるコスト(実効スプレッドで1pips強)に届いていないからです。手数料を引いたら消えます。
「深く戻ったところは、浅いところより多少ましらしい」。今回の検証から言えるのは、その程度です。
7. 損切りと利確を置いて、売買として測り直した
ここまでは「一定時間で手仕舞い」という単純な形で測っていました。比率どうしを公平に比べるにはこれで十分なのですが、それだと「手法として勝てるのか」には答えていません。そこで、教科書どおりの決済を入れて測り直しました。
- 入る:戻りの水準に指値を置く(フィボは本来そういう使い方をする道具なので、成行より有利な条件です)
- 損切り:100%の水準(起点を割ったら、その読み自体が外れたということ)
- 利確:起点から1.0倍(直近の高値)/1.272倍/1.618倍(いわゆるエクステンション)
時間足4種 × 山谷を測る本数3種 × 水準10種 × 利確3種=360通りを、7通貨・2000年〜2026年で回しました。同じ足で損切りと利確の両方に届いた場合は損切りが先に当たったものとして扱っています(辛いほうに倒す)。
黒字になった割合
| 時間軸 | 黒字だった組み合わせ |
|---|---|
| 15分足 | 0%(90通り中0) |
| 1時間足 | 17% |
| 4時間足 | 17% |
| 日足 | 46% |
有名な水準(38.2%・50%・61.8%)に絞ると、15分足と4時間足は明確にマイナス、1時間足はほぼトントン(損益比1.00〜1.01)、日足だけわずかにプラス(0.99〜1.05)でした。360通りの中で最も成績が良かったのは日足の45%戻しで、これはフィボナッチの数字ではありません。
日足で成績が上向くのは、取引回数が少なくてコストの影響が小さくなるからです。手法が優れているからではありません。
そして、ここがいちばん大事な確認なのですが ―― 取引コストをゼロにしても勝てませんでした。
1時間足でコストを0にして測り直すと損益比1.03〜1.04。つまり「手数料に負けている」のではなく、そもそも読みが当たっていないということです。コストのせいなら、コストを外せば勝ちに転じるはずですから。
念のため、山谷の向きの決め方を変えても(移動平均の並びで判断する→高値と安値のどちらが新しいかで判断する、という教科書に近い取り方に変更)結論は変わりませんでした。
8. 使い方を変えてみる ― フィルタとして、他の道具と組み合わせて
「入口として弱い」ことと「道具として役に立たない」ことは別です。実際、私のEAで使っている移動平均のクロスも、入口としては弱いのに環境認識に使うと効くことが分かっています。フィボナッチでも同じことがあるかもしれない。3通り試しました。
(1) フィボナッチで入って、他の道具で絞る
移動平均のクロス、価格が長期線のどちら側にいるか、RSI(買われすぎ売られすぎの指標)との併用 ―― どれを足しても頭打ちでした。
ここで一度、目を引く結果が出ました。日足で「61.8%戻し+長期の移動平均クロス」に絞ると1回あたり+39.2 pips。損益比1.38。悪くありません。
ただし件数は191件です。そこで、どうとでも決められる数字をひとつだけ動かしてみました。
| 変えたところ | 結果 |
|---|---|
| そのまま | +39.2 pips |
| 水準を61.8%→60%に | −7.8 pips(符号が逆に) |
| 山谷を100本→50本に | −31.5 pips |
| 移動平均の組み合わせを変える | −59.9 pips |
ひとつ動かすだけでひっくり返ります。これは中身のない偶然の産物です。私は別の検証(エリオット波動)で同じ罠を踏んでいるので、この検査を必ず入れるようにしています。
(2) フィボナッチを「入るかどうかの判断」に使う(本命)
入口と決済を固定して、「そのとき何%戻していたか」がフィボナッチの帯(38.2〜61.8%)に入るときだけ通す、という使い方です。
ここで大事なことが分かりました。入口の種類によっては、そもそもフィボナッチの帯に届かないのです。
| 入口 | 戻りの深さ(中央値) | フィボナッチ帯に入る割合 |
|---|---|---|
| 浅い押し目を狙う入口 | 11% | 1.2% |
| 深い押し目からの反発を狙う入口 | 77% | 10.6% |
| もっと深い反発を狙う入口 | 85% | 2.4% |
浅い押し目を狙う入口では、100回に1回しかフィボナッチの帯に来ません。この組み合わせは、良い悪い以前に成立しないわけです。
そして 深い反発を狙う入口 ―― 前回この記事で「試していない」と正直に書いた"反発を確認してから入る"やり方 ―― でも、フィボナッチの帯は勝てませんでした。帯で絞った成績はフィルタなしより悪く、同じ回数だけランダムに間引いた場合と区別がつきません(統計的な確からしさ p=0.845。0.05より小さくないと「偶然では説明できない」とは言えません)。
戻りの深さを10%刻みで並べると、40-50%より60-70%、それより80-90%、いちばん良いのは90-100%、となだらかに良くなっていくだけでした。効いているのは深さであって、フィボナッチの数字ではない。前回と同じ結論です。
(3) 利確をフィボナッチで決める(エクステンション)
「値幅の1.618倍まで伸ばす」という使い方です。入口と損切りを固定して、利確の決め方だけを差し替えました。
| 利確の決め方 | 1回あたり | 損益比 |
|---|---|---|
| 固定100pips | +7.04 | 1.23 |
| 固定150pips | +7.58 | 1.21 |
| 値幅×1.272(フィボ) | +6.34 | 1.18 |
| 値幅×1.618(フィボ) | +6.75 | 1.18 |
| 値幅×2.0(フィボではない数字) | +7.14 | 1.18 |
値幅に比例させる形はどれも固定に負けました。しかも同じ「値幅に比例」の仲間うちで比べても、フィボナッチではない2.0倍のほうが1.618倍より上です。ここでも比率そのものに特別さは見当たりませんでした。
9. 最後に、自分のEAに入れてみた
「一般論として弱い」ことと「自分の道具に足したときどうなるか」も、また別の話です。無相関なものを足すと全体が良くなる、ということが実際にあるからです。最後にそれを測りました。
自分のEAの利確の決め方をフィボナッチのやり方(値幅×倍率)に差し替えて、2000年から現在までを通して回します。比べ方は最大の落ち込み(含み損を含む資産の最大下落率)を揃えたうえで、最終的な増え方を見る、という方法です。リスクの量を揃えないと、単に大きく張っただけで勝ったように見えてしまうので。
結果は、同じリスク量で利益が約2割減(年利に直すと約1ポイント低下)でした。
倍率を大きくすると、今度は利確まで持ち続けるので含み損が膨らみ、最大の落ち込みが20.7%から30.9%へ跳ね上がりました。これは以前、別の検証でも踏んでいる現象です。
「フィボナッチの帯に来たときだけ建てる」という絞り方も試しました。こちらは勝率も損益比も上がります(勝率で約6ポイント、損益比で0.09ぶんの改善)。数字だけ見れば良くなっています。ところが取引の数が2割ほど減るので、リスク量を揃えて比べると年利は約1.3ポイント下がりました。
勝率と損益比が上がったのに、成績は落ちる。これは検証をしていると何度も出会う形で、私は毎回このやり方(リスク量を揃えて比べる)で判断するようにしています。
10. この検証の限界(ここが大事です)
冒頭に書いたとおり、これはフィボナッチという道具の評価ではありません。私が試した測り方の結果です。
初版(この記事を最初に書いた時点)では「決済を置いていない」「反発を確認してから入る形を試していない」の2つを限界として挙げていました。その2つは今回埋めました(7章と8章)。埋めても結論は変わりませんでした。
それでも、まだ変えていない条件がこれだけあります。
- 起点の取り方:直近の決まった本数での高値と安値だけ。手で引くときのような「意味のある山」の選び方はしていません。同じ選び方を機械で再現できなかったのは私の道具の限界であって、手で引く使い方の評価ではありません
- 場面:環境認識(いま上目線か下目線か)に沿った方向のみ。逆張りや、もみ合いでの使い方は見ていません
- 帯の取り方:38.2〜61.8%を「フィボナッチの帯」として扱いました。人によって使う水準は違います
- 他の道具との組み合わせ:移動平均・RSI・価格の位置しか試していません。ローソク足の形やチャートパターンとの併用は見ていません
- 対象:ドル絡みの主要7通貨、15分足から作った時間足のみ。株価指数や金では見ていません
- 時間のフィボナッチ(何本後に転換するか)には手をつけていません
つまり今回言えるのは、「この測り方では、フィボナッチの数字に特別さを見つけられなかった」ということだけです。使っている方を否定するものではありません。
11. それでも収穫はありました
比率そのものに見込みが無いと分かるまで、EAは1本も書いていません。書いたのは最後の「自分のEAに入れたらどうなるか」を測るときだけです。
やったのは、価格データを読んで全水準を一度に計算しただけ。もし「まず38.2%で組んでみよう」と作り始めていたら、EAを書いて、検証して、パラメータを調整して、と何日か溶かしたはずです。そして最後に、たまたま良く見える条件を見つけて採用してしまったかもしれません(8章の「ひとつ動かすと符号が逆になる」設定が、まさにそれです)。
作る前に、偽物と比べる。
比率や水準を使う手法(フィボナッチに限らず、○%押し・○倍返しの類)を検討するときは、この順番が効くと思います。私にとっては、今回いちばんの収穫がこれでした。
こういう「採用しなかった検証」も、私は同じように残して公開しています。うまくいった話だけを並べると、何を根拠に選んでいるのかが見えなくなってしまうからです。
検証条件:EURUSD・USDJPY・GBPUSD・USDCHF・AUDUSD・NZDUSD・USDCAD / 15分足の価格データを1時間足・4時間足・日足に集約 / 2000年〜2026年 / 起点=直近の一定本数の高値・安値 / 判断に使うのは確定した足まで(先読みなし)。
・3〜6章(比率の比較)=水準到達の瞬間に建て、一定時間後に手仕舞い(損切り・利確なし)。スプレッドは未考慮=比率どうしの相対比較専用で、絶対値の議論には使えません。
・7〜8章(売買として測り直した部分)=水準に指値/損切り=100%の水準/利確=起点から1.0・1.272・1.618倍。1回あたり1.2pipsのコストを引いています。同じ足で損切りと利確の両方に届いた場合は損切り優先(辛いほうに倒す)。
・9章(自分のEA)=全ティックではなく1分足ベースの検証・2000年から・複利・最大の落ち込みを揃えたうえでの比較。
免責:本記事は過去データの検証に基づく開発記録であり、将来の運用成績を保証するものではありません。投資助言ではありません。売買のご判断はご自身の責任でお願いします。
この検証について:検証コードの作成・条件の総当たり(比率27条件+売買360通り)・件数との関係の確認まで、AI(Claude Code)とペアで行っています。設計と判断は人、生産と検証はAI ―― という分担です。今回は「作る前に止める」判断ができた例でした。