2011-01-01から1年間の記事一覧
templateを使った関数なりの実装をヘッダに書くのはごちゃごちゃして嫌なんでcppに書いておきたいですよと。 ただコンパイル時にきちんと所望の型で関数・クラスがテンプレートから作成されるようにcppファイルの方で明示的に実体化しておかないといけません…
βはいかにして時系列推移するのか? - My Life as a Mock Quantで書いた話の続きのようなもの、私の金融工学先生の興味にあてられて、私も興味が出てきましたよというお話。お題は「市場リスクへの感応度であるβ(ベータ)を推計する際に、プラスのリターン…
お客さんから飛んできたExcelのデータをちょいとだけ捌きたい、例えば送られてきたそのデータをもとにヒストグラムを見てみたい、あるいはC++で書いたモンテカルロの結果をファイルに吐き出したのでその分布を見てみたい、統計量を計算したいけどExcelには荷…
に参戦中でして、その12月15日分の記事です。日本だと未だに「関数型って仕事じゃ使えない」的な話をよく目にしますが、外資系企業、特に私のいる金融業界だと既に関数型での開発が行われていて、F#の使用例としてはクレディスイスという外資系金融機関…
以下の簡単なソースコード #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>…
Longstaff and Schwartzが開発した最小二乗モンテカルロ法( Least Squares Monte Carlo)でアメリカンオプションのプライスを出してみたというお話。 numpy使えば楽に書けるかなと思ったけど意外とめんどかった。 答えはWolfram Alphaのとチェック。だいたい…
R Advent Calendar 2011 : ATNDに参加中でして、その担当分の記事です。さて掲題の話ですが、たまに(しょっちゅう?)歯抜けになってる値を含む行列やデータを捌かなきゃいけないことがありまして、その際にはよくRの市販本にあるように x[is.na(x)] <- 0 …
またまた友人からモンテカルロ法系の論文を教えてもらったので読んで実装。 その論文は 'Determining the density of states for classical statistical models: A random walk algorithm to produce a flat histogram, Phys. Rev. E 64, 056101 (2001)' こ…
かなり革新的なマルコフ連鎖モンテカルロ法(MCMC)の論文があるという話を友人に聞いて、実際に読んで見たらこれはすごいぞと。・・・ということでさっそく簡易実装。 書いたプログラムは書き捨てのつもりで書いたんでクラスとか使ってない。その論文という…
「同一の分布に従う独立な乱数の和は正規分布に従う」という中心極限定理の教えを使って標準正規分布に従う乱数を生成する関数。 何か思いついて即使いたい時に特に何もインクルードしなくてもさっと使えるようにメモ。 double NormalRand() { double result…
前に書いた記事(βはいかにして時系列推移するのか? - My Life as a Mock Quant)で可視化といふなるものを学習したので調子にのりましてもうちょいやってみようと。 今回は財務省がココに出している日本の国債金利の期間構造、つまりイールドカーブ、これ…
市場リスクへの感応度を計算するために(ヒストリカル)ベータ(β)の推定とか投資理論でよくやるわけですが、ロバスト回帰とかしないでそのまま単純な線形回帰分析した場合、それの時系列推移ってどんなもんなんじゃい・・・ってのをRでやってみた。 まずは…
今度は の本の内容を適当にメモ。 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>…
よく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…
昔書いた「コンストラクタが勝手に代入してくれてうれしいんだけど、なんか不思議 - My Life as a Mock Quant」と同じものをC#でも考えてみましたというお話。 Explicit版 using System; using System.Collections.Generic; using System.Linq; using System…
淡々とC#に焼きなおしてMainファイルごとにソリューション化してgithubにUPしてます。 趣味です。3日坊主にならないように頑張る。GitHub - teramonagi/cs_MarkJoshi_SimpleMCMain1: C# implementation of [C++ Design Patterns and Derivatives Pricing] Gi…
適当に検索するといろいろ記事がひっかかるけど、古い上にwindows API叩いててとても嫌だったのでもうちょい調べてみると > System.Environment.ProcessorCount;; val it : int = 4 でOKだということがわかった。 これはF#じゃなくて、.NETの関数だったので…
MSDN マガジンのバックナンバーがとてもよい入門になっている気がするので、メモ。簡単な束縛式 > let x = async{return 1};; val x : Async<int> を見てやると、xはAsyncで束縛されていることがわかる。これを使ってまた別な束縛を行おうとすると・・・ > let y </int>…
実践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…
なかなか私を混乱させる仕様になっていたのでメモ。 ここでは例題としてcos関数のパワースペクトルを計算(表示)することにする。 以下のように条件設定。 #cosを何回繰り返すのか REP <- 10 #cosの周期(この逆数が周波数f = 1/T = 1/5 = 0.2) T <- 5 #サン…
Time Series Analysis and Mining with R | blog.RDataMining.comを読んでいたら、時系列のデコンポジション(要因分解)も簡単にできるんだなーってのがわかったのでもともと入ってる日次のヨーロッパ市場の株式インデックス値(ドイツのDAX指数)を使って…
Parallelクラスを使った並列ループ .NET Framework4からはSystem.Threading.Tasks 名前空間が提供されていて、より簡単にかけるようになっているようだ。ありがたや、ありがたや。 Parallelクラスを使うとForループを簡単に並列化できる。 using System; usi…
デリゲートを使ったマルチスレッド(BeginInvoke, EndInvoke) 参考LINKの同期メソッドの非同期呼び出し | Microsoft Docsによるとかなり色々できるな…とりあえずわかったことを箇条書きでまとめる。 内部的にはThreadpoolを使っている Threadクラス・Threadp…
C#でマルチスレッドプログラムを書くには色々方法があるようなので、がんばって勉強しつつ、その結果をメモメモと。 この記事によると スレッド(Thread) スレッドプール(ThreadPool) デリゲート(BeginInvoke) タイマー(Timer) という分類になるらし…
いつものようにメモがてら。 幾何ブラウン運動をモンテカルロシミュレーションしたかったら以下のように書く。 #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…
取引シグナル(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…
備忘録。 タプル(リスト)の組の各要素をひとまとめにしたタプルのリストとして返してくれる。 特にアスタリスク(*)つけた時の挙動が大事。タプルにする”方向”を変えてくれるので超ありがたい。タプルを用意してそれを合体させてみる。 >>> x = (1,2,3) …
状況 クラスBがクラスAを所有 クラスCのコンストラクタがクラスBを引数として要求 って状況の時にクラスCのコンストラクタにクラスAのオブジェクトを渡しても動作しますよと。これを継承を使わないできましたよと。 ミソはクラスBにクラスAのオブジェクトを…
githubにコード上げるまでの流れ。 だいたいこういうのは初めに試しに使ってみた後放置して、忘れた頃にまた使うみたいな形になるんでメモっておく。 基本、Redirecting...みときゃいい気がするけど・・・適当にプログラム書いたらGit Bash使ってローカルの…