EAラボラトリーフォーラム::FXシステムトレード情報満載のコミュニティサイト

ユーザー登録    ログイン    フォーラム    検索    FAQ

掲示板トップ » Engineer


フォーラムルール


営利目的の書き込みは禁止です。ツールやEAなどの添付はここでは禁止です。(専用のフォーラムを用意してあります) あくまでも交流を目的としたフォーラムであることを忘れずに。



新しいトピックを投稿する トピックへ返信する  [ 10 件の記事 ] 
作成者 メッセージ
 記事の件名: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月07日(火) 19:53 
オフライン
Hランク
Hランク

登録日時: 2009年6月23日(火) 17:12
記事: 26
MT4では、複数の為替チャートを同時に表示できますよね。
(同一の通貨ペアでなく、異なる通貨ペアでも、異なる時間足でも、です)
EAは、1つの為替チャートに1つだけしかドロップできませんが、
複数の為替チャートを表示して、それぞれにEAをドロップすれば複数EAを平行運用できますよね。
そのようにして、MT4×1体で複数EAを平行運用されている方も多いのではないでしょうか。

しかし、ちょっと待って下さい。
実は、MT4のサーバーに対する通信接続(コネクション)確立は、同時に1件だけのようなのです。

これは何を意味するのかというと、あるEAがサーバーと通信している時には
他のEAはサーバーと通信できない・・・つまり同タイミングでの注文などが発生しても執行されず、
他の後からの注文は server busy などとなって、本来の注文タイミングではなく後回しになったり
「ナシ」とされてしまうのです。

具体的には、シビアな仕掛けタイミングが求められるスキャル系EAなどの運用にて
複数のEAを同時に運用する場合、仕掛けタイミングのズレによって

a)MT4×1体で、4つのEAを動作させた口座
b)MT4×4体で、1つずつEAを動作させた口座

a)とb)では、1ヶ月で1.5~2倍もの差が成績に出ることがあります。
特に、パラメータ差異で同一EAを同時並行運用する場合や、アジア時間で運用するスキャル系EAなどは、
仕掛けタイミングがほぼ同一となることが多く、パフォーマンスに大きな影響を与えるでしょう。

この制限は、EAのブログラム側で「注文の重複時には、ウェイトさせて順番待ち・短時間で再試行」など
回避させる方法もあるため、ある程度の知識と技術があるプログラマならば予め対策しているはずで
顕在化しづらいのですが、実際にそのような対策が行われているのか否かはEA使用者の立場では当然関知できません。
(ただし、一定期間フォワードテストすれば確認できます。
 例えば FAP TURBO では明らかに未対策で、1EA単体と4EA同時並行した運用結果の差異は2、3倍ほど出ました)

よって、どのようなEAを使用に際しても、できるだけMT4×1体ごとに1EAで運用することが回避策になります。
おそらくはEA側で(IS TRADE ALLOWED関数など)プログラム的にどのような対策を採っていても、
そもそも、これはMT4側の制限であるため、MT4×1体で1EAを動作させた場合の方が効果的だと思います。
幸いMT4は同一口座に多重ログインできるため、MT4×1体で1EAの動作は、実に効果的な対策になります。
(同一EAを別MT4でパラメータ差異にて同時並行運用するなどでも)

もちろん多数のMT4を起動させてPCメモリを圧迫しては本末転倒になりますので、
PC側では、より多くのメモリを搭載して不必要なサービス・プロセス、常駐ソフトの停止する。
MT4側では、不必要な通貨ペアの気配値を非表示にして最小化、チャート表示バーの最大数を減少させておくと良いです。


ページトップ 
 プロフィール  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月07日(火) 22:51 
オフライン
グローバルモデレータ
アバター

登録日時: 2009年5月28日(木) 15:21
記事: 646
ウェブサイト: http://www.ea-labo.com
ビギナーさんでも見ていて良く分かることがあります。
スキャルピングEAでのこのような問題で目に見て解る「おい! :x 」ってことを題材にして意見と対応を書きましょう。

