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

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

スポンサーサイト

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

PageTop

JPAlonsoモドキ ダウンロード

先日の記事のJPAlonsoモドキがコードベースにアップされました。
興味のある方はコチラからダウンロードして下さい。


実質残り日数23日

スポンサーサイト

PageTop

JPAlonsoモドキ

現在トップのJPAlonsoさんのモドキ(MT4版)を売ってる人がいました。
本人はやっと沈黙を破り、ディスカッションページにコメントがありました。
メキシコ出身で今はアメリカの大学院にいるとの事です。

というわけで筆者もモドキを作ってみました。上がモドキ、下が本物です。
jpalonso-modoki.png

1H 200MAとそのエンベロープ、幅は0.35。エンベロープの外は逆張り、中はMAより上ならロング、下ならショートします。ロットはいいかげんです。初めの1週間の謎はわからないので、10/8以前はエントリーしないようにしてます。
でも、それを外して公式テスト期間でバックテストすると合格しません・・・。
上の売ってる人はアダプティブMA27を使っているようです。
標本数が少ないのと、イグジットが固定なので、割と何でも当てはまりそうですね。

MrAwajiさんが58位です。


実質残り日数30日
PageTop

モドキ その1

現在第3位の800153 iasさんのモドキがありました。
「MMを入れていない」とのことですが、付属のSetファイルでは、オリジナルとかなり結果が違うシステムになっています。

800381 Xupyprさんは遂に第2位に返り咲き、ニュースページの第7週レポートでは、「グッドバイを言うには早すぎた。」と、悔しそうな反省の弁がありました。
PageTop

2011コンテスト EA 作製記(7)

今回のEAは、現在フォワードテストも兼ねて、最終的なパラメータを決めるために走らせているのですが、やはりオーバーフィッティングの塊だけあって、あまり良い成績ではありません。
資産曲線はオプティマイズの期間を過ぎた8/2以降急降下します。
12個のEAのうちどれか1つでも相場にマッチしてくれれば、それほどひどい成績にはならないのではと淡い期待はありますが。それぞれのパーツとなるEAは、基本的にトレンドフォロー、押し目戻り目でエントリーするように作ったつもりです。全て2つずつのシグナルを使い、「filter0;トレンド系(長期) + filter1;オシレータ系(短期)」となるような組合せを7つほど作り、全通貨ペアで様々なタイムフレームでオプティマイズしただけです。
再現性については細かく計算せずに、
・Pf1.5以上の結果の数の多さ
・取引回数
・損益
・2Dグラフ
・3Dグラフ
などから判断した大体の目視だけです。もちろん「すぐ隣に地雷が埋まっているかも」なパラメータもあるわけで、筆者自身全く予想がつきません。
3D グラフ

ただ、当初の目的である“自動生成で誰でもATCに参加できる”という枠組みだけは出来たのではないかと思っています。EAジェネレータのシグナルの組合せは無限にあるわけで、来年に向けてコツコツとテストして行こうと思っています。

ただこれ以上複雑な事をやろうとすると、15分の時間制限が一番問題になってくると思います。
実際、今回のATC2011_MultiSymbol_v203にしても15分超えてますから。
---------------------------------------------------
>4. Start
> finished in 19 min 10 sec
>
>5. Statistics
> 4959 kb of log files
> 1195 trades, 2344 deals, profit 358517.18 USD
>
>No errors!
---------------------------------------------------
で、一応「Your files have passed automatic verification.」にはなっています。
昨年はルールでは5分でしたが、大体15分ぐらいまではOKだったようですので、今年はたぶん20分+ぐらいは許容範囲なのではないでしょうか?
(主催者はたくさんの不文律を持っているのは、皆さん後存知のとおり。)

登録終了まで、12日、現在までの参加(予定)者1968名。
2000名は超えそうですね。
PageTop

2011コンテスト EA 作製記(6)

全て元通りに戻りましたね。何事も無かったかのように。
ただはっきり言える事は、こういった事がコンテストの最中にも起こる可能性はあると言うことでしょう。
まあ筆者は今年は(今年も?)新しいおもちゃで遊んでるようなものなので、あまり真剣ではないのでいいんですが。

EAの方は、そろそろ仕上げの段階です。新しいロジックを付け加えました。
「EAを公開する」にチェックを入れてありますので、始まったら誰でも(汚いコードを読む気力があれば)見れますが、新しいロジックについてはまだ秘密にしておきます。ヒントは筆者の2008年の出場EAにちょっと似てるかも。
あとは週末メンテナンスの対策のために必要な変数をファイルに保存するようにして今年のEAはほぼ出来上がりです。(たぶん)
今年は早かったですね。なにしろEAジェネレータとオプティマイズだけですから。
現在のテスト結果はこんな感じです。テスターレポート

良くて当たり前なんですが(なにしろカーブフィッティングの塊ですから)、本番ではあまり期待出来そうにありません。

