基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2012年06月26日(火)

売買システムの最適化(8)数値計算って何? [MQL5]



MT4、MT5それぞれにストラテジーテスターの機能があります。その中で売買システムのモデルは、MT4で以下の3種類が選べるようになっています。

[MT4]
・Every tick
・Control points
・Open prices only

一方、MT5では以下の4種類が選べるようになっています。

[MT5]
・全ティック(Every tick)
・1分足OHLC(1 minute OHLC)
・始値のみ(Open prices only)
・数値計算(Math calculations)

表現は多少違いますが、上から3つ目までは、それぞれMT4の3種類に対応しています。では、4番目のモデル「数値計算」とは何でしょうか?

実はこれ、EAのバックテストモデルとは関係ありません。そのため、これを選択すると、EAに関係のありそうな通貨ペア、タイムフレーム、期間、デポジットなどがことごとくグレーになり選択できません

画像(450x111)・拡大画像(800x199)

要するにチャートとは無関係ということなのですが、じゃあ何かと言うと、これは独自の数値関数を定義して、その関数の値を求める「数値計算」のためのモデルなのです。

なぜそれが売買システムのモデルを選択する項目に並んでいるのかが疑問なのですが、今回はその機能を使って最適化の仕組みを調べてみることにします。

「数値計算」の関数の定義はOnTester()という関数に記述します。この関数はシステムの評価をカスタマイズするときに出てきたのと同じものです。

例えば、次のような関数を定義してみます。

input double x1=0.0, x2=0.0;
double OnTester()
{
double ret = 50-(x1*x1+x2*x2);
return(ret);
}

これはx1、x2二つのパラメータから50-(x12+x22)を計算するだけの関数です。計算式に意味はありません。

x1とx2は、inputを付けて宣言されているので、値を変えたり、最適化させることができます。

ここで、下のようにx1とx2をそれぞれ-5から5の範囲で0.01刻みで変えて関数の値を最適化してみましょう。組合せの数は1001×1001=1002001通りとなります。

画像(450x111)・拡大画像(800x199)

まずは総当りの完全アルゴリズムで最適化してみます。最適化後にオプティマイズグラフを右クリックで2Dグラフを選ぶと

画像(450x175)・拡大画像(800x312)

のようなグラフが、3Dグラフを選ぶと

画像(450x175)・拡大画像(800x312)

のようなグラフが出てきます。

これはグラフの中央、x1=x2=0のときに値が最大になるグラフです。当然総当りなのですべての組合せを計算し、オプティマイズ結果でもx1=x2=0のときに最大値50となっています。

では、今度は遺伝的アルゴリズムで最適化してみましょう。2Dのオプティマイズグラフは以下のようになります。

画像(450x175)・拡大画像(800x312)

色がついているところが実際に探索したパラメータの組合せです。かなりスカスカになっていますが、中央の最適解に近いところは集中的に探していることがわかります。この場合、最適解を見つけ出せています。

次に、もう少し複雑な形状のものを試してみましょう。

input double x1=0.0, x2=0.0;
double OnTester()
{
double ret = 50-(x1*x1+x2*x2-10*cos(10*x1)-10*cos(10*x2));
return(ret);
}

これは完全アルゴリズムで最適化すると、下図のような形状になっています。最大になるのはグラフの中央ですが、その周りにたくさんの山ができていることがわかります。これが局所解と呼ばれるもので、これがたくさんあると最適化が難しくなります。

画像(450x175)・拡大画像(800x312)

これを遺伝的アルゴリズムで最適化すると、下の図のようになります。

画像(450x175)・拡大画像(800x312)

たくさんある局所解の近辺を探していることがわかります。この場合も最適解を見つけ出せています。

このように遺伝的アルゴリズムは、探索するパラメータの組み合わせの数が少なくても、割と効率よく最適化を行っていることがわかります。

しかし、パラメータが増えてしまうと、そううまくいかないケースも出てきます。次回はパラメータの数が増えた場合について調べてみます。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 16時24分


ページのトップへ ページのトップへ

Sponsor AD

2012/6

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

ランダムウォークとランダムトレード(5)

ランダムウォークとランダムトレード(5)

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.