2009年1月20日火曜日

計算式

SFI-ASMの基本的なエージェントの行動は,
Agent-Based Modelingの6章,p.94-95に書いてある.

GAパラメータ

GAパラメータはWorld.m内にbitnamelistとして保存されている.
dup
dup2
dup3・・・

2009年1月9日金曜日

GA頻度によるバブルの再現

GA頻度:1ステップごと


GA頻度:10ステップごと


GA頻度:100ステップごと


以上より,GAの頻度が高すぎるとバブリーになってしまう傾向があるようだ.

ASMでBubbleを発生させたくて頑張り続ける

Bubble発生する条件を探すためにいろいろ設定を変更させてみていた.
時には配当を大きく変動させてみたり・・・

その結果,配当の変動amplitudeをかなり低めに抑えたところ,それっぽくなった.

amplitude=0.0014178D0
gafrequency=20


しかし,一時的に価格が上昇しただけで,RiskNeutralPriceとほぼ同じ価格に落ち着いたものを持って,バブルと言ってよいのかしら.

2009年1月8日木曜日

配当金の計算

配当金の計算は以下のとおり.
初期値は,
ASMModelSwarm.m#doWarmupStep

World.m#setDividend

Dividend.m#setDerivedParamsによって,

rho = exp(-1.0/((double)period));
rho = 0.0001*rint(10000.0*rho);
deviation=baseline*amplitude
gauss = deviation*sqrt(1.0-rho*rho);
dvdnd=baseline+gauss*[normal getDoubleSample]


更新は,
ASMModelSwarm.m#periodStepDividend

World.m#setDividend

Dividend.m#dividendによって,

dvdnd = baseline + rho*(dvdnd - baseline) + gauss*[normal getDoubleSample];

のように行われる.
normalは正規分布だと思われる

intrateは利率のことだと思われる.
つまり,
baseline/intrateがおよそのリスクニュートラル価格となる.

BFParams.m#USEALLBITS = YES
に変更する.
これで100Bit全部使える.

ASMさらに続き

GAの頻度を上げても二乗誤差は変化しないが,出来高(取引量)は増加する.
これは,秋永ら「人工株式市場と経済学」の結果と同じ.
問題は,もっとバブルな幹事をどのように出すのか,だ.

バブルが起きる条件として,
  • トレンドトレーダの存在
  • バンドワゴン効果
などが考えられる.

これらを実現するためには,特殊な遺伝子を持ったエージェントを作成するか,
似たような遺伝子をすべてのエージェントが持つような条件を設定すればよい.

さて,どうしたものか.

2009年1月7日水曜日

理論値との乖離

秋永,高階「人工株式市場と経済学」 電子情報通信学会技術研究報告. AI, 人工知能と知識処理Vol.97, No.499(19980123) pp. 25-32
によると,
GAの活動レベルをあげることによって標準的理論経済モデルからの乖離が大きくなる.

Santa FeのASMでは,
BFParamsにGAを制御する項目がある.
具体的には,

  • gafrequency:GAを行う頻度(初期値:100)小さいほど頻度が高い?(逆数をとって,その確率で行うようだ)
  • pmutation:1ビットあたりの突然変異率(初期値:0.01)
  • newfrac:ルールが置き換わる頻度(初期値:0.05)

である.
これらを変更して,株価変動がどうなるか見てみよう.




gafrequencypmutationnewfracRiskNeutral価格との偏差
低条件1000.010.056.52
中条件500.020.106.94
高条件250.040.206.84

ほとんど変化はないようだ.

Objective-Cもか!?

というわけで,ASMの解析が遅々として進まない中,
どうもやはり内部を解析できないと厳しいのではないかという結論に達しかけています.
そのためには,ASMの主言語であるObjective-Cを勉強しなければいけません.
う~む.
C++,Javaならどうとでもなるけど,Objective-Cは初なので厳しい.

Objective-C入門などを参考に少し勉強してみよう.
ただ,今週中にASMでバブルの再現ができるレベルまで到達できるかはなはだ不安.

2009年1月6日火曜日

ASM続き

参考資料

Building the Santa Fe Artificial Stock Market
http://people.brandeis.edu/~blebaron/wps/sfisum.pdf

Building a Multi-Agent Artificial Stock Market
http://www.math.hmc.edu/math193-01/participants/projects/chicago/

2009年1月5日月曜日

ASM続き

年が明けてしまってもまだASM(Artifitial Stock Market)の使い方がよく分かっていない・・・
どこかに設定方法などのDocumentがあればいいのだけど.
asm.scmが設定ファイルなのは分かったが.

  • BFParams
  • asmModelParams
  • ASMBatchSwarm

などを設定しなければいけない.
現在分かっているのが,
ASMModelParams#numBFagentsがBFagentの数
というだけ.
ちなみに,BFagentはGAベースのエージェントらしい.