Skip to content

Instantly share code, notes, and snippets.

View masaakif's full-sized avatar

fujiwara-masaaki masaakif

View GitHub Profile
@masaakif
masaakif / toBlp.rb
Created June 21, 2013 00:48
MarketID、ExchangeID、SEDOLコードの表と、MarketID、ExchangeID、BLPExchCodeの表から、Bloombergのコードを生成する。たとえば、caequ, XTSX, 2000075というデータと、caequ,XTSX,CN の場合は、2000075 CN Equity と出力する
require 'set'
exs = Hash.new
open("exchlist.txt").each do |line|
next if line[0] == '0'
exl = line.chomp.split("\t")
exs["#{exl[1]}.#{exl[2]}"] = exl[3]
end
blps = Set.new
@masaakif
masaakif / extExch.rb
Created June 19, 2013 01:09
定形のフォーマットのテキストファイルから、MarketID、ExchangeIDを抜粋し、重複しないようにして表示する.
require 'set'
# source format is
# +----------+------------+-----------+
# | MarketID | ExchangeID | SedolCode |
# +----------+------------+-----------+
# | caequ | XTSX | 2000075 |
# | clequ | XSGO | 2000257 |
#
# Output format is
@masaakif
masaakif / output_holiday.rb
Created June 5, 2013 07:40
Excelを開いてcalendardateというシートから、休日、各国のカレンダー、休日の情報をよみこみ、整形して表示する。なお、Excelには、「Japan-Holiday,20130101,Holiday,New Year Day」というように入っている。結果は、20130101 Japan-Holiday New Year Date、次の行には、HK-Holiday New Year Dateという形で表示される
require "win32ole"
class ExcelUtil
def [] x, y
@xl.ActiveSheet.Cells.Item(y,x)
end
def initialize
@xl = nil
end
@masaakif
masaakif / get_script_location_test.rb
Created May 23, 2013 02:13
[Ruby]スクリプトの場所に、ファイルを作成、日時とスクリプトの存在するディレクトリをフルパスで書き込む
cdt = Time.now().strftime('%H%M%S')
a = File.expand_path(File.dirname(__FILE__))
open("#{a}/out.#{cdt}", 'w') do |f|
f.puts(cdt)
f.puts(a)
end
@masaakif
masaakif / checkGivenSedolExists.rb
Last active December 17, 2015 04:48
[ruby]sedol.txtというファイルに入っているSedolコードが、現在のフォルダに入っているExcelシートの4列の5行目~はいっているかチェックして出力する。また、T列にBloombergコードが入っている式があるので、Bloombergコードのみ取り出す。
require 'rubygems'
require 'zipruby'
require 'win32ole'
require 'pp'
sedols = Array::new()
# Read sedols
open("sedols.txt").each do |l|
# sedols.txt has below like contents
@masaakif
masaakif / extract_soft_limits.rb
Created March 26, 2013 06:09
[ruby]同一ディレクトリ内のZIPファイルを全て走査して、特定のXMLファイルを読み込み、必要な情報のみを見やすく表示する。まだ途中
require 'rubygems'
require 'zipruby'
require 'pp'
Dir.glob('*.zip') do |zipfile|
userid = zipfile.sub(/.*-(\w{5,8})-.*/,'\1')
Zip::Archive.open(zipfile) do |arcs|
arcs.each do |f|
next unless f.name == 'SOME_SPECIAL.xml'
puts f.name
@masaakif
masaakif / dup_jira_id.rb
Created February 26, 2013 06:05
JIRAのIDと概要のテキストを受け取り、重複しているJIRAのみ抽出。なおJIRAのIDは、GUI-XXXXでXXXXは4桁の数字
h = Hash.new
def addHash(jiraId, h)
if h.has_key? jiraId
h[jiraId] = h[jiraId] + 1
else
h[jiraId] = 1
end
end
@masaakif
masaakif / split_to_1line.rb
Created January 31, 2013 05:45
複数行のCSVファイルを、1行ずつの別ファイルにする。ファイル名のフォーマットは、XXXX_yyyymmdd_hhnnss_000000_1.csv。コメント行は除く。000000は連番。
i = 0
open(ARGV[0]).each do |l|
next if l.index("#")
dest_name = "XXXX_" + Time.now.strftime("%Y%m%d_%H%M%S") + format("_%06d_1.csv", i)
open(dest_name, "w").puts l
i += 1
end
@masaakif
masaakif / return_every_80chars.txt
Created January 28, 2013 11:24
Vimの正規表現で、80文字ごとに改行する
:%s/\(.\{80}\)/\1\r/g
@masaakif
masaakif / ext_exc.rb
Last active December 11, 2015 17:18
ログより、Bloombergにsubscribeしている部分を抽出。同じ市場に複数銘柄でsubscribeしている場合は最初のsubscriptionされている銘柄のみ出力する。
require "set"
excs = Set::new()
open("Subscription.log").each do |l|
# l = 2013-01-25 20:01:04,661 [ Main] INFO InstrumentList::AddInstrumentRequest: (26A32E58)4286679 CP Equity subscribed...
pos = l.index("Equity subscribed")
next unless pos
exch = l[pos - 5, 4]
exch = exch[2,2] if exch[1] == 32