こんなことはありませんか?
ターミナルの操作履歴で、このようになっている場合があります。
05:42:45 'XXXXXXXX': order sell 0.50 USDJPY opening at 95.724 sl: 96.224 tp: 95.640 failed [Trade timeout]
05:39:27 'XXXXXXXX': request was accepted by server
05:39:26 'XXXXXXXX': instant order sell 0.50 USDJPY at 95.724 sl: 96.224 tp: 95.640

サーバーが受け入れてから、3分経って、Trade timeout(128番)エラーが返ってきてます。
この3分間、MetaTrader自身はずっとサーバーの応答を待っています。
もちろん、aririn研究員のおっしゃるように、コネクションはひとつだけなので、他のEAの注文も受け付けません。
しかし、この3分間に他の同一アカウントのMetaTraderからオーダーが入った場合はどうなるか?
そっちは通ることが多いです。
MetaTrader毎に1EAが優位であることがおわかりいただけると思います。

request was accepted by server メッセージが出て、15秒もして完了のメッセージが来なければ、
大体3分待たなければならないです。この間他のEAは注文停止状態です。 :o

request was accepted by server メッセージが出て、何秒返事が来なかったら注文を取りやめて・・・というプログラムはEAの中だけでは出来ません。

面白い体験談もあります。
FXCM-NYに、オフクォートとタイムアウトの苦情の電話をしたことがあります。そのときにちょうど電話中にrequest was accepted by serverが出たので、「どうしたらいいでしょうか?」と尋ねたら、「MT4を再起動して下さい :ugeek: 」と言われました。
再起動して、「注文は入っていませんねぇ」と言いましたら、「はい。これでOKです :ugeek: 」ですって・・・。
そのあと『Trade timeoutエラー』も来ませんでした。

ということは、これはサーバーの問題でもあり、MetaTraderの問題でもあるということです。

aririn研究員の書き込みの中で
>FAP TURBO では明らかに未対策で、1EA単体と4EA同時並行した運用結果の差異は2、3倍ほど出ました
とありますが、おそらくこの影響も大きいと思います。
注文順番待ちにしている可能性はあっても、その場合のスリップの記述もきついのかもしれませんね。


注文が、いや通信が重複しないように対策を極限まで施そうとすると大変なことになります。
CPUとEAを一対にする。電話回線をEA分。
なんてね。

でも3分は大きいですから、EAの数分MetaTradeを立ち上げることはとても有効となります。 :idea:


ページトップ 
 プロフィール WWW  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月08日(水) 17:00 
オフライン
Hランク
Hランク

登録日時: 2009年6月23日(火) 17:12
記事: 26
やはり、そうでしたか。
MetaQuotesの中の人に頑張って貰うしかないですが、
MT4のBuildが上がれば解決するのか、MT5待ちか、または永久に続く類のものなのか分かりませんので
ユーザーが運用で対応するしかありませんね。

ところで、何体までのMT4を多重起動できるかはPC搭載メモリ容量に比例するようです。

・PC1(旧型) OS:XP SP2 CPU:Pentium 4 Northwood 3.0GHz MEM:1.0GB
 →最大起動数 MT4×12体(ただし正常運用できるのは同時に11体)

・PC2(新型) OS:XP SP3 CPU:Core2Quad Q9650 3.6Ghz(OC) MEM:8.0GB(32bit OS につき3.2GB以上はGavotteでドライブ化してMT4をインスト)
 →最大起動数 MT4×21体

ただし、本当に最大限度までMT4を多重起動させてしまった場合、
一見すると、MT4もEAも正常運用されているように見えるのに「実際にはEAが正常稼働していない」という場合が出てきました。
先日発見したケースですが、約半年間MT4×11体で正常稼働(データ取り)していたPCで、
ふと調子に乗って最大起動数MT4×12体で運用し始めたところ、何故かランダムなMT4×1体で売買が行われなくなりました。
MT4の稼働も、為替データ受信も、EA動作も問題なく正常稼働しているように見えますが、
"Expert"タブを参照すると"Zero divide"と表示されていました。

この原因と対策は、まだ分かりません。
そのまま解釈すると、ゼロ除算して停止しているようですが、何に対して、どうして、発生したのかも不明です。
ただしMT4×11体以下にすると発生しなくなるのです...管理人engineeeer様、何が原因なのでしょうか?

