« インサイダー取引の違法性に疑問が…。 | メイン | D-day ~ ファンドがユーロ空売り攻勢をかける日 »

Arbitrage Opportunity

ファイナンスのお話です。
Theory of Financeという授業で扱ったArbitrageに関して。
すごく乱暴かつ簡単に言ってしまうと、理論上確実に儲けられる、ということです。
それを、僕が何より崇拝するソフトウェアであるエクセル大先生にモデル化していただこうとしたものです。

エクセルファイル
マクロのソースコード

内容を簡単に説明すると、「市場に存在するassetを上手く組み合わせると、出費がゼロで収入が正もしくは出費が負で収入がゼロというポートフォリオを組むことが出来る可能性がある(もちろん、空売りを含む)。」
つまり、リスクがゼロで儲けが出る、という非常に(゚д゚)ウマーなお話です。

概念を小難しく説明すると、
A = M個のassetとS個の状態からなるS * M 行列の利得行列
P = M個のassetの値段を示すベクトル
φ = Arbitrageの存在を調べるためのベクトル

φ * A = P

上記式を満たすような正のφが存在しない時、(゚д゚)ウマーな状態になります。
これを現実世界に応用するため、実際の株価とその分散から最適なポートフォリオを組むためのエクセルツールが出来るはず!と甘い考えを抱いたわけです。
エクセルでモデル化できないかと考えた結果、10分ほどで「モデル化できる」という結論に達し、これは相当役に立つのではないかとニヤニヤしたのですが、それからが問題でした…。

モデルとしては、現実の株価と分散から正規乱数を元に、将来株価の予想を作ります (将来株価のベクトル)。
それをいくつか組み合わせてポートフォリオを組み、行列Aを生成します。
そして現在株価を元に行列式を解いてφを求め、Arbitrageが存在するか調べます。
詳しい説明は、エクセルファイルの中に書いてあります。

しかし大きな問題があって、ワークシート関数だけでは解決しませんでした。
個人的にエクセルを扱うときの条件は「関数のみで簡単に扱えて拡張性がある」と言うこと。
つまりマクロやソルバーを使わず、また何を行っているのかが明確で、さらに使いたい人の都合に合わせてある程度柔軟に対応できる。
普通は関数だけでシンプルに作るならこれは達成されるのですが、今回はエクセルの制約下で「拡張性」を重視した結果、全てマクロ化するという悲しい事態になってしまいました。
しかも問題のせいで結果が本質から離れたものになりがちになったため、お世辞にもよいモデルとはいえません。

問題は、エクセルの関数で「変数セル参照」が出来ないことと、エクセルでは連立方程式を解く際に制約があることの二点。
エクセルの関数では"Cells(i, j); i=0,1,2,3... ; j=0,1,2,3..."というような変数に基づいたセルを参照させることが出来ません。普段ならvlookup関数やif関数、is関数を組み合わせて誤魔化せるのですが、今回はそうも行きませんでした。
そしてエクセル関数では解が一つに定まらない連立方程式 (例えば、未知数が3つで式が2つの連立方程式) を解くことが出来ません。これは逆行列を使わなければ連立方程式が解けない、という制約のせいです。ソルバーを使えば恐らくこの問題は解決できますが、ポリシーに反するので却下。この制約のため、S = Mでない行列Aは検証できず (S >> Mの場合がより現実世界に近い)、同様にして最適なポートフォリオを導出することも出来ない場合があります。
マクロを使わない場合、SとMの数が固定なら一定の条件下で解くことが出来ます。参照ページだけ挙げておくと、エクセルを使った行列式の解き方関数で自動ソートさせる方法 (回答4)

