今回は、モンテカルロ法を用いて、予測される最大ドローダウンを求める様子を書いてみたいと思います。
私が理解しているモンテカルロ法では、トレード結果リストから乱数を用いてサンプリングし、新たなトレードリストを生成して最大ドローダウンを求める事を何回も繰り返し、そのシステムでありうる最大ドローダウンを予測するというものです。
で、1回のサンプリングで使用した1トレードは、2回目のサンプリングでもまたつかわれる可能性があるという方法です。
「マーケットの魔術師 システムトレーダー編」に書かれていた例では、40トレード分を1万回も!
Excelじゃ遅いし、難しいし。
という事で、以前SQL-Serverをダウンロードする為に一緒にインストールしたVisualC++ 2010 Express を使ってプログラムを書くことに。
今回のC++言語は今までと違って、
初チャレンジの言語ではないので楽勝!!
と思ったら、結構意外な所を忘れててショック。。。。
でも思い出してしまえば割とあっさり。
ツールもできたし、さっそく計画を立ててみる。
【モンテカルロ法最大ドローダウン検証計画】
----------------------
対象システム:「旧SmoothMADIシステム」(サイジング変更版)
対象トレード結果データ:
以下のウォークフォワード分析でのWF期間のトレード結果
期間:2001年~2010年
AUDUSD : 最適化期間 8ヶ月、WF期間 3ヶ月
GBPJPY : 最適化期間52ヶ月、WF期間12ヶ月
USDJPY : 最適化期間 6ヶ月、WF期間 3ヶ月
モンテカルロ法: 40トレードを1万回
----------------------
さっそく実施してみると、
瞬殺で最大ドローダウン予測の結果が出た!!
13,519US$
初期投資金額5万US$に対して、27%
結構ええんじゃない?
じゃなくて、前回記事 での実測最大ドローダウンの方が大きいんですけど。。。
ほんじゃ、100トレードを1万回 → 23,109US$
増えた。。。
じゃぁ、約1年分のトレード数の350トレードを1万回 → 40,414US$
じゃあ、思い切って1000トレード×1万回!! → 68,601US$
まだ増える。。
じゃあ、元のトレードサンプル数である3500トレード×1万回では??
→ 113,766US$
ヤケクソや、7000トレード×1万回では? → 151,890US$
3回破産できます。
なぜに、トレード回数を増やすと最大ドローダウンが増えていくのだ??
これだと、どの回数でモンテカルロ法ツール動かせばいいかわからんやん。
試しに、最適化期間のトレード結果を元に同様の評価をしてみよう。
40トレード×1万回 → 8,941US$
100トレード×1万回 → 13,961US$
1000トレード×1万回 → 17,071US$
3500トレード×1万回 → 21,881US$
7000トレード×1万回 → 21,881US$
7000トレードで最大ドローダウンも頭打ち。
つまり、いいトレード戦略だと、モンテカルロ法でトレード回数を増やしていくとどこかで、頭打ちになって、それが想定される最大ドローダウンって事かな?
という事は、頭打ちになるまでトレード回数を増やしていけばいいってことかな?。
逆に言うと、いつまでたっても頭打ちにならない状況は破産するということ。
つまり、ウォークフォワード期間のトレード結果で頭打ちにならない、この戦略の実力は、やっぱり破産するという結論。
【お知らせ:ツールダウンロード】
~モンテカルロ法最大ドローダウンシミュレーション~
この評価で使用したツールをダウンロードできる様にしました。
コマンドプロンプトから起動するタイプです。
C言語で書いていて、性能だいぶ考慮したので、回数増やしても高速で動くと思います。
結果は標準出力にCSV形式で出力するので、リダイレクトでCSV形式ファイルに落としてExcelに読み込んで利用する方法もあります。
ちなみに、エラー処理入れてないので、ファイル名間違えると落ちます。
●ダウンロード用ページ
そして、「FXシステムトレード初心者奮闘記」のウォークフォワード分析は、本来のサイジングに戻したスキャンの結果を楽しみにして続くのでした。
#スキャンはついに6/6通貨ペア目実施中。。。
0 件のコメント:
コメントを投稿