エラー、バグ、質問 - ページ 541 1...534535536537538539540541542543544545546547548...3185 新しいコメント Anton 2011.10.12 09:25 #5401 220Volt:そこで、杞憂に終わらないように、上に書いたような状況をシミュレーションしてみました(引用から抜け出せないので、引用できません :))。 M15で以下のコードを実行しました。スクリプトの実行中に、インターネットに接続したり切断したりしました。写真はその結果です。 なるほど。訂正させていただきます。 --- 2011.10.12 12:59 #5402 servicedeskにあるのか、コードのバグなのか? この指標は、終値から下に向かって赤色で5つのポイントレベルを構築する必要があります。しかし、バッファは2つしか表示されず(全部カウントされますが)、赤ではなく緑(黒をコンパイルした後)です。 私だけなのか、それとも全体的にそうなのか、ご確認ください...?#define N 5 #property indicator_chart_window #property indicator_buffers 5 #property indicator_plots 5 #property indicator_color1 clrRed #property indicator_color2 clrRed #property indicator_color3 clrRed #property indicator_color4 clrRed #property indicator_color5 clrRed #property indicator_width1 3 #property indicator_width2 3 #property indicator_width3 3 #property indicator_width4 3 #property indicator_width5 3 #property indicator_type1 DRAW_COLOR_ARROW #property indicator_type2 DRAW_COLOR_ARROW #property indicator_type3 DRAW_COLOR_ARROW #property indicator_type4 DRAW_COLOR_ARROW #property indicator_type5 DRAW_COLOR_ARROW //------------------------------------------------------------------ class CClrHist class CClrHist { public: double buf[]; CClrHist() { }; }; CClrHist bufs[N]; // массив буферов //------------------------------------------------------------------ OnInit int OnInit() { for (int i=0; i<N; i++) SetIndexBuffer(i, bufs[i].buf, INDICATOR_DATA); return(0); } //------------------------------------------------------------------ OnCalculate int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { for (int i=0; i<N; i++) for (int j=rates_total-1; j>=0; j--) { bufs[i].buf[j]=close[j]; bufs[i].buf[j]-=i*100*Point(); } return(rates_total); } Anton 2011.10.12 14:53 #5403 sergeev: servicedeskにあるのか、コードのバグなのか? この指標は、終値から下に向かって赤色で5つのポイントレベルを構築する必要があります。しかし、バッファは2つしか表示されず(全部カウントされますが)、赤ではなく緑(黒をコンパイルした後)です。 私だけなのか、それとも全体的にそうなのか、ご確認ください...?#property indicator_type1 DRAW_ARROW#property indicator_type2 DRAW_ARROW#property indicator_type3 DRAW_ARROW#property indicator_type4 DRAW_ARROW#property indicator_type5 DRAW_ARROW Yedelkin 2011.10.12 19:31 #5404 masharov: ...私は、標準ライブラリは、他の人の手本となるべき理想的なコードだと考えています。 そのような考えは、一刻も早く捨て去ることが望ましいとしか言いようがない。 標準ライブラリに反対はしませんが、「プログラムを書きやすくするために」他人のコードを検証もせずに信用するのはいかがなものでしょうか?- ただし、Expert Advisorの最初の起草段階は除く。いわば、ルーティンワークのスピードアップのために。 Anatoli Kazharski 2011.10.13 11:25 #5405 ログブックに「異常終了」のメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5 削除済み 2011.10.13 12:29 #5406 tol64:ログブックに「異常終了」のメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。ループの中でIsStopped()を使うか?このような問題については、こちらや こちら、こちらで 紹介しています。また、コードのどこに「ボトルネック」があるのかを考える必要があります...。私の理解では、このエラーはプログラムが「早期」に終了 した場合(チャート/ターミナルが閉じられたとき、またはEAが再コンパイルされたとき)に発生し、このプロセスの間にEAによって何らかの作業が行われます。 Anatoli Kazharski 2011.10.13 13:30 #5407 Interesting:ループの中でIsStopped()を使うか?同様の問題についてはこちら、こちら、こちらを ご覧ください。コードのボトルネックについても考えてみてください...。私の理解では、Expert Advisor が何らかの作業を行っている間に、プログラムが「早期」に終了 した場合(チャート/ターミナルを閉じた場合、または Expert Advisor を再コンパイルした場合)に、このエラーが発生します。ありがとうございます。リンク先は同じ状況です。 私はループの中で IsStopped()を使うことはなく、break、continue、returnだけを使って います。 今のところ、IsStopped()とプログラムが遅くなることとの関連は見られません。やはり、フリーズしてしまうと、他の操作ができなくなりますから。それとも私の勘違いでしょうか?もうひとつ。IsStopped()は、ターミナルを閉じたり、Expert Advisorをチャートから削除するなど、プログラムの実行を強制的に停止する必要があるときに便利です。そして、Expert Advisorを使い続ける必要があります。 削除済み 2011.10.13 13:53 #5408 tol64:ありがとうございます。リンク先は同じ状況です。 ループの中で IsStopped()はどこにも使わず、break、continue、returnだけにして います。 今のところ、IsStopped()とプログラムのスローダウンとの関連は見られません。フリーズしてしまうと、他の操作ができなくなります。それとも私の勘違いでしょうか?もうひとつ。IsStopped()は、ターミナルを閉じたり、Expert Advisorをチャートから削除するなど、プログラムの実行を 強制的に停止する必要がある場合に便利です。そして、Expert Advisorを使い続ける必要があるのです。IsStopped()で、エラーになる件です。なぜ端末やExpertが遅くなるのかは推測すらできない(実行時の条件も不明、Expert Advisorについても不明)。 Mykola Demko 2011.10.13 15:01 #5409 tol64:ログブックに「異常終了」というメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。異常終了とは、プログラムに不自然な介入をしたこと、つまり実行時に再コンパイルしたことで、プログラムの中断と再初期化が発生することです。実行中にゼロ除算をしたり、プログラムを中断した場合も同様ですが、プログラムが再チューニングされれば、そのようなエントリーは出てきません。このため、IsStoppedを チェックすることで、プログラムが強制的に終了するのではなく、自分自身の戻り値で終了できるようにすることが推奨されます。 gumgum 2011.10.13 16:22 #5410 以下の項目を追加する予定はありますか?チャート 上のポジションをダブルクリックすると、ポジション管理メニューが表示されます。複数のポジションをハイライトして一度にクローズ????ありがとうございます。 1...534535536537538539540541542543544545546547548...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そこで、杞憂に終わらないように、上に書いたような状況をシミュレーションしてみました(引用から抜け出せないので、引用できません :))。
M15で以下のコードを実行しました。
スクリプトの実行中に、インターネットに接続したり切断したりしました。写真はその結果です。
servicedeskにあるのか、コードのバグなのか?
この指標は、終値から下に向かって赤色で5つのポイントレベルを構築する必要があります。
しかし、バッファは2つしか表示されず(全部カウントされますが)、赤ではなく緑(黒をコンパイルした後)です。
私だけなのか、それとも全体的にそうなのか、ご確認ください...?
servicedeskにあるのか、コードのバグなのか?
この指標は、終値から下に向かって赤色で5つのポイントレベルを構築する必要があります。
しかし、バッファは2つしか表示されず(全部カウントされますが)、赤ではなく緑(黒をコンパイルした後)です。
私だけなのか、それとも全体的にそうなのか、ご確認ください...?
#property indicator_type2 DRAW_ARROW
#property indicator_type3 DRAW_ARROW
#property indicator_type4 DRAW_ARROW
#property indicator_type5 DRAW_ARROW
...私は、標準ライブラリは、他の人の手本となるべき理想的なコードだと考えています。
そのような考えは、一刻も早く捨て去ることが望ましいとしか言いようがない。
標準ライブラリに反対はしませんが、「プログラムを書きやすくするために」他人のコードを検証もせずに信用するのはいかがなものでしょうか?- ただし、Expert Advisorの最初の起草段階は除く。いわば、ルーティンワークのスピードアップのために。
ログブックに「異常終了」のメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?
まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。
ログブックに「異常終了」のメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?
まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。
ループの中でIsStopped()を使うか?
このような問題については、こちらや こちら、こちらで 紹介しています。また、コードのどこに「ボトルネック」があるのかを考える必要があります...。
私の理解では、このエラーはプログラムが「早期」に終了 した場合(チャート/ターミナルが閉じられたとき、またはEAが再コンパイルされたとき)に発生し、このプロセスの間にEAによって何らかの作業が行われます。
ループの中でIsStopped()を使うか?
同様の問題についてはこちら、こちら、こちらを ご覧ください。コードのボトルネックについても考えてみてください...。
私の理解では、Expert Advisor が何らかの作業を行っている間に、プログラムが「早期」に終了 した場合(チャート/ターミナルを閉じた場合、または Expert Advisor を再コンパイルした場合)に、このエラーが発生します。
ありがとうございます。リンク先は同じ状況です。 私はループの中で IsStopped()を使うことはなく、break、continue、returnだけを使って います。
今のところ、IsStopped()とプログラムが遅くなることとの関連は見られません。やはり、フリーズしてしまうと、他の操作ができなくなりますから。それとも私の勘違いでしょうか?
もうひとつ。IsStopped()は、ターミナルを閉じたり、Expert Advisorをチャートから削除するなど、プログラムの実行を強制的に停止する必要があるときに便利です。そして、Expert Advisorを使い続ける必要があります。
ありがとうございます。リンク先は同じ状況です。 ループの中で IsStopped()はどこにも使わず、break、continue、returnだけにして います。
今のところ、IsStopped()とプログラムのスローダウンとの関連は見られません。フリーズしてしまうと、他の操作ができなくなります。それとも私の勘違いでしょうか?
もうひとつ。IsStopped()は、ターミナルを閉じたり、Expert Advisorをチャートから削除するなど、プログラムの実行を 強制的に停止する必要がある場合に便利です。そして、Expert Advisorを使い続ける必要があるのです。
ログブックに「異常終了」というメッセージが頻繁に表示されるのですが。このような衝突が起こる可能性がある場合、どなたかお気づきになられたことはありますか?
まだ、原因がわからないんです。ただ一つ言えることは、ターミナルをしばらくアイドル状態にしておいたり、その時だけ別のプログラム(例えば、Excel)を使用すると、ターミナルに戻った後に、テストしているExpert Advisorが正しく動作し始めるということです。つまり、取引操作は 問題なく行えるのです。唯一の問題は、トレーディングパネルやインフォメーションパネルとのやり取りです。OnChartEvent()が不具合を起こしているようです。パネルの切り替えが、何か他の処理に追われているような感じで、かなり遅くなるようになりました。エターナルループは使いません。また、この瞬間のCPU負荷は、何かが活発に使われていることを示すものではありません。Expert Advisorのリコンパイルが有効です。再コンパイル時、EAが初期化される前に、ジャーナルにAbnormal termination messageが表示されます。すると、プログラムが正常に初期化され、すべてが時計のように動き出すのです。
異常終了とは、プログラムに不自然な介入をしたこと、つまり実行時に再コンパイルしたことで、プログラムの中断と再初期化が発生することです。
実行中にゼロ除算をしたり、プログラムを中断した場合も同様ですが、プログラムが再チューニングされれば、そのようなエントリーは出てきません。このため、IsStoppedを チェックすることで、プログラムが強制的に終了するのではなく、自分自身の戻り値で終了できるようにすることが推奨されます。
以下の項目を追加する予定はありますか?
チャート
上のポジションをダブルクリックすると、ポジション管理メニューが表示されます。
複数のポジションをハイライトして一度にクローズ![](https://c.mql5.com/3/5/Pos__1.JPG)
????
ありがとうございます。