panacoran
panac****@yahoo*****
2007年 12月 16日 (日) 21:39:05 JST
--- Mike Zang <mikez****@yahoo*****> wrote: > 1000で割っているのは単元数が1000だからではなく、Volumeがintの > > 最大値である2147483647を超えてしまうのを防ぐためです。 > なるほど。 ごめんなさい。これは嘘です。 Volumeはdoubleなのでintの最大値とは関係ないです。 もともとは昔の無尽蔵のデータが出来高を1000で割っていたことからき ています。今は1000で割っていませんが、そのままだと数字が大きすぎ て、チャートの縦軸のラベルの幅が足りないので、Protra側で1000で割 っています。 > OmegaChartのデータと無尽蔵のデータはどういう違いが > ありますか? 無尽蔵には単元株数のデータがなく、OmegaChartにはあります。 > 出来高低い銘柄(たとえば、2000単元以下)は売買しない > ため。 なるほど。 最近は、最低売買単位が100万円以下になるように単元株数が設定されて いるので、株価を引数に取るこんな単純な関数で、多くの銘柄の単元株 数を当てることができます。 def GuessUnit(price) num = 1000000 / price if num >= 1000 return 1000 elsif num >= 100 return 100 end return 1 end daraiさんのLDS2.ptにあるNumという関数をちょっといじっただけですけ ど。 -- panacoran -------------------------------------- New Design Yahoo! JAPAN 2008/01/01 http://pr.mail.yahoo.co.jp/newdesign/