トップ «前の日記(2005-01-15(土)) 最新 次の日記(2005-01-17(月))» 編集

とた日記


2005-01-16(日) 雨 安静時心拍数 50 [長年日記]

_ 信用買残、信用売残もエクスポートする Omega Chart 用 script

表示銘柄のCSV形式エクスポートでは信用買残、信用売残のデータまでエクスポートできないのでデータをインポートしたいを参考にして日付、始値、安値、高値、終値、出来高、信用買残、信用売残のすべてを CSV ファイルに出力する Ruby スクリプト extract.rb を書いてみました。ruby 1.8.1 (2003-12-25) [i386-cygwin] な環境で作りました。Ruby プログラミングの練習なのでまともなエラー処理はしてません。

参考

#!/usr/bin/env ruby
 
require 'csv'
 
class Record
  def initialize(record)
    @record = record
  end
 
  def date
    @record[0..3].unpack("I*")
  end
 
  def open
    @record[4..7].unpack("I*")
  end
 
  def high 
    @record[8..11].unpack("I*")
  end
 
  def low 
    @record[12..15].unpack("I*")
  end
 
  def close
    @record[16..19].unpack("I*")
  end
 
  def volume
    @record[20..23].unpack("I*")
  end
 
  def cl
    @record[24..27].unpack("I*")
  end
 
  def cs
    @record[28..31].unpack("I*")
  end
end
 
code = ARGV.shift
 
if code == nil
  exit
end
 
csv = CSV.open("#{code}.csv","w")
csv << ["date", "open", "high", "low", "close", "volume", "cl", "cs"]
 
File.open("#{code}","rb") {|file|
  while l = file.read(32)
    r = Record::new(l)
    csv << [r.date, r.open, r.high, r.low, r.close, r.volume, r.cl, r.cs]
  end
}
 
csv.close

_ portupgrade emulators/linux_base-8

linux_base-8-8.0_4          <  needs updating (port has 8.0_5)