インジケータが破損する

 

全て

あるインジケータを開発したのですが、最初の16時間くらいは正常に動作するのですが、その後、破損してチャート全体に線が引かれるようになりました。IndicatorCounted()の値もチェックしていますが、破損した線が出るときにその値が負になることはありません。有効な動き/線」の履歴が失われるため、インジケータ・バッファを 再初期化したくありません。この問題を解決するために何か提案はありますか?

正常なインジケータと破損したインジケータの画像は、添付のZIPファイルにあります。

ファイル:
images.zip  61 kb
 
コードなし=ヘルプなしということです。
 
WHRoeder:
コードなし=ヘルプなしということです。

ありがとうございました。
 

親愛なる皆さん。

metaEditor 4をダウンロードするためのリンクを送っていただけませんか?

ありがとうございます。

 
tiger961:

親愛なる皆さん。

metaEditor 4をダウンロードするためのリンクを送っていただけませんか?

ありがとうございます。


Tigerさんは他のスレッドに重ねるのではなく、新しいスレッドを立ち上げる必要があります。

このエディターは、どのブローカーからもMT4ターミナルの無料ダウンロードで入手できます。

 

さらに詳しい情報

a) インジケータの破損は、Windows 64ビットプラットフォームでのみ発生します。

b) 破損前と破損後のインジケータ配列のダンプを取りました - 同じものが同封のxlsファイルにコメント付きであります。

c) "Max Bars in Chart "の設定は、チャートを開いた時のみ適用されるのでしょうか?バーカウントと関連するインジケータカウントは、バーが追加されるたびに増加します。

d) コードの使用方法は以下の通りです。

宣言文

<code>

#property indicator_chart_window

#property indicator_buffers 8

#property indicator_color1 レッド

#プロパティ indicator_width1 2

</code>

インジケーターの初期化について

<コード

SetIndexBuffer(0, Down1)を設定します。

SetIndexStyle(0, DRAW_LINE).SetIndexEmptyValue(0)を設定します。

SetIndexEmptyValue(0, EMPTY_VALUE)を設定します。

</code>

ラインデータ追加用

<code>

double a = (endlevel - startlevel) / (start - end);

double y;

int bar;


for(int x = 0; x <= スタート - エンド; x++) { { y = a * x; (スタート - エンド)

y = a * x;

bar = start - x;

serie[bar] = startlevel + y;

}

</code>

 
AnkaSoftware:
a) インジケーターの破損はWindows 64bitプラットフォームでのみ発生します。
Vista/Win7でint \program files*をインストールしないでください。
 
WHRoeder:
Vista/Win7でint \program files*をインストールしないでください。
右、C:/metatrader4/<terminal dir>に インストールされています。この問題はパスの問題ではなく、メモリ破壊によるものだと思います。インジケータは最初の3-4時間は正常に動作しますが、その後、破損が始まります。
 

何もないのではと思うのですが.

チャートを右にスクロールして新しいヒストリカルデータを追加したときにも、同じようなことが起こったように見えるのですが。

 
RaptorUK:

何もないのではと思うのですが.

チャートを右にスクロールして、新しいヒストリカルデータをチャートに追加したときにも、同じようなことが起こったように思います。

新しいヒストリカル・データがチャートに追加される」って、どうやって?インジケータを起動し、そのまま放置しています。ルックバックは1000本固定です。インジケータはヒストリカルデータを一切ロードしていません。

開発チームのどなたか、これを見ていただけませんか?

 
AnkaSoftware:

うーん、「新しいヒストリカルデータがチャートに追加される」、どうやって?インジケータを起動し、そのまま放置しています。ルックバックは1000本固定にしています。インジケータはヒストリカルデータを一切ロードしていません。

どなたか開発チームの方に見ていただけませんか?

私はRaptorUKと同意見です。これがあなたのコードではなくMT4のバグであったり、64ビットWindowsに関係するものであったりする可能性は極めて低いです。MT4のパフォーマンスや安定性の問題で、根拠があると判明した報告は見たことがありますが(例えば、https://www.mql5.com/en/forum/135355)、MT4の言語バグで、正しいと判明した報告は見たことがありません。

通常移動」と「エラー移動」のスクリーンショットの違いを一つ指摘させてください。Move Normal "では、明らかに欠けているバーがありません。一方、"Move Error "では、チャートデータの欠落があるように見えます。X軸のマーカーはほとんどが16分間隔ですが、2番目と3番目のマーカーの間隔が21分(06:08から06:29)になっています。これは問題ではないかもしれませんが、連続したバーを想定している箇所をコードから探してみます。例えば、現在が午前8時であれば、(a) 午前7時のバーが60本前であると仮定しているコードや、(b) 午前7時のバーが全く存在しないと仮定しているコードは全て除外してください。

理由: