無効なリクエスト - 始めたばかりで理解できない... - ページ 8 12345678 新しいコメント --- 2012.11.19 14:52 #71 papaklass:同じように、関数だけで実装しています。なるほど、MKさんのコードと似ていますね。OrderCheckと OrderSendの 間に、ユーザーによるエラー処理の層があるのですね。 Renat Fatkhullin 2012.11.19 15:32 #72 papaklass:私はこのように、関数だけで実装しています。OrderCheck は暗黙の了解で、OrderSend の内部で必ずチェックされる。そのため、注文が正しく入力されなかった場合は、サーバーに送り返すことなく、すぐにレスポンスが返されます。 Renat Fatkhullin 2012.11.19 18:15 #73 papaklass:ハンドブックに書いてあることを見てください。最初の選択:貿易 取引のための機能であり、小切手についての言及がないことがわかります。まあ、チェックがあると言えばそうなんですけどね。厳しいチェックを受けずにターミナルを離れることはありません。2つ目のハイライト:サーバー上でチェックが行われていることがわかります。開発者はOrderCheck()を使って、サーバーに送信する前にリクエストをチェックすることを推奨しています。ここでも、OrderSend()が何らかの検証を行うという記述はない。 特にトレーダーには、注文が正しく入力されたかどうかを事前に確認し、適切な対処をする機会を設けることをお勧めします。 希望する人は-事前チェックができる。そのような方は、私たちがチェックし、似たような答えを返します。リクエスト送信前のチェックについて言及しているのは、「構造体の基本チェック(ポインタチェック)に成功した場合・・・」のみです。しかし、ポインタのチェックと要求構造フィールドの値のエラーチェックは同じではありません。そして、開発者がOrderCheck()関数の使用を推奨しているのは、OrderSend()がサーバーにリクエストを送る前に本当のエラーチェックを行っていないことを間接的に証明しています。そうでなければ、なぜ "バーター "にしなければならないのか。OrderSend()が最初にチェックし、同じチェックをOrderCheck()で再び行わなければならないのか。つまり、このリファレンスから、チェックはサーバーだけで行われることが明確にわかるのです。サーバーへのリクエストの誤送信や過剰なフローを見逃すことはない。基本的な論理で十分理解できる。そして、ドキュメントを充実させる。 削除済み 2012.11.24 09:13 #74 sergeev:ありません。 すべてのエラーはビジネスロジックで処理されます。持っています。ビジネスロジックはビジネスロジックに関連するイベント(例:注文の失敗)を処理するが、それ以外(例:サーバーレスポンスの遅延)は、普遍的なテンプレートであり、これを基にあらゆる専門家が実装することが可能である。しかし、MT5はリターンコードの処理+非同期という点で何倍も複雑です。それこそ、以前から同様に書いているように、このテーマに関する情報はゼロです。そして、何年も前からMKは、あらゆる方法で、その提供から自分たちを切り離そうとしている。これは私が書いたことですが、販売店にとっては、漏れにつながるポイントがある製品、つまりMQにとってはそれが売上を伸ばす要因になるのです。残念なことに、私たちは同志ではなく、競争相手(私たちとMQ)がいる市場にいるのです。ラッパーに不可能を求めるのか。標準ライブラリはビジネスロジックではありません。端末の機能を「覆う」ラッパーなのです。お菓子の詰め物の上にかぶせる包み紙のこと。 そうすると、このような仕組みにする意味はほとんどありません。しかし、保証人となるのはあなたなので、包装紙は何も保証できません。あなたのビジネスロジック:)印刷機能がディスクの空き容量を保証できないのと同じです。 また、エラーのログを取ることもできます。エラー処理には他の関数を使用する必要があり、それらはケースバイケースです。正しいラッパーでもすべてを保証することはできませんが、関連する機能に関連する多くのことを保証することができます。-Alexey-、 具体的な欠点について話しましょう。あなたは、直したい具体的な 欠点を声に出しています。すでに何度も具体的に書かれています。MQが既製品を提供できないのなら、せめてエラー処理とリターンコードのマニュアルを作らせてほしい。あ らゆる方法でアンロックされています。4のドキュメントでは、これは部分的に存在していた(例えば、このような場合は30秒待つ)、部分的にユーザーは経験から文書化されていない状況の取り扱いを特定したものである。5は全くありません。そして、それがある以上、誰も使うことはない。単純に作られた取引インフラが原理的にそれを許さないからMQがそう対応するのだとしたら、なんというか、MT5プロジェクト全体の失敗というか、他にもすごい数の浅瀬があることを考えると、完全に失敗なんですよね。必要であれば、それぞれのリターンコードを調べて、考えられる主な状況を確認することができます。このような経験豊富なMQL5 Expert Advisorがあれば、喜んでやります。 時間と必要性を待ちたいと思います。今でも4があるのはありがたいことです。 --- 2012.11.24 09:53 #75 -Alexey-:既成のソリューション、少なくともエラー処理とリターンコードの手引きどのコードが処理の問題を引き起こすのか? コード 識別子 商品説明 10004 トレード_リコード_リクオート レコート 10006 トレード_リコード_リジェクト リクエスト拒否 10007 トレード_リコード_キャンセル トレーダーによるリクエストの取り消し 10008 トレード_レトコード_プレイス ご注文 10009 トレード_リコード_完了 注文実行 10010 トレード_リコード_ドーン_パーシャル 要求の一部実行 10011 トレード_リコードエラー 要求処理エラー 10012 トレード_レトコードのタイムアウト 時間切れでキャンセルされたリクエスト 10013 トレード_リコード_インバリッド 不正確なリクエスト 10014 trade_retcode_invalid_volume リクエストのボリュームが正しくない 10015 trade_retcode_invalid_price リクエストの価格が間違っている 10016 トレード_レトコード_無効なストップ数 リクエストに不正確なストップが含まれている 10017 trade_retcode_trade_disabled 貿易禁止 10018 トレード_レトコード_マーケット_クローズド 市場閉鎖 10019 トレード_レトコード_ノー_マネー 要求の実行に必要な資金が不足している 10020 取引コード価格変更 価格変更 10021 トレード・レコード・プライスオフ 要求の処理に見積もりは不要 10022 trade_retcode_invalid_expiration (トレード・レトコードの無効期限) リクエストに含まれる無効な有効期限 10023 取引コード順序の変更 注文状況の変更 10024 トレード・レコード・トゥー・マニー・リクエスト 頻繁すぎる要求 10025 トレード_レトコード_ノーチェンジ 要求事項に変更はありません。 10026 trade_retcode_server_disables_at 自動売買がサーバーに拒否される 10027 trade_retcode_client_disables_at クライアント端末による自動売買の禁止 10028 トレード_レトコード_ロック リクエストの処理がブロックされている 10029 トレード_レトコード_フローズン 順序または位置の凍結 10030 trade_retcode_invalid_fill 未対応のバランスオーダー タイプが表示される 10031 トレード_リコード_コネクション トレードサーバーに接続できない 10032 トレード_レトコード_オンリー_リアル リアルアカウントのみ操作可能 10033 トレードコードリミットオーダー 保留注文数の到達制限 10034 トレードレコードリミットボリュームに到達 このシンボルの注文およびポジションの数量が上限に達しました。 更新日: 2012.11.14 Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте www.mql5.com Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5 Invalid request - just MQL5 Cookbook:カスタム情報パネル上のポジションプロパティ モスクワ証券取引所(MOEX)の為のトレードロボット作成は何から始めたら良いか 削除済み 2012.11.24 10:08 #76 例えば10004。どこにどうすればいいのか書いてあるのか?そして、少なくとも4倍速のドキュメントには何かがあった。Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы. A100 2012.11.24 10:28 #77 sergeev: どのコードで処理に問題が発生するか? 10006 (どのような理由で拒否されたのか。他のコードに記載されていない理由は何か?) 10011, 10013, 10028 削除済み 2012.12.25 06:14 #78 A100: 10006 (どのような理由で拒否されたのか。他のコードに記載されていない理由は何か?) 10011, 10013, 10028 質問を支持します。MQ、あなたへの強いお願いです。この4つのコードについて、できるだけ詳しくコメントしてください。 combat.trader 2016.02.17 20:59 #79 同僚たち、すでに真実を探すのにうんざりしている。このトピックは、私が必要としているものと似ているので、ここに助けを求めて書いているのです即時執行 で注文を出し、ぶら下がっている間は1ティックごとに価格をチェックし、可能であればトレールしています。 しかし、なぜかいつもエラー10013が出ます。可能な限りの掲示板に目を通し、初期オーダーのセリフはほぼ全て追加しました(説明ではシンボルとアクションとslとtpのみで十分とありますが)。何も動かない!?以下はそのコードです。// проверяем условие на открытую сделку if (f_IsDealOpened()>0) { // здесь надо написать условия для коррекции ордеров MqlTradeRequest chrequest={0}; if (1)//(is_Str2) { PositionSelect(NULL); if(PositionGetInteger(POSITION_TYPE)==0) { chrequest.symbol=PositionGetSymbol(0); chrequest.order=PositionGetInteger(POSITION_IDENTIFIER); chrequest.volume=PositionGetDouble(POSITION_VOLUME); chrequest.action=TRADE_ACTION_SLTP; chrequest.sl = latest_price.bid - TrailingStop; chrequest.tp = PositionGetDouble(POSITION_TP); } else { chrequest.symbol=PositionGetSymbol(0); chrequest.order=PositionGetInteger(POSITION_IDENTIFIER); chrequest.volume=PositionGetDouble(POSITION_VOLUME); chrequest.action=TRADE_ACTION_SLTP; chrequest.sl = latest_price.ask + TrailingStop; chrequest.tp = PositionGetDouble(POSITION_TP); Alert(PositionSelect(NULL)); } } MqlTradeResult chresult; if (OrderSend(chrequest,chresult)==0) { Alert("Ошибка расчета функции OrderSend!"); return; } // анализируем код возврата торгового сервера if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен { Alert("Ордер по изменению SL успешно помещен, тикет ордера #: ",mresult.order,"!!"); open_order_ticket = mresult.order; open_order_price = mresult.price; return; } else { Alert("Запрос на измнение ордера не выполнен - код ошибки: ",GetLastError()); return; } return; } 12345678 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
同じように、関数だけで実装しています。
なるほど、MKさんのコードと似ていますね。OrderCheckと OrderSendの 間に、ユーザーによるエラー処理の層があるのですね。
私はこのように、関数だけで実装しています。
OrderCheck は暗黙の了解で、OrderSend の内部で必ずチェックされる。
そのため、注文が正しく入力されなかった場合は、サーバーに送り返すことなく、すぐにレスポンスが返されます。
ハンドブックに書いてあることを見てください。
最初の選択:貿易 取引のための機能であり、小切手についての言及がないことがわかります。
まあ、チェックがあると言えばそうなんですけどね。
厳しいチェックを受けずにターミナルを離れることはありません。
2つ目のハイライト:サーバー上でチェックが行われていることがわかります。開発者はOrderCheck()を使って、サーバーに送信する前にリクエストをチェックすることを推奨しています。ここでも、OrderSend()が何らかの検証を行うという記述はない。
特にトレーダーには、注文が正しく入力されたかどうかを事前に確認し、適切な対処をする機会を設けることをお勧めします。
希望する人は-事前チェックができる。そのような方は、私たちがチェックし、似たような答えを返します。
リクエスト送信前のチェックについて言及しているのは、「構造体の基本チェック(ポインタチェック)に成功した場合・・・」のみです。しかし、ポインタのチェックと要求構造フィールドの値のエラーチェックは同じではありません。そして、開発者がOrderCheck()関数の使用を推奨しているのは、OrderSend()がサーバーにリクエストを送る前に本当のエラーチェックを行っていないことを間接的に証明しています。そうでなければ、なぜ "バーター "にしなければならないのか。OrderSend()が最初にチェックし、同じチェックをOrderCheck()で再び行わなければならないのか。
つまり、このリファレンスから、チェックはサーバーだけで行われることが明確にわかるのです。
サーバーへのリクエストの誤送信や過剰なフローを見逃すことはない。
基本的な論理で十分理解できる。そして、ドキュメントを充実させる。
ありません。 すべてのエラーはビジネスロジックで処理されます。
持っています。ビジネスロジックはビジネスロジックに関連するイベント(例:注文の失敗)を処理するが、それ以外(例:サーバーレスポンスの遅延)は、普遍的なテンプレートであり、これを基にあらゆる専門家が実装することが可能である。
しかし、MT5はリターンコードの処理+非同期という点で何倍も複雑です。
それこそ、以前から同様に書いているように、このテーマに関する情報はゼロです。そして、何年も前からMKは、あらゆる方法で、その提供から自分たちを切り離そうとしている。これは私が書いたことですが、販売店にとっては、漏れにつながるポイントがある製品、つまりMQにとってはそれが売上を伸ばす要因になるのです。残念なことに、私たちは同志ではなく、競争相手(私たちとMQ)がいる市場にいるのです。
ラッパーに不可能を求めるのか。標準ライブラリはビジネスロジックではありません。端末の機能を「覆う」ラッパーなのです。お菓子の詰め物の上にかぶせる包み紙のこと。
そうすると、このような仕組みにする意味はほとんどありません。
印刷機能がディスクの空き容量を保証できないのと同じです。 また、エラーのログを取ることもできます。エラー処理には他の関数を使用する必要があり、それらはケースバイケースです。
正しいラッパーでもすべてを保証することはできませんが、関連する機能に関連する多くのことを保証することができます。
すでに何度も具体的に書かれています。MQが既製品を提供できないのなら、せめてエラー処理とリターンコードのマニュアルを作らせてほしい。あ らゆる方法でアンロックされています。4のドキュメントでは、これは部分的に存在していた(例えば、このような場合は30秒待つ)、部分的にユーザーは経験から文書化されていない状況の取り扱いを特定したものである。5は全くありません。そして、それがある以上、誰も使うことはない。
単純に作られた取引インフラが原理的にそれを許さないからMQがそう対応するのだとしたら、なんというか、MT5プロジェクト全体の失敗というか、他にもすごい数の浅瀬があることを考えると、完全に失敗なんですよね。
必要であれば、それぞれのリターンコードを調べて、考えられる主な状況を確認することができます。
このような経験豊富なMQL5 Expert Advisorがあれば、喜んでやります。 時間と必要性を待ちたいと思います。今でも4があるのはありがたいことです。
-Alexey-:
既成のソリューション、少なくともエラー処理とリターンコードの手引き
どのコードが処理の問題を引き起こすのか?
コード
識別子
商品説明
10004
トレード_リコード_リクオート
レコート
10006
トレード_リコード_リジェクト
リクエスト拒否
10007
トレード_リコード_キャンセル
トレーダーによるリクエストの取り消し
10008
トレード_レトコード_プレイス
ご注文
10009
トレード_リコード_完了
注文実行
10010
トレード_リコード_ドーン_パーシャル
要求の一部実行
10011
トレード_リコードエラー
要求処理エラー
10012
トレード_レトコードのタイムアウト
時間切れでキャンセルされたリクエスト
10013
トレード_リコード_インバリッド
不正確なリクエスト
10014
trade_retcode_invalid_volume
リクエストのボリュームが正しくない
10015
trade_retcode_invalid_price
リクエストの価格が間違っている
10016
トレード_レトコード_無効なストップ数
リクエストに不正確なストップが含まれている
10017
trade_retcode_trade_disabled
貿易禁止
10018
トレード_レトコード_マーケット_クローズド
市場閉鎖
10019
トレード_レトコード_ノー_マネー
要求の実行に必要な資金が不足している
10020
取引コード価格変更
価格変更
10021
トレード・レコード・プライスオフ
要求の処理に見積もりは不要
10022
trade_retcode_invalid_expiration (トレード・レトコードの無効期限)
リクエストに含まれる無効な有効期限
10023
取引コード順序の変更
注文状況の変更
10024
トレード・レコード・トゥー・マニー・リクエスト
頻繁すぎる要求
10025
トレード_レトコード_ノーチェンジ
要求事項に変更はありません。
10026
trade_retcode_server_disables_at
自動売買がサーバーに拒否される
10027
trade_retcode_client_disables_at
クライアント端末による自動売買の禁止
10028
トレード_レトコード_ロック
リクエストの処理がブロックされている
10029
トレード_レトコード_フローズン
順序または位置の凍結
10030
trade_retcode_invalid_fill
未対応のバランスオーダー タイプが表示される
10031
トレード_リコード_コネクション
トレードサーバーに接続できない
10032
トレード_レトコード_オンリー_リアル
リアルアカウントのみ操作可能
10033
トレードコードリミットオーダー
保留注文数の到達制限
10034
トレードレコードリミットボリュームに到達
このシンボルの注文およびポジションの数量が上限に達しました。
例えば10004。どこにどうすればいいのか書いてあるのか?そして、少なくとも4倍速のドキュメントには何かがあった。
Можно без задержки обновить данные при помощи функции RefreshRates и повторить попытку. Если ошибка не исчезает, необходимо прекратить все попытки торговых операций и изменить логику программы.
どのコードで処理に問題が発生するか?
10006 (どのような理由で拒否されたのか。他のコードに記載されていない理由は何か?)
10011, 10013, 10028
10006 (どのような理由で拒否されたのか。他のコードに記載されていない理由は何か?)
10011, 10013, 10028
同僚たち、すでに真実を探すのにうんざりしている。このトピックは、私が必要としているものと似ているので、ここに助けを求めて書いているのです
即時執行 で注文を出し、ぶら下がっている間は1ティックごとに価格をチェックし、可能であればトレールしています。 しかし、なぜかいつもエラー10013が出ます。可能な限りの掲示板に目を通し、初期オーダーのセリフはほぼ全て追加しました(説明ではシンボルとアクションとslとtpのみで十分とありますが)。何も動かない!?以下はそのコードです。