この記事にはアフィリエイト広告を含みます。紹介リンク経由の契約など、所定の条件を満たすと当サイトに報酬が発生する場合があります。
動画で紹介した「買い?」「買い増し?」の目印を、TradingViewに表示する手順です。無料プランで試し、下落した銘柄を同じ条件で見比べられます。目印は底値や買い時を保証するものではありません。

チャートの表示例は、こちらの動画をご覧ください。設定を先に進めたい方は、この下の画像付き手順へどうぞ。
動画タイトルの「買い時」は、設定した条件に当てはまる箇所を確認するための目印です。底値や利益を保証するものではありません。
■ STEP1:TradingViewの無料アカウントを作成する
初めて使う方は、TradingViewの無料アカウントを作成してください。
すでにアカウントがある方はSTEP2へ進めます。




■ STEP2:独自の「買い?」シグナルをチャートに出す
TradingViewにログインして、以下の画像に沿ってコードをチャートに追加してください。




//@version=6
indicator("売られ過ぎシグナル(優待/高配当株投資)", overlay=true, max_labels_count=500)
// --- 入力設定 ---
rsiLength = input.int(14, title="RSI 期間")
rsiThreshold = input.float(30.0, title="初回RSI水準", tooltip="この数値を下回った時に最初の買いシグナルが出ます")
rsiResetLevel = input.int(50, title="リセット水準 (RSI)")
// --- セクター(業種)による判定(ナンピン幅用) ---
// ※ETFなどでセクター情報が無い(na)場合のエラーを防ぐため、na()で判定して空文字に変換
string currentSector = na(syminfo.sector) ? "" : syminfo.sector
// ディフェンシブセクターの定義
bool isDefensive = currentSector == "Consumer Non-Durables" or
str.contains(currentSector, "Health") or
currentSector == "Utilities" or
currentSector == "Communications"
// --- パラメータの設定 ---
// ナンピン幅:ディフェンシブなら10%、景気敏感なら20%(RSIの基準は一律)
float dropPercent = isDefensive ? 10.0 : 20.0
// --- 計算ロジック ---
float rsiValue = ta.rsi(close, rsiLength)
var float lastSignalPrice = na
var int buyCount = 0
// RSI回復によるリセット
if rsiValue >= rsiResetLevel
lastSignalPrice := na
buyCount := 0
// ①初回買い:ポジションがなく、かつ RSIが基準値以下の時
bool isFirstBuy = na(lastSignalPrice) and (rsiValue <= rsiThreshold)
// ②買い増し:既にポジションがあり、前回価格から指定%以上下落した時(RSI無視)
bool isAdditionalBuy = not na(lastSignalPrice) and (close <= lastSignalPrice * (1.0 - (dropPercent / 100.0)))
// 最終シグナル
bool buySignal = isFirstBuy or isAdditionalBuy
// シグナル確定時の処理とラベル描画
if buySignal
lastSignalPrice := close
buyCount += 1
color labelColor = buyCount == 1 ? color.blue : color.red
string labelText = buyCount == 1 ? "買い?" : "買い増し?"
label.new(bar_index, low, text=labelText, style=label.style_label_up, color=labelColor, textcolor=color.white, size=size.small, yloc=yloc.belowbar)
// --- 画面右下の判定情報パネル表示 ---
var table modeTable = table.new(position.bottom_right, 1, 1)
if barstate.islast
string sectorDisp = currentSector == "" ? "不明" : currentSector
string panelTitle = isDefensive ? "【ディフェンシブ株】" : "【景気敏感株】"
color panelBgColor = isDefensive ? color.new(color.blue, 70) : color.new(color.red, 70)
string panelText = panelTitle + "\n業種: " + sectorDisp + "\n初回RSI: " + str.tostring(rsiThreshold) + "以下\nナンピン幅: " + str.tostring(dropPercent) + "%"
table.cell(modeTable, 0, 0, panelText, bgcolor=panelBgColor, text_color=color.white, text_size=size.normal)
表示されたら、銘柄を切り替えて試してみてください。
条件に当てはまらない銘柄や期間には、目印が出ないこともあります。
シグナルの表示条件
初期設定はRSI期間14、初回水準30、リセット水準50です。
青い「買い?」の条件
前回シグナル価格の記録がなく、RSIが30以下になると青い「買い?」が出ます。青はRSI30ちょうども含み、30を下抜けた瞬間だけを検出するものではありません。
赤い「買い増し?」の条件
赤の基準は初回の価格ではなく、直前のシグナルが出た足の価格です。10%設定で記録価格が100なら、次の条件は90以下です。90で表示された後は81以下が次の条件になります。実際の購入価格とは連動しません。
赤にRSI30以下は必須ではなく、RSI40でも価格条件を満たせば対象です。ただしRSI50以上なら先に価格と回数の記録をリセットするため、初期設定ではその足に赤は出ません。その後RSIが30以下になると青から始まります。
- 10%の設定:
- 業種名が
Consumer Non-Durables、Healthを含む業種名、Utilities、Communicationsの場合は、直前のシグナル価格から10%以上の下落が赤い「買い増し?」の価格条件です。
- 業種名が
- 20%の設定:
- それ以外は、直前のシグナル価格から20%以上の下落が赤い「買い増し?」の価格条件です。コード独自の分類で、業種情報がないETFなども20%になります。
パネルと形成中の表示について
「業種:不明」でもパネルの見出しは「景気敏感株」と出るため、下落率の数値も確認してください。
価格の判定に使うのは close です。確定した日足なら終値、形成中の足ならその時点の価格で計算するため、取引中は目印が出た後に消える場合があります。
コード中の「下回った」という説明も、実際の判定は30以下です。「ポジション」は実際の保有状況を指すものではなく、「確定時」というコメントも足の確定を待つ処理ではありません。
業績や財務、配当・優待の継続性は判定していません。目印が出たら、決算や適時開示で下落の理由も調べてください。
※私の場合は一括投資はせず、つねに資金に余裕を持たせた分割投資が大前提です
標準RSIのアラートを設定する(任意)
ここからは、標準RSIが30を下抜けたときの通知を設定します。先ほどの「買い?」「買い増し?」とは別の条件です。
掲載コードには自作シグナルの通知機能がありません。有料プランにしても、青・赤の目印をそのまま通知できるようにはなりません。
無料で表示を確認するだけなら、ここまでで十分です。標準RSIの通知が必要な方は、以下へ進んでください。
RSI通知に使うプランを確認する
RSIの通知は「テクニカルアラート」です。無料Basicの価格アラートとは別枠なので、インジケーターの通知に対応したプランを確認してください。

