GAで取引エージェントのポートフォリオ最適化

前回のエントリで紹介したGAのライブラリGECOを使って実際の問題に応用してみる。比較的単純なルールでFXの自動売買を行うエージェントを色々組み合わせる事で、全体として安定して利益を出すようなシステムを考える。
まずSMAやMACDなどの指標にもとづいて機械的に売買する取引エージェントを沢山用意する。仕掛け時にはRAVIをフィルタとして使ったり使わなかったり。そうするとパラメータはSMA/EMAの期間やRAVIの閾値ということになって、通貨ペアもあるので結構な数の組合せになる。その中から成績がそこそこ良かったエージェントを600個ほど選ぶ。
このときの累積資産曲線が以下のグラフ。横軸はUNIX-time、縦軸は円だ。

さらに全部のモデルを足し合わせると以下のグラフになる。

理想的には、全部のモデルの累積資産曲線を足し合わせたときは直線に近くなって欲しいわけなので、その回帰直線の傾きを標準偏差で割ったもの(RRR; Risk/Reward Ratio)を評価基準として使うのがいいだろう。そこで、600個のエージェントの中から、どの組み合わせにすると足し合わせたときの累積資産曲線が直線に近くなるかをGAで探索することにする。これは長さ600のバイナリ遺伝子を用意して、各ビットが1つのエージェントに対応する、と考えればいい。遺伝子から評価基準となるRRRを計算するのは割と簡単にできる。
そうして出てきた結果が以下のグラフ。

これを足し合わせると以下のグラフになる。

1エージェント当たりのRRRはかなり上がっている。
まずまずの結果?