テスターでSLとTPをドラッグ&ドロップします。 - ページ 5

 
khorosh:
まあ、理解できないことはないでしょう。CHARTEVENT_OBJECT_CLICK イベントは、ビジュアルテストチャートで動作しますし、ビジュアルテストモードで Expert Advisor を制御するためにこれ以上は必要ありません。なぜイベントからPrintを呼び出す必要があるのでしょうか?)
それどころか何か腑に落ちないことがあるのでは?でも、気にしないでください。
 
Dmitry Fedoseev:
それどころかあなたが理解していないことがあります。おいおい、どうしたんだ。
そうですね、プロフェッショナルには程遠いですね。しかし、ビジュアルチャート上のExpert Advisorコントロールは、CHARTEVENT_OBJECT_CLICK イベントを使用して動作します。他のイベントを利用したことがないので、何とも言えません。
 
khorosh:
そうですね、プロフェッショナルには程遠いですね。しかし、CHARTEVENT_OBJECT_CLICK イベントを使ったビジュアルチャートテストでは、エキスパートコントロールのボタンは動作します。他のイベントは利用しなかったので、何とも言えません。
うん、賑やかだから効果あるね。
 
Dmitry Fedoseev:
うん、賑やかだから効果あるね。

ちなみに、このテストはビジュアルテストモードで 動作します。このインジケータはテスターのテンプレートに配置する必要があります。空のExpert Advisorテンプレートのテストを開始し、マウスでチャートをクリックしてください。

//+------------------------------------------------------------------------+
//|                                                   TestOnChartEvent.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp.       |
//|                                             https://www.mql5.com       |
//+------------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_CLICK)
     {
      Comment(GetTickCount());
      Print(GetTickCount());
     }  
  }
//+------------------------------------------------------------------+
 
khorosh:

ちなみに、このテストはビジュアルテストモードで 動作します。このインジケータはテスターのテンプレートに配置する必要があります。空のExpert Advisorテンプレートのテストを開始し、チャート上でクリックします。

CHARTEVENT_OBJECT_CLICK の識別子は、コードのどこにありますか?

CHARTEVENT_CLICKと あるので、この識別子を持つイベントは、グラフィカル・オブジェクトではなく、チャート上のクリックを追跡するように設計されているのですね。

 
khorosh:

ちなみに、このテストはビジュアルテストモードで 動作します。このインジケータはテスターのテンプレートに配置する必要があります。空のExpert Advisorテンプレートのテストを開始し、マウスでチャートをクリックしてください。

テスターでの作業(ビジュアルモードでも)、つまりビジュアルテストチャートは別物です。

このインジケータはExpert Advisorから呼び出すのではなく、ビジュアルテストチャート上に配置します。テスターでは動作しませんが、ビジュアルテストチャートでは動作します。

 
Anatoli Kazharski:

CHARTEVENT_OBJECT_CLICK 識別子は、コードのどの部分にありますか?

この識別子を付けた場合、テストではボタンもコーディングする必要があります。ビジュアルテストの ためにOnChartEventが動作するかしないかの話なので、どのイベントでも構いません。
 
khorosh:
このインデントを使用する場合は、テストの中でボタンもコーディングする必要があります。ビジュアルテストの 際にOnChartEventが動作するかしないかの話なので、どのイベントでも構いません。
目視テストではなく、テスターで。テスターでは、通常のテストでもビジュアルテストでも、すべて同じで、そこではChartEventは動きません。しかし、視覚的なテストでは、チャートがあり、インジケータでChartEventが動作します。
 
khorosh:
この識別子を設定した場合、テストではボタンもエンコードする必要があります。ビジュアルテストの 際にOnChartEventが動作するかしないかの話なので、どのイベントでも構いません。

あなたはここですでに多くのことを「すり減らし」、何が自分にとって重要で何が重要でないか混乱しているように見えます。

講演では、ほぼすべての投稿で、CHARTEVENT_OBJECT_CLICKについて 話されていましたが、コードでは別の識別子を提示 されています。それが突然、まったく重要でなくなったのです。))

 
Dmitry Fedoseev:
目視テストではなく、テスターで。テスターでは、通常のテストでも視覚的なテストでもすべてが同じで、ChartEventはそこで動作しません。しかし、ビジュアルテストでは、チャートがあり、インジケータでChartEventが動作しています。
お受けします。今後はこれらを区別し、テスト時にChartEventの使い方の本質をより正確に提示することにします)。