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

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

スポンサーサイト

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

PageTop

ビルド712?

いくつかのMT5のリアルブローカを探してみたのですが、どこも「シグナル」タブが無いようで、実際に実弾でこの機能を使うことは出来ないようです。(アルパリUKは出来るみたいですが、日本居住者は口座を作れません。)
しかし、ブローカもそれほど恐れる事もないと思うんですけどね。乗った途端に馬がコケるなんてのは良くある話で、うまく乗れるかどうかなんて、相場と同じで誰も判りませんから。

筆者は知りませんが、(ここからは自己責任で)奈々丸後は取っておいた方が・・・。ビルド712から鯖皮で「死具鳴」タブを表示させない昨日が・・・。


実質残り日数53日

スポンサーサイト

PageTop

外馬プレイヤーに朗報

週末にアップデートが来て、ビルド705になったのですが、このバージョンからMQL5.comの「Signals」からATC出場EA等の売買シグナルをMT5に直接取り込めるようになりました。
つまりコピーツール無しでコピートレードが出来てしまうのです。

早速遊んでみました。
まず適当なMT5のデモ口座またはリアル口座を開きます。
ツール->オプションの「Community」タブを開き、MQL5のログインとパスワードを入れてOKをクリックします。
signal1

次にツールボックスの「Signals」タブを開き、気に入ったEAを選び、右クリックして「Subscribe」をクリック。
signal4


次にもう一度ツール->オプションから「Signals」タブを開き、上の二つのチェックボックスにチェックを入れてOKをクリックします。
signal


これで完了。あとはMT5が勝手に同じポジションを持ちます。
TETというのはまだ実装されいない機能のようですが、現在は、コピー用のMT5を立ち上げっ放しにして置かなければいけない所を、クラウドのサーバをVPSのように使えるようにする機能だと思います。
Money managementは、Automaticにするとポジションサイズを有効証拠金の比率で自動調整します。Percentage based onにすると比率を指定出来ます。
Stop if equity lessは有効証拠金額によってコピー機能を停止します。
一番下のスリッページはスプレッドの比率で指定するようです。
自動売買のボタンを押して置かないと、MT5を再起動した時に「Enable realtime signal subscription」のチェックが外れてしまうようです。

MT5のリアル口座を作ろうかな。


さて筆者のEAですが、今週はいくつかのペアで窓が空いたので、バグも無く意図した通りの動きをしたのですが、EURUSD、USDCHF、USDCAD全て撃沈、あえなく水面下に沈んでおります。


実質残り日数59日
PageTop

公式(?)外馬ツール

筆者の作ったのが、どうもうまく動かないようで、自分のを使わずに公式と言うかフォーラムから拾って来た物を使っています。
トレースするリアル口座のシンボルが6文字以上(EURUSDpro等)の場合、自動では対応していないので、受信側のMT4のEAである、Copyist_positions.mq4のコードをいじる必要があります。
-----------------------------------------------------------
//--- get substring with symbol
Symbols[x]=StringSubstr(s[x],start,length)+"pro"; //////////////for FOREX.com
return;
-----------------------------------------------------------
644行目あたりのシンボル名を配列に代入するところで、接尾文字列を足します。

800153 ias
さん、$100,000に達しました。ここらへんからは最大ロット制限の関係で、マルチシンボルのEAが有利になってくると思われます。
PageTop

外馬ツール

筆者も昨年作ったのですが、他の方が作ったMT5toMT4トレードコピーツールがフォーラムにありました。
MT5が書いたファイルをMT4で読み込む部分に筆者も苦労したのですが、この方の解決方法が面白い。
なんと、MT4そのものをC:\Program Files\MetaTrader 5\MQL5\Files\の中にインストールしちゃってます。
MT5が書き込むファイルのアドレスは、
C:\Program Files\MetaTrader 5\MQL5\Files\MetaTrader 4\experts\files\xxx
になります。
あまりの強引さに思わず笑っちゃったのですが、この発想はありませんでした。凄い!

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

バグ修正

SotoumaReceiver.mq4 にバグがありました。LotsMultipierを 1 以外にするとおかしな動きになっていたのを修正しました。
SotoumaReceiver.mq4
PageTop

乗れない?

筆者が注目していた630191 notusedさんが現在1位になっていますが、よく見てみるとマルチシンボルではありますが、それぞれの通貨ペアでは片張りのピラミッディングですね。来週からトレンドが変化した場合にどうなるか分かりません。それとも何か大きなトレンドを測るロジックがあるのでしょうか?それぞれTP だけは入っていますが、オモテのSL も入っていないので少し怖いですね。もしかしたら筆者の言っていた、thezen 式+マルチシンボルって奴かもしれません。来週もちょっと様子見ですね。

