MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 979 1...972973974975976977978979980981982983984985986...1953 新しいコメント Artyom Trishkin 2019.10.06 13:01 #9781 Rustam Bikbulatov: こんにちは、アドバイスをお願いします。最後のテキストが表示されないのはなぜですか?ここで何が問題なのか?どうすれば直るのか、教えてください! 常に1つのオブジェクトの名前を取るだけなら、なぜループが必要なのでしょうか? for(int no1=0; no1<ObjectsTotal(OBJ_TEXT); no1++) { if(ObjectName(0)=="Profit1"+iBarShift(NULL,1440,0)) { double name; name = ObjectDescription(0);; Comment(name); } } Artyom Trishkin 2019.10.06 13:02 #9782 Iurii Tokman: no1<=ObjectsTotal(OBJ_TEXT); 正確に言うと、これはできません。配列の境界から外れて しまうからです。10個のオブジェクトがある場合、最後のオブジェクトのインデックスは9となる。ゼロから数えるからです。 Rustam Bikbulatov 2019.10.06 13:14 #9783 Artyom Trishkin: 一度に1つのオブジェクトの名前を取るだけなら、なぜループなのか? このオブジェクトのペネトレーションテキストを決定する方法を具体的に教えてください。 Artyom Trishkin 2019.10.06 13:15 #9784 Rustam Bikbulatov: このオブジェクトのペネトレーションテキストを決定する方法を具体的に教えてください。 自分が何をしたいのか、なかなかわからない。 Rustam Bikbulatov 2019.10.06 13:23 #9785 void Profit() { ObjectCreate("Profit"+iBarShift(NULL,1440,0),OBJ_TEXT,1,TimeCurrent(),0.6); ObjectSetText("Profit"+iBarShift(NULL,1440,0),DoubleToStr(AccountProfit(),2),11,"Arial",clrWhite); ObjectSetInteger(0,"Profit"+iBarShift(NULL,1440,0),OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER); return; } void Profit1() { double Prof = ObjectDescription("Profit1"+iBarShift(NULL,1440,0)); double P = -Prof; ObjectCreate("Profit1"+iBarShift(NULL,1440,0),OBJ_TEXT,1,TimeCurrent(),0.1); ObjectSetText("Profit1"+iBarShift(NULL,1440,0),DoubleToStr(MathMax(-AccountProfit(),-P),1),11,"Arial",clrWhite); ObjectSetInteger(0,"Profit1"+iBarShift(NULL,1440,0),OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER); return; } void Profit2() { ObjectCreate("Profit2"+iBarShift(NULL,1440,0),OBJ_TEXT,1,TimeCurrent(),-0.4); ObjectSetText("Profit2"+iBarShift(NULL,1440,0),iBarShift(NULL,1440,0)-1000,11,"Arial",clrWhite); ObjectSetInteger(0,"Profit2"+iBarShift(NULL,1440,0),OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER); return; } void Profit3() { for(int no1=0; no1<=ObjectsTotal(OBJ_TEXT); no1++) { if(ObjectFind(1,"Profit2"+iBarShift(NULL,1440,0))!=0) { string obj_name; obj_name = ObjectName(3); string name; name = ObjectDescription(obj_name); Comment(obj_name); } } ObjectCreate("Profit3"+iBarShift(NULL,1440,0),OBJ_TEXT,1,TimeCurrent(),-0.9); ObjectSetText("Profit3"+iBarShift(NULL,1440,0),DoubleToStr(name,1),11,"Arial",clrWhite); ObjectSetInteger(0,"Profit3"+iBarShift(NULL,1440,0),OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER); return; } プロビット - 日中のテスト中の総利益を表示します。 Provit1 - その日の最大ドローダウンを表示します。 Provit2 - 1から始まる通常の数値列。 Provit3 - ターゲット!Provit1 を合計し、Provit2 で割る。テストの合計時間に対する1日の平均ドローダウンを知りたい。 Provit3の理解に役立つ。 Roman Shiredchenko 2019.10.08 04:55 #9786 同僚 - このクローズエラーの可能性と対処法について教えてください。以下は、利益を超えたら-すべての一方向ポジションを決済するコードです。 ありがとうございます。 // ЗАКРЫВАЕМ ВИРТУАЛЬНЫЕ ТР БАЙ позы if(takeprofit < ProfitB) { Print(" ЗАКРЫТИЕ BUY POSITIONS. общий ProfitB = ", ProfitB," мин общий takeprofit buys positions = ", takeprofit); for (i=OrdersTotal()-1; i>=0; i--) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic_Прямой==OrderMagicNumber()) { if(OrderType()==OP_BUY) //if(OrderOpenPrice()+takeprofit*Point<=MarketInfo(Symbol(),MODE_BID) || // OrderOpenPrice()-stoploss*Point>=MarketInfo(Symbol(),MODE_BID)) if (OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD)*2,Digits()),clrGray)) Print(" закрытие бай, тикет = ", OrderTicket()); else Print(" ошибка закрытия бай, Error = ", GetLastError()); } } if(takeprofit < ProfitS) { Print(" ЗАКРЫТИЕ СЕЛЛов. общий ProfitS = ", ProfitS," мин общий takeprofit СЕЛЛов = ", takeprofit); for (i=OrdersTotal()-1; i>=0; i--) if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol()==Symbol() && Magic_Прямой==OrderMagicNumber()) { if(OrderType()==OP_SELL) // if(OrderOpenPrice()-takeprofit*Point>=MarketInfo(Symbol(),MODE_ASK) || // OrderOpenPrice()+stoploss *Point<=MarketInfo(Symbol(),MODE_ASK)) if (OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD)*2,Digits()),clrGray)) Print(" закрытие SELL, тикет = ", OrderTicket()); else Print(" ошибка закрытия sell, Error = ", GetLastError()); } } Igor Makanu 2019.10.08 07:38 #9787 Roman Shiredchenko: 同僚 - これは何を閉じるエラーとすることができますし、どのように対処する?以下のコードを使用する場合、一方向のポジションが利益を上げている場合は、すべて決済する必要があります。ありがとうございます。 エラー内容は? 理論的にはうまくいくはずですが、スプレッドを考慮してスリッページとして加算するような洗練されたクロージングは見たことがありません。イマイチ、クロージングすることになったら、スリッページは最も注意すべきことではなく、クロージングエラーがより重要で、次にリクオート、そして接続が完全に失われます。 OrderClose(...)を取り去って、KimのClosePosBySelect()https://www.mql5.com/ru/forum/131859/page2#comment_3359664 に置き換える。 を使うことで、どこで壊れているのかがはっきりわかると思います。 Artyom Trishkin 2019.10.08 07:43 #9788 Igor Makanu: エラー内容は? 理論的にはうまくいくはずですが、スプレッドを考慮してスリッページとして加算するような洗練されたクロージングは見たことがありません。イマイチ、クロージングすることになったら、スリッページは最も注意すべきことではなく、クロージングエラーがより重要で、次にリクオート、そして接続が完全に失われます。 OrderClose(...)を削除し、代わりにKimのClosePosBySelect()にチケットを渡せば、どこでうまくいかないかが明らかになるはずです。 彼はそこにゼロプライスのクローズを持っています。したがって、MarketInfo-function が返すものを制御する必要があるが、制御はできない。しかし、4つのいつものように、一部の人々は、書き込みに使用されている - 何かを受け取った、何 - チェックしなかったが、引数を送信します。 Igor Makanu 2019.10.08 07:48 #9789 Artyom Trishkin:彼はそこにゼロプライスのクローズを持っています。したがって、MarketInfo-function が返すものを制御する必要があるが、制御はできない。しかし、いつものように4つの一部の人々が書くために使用されている - 何かを受け取った、何 - チェックしませんでしたが、引数を送信します。 私はそれを見て、私は彼が自分ですべての設定を解除することができるだろう、それは私が順序を 経由して選択した順序を閉じるためにチェックClosePosBySelect()を使用することを示唆した理由です - 彼はそれができる、少なくとも私は彼がコンストラクタでコードを組み立てて見たことがある ))) SZY: 1つのオーダーを2回クローズしているのではないかという別の疑惑があるのですが、Kimのf関数がログにプリントさ れるため、2番目の条件でクローズする別のループはないようです。 Artyom Trishkin 2019.10.08 07:53 #9790 Igor Makanu: 私はそれを見た、私はそれだけですべてのプライムを解除することができるだろう、それがOrderSelect()を介してハイライトされた注文の実績の閉鎖を使用して提案した理由です。 確かに、イゴールの関数はユーザーのためにすべてをやってくれる(そして、一部のユーザーはそれでミスを犯すことさえ管理している)。しかし、この場合、彼は自分で何かをすることを学ぶことはない。もちろん、彼らの自由ですが。 1...972973974975976977978979980981982983984985986...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは、アドバイスをお願いします。最後のテキストが表示されないのはなぜですか?ここで何が問題なのか?どうすれば直るのか、教えてください!
常に1つのオブジェクトの名前を取るだけなら、なぜループが必要なのでしょうか?
Iurii Tokman:
正確に言うと、これはできません。配列の境界から外れて しまうからです。10個のオブジェクトがある場合、最後のオブジェクトのインデックスは9となる。ゼロから数えるからです。
一度に1つのオブジェクトの名前を取るだけなら、なぜループなのか?
このオブジェクトのペネトレーションテキストを決定する方法を具体的に教えてください。
このオブジェクトのペネトレーションテキストを決定する方法を具体的に教えてください。
自分が何をしたいのか、なかなかわからない。
プロビット - 日中のテスト中の総利益を表示します。
Provit1 - その日の最大ドローダウンを表示します。
Provit2 - 1から始まる通常の数値列。
Provit3 - ターゲット!Provit1 を合計し、Provit2 で割る。テストの合計時間に対する1日の平均ドローダウンを知りたい。 Provit3の理解に役立つ。
同僚 - このクローズエラーの可能性と対処法について教えてください。以下は、利益を超えたら-すべての一方向ポジションを決済するコードです。 ありがとうございます。
同僚 - これは何を閉じるエラーとすることができますし、どのように対処する?以下のコードを使用する場合、一方向のポジションが利益を上げている場合は、すべて決済する必要があります。ありがとうございます。
エラー内容は?
理論的にはうまくいくはずですが、スプレッドを考慮してスリッページとして加算するような洗練されたクロージングは見たことがありません。イマイチ、クロージングすることになったら、スリッページは最も注意すべきことではなく、クロージングエラーがより重要で、次にリクオート、そして接続が完全に失われます。
OrderClose(...)を取り去って、KimのClosePosBySelect()https://www.mql5.com/ru/forum/131859/page2#comment_3359664 に置き換える。
を使うことで、どこで壊れているのかがはっきりわかると思います。
エラー内容は?
理論的にはうまくいくはずですが、スプレッドを考慮してスリッページとして加算するような洗練されたクロージングは見たことがありません。イマイチ、クロージングすることになったら、スリッページは最も注意すべきことではなく、クロージングエラーがより重要で、次にリクオート、そして接続が完全に失われます。
OrderClose(...)を削除し、代わりにKimのClosePosBySelect()にチケットを渡せば、どこでうまくいかないかが明らかになるはずです。
彼はそこにゼロプライスのクローズを持っています。したがって、MarketInfo-function が返すものを制御する必要があるが、制御はできない。しかし、4つのいつものように、一部の人々は、書き込みに使用されている - 何かを受け取った、何 - チェックしなかったが、引数を送信します。
彼はそこにゼロプライスのクローズを持っています。したがって、MarketInfo-function が返すものを制御する必要があるが、制御はできない。しかし、いつものように4つの一部の人々が書くために使用されている - 何かを受け取った、何 - チェックしませんでしたが、引数を送信します。
私はそれを見て、私は彼が自分ですべての設定を解除することができるだろう、それは私が順序を 経由して選択した順序を閉じるためにチェックClosePosBySelect()を使用することを示唆した理由です - 彼はそれができる、少なくとも私は彼がコンストラクタでコードを組み立てて見たことがある )))
SZY: 1つのオーダーを2回クローズしているのではないかという別の疑惑があるのですが、Kimのf関数がログにプリントさ れるため、2番目の条件でクローズする別のループはないようです。
私はそれを見た、私はそれだけですべてのプライムを解除することができるだろう、それがOrderSelect()を介してハイライトされた注文の実績の閉鎖を使用して提案した理由です。
確かに、イゴールの関数はユーザーのためにすべてをやってくれる(そして、一部のユーザーはそれでミスを犯すことさえ管理している)。しかし、この場合、彼は自分で何かをすることを学ぶことはない。もちろん、彼らの自由ですが。