MT5でOrderSendを正しく動作させる方法 - ページ 3 12345678910...13 新しいコメント 削除済み 2016.10.11 04:16 #21 prostotrader: 活用してください。 なぜサーバーに空のリクエストを送信しているのですか?意味があるようでない。 また、TRADE_RETCODE_TIMEOUTや TRADE_RETCODE_FROZENが出た場合、「//see cause result.retcode」でどうするのでしょうか? prostotrader 2016.10.11 12:34 #22 RickD: なぜサーバーに空のリクエストを送信しているのですか?意味があるようでない。 また、例えばTRADE_RETCODE_TIMEOUTやTRADE_RETCODE_FROZENが出た場合、「//see result.retcode」でどうするのでしょうか? 首を吊るぞ :) Denis Sartakov 2016.10.12 22:19 #23 Andrey Khatimlianskii:両手で支えています。まるでMQが、オーダーを送り、レスポンスを受け取るというレディ機能に責任を持ちたくないかのようだ。私の選択肢は松葉杖もありです。同じようなものを作って(すべての場面ではなく、せめて一番シンプルなものを!)、SBに出してみてはいかがでしょうか?を待たなければならないのであれば、OrderSend(...)の「迅速な実行」に何の意味があるのでしょうか?環境の更新、この場合は履歴の更新のため...と、待機のためのさまざまなアルゴリズムを考え出す...。歴史が更新されるまでは、先に進めない...つまり、このスピードは意味がない...。 削除済み 2016.10.13 00:26 #24 Denis Sartakov:もし、EAで、OrderSend(...)の "迅速な "実行を待つ必要があるならば、本当に意味があるのでしょうか?環境の更新、この場合は履歴の更新のため...と、待機のためのさまざまなアルゴリズムを考え出す...。歴史が更新されるまでは、先に進めない...つまり、このスピードは意味がない...。 おそらく、端末がOrderSendとOrderSendAsyncを並行して実行できるため、OrderSend後に強制的に履歴を同期させるとOrderSendAsync、OnTrade、OnTradeTransactionに 何らかの影響を与え、遅くなるためこのように実装されているのでしょう。 削除済み 2016.10.13 04:26 #25 Andrey Khatimlianskii: 言語組み込みの関数ではなく、標準ライブラリの 話です。 具体的には、OrderSendが内部で取引履歴の更新を待つことができるのに、そうしないという、組み込みの言語機能の話です。:) 松葉杖があるというけれど、そんなに頼りになるものでもないでしょう。信頼できる良い松葉杖の例を教えてください。 もしかしたら、松葉杖を全く使わなくてもいけるかもしれないと言っているんです。もし開発者がOrderSendの動作を変更することを意図したのであれば。MT4と同じように作ってください。 あるいは-、別の選択肢もある。OrderSendMT4Style 関数を追加します。:) fxsaber 2016.10.13 05:10 #26 非常にシンプルなOrderSendのオーバーロードが独立して書かれています。OnTradeがレスポンスを返すまで、それ以降のOrderSendはすべてfalseを返します。応答があり次第、-強制falseは解除されます。これこそ、SBに加えるべきソリューションです。そして、私たち自身が使わなければならないのです。SBでは、同じ原理でboolCTrade::IsHistoryLoad( const string Symb = NULL ) を追加する。 そして松葉杖もなし!どちらの関数も、自分で簡単に書くことができます。完全な機能を実現したい場合(SB用ではない)、OnTradeでOnTickとOnTimerを対応する同期の到来時に独立して呼び出します。 Alexey Viktorov 2016.10.13 06:40 #27 なんという姥捨て山が書かれているのだろう...。void OnTradeTransaction()関数の動作の検討/*********************TradeTransaction function*********************/ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(!PositionSelectByTicket(trans.position)) { //Print("********* закрылась позиция ", trans.position); closedPosition(trans); } if(PositionSelectByTicket(trans.position)) { //Print("********* отккрылась позиция ", ", ", EnumToString(trans.deal_type), ", ", trans.position); openedPosition(trans); } } }/*******************************************************************/ また、オープンポジションや オーダーのエラーも処理します。 fxsaber 2016.10.13 07:17 #28 Alexey Viktorov:なんという姥捨て山が書かれているのだろう...。void OnTradeTransaction()関数の動作の検討また、オープンポジションや オーダーのエラーも処理します。 主題を斜め読みしたことになります。 Alexey Viktorov 2016.10.13 07:25 #29 fxsaber: トピックを斜め読みしましたね。いいえ、縦方向のみです。各行の最初の文字のみ。 fxsaber 2016.10.13 10:04 #30 Andrey Khatimlianskii:この単純なオーバーロードは、同じ楽器に2つのEAを使用した場合、どのように機能するのでしょうか? 残念ながら、端末のグローバル 変数という松葉杖を使うしかない。 12345678910...13 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
活用してください。
また、TRADE_RETCODE_TIMEOUTや TRADE_RETCODE_FROZENが出た場合、「//see cause result.retcode」でどうするのでしょうか?
なぜサーバーに空のリクエストを送信しているのですか?意味があるようでない。
また、例えばTRADE_RETCODE_TIMEOUTやTRADE_RETCODE_FROZENが出た場合、「//see result.retcode」でどうするのでしょうか?
両手で支えています。まるでMQが、オーダーを送り、レスポンスを受け取るというレディ機能に責任を持ちたくないかのようだ。
私の選択肢は松葉杖もありです。
同じようなものを作って(すべての場面ではなく、せめて一番シンプルなものを!)、SBに出してみてはいかがでしょうか?
を待たなければならないのであれば、OrderSend(...)の「迅速な実行」に何の意味があるのでしょうか?
環境の更新、この場合は履歴の更新のため...と、待機のためのさまざまなアルゴリズムを考え出す...。
歴史が更新されるまでは、先に進めない...つまり、このスピードは意味がない...。
もし、EAで、OrderSend(...)の "迅速な "実行を待つ必要があるならば、本当に意味があるのでしょうか?
環境の更新、この場合は履歴の更新のため...と、待機のためのさまざまなアルゴリズムを考え出す...。
歴史が更新されるまでは、先に進めない...つまり、このスピードは意味がない...。
言語組み込みの関数ではなく、標準ライブラリの 話です。
松葉杖があるというけれど、そんなに頼りになるものでもないでしょう。信頼できる良い松葉杖の例を教えてください。
もしかしたら、松葉杖を全く使わなくてもいけるかもしれないと言っているんです。もし開発者がOrderSendの動作を変更することを意図したのであれば。MT4と同じように作ってください。
あるいは-、別の選択肢もある。OrderSendMT4Style 関数を追加します。:)
非常にシンプルなOrderSendのオーバーロードが独立して書かれています。OnTradeがレスポンスを返すまで、それ以降のOrderSendはすべてfalseを返します。応答があり次第、-強制falseは解除されます。
これこそ、SBに加えるべきソリューションです。そして、私たち自身が使わなければならないのです。
SBでは、同じ原理でboolCTrade::IsHistoryLoad( const string Symb = NULL ) を追加する。
そして松葉杖もなし!どちらの関数も、自分で簡単に書くことができます。
完全な機能を実現したい場合(SB用ではない)、OnTradeでOnTickとOnTimerを対応する同期の到来時に独立して呼び出します。
なんという姥捨て山が書かれているのだろう...。void OnTradeTransaction()関数の動作の検討
また、オープンポジションや オーダーのエラーも処理します。
なんという姥捨て山が書かれているのだろう...。void OnTradeTransaction()関数の動作の検討
また、オープンポジションや オーダーのエラーも処理します。
トピックを斜め読みしましたね。
いいえ、縦方向のみです。各行の最初の文字のみ。
この単純なオーバーロードは、同じ楽器に2つのEAを使用した場合、どのように機能するのでしょうか?