EAが買い注文と売り注文を混在させる - ページ 2 123 新しいコメント Ubzen 2011.07.05 17:55 #11 eaの全体像と使い方がわからないと、何が問題なのか推測するしかありません。この文を渡すために正しい順序を選択していると仮定すると。 while (!OrderSelect(cnt, SELECT_BY_POS)) {Sleep(500);} パスするわけがない。 if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) { もしOp_Sellなら同じSymbolの複数のチャートでやっているのなら別ですが。 喧嘩腰のwhileループを使っているところを見るとこれはおそらくRapid Order Makerの一種だろう。 私の最終的な推測ではOrdertypeチェックの後、選択された注文が 変わる :) それ以外は、Raptorのようにprint文を多用することをお勧めします。 William Roeder 2011.07.05 18:26 #12 orderSelectの後、選択された注文を 変更することはできません。 for(cnt = total-1; cnt >= 0; cnt--) { while (!OrderSelect(cnt, SELECT_BY_POS)) {Sleep(500);} もし orderSelect が失敗すれば、それは継続的に失敗し、無限ループに陥ります。もし、自分のチャートを更新している間に、別のチャートで複数の注文がクローズしたら、次の反復のセレクトは失敗します。非常に危険です。 dvarrin 2011.07.05 19:05 #13 Ticket番号を出力しましたが、OrderType()と一致しません。 選択された注文が OP_BUYタイプであれば、正しいifが処理されますが、OrderModify(...)の呼び出しで、最初のパラメータとしてOrderTicket()を渡しましたが、それは他の注文のチケットです。 何か思い当たることはありますか? Simon Gniadkowski 2011.07.05 19:26 #14 dvarrin:何か思い当たることはありますか?おそらく、すでに終了した注文を変更しようとしているのでしょうか? 取引を選択するプールが指定されていません。 OrderSelect( int index, int select, int pool=MODE_TRADES) MODE_TRADES (デフォルト) - 取引プールから選択された注文(オープンおよび保留中の注文), MODE_HISTORY - ヒストリープールから選択された注文(クローズされ、キャンセルされた注文)。 dvarrin 2011.07.05 19:35 #15 RaptorUK: おそらく、すでに決済された注文を変更しようとしているのでしょうか? 取引を選択するプールを指定していないのでしょうか? MODE_TRADES(デフォルト) - トレーディングプール(オープンオーダーとペンディングオーダー)から選択されたオーダーです。 MODE_HISTORY - history pool (closed and canceled order)から選択された注文。 私も試してみましたが、何も変わりませんでした。使いたい選択された注文 のデータを全部保存しておかないといけないようです。 int ticket=0; 倍 SL = 0.0です。 OrderSelect(cnt, ...); ticket = OrderTicket(); SL = OrderStoploss(); if (OrderType() == OP_BUY){ ... なぜそうなるのでしょうか?私のコードでは、OrderTicket()がOrderType()が参照しているのと同じ注文に対応しないように、何が間違っているのか理解できません。 Simon Gniadkowski 2011.07.05 19:50 #16 dvarrin: Ticket番号を出力しましたが、OrderType()と一致しません。 選択された注文がOP_BUYタイプであれば、正しいifが処理されますが、その後OrderModify(...)の呼び出しで、最初のパラメータとしてOrderTicket()を渡しましたが、それは他の注文のチケット です。 次の注文なのか、前の注文なのか、どちらでしょうか? 削除済み 2011.07.05 19:53 #17 orderType = OrderType() を次のように変更します。 int orderType = OrderType();に変更し、元の宣言を削除します。 dvarrin 2011.07.05 20:19 #18 forexCoder: orderType = OrderType() を次のように変更します。 int orderType = OrderType();に変更し、元の宣言を削除します。 OrderTypeはOKです。正しいオーダーのチケットでないのはOrderTicket()の方です。 Simon Gniadkowski 2011.07.05 20:56 #19 コーディングで回避するのではなく、問題の原因を突き止めることをお勧めします. ソフトウェア工学は問題解決のすべてであり、それは私たちが学び、より良くなる方法です。 私は、土曜日からFibsに関連する特定の問題のコーディングに3回目の挑戦をしているところです。Print()関数を 注意深く使うことは、とても役に立ちます ... ... William Roeder 2011.07.05 21:39 #20 dvarrin: OrderTypeはOKです。それは正しい順序のチケットでないOrderTicket()である。 int OrderType = OrderType() は OK ではありません。一方が他方を隠している可能性があります (ローカル宣言はエラーなしでグローバルを隠します。) Try int orderType = OrderType() 123 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
eaの全体像と使い方がわからないと、何が問題なのか推測するしかありません。この文を渡すために正しい順序を選択していると仮定すると。
パスするわけがない。
if ((orderType == OP_BUY || orderType == OP_BUYSTOP)) {
もしOp_Sellなら同じSymbolの複数のチャートでやっているのなら別ですが。
喧嘩腰のwhileループを使っているところを見るとこれはおそらくRapid Order Makerの一種だろう。
私の最終的な推測ではOrdertypeチェックの後、選択された注文が 変わる :)
それ以外は、Raptorのようにprint文を多用することをお勧めします。
Ticket番号を出力しましたが、OrderType()と一致しません。
選択された注文が OP_BUYタイプであれば、正しいifが処理されますが、OrderModify(...)の呼び出しで、最初のパラメータとしてOrderTicket()を渡しましたが、それは他の注文のチケットです。
何か思い当たることはありますか?
何か思い当たることはありますか?
おそらく、すでに終了した注文を変更しようとしているのでしょうか? 取引を選択するプールが指定されていません。
MODE_TRADES (デフォルト) - 取引プールから選択された注文(オープンおよび保留中の注文),MODE_HISTORY - ヒストリープールから選択された注文(クローズされ、キャンセルされた注文)。
おそらく、すでに決済された注文を変更しようとしているのでしょうか? 取引を選択するプールを指定していないのでしょうか?
MODE_TRADES(デフォルト) - トレーディングプール(オープンオーダーとペンディングオーダー)から選択されたオーダーです。MODE_HISTORY - history pool (closed and canceled order)から選択された注文。
私も試してみましたが、何も変わりませんでした。使いたい選択された注文 のデータを全部保存しておかないといけないようです。
int ticket=0;
倍 SL = 0.0です。
OrderSelect(cnt, ...);
ticket = OrderTicket();
SL = OrderStoploss();
if (OrderType() == OP_BUY){
...
なぜそうなるのでしょうか?私のコードでは、OrderTicket()がOrderType()が参照しているのと同じ注文に対応しないように、何が間違っているのか理解できません。
Ticket番号を出力しましたが、OrderType()と一致しません。
選択された注文がOP_BUYタイプであれば、正しいifが処理されますが、その後OrderModify(...)の呼び出しで、最初のパラメータとしてOrderTicket()を渡しましたが、それは他の注文のチケット です。
orderType = OrderType()
を次のように変更します。
int orderType = OrderType();に変更し、元の宣言を削除します。
orderType = OrderType()
を次のように変更します。
int orderType = OrderType();に変更し、元の宣言を削除します。
OrderTypeはOKです。正しいオーダーのチケットでないのはOrderTicket()の方です。
コーディングで回避するのではなく、問題の原因を突き止めることをお勧めします.
ソフトウェア工学は問題解決のすべてであり、それは私たちが学び、より良くなる方法です。 私は、土曜日からFibsに関連する特定の問題のコーディングに3回目の挑戦をしているところです。Print()関数を 注意深く使うことは、とても役に立ちます ... ...
OrderTypeはOKです。それは正しい順序のチケットでないOrderTicket()である。
int OrderType = OrderType() は OK ではありません。一方が他方を隠している可能性があります (ローカル宣言はエラーなしでグローバルを隠します。) Try
int orderType = OrderType()