(まあ旧型PC1でもMT4×11体くらい動作すれば、実用上の問題は出ないでしょうけれども...)


ページトップ 
 プロフィール  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月08日(水) 21:03 
オフライン
グローバルモデレータ
アバター

登録日時: 2009年5月28日(木) 15:21
記事: 646
ウェブサイト: http://www.ea-labo.com
ほうほう。
搭載メモリに対するEAの最大同時起動数の検証ですか。大変興味深いデータをありがとうございます。参考にいたします。

機会があれば、zero devideエラーのメッセージをキャプチャーして送っていただけますでしょうか?
おそらくMetaTraderの占有メモリの最大量とEAへの割り当てあたりで、設定のダイナミック化が計られていないか計算ミスでしょうね。


ページトップ 
 プロフィール WWW  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月09日(木) 18:05 
オフライン
Hランク
Hランク
アバター

登録日時: 2009年6月29日(月) 13:11
記事: 276
ウェブサイト: http://109low.com/
うわーこのスレ熱いっすねー。
私も基本的には1つのMT4に対して1つのEAで動かしています。
私の場合、お二方ほど仕組みは理解していませんがbusyが多発した事をきっかけにです。
勉強させて頂きました。有難う御座います。

あと接続関連で気にしているのは通信速度ですね。
オンラインゲームをした事がある方は経験あると思うのですが、ネットワーク上ですとラグが大敵です。
少しでも早い接続を求めて・・・

米国圏・・・VPSLAND
英国圏・・・SWVPS

から接続させています。

多重起動は私も検証した事があるのですが、メモリ以外の部分で何かしら制約あるのかもしれませんね。
使用率を全然食っていないのにaririnさんと同じくらいの稼動数でおかしくなってきます。
Winならではの壁がありそうですね。


ページトップ 
 プロフィール WWW  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月12日(日) 16:39 
オフライン
Hランク
Hランク

登録日時: 2009年6月23日(火) 17:12
記事: 26
管理人engineeeer様

>機会があれば、zero devideエラーのメッセージをキャプチャーして送っていただけますでしょうか?
>おそらくMetaTraderの占有メモリの最大量とEAへの割り当てあたりで、設定のダイナミック化が計られていないか計算ミスでしょうね。

うぐっ、実は既に11体で再構成してフォワードテスト計画を運用中でして、今のところ画面キャプチャを撮る機会がありません・・・。
ただ、エラーメッセージでは単に"zero devide"と出ていただけで、解決の手がかりになりそうな部分は他にありませんでした。
原因が分からないまま使用するのは気持ち悪いのですが、"zero devide"でググると大抵はEAのプログラム関係に辿り着き他に事例が無いので
取り敢えず保留して11体で稼働させています...。

109LOW様

以前からFX投資手法研究所を拝見させて頂いておりました。
また、先日はCashBackForexについてのご回答も有り難うございました。

やはりMT4には何らかの制限が、しかも多数の制限が施されていると思います。
そもそも、それほどCPU・メモリ使用率が占有されていないにも関わらず一定以上数は起動できませんし...。

ところで私はADSL1.5MBしかない田舎在住でして、やはり最初は通信回線速度は気になりました。
前提として、MT4で扱われる為替データや注文命令だけなら一定以上の高速回線が不可欠だとは思えませんが、
商用EAなどは ほぼ同一タイミングで売買されることが多いため、他人より早く注文伝達できればより有利になりますし、
通信回線速度やまたはWindowsやMT4の内部設定を変えることで為替データをServerに取りに行く間隔や回数も変わってくるのではないか?
これは通信回線速度が成績に影響すること大、調査する必要性大だ。と思ったためです。
ですからVPSはお誂え向きのサービスだと思っていたのですが、よくよく考えてみればリソース使用率割り当てには上限があるし、
他人と同一環境下でCPU・メモリ・通信回線がshareされたことで自分の運用に悪影響が出る、いわゆる「外れserverに割り当てられる」こともあると
実際にVPSで3ケタ近いMT4やEAを稼働させている方から聞いたため、スプレッド調査やデモ口座でのテストならともかく、
実運用をVPS上で行うのは怖いなあと思わされてしまいました。有利だと思ってVPSに委託した結果デメリットばかりとなっては本末転倒ですからね...。
(ただし、地域全体の停電、耐震、安定性を考えると VPSにしかないメリットも多々あって痛し痒しです。ハウジングサービスの方が良いかな?)

