システムトレード用の開発ツールです。エクセルのVBAを駆使して最高のパフォーマンスを目指します。基本は無料
システムトレードでのパラメーターの最適化とは、例えば平均移動の日数を5日から100日まで変化させてみて一番利益率が上がる日数を探しだすことを指します。セルレーダーではエクセルシート上にある変数であれば、何でも最適化できます。
ゴールクロスとデットクロスの最適化で一連の作業手順を説明します。今回最適化するのはゴールクロスとデットクロスで使う2本の単純移動平均の日数(図1のA、B部分)です。この2つ数値の総当たりで組み合わせた結果の損益を一覧表にします。

まず、メニューバーの「操作」→「最適化」→「日数の最適化の準備」を選択。するとシート「変数の最適化?」が追加されたと思います(図2)。

今回は2つの数値を総当たりで最適な組み合わせを知りたいので因数1と因数2を使います。図2をみてわかるように最高4つまで選択できます。しかしながら例えば、それぞれ4つの因数を1から10まで変化させると総当たりで1万通りになります。あまりに数が莫大だと計算が終わるのに丸1日かかる場合があるので注意が必要です。各部の説明です。
1.最小値は因数を変化させる時の最小の数値を指定します。
2.最大値は因数を変化させる最大の数値です。
3.STEP値は例えば2に設定すると変数が2つ置きに増えます。
4.4行目の「変数」部分で1、2、3、4・・・・と変化します。
5.列F以下は総当たりの計算結果が反映される場所です。
まず、因数1と図1の「A」を関連づける関数式を作ります。原理はメニュー「最適化」を実行すると、プログラムで4行目の変数が1から3の条件内で変化します。その変化した値を図1の「A」に送くり、その結果損益表が再計算されるという訳です。原理が分かったところで実際に図1のAに以下のような関数式を作成します。
=変数の最適化4!B4
※変数の最適化4の4の部分は条件によっては違うことがあります。
これで、因数1の変数部分と図1の「A」が関連づけられました。同じ要領で因数2と図2の「B」も関連付ます。
=変数の最適化4!C4
※変数の最適化4の4の部分は条件によっては違うことがあります。
次に条件を設定します。図1の「A」は短期平均移動線のパラメーターですので、3から10に変化させるとします。よって最小値の値は「3」、最大値の値は「10」になります。図1の「B」は長期平均移動線のパラメーターですので20から50まで変化させるとします。よって最小値は「20」、最大値は「50」になります。組み合わせとしては8×31で248通りになります。しかしこれだと時間が20分位かかります。ですのでSTEP値を「1」から「2」に変えて2個飛ばしにします。時間は半分の10分に短縮されます。
以上の設定が完了したら、メニューバー「操作」→「最適化」→「最適化」を選択します。
注:計算期間(1、2、3)は図3の(A、B、C)に対応しています。
最適化の作業はお持ちのパソコンのCPUにかなりの負荷を与えます。また時間もかかります。作業前に不必要なタスクは終了させることをお勧めします。

投稿者 システムトレーダー壱式 : 2008年05月15日 22:42
このエントリーのトラックバックURL:
http://systemtrader.info/cgi/mt/mt-tb.cgi/42