2015年05月06日
Rubyでの例外処理
Pan Active Market Databaseで、証券コードと証券名の一覧が出力されるRubyのスクリプトを作成した。証券名を出力させるにはReadメソッドで証券コードを指定した後、Nameメソッドを実行する。しかしReadメソッドは、指定した証券コードに該当する証券がないと、エラーが発生する(code C1010010)。証券コードを総当りで変化させていく時に、エラーが出ては途中でプログラムが中断してしまうので、例外処理を”Rubyではじめるシステムトレード”を参考に記述した。Rubyでの例外処理は、begin ~ rescue ~ endのような構造である。コードは以下のとおりで、
require "win32ole"
calendar = WIN32OLE.new("ActiveMarket.Calendar")
prices = WIN32OLE.new("ActiveMarket.Prices")
CANT_READ = /C1010010/
for i in 500..10000
begin
prices.Read(i)
rescue WIN32OLERuntimeError => e
next if e.message =~ CANT_READ
raise
end
print(i," ", prices.Name,"\n")
end
641の日経・東工取商品指数から9997のベルーナまで、これで証券名と証券コードの対応がわかるようになった。
require "win32ole"
calendar = WIN32OLE.new("ActiveMarket.Calendar")
prices = WIN32OLE.new("ActiveMarket.Prices")
CANT_READ = /C1010010/
for i in 500..10000
begin
prices.Read(i)
rescue WIN32OLERuntimeError => e
next if e.message =~ CANT_READ
raise
end
print(i," ", prices.Name,"\n")
end
641の日経・東工取商品指数から9997のベルーナまで、これで証券名と証券コードの対応がわかるようになった。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/3626775
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック