金融工学
掲題の件、ちゃんと数式にしておく。 以下、使うものの定義 (お持ちになられている)外国債券の時点tでの現地通貨建て価格(面倒なのでUSD仮定): (お持ちになられており、日々一喜一憂しているであろう)外国債券の時点tでの円建て価格: 時点tでのUSDJPYレート…
日経平均ボラティリティー・インデックス(日経平均VI)の半減期が知りたい - My Life as a Mock Quant 日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 日経ボラティリティー・…
日経平均ボラティリティー・インデックス(日経平均VI)を高速フーリエ変換したが、なんもなかった - My Life as a Mock Quant 引き続き日経VIネタ。 日経VIの挙動は、株価のような対数幾何分布に従うような確率過程(そうは見えないけどそうだと思っておく…
なんもなかった。が、なんもなかったなりの備忘録。 データの取得 Quandle経由で取得。元のソースはコメントに記載。 PLOTを見る限り、ちゃんとした元の値っぽい。 library("Quandl") # Sorce: https://www.quandl.com/data/NIKKEI/VLTL-Nikkei-Stock-Averag…
掲題の件、そういうことです。 この上場投信(ETF)のサイトは NEXT FUNDS NOMURA 原油インデックス連動型上場投信 《愛称》原油先物ETF(1699) ここではついでに、 この上場投信価格が「WTI(West Texas Intermediate)原油先物 × USDJPY」でちゃんと計算でき…
モンテカルロ法でコール・オプション価格 - My Life as a Mock Quantを流行りの分散処理環境Apache Sparkでやってみたという話。 コード書くのは一瞬なんだけど、依存関係周りの解消が辛かったので、積極的にコード残しておきたい。下記コード+sbtファイルを…
とりあえず慣れてるのからということで・・・Wolfram Alphaで出した結果と大体あってるので、これでよさげだ。 import scala.util.Random import scala.math object App { def main(args: Array[String]) = { val random = new Random() // Monte Carlo sett…
今まであまり考えないで検定用の関数に突っ込んでたんで実際に計算してみんとす。例が悪くてあれなんだが、以下のような取引戦略A・B、およびその勝敗のデータがあったとする。 > x <- matrix(c(110, 119, 200, 207), 2, 2) > rownames(x) <- paste0("Strate…
こいつ 非同次/確率的な強度λを持つ指数分布に従う確率変数τ(死亡/消滅時刻)の生成 - My Life as a Mock Quant の応用で、 時点1〜5までは無敵(不死) になるような確率分布からのサンプリングをやってみた。 具体的には lambda <- function(t){ifelse(t …
非同次な指数分布 非同次なポアソン分布ってのがある。日本語で定義がちゃんと載ってるページがなかったので、英語版のwikipediaを参照すると Poisson point process - Wikipedia が該当する。要するにこれは、今まで、一定だと思っていたポアソン分布の強度…
「低金利ここに極まり」みたいな水準の国債市場、みなさんいかがお過ごしですか? どのくらいキテるのかを見るために、直近1年程度の10年ものの日本国債(JGB, Japanese Government Bond)の推移を可視化してみました。 RPubs - The time series of JGB Intere…
はじめに の6章「金融取引契約の書き方」をC++でオレオレ実装するとどうなるのか?って話をしましょうという話を某氏としたのでやってみんとす。C++辛い、F#とかがよかった。 これは一体何? 金融商品を記述するためのDSL(Domain Specific Language, ドメイ…
東京で尻を洗うカレンダープロット お、おお、こんなのあるんだ。昔、似たような感じの話で 2011年・TOPIXのヒートマップを作ってみた - My Life as a Mock Quant で試したコードよりも簡素化されていて大変よい。大変良いので真似てみた。ここでは、今目下…
簡単なんだけど、やってなかったなって。ブラウン橋言ってる人もいるし、ブラウニアン橋いってる人もいてどっちが正しいのかわかんねぇけど、ここではブラウン橋でいく。ブラウン橋は、を標準ブラウン運動として と書かれる確率過程だと思っておけばいい。こ…
たまには金融っぽいものを作ろうと思いまして、SABRモデルのキャリブレーションアプリを作りまして*1。 実際の物はShiny hosting service上で動いており、以下のLINK先にあります。 http://spark.rstudio.com/teramonagi/SABROnShiny/ 左側のパラメーター(Fo…
金融工学でいうCIRモデルで表現される金利の期間構造の、モデルパラメーター依存性を見てみたくて、簡単なwebアプリケーションを作ってみた。CIRモデルについてはリンク先を見て頂くとして、shinyについて簡単に捕捉しておくと、 R言語を用いて簡単にwebアプ…
numpyを使って結構美しく書けたのでメモ。結果はmatplotlibを使って描画。 ↓幾何ブラウン運動に従うモンテカルロの生成コード # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt #株価の確率微分方程式に従うサンプルパスを生成 …
第25回R勉強会@東京(#TokyoR) : ATNDでお話させていただいた で使用したソースコード一式をUPしておきます。コピペ&改変は勿論自由ですが、自己責任でご使用下さい。なお、以下のパッケージ scales reshape2 xts ggplot2 が必要なので別途install.packag…
金融と関係ない業界で働いている方から 「クオンツという仕事があるのはわかったが、実際にどういうことをやっているのかよくわからない。もっとよく知りたいのでお勧めの書籍があれば紹介してほしい」 という旨のご質問を頂いたので私が読んだ中である程度…
前回の記事「誘導型モデルを使った信用リスクのある割引債の価格付け−1 - My Life as a Mock Quant」の続き。前回の記事の最後に書いたように、作成したプログラムのテストをしたいので今回はまず簡単にできるチェックとして デフォルトがないと仮定した場…
Rだと誘導型モデルを使った信用リスクのある場合の価格評価も楽にやれるんじゃないかなと常々思ってはいたものの、手づかずだったので、実際にやってみましたというお話です。ここでは割引債の価格評価を例にしてますが、もちろん割引債に限った話ではありま…
βはいかにして時系列推移するのか? - My Life as a Mock Quantで書いた話の続きのようなもの、私の金融工学先生の興味にあてられて、私も興味が出てきましたよというお話。お題は「市場リスクへの感応度であるβ(ベータ)を推計する際に、プラスのリターン…
Longstaff and Schwartzが開発した最小二乗モンテカルロ法( Least Squares Monte Carlo)でアメリカンオプションのプライスを出してみたというお話。 numpy使えば楽に書けるかなと思ったけど意外とめんどかった。 答えはWolfram Alphaのとチェック。だいたい…
前に書いた記事(βはいかにして時系列推移するのか? - My Life as a Mock Quant)で可視化といふなるものを学習したので調子にのりましてもうちょいやってみようと。 今回は財務省がココに出している日本の国債金利の期間構造、つまりイールドカーブ、これ…
市場リスクへの感応度を計算するために(ヒストリカル)ベータ(β)の推定とか投資理論でよくやるわけですが、ロバスト回帰とかしないでそのまま単純な線形回帰分析した場合、それの時系列推移ってどんなもんなんじゃい・・・ってのをRでやってみた。 まずは…
金融危機時における資産価格変動の相互依存関係:コピュラに基づく評価 新谷 幸平、山田 哲也、吉羽 要直に倣って等質なCDOのスプレッドを評価してみた。このディスカッションペーパーのP23-表7を再現することが目的。コピュラって何?CDOって何?という話自…
FRBのサイトからアメリカの金利の期間構造が取得できることをたまたま発見したので、よく言われるように金利の変動が「パラレル」「ツイスト」「バタフライ」の三要因で大半が説明できているのかを実際に主成分分析して見てみた。データはData Download Prog…
「Rで学ぶ金融工学入門〜現代ポートフォリオ理論偏〜」というタイトルで発表してきた。 以下、その資料Tokyo.R(#06)View more presentations from teramonagi.以下、ソースコード quadprog,RFinanceYJのインストールが必要。 library(quadprog) library(RFin…
投資可能領域を描画する時等、ポートフォリオウェイトの可能な全ての組み合わせのが欲しい場合があるのでそれを返す関数を作成した。 combination.constantsum <- function(num,val.step,val.current=1) { if(num==1){ return(val.current) } result <- NULL…