読者です 読者をやめる 読者になる 読者になる

サイエンティストとマーケターのはざま

Pythonとか広告とかデータ分析とかとか


進化計算を用いたFXトレード-はじめに

東大の修論でGA使ってFXトレードするっていう論文があったので検証したい。

そもそもGAって何さ??っていう次元なのでそこらへんからメモっていこうかなと。 

目的

遺伝的アルゴリズムを用いてテクニカル指標のパラメータを最適化し、遺伝的プログラミングを用いて木構造の取引ルールを見つけるハイブリッドトレーディングシステムを実装すること。

進化計算とは?

生物の進化のメカニズムをまねてデータ構造を変形、合成、選択する手法で最適化問題の解法や有益な構造の生成を目指す[1].

遺伝的アルゴリズム(GA)とは?

遺伝的アルゴリズム(Genetic Algorithms)は解の候補を遺伝子で表現した個体を複数用意し、適応度の高い個体を優先的に選択して交叉、突然変異などの操作を繰り返しながら解を探索する[2]。

f:id:ukichang:20150312002444g:plain
図1. GAのフロー[3]

具体的には

(1) ランダムにM個の個体を生成して初期個体集合P(0)を作り、世代t=0とする。繰り返し回数(最終世代)Tを設定する。

(2) 個体集合P(t)内の個体について、その適応度gを計算する。

(3) 個体集合P(t)に選択演算子*1を適用し、P'(t)を生成する

(4) P'(t)に交叉演算子*2を適用し、P''(t)を生成する。

(5) P''(t)に突然変異演算子*3を適用し、次世代の個体集合 P(t+1)を生成する。

(6) t ≦ Tならば、t=t+1として(1)へ。そうで なければ計算終了。これまでに得られた最大適応度の個体を準最適解とする。

遺伝的プログラミング(GP)とは?

GPは、遺伝的アルゴリズム(GA)の遺伝子型を構造的な表現が扱えるように拡張し、プログラム生成や学習、推論、概念形成などに応用している[1]。そのため、概念的にはGAと同じ。

 

なるほど、コンセプトは理解した。しかしながら、FXトレードに落とし込むのは難儀ではなかろうか。その点は次回。

 

参考文献等

[1] 伊庭研究室(東京大学).

[2] Badarch Tserenchimed (2011) 「進化計算を用いた外国為替取引手法-逆トレンドと決済タイミングによる拡張-」, 東京大学修士論文. 

[3] 知能システム研究室(立命館大学).

*1:世代tの個体集合中の各個体iについて、その適応度giに応じて次世代に残す子の数を増減させる。 代表的な選択方法として、適応度比例選択(ルーレット選択)、期待値選択、ランキング選択などが挙げられる。

*2:個体集合内の個体をランダムに2個ずつ組み合わせ、ある確率(交叉率)で2つの個体の遺伝子列を部分的に交換する。 代表的な交叉方法として単純交叉、複数交叉、一様交叉などが挙げられる。

*3:各個体について、ある確率(突然変異率)で各遺伝子座の遺伝子を他の対立遺伝子と入れ替える。