エラー、バグ、質問 - ページ 1221

 
Fry:

エラー

挑戦すること。


ログブック内のメッセージにつながる。

ヒストリーベース「RTS-12.14」無効なバーが1本削除されました。


このエラーに辟易しています。なかでも、通信経路に負荷をかけるということです。

同じエラーが他の未確認の理由でも表示されます。

しかし、面白いことに、他の楽器にはあまり登場しない。RTSの先物で最も多く表示されます。


数ヶ月前にservicedeskに書き込んだのですが、返信がありません(リクエスト開始:2014.07.28 13:41,#1046215)


現在(過去も)のRTS先物(ブローカー「O...」のデモ口座)の1ティックごとにこのエラーを発生させるインデュークのコードを添付します。

これは端末のバグでしょうか?それともブローカーで?それとも私?

どうしたらいいのでしょうか?それ以外のD1タイムフレームのバー数を知るには?

こんばんは。試してみましたか?

SeriesInfoInteger( _Symbol, PERIOD_D1, SERIES_BARS_COUNT );
 
Tapochun:

こんばんは。これを試したことがありますか?

こんばんは。試してみたが、どれも同じだ。

結果は同じです。ティック ごとにログにエラーが表示されます。

アイデアをありがとうございました。SeriesInfoInteger()が内部でBarsにアクセスしていないのであれば、すべてはブローカーサーバーの「狭い」データのねじ込みである可能性が高くなります。

それも、私の質問に対する納得のいく答えです。

結局のところ、どこでエラーが出るのか、回避できるのか、などがわからないのです。

 
Fry:

こちらこそ、こんばんは。試してみたが、同じだった。

結果は同じです。ティックごとにログにエラーが表示されます。

アイデアをありがとうございました。SeriesInfoInteger()が内部でBarsにアクセスしていないのであれば、ブローカー側のサーバーで「狭い」データジョイントである可能性が高くなります。

それも、私の質問に対する納得のいく答えです。

結局のところ、どこでエラーが出るのか、回避できるのか、などわからない。

メッセージはいくつかの "壊れた "バーを削除するので、おそらく本当にブローカーでエラーが発生したのでしょう...。とか、途中でデータが "殺される "とか。でも、これはあくまで私の推測です。ところで、GetLastError() は何か教えてくれるのでしょうか?はい、そしてBars()は何を返すのでしょうか?
 
Tapochun:
おそらく、ブローカーのエラーでしょう。メッセージはいくつかの「壊れた」バーを削除するからです。とか、データが途中で "殺される "とか。でも、これはあくまで私の推測です。ところで、GetLastError()は何か教えてくれるのでしょうか?はい、そしてBars()は何を返すのでしょうか?

Bars()が0を返した場合、エラー4001(ERR_INTERNAL_ERROR 4001 Unexpected internal error)が発生する。

しかし、時々、Bars()はまだバーの数を返し、その後、エラーはありません(Bars()はエラーステータスを変更しません)。

 

MT4 ビルド 722、ME4 ビルド 989

現在のゼロバーデータをコピーしようとしています。

      MqlRates rates[1];
      int n=CopyRates(_Symbol,PERIOD_CURRENT,time[0],1,rates); 
      Print("n=",n);

n=0、すなわちデータがコピーされていないことを表示します。

PERIOD_CURRENTの 代わりに_Periodを記述 すると動作 します。

ゼロでない バーデータ(time[1]など)をコピーすれば、PERIOD_ CURRENTと書いても_Periodと書いても動作 します。

P.S. CDにしますか?

 
Fry:

Bars()が0を返した場合、エラー4001(ERR_INTERNAL_ERROR 4001 Unexpected internal error)が発生する。

しかし、時々、Bars()はまだバーの数を返し、その後、エラーはありません(Bars()はエラーステータスを変更しません)。

このエラーの「意外性」は、何かが届く暇もなく削除され、その結果、エラーが発生したことを改めて示唆している。私の理解では、D1でバーの本数を 調べる必要があるのですが、毎ティックごとに行う必要があるのでしょうか?または、1分に1回以下の頻度でデータを要求するような関数を書いてください。そして、エラーが発生するかどうかを確認します。

 
kPVT:

MT4 ビルド 722、ME4 ビルド 989

現在のゼロバーデータをコピーしようとしています。

n=0、すなわちデータがコピーされていないことを表示します。

PERIOD_CURRENTの 代わりに_Periodを記述 すると動作 します。

ゼロでない バーデータ(time[1]など)をコピーすれば、PERIOD_ CURRENTと書いても_Periodと書いても動作 します。

P.S. CDにしますか?

こんばんは。試してみてください...代替品があれば、この欠陥を急いで探すことはないでしょうけど。1週間前から2つのアプリケーションがぶら下がっているのですが...。答えも言葉もない。
 
Fry:

どうすればいいのか?D1タイムフレームのバー数を知るには、他にどのような方法がありますか?

D1でインジケーターが動作しているか?
 
MigVRN:
D1でインジケーターが動作しているか?

いいえ、もちろんそんなことはありません。そこが肝心なところです。インジケータ自体がD1で動作している場合は、constint rates_total, // input timeseriesの サイズ」とトリビアルに記述しています。

ここでは、その具体的な使用例をご紹介します。

いくつかのインジケータを初期化し、ハンドルを取得しました(ここではすべてOKです)。次に、ontik関数において、呼び出し時にすべてのデータが必要なハンドル(外部インデックス)上で計算されていることを確認する必要があります。そして、これが私の仕事です。

   //not all data may be calculated
   if (BarsCalculated(hCCI)<rates_total) {Print("Not all data of trend CCI is calculated. Error#",GetLastError()); return(0);}
   if (Period()!=PERIOD_D1 && BarsCalculated(hDayTrand)<Bars(Symbol(),PERIOD_D1)) return(0);

そしてこの場合、hDayTrandは再帰的ハンドル(同じインジケータでD1だけロードされる)です。

私は、ターミナルからのドキュメントと例、および推奨事項に従ってすべてを行っているようです。その結果、これらのものはすべてログの中でスクランブルされ、1分間に何メガバイトも食べられてしまうのです。

 
Fry:

いいえ、もちろんそんなことはありません。ここがポイントです。インジケータ自体がD1で動作している場合は、constint rates_total, // input timeseriesの サイズ」とトリビアルに記述しています。

ここでは、その具体的な使用例をご紹介します。

いくつかのインジケータを初期化し、ハンドルを取得しました(ここではすべてOKです)。次に、ontik関数の中で、呼び出した時点で、必要なハンドル(外部インデックス)のデータがすべて計算済みであることを確認する必要があります。そして、これが私の仕事です。

そしてこの場合、hDayTrandは再帰的ハンドル(同じインジケータでD1だけロードされる)です。

私は、ターミナルからのドキュメントと例、および推奨事項に従ってすべてを行っているようです。その結果、このようなものがログに書き込まれ、1分間に何メガバイトも消費されることになる。

IMHOは、あなたがブローカー(Otkrytie、私は理解しているので)に連絡する必要があります。本当のアカウントには無いから、サーバーの設定にあるんだろう、きっと。