それらに加えて以下の理由によって、通信回線の調査と対策よりも、まずは高性能PC購入を優先しました。
・某所の記事「MT4は、EAではなく運用するPC性能によって約定率が変わる。高性能PCだと取引回数が2倍くらい変わる」とあったため、
 そんなバカな。と思いつつも同一設定で平行フォワードテストして、キチンと確認したい。(もし本当ならpoorなVPSは除外しなければならなくなる)
・MT4ではバックテストする機会が多いため、高性能PCではどれくらいバックテストやOptimizationに差異が出るのか、どれくらい効率化できるか確認したい。

・PC1(旧型) OS:XP SP2 CPU:Pentium 4(Prescott) 3.0GHz MEM:1.0GB
 →最大起動数 MT4×12体で6体を稼働、1EAずつ
・PC2(新型) OS:XP SP3 CPU:Core2Quad Q9650(Yorkfield) 3.6Ghz(OC) MEM:8.0GB(32bit OS につき3.2GB以上はGavotteでドライブ化)
 →最大起動数 MT4×21体で6体を稼働、1EAずつ

 どう考えても新型PCの方が有利です。
 CPUはオーバークロック、メモリDDR2-1066+ CL5を3.2GB上限値まで使え、余剰分はHDDドライブ化してページファイルとMT4をインストール。
 しかし、その検証結果は・・・

 後日、別のトピックを建てて書きたいと思います。


ページトップ 
 プロフィール  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年7月14日(火) 12:14 
オフライン
Hランク
Hランク
アバター

登録日時: 2009年6月29日(月) 13:11
記事: 276
ウェブサイト: http://109low.com/
>aririnさん

MT4に限らず他のアプリも同じような現象を見るので、CPU・メモリ使用率以外でのWinの壁かもですね^^;

通信速度とPC性能に関しては、当時検証を行った事があります。
※検証と言えるほどでは無いですが

PC性能の差・・・検証期間2週間。スキャルEA。CPUはCel1.2(確か)とクアッドコアで比べました。取引回数、結果共に殆ど差は見られなかったです。

通信速度の差・・・検証期間2週間。スキャルEA。DSL(Ping450ms程度)、VPS(Ping90ms程度)。目視した感じだとレート取得の差は0.5~1秒程度でしょうか?取引回数、結果共に殆ど差は見られませんでしたが、ポジション位置に差が見られました。双方、有利不利は場合によってという感じでした。

上記からEAが望む正しいポジション取りを行うには通信速度の差を優先させるべきと判断しました。
あまり変わらない気もしますけど^^;

aririnさんがおっしゃるようにVPSは共有スペースなのでハズレを引く可能性がデメリットですね。
占有スペースはかなりコストが掛かるので、大きな運用額でないと難しい・・・

aririnさん環境のトレードと私のVPS環境でのトレードで、良かったら一緒に検証してみますか?
今週末に同時でセットして結果を平行して見ていければ面白さが倍増しそうですね^^
Clab_EURGBPでFXCM BTでの検証が面白そうです。


ページトップ 
 プロフィール WWW  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2009年10月01日(木) 23:21 
オフライン
Hランク
Hランク

登録日時: 2009年7月04日(土) 02:13
記事: 46
NOBと申します。
本スレ大変参考にさせていただきまして、MT4をたくさん起動させ、かつ高速に動作させる方法をいろいろ試してきましたことを以下レポートします。
高速回線、高速マシン、大容量メモリはもちろんあるに越したことはないですが、ある程度のマシン(WindowsXP)で少しでも効果を上げる方法です。

①メモリディスクの使用
2GB程度メモリをもっているマシンなら、一部を高速なメモリディスク化して中にMT4を入れて起動させると高速かと思います。
メモリディスク化させるアプリとしてメモリディスク内容を電源を切ったときバックアップでき、日本語版もある
VSuite Ramdisk(free Edition)が良いかと思います。
以下で詳しく紹介されています。
http://www.gigafree.net/utility/virtual ... mdisk.html

