フォルツァ執行上の問題点 - ページ 62 1...555657585960616263646566676869...156 新しいコメント Сергей 2015.12.23 09:53 #611 みなさん、こんにちは!少し状況が違います。ブローカーBCS。成行注文は最初は実行されません。市場で購入する注文を送信します。この関数は「発注済み」と注文番号を返しますが、実際には注文は実行されません。そのため、ロボットは多くの試みを行います。買い注文を市場に送信し、成功した応答を受け取りますが、取引はありません。同時に、応答の注文番号は毎回新しいものです。結果として、ポジションは遅かれ早かれオープンしますが、あなたは注文でブローカーを攻撃しなければなりません、それは明らかに間違っています。助けてください、私のロボットがバグだらけなのか、ブローカーが混乱しているのかわかりませんか?ロボットについての苦情はなく、すべての検証機能が期待どおりに実行され、回答がチェックされます。ブローカーは電話をかけたが、「コンサルタント」は肩をすくめた。まるで彼の手で取引が成立した場合、ロボットにエラーが発生したが、ここでは彼らは廃業している。 2015.12 . 23 11 : 02 : 00.053 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 55 ms 2015.12 . 23 11 : 02 : 00.006 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 59.554 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 59.507 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 59.413 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 116 ms 2015.12 . 23 11 : 01 : 59.304 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 59.117 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 59.055 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 58.774 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 54 ms 2015.12 . 23 11 : 01 : 58.711 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 58.680 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 58.633 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 58.259 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 74 ms 2015.12 . 23 11 : 01 : 58.181 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.916 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 57.869 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.775 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 57.729 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.682 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 57.619 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.557 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 57.510 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.385 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 57.323 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.292 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 57.245 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 57.058 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 63 ms 2015.12 . 23 11 : 01 : 56.995 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 56.777 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 56.730 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 56.481 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 56.434 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 56.169 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 56.122 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 56.075 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 56.028 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 55.451 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 55.389 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 55.326 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 55.279 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 55.155 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 55.092 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 55.045 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 54 ms 2015.12 . 23 11 : 01 : 54.983 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 54.983 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 54.921 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 54.843 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 54.796 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 54.655 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 54.609 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 54.546 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 54.484 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 54.453 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 151 ms 2015.12 . 23 11 : 01 : 54.297 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.844 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 53.797 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.751 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 53.688 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.423 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 53.376 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.361 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 60 ms 2015.12 . 23 11 : 01 : 53.298 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.283 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 53.236 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.142 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 53.080 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 53.033 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 52.986 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.877 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 52.830 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.830 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 69 ms 2015.12 . 23 11 : 01 : 52.752 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.643 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 52.596 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.487 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 52.440 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.425 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 52.378 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 52.081 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 55 ms 2015.12 . 23 11 : 01 : 52.019 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 51.988 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 51.941 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 51.879 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 51 ms 2015.12 . 23 11 : 01 : 51.832 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 51.364 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 51.317 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 51.223 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 51.161 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 51.114 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 51.052 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.989 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.943 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.693 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.631 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.584 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.521 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.475 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.412 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.397 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.350 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.225 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 53 ms 2015.12 . 23 11 : 01 : 50.178 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.147 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 50.100 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 50.053 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 49.991 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 49.975 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 52 ms 2015.12 . 23 11 : 01 : 49.913 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 2015.12 . 23 11 : 01 : 49.866 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 placed for execution in 51 ms 2015.12 . 23 11 : 01 : 49.804 Trades 'xxxxxxx' : exchange buy 66.00 Si- 3.16 at market sl: 72487 Mikhail Filimonov 2015.12.23 11:02 #612 Сергей:皆さん、こんにちは。私はちょっと事情が違うんです。私のブローカーはBCSです。成行注文が1回目で約定しない。マーケットで買い注文を出す。この関数は "Order placed "と注文番号を返しますが、実際には注文は実行されません! そうして、ロボットは何度も試行錯誤を繰り返す。マーケットに買い注文を出し、成功の返事が来るが、取引が成立しない。応答中の注文番号は毎回新しいものになります。その結果、遅かれ早かれポジションはオープンするのですが、ブローカーに注文を殺到させなければならず、明らかに間違っています。私のFXロボットが不具合を起こしているのか、ブローカーが誤動作しているのか分かりません。ロボットには何のクレームもなく、チェックルーチンはすべて正常に動作し、応答も確認されている。ブローカーに電話しましたが、「コンサルタント」は手を振って、「手作業で取引が成立した場合は、ロボットが間違っていることになり、自分たちは関係ない」と言いました。セルギー!コードを見てみないと何とも言えませんね。しかし、印刷物から判断すると、きちんと発注のコントロールができていませんね。 Сергей 2015.12.23 11:50 #613 Михаил:セルゲイ!コードを拝見しないと何とも言えません。しかし、プリントアウトから判断すると、オーダー設定を正しく制御できていないようです。Mikhail、これは端末のログです。つまり、注文を受け付け、それが正しいと言い、成功コードと注文番号を返す。つまり、注文を実行キューに入れるが、実行はしない。そして、何度も何度も。でも、わかったような気がするんです。 アルゴリズムによると、許容リスクは、あなたが全体の預金のための取引を開くことができます。取引量=利用可能資金/GO、つまり、預けたお金はほぼ最後の1円まで使われる。(もちろんこれは間違いであり、このようなやり方はしてはいけません)。技術的には、この数量で取引を開始するのに十分な資金があり、注文はターミナルによってチェックされ、MT5カーネルによって受け入れられます(OrderSend関数は、trueと注文番号を返します)。 しかし、その場合、注文は実行キュー(ブローカーまたは取引所とのゲートウェイ)のどこかで拒否され、結果的に実行されないことになります。ここでメタクオーツ側のMT5の欠点が出てきます。問題は、顧客である私がこのことを一切知らされていないことです。ロボットにとってはすべてがうまくいったが、実際には注文はブローカー/ゲートウェイ/取引所によって拒否された(ここでは推測するしかない)。OrderSend 関数は注文を拒否し、TRADE_RETCODE_NO_MONEY エラーコードをロボット に返すべきでしたが、何らかの理由でそうなりませんでした。おそらく、OnTradeTransaction の実行を詳細にトレースする必要があるのでしょう。 Mikhail Filimonov 2015.12.23 11:55 #614 Сергей:マイケル、これは端末のログです。つまり、注文を受け付け、正しく入力されたと言い、成功コードと注文番号を返します。つまり、注文を実行キューに入れますが、実行はしません。そして、何度も何度も。でも、わかったような気がするんです。 アルゴリズムによると、許容されるリスクは、あなたが預金全体のために取引を開くことができます。ディールボリューム=利用可能資金/CS、つまり、デポジットはほぼ最後の1円まで使われる。(もちろんこれは間違いです、そんなことはできません)。技術的には、この数量で取引を開始するのに十分な資金があり、注文はターミナルによってチェックされ、MT5カーネルによって受け入れられます(OrderSend関数は trueと注文番号を返します)。 しかし、その場合、注文は実行キュー(ブローカーまたは取引所とのゲートウェイ)のどこかで拒否され、結果的に実行されないことになります。ここでメタクオーツ側のMT5の欠点が出てきます。問題は、顧客である私がこのことを一切知らされていないことです。ロボットでは成功したが、実際にはブローカー/ゲートウェイ/取引所によって注文が拒否された(ここでは推測することしかできない)。OrderSend関数は注文を拒否し、TRADE_RETCODE_NO_MONEY エラーコードをロボット に返すはずですが、何らかの理由でそうなっていません。もう一度言いますが、注文設定を正しく制御できていません。注文のBILLを受け取ったからと言って、取引所に注文が入ったことにはなりません Сергей 2015.12.23 12:01 #615 Михаил:もう一度言いますが、オーダーの設定をきちんとコントロールできていないのではありませんか?注文のBILLを受け取ったからといって、取引所に注文が入ったことには全くなりません。この問題については、ここにきて知識の差があることがわかったので、納得です。今までこのような動作に遭遇したことはなく、些細なことですがマーケットで送信したことがありますが、いつもすぐに開くかエラーになるかのどちらかでした。 キューでのオーダー実行の 低レベルなニュアンスについては、詳細を説明する必要はありませんでした。そして、ここ... Mikhail Filimonov 2015.12.23 12:11 #616 Сергей:同感です。ここにきて、このテーマについて私は知識不足であることがわかりました。今までこのような動作に遭遇したことはなく、些細なことですがマーケットで送信したことがありますが、いつもすぐに開くかエラーになるかのどちらかでした。 一般に、キューでの注文実行の 低レベルの詳細には触れる必要がなかったのです。そして、ここ...注文を受けた後、OrderRealSelect()関数を使用します。https://www.mql5.com/ru/forum/67298/page2#comment_2089220 ФОРТС: В помощь начинающим www.mql5.com Установка отложенного ордера командой OrderSend(). - Страница 2 - Категория: биржевой трейдинг Mikhail Filimonov 2015.12.23 12:23 #617 だいたいこんな感じです。//+------------------------------------------------------------------+ //| Test_array.mq5 | //| Copyright 2015, Mikalas | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Mikalas" #property link "https://www.mql5.com" #property version "1.00" // #define ERR_ZERO_TICKET -1 // enum ENUM_ORD_REAL_STATE { ORD_NOT_SPECIFIED = 0, //Состояние ордера не определено ORD_NONE_CANCELED = 1, //Ордера нет, отменён пользователем ORD_NONE_PARTIAL_CANCELED = 2, //Ордера нет, исполнился частично (не был залит вторым объёмом) ORD_NONE_PARTIAL = 3, //Ордера нет, исполнился частично ORD_NONE_EXPIRED = 4, //Ордера нет, удалён по сроку ORD_NONE_FILLED = 5, //Ордера нет, исполнился полностью ORD_NONE_REJECTED = 6, //Ордера нет, отклонён брокером(биржей) ORD_BUSY = 7, //Ордер находится в переходном состоянии ORD_EXIST = 8, //Ордер выставлен на биржу, возможны действия над ним ORD_EXIST_PARTIAL = 9 //Ордер выставлен на биржу, частично исполнился, возможны действия над ним }; enum ENUM_ORD_SELECT { SELECT_ERROR = 0, SELECT_FALSE = 1, SELECT_TRUE = 2, SELECT_BUSY = 3 }; // struct ORDER_DATA { int error_code; datetime time_setup; ENUM_ORDER_TYPE type; ENUM_ORDER_STATE state; ENUM_ORD_REAL_STATE real_state; datetime expiration; datetime time_done; long t_set_msc; long t_done_msc; ENUM_ORDER_TYPE_FILLING type_filling; ENUM_ORDER_TYPE_TIME type_time; long magic; long pos_id; double vol_init; double vol_cur; double price_open; double sl; double tp; double price_cur; double price_stlim; string symbol; string comment; }; // // ulong order_ticket; // //+------------------------------------------------------------------+ // Expert Order Real Select function | //+------------------------------------------------------------------+ ENUM_ORD_SELECT OrderRealSelect( const ulong ticket, ORDER_DATA &ord_data, const bool get_data ) { double init_vol = 0; double cur_vol = 0; ZeroMemory( ord_data ); ord_data.real_state = ORD_NOT_SPECIFIED; ord_data.error_code = ERR_SUCCESS; ResetLastError(); //--- if ( ticket > 0 ) { if ( HistoryOrderSelect( ticket ) ) { if ( get_data ) { ord_data.comment = HistoryOrderGetString( ticket, ORDER_COMMENT ); ord_data.expiration = datetime( HistoryOrderGetInteger( ticket, ORDER_TIME_EXPIRATION ) ); ord_data.magic = HistoryOrderGetInteger( ticket, ORDER_MAGIC ); ord_data.pos_id = HistoryOrderGetInteger( ticket, ORDER_POSITION_ID ); ord_data.price_cur = HistoryOrderGetDouble( ticket, ORDER_PRICE_CURRENT ); ord_data.price_open = HistoryOrderGetDouble( ticket, ORDER_PRICE_OPEN ); ord_data.price_stlim = HistoryOrderGetDouble( ticket, ORDER_PRICE_STOPLIMIT ); ord_data.sl = HistoryOrderGetDouble( ticket, ORDER_SL ); ord_data.state = ENUM_ORDER_STATE( HistoryOrderGetInteger( ticket, ORDER_STATE ) ); ord_data.symbol = HistoryOrderGetString( ticket, ORDER_SYMBOL ); ord_data.t_done_msc = datetime( HistoryOrderGetInteger( ticket, ORDER_TIME_DONE_MSC ) ); ord_data.t_set_msc = datetime( HistoryOrderGetInteger( ticket, ORDER_TIME_SETUP_MSC ) ); ord_data.time_done = datetime( HistoryOrderGetInteger( ticket, ORDER_TIME_DONE ) ); ord_data.time_setup = datetime( HistoryOrderGetInteger( ticket, ORDER_TIME_SETUP ) ); ord_data.tp = HistoryOrderGetDouble( ticket, ORDER_TP ); ord_data.type = ENUM_ORDER_TYPE( HistoryOrderGetInteger( ticket, ORDER_TYPE ) ); ord_data.type_filling = ENUM_ORDER_TYPE_FILLING( HistoryOrderGetInteger( ticket, ORDER_TYPE_FILLING ) ); ord_data.type_time = ENUM_ORDER_TYPE_TIME( HistoryOrderGetInteger( ticket, ORDER_TYPE_TIME ) ); ord_data.vol_cur = HistoryOrderGetDouble( ticket, ORDER_VOLUME_CURRENT ); ord_data.vol_init = HistoryOrderGetDouble( ticket, ORDER_VOLUME_INITIAL ); } else { ord_data.state = ENUM_ORDER_STATE( HistoryOrderGetInteger( ticket, ORDER_STATE ) ); cur_vol = HistoryOrderGetDouble( ticket, ORDER_VOLUME_CURRENT ); init_vol = HistoryOrderGetDouble( ticket, ORDER_VOLUME_INITIAL ); } //--- switch( ord_data.state ) { case ORDER_STATE_CANCELED: if ( get_data ) { if ( ord_data.vol_init == ord_data.vol_cur ) { ord_data.real_state = ORD_NONE_CANCELED; } else { ord_data.real_state = ORD_NONE_PARTIAL_CANCELED; } } else { if ( init_vol == cur_vol ) { ord_data.real_state = ORD_NONE_CANCELED; } else { ord_data.real_state = ORD_NONE_PARTIAL_CANCELED; } } break; case ORDER_STATE_PARTIAL: ord_data.real_state = ORD_NONE_PARTIAL; break; case ORDER_STATE_EXPIRED: ord_data.real_state = ORD_NONE_EXPIRED; break; case ORDER_STATE_FILLED: ord_data.real_state = ORD_NONE_FILLED; break; case ORDER_STATE_REJECTED: ord_data.real_state = ORD_NONE_REJECTED; break; } } else if ( OrderSelect( ticket ) ) { if ( get_data ) { ord_data.comment = OrderGetString( ORDER_COMMENT ); ord_data.expiration = datetime( OrderGetInteger( ORDER_TIME_EXPIRATION ) ); ord_data.magic = OrderGetInteger( ORDER_MAGIC ); ord_data.pos_id = OrderGetInteger( ORDER_POSITION_ID ); ord_data.price_cur = OrderGetDouble( ORDER_PRICE_CURRENT ); ord_data.price_open = OrderGetDouble( ORDER_PRICE_OPEN ); ord_data.price_stlim = OrderGetDouble( ORDER_PRICE_STOPLIMIT ); ord_data.sl = OrderGetDouble( ORDER_SL ); ord_data.state = ENUM_ORDER_STATE( OrderGetInteger( ORDER_STATE ) ); ord_data.symbol = OrderGetString( ORDER_SYMBOL ); ord_data.t_done_msc = datetime( OrderGetInteger( ORDER_TIME_DONE_MSC ) ); ord_data.t_set_msc = datetime( OrderGetInteger( ORDER_TIME_SETUP_MSC ) ); ord_data.time_done = datetime( OrderGetInteger( ORDER_TIME_DONE ) ); ord_data.time_setup = datetime( OrderGetInteger( ORDER_TIME_SETUP ) ); ord_data.tp = OrderGetDouble( ORDER_TP ); ord_data.type = ENUM_ORDER_TYPE( OrderGetInteger( ORDER_TYPE ) ); ord_data.type_filling = ENUM_ORDER_TYPE_FILLING( OrderGetInteger( ORDER_TYPE_FILLING ) ); ord_data.type_time = ENUM_ORDER_TYPE_TIME( OrderGetInteger( ORDER_TYPE_TIME ) ); ord_data.vol_cur = OrderGetDouble( ORDER_VOLUME_CURRENT ); ord_data.vol_init = OrderGetDouble( ORDER_VOLUME_INITIAL ); } else { ord_data.state = ENUM_ORDER_STATE( OrderGetInteger( ORDER_STATE ) ); } //--- switch( ord_data.state ) { case ORDER_STATE_STARTED: case ORDER_STATE_REQUEST_ADD: case ORDER_STATE_REQUEST_MODIFY: case ORDER_STATE_REQUEST_CANCEL: ord_data.real_state = ORD_BUSY; break; case ORDER_STATE_PARTIAL: ord_data.real_state = ORD_EXIST_PARTIAL; break; case ORDER_STATE_PLACED: ord_data.real_state = ORD_EXIST; break; } } else { ord_data.error_code = GetLastError(); } //--- if ( ( ord_data.error_code != ERR_SUCCESS ) || ( ord_data.real_state == ORD_NOT_SPECIFIED ) ) { return( SELECT_ERROR ); } else { switch( ord_data.real_state ) { case ORD_BUSY: return( SELECT_BUSY ); break; case ORD_EXIST: case ORD_EXIST_PARTIAL: return( SELECT_TRUE ); break; default: return( SELECT_FALSE ); break; } } } else { ord_data.error_code = ERR_ZERO_TICKET; return( SELECT_ERROR ); } } //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return( INIT_SUCCEEDED ); } // void OnTick() { if ( PositionSelect( _Symbol ) ) { //Позиция открыта, ордер исполнился } else { if ( order_ticket > 0 ) { //Проверяем что с ордером ORDER_DATA order_data; ENUM_ORD_SELECT ord_select = OrderRealSelect( order_ticket, order_data, true ); switch( ord_select ) { case SELECT_BUSY: //Ничего не делаем, ордер в переходном состоянии break; case SELECT_FALSE: //Ордера нет .... Проверяем, что с ним произошло break; case SELECT_TRUE: //Ордер есть.... Проверяем почему есть, а не исполнился break; case SELECT_ERROR: //Проверяем что за ошибка break; } } else { //Позиции нет, ордера нет. Устанавливаем ордер } } } Сергей 2015.12.23 13:10 #618 Михаил:だいたいこんな感じです。 ミハイルさん、ありがとうございますこれは非常に便利な機能です。 Mikhail Filimonov 2015.12.27 20:25 #619 このスレッドが始まってから1年...。:( ALIV 2015.12.28 07:47 #620 <br /> translate="no">。アイトゥーガン、やっぱりコメントあるかも?:((私はもちろん理解して、非常にキプロスでの休日からあなたをそらすしたくないが、何とか沈黙は猥雑に長い時間のために行っています。:(( 1...555657585960616263646566676869...156 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
みなさん、こんにちは!
少し状況が違います。ブローカーBCS。成行注文は最初は実行されません。
市場で購入する注文を送信します。この関数は「発注済み」と注文番号を返しますが、実際には注文は実行されません。
そのため、ロボットは多くの試みを行います。買い注文を市場に送信し、成功した応答を受け取りますが、取引はありません。同時に、応答の注文番号は毎回新しいものです。
結果として、ポジションは遅かれ早かれオープンしますが、あなたは注文でブローカーを攻撃しなければなりません、それは明らかに間違っています。
助けてください、私のロボットがバグだらけなのか、ブローカーが混乱しているのかわかりませんか?ロボットについての苦情はなく、すべての検証機能が期待どおりに実行され、回答がチェックされます。
ブローカーは電話をかけたが、「コンサルタント」は肩をすくめた。まるで彼の手で取引が成立した場合、ロボットにエラーが発生したが、ここでは彼らは廃業している。
皆さん、こんにちは。
私はちょっと事情が違うんです。私のブローカーはBCSです。成行注文が1回目で約定しない。
マーケットで買い注文を出す。この関数は "Order placed "と注文番号を返しますが、実際には注文は実行されません!
そうして、ロボットは何度も試行錯誤を繰り返す。マーケットに買い注文を出し、成功の返事が来るが、取引が成立しない。応答中の注文番号は毎回新しいものになります。
その結果、遅かれ早かれポジションはオープンするのですが、ブローカーに注文を殺到させなければならず、明らかに間違っています。
私のFXロボットが不具合を起こしているのか、ブローカーが誤動作しているのか分かりません。ロボットには何のクレームもなく、チェックルーチンはすべて正常に動作し、応答も確認されている。
ブローカーに電話しましたが、「コンサルタント」は手を振って、「手作業で取引が成立した場合は、ロボットが間違っていることになり、自分たちは関係ない」と言いました。
セルギー!
コードを見てみないと何とも言えませんね。
しかし、印刷物から判断すると、きちんと発注のコントロールができていませんね。
セルゲイ!
コードを拝見しないと何とも言えません。
しかし、プリントアウトから判断すると、オーダー設定を正しく制御できていないようです。
Mikhail、これは端末のログです。つまり、注文を受け付け、それが正しいと言い、成功コードと注文番号を返す。つまり、注文を実行キューに入れるが、実行はしない。そして、何度も何度も。
でも、わかったような気がするんです。
アルゴリズムによると、許容リスクは、あなたが全体の預金のための取引を開くことができます。取引量=利用可能資金/GO、つまり、預けたお金はほぼ最後の1円まで使われる。(もちろんこれは間違いであり、このようなやり方はしてはいけません)。
技術的には、この数量で取引を開始するのに十分な資金があり、注文はターミナルによってチェックされ、MT5カーネルによって受け入れられます(OrderSend関数は、trueと注文番号を返します)。
しかし、その場合、注文は実行キュー(ブローカーまたは取引所とのゲートウェイ)のどこかで拒否され、結果的に実行されないことになります。ここでメタクオーツ側のMT5の欠点が出てきます。
問題は、顧客である私がこのことを一切知らされていないことです。ロボットにとってはすべてがうまくいったが、実際には注文はブローカー/ゲートウェイ/取引所によって拒否された(ここでは推測するしかない)。
OrderSend 関数は注文を拒否し、TRADE_RETCODE_NO_MONEY エラーコードをロボット に返すべきでしたが、何らかの理由でそうなりませんでした。
おそらく、OnTradeTransaction の実行を詳細にトレースする必要があるのでしょう。
マイケル、これは端末のログです。つまり、注文を受け付け、正しく入力されたと言い、成功コードと注文番号を返します。つまり、注文を実行キューに入れますが、実行はしません。そして、何度も何度も。
でも、わかったような気がするんです。
アルゴリズムによると、許容されるリスクは、あなたが預金全体のために取引を開くことができます。ディールボリューム=利用可能資金/CS、つまり、デポジットはほぼ最後の1円まで使われる。(もちろんこれは間違いです、そんなことはできません)。
技術的には、この数量で取引を開始するのに十分な資金があり、注文はターミナルによってチェックされ、MT5カーネルによって受け入れられます(OrderSend関数は trueと注文番号を返します)。
しかし、その場合、注文は実行キュー(ブローカーまたは取引所とのゲートウェイ)のどこかで拒否され、結果的に実行されないことになります。ここでメタクオーツ側のMT5の欠点が出てきます。
問題は、顧客である私がこのことを一切知らされていないことです。ロボットでは成功したが、実際にはブローカー/ゲートウェイ/取引所によって注文が拒否された(ここでは推測することしかできない)。
OrderSend関数は注文を拒否し、TRADE_RETCODE_NO_MONEY エラーコードをロボット に返すはずですが、何らかの理由でそうなっていません。
もう一度言いますが、注文設定を正しく制御できていません。
注文のBILLを受け取ったからと言って、取引所に注文が入ったことにはなりません
もう一度言いますが、オーダーの設定をきちんとコントロールできていないのではありませんか?
注文のBILLを受け取ったからといって、取引所に注文が入ったことには全くなりません。
この問題については、ここにきて知識の差があることがわかったので、納得です。
今までこのような動作に遭遇したことはなく、些細なことですがマーケットで送信したことがありますが、いつもすぐに開くかエラーになるかのどちらかでした。
キューでのオーダー実行の 低レベルなニュアンスについては、詳細を説明する必要はありませんでした。そして、ここ...
同感です。ここにきて、このテーマについて私は知識不足であることがわかりました。
今までこのような動作に遭遇したことはなく、些細なことですがマーケットで送信したことがありますが、いつもすぐに開くかエラーになるかのどちらかでした。
一般に、キューでの注文実行の 低レベルの詳細には触れる必要がなかったのです。そして、ここ...
注文を受けた後、OrderRealSelect()関数を使用します。
https://www.mql5.com/ru/forum/67298/page2#comment_2089220
だいたいこんな感じです。
だいたいこんな感じです。
アイトゥーガン、やっぱりコメントあるかも?:((
私はもちろん理解して、非常にキプロスでの休日からあなたをそらすしたくないが、何とか沈黙は猥雑に長い時間のために行っています。:((