今日は線形回帰の傾きとローソク足の陰陽を用いた戦略をシェアします。
バックテスト
S&P500(CFD)

DOW30(CFD)

NASDAQ(CFD)

📝 概要
「LR Slope Hook」 という、
線形回帰の傾き(Linear Regression Slope)を使った 押し目・平均回帰型のロング専用戦略 です。
ポイントはとてもシンプルで、
- 価格は一度下げている(弱気足)
- でも トレンドの内部構造(LR Slope)は反転し始めている
- そこで「行き過ぎからの戻り」を拾う
という考え方です。
裁量トレードでよくやっている
「ローソクは弱いけど、下げの勢いが鈍ってきたよね?そろそろリバるんじゃね?」
という感覚を、Pine Scriptで素直にコード化した戦略だと思ってください。
🎯 作成の意図
この戦略の意図するところは大きく3つあります。
① 価格そのものではなく「傾きの変化」を見たい
単純な移動平均クロスやRSIではなく、
回帰直線の“傾き”がどう変化しているか に注目しています。
特にここでは、
- 直前まで傾きは下向き
- でも最新バーで傾きが上向きに転じる
という、いわゆる Hook(フック)形状 をエントリー条件にしています。
② 「弱気足 × 内部反転」という組み合わせ
エントリー条件にあえて
close < open
を入れているのがポイントです。
見た目は弱い足なのに、
中身(LR Slope)はもう反転している。
この ギャップ が、平均回帰のうま味になりやすい場面です。
③ ロットはATRベースで自動計算
- ATR
- 口座サイズ
- リスク%
から 自動で取引数量を計算 しています。
バックテストでも実運用でも、そのまま使える形を意識しています。
📘 コード(戦略部分)の解説
ここでは、戦略の“心臓部”だけを見ていきます。
■ Linear Regression Slope の計算
lrs = ta.linreg(hlc3, i_lrsPeriod, 0) - ta.linreg(hlc3, i_lrsPeriod, 1)
これは少しトリッキーですが、
- 今の回帰値
- 1本前の回帰値
の差分を取ることで、傾き(Slope)そのもの を擬似的に計算しています。
■ Hook パターンの判定
lrsRising = lrs > lrs[1]
さらにエントリー条件では、
lrsRising and lrs[1] < lrs[2]
となっており、
- 2本前 → 1本前:悪化
- 1本前 → 現在:改善
という 底打ち→反転 の形だけを拾います。
■ ロングエントリー条件
longEntry =
close < open and
lrsRising and
lrs[1] < lrs[2] and
not isLong
まとめると、
- 弱気足
- LR Slope がフック状に反転
- バックテスト期間内
- ノーポジション
このすべてが揃ったときだけロングします。
■ エグジット条件(2パターン)
longExit = isLong and (i_useMAExit ? close > ma : close > hlc3)
エグジットはスイッチ式で、
- MAを上抜けたら利確
- または Typical Price(HLC3)を上抜けたら利確
どちらかを選べるようにしています。
「戻りを浅く取るか、少し伸ばすか」を
パラメータで調整できる設計です。
🚀 ワン モア ステップ
この戦略は、あくまで ベース骨格 です。
ここから先は、好みに応じていくらでも育てられます。
例えば、
- 上位足のトレンドフィルターを追加する
- ボラティリティが低すぎる局面を除外する
- エグジットをATRトレーリングに変更する
- ショート側も対称構造で実装する
などが自然な拡張です。
特に 「Hookは出ているけど、相場が死んでいる」 場面をどう弾くかは、
次の改善ポイントになりやすいです。
まとめ
「価格はウソをつくけど、傾きは本音を漏らす」
そんな発想が好きな方には、かなり手応えのある戦略だと思います。
コアメンバー向けソースコード
こちらからどうぞ。


コメント