2011-01-01から1年間の記事一覧

templateの実装をヘッダファイルに書かないでcppファイルに書く際の書き方まとめ

C++

templateを使った関数なりの実装をヘッダに書くのはごちゃごちゃして嫌なんでcppに書いておきたいですよと。 ただコンパイル時にきちんと所望の型で関数・クラスがテンプレートから作成されるようにcppファイルの方で明示的に実体化しておかないといけません…

βはいかにして時系列推移するのか?の続き

βはいかにして時系列推移するのか? - My Life as a Mock Quantで書いた話の続きのようなもの、私の金融工学先生の興味にあてられて、私も興味が出てきましたよというお話。お題は「市場リスクへの感応度であるβ(ベータ)を推計する際に、プラスのリターン…

Excel等のデータをサクっとRに持って来る方法

R

お客さんから飛んできたExcelのデータをちょいとだけ捌きたい、例えば送られてきたそのデータをもとにヒストグラムを見てみたい、あるいはC++で書いたモンテカルロの結果をファイルに吐き出したのでその分布を見てみたい、統計量を計算したいけどExcelには荷…

F#で数値・線形代数計算をするためのライブラリ紹介(F# PowerPack, F# MathProvider)

F#

に参戦中でして、その12月15日分の記事です。日本だと未だに「関数型って仕事じゃ使えない」的な話をよく目にしますが、外資系企業、特に私のいる金融業界だと既に関数型での開発が行われていて、F#の使用例としてはクレディスイスという外資系金融機関…

Visual C++でデバッグ中にポインタの中身をみる方法

C++

以下の簡単なソースコード #include <iostream> void hoge(int *x) { std::cout << x[0] << std::endl; } int main() { int *x = new int[3]; x[0] = 1; x[1] = 2; x[2] = 3; hoge(x); delete [] x; return 0; } のようにポインタを引数にとる関数の中をデバッグしてい</iostream>…

最小二乗モンテカルロ( Least Squares Monte Carlo)法でアメリカンオプションの評価

Longstaff and Schwartzが開発した最小二乗モンテカルロ法( Least Squares Monte Carlo)でアメリカンオプションのプライスを出してみたというお話。 numpy使えば楽に書けるかなと思ったけど意外とめんどかった。 答えはWolfram Alphaのとチェック。だいたい…

zooパッケージを使って行列の欠損値を補間する(R Advent Calendar 2011)

R

R Advent Calendar 2011 : ATNDに参加中でして、その担当分の記事です。さて掲題の話ですが、たまに(しょっちゅう?)歯抜けになってる値を含む行列やデータを捌かなきゃいけないことがありまして、その際にはよくRの市販本にあるように x[is.na(x)] <- 0 …

論文「Determining the density of states for classical statistical models」の実装

またまた友人からモンテカルロ法系の論文を教えてもらったので読んで実装。 その論文は 'Determining the density of states for classical statistical models: A random walk algorithm to produce a flat histogram, Phys. Rev. E 64, 056101 (2001)' こ…

論文「Markov Chain Monte Carlo Method without Detailed Balance」の実装

かなり革新的なマルコフ連鎖モンテカルロ法(MCMC)の論文があるという話を友人に聞いて、実際に読んで見たらこれはすごいぞと。・・・ということでさっそく簡易実装。 書いたプログラムは書き捨てのつもりで書いたんでクラスとか使ってない。その論文という…

中心極限定理使って標準正規分布に従う乱数を作る

C++

