岡三RSS活用編動画 チャート系

岡三RSS活用編動画! 動画を見て岡三RSSを使いこなそう!

チャート系 岡三RSSでチャートを描画しよう! vol.4-1

岡三RSSを使ってエクセルにチャートを描く ボリンジャーバンド

エクセルでボリンジャーバンドを描く~株価のばらつき具合をモデル化する「標準偏差」とは?

このビデオの主なポイントとタイムライン

(TIME:1.11~4:09)
ボリンジャーバンドとは何か~ラインが値動きの大きさを意味する
(TIME:4.10~15:41)
値動きのばらつき具合をモデル化すれば株価がある位置にいる確率が計算できる
(TIME:15.42~26:30)
エクセルでボリンジャーバンドのラインデータを算出する

Vol4-1では、エクセルを使った「ボリンジャーバンド」の描き方を紹介します。

ボリンジャーバンドとは何か~ラインが値動きの大きさを意味する(TIME:1.11~4:09)

スライドの画面上では「ボリンジャーバンド」と呼ばれるテクニカル指標の日足をご覧いただいています。

最初に、ボリンジャーバンドはどのような線で構成されているかを紹介します。実体の値動き(日足のろうそく足のチャート)があり、そこに大まかなトレンドを示す25日移動平均線が追加されています(スライドでは、チャートの真ん中の黒線)。

25日移動平均線の外側に表示された2本の線は、あるポイントから25日前まで遡った株価がどの程度大きく動いたかを示しています。この線は、統計処理から導き出した基準σ(シグマ、ギリシャ文字ではSを表す)にもとに描いています。ここで行っている統計処理が「標準偏差(Standard Deviation)」です。

ある期間内で株価がどの程度荒く動いたか、その基準を示したものが1σ(標準偏差)です。その標準的な1σに対して今の株価が何倍になっているかを知るテクニカル指標が「ボリンジャーバンド」です。日足の標準偏差では、その日から過去25日間を元に算出しますから、日々値が変化していきます。

標準偏差の基準となる動きの1倍、2倍の大きさを平均から足したもの、引いたものを表したのがスライド上に現れた4本の線です。見た目が帯状になっているので「バンド」と呼ばれます。「ボリンジャーバンド」の名前は、このバンドを考案したボリンジャー氏にちなんでつけられました。

値動きのばらつき具合をモデル化すれば株価がある位置にいる確率が計算できる(TIME:4.10~15:41)

正規分布で株価のばらつきをモデル化する(TIME:4.10)

値動きの大きさ・荒さを示す「標準偏差」ですが、どのように算出されるかを解説します。スライド上では、日経先物の簡略化されたチャートを表示しています。最新の日付から25日間遡ったところまでを対象の区間として、標準偏差を計算します。具体的な計算では、直近25日分のそれぞれの株価を用います。

株価は25日間で高値・安値間が大きく広がることもあれば、小さな値動きの期間もあります。値動きの価格帯の中心として平均値があります。スライド上では、あらかじめ25個の株価の平均値を計算し、横棒で表示しました。

標準偏差では、それぞれの株価が平均からどの程度離れているかを問題にしています。平均に近いところには株価がたくさんあり、平均から離れるに従って、株価が存在する密度が低下します。その状況を計算でモデル化したものが標準偏差です。

スライドで「モデル化」する方法を説明します。時系列的にバラバラに存在する株価を縦軸に一直線上に並べてみます。株価サンプルを並べた縦軸を、横に倒して25日間の株価がどの位置にどのように密集していたかを見ます。

次のスライドでは、横軸上に株価サンプルと株価を表示しています。横軸の中心(平均値)が8500円です。横軸上に平均からの距離(株価)を示したのが次のスライドです。平均値を0として、125円下回ったところにいくつ株価が存在し、高い位置にはいくつ存在するかがわかる図となっています。これを山型にモデル化したものを「正規分布」と言います。株価のばらつき具合が山型のグラフで示されています。

