為替ロボット 研究所

« トップページテスト中 | メイン | 為替ロボットの作り方(FXCM用) ルールの見直し »

為替ロボットの作り方(FXCM用) バックテスト

VerifyボタンMetaTraderボタン

Verify」ボタンを押すと、保存&エラーチェック&コンパイルがされて準備が整います。(ファイル名はMAPreGCDCにしました)
MetaTrader」ボタンでSBFXに戻ります。


【バックテストをする】

mapreを適用とりあえずプログラミングができたので、テストをしてみます。

NavigatorウィンドウのExpertAdvisorsから先ほど作成したMAPreGCDCをEURUSD1時間足チャートにドラッグ。

Strategy TesterタブからStartボタンでバックテストを開始します。

最初の結果結果は、開始直後から-92%と惨敗です。。
時間足で試したのがだめなのでしょうか?日足に変えてやってみましょう。

日足に変更 テスト画面を閉じて、チャート画面に戻り、「D1」ボタンで日足チャートに変えます。
F6キーでテスター画面を出し、もう一度「Start」

結果はやはり-90%と無惨な結果になりました。

 [チャートで確認する]
矢印を表示するシグナルがどのような状態で出ているのか、チャート上で確認してみましょう。
テスター画面の「Arrows in the chart」にチェックを入れて、シグナルの状況がチャート上に表示されるようにします。
先ほどは資金不足で途中で止まってしまいましたので、資金は10倍の100,000ドルにし、手数料やスプレッドは両方0にして純粋な売買結果を見ることにします。
Modelを「every 1 point(slow)」として、スタート。
結果が出たらOKでチャートに戻ります。

多重の矢印ここでおかしな状態が目に付きました。
一本のBarに矢印が大量に重なっています。

これは、ストップロスでポジションが消えたところで、すぐ新たなポジションを取り、またストップに引っかかるということをBar1本の中で何回も繰り返してしまうためのようです。

また、「every 1 point(slow)」でテストをする際、日足のデータを基にランダムで作成した仮想のデータを使用しているというのも影響しているようです。
始値と終値は順番がはっきりしていますが、高値と安値はどちらが先に来るか元の4本値からだけではわかりませんし、高値と安値を何往復もしたのか、安値から高値に一方的に上がっただけなのかもわかりません。

これでは結果の信頼性がありませんので、Bar1本の中で何度もポジションをとらないようにコードを改良します。

 [コードの修正]
MetaEditorに戻って、MAPreGCDCのコードを以下のように書き換えます。

14、16、51、58行目が変更部分。

openbarという変数を作り、ポジションを持った時のBarを記録。そのBar内ではそれ以降の処理をスキップします。
bars」はその時の合計Bar数を得るものです。


« トップページテスト中 | メイン | 為替ロボットの作り方(FXCM用) ルールの見直し »

トラックバック

このエントリーのトラックバックURL:
http://kawarobo.com/motp/mt-tb.cgi/289

コメント

コメントしてください




保存しますか?


おすすめFX