[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 858 1...851852853854855856857858859860861862863864865...1145 新しいコメント usver 2010.09.22 13:02 #8571 素朴な疑問なのですが、思いつきません。 ある時点では4つのポジションが空いて います。以下の方法ですべて閉じようとしています。 for (int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); } } しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持っています。そのため、2位と6位がクローズアップされています。 その仕掛けとは? Igor Makanu 2010.09.22 13:14 #8572 usver:素朴な疑問なのですが、思いつきません。ある時点では4つのポジションが空いています。以下の方法ですべて閉じようとしています。しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持っています。そのため、2位と6位がクローズアップされています。キャッチは何ですか? 仕掛けは、ポジションがクローズ された後、OrderSelect(i,SELECT_BY_POS,MODE_TRADES)で番号が変わり、同時に全てがクローズできないこと SZY:FTS Iにとても助けられました。キム、余分なブラケットを削除し、1行に引き込むなど、少し変更しました。 //+------------------------------------------------------------------+ void CloseAllFirstProfit() { int i, k=OrdersTotal(); for (i=k-1; i>=0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if (OrderType()==OP_BUY || OrderType()==OP_SELL) if (OrderProfit()+OrderSwap()>0) ClosePosBySelect(); k=OrdersTotal(); for (i=k-1; i>=0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if (OrderType()==OP_BUY || OrderType()==OP_SELL) ClosePosBySelect(); } //+------------------------------------------------------------------+ void ClosePosBySelect() { if (OrderType()==OP_BUY) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE); if (OrderType()==OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE); } //+------------------------------------------------------------------+ フォーラムを検索すると、オリジナルが見つかります。 usver 2010.09.22 14:23 #8573 IgorM: は、ポジションを閉じた後、OrderSelect(i,SELECT_BY_POS,MODE_TRADES)の番号が変わり、すべてを同時に閉じることができないことですSZY:FTS Iにとても助けられました。キム、余分なブラケットを削除し、1行に引き込むなど、少し変更しました。フォーラムを検索すると、オリジナルが見つかります。 ヒントと例をありがとうございました。調べてみます。 途中、もうひとつ質問させていただきます。 タスクは以下の通りです。私は、ストップロスによって引き起こされたどの注文タイプが閉じられたかを判断し、ストップロスによって閉じられた将来の注文を以前のものと比較する必要があります(つまり、それらのタイプを比較する)。ドキュメントに目を通しましたが、最後のイベントの処理に関連するものは見つかりませんでした。 この時、設定した境界線(Bid-OrderOpenPrice() >=TP*Point)に到達したら注文を閉じるという操作を実装しました。これにより、最後に決済された注文のタイプを変数に格納して、決済されたばかりの注文と比較することができました ( if(type==OrderType()))).テストでは問題なく動作しているのですが、逆指値を使って実装したいのです。 OrderSelect() とMODE_HISTORY引数を使って、ヒストリーからクローズドオーダーを選択しようとしました。注文を決済する条件がないため、OrdersTotal()変数の変化がストップロスのトリガーとなる可能性があります。しかし、最後に閉じた注文の番号がわからない(番号は常に変化しているため)、あるいはその方法がわからないという問題が発生しました。 問題は、逆指値を使ってどのように実行するかということです。もしかして、もっと簡単な方法があるのでは?さて、思考の方向性が正しいのであれば、最後のクローズド・オーダーはどうやって見つけるのでしょうか? Andrey F. Zelinsky 2010.09.22 14:29 #8574 IgorM: ポジションを閉じた後に OrderSelect(i,SELECT_BY_POS,MODE_TRADES) で番号が変更 され、すべてのポジションを同時に 閉じることができなくなりました。 SZS:I.Kimさんの機能にはとても助けられました。余分な括弧を取り除き、1行にまとめるなど、少し変更しました。 フォーラムを検索すると、オリジナルが見つかります。 もう十分だろう...。をひとまとめにしています。 https://docs.mql4.com/ru/trading/OrderSelect Andrey F. Zelinsky 2010.09.22 14:41 #8575 usver: 素朴な疑問なのですが、思いつきません。 ある時点では4つのポジションが空いています。以下の方法ですべて閉じようとしています。 しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持って います。そのため、2位と6位がクローズアップされています。 何が問題なのか? 番号順なのか、チケット順なのか? usver 2010.09.22 15:00 #8576 abolk: 番号順なのか、チケット順なのか? 私自身、すでに混乱しています。チケットですが、状況を明確にするために渡しました。一つずつ閉じていく。 [Deleted] 2010.09.22 15:03 #8577 やったー!うまくいったー!!!(笑)。 Victor ありがとうございます。 Igor Makanu 2010.09.22 15:29 #8578 abolk: さっきの話...一山 https://docs.mql4.com/ru/trading/OrderSelect 注文のグループ内で持ち帰りやストップを変更・削除してみる - 作業は単純ですが、注文の選択がOrderSelect(i,SELECT_BY_POS,MODE_TRADES)で行われたとき、ループ本体の中で注文番号が変わり、すでに変更した(持ち帰りなし)注文が何度も変更されたことがあります - エラー1、だからこそ私はeverが 同様の問題を持つことを提案しました。 例えば、5本ごとに再計算させたいのですが、どうすればいいですか? Денис 2010.09.22 16:55 #8579 IgorM: インジケータを複数のバーの終値で再計算させる方法について教えてください。 プログラミングについて知っているんですね。 これは論理的な課題なので、あまり頭がよくなくても解ける。頭を使って考える。 さまざまなケースがあります。具体的にどこで、どのようなTFで、どのように再リンクを行うか、など。質問にどう答えるか。 小節の時間を記録し、5小節後にこの時間をリセットして再び記録します。ゼロ時刻の時に、再計算する条件を入れることができます。関数 iTime(NULL,0,0) を使用すると便利です。あとは、すべて理屈です。 usver 2010.09.22 17:01 #8580 IgorM: インジケータを複数のバーの終値で再計算させる方法について教えてください。 この方法は、おそらく最も信頼できるものではありませんが、アイデア(例えば下書き)を試すだけでも効果があるでしょう。 Bars変数を使用し、その変化を把握する。5増加、記憶している、など。 1...851852853854855856857858859860861862863864865...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
素朴な疑問なのですが、思いつきません。
ある時点では4つのポジションが空いて います。以下の方法ですべて閉じようとしています。
しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持っています。そのため、2位と6位がクローズアップされています。
その仕掛けとは?
素朴な疑問なのですが、思いつきません。
ある時点では4つのポジションが空いています。以下の方法ですべて閉じようとしています。
しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持っています。そのため、2位と6位がクローズアップされています。
キャッチは何ですか?
仕掛けは、ポジションがクローズ された後、OrderSelect(i,SELECT_BY_POS,MODE_TRADES)で番号が変わり、同時に全てがクローズできないこと
SZY:FTS Iにとても助けられました。キム、余分なブラケットを削除し、1行に引き込むなど、少し変更しました。
フォーラムを検索すると、オリジナルが見つかります。
は、ポジションを閉じた後、OrderSelect(i,SELECT_BY_POS,MODE_TRADES)の番号が変わり、すべてを同時に閉じることができないことです
SZY:FTS Iにとても助けられました。キム、余分なブラケットを削除し、1行に引き込むなど、少し変更しました。
フォーラムを検索すると、オリジナルが見つかります。
ヒントと例をありがとうございました。調べてみます。
途中、もうひとつ質問させていただきます。
タスクは以下の通りです。私は、ストップロスによって引き起こされたどの注文タイプが閉じられたかを判断し、ストップロスによって閉じられた将来の注文を以前のものと比較する必要があります(つまり、それらのタイプを比較する)。ドキュメントに目を通しましたが、最後のイベントの処理に関連するものは見つかりませんでした。
この時、設定した境界線(Bid-OrderOpenPrice() >=TP*Point)に到達したら注文を閉じるという操作を実装しました。これにより、最後に決済された注文のタイプを変数に格納して、決済されたばかりの注文と比較することができました ( if(type==OrderType()))).テストでは問題なく動作しているのですが、逆指値を使って実装したいのです。
OrderSelect() とMODE_HISTORY引数を使って、ヒストリーからクローズドオーダーを選択しようとしました。注文を決済する条件がないため、OrdersTotal()変数の変化がストップロスのトリガーとなる可能性があります。しかし、最後に閉じた注文の番号がわからない(番号は常に変化しているため)、あるいはその方法がわからないという問題が発生しました。
問題は、逆指値を使ってどのように実行するかということです。もしかして、もっと簡単な方法があるのでは?さて、思考の方向性が正しいのであれば、最後のクローズド・オーダーはどうやって見つけるのでしょうか?
ポジションを閉じた後に OrderSelect(i,SELECT_BY_POS,MODE_TRADES) で番号が変更 され、すべてのポジションを同時に 閉じることができなくなりました。
SZS:I.Kimさんの機能にはとても助けられました。余分な括弧を取り除き、1行にまとめるなど、少し変更しました。
フォーラムを検索すると、オリジナルが見つかります。
https://docs.mql4.com/ru/trading/OrderSelect
素朴な疑問なのですが、思いつきません。
ある時点では4つのポジションが空いています。以下の方法ですべて閉じようとしています。
しかし、それらはすべてではなく、一つを通して閉じられています。実際には、2,4,6,7という数字を持って います。そのため、2位と6位がクローズアップされています。
何が問題なのか?
番号順なのか、チケット順なのか?
番号順なのか、チケット順なのか?
私自身、すでに混乱しています。チケットですが、状況を明確にするために渡しました。一つずつ閉じていく。
やったー!うまくいったー!!!(笑)。
Victor ありがとうございます。
さっきの話...一山
https://docs.mql4.com/ru/trading/OrderSelect
注文のグループ内で持ち帰りやストップを変更・削除してみる - 作業は単純ですが、注文の選択がOrderSelect(i,SELECT_BY_POS,MODE_TRADES)で行われたとき、ループ本体の中で注文番号が変わり、すでに変更した(持ち帰りなし)注文が何度も変更されたことがあります - エラー1、だからこそ私はeverが 同様の問題を持つことを提案しました。
例えば、5本ごとに再計算させたいのですが、どうすればいいですか?
インジケータを複数のバーの終値で再計算させる方法について教えてください。
プログラミングについて知っているんですね。
これは論理的な課題なので、あまり頭がよくなくても解ける。頭を使って考える。
さまざまなケースがあります。具体的にどこで、どのようなTFで、どのように再リンクを行うか、など。質問にどう答えるか。
小節の時間を記録し、5小節後にこの時間をリセットして再び記録します。ゼロ時刻の時に、再計算する条件を入れることができます。関数 iTime(NULL,0,0) を使用すると便利です。あとは、すべて理屈です。
インジケータを複数のバーの終値で再計算させる方法について教えてください。
この方法は、おそらく最も信頼できるものではありませんが、アイデア(例えば下書き)を試すだけでも効果があるでしょう。
Bars変数を使用し、その変化を把握する。5増加、記憶している、など。