次のスライドは2007年頃の1000営業日分の日経平均株価(前日比率)を分布を示したグラフです。これを統計処理をして一般化したものが赤の曲線(正規分布)です。前のスライドでは横軸上に株価を示す点をつけていましたが、今回はサンプル数が多いので、点を上に重ねていったものを棒グラフで示しています。すると、平均付近にもっとも多く株価が存在し、平均から離れるに従って、サンプル数が減っているのがわかります。

平均値から外側に行くに従って、株価の分布はまばらなります。株価が存在しない価格帯もありますが、そこは、株価が存在する位置同士のつながり具合を元にモデル化しています。ここでは「株価が正規分布に基づいて動くと仮定している」のです。

株価の値動きのばらつき具合が、正規分布になっている、と仮定すると、1σ(標準偏差)が具体的に何円かを算出できます。1σの区間内に株価が存在する確率は68.26%で、約2/3が±1σの間に存在します。言い換えると、±1σの外側に約1/3、両サイドで約1/6ずつが±1σの外側に存在します。0~±1σまでの2倍の距離(±2σ)の外側まで株価が動く確率は2.28%です。

先ほどは、横軸上に株価サンプルを表示しましたが、次のスライドでは、再び分布を縦に戻してみました。同じ株価で分布が複数回あれば、右側に積み上がっていきますから、右に盛り上がった山型の正規分布ができあがります。

スライド上では、再び25日の移動平均値が赤い直線で表示されています。この直線は、昨日時点では少し位置が下だったと考えられます。なぜなら昨日の平均では、今日の株価(高い位置)がなく、26日前の株価(低い位置)が追加されるからです。

このように過去25日間の平均値は日々異なりますから、その値をつなぐと曲線になります。その25日移動平均線をもとに、各正規分布の山で頂点から1σ相当は何円、2σ相当が何円と算出でき、そのポイントをつないだ線が、ボリンジャーバンドの1σ、2σの線となるのです。

標準偏差の確率を計算する=NORMSDIST関数(TIME:11.31)

計算の結果1σが125円と出た場合に、移動平均から125円高いところが1σ、250円高いところが2σ、375円高いところが3σになります。

全体の分布の中でそこに株価がいる確率は、エクセルの「NORMSDIST関数」で求められます。正規分布に従って株価が25日間の株価の範囲内で均一に行き来するという前提があるため、確率が計算できるのです。例として、スライドでは以下の関数を表示しています。

=NORMSDIST(AD4)

関数を入れたひとつ下のAD4セルに値をいれることにします。AD4セルに何も入っていない状態では、「0.5」という値が出ます。これは、ここから右半分に株価がある確率が0.5という意味で、%表示にすれば50%となります。つまり、正規分布の中心にあり、0σとも言えます。

NORMSDIST関数では、何σかをマイナスで入れる仕様になっています。1σならAD4セルには「-1」と入れます。すると15.9%と表示されます。

この15.9%の珍しさを別の形で表現してみます。AD5セルに次の式を入れて、15.9%の逆数を表示してみます。

=1/AD3

すると6.3と出ます。1σが125円なら125円以上に株価が存在するのは、6.3回に1回起きる珍しさと言えます。先ほど「±1σの外側に約1/3、両サイドで約1/6ずつが±1σの外側に存在する」と書きましたが、このような計算に基づいています。

さらに、2σであれば、AD4セルに「-2」と入れると2.3%と出ます。250円以上に株価が存在するのは約44回に1回。3σならば「-3」と入力すれば0.13%と出て、375円以上に株価が存在するのは740回に1回とわかります。

なお、「44回に1回」と言えば、かなり珍しい出来事に思えますが、案外すぐに出現します。日足ベースで44回に1回なら44営業日に1回。2カ月弱に1度は2σ以上が起きます。5分足で2σ以上が出現する確率は、5分足44本分で3時間40分ごとに現れることになります。

エクセルでボリンジャーバンドのラインデータを算出する(TIME:15.42~26:30)

サンプルシートの内容(TIME:15.42)