料金・プラン・無料体験の条件は変更される場合があります。申込み時の公式表示を確認してください。
必要な銘柄数や条件数と、使える通知件数を比べて選びます。無料体験の対象・期間、終了後の料金、自動更新・解約条件は申込画面をご確認ください。取引所のリアルタイム市場データは別料金になる場合もあります。
利用できるプランを確認したら、下の手順で標準RSIの通知を設定しましょう。
通知したい銘柄と時間足を選び、標準RSIを表示します。RSI期間は14、ソースは終値(close)に合わせてください。

さいごに:1株から投資できる証券口座
私の場合は、優待株投資の場合、1度に単元株(100株)を買うことはあまりありません。
タイミングと資金を分散して、少しづつ買い増します。
その際、単元未満株サービスを提供している証券口座を利用する必要があります。
単元未満株でおすすめの証券口座は別ページで紹介していますので、ご興味あればご覧ください。
単元未満株の取扱銘柄や注文方法は、証券会社によって異なります。利用条件は各社の公式サイトで確認してください。
moomoo証券の操作方法は、以下の記事でも紹介しています。キャンペーンの有無や対象条件は、申込み時の公式案内をご確認ください。
本記事は、投資に関する情報提供を目的としたものであり、特定の銘柄や金融商品の購入・売却を推奨・勧誘・助言するものではありません。記事内で使用しているデータは、筆者が独自に収集・集計したものであり、正確性・完全性を保証するものではありません。投資に関する最終的な判断は、読者ご自身の責任にて行っていただきますようお願いいたします。また、本記事の情報を参考にして発生したいかなる損失・損害についても、筆者は一切の責任を負いかねますので、あらかじめご了承ください。










