MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1461

 
MT4のテスターで、インジケーターのストップボタン押下をトレースする方法。テストが終了してもOnDeanitは呼ばれない。あるいは、テスターで停止ボタンが押されたときに、開いているファイルを 閉じるにはどうしたらよいでしょうか。
 
Valeriy Yastremskiy:
MT4のテスターで、インジケーターのストップボタン押下をトレースする方法。テストが終了しても OnDeinit が呼ばれない。また、テスターで停止ボタンを押したときに、開いているファイルを 閉じるにはどうしたらよいでしょうか。

開いているファイルは、いずれにせよ自動的に閉じられるはずです。

OOPとしてCFile, CFileTxtがあります - オブジェクトは初期化時に破壊され、デストラクタはファイルを閉じます。

https://www.mql5.com/ru/docs/standardlibrary/fileoperations


HH:なぜOnDeinit()が呼ばれないのでしょうか?- その中でファイルを開いて書き込んでみる

 
Igor Makanu:

開いているファイルは、いずれにせよ自動的に閉じられるはずです。

OOPとしてCFile, CFileTxtがあります - オブジェクトは初期化時に破壊され、デストラクタはファイルを閉じます。

https://www.mql5.com/ru/docs/standardlibrary/fileoperations


HH:なぜOnDeinit()が呼ばれないのでしょうか?- その中で、ファイルを開いたり、書き込んだりしてみてください。

経験で。自分でも驚いています。論理的には正しいのですが、あくまでもインジケーターですので、Expert Advisorのようにアンロードすることはできません。テスターチャートから手動でインジケータを削除するか、ウィンドウを閉じなければなりません。そして、ファイルを閉じた後に初めてAlertsを見ることができます)))

テストはシンプルに、ビブルは使いたくない。はい、そしてインジケータテスターの停止ボタンにマウスイベント以外のものがあると思います。表面的なサーチカットは残念ながら出なかった。

Zy、ファイルは、閉じないと、アクセスできないし、OnDeinit()が突然動作しなくなると、端末を閉じるだけで、閉じられます

経験上、ファイルのクローズを記録するのを忘れていました)))

 
Valeriy Yastremskiy:

経験豊富な自分でも驚いています。論理的にはすべて正しいのですが、あくまでもインジケータであり、Expert Advisorのようにアンロードすることはできないはずです。テスターチャートから手動でインジケータを削除するか、ウィンドウを閉じなければなりません。そして、ファイルを閉じた後に初めてAlertsを見ることができます)))

テストはシンプルに、ビブルは使いたくない。はい、そしてインジケータテスターの停止ボタンにマウスイベント以外のものがあると思います。表面的なサーチカットは残念ながら出なかった。

Zy、ファイルは、閉じないと、アクセスできないし、OnDeinit()が突然動作しなくなると、端末を閉じるだけで、閉じられます

経験上、ファイルクローズを記録するのを忘れていました)))

今までインジケーターをテスト する全体の流れが書かれていない

MT4のビジュアライザーでインジケーターを追加することはできますが、私の理解では、MT4のテスターでビジュアルモードでインジケーターを実行するようです・・・。

MT4でインジケータをテストしたことはなく、EAでTSコードで確認しています。


代替案として、インジケータに日付を設定し、変数としてテストを終了し、この日付に達した後、ファイルを保存してOnCalculate()を終了します - コードは数行ですが、それは間違いなく動作します。

 
Igor Makanu:

今までインジケーターをテスト する全体の流れが書かれていない

私の理解では、MT4のテスターでビジュアルモードでインジケーターを動かしていますが、MT4でもビジュアライザーでインジケーターで埋めることができるのですね......。

MT4でインジケータをテストしたことはなく、EAでTSコードで確認しています。


代替案として、インジケータに日付を設定し、変数としてテストを終了し、この日付に達した後、ファイルを保存してOnCalculate()を終了します - コードは数行ですが、それは間違いなく動作します。

はい、テスターウィンドウは、インジケーターがテスト中であるか、インジケーターがテスターウィンドウに重なっているかは関係ありません。

あまり目立たない松葉杖をありがとうございました)

boolIsTesting()。

試してみないとわからないですね、ストップライで戻るようになっていると思います)
 
Valeriy Yastremskiy:

はい、テスターウィンドウは、インジケーターがテスト中であるか、インジケーターがテスターウィンドウに重なっているかは関係ありません。

あまり目立たない松葉杖をありがとうございました)

boolIsTesting()。

試してみましたが、stopでfalseを返すべきのようです)

いいえ、そうではありません。

未解決の質問があるのですが、イベントのトレース方法について 2021.04.29 08:55:41.177 2020.10.01 08:23:13 テスター:停止ボタンが押されました。

した)

int OnInit()
{
if(IsTesting()) FlagTest=true;
....
}

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[])
  {

if(!IsTesting() && FlagTest) { Print("Окончание тестирования"); OnDeinit(1);}
....
}

 
Igor Makanu:

メタコトーの記事検索 :"クラウド"

長い時間前に読んだ、リモートエージェントは、あなたのPCから履歴をダウンロードするか、同じブローカーに接続されている場合 - ブローカーから実際のダニを取る必要があります。


しかし、私は使ったことがないので間違っているかもしれません。


この件に関するMetacquotの記事のひとつに、もしかしたら情報があるかもしれません。https://www.mql5.com/ru/articles/2612

イゴール、ありがとう。ドキュメント、フォーラム、記事 - まだ答えは見つかっていません。

ログの中にあります。

"REGRES_EURGBP:ティック同期済み[57バイト]".

これが私に必要なものであることを願っています。

 
Valeriy Yastremskiy:

いいえ、そんなことはありません。

とにかく、質問は、インジケータテストでイベントを追跡する方法、開いている 2021.04.29 08:55:41.177 2020.10.01 08:23:13 テスター:ストップボタンが押されました。

した)


というようなことを書かなければならない。

datetime t_stop=D'20.04.2021'; 
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[])
  {
if(time[0]>=t_stop)
{
        if(f_handle<0) return;
        FileClose(f_handle);
        f_handle = -1;
}
MT4のテストができない(今日) - t_stopをピックアップする必要があります。
 
HimOrik:

イゴール ありがとうございます。ドキュメント、フォーラム、記事 - まだ答えは見つかっていません。

ログの中にあります。

"REGRES_EURGBP:ティック同期済み[57バイト]".

これが私に必要なものであることを願っています。

モデレーターは沈黙し、アクティブなユーザーはほとんどいない。

一般的な議論にあなたの質問とトピックを作成する、私はあなたがより速くあなたの問題を解決すると思います。

 
Igor Makanu:

というようなことを書かなければならない。

MT4で最終日(今日)のテストができるのを覚えていない - t_stopを選択する必要があります。

この考え方は理解できますし、便利なのですが、今回の件ではうまくいきません。テスターの 時間を計りたい インジケーターの停止ボタンが押された 状態