②レジストリ変更
レジストリ変更ににより、メモリの確保領域を倍にする方法があります。
MYSTさんという方が詳しく以下ブログで紹介してくれています。
http://mystfd.seesaa.net/article/128178508.html
※レジストリをいじると、OSを破壊してしまう可能性もあるため、十分に気をつけ行ってください。
(私はうまく動いており、効果絶大です。20個以上のMT4がスムーズに動作していると思われます)

③チャートを表示しない。
自動売買をEAまかせにできるなら、チャートは最小化してメモリを節約する。
数値的な確認はしてませんが、結構効果があるように感じています。

④XP高速化
OSの視覚効果など、軽くできる処理はなんでも行いましょう。
以下を参考に行いました。
http://speedup-xp.com/

以上のような工夫で、
1マシン20程度のMT4を使用してます。


ページトップ 
 プロフィール  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2010年4月25日(日) 11:40 
オフライン
Hランク
Hランク

登録日時: 2009年11月21日(土) 12:09
記事: 41
半年以上前のトピックですので皆さん各自結論がでているかもしれませんが、なにかの参考になればと思い書いておきます

MT4 同時起動数について
起動数の限界は物理メモリ消費量のほかに、デスクトップヒープの消費量が関係してきます。
ウィンドウの表示などのためにOSがメモリ上に特別に確保しておく部分で、Windows95,98,Me ではシステムリソースと呼ばれてたアレです。昔は「システムリソースが不足しています」というメッセージに泣かされた方も多いのではないでしょうか。XP になって不足することはめったになくなったようですが、さすがにMT4 を何個も起動した場合は足りなくなってしまうようですね。
109LOW さんのおっしゃる「メモリ以外の部分で何かしら制約」は、おそらくこれかと思われます。

実際にどのくらい消費するのか大雑把ですが計測してみました。
当方の Windows XP 上で試した結果です。

デスクトップヒープ消費量
MT4 ひとつにつき(表示させてるチャート数にもよりますが)約 120KB ~150KB 消費します。
Windows XP のデスクトップヒープはデフォルトで 3MB しか確保されていないため、MT4 は多くても 20 個程度までしか起動できないこととなり、たいていは物理メモリよりもこっちの限界が先にきます。
上記 NOB さんの書き込みの2.の方法でデスクトップヒープ領域を大きくしておくことをお勧めします。なお、Windows Vista SP1 以降および Windows7 ではデフォルトで12MB確保されているようですので、ほとんど気にしなくていいかと思われます。

物理メモリ消費量
チャートの表示数、表示中のチャートのデータ量によって大きく上下します。
目安としてチャートを表示していない状態で約 15MB 弱、さらに1ヶ月分の1分足チャート1枚表示で +3MB 弱といったところです。
EA を動かす時間軸と蓄積されたデータ量にもよりますが、私はMT4 ひとつあたり50MB 程度の余裕があればしばらくは大丈夫と考えて動かしてます。

環境によって違う部分もあるかと思いますが、参考までにどうぞ。


ページトップ 
 プロフィール  
 
 記事の件名: Re: MT4の通信接続(コネクション)確立について
 投稿記事 Posted: 2011年1月20日(木) 16:55 
オフライン
Hランク
Hランク

登録日時: 2010年10月07日(木) 18:37
記事: 36
お住まい: 東京都
ここ最近、研究員の認定を頂きました「rei」と申します。

だいぶ以前の記事ですが、非常に興味深い内容であり、また、自分もMT4にはEAを何個まで入れられるのか?入れたらいいのか?という事を考えておりましたので、皆様のご意見は非常に有難く参考になりました。

素通りする事が出来なかったので、まずはお礼までにて失礼致します。


ページトップ 
 プロフィール  
 
期間内表示:  ソート  
 
新しいトピックを投稿する トピックへ返信する  [ 10 件の記事 ] 

掲示板トップ » Engineer


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[8人]

 
 

 
トピック投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  

Protected by Anti-Spam ACP
cron
Japanese translation principally by ocean