エラー、バグ、質問 - ページ 438 1...431432433434435436437438439440441442443444445...3185 新しいコメント Yedelkin 2011.06.30 18:59 #4371 joo: もしかしたら、コードにスリープがあるだけで(ない場合に比べて)全体の実行時間に何らかの影響を与えるかもしれませんが、テスターではスリープがカウントされないという事実、それは確かなことです。 まあ、ここは専門家ではないので...。Sleep()関数に 負の 引数を与えて処理するのに半分遅れ、17日間ものテスト時間をロスしたこと、これが事実です。 Serge 2011.06.30 19:53 #4372 コードは端末をハングアップさせる。 MqlRates s1[]; int count=TerminalInfoInteger(TERMINAL_MAXBARS); int s1_copied=CopyRates(Symbol(),Period(),0,count,s1); if(s1_copied<=0) Print("Ошибка копирования ценовых данных ",GetLastError()); else Print("Скопировано ",ArraySize(s1)," баров"); Comment(ArrayMaximum(s1,0,WHOLE_ARRAY)); ArrayFree(s1);その理由は何でしょうか。 Victor Kirillin 2011.06.30 19:58 #4373 Graff:コードが端末をハングアップさせる。その理由は何でしょうか。 まずは手始めに。 int count=TerminalInfoInteger(TERMINAL_MAXBARS); Print("count=",count); 端末が Unlimに設定されていませんか? Serge 2011.06.30 20:16 #4374 uncleVic: まずは手始めに。Unlimは端末の設定 にないのでしょうか? 最大バー数が5000に設定されていますが、この値を小さくすることはできますか? Victor Kirillin 2011.06.30 20:36 #4375 Graff: バーの最大値が5000になっていますが、この値を小さくすることはできますか?もっと少なくてもいいと思う(確信がない)。Print(count)は何を示しているのでしょうか? Serge 2011.06.30 20:44 #4376 uncleVic:もっと少ないのは無理だと思う(確信がない)。さて、Print(count)は何を返すのでしょうか?2011.06.30 21:41:29 MultiInstruments3 (EURUSD,M5) 5000 bars copied2011.06.30 21:41:29 MultiInstruments3 (EURUSD,M5) count=5000コメントで -1別の記号で試してみましたが、コメントには表示されませんでした -1REMARK: 数秒後にフリーズします。int OnInit()からコードを開始します。 Renat Fatkhullin 2011.06.30 20:47 #4377 joo: はい、そしてテスターではSleepは無視されるため、テスターで動作します。スリープテスターでは、スリープを 完全かつ正確にエミュレートしています。この例では、整数値を扱う際の算術オーバーフローにより、ちょうど17.5日分の待ち時間が発生していました。テスターはまさにその時間を待っていた。したがって、テスターやMQL5の実行環境にはミスはないが、プログラマーが作った明らかなミスがある。 Andrey Dik 2011.06.30 21:13 #4378 Renat:つまり、テスターやMQL5実行環境のミスはないが、 プログラマーの明らかなミスが あるのだ。 極めて明確です。レナート テスターでは、スリープを完全に、しかもかなり正確にエミュレートしています。 整数値を扱う際の算術オーバーフローにより、待ち時間は17.5日となっています。テスターの待ち時間はまさにその通り。 うーん、そうきましたか。そして、スリープは無視されるだけだと勘違いしていました。では、例えばテスト モードのExpert AdvisorでSleep(3ヶ月)を設定すると、テスターは単純に3ヶ月間履歴を早送りしてくれるのでしょうか?- それは素晴らしいことです。 Renat Fatkhullin 2011.06.30 21:33 #4379 はい、巻き戻されます。機能の限界は、ミリ秒カウンタが一杯になるまでの49日間だけです。 待機期間中もテスターは、以前に発注した注文の処理を含め、取引環境を完全にエミュレートしています。MT5のテスターは非常に細かい。 Victor Kirillin 2011.06.30 22:26 #4380 Graff:2011.06.30 21:41:29 MultiInstruments3 (EURUSD,M5) 5000 bars copied2011.06.30 21:41:29 MultiInstruments3 (EURUSD,M5) count=5000コメントで -1別の記号で試してみましたが、コメントには表示されませんでした -1REMARK: 数秒後にフリーズします。int OnInit()のコードを実行します。そうなんです、象さんにも気がつかなかったんです。この台詞を聞くと、とても怪しいと思います。 Comment(ArrayMaximum(s1,0,WHOLE_ARRAY)); ArrayMaximum は、1次元の数値配列 の最大項目を検索する。 intArrayMaximum(二重array[],// 検索する配列intstart=0// どのインデックスから検索を開始 するかを指定します.intcount=WHOLE_ARRAY,// チェックするインデックスの数); と、私たちの場合は MqlRates s1[]; コンパイラはこれを省略してはいけないと思う。何があるんだ?警告もないのか?もし、そうでなければ、サービスデスクにリクエストして ください。いい? Общайтесь с разработчиками через Сервисдеск! www.mql5.com Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы. 1...431432433434435436437438439440441442443444445...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
もしかしたら、コードにスリープがあるだけで(ない場合に比べて)全体の実行時間に何らかの影響を与えるかもしれませんが、テスターではスリープがカウントされないという事実、それは確かなことです。
コードは端末をハングアップさせる。
その理由は何でしょうか。
コードが端末をハングアップさせる。
その理由は何でしょうか。
端末が Unlimに設定されていませんか?
まずは手始めに。
Unlimは端末の設定 にないのでしょうか?
バーの最大値が5000になっていますが、この値を小さくすることはできますか?
もっと少なくてもいいと思う(確信がない)。
Print(count)は何を示しているのでしょうか?
もっと少ないのは無理だと思う(確信がない)。
さて、Print(count)は何を返すのでしょうか?
コメントで -1
別の記号で試してみましたが、コメントには表示されませんでした -1
REMARK: 数秒後にフリーズします。int OnInit()からコードを開始します。
はい、そしてテスターではSleepは無視されるため、テスターで動作します。
スリープテスターでは、スリープを 完全かつ正確にエミュレートしています。
この例では、整数値を扱う際の算術オーバーフローにより、ちょうど17.5日分の待ち時間が発生していました。テスターはまさにその時間を待っていた。
したがって、テスターやMQL5の実行環境にはミスはないが、プログラマーが作った明らかなミスがある。
Renat:
つまり、テスターやMQL5実行環境のミスはないが、 プログラマーの明らかなミスが あるのだ。
極めて明確です。
レナート
テスターでは、スリープを完全に、しかもかなり正確にエミュレートしています。
整数値を扱う際の算術オーバーフローにより、待ち時間は17.5日となっています。テスターの待ち時間はまさにその通り。
うーん、そうきましたか。そして、スリープは無視されるだけだと勘違いしていました。
では、例えばテスト モードのExpert AdvisorでSleep(3ヶ月)を設定すると、テスターは単純に3ヶ月間履歴を早送りしてくれるのでしょうか?- それは素晴らしいことです。
待機期間中もテスターは、以前に発注した注文の処理を含め、取引環境を完全にエミュレートしています。MT5のテスターは非常に細かい。
コメントで -1
別の記号で試してみましたが、コメントには表示されませんでした -1
REMARK: 数秒後にフリーズします。int OnInit()のコードを実行します。
そうなんです、象さんにも気がつかなかったんです。
この台詞を聞くと、とても怪しいと思います。
ArrayMaximum
は、1次元の数値配列 の最大項目を検索する。
intArrayMaximum(
二重array[],// 検索する配列
intstart=0// どのインデックスから検索を開始 するかを指定します.
intcount=WHOLE_ARRAY,// チェックするインデックスの数
);
と、私たちの場合は
MqlRates s1[];
コンパイラはこれを省略してはいけないと思う。何があるんだ?警告もないのか?もし、そうでなければ、サービスデスクにリクエストして ください。いい?