エルダーの三重スクリーンをPine Screenerに入れて、日本株の押し目候補を探す
週足・月足のパーフェクトオーダーで大きな流れを見て、日足の軽い崩れを「警戒」ではなく「押し目候補」として確認する。 今回は、アレキサンダー・エルダーの三重スクリーンの考え方を、TradingViewのPine Screener用コードに落とし込んだ実践ログです。
本記事にはアフィリエイト広告を含みます。 また、この記事は投資助言ではなく、筆者がTradingView、Pine Screener、生成AI、一次情報を使って日本株候補を確認する実践ログです。
結論:このPineは「強い上昇銘柄の押し目」を探すためのもの
このスクリーナーで探したいのは、すでに上位足が崩れている銘柄ではありません。 週足・月足ではまだ強いのに、日足だけ一時的に売られている銘柄です。
以前は、日足が少し崩れると「そろそろ危ないのでは」と見ていました。 ただ、エルダーの三重スクリーンで考えると、見方が少し変わります。
大きな流れが上向きなら、短期の逆行は押し目になる可能性があります。 そこで今回は、既存の「週足・月足パーフェクトオーダー+日足軽微崩れ」スクリーナーに、 エルダー流のオシレーター押し目判定を足しました。
条件に出た銘柄をそのまま買うわけではありません。 最終判断は、決算短信、決算説明資料、TDnet、企業IR、株価位置を確認してから行います。
アレキサンダー・エルダーとは
アレキサンダー・エルダーは、トレーダー教育者として知られる人物です。 代表的な著書として、投資心理、売買戦略、資金管理をまとめた『Trading for a Living』があります。 日本語では『投資苑』として知られています。
エルダーの考え方で、自分に一番刺さったのは「相場をひとつの時間軸だけで見ない」という点です。 日足だけを見ると弱く見える場面でも、週足・月足ではまだ上昇トレンドの中にいることがあります。
逆に、日足だけ強くても、上位足が下向きなら高値づかみになりやすい。 その確認手順を整理したものが、三重スクリーンです。
スクリーン1
上位足で大きな流れを見る。 今回なら、週足・月足のパーフェクトオーダーを確認します。
スクリーン2
中位足で押し目を見る。 今回なら、日足の軽い崩れとオシレーターの売られすぎを確認します。
スクリーン3
実際のエントリー条件を見る。 今回なら、前日高値ブレイクを参考列として確認します。
今回のPine Screenerは、エルダーの三重スクリーンを完全再現するものではありません。 日本株候補探しに使いやすいように、週足・月足PO、日足押し目、オシレーター確認へ置き換えたものです。
今回のPine Screenerでやりたいこと
今回の狙いはシンプルです。
そのうえで、オシレーターが売られすぎになっているかを確認し、押し目候補として監視する。
具体的には、次の流れで確認します。
Fact・Inference・Unknownで整理
【事実】
このPineは、週足・月足のパーフェクトオーダーと、日足の軽い崩れを条件にしています。 Pine Screenerでは、plotした数値を列として表示し、1か0で条件一致を確認できます。
【推論】
週足・月足が崩れていない銘柄で、日足だけ売られている場合、押し目候補として監視する価値があります。 ただし、材料悪化による下落の可能性もあります。
【不明】
スクリーナーに出た理由が、業績期待なのか、材料株化なのか、需給だけなのかはPineだけではわかりません。 必ず一次情報で確認します。
Pine Screener用コード
以下が今回のコードです。 デフォルト設定では、従来の「週足・月足PO+日足軽微崩れ」に近い動きになります。 エルダー要素を強く使いたい場合は、comboModeをBothに変更します。
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=6
indicator("WM Perfect Order + Daily Slight Break + Elder S2 Screener", overlay=false)
// ===== 設定 =====
maType = input.string("SMA", "MA Type", options=["SMA", "EMA"])
// 日足
dFastLen = input.int(5, "日足 短期MA")
dMidLen = input.int(25, "日足 中期MA")
dSlowLen = input.int(75, "日足 長期MA")
// 週足
wFastLen = input.int(13, "週足 短期MA")
wMidLen = input.int(26, "週足 中期MA")
wSlowLen = input.int(52, "週足 長期MA")
// 月足
mFastLen = input.int(6, "月足 短期MA")
mMidLen = input.int(12, "月足 中期MA")
mSlowLen = input.int(24, "月足 長期MA")
// 日足の「少し崩れ」判定
dailyBreakMode = input.string(
"MA",
"日足の崩れ判定",
options=["MA", "Close", "Either"]
)
maxMaBreakPct = input.float(3.0, "短期MAが中期MAを下回る許容幅%", step=0.1)
maxCloseBreakPct = input.float(3.0, "終値が短期MAを下回る許容幅%", step=0.1)
needDailyCloseAboveSlow = input.bool(true, "日足終値が長期MAより上")
// ===== エルダー S2 / S3 設定 =====
oscType = input.string("ForceIndex", "S2: オシレーター", options=["ForceIndex","Stochastic","RSI"], group="Elder Triple Screen")
fiLen = input.int(2, "Force Index EMA(エルダー流=2)", minval=1, group="Elder Triple Screen")
stochLen = input.int(14, "Stochastic %K期間", minval=1, group="Elder Triple Screen")
stochOS = input.int(25, "Stochastic 売られすぎ", minval=1, maxval=50, group="Elder Triple Screen")
rsiLen = input.int(14, "RSI期間", minval=1, group="Elder Triple Screen")
rsiOS = input.int(35, "RSI 売られすぎ", minval=1, maxval=50, group="Elder Triple Screen")
// Price=既存のみ / Osc=オシのみ / Both=両方AND / Either=OR
comboMode = input.string("Price", "S2合成: 価格崩れ × オシ", options=["Price","Osc","Both","Either"], group="Elder Triple Screen")
needTrigger = input.bool(false, "S3: 前日高値ブレイクを必須にする", group="Elder Triple Screen")
// ===== 移動平均関数 =====
f_ma(src, len) =>
maType == "EMA" ? ta.ema(src, len) : ta.sma(src, len)
// ===== 日足データ =====
[dFast, dMid, dSlow, dClose, dFI, dStochK, dRSI, dPrevHigh, dHigh] = request.security(
syminfo.tickerid,
"D",
[
f_ma(close, dFastLen),
f_ma(close, dMidLen),
f_ma(close, dSlowLen),
close,
ta.ema(volume * (close - close[1]), fiLen),
ta.stoch(close, high, low, stochLen),
ta.rsi(close, rsiLen),
high[1],
high
],
barmerge.gaps_off,
barmerge.lookahead_off
)
// ===== 週足データ =====
[wFast, wMid, wSlow] = request.security(
syminfo.tickerid,
"W",
[
f_ma(close, wFastLen),
f_ma(close, wMidLen),
f_ma(close, wSlowLen)
],
barmerge.gaps_off,
barmerge.lookahead_off
)
// ===== 月足データ =====
[mFast, mMid, mSlow] = request.security(
syminfo.tickerid,
"M",
[
f_ma(close, mFastLen),
f_ma(close, mMidLen),
f_ma(close, mSlowLen)
],
barmerge.gaps_off,
barmerge.lookahead_off
)
// ===== 週足・月足パーフェクトオーダー =====
weeklyPO = wFast > wMid and wMid > wSlow
monthlyPO = mFast > mMid and mMid > mSlow
// ===== 日足の崩れ判定 1:短期MAが中期MAを少し割る =====
dMaGapPct = dMid != 0 ? ((dMid - dFast) / dMid) * 100 : na
dailyMaSlightBreak =
dFast <= dMid and
dFast > dSlow and
dMid > dSlow and
dMaGapPct >= 0 and
dMaGapPct <= maxMaBreakPct
// ===== 日足の崩れ判定 2:終値だけ短期MAを少し割る =====
dailyPO = dFast > dMid and dMid > dSlow
dCloseGapPct = dFast != 0 ? ((dFast - dClose) / dFast) * 100 : na
dailyCloseSlightBreak =
dailyPO and
dClose < dFast and
dClose > dMid and
dCloseGapPct >= 0 and
dCloseGapPct <= maxCloseBreakPct
// ===== 日足の崩れモード選択 =====
dailySlightBreak =
dailyBreakMode == "MA" ? dailyMaSlightBreak :
dailyBreakMode == "Close" ? dailyCloseSlightBreak :
dailyMaSlightBreak or dailyCloseSlightBreak
dailyCloseOK = not needDailyCloseAboveSlow or dClose > dSlow
// ===== エルダー S2: オシレーターの売られすぎ =====
oscBuy =
oscType == "ForceIndex" ? dFI < 0 :
oscType == "Stochastic" ? dStochK < stochOS :
dRSI < rsiOS
// ===== S2合成: 価格の崩れ × オシの売られすぎ =====
s2Pullback =
comboMode == "Price" ? dailySlightBreak :
comboMode == "Osc" ? oscBuy :
comboMode == "Both" ? (dailySlightBreak and oscBuy) :
(dailySlightBreak or oscBuy)
// ===== S3: トリガー(前日高値ブレイク)=====
triggerFired = dHigh > dPrevHigh
triggerOK = not needTrigger or triggerFired
// ===== 最終条件 =====
target = weeklyPO and monthlyPO and s2Pullback and dailyCloseOK and triggerOK
// ===== Pine Screener用 =====
plot(target ? 1 : 0, "TARGET_WM_PO_D_BREAK")
plot(weeklyPO ? 1 : 0, "W_PO")
plot(monthlyPO ? 1 : 0, "M_PO")
plot(dailyMaSlightBreak ? 1 : 0, "D_MA_BREAK")
plot(dailyCloseSlightBreak ? 1 : 0, "D_CLOSE_BREAK")
plot(dMaGapPct, "D_MA_GAP_%")
plot(dCloseGapPct, "D_CLOSE_GAP_%")
plot(oscBuy ? 1 : 0, "OSC_OVERSOLD")
plot(triggerFired ? 1 : 0, "S3_TRIGGER")
plot(dFI, "FORCE_INDEX")
alertcondition(target, title="TARGET_TRUE", message="週足・月足PO、日足だけ少し崩れた押し目候補")AIが出したコードは、そのまま正しいとは限りません。 TradingView側でエラーが出ないか確認し、条件が自分の投資方針と合っているかを必ず見直します。
Pine Screenerでの使い方
Pine Screenerでは、保存したインジケーターを選び、条件列を指定してスキャンします。 今回の最終判定列は次です。
TARGET_WM_PO_D_BREAK > 0「TARGET_WM_PO_D_BREAKを0で設定」と言う場合、正確には
TARGET_WM_PO_D_BREAK > 0 です。
条件を「より大きい」にして、値の欄に 0 を入れます。まずはウォッチリスト内の銘柄で試します。 条件に出た銘柄は、買い候補ではなく確認候補です。
各列の見方
| 列名 | 意味 | 見方 |
|---|---|---|
| TARGET_WM_PO_D_BREAK | 最終候補 | 1なら条件一致。最初に見る列です。 |
| W_PO | 週足パーフェクトオーダー | 上位足の流れを確認します。 |
| M_PO | 月足パーフェクトオーダー | より大きな流れを確認します。 |
| D_MA_BREAK | 日足MAの軽い崩れ | 短期MAが中期MAを少し割った状態です。 |
| D_CLOSE_BREAK | 終値だけの軽い崩れ | MAの並びは強いが、株価だけ一時的に弱い状態です。 |
| OSC_OVERSOLD | オシレーター売られすぎ | Force Index、Stoch、RSIのいずれかで押し目感を見ます。 |
| S3_TRIGGER | 前日高値ブレイク | 反発開始の確認用です。最初は参考列で十分です。 |
| FORCE_INDEX | Force Indexの値 | 売られすぎや需給の変化を見る参考値です。 |
おすすめ設定|最初は3段階で試す
1. まずはPrice
comboModeは初期値のPriceのまま使います。これまでの「週足・月足PO+日足軽微崩れ」に近い動きになります。
2. 次にBoth
comboModeをBothにすると、価格の軽い崩れに加えて、オシレーターの売られすぎも必要になります。ヒット数は減ります。
3. S3は参考
needTriggerをtrueにすると、前日高値を上抜いた銘柄だけになります。最初はfalseで、S3_TRIGGER列だけ見る方が使いやすいです。
エルダーをもっと理解するための書籍
この書籍紹介にはアフィリエイト広告を含みます。 ただし、この記事の目的は書籍の販売ではなく、エルダーの三重スクリーンを日本株スクリーニングにどう応用するかを整理することです。
今回のPine Screenerは、エルダーの考え方を自分の日本株候補探しに合わせて翻訳したものです。 背景にある考え方を理解しておくと、「なぜ上位足を先に見るのか」「なぜ日足の崩れをすぐ悪材料と決めつけないのか」「なぜ資金管理を先に決めるのか」が整理しやすくなります。
エルダーを読むなら、まずはこの1冊。投資心理、売買戦略、資金管理をまとめて確認できます。三重スクリーンやForce Indexの考え方に触れる入口として使いやすい本です。
※中古商品のため、価格・在庫・状態・配送条件はリンク先で確認してください。
『投資苑』よりも、実際の売買ルールや記録に近い部分を確認したい人向け。チャートだけでなく、トレードをどう管理するかを考える材料になります。
※中古商品のため、価格・在庫・状態・配送条件はリンク先で確認してください。
エルダーの本は、考え方を整理するには役立ちます。 ただし、個別銘柄の業績、材料、需給、株価位置までは本だけでは分かりません。 スクリーナーで候補を出した後は、必ずTDnet、決算短信、決算説明資料、企業IRを確認します。
このスクリーナーの注意点
あくまでチャート上の押し目候補を拾うためのものです。
条件に出た銘柄を見つけたら、次に確認するのはチャートだけではありません。 むしろ、ここから一次情報の確認が始まります。
- 直近の決算短信
- 決算説明資料
- TDnetの適時開示
- 会社のIRニュース
- 業績予想の修正有無
- 直近の急騰理由
- 出来高と売買代金
- 株価がすでに上がりすぎていないか
特に気をつけたいのは、日足の崩れが「押し目」ではなく「悪材料の初動」だった場合です。 ここを見誤ると、上位足が強く見えても、そのままトレンド転換に巻き込まれます。
スクリーナー後に確認する一次情報
チャートで確認
- 直近高値からの下落率
- 25日線・75日線との位置
- 出来高が増えているか
- 前回安値を割っていないか
一次情報で確認
- 売上と営業利益は伸びているか
- 一時的な利益ではないか
- 進捗率は良いか
- 来期以降も続きそうか
良い銘柄を探すだけでなく、見送る理由を残すことも大事です。 「数字は良いが株価が上がりすぎ」「押し目に見えるが、材料悪化かもしれない」など、迷った点を記録しておくと次回の判断に使えます。
今回の仮判断
【事実】
このPine Screenerは、週足・月足パーフェクトオーダーと、日足の軽い崩れを組み合わせて候補を出します。 さらに、Force Index、Stoch、RSIのいずれかでオシレーター押し目を確認できます。
【推論】
上位足が強いまま日足だけ売られている銘柄は、押し目候補として監視する価値があります。 ただし、下落理由が悪材料の場合は、押し目ではなくトレンド転換の初動かもしれません。
【不明】
どの設定が最も成績につながるかは、実際の銘柄で検証が必要です。 特に、comboModeをBothにした場合のヒット数、Force Indexのノイズ、S3_TRIGGERの使い方は今後の調整ポイントです。
【今の判断】
Pine Screenerは候補探しの入口として使います。 条件に出た銘柄は、チャート、売買代金、TDnet、決算短信、決算説明資料、企業IRを確認し、買う・見送る・監視継続を自分で判断します。
指値で考えるなら3段階
打診
条件一致後、出来高と材料を確認して少額だけ検討。まだ根拠が弱い段階なので、無理に大きく入らない。
本命
業績・材料・株価位置がそろい、押し目の根拠が確認できた場合。決算またぎリスクも必ず確認する。
保険
前日高値ブレイク後に飛びつかず、支持線や25日線付近まで待つ。取り逃がしてもよい前提で考える。
スクリーナーで見つけた銘柄ほど、見た瞬間に飛びつきたくなります。 ただ、この記事では売買推奨ではなく、候補確認の手順を記録しています。 実際に買う場合も、成行ではなく指値前提で考えます。
TradingViewでPine Screenerを試す前に
Pine Screenerは、ウォッチリストとPine Scriptを組み合わせて銘柄を探せる便利な機能です。 ただし、利用できる機能やプランは変更されることがあるため、使う前に公式ページで最新条件を確認してください。
※リンクには広告・PRが含まれます。
TradingViewを確認するよくある質問
Q. このPine Screenerで出た銘柄は買ってよいですか?
いいえ。条件に出た銘柄は、買い候補ではなく確認候補です。チャート、売買代金、業績、TDnet、決算短信、企業IRを確認してから判断します。
Q. comboModeは何から使えばよいですか?
最初はPriceでよいと思います。その後、Bothにしてヒット数がどれくらい減るか確認します。Bothで少なすぎる場合は、StochやRSIのしきい値を少し緩めます。
Q. Force Indexは何を見るものですか?
価格変化と出来高を組み合わせて、売買の圧力を見ます。今回は、日足で一時的に売られているかを見る参考として使っています。
Q. S3_TRIGGERは必須にした方がよいですか?
最初は必須にしない方が使いやすいです。needTriggerをtrueにするとかなり絞られるため、最初はS3_TRIGGER列を参考として眺める運用が現実的です。
Q. エルダーの本は必ず読む必要がありますか?
必須ではありません。ただ、三重スクリーン、売買心理、資金管理の考え方を理解したいなら、読んでおく価値はあります。読んだ内容をそのまま信じるのではなく、自分の日本株投資ルールに合わせて使うのが大事です。
次に確認すること
- TradingViewで日本株ウォッチリストを作ったか
- Pine Editorにコードを貼って保存できたか
- Pine Screenerで対象ウォッチリストを選べたか
- TARGET_WM_PO_D_BREAK > 0 でスキャンできたか
- comboModeをPriceとBothで比較したか
- OSC_OVERSOLD列を確認したか
- S3_TRIGGER列を参考にしたか
- 出てきた銘柄のTDnetを確認したか
- 決算短信・決算説明資料・企業IRを確認したか
- 買う・見送る・監視継続の判断を自分の言葉で残したか
免責事項
この記事は、個人投資家である筆者が、TradingViewとPine Screenerを使って日本株候補を探すための実践記録です。 特定銘柄の売買を推奨するものではありません。
投資判断は、必ずご自身で一次情報を確認したうえで行ってください。 掲載しているPine Scriptや考え方は、将来の成果を保証するものではありません。