メタトレーダー自動売買チャンピオンシップ挑戦記

MT4・MT5の発売元であるMetaQuotes Software Corp社主催だった Automated Trading Championship の参加記録でしたが、今年から非公式のに。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

ATC2012公式ウェブサイト

http://championship.mql5.com/2012/en
まだスポンサーも出ていませんが・・・。

ルールは出ました。
まず、期間が13週間になりました。2012/10/01~2012/12/28です。
正味65日間は初です。MT4最後の大会である2008年は67日で最長でしたが。
今年はMT5では例年より5日長いことになります。
他に目立った変更は有りません。

スポンサーサイト

PageTop

ビジュアルモードでインディケータを表示する

MT5になってストラテジーテスターのビジュアルモードが別窓で開くようになったので、MT4の時のようにドラッグアンドドロップでインディケータを載せることが出来なくなってしまいました。

ビジュアルモードでインディケータを表示するには、以下の2つの方法があります。
(1)EA内でiMA()等の標準インディケータまたはiCustom()を使う
コードの中でMT5に最初から付いている標準インディケータまたはiCustom()を使っていれば、そのインディケータは自動的に表示されます。線種や色などは変更出来ません。
iCustom()を使わずにEA内部でインディケータの値を計算しているような場合は、表示されません。
(2)テンプレートを作る
少し面倒ですが、EAと同名のテンプレートを作る方法でしかインディケータを表示することは出来ないようです。
テンプレートを作るときは、コードの中で標準インディケータを使っている場合、そのインディケータは外しておかないと、二重に表示されてしまいます。

ちなみにMTFやマルチシンボルのEAの場合、それぞれの時間足、またはシンボルの全てのチャートが開きますが、EAをアタッチしたチャート以外のチャートにインディケータを載せる事は、残念ながら出来ないようです。
(訂正)上記(1)の方法で出来ます。

PageTop

MQ社のMT5用過去データ

例の2006年9月以前の「ヒゲ問題」はMT4から継承されてしまっているようで、MQ社のMT5用の過去データで、スキャル系のEAの10年ぐらいのバックテストをすると、こんな資産曲線になります。

スキャルEAバックテスト

スキャ系のEAで長期のバックテストをする時には注意が必要です。


MT5になって、フローティングスプレッドに対応するためにヒストリーデータにスプレッドが含まれるようになったのですが、昔は変動スプレッドなんて無かったのに、どうなっているのかと思ったら、
EURUSDの場合、2003年末以前は5Pips、2004年が4Pips、2005年が3Pips,2006年から2009年9月22日までが2Pipsの固定スプで、その後が変動となっているようです。(コチラのインディケータで調べました。)

symbol.selファイルが無くなってしまったので、スプレッドチェンジャーも使えません。
ヒストリーセンターも無いので、修正は一切できません。
フォーラムでも聞いてみましたが、スルーでした。

誰か偉い人*.csv to *.hcc コンバータ作って下さい。
PageTop

MQL5クラウドネットワークを全開にする

昨年までは自宅のリモートエージェントを駆使して使っていたMQL5クラウドネットワークですが、その有料化による目覚しいスピードの進化には感激すら覚えます。
去年は何日も掛かっていた最適化が、ほんの数時間で出来たりするのですから。

最適化が激速になるMQL5クラウドですが、遺伝的アルゴリズムを使っていると、1箇所のアクセスポイントにしか継りません。完全アルゴリズムの場合にのみ全てのアクセスポイントを利用します。
全開を見たい人は、完全アルゴリズムにして、尚且つ最適化のパターン総数を100万通り以下(32ビットの場合。64ビットは1億通り以下。)にしてください。(登録時に貰えるお試し用2ドル分クレジットは瞬く間に消えていきます。)

全開中


普通は遺伝的アルゴリズムで十分です。
PageTop

最適化の結果に勝率を表示する---OnTester()関数

筆者は、MT4の頃から、何故最適化の結果に勝率が表示されないのかと、不思議に思っていたのですが、皆さんあまり勝率とか気にしないのでしょうか?(MT4でやりたい人はコチラ。)

というわけで、MT5で最適化の結果に勝率を表示するようにしてみました。

MT5になって、OnTester()という関数ができました。これって一体何?と思っていたのですが、これが、最適化の結果に好きな基準を適用するための物だったんです。->kwsk
勝率だけでなく大概の統計は何でも出来ます。(たぶん)

テスターカスタム

ストラテジーテスターのオプティマイズの右のドロップダウンメニューの一番下に「Custom max」という項目がありますが、下記のコードを貼って、これを選ぶと勝率で最適化されます。

勝率を計算するコード
//--------------------------------------------------------------
// The handler of the event of completion of another test pass:
//--------------------------------------------------------------
double OnTester()
{
double trades = TesterStatistics(STAT_TRADES);
double win = TesterStatistics(STAT_PROFIT_TRADES);
double winratio = 0;
if(trades>0) winratio = NormalizeDouble(win/trades*100,2);

return(winratio);
}
//+------------------------------------------------------------+

オプティマイズ結果のタブの「結果」の列に勝率が表示されます。
また、「Custom max」以外で最適化した場合は、オプティマイズ結果のタブで右クリックして、*.xmlに出力すると、Customという列(H)にそれぞれの勝率が表示されます。(キャッシュの中のナンチャラ.xmlでも同じです)
PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。