ここからは、実際にエクセルを使って、ボリンジャーバンドのチャートを描く説明をします。なお、エクセルのサンプルシートは、下記テキストリンクからダウンロードができます。

(ファイル名「チャート描画サンプルシート(先物).xls」)。このファイルは、ビデオ解説で使われるデータ内容とは、若干の違いがあります。

サンプルシートは、6シートで構成されています。「FCANDLE」「MA」「ボリンジャーバンド」「BB」「一目均衡表」「ICHIMOKU」と並んでいます。「FCANDLE」のシートでは、岡三RSSを使って自動的に4本値データをネット上から引っ張ってくる機能をつけています。

4本値と出来高を引いてくるエリアがB~H列です。この列ではデータが降順に並んでおり、降順を昇順にひっくり返したものを右側(N~W列)に持ってきています。

「FCANDLE」のシートでは、岡三RSSの関数を使ってB~H列にデータを出していますが、「ボリンジャーバンド」のシートでも同じデータを使うために「FCANDLE」(B~G列)をイコールで結んでいます。そして、ボリンジャーバンド特有の計算は、H~N列で行っています。また、シートの右側(P~AA列)ではデータの上下を入れ替えて昇順にしています。

25日移動平均と25日の標準偏差を算出する(TIME:17.29)

では、4本値を使ってボリンジャーバンドの線を書くための計算を行っていきます。日々のデータとして使うのは、終値ではなく、以下の計算から導き出します。

(高値+安値+終値)÷3

終値ではなく、上記データを使うのが、ボリンジャーバンドを作ったボリンジャー氏の方法です。

サンプルシートではH列で、「Average(HLC)」(HLCは高値・安値・終値の意味)と表示された列に日々のデータが入っています。実際、H18セルに入れる計算式は以下のようになります。

=AVERAGE(E18:G18)

または

=(E18+F18+G18)/3

でも同じ結果です。これを下までコピーしていけばいいのです。この数値を基本に移動平均や標準偏差の計算を行っていきます。移動平均の算出方法は、前回のビデオで解説したとおりです。

このデータの25日移動平均(25MA)の取り方が次の式です。25MAを入れる列(I列)の最初のセル(I18セル)には次の式が入ります。

=AVERAGE(H18:H42)

これで、25営業日分の平均値が算出されます。なお、25という数字は、統計処理をしていく時に、よく使われます。あるいは20~25のケースが多いようです。サンプルを取る日数が長過ぎると最近の傾向を表さなくなり、短過ぎるとデータの信頼性が低くなりますから、ちょうどいい数字ということでしょう。

前のビデオで説明したOFFSET関数を使えば、移動平均の日数などのパラメータが簡単に変更が可能となります。その場合には、次の式となります(I19セルに入力)。

=AVERAGE(OFFSET(H19,0,0,I$16,1))

上記の式の意味は、OFFSET関数で基準を隣のセル(H19)として、ここを基準に下に0、右に0(つまりH19のまま動かない)。次に高さの指定が「I$16」です。I16セルには、あらかじめ25(平均を取る日数が25日分)と書いてあります。絶対参照($記号で示す)は16行目に入れて「I$16」とします。これでこの式を下にコピーしても「I16」のセルは固定されます。幅の指定は1列、としてかっこを閉じます。関数式が完成したら下までコピーしておきます。

次に25日の標準偏差をエクセルの関数を使って算出します(J列=「25STD」の列)。算出する際の元データはH列(「Average(HLC)」の列)です。H列に入っている「AVERAGE」の計算式を「STDEV」に書き換えれば、1σ相当がいくらかが算出されます。

エクセルで[関数の挿入]を選び、[関数の分類]から[統計]を選ぶと、[STDEV]が見つかります。今回は「AVERAGE」の代わりに「STDEV」を使います。

=AVERAGE(H18:H42)

=STDEV(H18:H42)

