Λάδι Βιώσας

http://profile.hatena.ne.jp/kenkitii/

スタティスティカル・アービトラージ

エクセルマクロが使えるという Surface Pro のキャンペーン中っぽいので日記書いてみた。キャンペーン↓

Windows/Office武勇伝Surface Proが当たる! 開発者グループOPENキャンペーン>

キャンペーン終わり

さて・・・随分前に Kindle Paperwhite で買った続マーケットの魔術師

続マーケットの魔術師 (ウィザードブックシリーズ)

続マーケットの魔術師 (ウィザードブックシリーズ)

やっとエドワード・ソープの章まで読み終わりました。エドワード・ソープとは数学者としてブラックジャックに確率論を持ち込んだ、現代の金融工学の祖ともいえる人物です。ちなみに以前日記で「ラスベガスをぶっつぶせ」という映画を紹介しましたが、そのモデルになった人で株式投資の世界でも有名です。

さて、上述の本では、昔、ソープが株式投資で使っていた手法、スタティスティカル・アービトラージについて紹介されています。スタティスティカル・アービトラージとは、直近四半期で、最も下落した株の買いと最も上昇した株の空売りをほぼ一致させる、オプション取引でいうところのデルタヘッジを行うことです。

とても単純な手法なんですけど「スタティスティカル・アービトラージ」でグーグル先生に問い合わせると、まともな情報がまったく出てこないので、「スタティスティカル・アービトラージ」でググった時、このエントリーが一番上にでてくるよう日記を書いた次第でございます。しばらくしたら「スタティスティカル・アービトラージ」でググりますのでよろしくお願いいたします。大事なことなので3回言いました。あ、あとついでに Surface Pro も当ててください。

スタティスティカル・アービトラージを検証するためちょろっと書いたコードをおまけで貼り付けておきます。一人で研Qしていて公開するつもりのないコードなので汚いですがご了承願います。スクリプトを動かすには、前回の日記で書いた営業日計算のコードを'eigyoubi.rb'として保存し、適当な銘柄のコード(ここでは日経225)を '225.txt' として用意しておきます。

require "jpstock"
require './lib/eigyoubi.rb'

h = {}
e = Date.today
s = Date.today.business_days_before(25)

codes = open("225.txt","r").read.split("\n")
codes.each do |code|
  prices = JpStock.historical_prices(:code => code.to_i, :start_date => s, :end_date => e)
  down = (prices[0].close.to_f / prices.map {|price| price.close}.max - 1) * 100
  up   = (prices[0].close.to_f / prices.map {|price| price.close}.min - 1) * 100
  h[code] = [down, up]
end

cmin = h.min_by{|k,v| v[0]}
cmax = h.max_by{|k,v| v[1]}

puts "下落率トップ #{cmin[0]}, 下落率 #{cmin[1][0]} 期間(#{s}~#{e})"
puts "上昇率トップ #{cmax[0]}, 上昇率 #{cmax[1][1]} 期間(#{s}~#{e})"

四半期だと長すぎるので、とりあえず一ヶ月で計算したところ

下落率トップ 9501, 下落率 -20.307692307692303 期間(2013-08-12~2013-09-15)
上昇率トップ 1801, 上昇率 33.509234828496034 期間(2013-08-12~2013-09-15)

お漏らし電力を買って、オリンピック銘柄を売れ、とのご神託が出ました。。。

    • -

投資は自己責任です。ここに掲載しているデータは、その正確性を保証するものではありません。ここに掲載しているデータを参考にして発生した、いかなる損害・損失にも当方は責任を負いません。投資は自己判断でお願いします。