また問題はエクセル以外にも。
現在の株価から将来の株価を示すベクトルを各株ごとに生成するとき、お互いの相関を考慮に入れることが出来ません。
例えば、A社の株が上がるとき、B社は反対に下がって、C社は変化しない、と言う風に相関がお互いに異なる訳ですが、3つ以上の関係を別個に考慮した上で乱数によって利得行列を作成することはほぼ不可能かと思われます。
そのため便宜的に「全ての株価は同様に景気に相関する」という仮定を置いています。
つまり、経済の状態が最も悪いときには全部の株が最悪の値段、2番目に悪いときには全てが2番目に低い値段…という形で便宜的に相関させています。そうでなければ株価が完全にランダムになってしまい、各株価の相関係数がほぼゼロなので、現実世界から離れます。
この仮定を現実的なものにするためには、産業ポートフォリオもしくはS&P500のような総合指標を要素として、モデルの中のポートフォリオに組み込むのが良いかと思われます。そうすればいくらか矛盾が減るはずかと。
しかし、この仮定によってポートフォリオの意味が薄れるので、モデルの正当性が下がります。
ソートを行わなければ相関係数がほぼゼロのままポートフォリオを組むことが出来ますが、あまりありえない話ですし、それでポートフォリオを組んだとしても単なる運試し程度にしかなりません…。

つまり、実際の利得行列が分からないと、説得力のあるモデルで現実レベルに近づけることは難しいということでしょうか。


とまぁここまで書いて、こんな文章を読んでも絶対理解できないだろうなぁと思った次第です。

この授業のおかげでファイナンスにかなり興味を持つことができたのですが、その場合僕がやりたいのは純粋なクオンツであってその他の部署ではないことになります。
Asset Pricingをするような部署があっても、どうせ何かしらソフトウェアがあって自動計算した上で状況を考慮して値段を調整、と言うようなレベルだろうしそれなら他の何をやっても変わりありません。
しかしそのクオンツは通常理系の数学科出身のような方々に牛耳られていて、とても私の数学の及ぶところではありません。

さてどうしましょう。

コメント

>しかしそのクオンツは通常理系の数学科出身のような方々に牛耳られていて、とても私の数学の及ぶところではありません。

クオンツを使える人になればいいぢゃないかっ!!この場合は、課題を提示する人とかかな(無理?)

さわもちさんへ

僕は経済や数式にはからっきし縁がないので、中々理解できません。

ただ僕は様々な現実が渦巻く市場であまりにもこのような数式を並べられると根拠はないのですが、「本当にうまくいくのかなあ・・・」と感じたりします。

哲学者の鶴見俊輔がハーバード大学に留学中、ホワイトヘッドの最終講演を聴いたことがあるそうなのですが、詳しい内容は忘れましたが、当時の哲学は事象をそれこそ数学的な理論に緻密にあらわそうとする考え方の人がハーバードには多かったそうなのですが、ホワイトヘッドもそのさきがけのような人でした。

しかし彼の最終講演の内容は

「精密さというのはまやかしだ」

というものでした。

今回のブログを読んでいて、ふとこの話を思い出してしまいました。

だからどうなんだ、と言われれば困るのだけど・・・

> ばこ
確かに一理あるわけだが、プログラムを組めない人がSEやらシステムコンサルタントになったところで、プログラムを組めるSEやらシステムコンサルタント等に勝てないと思うのよね。
要するに、二点それぞれを修めるか、一点を尋常じゃなく押さえるかのバランスの問題だとは思うのだけれど。帰国後就職失敗したら受けてみようとは思ってるけれどね。

> スメルジャコフさん
仰るとおりですね。ただ断っておくと、僕も本当にモデルが上手くいくとは思っていませんし(上手くいくなら今すぐにでも証券取引を始めて大儲けです)、社会科学はそのほとんどが「後付けの理論」であると考えています。現象を説明する「それらしい」話を作り上げて、それに当てはまらないときには簡単に例外処理してしまいますからね。
じゃあ何故こんなことを好き好んでやっているのかと言うと、こういう話が好きだからと言う一点に尽きます…。
「こうこうこういう風に考えると、こういう公式が導き出される。それを使うと将来はこうなる!」
見たいな事を言えると何だかかっこいいじゃないですかw

ただ一方で、今までこうやって導き出されてきた定理やら法則やらが、人間の行動を要素に分解して説明していくときに非常に便利であるとは思っています。全てではありませんが、有用な道具である、と言ったところでしょうか。

コメントを投稿