エラー、バグ、質問 - ページ 743 1...736737738739740741742743744745746747748749750...3185 新しいコメント Ilyas 2012.05.24 15:16 #7421 Fia: 開発者の皆さん、こんにちは。MQL5コンパイラで、せめて警告を出すように変更できないでしょうか? このようなコード上のエラーに対してif(Flag_Exitl=true) {break;}この比較条件は正しくありません(==であるべきです)ので、常にbreakになります。この状況をコンパイラでどのように対処すれば(もし可能であれば)、コードを書くときにぶつかることが少なくなるでしょうか?(うまくいかないと思った、ifで代入と比較を分けた方がよさそうなので、疑問は解消される)。 条件として、右側に定数を持つブーリアン代入が含まれていれば、可能です。bool 型の 変数は、true/false と比較することはできず、直接使用することができる(本質的には yes/no フラグである)。 if(Flag_Exitl) {break;} あなたのやり方はバタバタしていますね。 Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип bool www.mql5.com Основы языка / Типы данных / Целые типы / Тип bool - Документация по MQL5 Valerii Mazurenko 2012.05.24 21:36 #7422 notused:定期的にエラー4401が発生する err_history_not_found以下のインジケーターコードは、(D1でない場合)起動直後にエラーになります。というか、一旦ターミナルを 起動して、チャートを開いて〜インジケータを付けると、エラーが出ます。端末が閉じられていなければ、起動時にこのようなエラーは発生しません。しかし、しばらくすると(数時間、私は2時間で十分でした)、すでに開いているチャートでエラーが発生することがわかります。(m30で動かしていました)。 代表、MetaQuotesさん、コメントお願いします!こんな感じでいいんでしょうか? Valerii Mazurenko 2012.05.24 21:50 #7423 struct SDaylyRange {double min, max, open, close;}; struct SNoDaylyRange { uint x; double y; }; void OnStart() { SNoDaylyRange tmp; SDaylyRange tmp2 = tmp; } このコードは、一度も警告を出さずにコンパイルされます。おそらくコンパイルすらできないはずですが Aleksey Lebedev 2012.05.25 03:59 #7424 notused:...エラー4401が定期的に表示される。 を参照してください。データアクセスの整理データアクセシビリティ HCCフォーマット、あるいはHC ready-to-useフォーマットのデータが入手できても、これらのデータをグラフに表示したり、mql5プログラムで使用したりすることが必ずしも無条件に可能とは限りません。 mql5-programから価格データやインジケータの値にアクセスする場合、ある瞬間、ある時点から利用できることが保証されていないことを忘れてはならない。これは、MetaTrader 5がmql5-programに必要なデータの完全なコピーを保存せず、リソースを節約するためにターミナルのデータベースに直接アクセスするという事実と関係があります。 すべての時間枠の価格履歴はHCC形式の共通データから構築されており、サーバーの更新はすべての時間枠のデータ更新と指標の再計算につながります。そのため、ついさっきまで利用できていたデータであっても、アクセスが拒否されることがあります。コピーレートインジケータにデータを要求する際、要求されたタイムシリーズがまだ構築されていないか、サーバからダウンロードする必要がある場合、この関数は直ちに-1を返しますが、ダウンロード/構築のプロセスは開始されます。 これがあるべき姿のようです。コピーレートSERIES_SYNCRONIZEDの 前に確認することができます... Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Информация об исторических данных по инструменту www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Информация об исторических данных по инструменту - Документация по MQL5 Valerii Mazurenko 2012.05.25 21:19 #7425 Swan:ファクトシート そうあるべきようだ。CopyRateSERIES_SYNCRONIZEDまで 確認できます...頭に灰を振りかけているところです、ええ。ありがとうございます。0小節しか変化しないのに、2小節の要求と履歴が利用できないのは不思議ですが。しかし、気にしないでください。ドキュメントに記載されているのであれば、エラーにはなりません Valerii Mazurenko 2012.05.25 21:29 #7426 で、 IsNewBarでエラーが出ていました。の代わりに CopyTime(sym, period, 0, 1, currentTime);と書くべきでした。 if (CopyTime(sym, period, 0, 1, currentTime) < 1) return (false);そして、数時間おきにIsNewBar(PERIOD_D1) == true→それ故にヒストリーアクセス不可を知ったのですが、1~2年前に書いた関数が思い浮かばなかったので、不思議に思っています。 Mykola Demko 2012.05.25 21:42 #7427 sergeev: インジケータが複数のバッファを持つカラータイプ(COLOR_ARROWなど)を扱えない理由コードサンプル2 つの DRAW_COLOR_ARROW (buf1 と buf2) を設定し、それぞれに追加のカラーバッファ(clr1 と clr2) を設定します。同時に、2番目のバッファbuf2にはHigh/Lowバーが取得されるものの、チャートには表示されません。このバッファの矢印の色 = clrNONE と思われます。つまり、clr2バッファの色設定が機能しないbuf1/clr1の値のみが表示され、2番目のバッファの値は受信されているにもかかわらず、色付きで表示されていません。エラーはどこにあるのか?MQL5 DNAで」と答えるために作られただけの質問です。DRAW_FILLINGや比較的正常なDRAW_HISTOGRAM2(もちろんそれほど安定していませんが、バグが発生します)でもこのようなナンセンスなことがあります。バグの不安定さだけを見ると、CDがないと回答が得られない可能性が高いというのが結論です。 Igor Makanu 2012.05.27 17:39 #7428 Win32用Bild 6423次元double配列の場合,Print関数で出力する際に誤って配列の限界を超えて しまうという問題があるスクリプトが勝手に無限ループに入る。int i1,i2,i3; double out[3][7][7]; for(i1=0;i1<7;i1++) out[0][0][i1] = inp[i1]; double sum; sum = 0.0; for(i3=0;i3<3;i3++){ for(i2=0;i2<7;i2++){ for(i1=1;i1<7;i1++) sum += W[i3][i2][i1] * out[i3][i2][i1-1]; out[i3][i2][i1] = f(sum + WT[i3][i2]); sum = 0.0; Print("out[",i3,"][",i2,"][",i1,"] = ",out[i3][i2][i1]); } } Print("sum = ",sum); } //------------------------------------------------------- double f(double x){return(1/(1+MathExp(-x)));} --- 2012.05.27 18:34 #7429 IgorM:Win32用Bild 642Print関数で出力する際に、誤って配列の外に出てしまうと、3次元配列の2重の問題が発生することがあります。実際には、2行前にオーバーランが発生していますで、存在しない要素から指数を呼び出しているわけですが、おそらくはゼロでしょう。ログを見る Igor Makanu 2012.05.27 18:59 #7430 sergeev:一般に、境界外は2行前に発生するで、存在しない要素から指数を呼び出しているわけですが、おそらくはゼロでしょう。ログを見る そうなんです、ランタイムエラーが発生しないコードを引用しましたが、スクリプトをループさせる 1...736737738739740741742743744745746747748749750...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
開発者の皆さん、こんにちは。
MQL5コンパイラで、せめて警告を出すように変更できないでしょうか?
このようなコード上のエラーに対して
if(Flag_Exitl=true) {break;}
この比較条件は正しくありません(==であるべきです)ので、常にbreakになります。
この状況をコンパイラでどのように対処すれば(もし可能であれば)、コードを書くときにぶつかることが少なくなるでしょうか?
(うまくいかないと思った、ifで代入と比較を分けた方がよさそうなので、疑問は解消される)。
bool 型の 変数は、true/false と比較することはできず、直接使用することができる(本質的には yes/no フラグである)。
定期的にエラー4401が発生する
err_history_not_found
以下のインジケーターコード
は、(D1でない場合)起動直後にエラーになります。というか、一旦ターミナルを 起動して、チャートを開いて〜インジケータを付けると、エラーが出ます。端末が閉じられていなければ、起動時にこのようなエラーは発生しません。
しかし、しばらくすると(数時間、私は2時間で十分でした)、すでに開いているチャートでエラーが発生することがわかります。(m30で動かしていました)。
...エラー4401が定期的に表示される。
を参照してください。
データアクセスの整理
データアクセシビリティ
HCCフォーマット、あるいはHC ready-to-useフォーマットのデータが入手できても、これらのデータをグラフに表示したり、mql5プログラムで使用したりすることが必ずしも無条件に可能とは限りません。
mql5-programから価格データやインジケータの値にアクセスする場合、ある瞬間、ある時点から利用できることが保証されていないことを忘れてはならない。これは、MetaTrader 5がmql5-programに必要なデータの完全なコピーを保存せず、リソースを節約するためにターミナルのデータベースに直接アクセスするという事実と関係があります。
すべての時間枠の価格履歴はHCC形式の共通データから構築されており、サーバーの更新はすべての時間枠のデータ更新と指標の再計算につながります。そのため、ついさっきまで利用できていたデータであっても、アクセスが拒否されることがあります。
コピーレート
インジケータにデータを要求する際、要求されたタイムシリーズがまだ構築されていないか、サーバからダウンロードする必要がある場合、この関数は直ちに-1を返しますが、ダウンロード/構築のプロセスは開始されます。ファクトシート
そうあるべきようだ。CopyRateSERIES_SYNCRONIZEDまで 確認できます...頭に灰を振りかけているところです、ええ。ありがとうございます。
0小節しか変化しないのに、2小節の要求と履歴が利用できないのは不思議ですが。しかし、気にしないでください。ドキュメントに記載されているのであれば、エラーにはなりません
で、 IsNewBarでエラーが出ていました。
の代わりに
と書くべきでした。
そして、数時間おきにIsNewBar(PERIOD_D1) == true→それ故にヒストリーアクセス不可を知ったのですが、1~2年前に書いた関数が思い浮かばなかったので、不思議に思っています。
インジケータが複数のバッファを持つカラータイプ(COLOR_ARROWなど)を扱えない理由
コードサンプル
2 つの DRAW_COLOR_ARROW (buf1 と buf2) を設定し、それぞれに追加のカラーバッファ(clr1 と clr2) を設定します。
同時に、2番目のバッファbuf2にはHigh/Lowバーが取得されるものの、チャートには表示されません。このバッファの矢印の色 = clrNONE と思われます。つまり、clr2バッファの色設定が機能しない
buf1/clr1の値のみが表示され、2番目のバッファの値は受信されているにもかかわらず、色付きで表示されていません。
エラーはどこにあるのか?
MQL5 DNAで」と答えるために作られただけの質問です。
DRAW_FILLINGや比較的正常なDRAW_HISTOGRAM2(もちろんそれほど安定していませんが、バグが発生します)でもこのようなナンセンスなことがあります。
バグの不安定さだけを見ると、CDがないと回答が得られない可能性が高いというのが結論です。
Win32用Bild 642
3次元double配列の場合,Print関数で出力する際に誤って配列の限界を超えて しまうという問題がある
スクリプトが勝手に無限ループに入る。
Win32用Bild 642
Print関数で出力する際に、誤って配列の外に出てしまうと、3次元配列の2重の問題が発生することがあります。
実際には、2行前にオーバーランが発生しています
で、存在しない要素から指数を呼び出しているわけですが、おそらくはゼロでしょう。
ログを見る
一般に、境界外は2行前に発生する
で、存在しない要素から指数を呼び出しているわけですが、おそらくはゼロでしょう。
ログを見る