2015年05月06日
MATLABによるPan Active Market Databaseへのアクセス方法
書籍”Rubyではじめるシステムトレード”ではRubyでPanrolling社の株価データベースであるPan Active Market Databaseへのアクセス方法が紹介されている。その中で少しActiveXやCOM、OLEなどについて触れらている。
MATLABでこのデータベースにアクセスできないかと調べてみたが良くわからない。ActiveXなどの知識は全くないので、Rubyのコードを参考に適当にMATLABのコードを打ち込んでいたら出来た!
RubyやExcelのサンプルコードではcalendarという名前の変数が使われているが、MATLABではcalendarという関数があるので、日付関係の変数名を例えばdayinfoなどとしておく。さらに引数はシングルクォートで囲む。
> dayinfo = actxserver('ActiveMarket.Calendar')
> prices = actxserver('ActiveMarket.Prices')
これらを定義した後で、価格を読み込むときは証券コードをシングルクォートで囲むことに注意をして、
> prices.Read('1001")
> prices.Begin
ans = 5632
> prices.End
ans = 8191
とおなじみの値が出力される。
日付に関しては、
> dayinfo.Date(5632)
ans = 2005/06/20
> dayinfo.DatePosition('2015/5/1')
ans = 8191
とシングルクォートで囲むことに注意すれば、あとはRubyやExcelと同じ。MATLABを使って全株価データをMySQLなどのデーターベースに移せば、様々な環境でシステムが開発できそう。プログラム言語は何でもいいはずだが、どういう環境にするか…
MATLABでこのデータベースにアクセスできないかと調べてみたが良くわからない。ActiveXなどの知識は全くないので、Rubyのコードを参考に適当にMATLABのコードを打ち込んでいたら出来た!
RubyやExcelのサンプルコードではcalendarという名前の変数が使われているが、MATLABではcalendarという関数があるので、日付関係の変数名を例えばdayinfoなどとしておく。さらに引数はシングルクォートで囲む。
> dayinfo = actxserver('ActiveMarket.Calendar')
> prices = actxserver('ActiveMarket.Prices')
これらを定義した後で、価格を読み込むときは証券コードをシングルクォートで囲むことに注意をして、
> prices.Read('1001")
> prices.Begin
ans = 5632
> prices.End
ans = 8191
とおなじみの値が出力される。
日付に関しては、
> dayinfo.Date(5632)
ans = 2005/06/20
> dayinfo.DatePosition('2015/5/1')
ans = 8191
とシングルクォートで囲むことに注意すれば、あとはRubyやExcelと同じ。MATLABを使って全株価データをMySQLなどのデーターベースに移せば、様々な環境でシステムが開発できそう。プログラム言語は何でもいいはずだが、どういう環境にするか…
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/3626563
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック