にほんブログ村為替ブログへ ←お役立情報が満載 応援クリックお願いします

2008年05月01日

最適なパラメータを見つける方法


 にほんブログ村 為替ブログへ ←お役立情報が満載 応援クリックお願いします
メタトレーダーのストラテジーテスターを用いて、最適なパラメータを求める方法を解説します。

「最適」といっても、さまざまな視点があります。利益が最大、ドローダウンが最少、PFが最大etc.

そこで、ここでは例として、利益を最大とするパラメータを求めることにします。

1最適化オプションの設定
Testing_tab_OPpara.gif
[画面1]

1  Strategy Tester(Ctrl+R)の [Expert properties]ボタンで上記のタブウィンドウを表示
2 Optimized parameter から[Balance]を選択

なお、まずロングの最適値を求めますので、Positionsは[Long Only]を選択します。
Initial depositは、最初は十分な資金量でテストします。少ない資金量ではすぐれたEAでも破産する確率が高くなり、EAそのもののパフォーマンスを長期間にわたって検証するのが困難です。


2 最適化パラメータの設定
Para_input.gif
[画面2]

例として、Robowalk FXの利益に大きく影響するパラメータ(Balance_Fillter)を最適化してみます。
1 パラメータ範囲と、刻み(ステップ)の設定
   上記画面の[スタート]を0、[ストップ]を100,[ステップ]を1 とすると、0から100までを1刻みにテストできます。
2 変化させたいパラメータの左にあるチェックボックスをチェック

  ※ ステップは1でも5でも10でも0.1でも構いませんが、刻みが小さいほどテスト回数が増加します。
  ※ EAの特性をざっくりとしるためであれば、粗いステップでテストし、あたりを付けてから細かいステップで再テストします。
  ※ 複数のパラメータにチェックを付けると、2次元、3次元的に各パラメータの相互影響を含めたテストができますが、計算量が乗算的に増加します。
    このテストについては改めて解説します。


3 テストの実行
OP_exec.gif
[画面3]

1 [OPtimization] をチェック
2 モデルを選択
 ここでは、[Open Prices only]を選択します。
    robowalk FX は「トレーリングストップ(TP)」を使わない限り、前のバーが確定してから計算を実行します。ですから各ティックは関係ありません。
    EAによっては、必ず[Evrey Tick]を選ばなければ、正確にテストができない場合があります。
3 [スタート]ボタンで実行

4 結果の検討(1)
tester_OPGraph.gif
[画面4]

テスターはパラメータを変えながらテストを実行し、上記のようにグラフ表示します。
この図のように、25〜71の範囲では、12000$以上であり、比較的バタツキが少ないということは、相場が変化しても、利益を計上する確率が高いことを暗示しています。
どの値を採用するかを決めなければなりませんが、中央の48あるいは最高パフォーマンスの56を選択するとよいでしょう。
なお、突出して利益が大きい場合、そのパラメータはオーバフィット(過剰最適)の可能性があり、将来の相場には通用しないと考えるべきです。

(便利機能)
上の画面のカーソルの状態でダブルクリックをすると、下の画面に自動的に移動します。
利益、PF等の情報がわかります。
OP_Results.gif
[画面5]

(便利機能)
上記の画面の状態で、ダブルクリックすると、そのパラメータ設定が、自動的に反映されます。
Auto_hanei.gif
[画面6] 画面3に一度戻るが、これはパラメータを確認するため[Expert Propaties]を開いたところ。毎回確認する必要はない。

これは、なぜ便利かというと、画面3にで[Optimization]のチェックが外れていることを確認し、[スタート]ボタンを押すと、選択したパラメータによるバックテストをすぐに実行できるからです。

5 結果の検討(2)
画面5を見ると、PF、利益、売買回数等々がわかります。下記の観点から選択したいパラメータが適切であるかを考察します。

1 売買回数とPFのバランスは不自然でないか?
     売買回数が少ないとPFが高くなります。しかし、売買回数が少ないと信頼性が劣ります。わたしは売買回数は100以上、PF2以上を候補とします。
2 ドローダウンは許容できるか?
   利益が大きくてもドローダウンが大きいと破産の可能性が大です。ただし資金量によります。
posted by robowalk at 10:52| Comment(2) | TrackBack(0) | バックテストと最適化 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
Optimized機能を知らなかったので、
とても勉強になりました。
ありがとうございます!

Riseair FXも期待しております。
格好いい名前ですね(^_^)
Posted by 二色テグリ at 2008年05月02日 20:48
二色テグリさん

いつもご訪問いただきありがとうございます。

わたしも、なかなかテストの方法になれませんでしたが、「こうすればいいんだな」というのが試行錯誤しながら判ってきました。

また、順を追って記事を書きたいと思います。

Riseair FX は、わたしは「風立ちぬ」かと思ったのですが、上昇気流のイメージだそうです。


Posted by Robowalk at 2008年05月02日 20:58
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/95279016

この記事へのトラックバック