ヘルプEAが取引を終了しない理由 - ページ 7 1234567 新しいコメント dabbler 2012.05.27 20:26 #61 20000 回のリトライはちょっとやりすぎだと思いませんか。5回連続でクローズに失敗したら、もうやめましょう。 クローズに失敗したときのエラーメッセージを表示するのもいいと思います。 Simon Gniadkowski 2012.05.27 20:40 #62 もうトロールに餌をやるのはやめよう ... ... onewithzachy 2012.05.27 22:59 #63 こんにちは、crossyです。 私はあなたのコードの一部しか見ていませんし、あなたはおそらく頭の中で別の計画を持っています。 あなたのEAは取引を終了することができないと言いました。だから、我々はその原因を見つけ、それに対処しなければなりません。私はそう考えています。 :D #include <stdlib.mqh> ... for(int pos = OrdersTotal(); pos >= 0 ; pos--) { if ( OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == My_Magic_Number && OrderSymbol() == Symbol()) { if (OrderType() = OP_BUY) // we close long { for (int try_to_close = 1; try_to_close <= 100; try_to_close ++) { bool success = OrderClose (OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Yellow); if (success = false) { int Error = GetLastError(); Print ("Unable to close ticket ",OrderTicket()," with error ",ErrorDescription(Error)); // from #include <stdlib.mqh> if (TRY_CLOSE_AGAIN_OR_NOT(Error) == false ) break; // } } } if (OrderType() = OP_SELL) // we close short { // do the same with sell } } } //+------------------------------------------------------------------+ bool TRY_CLOSE_AGAIN_OR_NOT(int err) // True { switch (err) { case 1: return (false); //error_string="no error"; case 2: return (false); //error_string="common error"; case 3: return (false); //error_string="invalid trade parameters"; case 4: Sleep (500); return (true); //error_string="trade server is busy"; case 5: return (false); //error_string="old version of the client terminal"; case 6: Sleep (500); return (true); //error_string="no connection with trade server"; case 7: return (false); //error_string="not enough rights"; case 8: Sleep (500); return (true); //error_string="too frequent requests"; case 9: return (false); //error_string="malfunctional trade operation (never returned error)"; case 64: return (false); //error_string="account disabled"; case 65: return (false); //error_string="invalid account"; case 128: Sleep (500); return (true); //error_string="trade timeout"; case 129: return (false); //error_string="invalid price"; case 130: return (false); //error_string="invalid stops"; case 131: return (false); //error_string="invalid trade volume"; case 132: return (false); //error_string="market is closed"; case 133: return (false); //error_string="trade is disabled"; case 134: return (false); //error_string="not enough money"; case 135: return (false); //error_string="price changed"; case 136: return (false); //error_string="off quotes"; case 137: Sleep (500); return (true); //error_string="broker is busy (never returned error)"; case 138: return (false); ////error_string="requote"; case 139: return (false); //error_string="order is locked"; case 140: return (false); //error_string="long positions only allowed"; case 141: return (false); //error_string="too many requests"; //case 145: return (true); //error_string="modification denied because order too close to market"; case 146: Sleep (500); return (true); //error_string="trade context is busy"; //case 147: return (true); error_string="expirations are denied by broker"; //case 148: return (true); error_string="amount of open and pending orders has reached the limit"; //case 149: return (true); error_string="hedging is prohibited"; case 150: return (false); //error_string="prohibited by FIFO rules"; default : return (false); } return(false); // can not manage the err we get out } 削除済み 2012.05.28 03:53 #64 つまり、すべての注文が終了していないという問題があるのです。あなたが貼り付けたこのコードでは、すべての注文を閉じることはできません。だから、もしあなたが助けを求めるなら、注文のクローズで動作しているすべてのコードを貼り付けてください。すべてのコードを貼り付ける必要はありませんが(秘密にしたいのはわかります)、問題に関与しているコードの一部を貼り付けなければ、決して助けは得られません(この場合 - 短い注文を閉じるためのコードはありません)。 Yochanan Gerbi 2012.05.28 03:55 #65 onewithzachy: こんにちは、crossyです。 私はあなたのコードの一部しか見ていませんし、あなたはおそらく頭の中で別の計画を持っています。 あなたのEAは取引を終了することができないと言いました。だから、我々はその原因を見つけ、それに対処しなければなりません。私はそう考えています。 :D onewithzachyさん、このアイデアをありがとうございます。ここと同じようにどこでも役に立ちます。 もう数時間動作させてみてください、アップデートすることを約束します。 Raptorも素敵な貢献をありがとうございました。 Y. Yochanan Gerbi 2012.05.28 12:34 #66 こんにちは。 約束した通り、6時間後にEAが動き出しました。 あなたの良い考え方に感謝します。 では、このまま進めていきますが、トラブることがないように願っています。 Y. onewithzachy 2012.05.28 20:24 #67 crossy: こんにちは。 約束した通り、6時間後にEAが動き出しました。 あなたの良い考え方に感謝します。 では、このまま進めていきますが、トラブることがないように願っています。 Y. 素晴らしい!!また数週間後に更新してください。 :D 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
20000 回のリトライはちょっとやりすぎだと思いませんか。5回連続でクローズに失敗したら、もうやめましょう。
クローズに失敗したときのエラーメッセージを表示するのもいいと思います。
こんにちは、crossyです。
私はあなたのコードの一部しか見ていませんし、あなたはおそらく頭の中で別の計画を持っています。
あなたのEAは取引を終了することができないと言いました。だから、我々はその原因を見つけ、それに対処しなければなりません。私はそう考えています。
:D
つまり、すべての注文が終了していないという問題があるのです。あなたが貼り付けたこのコードでは、すべての注文を閉じることはできません。だから、もしあなたが助けを求めるなら、注文のクローズで動作しているすべてのコードを貼り付けてください。すべてのコードを貼り付ける必要はありませんが(秘密にしたいのはわかります)、問題に関与しているコードの一部を貼り付けなければ、決して助けは得られません(この場合 - 短い注文を閉じるためのコードはありません)。
こんにちは、crossyです。
私はあなたのコードの一部しか見ていませんし、あなたはおそらく頭の中で別の計画を持っています。
あなたのEAは取引を終了することができないと言いました。だから、我々はその原因を見つけ、それに対処しなければなりません。私はそう考えています。
:D
onewithzachyさん、このアイデアをありがとうございます。ここと同じようにどこでも役に立ちます。
もう数時間動作させてみてください、アップデートすることを約束します。
Raptorも素敵な貢献をありがとうございました。
Y.
こんにちは。
約束した通り、6時間後にEAが動き出しました。
あなたの良い考え方に感謝します。
では、このまま進めていきますが、トラブることがないように願っています。
Y.
こんにちは。
約束した通り、6時間後にEAが動き出しました。
あなたの良い考え方に感謝します。
では、このまま進めていきますが、トラブることがないように願っています。
Y.
素晴らしい!!また数週間後に更新してください。
:D