私のEAではダブルエントリーを行います - ページ 5 1234567891011 新しいコメント Dua Yong Rew 2013.12.24 03:05 #41 Klammeraffe:each tick "に関する行は、それがもう起こらない理由かもしれません。この関数は、新しいバーが表示されたときにのみ実行されます。ですから、おそらく、バーの最初のティックだけが取引を実行することができます。最初のバーの後、新しいバーが現れるまで、コードは「戻り」を得ます。多分これで解決しました。私はこのコードの部分は、記事からだと思います。 これは別の回避策ですが、ブローカーや他の場所からのエラーリターンがある場合、何度もチェック するループを維持しない限り、あなたのシグナルはもう有効ではありません。 Alain Verleyen 2013.12.24 03:09 #42 doshur:doshurさんが最初に投稿したコードで、取引が開始されていないのにログに「Position opened in...」と表示される理由を説明することができます。これは、PositionOpen() が true を返しても、取引が行われたことにはならないからです。ドキュメントを参照して ください。しかし、なぜ「ダブル」トレードが行われたのかを説明することはできません。を修正してください。二重に「Position opened in...」があり、2 つの トレードが開かれています。 勿論です。なぜ彼が見ることができたのか...」という意味です。ここでのポイントは、あなたのコードには、この2トレードを得た理由を説明できるものが何もない、ということです。 Dua Yong Rew 2013.12.24 04:02 #43 angevoyageur: もちろんです。私が言いたいのは「なぜ彼は見ることができたのか...」ということです。ここで重要なのは、あなたのコードには、この2つのトレードを得た理由を説明できるものが何もない、ということです。 分かった理解するんだ Snelle Moda 2013.12.24 11:26 #44 angevoyageur: この問題の背後にある理由を見つけることは非常に重要だと思います。もちろん、何が起こっているのかを完全に理解するまでの回避策(スリープ?そこで、状況を再開しようと思います。* CTradeクラスのPositionOpenメソッドを使用すると、少なくとも3人のユーザーが1つの代わりに同じ方向の2つの取引を取得し、予想されるものに比べて2倍のボリュームでポジションを取得する結果となりました。私は、新規ポジションのオープンには「古い方法」を、ストップロスの変更には「CTradeクラス」の両方の方法を使用しています。* この問題は、同じブローカーで、Depth of Marketが有効になっているシンボルで発生するようです(関係者はこれを確認できますか)。ブローカーXのサーバーでは、Depth of Marketは有効になっています。 * この問題は同期注文で発生し、非同期注文は使用されていません(確認お願いします)。はい、非同期注文は使用していません。 * この問題はランダムに発生します。はい、ただし、市場が混雑している時間帯(マクロ経済 イベント)のみです。 Snelle Moda 2013.12.24 11:49 #45 私の意見では、この問題は簡単に解決できます。PositionSelect(Symbol())」関数を 使い、端末がその関数のデータを更新した場合、EAは常に応答/回答を待って、コードの実行を再開する必要があります。EAは、"OrderSend(mrequest,mresult) "関数を使用した場合、常に応答/回答を待つ必要があり、ターミナルはコードの実行を再開する前に、その関数のデータを更新しているのです。また、関数のデータが端末にコピーされ、これにも時間がかかるため、端末自体についても触れています。このようにすれば、現在のポジションサイズは常に正しく計算されるので、二重注文はもう 起こりません。どうでしょうか? Alain Verleyen 2013.12.24 16:55 #46 snelle_moda:私の意見では、この問題は簡単に解決できます。PositionSelect(Symbol())」関数を使い、端末がその関数のデータを更新した場合、EAは常に応答/回答を待って、コードの実行を再開する必要があります。EAは、"OrderSend(mrequest,mresult) "関数を使用し、ターミナルが関数のデータを更新した場合、常に応答/答えを待って、コードの実行を再開することができます。また、関数のデータが端末にコピーされるため、端末自体にも時間がかかると述べました。こうすれば、現在のポジションサイズは常に正しく計算されるので、二重注文はもう 起こりません。どうでしょうか?"常に応答を待つ... "の意味がよくわかりません。? とにかく、ServiceDeskにリクエストを記入して、アドバイスを求めました。いずれわかると思います。 Snelle Moda 2013.12.24 17:11 #47 angevoyageur:"いつも返事を待っている "という意味がよくわからないのですが......。?とにかく、ServiceDeskにアドバイスをもらうためにリクエストを出しました。見てみることにします。"常に応答を待つ "とはどういう意味かわからない......??"EAはPositionSelect(Symbol())関数が ポジションに関するデータをプログラム環境にコピーし終えるまで待つ/停止する必要があります。強制的にsleep()させる関数と捉えて ください。 Alain Verleyen 2013.12.24 17:17 #48 snelle_moda:"いつも返事を待っている... "という意味がよくわからない。?"EAは、PositionSelect(Symbol())関数がポジションに関するデータをプログラム環境にコピーし終えるまで待機/停止する必要があります。強制的なsleep()関数 と捉えてください。 OK了解しました。しかし、 そのような解決策には納得がいきません。何か理解できないことがあるのか、どこかにバグが あるのか、どちらかでしょう。 Dua Yong Rew 2013.12.25 03:30 #49 解決策があることを祈るばかりです。とにかく、みんなにメリークリスマス。 Dua Yong Rew 2013.12.27 15:52 #50 サービスデスクからの最新情報は? 1234567891011 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
each tick "に関する行は、それがもう起こらない理由かもしれません。
この関数は、新しいバーが表示されたときにのみ実行されます。ですから、おそらく、バーの最初のティックだけが取引を実行することができます。最初のバーの後、新しいバーが現れるまで、コードは「戻り」を得ます。多分これで解決しました。
私はこのコードの部分は、記事からだと思います。
もちろんです。私が言いたいのは「なぜ彼は見ることができたのか...」ということです。ここで重要なのは、あなたのコードには、この2つのトレードを得た理由を説明できるものが何もない、ということです。
この問題の背後にある理由を見つけることは非常に重要だと思います。もちろん、何が起こっているのかを完全に理解するまでの回避策(スリープ?そこで、状況を再開しようと思います。
* CTradeクラスのPositionOpenメソッドを使用すると、少なくとも3人のユーザーが1つの代わりに同じ方向の2つの取引を取得し、予想されるものに比べて2倍のボリュームでポジションを取得する結果となりました。
私は、新規ポジションのオープンには「古い方法」を、ストップロスの変更には「CTradeクラス」の両方の方法を使用しています。
* この問題は、同じブローカーで、Depth of Marketが有効になっているシンボルで発生するようです(関係者はこれを確認できますか)。
ブローカーXのサーバーでは、Depth of Marketは有効になっています。
* この問題は同期注文で発生し、非同期注文は使用されていません(確認お願いします)。
はい、非同期注文は使用していません。
* この問題はランダムに発生します。
はい、ただし、市場が混雑している時間帯(マクロ経済 イベント)のみです。
私の意見では、この問題は簡単に解決できます。
PositionSelect(Symbol())」関数を 使い、端末がその関数のデータを更新した場合、EAは常に応答/回答を待って、コードの実行を再開する必要があります。
EAは、"OrderSend(mrequest,mresult) "関数を使用した場合、常に応答/回答を待つ必要があり、ターミナルはコードの実行を再開する前に、その関数のデータを更新しているのです。
また、関数のデータが端末にコピーされ、これにも時間がかかるため、端末自体についても触れています。
このようにすれば、現在のポジションサイズは常に正しく計算されるので、二重注文はもう 起こりません。
どうでしょうか?
私の意見では、この問題は簡単に解決できます。
PositionSelect(Symbol())」関数を使い、端末がその関数のデータを更新した場合、EAは常に応答/回答を待って、コードの実行を再開する必要があります。
EAは、"OrderSend(mrequest,mresult) "関数を使用し、ターミナルが関数のデータを更新した場合、常に応答/答えを待って、コードの実行を再開することができます。
また、関数のデータが端末にコピーされるため、端末自体にも時間がかかると述べました。
こうすれば、現在のポジションサイズは常に正しく計算されるので、二重注文はもう 起こりません。
どうでしょうか?
"常に応答を待つ... "の意味がよくわかりません。?
とにかく、ServiceDeskにリクエストを記入して、アドバイスを求めました。いずれわかると思います。
"いつも返事を待っている "という意味がよくわからないのですが......。?
とにかく、ServiceDeskにアドバイスをもらうためにリクエストを出しました。見てみることにします。
"常に応答を待つ "とはどういう意味かわからない......??"
EAはPositionSelect(Symbol())関数が ポジションに関するデータをプログラム環境にコピーし終えるまで待つ/停止する必要があります。
強制的にsleep()させる関数と捉えて ください。
"いつも返事を待っている... "という意味がよくわからない。?"
EAは、PositionSelect(Symbol())関数がポジションに関するデータをプログラム環境にコピーし終えるまで待機/停止する必要があります。
強制的なsleep()関数 と捉えてください。