📝 概要
今回は、TradingViewのPine Scriptで作成した Mean Reversion Strategy を紹介します。
この戦略は、1本のローソク足が始値から終値まで一定以上大きく下落したときにロングし、その後は指定した本数だけ保有して決済する、かなりシンプルな平均回帰型ストラテジーです。
始値から終値までm%以上下落した陰線 を買いシグナルとし、エントリー後 n本経過 したところで決済します。
考え方は単純です。
- 1本の足で大きく売られた
- 短期的には売られすぎ、あるいはオーバーシュートしているかもしれない
- その後の反発を狙ってロングする
- 反発の有無にかかわらず、一定期間が経過したらポジションを閉じる
いわゆる「急落後のリバウンド」をルール化した戦略ですね。
重要なのは、このコードが見ているのは前日比や前の足からの下落率ではなく、その足の始値から終値までの変化率 だという点です。
たとえばしきい値を2%にした場合、始値100、終値97.5なら、その足は-2.5%なのでエントリー対象になります。
逆に、前日終値から大きくギャップダウンしていても、その日の始値から終値までほとんど下がっていなければ、この戦略では買いシグナルになりません。
また、チャート上では大きく動いた陽線・陰線をハイライトし、発生回数や全バーに占める割合を右上のテーブルで確認できます。
売買そのものは非常にシンプルですが、「大きく動いた足がどれくらいの頻度で発生しているか」も一緒に観察できるのが面白いところです。
💻️ バックテスト
S&P500(CFD)

🎯 作成の意図
平均回帰のアイデアでよくあるのが、
「急落したあとには反発しやすいのでは?」
という仮説です。
相場では、ニュースやロスカット、短期的なパニックなどによって、一方向に価格が走りすぎることがあります。
もちろん、急落したから必ず戻るわけではありません。
悪材料による本格的なトレンド転換なら、そのまま下落が続くこともあります。
だからこそ、このコードでは裁量で「さすがに下げすぎだろう」と判断するのではなく、
- 何%以上下げたら買うのか
- 何本保有するのか
を固定し、その仮説をバックテストできる形にしています。この時点では良いものができる保証はありません。とりあえずやってみる精神が大事です。
この戦略の特徴は、移動平均線、RSI、ボリンジャーバンドなどを使っていないことです。
「平均からどれだけ離れたか」を直接計算しているわけでもありません。
あくまで 1本の足で大きな下落が起きたあとは、その後に価格が戻りやすいのか という非常にシンプルな平均回帰仮説を検証しています。
そのため、銘柄や時間足を変えて比較しやすいのもメリットです。
たとえば株価指数、個別株、FX、Gold、Cryptoなどで、
「m%以上の大陰線のあと、n本持つ」
という同じ条件を使えば、市場ごとの反発特性を比較できます。
ロジックが単純だからこそ、「何が効いているのか」が分かりやすい戦略です。
📘 コード(戦略部分)の解説
この戦略の入口は、ローソク足1本の始値から終値までの変化率です。
| 項目 | 条件 |
|---|---|
| 大きな値動き | 始値→終値の変化率の絶対値が設定したThreshold以上 |
| ロング対象 | 上記を満たし、かつ終値が始値より低い陰線 |
| 売買方向 | ロングのみ |
| 決済 | エントリーから指定した本数が経過したらクローズ |
まず、始値から終値までの変化率を使って「大きく動いた足」かどうかを判定します。
陽線側にも同じ大幅変動判定がありますが、これは集計やチャート表示に使われるだけで、ショートエントリーには使われません。
実際の買い条件は、
- 値動きの絶対値がThreshold以上
- 終値が始値より低い
- バックテスト期間内
の3条件です。
つまり、大きな陰線が確定したところで逆張りロングを仕掛ける というロジックです。
一方、出口では価格条件を使いません。
利食い幅、損切り幅、移動平均線、RSIなどは見ず、エントリーしたバーから指定した本数が経過したらポジションを閉じます。
そのため、この戦略は、
大幅下落をイベントとして買い、その後の一定期間の平均的な反発を取りにいく
という性格がかなり強いです。
「何円戻ったら利食い」と決めるのではなく、「急落後のn本という時間窓にエッジがあるか」を検証しているわけですね。
とはいえ米株指数で長く持つと、結局はβを取りに行ってるだけになるんですが。
また、売買ロジックとは別に、大幅上昇・大幅下落の発生回数を数える機能があります。
右上のテーブルでは、デフォルト設定なら2%以上動いた陽線と陰線の回数、合計回数、全バー数、発生率を確認できます。
チャート上にも該当する足の背景色、変化率ラベル、BUY・EXITラベルが表示されるので、バックテスト結果だけでなく「どんな場面でシグナルが出ているか」を目視しやすくなっています。
かなり単純な戦略ですが、こういうロジックは検証素材として優秀です。
条件が少ないので、結果が良くても悪くても原因を考えやすい。
Mean Reversion Strategyは、急落後の反発という古典的なアイデアを、余計な条件をほとんど加えずに検証できるシンプルなストラテジーです。
🔏 コアメンバー向けソース
こちらからどうぞ。


コメント