登録終了まで、19日、現在までの参加(予定)者1801名。
PageTop

2011コンテスト EA 作製記(5)

筆者勘違いをしていたようで、
Your files have not passed automatic verification.
という文章は、“yet”が付いていないので、
Your files have failed to pass already.(あなたのEAは落ちました。)
という意味だと思っていたのですが、
Your files have not tested yet.(あなたのEAはまだテストされていません。)
という意味のようです。というかどちらとも取れるようにしてあるのかも。
つまり、テストに落ちたとすると、この部分は変更されないということです。

なので、改めて始めの12通貨ペアで再提出しました。
ちなみに9通貨ペア版は、9分18秒でした。
と書いているうちに、12通貨ペア版のテスト結果が来ました。今までは、1日~2日掛かっていたのですが、なぜか今回は超早かった。正確には測っていませんが、1~2時間ほどで結果が出ました。
時間は、11分42秒と満足のいくものでした。これならいけそうです。

それから、その前のテストで
Invalid pointer access in 'ExpertMultiSymbolATC2011.mqh' (2064,8)
OnChartEvent critical error
というエラーが出たので、修正をしました。

登録終了まで、1ヶ月と7日、現在までの参加(予定)者1515名。
PageTop

2011コンテスト EA 作製記(4)

・EAをオプティマイズするときの小技その2
EAのシンボルとチャートのタイムフレームを可変パラメータにする。

どこかからExpertMultiSymbol.mqhを拾ってきてMQL5\Includeフォルダに入れます。
EAのド頭の
#include <Expert\Expert.mqh>
を、
#include <ExpertMultiSymbol.mqh>
に替えます。
下のコードをコピペする。
(例によって、どこに春の川からない良い子は真似をしないように)

