どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 408 1...401402403404405406407408409410411412413414415...1178 新しいコメント 削除済み 2014.01.05 13:23 #4071 khorosh: コードの正しさを評価するには、作者が何を得ようとしたのかを正確に知る必要があります。あなたの情報は不十分です。何を手に入れたかったのかが、よくわからない。グリッド閉鎖後に反対注文を出し、価格が最後の注文の方向に何ポイントか通過することを期待して損失を補填したい場合、この注文のロットと価格が有利な方向に通過する距離の両方によって補填プロセスが決まります。つまり、ロットを計算するときに、損失を補填するために価格が通過しなければならない距離も定義する必要があるのです。でも、もしかしたら別の意味かもしれませんね。 そうですね、もっと正確に書くべきでした。ただ、この機能が何をするものなのか、すでに2回ほど全文を並べたのですが、誰も答えてくれません。もう一度、この関数がすべきことを説明します。例えば、注文のグリッドがあるとします。同じステップで開くかどうかは問題ではありません。ある注文は早く、別の注文は遅く、つまりすべてのポジションは異なるロットで異なる量のポイントを通過しています。ある条件によってグリッドが閉鎖され、そのグリッドから発生する損失をカバーするために必要なLOTをTPポイントで計算する必要があります。ミラー関数を2つ書くのを避けるために、関数にtypeパラメータを導入しています。 しかし、どこかで間違えてしまった。修正にご協力ください。 double FindRightLot (int otype) // функция поиска лота, необходимого для выхода из просадки после //закрытия сетки ордеров { double Lot=0; double TotalLot=0; for (int i = OrdersTotal()-1; i>0; i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype) { if (otype == OP_BUY) { Lot = NormalizeDouble (((OrderOpenPrice()-Bid)*Point)*OrderLots()/TP,2); if (Lot>0) { TotalLot= TotalLot+Lot; } } else if (otype == OP_SELL) { Lot = NormalizeDouble (((Ask-OrderOpenPrice())*Point)*OrderLots()/TP,2); if (Lot>0) { TotalLot= TotalLot+Lot; } } } } } return (TotalLot); } TarasBY 2014.01.05 13:24 #4072 BeerGod: ゼロから始まるように正しく実装する方法はありますか?可能であれば、コードの一行をお願いします。 注文の)リスト全体を任意の方向に調べ、Ticketの値を配列に入れ、この配列をブルートフォースして注文を削除する。 Sergey Gridnev 2014.01.05 13:37 #4073 BeerGod: 0から始まるクローズを正しく実装する方法はありますか?可能であれば、コードの一行をお願いします。 ただ、クイックフィックス。 //+------------------------------------------------------------------+ //| Закрыть все ордера | //+------------------------------------------------------------------+ double ClossAllOrders () { for(int i=0; i<OrdersTotal(); ) { if ( !OrderSelect(i, SELECT_BY_POS) ) break; int type = OrderType(); bool result = false; switch(type) { //Close opened long positions case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Lime ); break; //Close opened short positions case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Lime ); break; //Close pending orders case OP_BUYLIMIT : case OP_BUYSTOP : case OP_SELLLIMIT : case OP_SELLSTOP : result = OrderDelete( OrderTicket() ); } if(result == false) { Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() ); i++; Sleep(500); } } } // End khorosh 2014.01.05 13:44 #4074 Trader7777: そうですね、もっと正確に書くべきでした。ただ、この機能が何をするものなのか、すでに2回ほど全文を並べたのですが、誰も答えてくれません。もう一度、この関数がすべきことを説明します。例えば、注文のグリッドがあるとします。同じステップで開くかどうかは問題ではありません。ある注文は早く、別の注文は遅く、つまりすべてのポジションは異なるロットで異なる量のポイントを通過しています。ある条件によってグリッドが閉鎖され、そのグリッドから発生する損失をカバーするために必要なLOTをTPポイントで計算する必要があります。2つのミラー関数を書かないために、関数にotypeパラメータを導入しました。 しかし、それでもどこかでエラーが出ている。修正にご協力ください。 私なら別ルートをとりますね。まず、グリッドを閉じたときの損失を計算します。といった具合にシンプルです。損失=次の注文による利益注文による利益をロットとTPで表し、式からロットを求めます。 削除済み 2014.01.05 13:54 #4075 Contender: 簡単な手仕事です。 ありがとうございました!すべて正常に動作しています!ご対応いただいた皆様、ありがとうございました。 削除済み 2014.01.05 14:02 #4076 khorosh: 私なら別ルートをとりますね。まず、グリッドを閉じたときの損失を計算します。といった具合にシンプルです。損失=次の注文による利益注文による利益をロットとTPで表し、式からロットを求めます。 グリッド終了時の損失は、マネーかピップスか? khorosh 2014.01.05 14:04 #4077 Trader7777: グリッドを閉じたときの損失は、マネーなのかピップスなのか? 預入通貨 で。 削除済み 2014.01.05 14:36 #4078 各ペアでポイント価格が違うというのはどうでしょうか? khorosh 2014.01.05 14:51 #4079 Trader7777: 各ペアでポイント価格が違うというのはどうでしょうか? なぜ、そんなことをしたいのですか? 削除済み 2014.01.05 15:13 #4080 Trader7777: 各ペアでポイント価格が違うというのはどうでしょうか? ここでは、その実装の様子をご覧いただけます。 https://www.mql5.com/ru/code/7275 https://www.mql5.com/ru/forum/113937/page2 https://docs.mql4.com/ru/constants/marketinfo 1...401402403404405406407408409410411412413414415...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コードの正しさを評価するには、作者が何を得ようとしたのかを正確に知る必要があります。あなたの情報は不十分です。何を手に入れたかったのかが、よくわからない。グリッド閉鎖後に反対注文を出し、価格が最後の注文の方向に何ポイントか通過することを期待して損失を補填したい場合、この注文のロットと価格が有利な方向に通過する距離の両方によって補填プロセスが決まります。つまり、ロットを計算するときに、損失を補填するために価格が通過しなければならない距離も定義する必要があるのです。でも、もしかしたら別の意味かもしれませんね。
そうですね、もっと正確に書くべきでした。ただ、この機能が何をするものなのか、すでに2回ほど全文を並べたのですが、誰も答えてくれません。もう一度、この関数がすべきことを説明します。例えば、注文のグリッドがあるとします。同じステップで開くかどうかは問題ではありません。ある注文は早く、別の注文は遅く、つまりすべてのポジションは異なるロットで異なる量のポイントを通過しています。ある条件によってグリッドが閉鎖され、そのグリッドから発生する損失をカバーするために必要なLOTをTPポイントで計算する必要があります。ミラー関数を2つ書くのを避けるために、関数にtypeパラメータを導入しています。
しかし、どこかで間違えてしまった。修正にご協力ください。
ゼロから始まるように正しく実装する方法はありますか?可能であれば、コードの一行をお願いします。
0から始まるクローズを正しく実装する方法はありますか?可能であれば、コードの一行をお願いします。
ただ、クイックフィックス。
そうですね、もっと正確に書くべきでした。ただ、この機能が何をするものなのか、すでに2回ほど全文を並べたのですが、誰も答えてくれません。もう一度、この関数がすべきことを説明します。例えば、注文のグリッドがあるとします。同じステップで開くかどうかは問題ではありません。ある注文は早く、別の注文は遅く、つまりすべてのポジションは異なるロットで異なる量のポイントを通過しています。ある条件によってグリッドが閉鎖され、そのグリッドから発生する損失をカバーするために必要なLOTをTPポイントで計算する必要があります。2つのミラー関数を書かないために、関数にotypeパラメータを導入しました。
しかし、それでもどこかでエラーが出ている。修正にご協力ください。
簡単な手仕事です。
ありがとうございました!すべて正常に動作しています!ご対応いただいた皆様、ありがとうございました。
私なら別ルートをとりますね。まず、グリッドを閉じたときの損失を計算します。といった具合にシンプルです。損失=次の注文による利益注文による利益をロットとTPで表し、式からロットを求めます。
グリッド終了時の損失は、マネーかピップスか?
グリッドを閉じたときの損失は、マネーなのかピップスなのか?
各ペアでポイント価格が違うというのはどうでしょうか?
各ペアでポイント価格が違うというのはどうでしょうか?
ここでは、その実装の様子をご覧いただけます。
https://www.mql5.com/ru/code/7275
https://www.mql5.com/ru/forum/113937/page2
https://docs.mql4.com/ru/constants/marketinfo