「同一の分布に従う独立な乱数の和は正規分布に従う」という中心極限定理の教えを使って標準正規分布に従う乱数を生成する関数。 何か思いついて即使いたい時に特に何もインクルードしなくてもさっと使えるようにメモ。 double NormalRand() { double result…

日本国債の金利(の期間構造、イールドカーブ)の時系列推移を可視化してみた

前に書いた記事(βはいかにして時系列推移するのか? - My Life as a Mock Quant)で可視化といふなるものを学習したので調子にのりましてもうちょいやってみようと。 今回は財務省がココに出している日本の国債金利の期間構造、つまりイールドカーブ、これ…

βはいかにして時系列推移するのか?

市場リスクへの感応度を計算するために(ヒストリカル)ベータ(β)の推定とか投資理論でよくやるわけですが、ロバスト回帰とかしないでそのまま単純な線形回帰分析した場合、それの時系列推移ってどんなもんなんじゃい・・・ってのをRでやってみた。 まずは…

学習の記録−10

F#

今度は の本の内容を適当にメモ。 open System (* 複数行コメント *) [<EntryPoint>] let main(args : string[]) = ///斜線3つで書いたコメントはIDEの補完で表示される let greeting, thing = args.[0], args.[1] let timeOfDay = DateTime.Now.ToString("hh:mm tt") p</entrypoint>…

FizzBuzzなるものを書く

F#

よくTLで見る神々がやっていたので、つい。 matchに複数条件かませられるとか初めて知った・・・ let fizzBuzz x = match x%3 = 0, x%5 = 0 with |true, true -> "FizzBuzz" |true, false -> "Fizz" |false, true -> "Buzz" |_ -> string x ;; [1..30] |> Li…

いろんな言語で配列(リスト・ベクトル)の逆順を出す

#embedly_twitter_50281804{background:url(http://a0.twimg.com/profile_background_images/117348165/tw1.gif) #C0DEED; padding:20px;} #embedly_twitter_50281804 p{background:#fff;padding:10px 12px 0px 12px;margin:0;min-height:48px;color:#000;fo…

コンバージョン・オペレーターを使ったクラスの初期化について

C#

昔書いた「コンストラクタが勝手に代入してくれてうれしいんだけど、なんか不思議 - My Life as a Mock Quant」と同じものをC#でも考えてみましたというお話。 Explicit版 using System; using System.Collections.Generic; using System.Linq; using System…

Mark Joshiの「C++ Design Patterns and Derivatives Pricing」を淡々と写経する

C#

淡々とC#に焼きなおしてMainファイルごとにソリューション化してgithubにUPしてます。 趣味です。3日坊主にならないように頑張る。GitHub - teramonagi/cs_MarkJoshi_SimpleMCMain1: C# implementation of [C++ Design Patterns and Derivatives Pricing] Gi…

プロセッサ(CPU)の数を取得する

F#

適当に検索するといろいろ記事がひっかかるけど、古い上にwindows API叩いててとても嫌だったのでもうちょい調べてみると > System.Environment.ProcessorCount;; val it : int = 4 でOKだということがわかった。 これはF#じゃなくて、.NETの関数だったので…

async周りのメモ

F#

MSDN マガジンのバックナンバーがとてもよい入門になっている気がするので、メモ。簡単な束縛式 > let x = async{return 1};; val x : Async<int> を見てやると、xはAsyncで束縛されていることがわかる。これを使ってまた別な束縛を行おうとすると・・・ > let y </int>…

ビルダークラスの作り方・使い方

F#

実践F#を読んでもよくわからなかったのでサンプルをさらに簡単にした奴をメモ。 type OwnBuilder() = member x.Return(r) = printfn "Return (%A)" r r member x.Delay(f) = printfn "Delay (%A)" f fun () -> f() ;; let ownBuilder = new OwnBuilder();; l…

spec.pgram関数の使い方とtsオブジェクトのfrequencyの設定について

R

なかなか私を混乱させる仕様になっていたのでメモ。 ここでは例題としてcos関数のパワースペクトルを計算(表示)することにする。 以下のように条件設定。 #cosを何回繰り返すのか REP <- 10 #cosの周期(この逆数が周波数f = 1/T = 1/5 = 0.2) T <- 5 #サン…

Rで時系列のデコンポジション(要因分解)

R

Time Series Analysis and Mining with R | blog.RDataMining.comを読んでいたら、時系列のデコンポジション(要因分解)も簡単にできるんだなーってのがわかったのでもともと入ってる日次のヨーロッパ市場の株式インデックス値(ドイツのDAX指数)を使って…

C#でマルチスレッドプログラミング−3

C#

Parallelクラスを使った並列ループ .NET Framework4からはSystem.Threading.Tasks 名前空間が提供されていて、より簡単にかけるようになっているようだ。ありがたや、ありがたや。 Parallelクラスを使うとForループを簡単に並列化できる。 using System; usi…

C#でマルチスレッドプログラミング−2

C#

デリゲートを使ったマルチスレッド(BeginInvoke, EndInvoke) 参考LINKの同期メソッドの非同期呼び出し | Microsoft Docsによるとかなり色々できるな…とりあえずわかったことを箇条書きでまとめる。 内部的にはThreadpoolを使っている Threadクラス・Threadp…

C#でマルチスレッドプログラミング−1

C#

C#でマルチスレッドプログラムを書くには色々方法があるようなので、がんばって勉強しつつ、その結果をメモメモと。 この記事によると スレッド(Thread) スレッドプール(ThreadPool) デリゲート(BeginInvoke) タイマー(Timer) という分類になるらし…

幾何ブラウン運動と見せかけの回帰

R

いつものようにメモがてら。 幾何ブラウン運動をモンテカルロシミュレーションしたかったら以下のように書く。 #Term(year) T <- 5 #Number of path N <- 10000 #Unit of time dt <- T / N #Start price of stock or something obeying to geometric brownia…

取引シグナルと価格の同時PLOT(折れ線とBARの2軸PLOT)

R

取引シグナル(y2, 1(買) or -1(売))と価格(y1)自身を同一グラフ上にPLOTする方法で躓いたのでメモ。 まず適当にデータ作成。 y1 <- 0:100 + 10*sin(seq(0,2*pi,2*pi*0.01)) y2 <- c(rep(-1,51),rep(1,50)) x <- 0:100 続いてこれをPLOT。色はお好みで。bar…

zip関数の使い方

備忘録。 タプル(リスト)の組の各要素をひとまとめにしたタプルのリストとして返してくれる。 特にアスタリスク(*)つけた時の挙動が大事。タプルにする”方向”を変えてくれるので超ありがたい。タプルを用意してそれを合体させてみる。 >>> x = (1,2,3) …

コンストラクタが勝手に代入してくれてうれしいんだけど、なんか不思議

C++

状況 クラスBがクラスAを所有 クラスCのコンストラクタがクラスBを引数として要求 って状況の時にクラスCのコンストラクタにクラスAのオブジェクトを渡しても動作しますよと。これを継承を使わないできましたよと。 ミソはクラスBにクラスAのオブジェクトを…

githubに新規プロジェクトを上げるまでの流れ

githubにコード上げるまでの流れ。 だいたいこういうのは初めに試しに使ってみた後放置して、忘れた頃にまた使うみたいな形になるんでメモっておく。 基本、Redirecting...みときゃいい気がするけど・・・適当にプログラム書いたらGit Bash使ってローカルの…