• 締切済み

ボリンジャーバンドのチャート表示について

はじめまして。初めて投稿します。 Excel VBAを使って日足を取得し、ボリンジャーバンドをマクロで 計算させてExcelシートにチャート表示させているのですが、 自分で計算したチャートは、折れ線グラフで表示されるせいか値が 微妙に違ってしまいます。 ボリンジャーバンドをうまくチャートに表示する方法がわかる方が いらっしゃれば教えていただきたいです。よろしくお願いします。 ボリンジャーバンドを計算するコードは以下のようにしました。 Sub Bollinger_Band() Dim sigma As Integer length(1) = 25 'MAの期間 sigma = 2 'σの設定 co1 = 13    'Bollinger_Band(-2σ)の列 co2 = 14    'Bollinger_Band(+2σ)の列 co3 = 8 'MAの列 If firstrow < length(1) + 2 Then ro1 = length(1) + 2 Else ro1 = firstrow For i = ro1 To lastrow Cells(i, co1) = Cells(i, co3) - sigma * WorksheetFunction.StDevP(Cells(i - length(1) + 1, 5), Cells(i, 5)) 'Cells(i,5)は終値 Cells(i, co2) = Cells(i, co3) + sigma * WorksheetFunction.StDevP(Cells(i - length(1) + 1, 5), Cells(i, 5)) Next i End Sub

みんなの回答

  • count0
  • ベストアンサー率54% (73/133)
回答No.1

ざっと気になるところでは… stdevpでなくstdevか sigmaをdoubleにしてみるとか VBAじゃなくて普通に関数使った方が早くないですか? いずれにせよ、気にしなければならないほどの誤差は出ないと思うんですが…

os-k
質問者

補足

count0 さん、回答ありがとうございます。 最初はstdevで計算していましたが、stdevpのほうがチャートに表示したときに誤差がでにくいような気がしたのでstdevpで計算しました。 ただ、MarketSpeedのチャートをみると、バンドが平滑されているような感じでしたし、実際自分が計算した値と同じ日の値が明らかに違うので、銘柄をスクリーニングするには使えないと思いました。 BBの計算式も正しいと思うので、ならば証券会社やヤフーファイナンスのBBはどのようにして算出しているのか知りたいと思いました。

関連するQ&A