//+------------------------------------------------------------------+
input int TestSymbol =0; // Symbol number to test
input int TestPeriod =0; // Period number to test
//+------------------------------------------------------------------+
//| Initialization function of the expert |
//+------------------------------------------------------------------+
int OnInit()
{
string symb[12];
symb[0]="USDCHF";
symb[1]="GBPUSD";
symb[2]="EURUSD";
symb[3]="USDJPY";
symb[4]="USDCAD";
symb[5]="AUDUSD";
symb[6]="EURGBP";
symb[7]="EURAUD";
symb[8]="EURCHF";
symb[9]="EURJPY";
symb[10]="GBPJPY";
symb[11]="GBPCHF";
ENUM_TIMEFRAMES per[5];
per[0]=Period();
per[1]=PERIOD_M15;
per[2]=PERIOD_H1;
per[3]=PERIOD_H4;
per[4]=PERIOD_H12;
//--- Initializing expert
if(!ExtExpert.Init(symb[TestSymbol],per[TestPeriod],Expert_EveryTick,Expert_MagicNumber))

per[5]の中身は適当に替えてください。直接TestPeriodを、input ENUM_TIMEFRAMESで宣言してもいいのですが、MQL5になってタイムフレームの種類がだいぶ増えたので、配列にしました。
シンボルも、同じように適当に不要なものは消してください。


1回目のテスト結果は、結局先方の機材の不具合で出なかったようです。テスト時間はわからずじまい。
3通貨ペアにダイエットしたものを再提出したレポートが来ました。
今回はOKで、時間は5分22秒でした。9通貨ペアぐらいならいけそうですね。再度チャレンジです。
TestresultOK


登録終了まで、1ヶ月と12日、現在までの参加(予定)者1436名。
PageTop

2011コンテスト EA 作製記(3)

・EAをオプティマイズするときの小技
EAの中で使っているインジケータのタイムフレームを可変パラメータにする。

EAウィザードでEAを作るときに、シグナルを設定する場面でインジケータのタイムフレームを指定しておくと、この改造がしやすくなります。
Signal Time Frame

生成されたEAのOnInit()の中を見ると
//--- Set filter parameters
filter0.Period(PERIOD_M15);
というパラメータがありますので、これを
//--- Set filter parameters
filter0.Period(Signal_AC_TimeFrame_Period);
などと適当な名前をつけ、上の方のInputパラメータの辺りで、
input ENUM_TIMEFRAMES Signal_AC_TimeFrame_Period =PERIOD_M15; //Accelerator Oscillator TimeFrame Period
と宣言します。これで最適化のときにタイムフレームを可変にすることが出来ます。
Input TimeFrame
注:TrailingMA.mqhまたはTrailingParabolicSAR.mqhを使っている場合、これらの期間はチャートのタイムフレームに依存します。


自動テストが始まったようです。昨日までは
「もうすぐテスト始まります。」だったのが、
「あなたのEAは落ちました。」に替わりました。
まだ、メールもDiscussionページのレポートも来ていないのですが、何分掛かったかが、気になります。
AutoTest started


登録終了まで、1ヶ月と15日、現在までの参加(予定)者1373名。
PageTop

コンテストにEAジェネレータは使えるのか・・・もしれない?(8) 2011コンテスト EA 作製記(2)EA提出しちゃいました

コンテストにEAジェネレータは使えるのか・・・もしれない?(8)
2011コンテスト EA 作製記(2) EA提出しちゃいました

表題の通り、マルチシンボル化したEAで何とかなるかもしれないということで、この企画は、「2011コンテスト EA 作製記」として続きます。

とりあえず、12シンボル全てに適当にバックテストしたシグナルを突っ込み、EAを提出してみました。(差し替えは何回でも出来ますからね。)Allow publishing the EA code (EAを公開する)にチェックを入れてありますので、誰でもダウンロードできます。元々既製品の組み合わせですから。

まだ自動テストは始まっていないようですが、まずテストの時間制限でハネられそうです。
筆者の環境(AMD Athlon64 X2 DualCore 3800+, 3070MB)で掛かった時間が、1月から7月末で43'39"。
MQ社のコンピュータで、たぶん半分ぐらいではないかと。いずれにしろ、15分を超えてしまい時間オーバーですね。通貨ペアを減らすか、時間軸を大きくするなど対策をとる必要があります。

MQ社がEAジェネレータで作ったEAをどう扱うのかが楽しみですが、果たして昨年のベラルーシチームのようにインタビュー後大量失格となるのか?
筆者は昨年の三角裁定EAで既に睨まれていますから、ちょっと心配です。

登録終了まで、1ヶ月と16日、現在までの参加(予定)者1346名。
PageTop

2011コンテスト EA 作製記(0)

番号が前後しますが、昨年の失格となったEAについてネタバラシをしておこうと思います。
筆者がメインエンジンと呼んでいた物は、実は“トライアングルアービトラージ”だったんです。
MQ社はブローカの向こう側にある会社なので、当然ブローカが嫌いな戦術はNGにするわけで失格になったのも無理は無いと思います。
この手法は、3つのポジションを取りますから、個々のポジションの内、利益側のポジションはルールにある「スプレッド以下の利益」にはならないと考えたのです。しかし、3つのポジションの損益を合計すると数ピップスの小さいものになるため、「スキャ」と判断されてしまったのでしょう。
もちろんこの手法はそれぞれのレートの瞬間的な“ズレ”を利用するため、3つのポジションをほぼ同時に取る必要があるので、実戦ではほぼ不可能です。
スタート前に勝手に走らせてたことや、急遽前日失格になった事から見ても、たぶんMQ社の中でも直前まで揉めていたのでしょう。
その後、テスターのExcution欄にRandom Delayモードが付きました。これって上のような事情が無きゃ、全く何のためのものか解りませんよね・・・。

登録終了まで、2ヶ月と21日、現在までの参加(予定)者775名。
PageTop

2011コンテスト EA 作製記(1)

さて、筆者のEAの方針ですが、まだずいぶん時間があるのでいくつかの候補があり、まだ固まっていません。

(1)主催者側が求めている(と思われる)戦略に迎合するために、昨年作ったManovモドキをMQL5に移植し、12通貨ペア版にしました。これに、昨年も使ったブースターエンジンを搭載し、スタートダッシュでの瞬間最高順位自己ベストを狙います。
(2)ちょっと気になるインジケータがあるので、それを使って普通にちゃんとしたEAを作る。
(3)EAジェネレータを使って各通貨ペアごとにオプティマイゼイションをして、それを12通貨ペア全部で回す。
割と単純なロジックの組み合わせでも結構凄いのが出来そうな気がするが、膨大な時間が掛かるかも。

(1)はもうほとんど出来ているので楽なのですが、何しろ低レバナンピンなので、あまりパフォーマンスは期待できない。リーマンショックのような相場にさえならなければ、プラスで完走という目標だけは何とかなりそう。
(2)はまだ構想段階で全く手付かずなので、一番大変。ダメだと思うけど一応やってみる。
(3)は新しいおもちゃで遊ぶのが意外と面白いのでやってます。結局、強カーブフィッティングになってしまうと思うのですが、コチラの再現性指数などを参考に良いものが出来ればやってみても面白いかななどと考えています。

登録終了まで、2ヶ月と24日、現在までの参加(予定)者729名。
PageTop

まさかアレだったとは。

先日の記事で書いた630049 bobsley さんのロジックは全くの的外れであることが、630046 bighope さんからの非常に貴重な戴き物により、判明致しましたことを、お詫びと共にここに公表します。
筆者も前回大会の時もモドキを作ったりしましたが、ここまでほぼ完璧なものを作られるとは、す、す、す・す・凄いと言わざるを得ません。詳しくはこちらで聞いてください。>『Expert advisor』は、おもしろい!

今日から色々遊んでみますので、このブログの更新が滞ることがあるかもしれませんが、ご容赦ください。(?)
PageTop

ロジック解析

上位陣のロジックを解き明かそうと、売買履歴をチャートに載せたりエクセルに出したりしていろいろ捻くり回しているのですが、皆さん簡単なように見えて流石に最後の一掴みが難しいですね。

現在1位の 630049 bobsley さん、クローズはいたって簡単で全てTP70SL35だけです。エントリーは全てリミットオーダーで、
(1)ポジションが無い。
(2)ボリンジャーバンド(21)2σを外から内側にクロス。
(3)ボリンジャーバンド(21)2σを外側へ出た時の、UpperとLowerの差が30pips以上
ぐらいで大体当てはまるのですが、それでもその条件でリミットオーダーを入れていないところもあります。
(4)72MAと36MA の順序(と傾き?)(このフィルターが謎)
また一番分からないのが、リミットオーダー後のティックごとに出しているオーダーモディファイです。これはさすがにリアルタイムで見てみないと分からないので、また相場が動き出す来週までお預けですね。
(5)ただこの部分はインタビューの中で「MAを使ってなんたら」とか言っています。わからないので、1分足30MA あたりでで代行できるかも?

現在2位の 630025 Anufrenko321 さん、一時は多重登録疑惑までかけられていました。(疑ってどうもすいません。(ってこんな所で謝っても読んでないよ))
この方はエントリーは簡単です。
(1)ポジションが無い。
(2)価格がMA75(ぐらい)より上なら売り、下なら買い。(第2週目の月曜だけなぜか例外(窓が関係?))
これを1分毎に3ポジション連続で建てますが、一つ目は必ず5ロット、2つ目と3つ目はたぶんバランスによって変えています。
(3)TPは全て170、SLは基本47だが、バランスによって変える。(負けた後は小さくなる)
このSLの幅とロットの計算がまだわかりません。逆に言えば資産管理だけでここまでの成績を出している EA と言えるでしょう。ただ最近はマックスロットに達していますのでロットは3つとも5ロットです。

始めは意外とマルチシンボルの EA が少ないので簡単かと思いましたが、なかなか難しいですね。
PageTop

2010コンテスト EA 作製記(8) まいった!この期に及んでエラー!

なんと締め切り19時間前になってこんなメールが来ました。。。
/////////////////////////////////////////////////////////
Errors found in your Expert Advisors during checking:
2010.09.25 04:42

1. Copy
experts\contest2010-ver2.ex5 ok

2. Compile

3. Configuration
contest2010-ver2 on EURGBP:H1 every tick 2010.01.01-2010.08.01


4. Start
finished in 0 min 0 sec


5. Statistics
0 kb of log files
strategy tester report not found

1 errors


Technical Support
Automated Trading Championship 2010
/////////////////////////////////////////////////////////

出来上がったと思ってもバックテストやフォワードテストをしているといろいろ付け加えるものが出てきたり、新たなバグが見つかったりと、なかなか終わりが無いものですね。VOMの保険機能を付け加えたのですが、どうもその辺が原因のようです。
取り敢えず手を加えて再提出しましたが、この時間では締め切り前に審査の結果が来るかどうか分かりませんので、たぶんこれがラストチャンスです。前のものに戻すことも考えましたが、一か八かの博打です。

登録終了まで、17時間13分、現在までの参加(予定)者1693名。
PageTop

2010コンテスト EA 作製記(7)締め切り間近!

登録終了まで17時間を切りました。
最終的にメインエンジンのコア部分に手を入れ、VOM を実装しました。不完全な部分もあるのですが、テストではパフォーマンスも少し上がりました。
TesterReport.png

同時にブースターエンジンの方もVOM を搭載し、エントリー機会を12倍にしてみたのですが、こちらのほうは逆噴射もあるのであまりパフォーマンスの向上は見られませんでした。

全く解らないのが、 EA を貼り付けるチャートの通貨ペアによって結果が変わるということです。
MT5 の新しい機能として、全ての通貨ペアで自動的にテストする「All symbols selected in MarketWatch」という最適化の機能がありますが、これでやってみると、全12通貨ペアで0.45倍から205倍と開きがあります。opti12
他のマルチシンボルの EA ではほぼ全て同じ結果になるのにです。
また、 EA の公式テスト結果のメールが、確認のためかこの2,3日毎日来るのですが、結果が全て違います。 EA のほうは9/19日以来差し替えていません。(?)
09.19のものと09.20のものは同じに見えますが、4.の時間が僅かに違います。最後のはプロフィットが違っています。
----------------------------------------------------------
2010.09.19 04:42

1. Copy
experts\contest2010.ex5 ok

2. Compile

3. Configuration
contest2010 on EURUSD:H1 every tick 2010.01.01-2010.08.01


4. Start
finished in 7 min 47 sec


5. Statistics
1346 kb of log files
31717 trades, 63456 deals, profit 1344792.27 USD

No errors!

----------------------------------------------------------
2010.09.20 07:01

1. Copy
experts\contest2010.ex5 ok

2. Compile

3. Configuration
contest2010 on EURUSD:H1 every tick 2010.01.01-2010.08.01


4. Start
finished in 7 min 33 sec


5. Statistics
1340 kb of log files
31717 trades, 63456 deals, profit 1344792.27 USD

No errors!

----------------------------------------------------------
2010.09.20 14:17

1. Copy
experts\contest2010.ex5 ok

2. Compile

3. Configuration
contest2010 on EURUSD:H1 every tick 2010.01.01-2010.08.01


4. Start
finished in 7 min 33 sec


5. Statistics
1337 kb of log files
30433 trades, 60889 deals, profit 1292995.44 USD

No errors!

----------------------------------------------------------

当初からこちらでのテストとも微妙に違っていましたが、原因が分かりません。OnTimer() で動かしているし、Symbol() や、_Symbol を一切使ってないので、本来なら結果は変わらないはずなのですが、ますますテスターのエラーという可能性が高まってきました。(オツマミ EA

この EA は、ジョーク EA です。実際にはバックテストの様には約定しない場合が多く、 現バージョンのMT5 のストラテジーテスターの中でしかこの様な結果は起こりません。いわゆる古典的な手法ですので、 MT4 版を作っても実際のブローカーでは既に対処されているようです。(てゆうかやってみた)詳しくは、最終版をアップしてから書きます。今はあまり時間がありませんので。(差し替えるか否かもまだ思案中です。)

登録終了まで、16時間47分、現在までの参加(予定)者1616名。
PageTop

2010コンテスト EA 作製記(6)

登録受付終了まで後3日を切りました。
コンテスト EA のほうもだいぶ煮詰まってきました。現在バックテスト最適化作業中です。
今までの審査でOK が出ていても改造後の最終審査でバグが出ては元も子もありません。審査の結果は1日程で来ますから、今日中には再提出したいところです。 審査は 2010.01.01-2010.08.01 の期間で行われます。何故7ヶ月なのかは分かりません。

ローカルでのバックテスト結果
TesterReport.png

先週5日間のフォワードではこのスピードは出ませんでした。たぶんコンテストでもこの1/10以下のパフォーマンスになるかと思われます。つまり、ストラテジーテスターの資産曲線を見てニヤつき乍ら、ウォッカを飲む為の、オツマミ EA ということです。あとは丁半博打に近いブースターエンジンが吉と出るか凶と出るかです。ブースターにナンピンとマーチンを入れるつもりだったが時間が無く未搭載。結局メインエンジンのパフォーマンスを上げるためのVOM も未搭載のままです。そのため、ブースターとの連携も取れず、ブースターも1/12のパワーしかありません。
これらの問題を解決すればバックテストの1/5ぐらい(?)の成績にはなるかも。

登録終了まで、2日と22時間38分、現在までの参加(予定)者1551名。
PageTop

2010コンテスト EA 作製記(5)

さて登録締め切りまで1週間を切りましたが、なんと今日メールが来て、先日提出して一度はOKが出ていた EA が突然エラーになりました。
「コンパイルが古い」との事。
最近また自動アップデートが来ていたのは知っていたのですが、その度にバックテストをやり直してくれるらしい。
締め切り1週間前にこれだと、大会開始後も?
最新バージョンでコンパイルし直して同じファイルを提出しました。
2回目の公式テストの結果
TesterReport.png
ローカルでのテスト結果と微妙に違います???

登録終了まで、6日と23時間3分、現在までの参加(予定)者1461名。
PageTop

2010コンテスト EA 作製記(4)

提出した EA のフォワードテストが、バックテストと全く違う動きになっています・・・orz。
たぶんデモでもフォワードだと約定しない場合があるようでそのためかもしれません。オプティマイゼイションの結果もバラバラでだんだん訳がわからなくなってきました。今からほぼ全てを書き直す時間もないし、ダメかもしれません。

登録終了まで、10日、現在までの参加(予定)者1375名。
PageTop

2010コンテスト EA 作製記(3) とりあえず EA 提出

testerpng

提出した EA のバックテスト結果です。大会ルールに「2010.01.01 - 2010.09.01の間に5トレード以上」という条件がありますから、実際の EA のチェックもこの期間でなされると考えられますので今年の初めからのバックテストです。
8ヶ月で70倍ぐらいです。最大巡航速度の15ロットに達するのに約1ヵ月半を要しますので、3ヶ月ではたいした成績は出ませんが、安定しているのでちゃんと動けば取り敢えず今年の目標その2は達成できそうです。
思ったよりも各エンジンの統合作業が難航し、ブースターエンジンはもしかすると”逆噴射”の可能性があるため取り外しました。結局例の”重大な欠陥”を何とか修理した継接ぎだらけのメインエンジン単体になってしまいました。履歴を見れば一目瞭然の丸裸の手法です。
出来ればもうひとつサブエンジンを搭載したいところですが、短期決戦での調整が出来ていません。
指令艦橋もこれからですし、超長期指標カレンダーのエクセルもまだ出来ていません。いずれにしてももう少し最適化してから再提出するつもりです。

登録終了まで、12日、現在までの参加(予定)者1341名。
PageTop

2010コンテスト EA 作製記(2)

メインエンジンのフォワードテストがうまくいきません。バックテストでは良い成績が出るのですが、その支えと成っている大量ポジがフォワードテストだと1/10ぐらいになってしまいます。バックテストのデータと実際のティックの違いなのか、設計のミスか?原因不明。サブエンジンの方も単体テストの成績が芳しくなく、搭載が危ぶまれてきました。登録期限ぎりぎりで提出するつもりだったのですが、それだと先方の環境でテストしたときにもし何かバグが出てもどうしようもないので、少し早めに提出しようかと思っています。そのため現在メインエンジンとブースターエンジンの統合作業中です。

登録終了まで、22日、現在までの参加(予定)者1148名。
PageTop

2010コンテスト EA 作製記(1)

コンテスト用の EA が1/3ぐらい出来てきました。今のところメインエンジンとブースターといったところです。"メインエンジン"は、巡航パワーを供給する低出力しかし直線右肩上がりの手法です。このエンジン単体での出力曲線は、現在の"朝スキャ型"の元祖である、かつての DP-002 を彷彿とさせます。USDCAD を除く11シンボルを8セルに分けて使います。"ブースター"は第1目標達成のための初期加速装置です。全12シンボルをフルに使いますが航行期間中12回しか使えません。これに、あと"サブエンジン"を2つほど付けられたらと思っています。完全にコンテスト向きに作っていますので、資金管理と各エンジンのパラメータは10月と11月、12月で区切り、戦略によってそれぞれの数値を最適化する予定です。最終的にはそれらを全て指揮するための第1艦橋である統合資金管理コントローラ"the bridge of the warship"を作らなくてはなりません。あと1ヶ月で(?)・・・・・。

登録終了まで、30日、現在までの参加(予定)者1030名。
PageTop

コンテスト EA

現在参加(予定)者 740名だそうです。
前回参加 EA が705台(人?)でしたので一応上回っています。
もちろん筆者のようにまだ一行も書いてない人もいると思うので、最終的には何台になるのか分かりませんが。
前回は9月の登録終了までに 2420名が登録しましたが、EA を提出したのが 770名で、さらに審査を通過したのが705人という事ですので、やはり間に合わなかったという人達もいたのでしょう。

今回、最大ロット数が各シンボルごとに15ロット、つまり前回の12倍に引き上げられたことで、マルチシンボルが勝つための最低条件になってくると思われます。なかなか全ての通貨ペアに通じるロジックは無いとすると、各通貨ペアごとに EA を書いてそれを統合するというような事になるのでしょうか。それはちょっと大変過ぎです。一番簡単なのが、 thezen 式ですかね。各通貨ペアについて大会終了までに上がるか下がるかの長期判断だけを人間がして、 EA 自体はMA 一本で片張りなんて。12通貨ペア全てでやれば、意外とポートフォリオになるのでは?あとは資金管理と玉転がしを突っ込んでおけばそれだけで一丁上がりですね。
主催者受けするのは、たぶん相関関係を使ったロジックかと思われます。主催者がマルチシンボルを勧めているのは MetaTrader5 を株や商品のマーケットに売り込みたいからだと先日も書いたのですが、株や商品の方が季節要因によるアノマリーやシンボル間の鞘取り等の手法が多く聞かれるような気がしますし、EA 化しやすいのではないでしょうか?

いろいろ考えてはいるのですが、まだ1行も書いてません。
PageTop

Gorezさんにちょっと似てる?ソース公開

いろいろやってみましたが、どうもぴったりくるパラメータが見つかりません。
トレード回数は同じ13にしてみましたが、PF(5.98)もTotal Profit(145579.09)も
オリジナルより良くなってしまいました。

Gorez002.mq4

例によってテキストで上げてあります。
いろいろパラメータを替えて遊んでみてください。
リアル運用は自己責任で。

PageTop

Gorezさん解析中

600260 Gorezさんですが、以前も書いたようにGBPJPYを売るだけの片張りです。
現在までに39トレードしていますが、一度に3ポジションずつ建てるので、実際には13トレードです。
すべて1ロットなので、マネーマネジメント機能は組み込まれていないようです。
1HのMACDが0を下抜け、プラス、前の足の安値を割ったところでエントリー、
TP,SL無しで、1HのMACDシグナルが0を超えたところでクローズ。
SELL STOPを5回入れていますが、いずれも約定していません。
大体こんな感じなのですが、一番初めのエントリーがこの条件に当てはまりません。
SELL STOPの有効時間指定も一番初めだけ5時間、他は2時間となっており、不明ですが、
指値はやはり前の足の安値です。

SELL STOPを無視して、MACDの値が大体分ったら、またモドキを作ってアップしますね。
PageTop

thezenもどきソース公開

筆者の嫌いな 600612 thezen さんです。
簡単そうなので作ってみました。

int start()
{
if(OrdersTotal()==0)OrderSend( Symbol(), OP_SELL, 5, Bid, 3, 0, Bid-58*Point, " ", 1, 0, Red );
return(0);
}

簡単なんてもんじゃありませんね。
入門書の例題みたいです。
でもこれで一時期は資産約8.7倍にしています。

EAの使い方の一つとして半自動売買という方法があります。
コンテストの趣旨として、筆者は彼のEAは言語道断だと思いますが、
実際のEAの使い方としては、人間がおおまかなファンダメンタルを判断し、
ひとつひとつの売買についてはEAに任せるという手法もありかと思います。
逆に言えば、一生使えるEAなんてのは不可能なのかもしれません。
例えば、レンジ用のEAとトレンド用のEAを使い分けるとか。
基本的にはEAはテクニカル中心なので、ただの道具として使い、
ファンダメンタルによって人間が判断して、その道具を定期的に
取り替えてやるのが一番良い方法かもしれません。

PageTop

PrizmaLもどきソース公開

現在1位の 600486 PrizmaLさんモドキを作ってみました。
ポジションを3つ建てるのは面倒なのでひとつになってます。
そのかわり最大ロット数を15にしてあります。
600486 PrizmaLさんは現在までになんと1000ポジション取っていますが、
3ポジションをひとつにまとめて333ポジションとなります。
PFや勝率を犠牲にしてでもこの大量トレードを目標にしました。
オリジナルには及びませんが、結構似た動きになってます。
PrizmaL002
ReportPrizmaL002

PrizmaL002.mq4
mq4の拡張子のままではアップできなかったので、
テキストであげてあります。拡張子を直して使ってください。
危険な設定になっていますので、リアルでは使わないでね。
PageTop

Viseuさんの子達

現在2位、3位、4位の
600486 PrizmaL21-06、5-30
600592 strelec 20-06、4-30
600011 abeiks 20-08、5-28
さん達は、どうも同じロジックのようです。
通貨ペアも同じEURGBPです。
それぞれの名前の後ろの数字は、エントリー時間(モスクワ時間)、だいたいのTPとSLです。
strelecさんだけは、TPとSL以外になにかクローズのロジックがあります。
ほぼ同時に3ポジション立てる人と、少しナンピンしながらずらして3つ立てる人がいます。
ポジションごとにリスク設定だけ変えているのかもしれません。

さてこの基本的なロジックの部分、どこかで聞いたことがあるような?
そうです、かのViseuさんのDP-002です。
一度別の名前でTSDなどに流れてから、独自に発展して行ったようです。
EURGBPなのは、やはり、地政学的要因からボラの大きさや、テクニカルに素直であるといった部分で、チビチビ型のロジックに向いているという判断でしょうか。

しかし、Viseuさんはどこへ行ってしまったのでしょうか?
ブログのほうもほったらかしだし、どうも今回エントリーすらしていないようです。
寂しい限りですが、自分の作ったEAの発展型達が、こんなに活躍しているのをどこかで見ていてくれると思いたいですね。
PageTop

反省点2

週始めにその週エントリーする3通貨ペアを判断する部分が、
全く想定外のサイクルでした。
以前も書きましたが、つまり、この部分が幅、高さとも
読み違えていたということでしょう。

ノーポジになるたびに、または、5分足のロジックを先に持ってきて、
エントリーの直前に、4時間足のロジックでトレンドの強さを測り、
pairstrend[i] が20以上でエントリー許可に改造します。
来年のために。
PageTop

反省点1

クローズは4通りあるのですが、
1 エントリーの逆ロジック
2 ポジってから12時間後
3 週末前
4 大外にTP, SLをそれぞれ100PIPS。
この4番がまったく大外じゃなくなってしまいました。
通貨ペアごとに最適化した値にするべきでした。
PageTop

今回出場EAのロジック(2)

今週最も強いトレンドを示すと思われる通貨ペアのベスト3を
判断する部分です。ホントは2次元配列でやりたかったのですが・・・。
汚いコードで恥ずかしいです。
実戦用にするとしたら、最大ポジ数の制限(コンテストは3本まで)がないわけですから、
トレンドの強さ(pairstrend[i])が20以上でエントリー許可とか。
1本のEAにしなくてもいいので、各通貨ペアごとに、最適化すればOKですね。
そうすれば、BTもできるし。そのうちうpします。

//+------------------------------------------------------------------+

void Call_SMA()
{
for(i=0; i<9; i++)
{
pairstrend[i]=0;

SMA1=iMA(pairs[i],240,MA1_period,0,0,PRICE_MEDIAN,0);
SMA2=iMA(pairs[i],240,MA2_period,0,0,PRICE_MEDIAN,0);
SMA3=iMA(pairs[i],240,MA3_period,0,0,PRICE_MEDIAN,0);
SMA4=iMA(pairs[i],240,MA4_period,0,0,PRICE_MEDIAN,0);
SMA5=iMA(pairs[i],240,MA5_period,0,0,PRICE_MEDIAN,0);
pSMA1=iMA(pairs[i],240,MA1_period,0,0,PRICE_MEDIAN,1);
pSMA2=iMA(pairs[i],240,MA2_period,0,0,PRICE_MEDIAN,1);
pSMA3=iMA(pairs[i],240,MA3_period,0,0,PRICE_MEDIAN,1);
pSMA4=iMA(pairs[i],240,MA4_period,0,0,PRICE_MEDIAN,1);
pSMA5=iMA(pairs[i],240,MA5_period,0,0,PRICE_MEDIAN,1);

if(SMA1>SMA2 && SMA2>SMA3 && SMA3>SMA4 && SMA4>SMA5)
pairstrend[i]=pairstrend[i]+10;
if(SMA1<SMA2 && SMA2<SMA3 && SMA3<SMA4 && SMA4<SMA5)
pairstrend[i]=pairstrend[i]-10;
if(SMA1>pSMA1)pairstrend[i]=pairstrend[i]+2;
if(SMA2>pSMA2)pairstrend[i]=pairstrend[i]+2;
if(SMA3>pSMA3)pairstrend[i]=pairstrend[i]+2;
if(SMA4>pSMA4)pairstrend[i]=pairstrend[i]+2;
if(SMA5>pSMA5)pairstrend[i]=pairstrend[i]+2;
if(SMA1<pSMA1)pairstrend[i]=pairstrend[i]-2;
if(SMA2<pSMA2)pairstrend[i]=pairstrend[i]-2;
if(SMA3<pSMA3)pairstrend[i]=pairstrend[i]-2;
if(SMA4<pSMA4)pairstrend[i]=pairstrend[i]-2;
if(SMA5<pSMA5)pairstrend[i]=pairstrend[i]-2;
if(SMA1-SMA2>pSMA1-pSMA2)pairstrend[i]=pairstrend[i]+1;
if(SMA2-SMA3>pSMA2-pSMA3)pairstrend[i]=pairstrend[i]+1;
if(SMA3-SMA4>pSMA3-pSMA4)pairstrend[i]=pairstrend[i]+1;
if(SMA4-SMA5>pSMA4-pSMA5)pairstrend[i]=pairstrend[i]+1;
if(SMA2-SMA1>pSMA2-pSMA1)pairstrend[i]=pairstrend[i]-1;
if(SMA3-SMA2>pSMA3-pSMA2)pairstrend[i]=pairstrend[i]-1;
if(SMA4-SMA3>pSMA4-pSMA3)pairstrend[i]=pairstrend[i]-1;
if(SMA5-SMA4>pSMA5-pSMA4)pairstrend[i]=pairstrend[i]-1;

}

int trend1=0,trend2=0,trend3=0;
for(j=0; j<3; j++)
{
for(i=0; i<9; i++)
{
if(MathAbs(pairstrend[i])>=trend1)
{
pairsweek[0]=pairs[i];
if(pairstrend[i]>0) pairsweekbuy[0]=true;
else pairsweekbuy[0]=false;
trend1=MathAbs(pairstrend[i]);
}

if(MathAbs(pairstrend[i])<trend1 && MathAbs(pairstrend[i])>=trend2)
{
pairsweek[1]=pairs[i];
if(pairstrend[i]>0) pairsweekbuy[1]=true;
else pairsweekbuy[1]=false;
trend2=MathAbs(pairstrend[i]);
}

if(MathAbs(pairstrend[i])<trend2 && MathAbs(pairstrend[i])>=trend3)
{
pairsweek[2]=pairs[i];
if(pairstrend[i]>0) pairsweekbuy[2]=true;
else pairsweekbuy[2]=false;
trend3=MathAbs(pairstrend[i]);
}
}
}
if(trend2<11)
{
pairsweek[1]=pairsweek[0];
pairsweekbuy[1]=pairsweekbuy[0];
pairsweek[2]=pairsweek[0];
pairsweekbuy[2]=pairsweekbuy[0];
}
if(trend3<11)
{
pairsweek[2]=pairsweek[0];
pairsweekbuy[2]=pairsweekbuy[0];
}
Comment(pairsweek[0],",",pairsweek[1],",",pairsweek[2],",",pairsweekbuy[0],",",pairsweekbuy[1],",",pairsweekbuy[2],",",trend1,",",trend2,",",trend3);
sma=true;
return(0);
}

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