スタティスティカル・アービトラージ
エクセルマクロが使えるという Surface Pro のキャンペーン中っぽいので日記書いてみた。キャンペーン↓
Windows/Office武勇伝 <Surface Proが当たる! 開発者グループOPENキャンペーン>
キャンペーン終わり
さて・・・随分前に Kindle Paperwhite で買った続マーケットの魔術師↓
- 作者: ジャック・D・シュワッガー,長尾慎太郎,山口雅裕
- 出版社/メーカー: パンローリング
- 発売日: 2012/12/08
- メディア: ハードカバー
- この商品を含むブログ (3件) を見る
さて、上述の本では、昔、ソープが株式投資で使っていた手法、スタティスティカル・アービトラージについて紹介されています。スタティスティカル・アービトラージとは、直近四半期で、最も下落した株の買いと最も上昇した株の空売りをほぼ一致させる、オプション取引でいうところのデルタヘッジを行うことです。
とても単純な手法なんですけど「スタティスティカル・アービトラージ」でグーグル先生に問い合わせると、まともな情報がまったく出てこないので、「スタティスティカル・アービトラージ」でググった時、このエントリーが一番上にでてくるよう日記を書いた次第でございます。しばらくしたら「スタティスティカル・アービトラージ」でググりますのでよろしくお願いいたします。大事なことなので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)
お漏らし電力を買って、オリンピック銘柄を売れ、とのご神託が出ました。。。
-
- -
投資は自己責任です。ここに掲載しているデータは、その正確性を保証するものではありません。ここに掲載しているデータを参考にして発生した、いかなる損害・損失にも当方は責任を負いません。投資は自己判断でお願いします。
X営業日前の日付を求める ruby スクリプト
ある銘柄の株価の移動平均を求めたい場合、期間を指定して株価データを取得することが多いです。この時、たとえば、25日分の株価データが欲しいなんて思った場合、単純に25日前の日付を求めるのではなく、営業日ベースで日付の計算をする必要があります。
この営業日の計算、なんか何度も同じことやってる気がするので、忘れないようにダイアリーにメモをしておきます。
準備
祝日判定ライブラリの holiday_japan をインストールします。株価情報を弄りたい人は JpStock もインストールしましょう。
gem install holiday_japan gem install jpstock
X営業日前の日付の計算
こんな感じで↓
require "holiday_japan" class Date def business_days_before(i) date = self i.times.each do |j| date -= 1 date -= 1 while (date.wday <= 0 || date.wday >= 6) or (date.national_holiday?) end date end end
東京電力の25日間の終値の平均
↑のコードを使ってこんな感じで↓
# -*- coding: utf-8 -*- require "jpstock" prices = JpStock.historical_prices(:code => "9501", :start_date => Date.today.business_days_before(24), :end_date => Date.today) average = prices.inject(0) {|sum, price| sum + price.close} / prices.size.to_f puts "東京電力の#{Date.today.business_days_before(24)}から#{Date.today}(#{prices.size}営業日間)の終値の平均 = #{average}" # => 東京電力の2013-08-07から2013-09-10(25営業日間)の終値の平均 = 560.96
キーボードタイピングソフト 犬打
その昔、「激打」という「北斗の拳」を題材にしたパソコン用のキーボードタイピングソフトがありました。指定された文章を入力すると敵がヒデブで死ぬという、当時は斬新なタイピングソフトで大流行し、仲間内でも流行りました。
〜〜〜 今から15年ほど前のお話です。
当時、激打を皆でひとしきり遊んだ後「この程度のゲームなら自分たちで企画して作れるんじゃね?」と友人が言い出したので、「企画してくれればプログラムは書くよ」といったところ、企画書を書いてくれました。ちなみに企画書はこれ↓
犬打〜流れ星 銀河〜
企画案1.基本ベースは”どすこい”をパクる。
2.音声は「ガウ」「キャイーン」「グォウ」「グルゥ」の四つ。
前2つは犬用、後ろの2つは熊用(ラスボスの赤カブト専用)3.主人公は銀河の飼い主であった人間。
4.主人公が猟銃で何故か犬を撃ちまくるという、UGな設定。
5.おまけでボーナス面に〜瓜打〜かぼちゃワイン&〜豚打〜ラブリンモンロー〜
を必ず入れる。1面 甲斐虎3兄弟
2面 ベン
3面 紅桜
4面 リキ
5面 赤カブト以上
このブログの読者の皆様には上記の文章は全くもって意味不明だと思いますが、当時わたくしにも意味不明で理解不能でした。みな若かったな。
で、適当に1日で作ったタイピングソフト「犬打」を仲間内で公開したところ、クソゲーすぎる!と友人達に酷評され、わたくしはスネちゃまと化し、この企画はほったらかしになったのでありました。
〜〜〜 昔話おわり
で、さて、15年たった今「むかしケンキチさんの作った犬打、適当に作った割には良く出来てたよね」と友人から再評価されたので、気をよくして、ソースコードとバイナリを github で公開します。適当に Exeフォルダを git clone して inuuti.exe を起動すれば動きます。
https://github.com/kenkiti/Inuuti
ちなみに、改めて犬打を自分でやってみて、やっぱクソゲーだわと思った次第であります。
SONY Bluetooth キーボード SGPWKB1
今まで使ってたバッファローのキーボード
バッファローワイヤレスキーボード[2.4GHz・USB] Simpring対応 SRKB02WH [SRKB02WH]
- ジャンル: パソコン・周辺機器 > その他
- ショップ: ビックカメラ楽天市場店
- 価格: 2,380円
- 楽天で詳細を見る
安かったんで思わず2つもポチりました。コレ↓
[rakuten:auc-splus:10003037:detail]
で、いま、このキーボードで日記書いているんですが・・・・
ESCキーがついていないことに気がつきました。ついでにファンクションキーもついてなかった・・・。
vi 使いの方は死亡するのでどうぞ間違って買わないように!
いまさらながら らくちん Sinatra 環境構築メモ
久しぶりにちょこっと Web アプリでも書いてみよっかな、と調べていたら浦島太郎状態だったのでメモ。環境は、MacOSX 10.7.5 + XCode 4.6.1 です。
環境の構築
Homebrew + Command Line Tools for Xcode
パッケージマネージャーです。結構面倒ですが入ってなかったら入れときましょう。
rbenv
rvm と似たようなもんだけど、bundler を使う場合に便利そうなので rvm から乗り換えることにしました。
$ rvm seppuku
として、rvm アンインストール後、~/.zshrc に書いていた rvm 関連のスクリプトを削除します。
続いて rbenv その他もろもろをインストールします*1。
$ brew install rbenv ruby-build readline openssl $ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
インストール可能な Ruby のバージョンを確認します。
$ ruby-build --definitions # or rbenv install -l
とりあえず ruby 1.9.3 と 2.0.0のインストール。
$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 1.9.3-p392 $ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p0 $ rbenv global 1.9.3-p392 # 1.9.3 を使う $ rbenv rehash; ruby -v # バージョン確認
Chrome 拡張 - LiveReload のインストール
https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei
スクリプトひな形
Gemfile
source :rubygems gem 'sinatra' gem 'haml' group :development do gem 'guard' gem 'rb-fsevent' # OSX固有のもの gem 'guard-livereload' # ブラウザ自動リロード gem 'guard-ego' # Guardfile を変更した際に Guard が再起動される end
config.ru
require "bundler" Bundler.require require File.dirname( __FILE__ ) + '/app' run Sinatra::Application
app.rb
get '/' do 'Hello, World' end
Google Nexus 7 SIMフリー3G版 買いました
「ついカッとしてやった、SIM フリーなタブレット端末なら iPad mini でも何でも良かった。今は反省している。」
と、id:kenkitii は意味不明な供述をしており、当局は余罪について追及していく方針である。iOS を絶賛しておきながら、Android にも何らかの関与がある可能性もあるとみて、慎重に捜査を進めている。
写真は、自宅で25日記者会見した id:kenkitii(ロイター)
扇風機モンクでアルカイザールート
日記を書いても記事下のアドセンスが消えないと知ってからすっかり日記書くきがなくなってふと気がついたら半年近く放置してました。はてなさんなんとかしてください。
年末も押し迫り今年を軽く振り返ってみると、やんごとなき事情でやりたい事がまったく出来なかった一年でした。来年はなんとか軌道修正をしたいと思っております。という感じで色々と思うようにいかない一年ではありましたが、ヒマをみてディアブロだけは細々と続けてます。
細々ととかいいつつ、そこはかとない廃人のカホリのするスクリーンショット↑
さて最近になって友人が Diablo 3 を新規で遊び始め、「どこいけば効率的に稼げるの?」とよく聞かれるので、有名なアルカイザールートを紹介してみたいと思います。
アルカイザールートとは?
Diablo 3 Ver 1.04 でリリースされたパラゴンレベルを、わずか2週間たらずで(世界最速) Level100 まで上げたキチガイアルカイザーさんが発見したルートのことです。このルートをサブキャラの無限扇風機モンクで回った動画を撮ってみました↓
アルカイザールートは Inferno ACT 3 を逆走するようなルートで、ACT3 ラスボスの Azmodan 直前から Core of Arreat の WayPoint まで行き、 Tower of Damned Level 1 へ移動しグルっと回って、Arreat Crater Level 2 へいって出口を通って、Tower of Cursed Level 1 の WayPoint へ行くってのが定番です。上の動画では、その後、Rakkis Crossing を逆走し、Bridge of Korsikk のWayPoint まで行き、The Keep Depth Level 1 を逆走して街に戻り、Stornfortへ行って鍵ボス(Keywarden) を倒すところまでです。
参考までにどーぞ。