と範囲を同じにして入れ替えてやればいいわけです。また、OFFSET関数で使ったものをSTDEV関数に変更して、「高さ」の部分をI16セルからJ16セルに置き換えれば(入っている数値は、ここでは同じ25営業日ですが)OKです。その後は、必要な数だけ下にコピーします。

=AVERAGE(OFFSET(H19,0,0,I$16,1))

=STDEV(OFFSET(H19,0,0,J$16,1))

標準偏差と移動平均から-2~+2σのラインデータ算出する(TIME:24.18)

導き出された標準偏差の値(J列のデータ)の何倍か、というライン(±1σ、±2σ)を出すために移動平均に足したり、引いたりします。なお、倍率はK16~N16セルに「-2」「-1」「1」「2」と入力していますが、左上に「表示バンド」の欄(D3~D6セル、黄色で表示)を設置してあり、同じ数値が入るように、データ連動しています。

標準偏差の-2倍となるK18セルには、次のように入力します。標準偏差(J18セル、J列絶対参照)に対して「-2」(K16セル、16行絶対参照)をかけて、そこに移動平均値(I18セル、I列絶対参照)を足します。コピーした時にも動かさない列や行には、絶対参照($)をつけています。

=$J18*K$16+$I18

これを横にコピーします。隣のL18セル(-1σ)を見ると、次のようになっています。

=$J18*L$16+$I18

この内容は「標準偏差×-1+25日移動平均値」、という意味です。同様にM18セル、N18セルは次のようになります。

M18セル(+1σ):=$J18*M$16+$I18
N18セル(+2σ):=$J18*N$16+$I18

この4つ(K18~N18)の標準偏差をコピーしたら、さらにいちばん下の行までコピーします。これでボリンジャーバンドの5本のライン(移動平均1本+標準偏差4本)のデータが完成しました。

なお、サンプルシートでは、上記の式に加えて、データのサンプル数が25個あるかないかを判定する関数が入っています。該当しないときはエラー処理を行い「NA」という値を出すようになっています。

目次

テーマ レベル 動画の内容  
岡三RSSでチャートを描画しよう!

サンプルシート

vol.1

岡三RSSを使ってエクセルシートでチャートを描く

  • エクセルでの株価データベース構築のコツ
  • 岡三RSSでの時系列データ取得の実際の解説
視聴
vol.2

エクセル2007や2003でのグラフ機能を使い株価チャートを作ってみる。

  • 移動平均付きローソク足を作る
視聴
vol.3 ☆~
☆☆

チャートづくりに便利な関数

  • 「OFFSET関数」の解説
  • 昇順降順の順番変え・移動平均の日数を可変に
視聴
vol.4-1 ボリンジャーバンドの解説 + 具体的な作り方 視聴
vol.4-2 一目均衡表の具体的な作り方 視聴
「RSS総合チャート管理」(解説)

サンプルシート

「サンプルシートダウンロード」解説 チャート・ポイント計算とチャート描画をあわせた総合シート

  • チャートの総合シートとチャートポイントを一覧で見ることが出来るエクセルシートのデザイン提案
    移動平均・ボリンジャーバンド・一目均衡表・平均足チャート
視聴
チャートポイント警告

サンプルシート

チャートポイント警告(先物用・個別株用)

  • 注文関数と連携も視野に 移動平均とボリンジャーバンドを例に
  • 「ゴールデンクロス・デッドクロス」警告 「ボリバンの指定σ到達」警告
視聴
「簡易マーケットプロファイル」(解説)

サンプルシート

「解説」マーケットプロファイルの簡単な説明と描画シートの使用方法解説

  • Type-A とType-B
視聴
簡易型ボリンジャーバンドバックテスト(解説)

サンプルシート

「セミナー」テクニカル分析に基づいてトレードをしたときの検証をエクセルを使って行う

  • どこまで検証できるのかの限界を最初に明確にする。
  • ボリンジャーバンドを使ったトレーディングの一例の解説
  • 累積損益の最大化 最大ドローダウンの最小化
  • 順張り/逆張り 強制ロスカット・スリッページ
視聴