さて日本人トップは現在13位の630046 bighopeさん、630239 Shimarinさんのブログにもありますが、USDJPY ショートを切るに切れない状態のようです。このまま円高で終われると良いのですが・・・。

今回日本からの出場者のうちブログを書いている方の紹介を(勝手に)します。ご迷惑でしたらコメください。
630046 bighope 『Expert adviser』は、おもしろい!
630099 gazer 外国為替のトレーダーになる
630144 Kurl ATC2010 参戦記
630178 moonglow
630207 porthonkao
630221 ryuta
630239 Shimarin イゼルローン奪回!
630257 swordfish 短期投資技術研究所
630270 tsignal
ブログ内容から推測しているので間違っていたら修正しますので、コメいただけると幸いです。
PageTop

すごいのいない?

外馬に乗る EA を探しているのですが、なんだかパッとしませんね。上位に入っているのはいずれも単一通貨ペアの片張りばかり。thezen みたいなのばっかりです。
一時トップだった630028 arnab なんてこんなのじゃ?
void OnTick()
{
if(PositionsTotal()==0) m_trade.PositionOpen("EURCHF",ORDER_TYPE_SELL,5.0,SymbolInfoDouble("EURCHF",SYMBOL_BID),0,10pips,comment);
}
//////EOF
例によって入門書の例題ですね。たった1行で出来ちゃいます。
やっぱり今年はあまり期待できそうにありません。
PageTop

外馬.mq5 テスト快調

コピーツールのテストをしていますが、現在のところ問題なく動いているようです。いずれにしろ始めの1,2週間は乗る馬が決まらないのでまだ時間はありますが。

そういえば、万が一筆者の EA が調子が良くても外馬には乗らないでください。メインエンジンのロジックはブローカーに非常に左右されますので、外馬.mq5 のタイムラグが全く無いとしても違うブローカーでのコピーは無理だと思います。まずその前に、リアルタイムではバックテストのような成績が出ることは有り得ませんが・・・。

ところで、今日になって参加者の数が急に減りました。341名だったのが、318名になっています。フォーラムで理由を聞いてみたところ、15分後にMetaQuotes の審判の一人である Stanislav Starikov (通称 stringo)から返事が来ていました。「二重登録をしている者を減らした。」とのことです。毎年少なからずこういう人がいるようですが、どうやって判定するのかよくわかりません。(KGなんとか?)

それにしても流石に今回の参加者は少ないですね。2006年258名、2007年603名、2008年705名ときて今回は現在のところ318名ですから、やはり MT5 への移行が進んでいないという事がよくわかります。これだけバグだらけの見切り発車プラットフォームだけに無理も無いかと思いますが。

そういうわけで今年の外馬はあまり期待出来ないのではないかと思っています。難しいところですが、筆者は荒れ相場になってくれた方が EA の実力が出て面白いのではないかと期待しております。

大会開始まで、3日と10時間14分。参加者318名。
PageTop

ファイルで出来ました

3日前に断念とか言っておいて何なんですが・・・。
あきらめて“神”にお願いしたのですが、”とある”宝庫を漁っていたら、有るじゃないですか、ここに。
最初からネームドパイプなんてカッコ付けなければ良かったのだ・・・。
というわけであんまりカッコ良くは無いですが、何とか動くようになりました。ファイルもMQ4 とMQ5 の2つだけになってスッキリしました。タイムラグも思っていたより小さいようです。(ベタ褒め by 本人)
まだ細かいところをテストしていないので、興味のある方ご協力お願いします。
SotoumaTrancemitter.mq5 |EA
SotoumaReceiver.mq4 |Script
下記は必ず入力してください。(MT4 側)
extern string AccountNum = "0";
AccountNum は、同じコンピュータのMT5 上のコピー元のアカウントナンバーです。MT5 側は "000" のままでも自動でログインしているアカウントが入ります。
extern string BasePath = "C:\\Users\\xxxxxxxxx\\AppData\\Roaming\\MetaQuotes\\Terminal\\xxxxxxxxxxxxxxxxxxxxx\\MQL5\\Files\\";
BasePath は、同じコンピュータのMT5 のData Folder\MQL5\Files\ のパスです。¥を全て\\にするのが”おまじない”らしい。他のパラメータはデフォルトでも動きます。

サポートは有りません。上の説明とコード見て解らない人は使わないでください。
あくまでMT5 時代が来ても過去のMT4 資産を生かす為の研究用です。
例によってリアルで使って損しても筆者は知りません。
PageTop

MT5 to MT4 TradeCopier 断念

ギブアップです。
やっぱりもう基礎知識が無いのでだめです。もっと簡単に出来ると思っていたのですが・・・。

