google spreadsheet 株式チャート rsi の作り方と実践
Google スプレッドシートでの株式チャートと RSI
「google spreadsheet 株式チャート rsi」を使って、Google スプレッドシート上で株価や暗号資産の終値データを取得し、RSI(相対力指数)を算出してチャートに表示する方法を、初心者向けに順を追って説明します。本記事を読むことで、データ取得方法の比較、14期間RSIの計算式(Wilder の平滑化を含む)、可視化の手順、Apps Script を使った自動更新まで実務で使えるノウハウが身につきます。Bitget ユーザーや Bitget Wallet を利用する方向けの実用的なヒントも含みます。
注記:本文では「google spreadsheet 株式チャート rsi」を中心キーワードとして多用します。記事内の手順は、投資助言を目的とせず、技術的な実装ガイドとして提供します。
RSI(相対力指数)とは
RSI(Relative Strength Index、相対力指数)は Welles Wilder によって考案されたオシレーター系のテクニカル指標で、0〜100 のレンジで計測されます。標準的には14期間の変化率を使い、一般的な解釈は以下の通りです。
- RSI > 70:過熱(買われ過ぎ)のシグナルの可能性
- RSI < 30:売られ過ぎのシグナルの可能性
- 50 前後:中立・方向感の弱い局面
RSI の用途と限界
- 用途:トレンドの強さ把握、逆張りシグナル、ダイバージェンスの検出(価格とRSIが逆行する場合)。
- 限界:強いトレンド下ではダマシが増える(高値を更新する上昇トレンドでRSIが70付近でも上昇継続する等)。単独での売買判断はリスクが高く、他指標や資金管理と組み合わせるべきです。
数式(理論式)
基本式は以下の通り。
- RS = Avg Gain / Avg Loss
- RSI = 100 - (100 / (1 + RS))
ここで、Avg Gain / Avg Loss は初回は単純平均(n期間分)、以降は Wilder の平滑化(指数的に近い平滑)を用います。
- 初回 AvgGain = SUM(Gain[1..n]) / n
- 初回 AvgLoss = SUM(Loss[1..n]) / n
- 以降の AvgGain = (PrevAvgGain * (n - 1) + CurrentGain) / n
- 以降の AvgLoss = (PrevAvgLoss * (n - 1) + CurrentLoss) / n
このロジックを Google スプレッドシート上で実装するのが本記事の主目的です。キーワード「google spreadsheet 株式チャート rsi」に沿って、実装手順を順に示します。
Google スプレッドシートに価格データを取り込む方法
google spreadsheet 株式チャート rsi の実装で最初に選ぶべきはデータソースです。主な取得方法は次の通りです。
- GOOGLEFINANCE 関数
- IMPORTXML(Web スクレイピング)
- 外部 API / アドオン(例:SheetsFinance 相当)
- Apps Script 経由での API 呼び出し
それぞれの長所・短所を簡潔に示します。
- GOOGLEFINANCE:シンプルで Google のサービス内完結。ただし対応銘柄や遅延、暗号資産の対応が限定的。
- IMPORTXML:HTML や公開 API の XML/JSON を取り込める。サイト構造変更に弱く、利用規約違反に注意。
- 外部 API / アドオン:多市場・暗号資産対応や大量データ向け。ただし有料の場合が多く、API レート制限に注意。
- Apps Script:自由度が高く、定期更新やキャッシュ戦略を柔軟に実装可能。API キーの保護やスクリプト実行制限に注意。
GOOGLEFINANCE の使い方(米国株・ETF)
基本構文:
=GOOGLEFINANCE("TICKER", "attribute", start_date, end_date, interval)
- 例:米国株の終値履歴(日次)
=GOOGLEFINANCE("AAPL", "close", DATE(2025,1,1), TODAY(), "DAILY")
注意点:
- 一部銘柄や市場は非対応。データは遅延する場合あり。
- 出力形式は日付と値の二列。時刻や分足は対応外の場合がある。
IMPORTXML やスクレイピング(日本株・非対応銘柄)
公開ページから XPath を使ってデータを取得します。
=IMPORTXML("https://example.com/ticker", "//xpath/to/price")
注意点:
- 取得先サイトの利用規約を必ず確認。スクレイピング禁止のサイトからは取得しない。
- サイト側の DOM 変更で壊れやすい。
サードパーティのアドオン/API(大容量・暗号資産対応)
暗号資産は 24/7 取引で取引所ごとに価格差があるため、CoinGecko/CoinMarketCap/取引所 API などの外部 API を使うことが多いです。データの正確性・遅延・料金プランを確認してください。Bitget ユーザーは Bitget が提供する市場データや Bitget Wallet を活用してデータの整備を行うと管理が楽になります。
データの更新とキャッシュ
- GOOGLEFINANCE:自動更新するが間隔は制御しにくい。
- IMPORTXML:更新頻度はサイト側と Google のキャッシュに依存。
- Apps Script:Time-driven トリガーで定期的に API を叩いてシートに値を「値貼り付け」することで安定化できる。
キャッシュ戦略:API レート制限回避のため、取得データは一旦シートに静的に保存し、必要に応じて更新する。Apps Script で「前回取得からの差分のみ更新」する方法が有効です。
Google スプレッドシートでの RSI 計算手順(ステップバイステップ)
以下は典型的な列構成と具体的セル式の例です。キーワード「google spreadsheet 株式チャート rsi」を含む手順です。
想定:A列 = Date、B列 = Close(終値)。14期間 RSI による例。
列構成例:
- A: Date
- B: Close
- C: Change (差分)
- D: Gain
- E: Loss
- F: Avg Gain
- G: Avg Loss
- H: RS
- I: RSI
データ準備(例:終値が B 列)
C3 に差分式(B3 - B2):
C3 = B3 - B2
Gain / Loss 列の式(D3 / E3):
D3 = IF(C3>0, C3, 0) E3 = IF(C3<0, ABS(C3), 0)
これをデータ列全体にコピーします。
初回の平均増加・平均減少(14 期間の単純平均)
14 期間の場合、初回 Avg Gain は 14 本の Gain の単純平均です。仮にデータが行 2 から始まり、14 期間目が行 15 とすると、F15 と G15 に以下を入れます。
F15 = AVERAGE(D2:D15) G15 = AVERAGE(E2:E15)
Wilder の滑らか化(以降の期間)
Wilder の平滑化を行うため、行 16 以降で次の式を使います(n = 14):
F16 = (F15 * (14 - 1) + D16) / 14 G16 = (G15 * (14 - 1) + E16) / 14
同じパターンを下へコピーします。スプレッドシート上では相対参照/絶対参照に注意してオートフィルします。
RSI の最終式(セル例)
RS と RSI を計算する式の一例(H列/I列):
H16 = IF(G16=0, 999999, F16 / G16) I16 = IF(G16=0, 100, 100 - 100 / (1 + H16))
実運用では G=0 の場合を 100 として扱う(平均損失が 0 なら RSI=100)。また H を大きな値にして 1 で割る回避をするやり方もあります。
14 日 RSI のフル式サンプル(コピペ可能)
以下は初期範囲と平滑化を含めた、行 2 からデータが入っている想定でのサンプル。ここではヘッダが 1 行目、データは 2 行目以降にあると仮定します。
- C3(差分):
=IF(ROW()=2, "", B3 - B2)
- D3(Gain):
=IF(C3>0, C3, 0)
- E3(Loss):
=IF(C3<0, ABS(C3), 0)
- F15(初回 AvgGain、14期間目):
=AVERAGE(OFFSET(D15, -13, 0, 14, 1))
- G15(初回 AvgLoss):
=AVERAGE(OFFSET(E15, -13, 0, 14, 1))
- F16(以降 AvgGain):
=(F15 * 13 + D16) / 14
- G16(以降 AvgLoss):
=(G15 * 13 + E16) / 14
- I16(RSI):
=IF(G16=0, 100, 100 - 100 / (1 + F16 / G16))
このパターンを下へオートフィルすることで、スプレッドシート上で「google spreadsheet 株式チャート rsi」を完結させられます。
RSI をチャートに組み込む(価格チャート下に RSI を表示)
価格チャートと RSI を同じシート内に表示する典型的な方法は次の通りです。
- 価格(Date + Close)のチャートを作成(折れ線推奨)。
- 別のグラフとして RSI(Date + RSI)を同シート下や横に配置する。X 軸の日付を同じにして同期させる。
- 両軸を一つの複合チャートで表現する場合、価格を左軸、RSI を右軸に割り当てることも可能。ただし視認性に注意。
Google スプレッドシートの「チャート編集」パネルで系列の軸や色、線種(実線/点線)を設定します。
RSI 帯(30/70)の視覚化
RSI の過熱/売られ過ぎ領域を視覚化する方法:
- チャートに水平線(y=30, y=70)を追加する。スプレッドシート内で水平線を直接描く機能は限定的なため、別のデータ系列で 30 と 70 の列を作成して同じ日付でプロットし、線の色を薄く設定する手法が有効です。
例:列 J に 70、列 K に 30 を全日付分セットして RSI チャートに重ねる。
チャート更新の自動化(Apps Script)
Apps Script を使えば、次の自動化が可能です。
- 日次で価格データを API から取得してシートを更新。
- RSI 計算列の値を「値貼り付け」で固定し、計算負荷を軽減。
- RSI 閾値に触れた場合にメールや Slack(Bitget の社内チャット/Webhook)へ通知する。
注意:Apps Script の実行はクォータ制限があるため、取得間隔や処理量は最適化してください。Bitget ユーザーは Bitget の API /データ提供方法を確認し、API キーの管理を適切に行ってください。
テンプレートと学習リソース
google spreadsheet 株式チャート rsi の学習に使えるテンプレートや教材の種類と使い方を紹介します。
- 既成テンプレート(RSI 計算済みシート):時間短縮になるが、データソースや期間を自分仕様にカスタマイズする必要があります。
- チュートリアル動画(YouTube):式のトレースや Apps Script 解説で役立ちます。
- 解説記事(Bricks, indzara 等):式のパターンや応用例が多く載っています。
既成テンプレートを使う際は、以下をチェックしてください。
- データ取得元(GOOGLEFINANCE / API / IMPORTXML)
- 使用期間(14日、9日等)
- 暗号資産対応か否か
既成テンプレートをカスタマイズする際のポイント:期間(n)を変更したら初回単純平均と平滑化式両方の n を一致させること。データの欠損や空白行を除去してから計算すること。
暗号資産(仮想通貨)や米国株への適用上の差異
暗号資産は 24/7 取引であり、取引所ごとに価格差が生じやすい点が株式と異なります。GOOGLEFINANCE は暗号資産に限定的にしか対応しないため、多くの場合は CoinGecko や CoinMarketCap、あるいは取引所の REST API を Apps Script 経由で取得する方法が現実的です。
暗号資産を扱う際の注意点:
- タイムゾーンとタイムスタンプの扱い(UTC 基準で揃えると良い)。
- 取引所による価格差:どの価格(取引所A の終値、複数取引所の加重平均など)を RSI の基準にするかを決める。
- 大きなボラティリティにより RSI の解釈が変わる可能性。
Bitget を利用するユーザーは、Bitget が提供するデータや Bitget Wallet を中心に価格ソースを統一すると管理が容易です。
よくあるトラブルと対処法
google spreadsheet 株式チャート rsi を実装する際によく起きる問題とその対処法をまとめます。
- GOOGLEFINANCE の欠落データ:該当銘柄が非対応の場合、IMPORTXML や外部 API に切り替える。
- IMPORTXML の XPath 崩れ:サイト構造が変わったら XPath を再作成。定期的に動作チェックを行う。
- 空白セルによる計算エラー:IFERROR、IF(ISBLANK()) で回避する。RSI 算出領域はデータ揃い次第実行する。
- 初期期間での差異:初回の単純平均の扱いで RSI の初期値が変わる。テンプレートでは初期 n 期間を明確に表示しておく。
デバッギングチェックリスト
- 日付が昇順にソートされているか
- 空白行や欠損値がないか
- 数値フォーマット(テキストではなく数値になっているか)
- 初期 14 期間(もしくは選択期間)の参照範囲が正しいか
- IMPORTXML / API の応答が期待通りか(ステータスコード、JSON 構造)
- Apps Script のエラーログを確認
実務上の使い方(シグナル運用例)
注意:以下は技術的なルール例であり、投資助言ではありません。リスク管理やロスカットの設定を常に行ってください。
- シンプルルール例:RSI が 70 を上抜け ⇒ 過熱、30 を下抜け ⇒ 売られ過ぎの検討シグナル
- ダイバージェンス:価格が高値更新するが RSI が高値更新しない場合は弱気ダイバージェンスとして注意
- マルチタイムフレーム:日足と週足の RSI を組み合わせてフィルタリングする
取引を自動化する場合は Apps Script でシグナル検出→通知まで自動化できます。Bitget の API を使ってポートフォリオ管理を行う際は API 利用規約とセキュリティガイドラインに従ってください。
進んだテーマ(拡張)
- 単純移動平均を用いた RSI の変形(SMA ベース RSI)
- マルチタイムフレーム解析(例:日足の RSI と 4 時間足の RSI を使ったフィルタ)
- アラート設定:RSI が閾値を超えたらメール/Webhook 送信(Apps Script)
- ポートフォリオ統合:複数銘柄の RSI を一つのダッシュボードにまとめる
法的・倫理的注意点と免責
- データ取得:スクレイピングや API 利用は各サービスの利用規約に従うこと。違反は法的リスクを伴う。
- 投資助言回避:本記事は教育・技術ガイドであり、具体的な投資助言を目的とするものではありません。
以下は必ず表記する免責の文例です:
本記事は技術的な実装ガイドです。投資判断はご自身の責任で行ってください。
参考文献・外部リンク(選定)
- How to Get RSI in Google Sheets - Bricks
- RSI Indicator Google Sheets Template - indzara
- SheetsFinance / Google Workspace Marketplace の説明
- YouTube チュートリアル(RSI の計算・Google Sheets 実装)
- Welles Wilder による RSI の原典(著作)
(注:上記は参照元名の記載であり、実際の URL は本稿では記載していません。必要であれば指定に従って資料を提供します。)
時事的な短期情勢メモ(時点表記あり)
- 截至 2025-12-27、Bitget が提供する市場データの公開情報を参照すると、暗号資産の流動性環境や日間出来高の増減はシグナル解釈に影響する可能性があります。具体的な数値や市場指標を採用する際は、最新の取引所データと公式ドキュメントを確認してください。
注:上記は時点の参考情報であり、データは変動します。詳細数値を用いる場合は必ず公式ソースからの取得を行ってください。
最後に(行動喚起)
google spreadsheet 株式チャート rsi の作成は、手順を一つずつ実行すれば初心者の方でも実践可能です。まずは小規模な銘柄でテンプレートを試し、Apps Script による自動化や Bitget のデータ連携を段階的に導入することをおすすめします。さらに詳細なコピペ式のテンプレートや Apps Script サンプルが必要なら、どの形式(①コピペ可能なセル式、②Apps Script サンプル、③暗号資産向け API 実装)のいずれが欲しいか教えてください。Bitget のエコシステムでの運用もサポートします。


















