電子書籍の厳選無料作品が豊富!

はじめまして。初めて投稿します。
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

A 回答 (1件)

ざっと気になるところでは…


stdevpでなくstdevか
sigmaをdoubleにしてみるとか

VBAじゃなくて普通に関数使った方が早くないですか?

いずれにせよ、気にしなければならないほどの誤差は出ないと思うんですが…

この回答への補足

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

補足日時:2007/09/17 06:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!