どうもネームドパイプがうまく通信できません。MT4 同士, MT5 同士だとうまくいくのですが、MT5 to MT4 だとだめです。1回目の通信は出来るのですが、2回目からは読み込めません。
MT4 の方が CreateNamedPipeA しか呼べないのに対し、MT5 の方は CreateNamedPipeW しか使えないのが原因だと思うのですが、よくわかりません。
自然治癒力を信じてぶっ壊れたやつを上げときますので、どなたかパイプとか詳しい方お願いします。。
SotoumaTrancemitter.mq5 (EA)、MT5用送信クライアントEA、ファイルメニューからデータフォルダを開き、その中の\MQL5\Expertsに入れる。
CNamedPipes_mod.mqh (Pipe for MT5)、ファイルメニューからデータフォルダを開き、その中の\MQL5\Includeに入れる。
SotoumaReceiver.mq4 (Script)、MT4用受信サーバスクリプト、\MT4\experts\scriptsに入れる。
NamedPipeServer_mod.mqh (Pipe for MT4)、\MT4\experts\includeに入れる。
そろそろコンテストEA 書かないと・・・。

その他の問題点
送れる String の長さが256文字までなので、32文字でひとつのシンボルですから、8シンボルまでしか送れません。(たぶん)
これはどうしようもないのですが、MT5 側で何度もナンピンやピラミッディングをすると、MT4 側ではそのシンボルのポジション数がその回数分どんどん増えます。その後何回か部分決済をすると、ポジション数は変わらずに個々のサイズが小さくなっていくので、最後は NormarizeDouble されて無くなってしまう可能性があります。

ところでまだログインもパスワードも送って来ません。
「Your data have been accepted after moderator's check」には7月21日にやっとチェックが付いた。
400人を捌くのに丸1ヶ月。ロシア人のペースにしては早い方か?
まあどうせまだEA も一行も書いていないし、どうでもいいのだが、早くMT5 の”Contest Account”が見たいと思っているのは筆者だけでしょうか?
PageTop

MT4 and MT5 間通信

MT4 and MT5 間通信
この技術がうまくいけば、いろいろ夢が広がります。

MT5のティックを MT4 に流す
MT4上のEAからMT5上のリアルアカウントにオーダーを出す
MT5上のEAは、VOM管理をしながら、ポジションを動かす。

インジケータバッファに全てのデータを入れておけば、EA やインジケータなどの
いままでの MT4 資産が全て生かせます。名付けて
MT4_MT5_Mirror.mq5
これってもしかして、FXDD が言ってたやつ?

MT5 の行方
MT5 の特徴として、株にも対応するということだろう。
だから、MetaQuotes サイドも、FX 業者はメインターゲットではないのだと思う。
もしかしたらそれが、例の疑問?の答えかもしれない。
確かに株に使うとしたら、マルチシンボルのEA が増えてほしいと思うのは納得がいく。

PageTop

Named Pipe

fai さんは御忙しいようで、仕方ないのでいろいろ探し回ってみたら、
A DLL-free solution to communicate between MetaTrader 5 terminals using Named Pipes
「ネームドパイプを使ってDLL無しで通信する」なんて記事がありました。
これは MT5 同士の通信なのですが、同じような記事でネームドパイプを使った MT4 同士の通信に関するものもありました。これを使えば筆者でも何とかなりそう。よく分からないままとりあえずあてずっぽで適当にコードを改造してやってみます。
PageTop

SotoumaReceiver.mq4

MT5の場合、12通貨ペアしかなければ最大で12ポジションしか取れないので、全ての通貨ペアについて、そのロットを比較し、違っていれば、その増減を MT4 側でオーダーする。
だけなのですが、実は大変だったのは MQL4 側のコンバインポジションの処理でした。
MT5ではひとつの通貨ペアにひとつのポジションしか建てられません。
ある通貨ペアを2回買うとMT4では、二つのポジションになるのに対し、MT5では、その平均値のひとつのポジションになるわけです。これを一度に決済してくれればいいのですが、EAによっては半分とか1/3だけ決済したりもする場合があったりするわけです。するとMT4側では、平均価格を維持するためには、二つのポジションを同時に同じ比率で決済しなければなりません。このコードがややこしいというか、無駄が多いのです。どなたかもっと簡潔な方法があればご教授ください。
現在、MT4 to MT4 でテスト中です。
PageTop

SotoumaTrancemitter.mq5

