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

 
Georgiy Merts:

ここで質問です。

あるパラメータのセットを最適化する際に、配列オーバーランエラーが発生することがあります。このエラーは滅多に発生しないので、再現することができません。このエラーが発生するパラメータを知りたいのですが、どのようにすればよいのでしょうか?テスターのログにはパスナンバーがありますが、レポートにはこのパラメータセットは存在しません。この実行で使用されたパラメータはどこで確認できますか?

Commonファイルにプリントを書き込むために、このバイブルを 修正します。

 
また、別のバグとして、パラメータの1つがENUM_TIMEFRAMES periodの場合、このパラメータによって1Dまたは2Dチャート上に - 私はいくつかの理由のために表示されていない。私だけでしょうか?
 
fxsaber:

このビブリオを 改造して、コモンファイルにプリントを書き込む。

そうですね、他に選択肢がないのであれば、それはそれでOKだと思います。ありがとうございます。

そして、ファーストネームでいきましょう、私たちは長い間バーチャルな付き合いをしています。

 
変数へのポインタはmqlでは使えないという理解でいいのでしょうか?
void OnStart()
{ 
   int *ptr;
}

コンパイラは、ポインタは使用できないと言っています。

 
Roman:
変数へのポインタはmqlでは使えないという理解でいいのでしょうか?

コンパイラは、ポインタは使用できないと言っています。

ポインタはオブジェクトに対してのみ有効であり、GetPointer()を呼び出すことで取得されるようです。

 
Georgiy Merts:

ポインタはオブジェクトに対してのみ有効で、GetPointer()を呼んで取得するようです。

ありがとうございます。はい、クラスオブジェクトでは問題ありません。だから、変数で動かないことに驚きました。でも悲しいことです。

 

Client Areaに証券会社の口座を置く場所がないのですが。

お気に入り」を開くと、白いページがあるだけです。

どうしたんだ?

mql5のアカウントを見ることも、誰かにサブスクライブすることもできません。

 

インジケータは、ChartIndicatorGet 関数があれば、削除時にOnDeinitを呼び出さず、変数に追加せずに単に自分自身のハンドルを読み込むだけです。

#property indicator_chart_window

int OnInit() {
   for (int i=0; i<ChartIndicatorsTotal(0,0); i++)  
       ChartIndicatorGet(0,0,ChartIndicatorName(0,0,i));
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+

void OnDeinit(const int reason) {
   Print("Deinit");
}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
   return(rates_total);
}

また、削除後にインジケータを再コンパイルすると、OnDeinitの遅延呼び出しが発生します(Print("Deinit");)。

大丈夫でしょうか?


ビルド2168

ファイル:
 
Nikolai Semko:

インジケーターは、ハンドルを変数に入れなくとも、単に自身のハンドルを読み取るChartIndicatorGet関数を持っていれば、インジケーターを削除する際にOnDeinitを呼び出すことはないです。

IndicatorRelease は、自身のハンドルを受け取った場合は必須である。

 
fxsaber:

IndicatorReleaseは、自分でハンドルネームを取得する場合は必須です。

ふむ...
また、インジケーターハンドルの削除 はどこで、どのタイミングで行えばよいのでしょうか。

OnDeinitを使うのが論理的なのですが、うまくいきません。

ZS 不思議な絵ですね。
試してみたところ、ハンドルを取得した直後に削除すると削除されますが、インジケータ自体は削除されず、名前は残り、すでに新しいハンドルを持っていて動作し続けています。そして、実際に、その後、インジケータを削除するときにOnDeinitが実行されます。

バッファレスのインジケータで試しましたが。ハンドルが削除されたときに、データバッファがどのように動作するのかわかりません。
意味がわからない...。