4月の第2週・初旬が終わりました。

時の流れを、とても早く感じます。


今週末クローズ時のスプレッドは、1.7pips。

この開きは、平時よりか、ちょびっと大き目なため、パフォーマンスは低めに出がちですが、拡縮がないため、バックテスト結果を比べやすい環境です。


この機を使って、SDFXを完成に近づけようと思ってます 。


先日の話と重複するところもありますが、

もう一度、『最適化とカーブフィッティング』 について話してみます。


どんな自動取引プログラムでも、適用する通貨ペアや時間枠の種類に応じて、プログラム内のパラメータは変わります。


相性の良いパラメータを探すため、候補となるパラメータ値をいくつか選んだ上で、また、パラメータが複数設定されている場合は、それらを組み合わせた上で、『最適化』 と呼ばれるバックテストを行います。


取引回数の少ないバックテストでは、過去の限られたケースだけにフィットする(カーブフィッティング)パラメータが選定されてしまう可能性が高まるといわれています。


今回の制作過程で学んだのは、それとは異なる、期間限定の際に起こりうるカーブフィッティングの危険性です。


自動取引プログラムを制作していると分かるのですが、2007年金融危機勃発以降の為替相場は、それ以前(99年8月から06年12月)の様相と比べ、かなり変化したようです。

06年12月までは良好なパフォーマンスを生み出していたプログラムが、突然、さっぱり振るわなくなってしまうんです。


類を違わず、SDFXも同様だったので、2007年以降に期間を絞って、パラメータを模索し直してみたんです。


次の2つのパフォーマンス・グラフ、どちらが良いと思います?


メタボトレーダーの日常-SDFX_R003 2007

メタボトレーダーの日常-SDFX_R004 2007


ぱっと見で、はじめの方ですよね。

こちらは、2007年以降の米ドル円相場を対象に最適化を行い、パラメータを選定した上のテスト結果です。


これでよしと思ってましたが、「金融危機以降の米ドル円は、一方的な右肩下がりの相場になっている」ことを思い出しました。

ということは、2007年以降に期間を限定して最適化を行うと、必然的に、ドル安・円高相場に適したパラメータになります。

すなわち、買いより売り取引重視のもの。


これだと、相場環境が変化すれば(ドル高・円安に転ずれば)適応しなくなるだろうから、再度、やり直したものが、下の方のグラフです。

中間辺りの変化点は、08年10月のリーマン・ショック時です。


これら2つを、99年8月から通して稼動してみると、やっぱりバランスの取れた後者の方が良好なパフォーマンスを現していました。


メタボトレーダーの日常-SDFX_R003 1999

メタボトレーダーの日常-SDFX_R004 1999