まずはいきなり MQL5 をスクラッチから書いていくのは大変なので SotoumaTrancemitter.mq4 (慣れてる方の MQL4 です。)を作り、動作確認をし、それを MQL5 に移植します。またまた fai さんのお世話になります。
MQL5 では、int start() の代わりにいろいろなイベントが使えるようなので、今回の目的に一番よさそうな void OnTrade() を使ってみます。そこにとりあえずそのまま MQL4 のコードを貼り付けてコンパイルしてみると、62 error(s), 22 warning(s) だそうです。
MQL4 を勉強し始めた頃のことを思い出しますね。
最近は、スクラッチからコードを書いてもエラーが出ないようにはなってきたのですが、以前はエラーが出るのが当たり前で、それをひとつずつ潰していくごとにひとつ学んでいくという作業をしたものでした。
また同じことの繰り返しです。
当時はまだ豊島先生の本も出版されていませんでしたし、ネットの情報だけで、MT4 をいじりたおして学ぶ以外に方法がありませんでした。今は、fai さんをはじめとしてすばらしい方々が様々な情報を提供してくださり、本当に有り難いと思います。
おかげで MQL5 への翻訳は思ったほど苦労しませんでした。
というわけで送り側は出来たのですが、なぜかメモリに書き込んでくれません。
もしかしたら、 MQL4 の DLL ってそのままじゃ MQL5 には使えないの?
ちょっと fai さんの所行って聞いて来ます。(困ったときの"神"頼み・・・)
http://blog-imgs-43.fc2.com/a/l/o/alohafx/SotoumaTrancemitter-mq5.txt
PageTop

SotoumaTransmitter.mq5

まずはいきなり MQL5 をスクラッチから書いていくのは大変なので SotoumaTransmitter.mq4 (慣れてる方の MQL4 です。)を作り、動作確認をし、それを MQL5 に移植します。またまた fai さんのお世話になります。
MQL5 では、int start() の代わりにいろいろなイベントが使えるようなので、今回の目的に一番よさそうな void OnTrade() を使ってみます。そこにとりあえずそのまま MQL4 のコードを貼り付けてコンパイルしてみると、62 error(s), 22 warning(s) だそうです。
MQL4 を勉強し始めた頃のことを思い出しますね。
最近は、スクラッチからコードを書いてもエラーが出ないようにはなってきたのですが、以前はエラーが出るのが当たり前で、それをひとつずつ潰していくごとにひとつ学んでいくという作業をしたものでした。
また同じことの繰り返しです。
当時はまだ豊島先生の本も出版されていませんでしたし、ネットの情報だけで、MT4 をいじりたおして学ぶ以外に方法がありませんでした。今は、fai さんをはじめとしてすばらしい方々が様々な情報を提供してくださり、
本当に有り難いと思います。
おかげで MQL5 への翻訳は思ったほど苦労しませんでした。
というわけで送り側は出来たのですが、なぜかメモリに書き込んでくれません。
もしかしたら、 MQL4 の DLL ってそのままじゃ MQL5 には使えないの?
ちょっと fai さんの所行って聞いて来ます。(困ったときの神頼み・・・)
PageTop

MT5 to MT4 TradeCopier

さて、今年も外馬でうまうまと思っていたのですが、MT5になってしまったので、前回使ったコピーソフトは使えません。
つまり、コンテスト出場者のトレードを覗くのはたぶん MT5 しか使えませんが、実際リアルアカウントで売買するためには MT4 でしか出来ないわけです。
というわけで自作にチャレンジです。
コンテストEA書くより重要です。(って?)
MQL5で、 SotoumaTransmitter.mq5 というEAを作り、fai さんのところで頂いた MemMap.dll を介して、SotoumaReciever.mq4 でリアルアカウントで同じトレードを再現します。MT4 と MT5 には OrderType の違いがあるためペンディングオーダーはコピーされません。(筆者には荷が重過ぎます。)処理に時間差があるため、スキャル系のEAに使うにはキツイかもです。出来上がったら、うpしますね。
PageTop

コピー元

さて、10月が終わり、このチャンピオンシップも3分の1が経過しました。
しかし、100年に一度の世界恐慌といわれるだけあって、この大相場、
なかなか落ち着きませんね。チャンピオンシップが終わるまでこんな感じでしょうか?
というわけで、外馬に乗る馬がなかなか決まりません。

トップ10のEAの中にも、ハイレバ片張りだけの人もいます。
現在5位の 600612 thezen さん、EURUSDを目一杯売り続けるだけのEAです。
TP58pipsをヒットするとすぐまた5ロット売ります。それだけ。ただそれだけです。
いろいろ頭を使ってテクニカルとかをひねくって作ったEAが、
こんなやつに負けている現在6位以下の700人の人達は、浮かばれませんね。
(はい、筆者も含め。)

現在1位の 600260 Gorez さんも、GBPJPYを売ってるだけです。
毎回1ロットを3ポジションづつ、現在までに6回トレードしています。
チャートは1分足ですが、売り買いの頻度から1時間足ぐらいの
MAクロスかなにかかな?という気がします。
たぶん、売りのみの片張りで、価格が上向きになると指値売りを入れるのでしょう。

来週からデモでコピーツールを試してみます。
PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。