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

 
fyords:

このようなことに遭遇したことのある方がいらっしゃいましたら、アドバイスをお願いします。

コードがあります。

ターミナルでのリアルタイムではうまくいきますが、テスターでは同じコードが異なる結果をもたらします。

どのイベントが発生しても、配列のサイズを 取得するのでしょうか?

 
tol64:

また、どのイベントが発生しても、配列のサイズを取得する必要があるのでしょうか?

さて、私はまずインジケータを書き、それからすべてを簡単な例題に落とし込みました。
どんなイベントでも、与えられたログが一行ごとに繰り返されるのです。

というコードに変更することで

//+------------------------------------------------------------------+
double date[];
//+------------------------------------------------------------------+
void OnInit()
{
   ArrayResize(date,3);
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+

さらに楽しくなりました。リザルト端末。

FD      0       12:57:59        test (EURGBP.m,M5)      OnInit ArraySize(date)=3
JO      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3
DG      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3

テスターです。

JM      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnInit ArraySize(date)=3
FE      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
FR      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
 
fyords:

さて、私はまずインジケータを書き、それからすべてを簡単な例題に落とし込みました。
その結果、そうであることがわかった。

...

再現できていない。このコードをテストしています。

//+------------------------------------------------------------------+
//|                                                     !indTEST.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property indicator_chart_window
#property indicator_buffers 1 
#property indicator_plots   1
#property indicator_type1   DRAW_NONE
//---
double date[];
//---
//+------------------------------------------------------------------+
//| ИНИЦИАЛИЗАЦИЯ                                                    |
//+------------------------------------------------------------------+
void OnInit()
  {
   ArrayResize(date,3);
  }
//+------------------------------------------------------------------+
//| ДЕИНИЦИАЛИЗАЦИЯ                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   Print("ArraySize(date)=",ArraySize(date));
  }
//+------------------------------------------------------------------+

//---

ビジュアライゼーションモードでのインジケーターをテスト

 
tol64:

...

ビジュアライゼーションモードでのインジケーターをテスト

同様に、把握すること。
 
fyords:
同様に、私も把握しています。
私の知る限り、テスターでは現在、スケジュールのインタラクションイベントは無視されています。カスタムイベントに 対応可能です。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 
tol64:
私の知る限り、チャートとのインタラクションに関連するイベントは、現在テスターでは無視されています。カスタムイベントに 対応可能です。

来てくれるなら、どれでもいいや......。)

また、あなたのコードでは結果が0であること、つまりエラーが持続していることも興味深いです。
PS.Win7 x64 + UACで、ポータブルではありません。

 
fyords:

来てくれるなら、どれでもいいや......。)

また、興味深いことに、あなたのコードでは結果が0になり、つまりエラーが持続しています。
PS.Win7 x64 + UACで、ポータブルではありません。

このコードでは全くイベントが発生しないのですが。では、どのようなイベントでテスターにメッセージが出力されるのでしょうか?不思議に思ったからこそ、知りたくなったんです。))再現するためのコードが必要です。

 
tol64:

このコードでは全くイベントが発生しないのですが。では、どのようなイベントでテスターにメッセージが出力されるのでしょうか?不思議に思ったからこそ、質問したのです。))再現するためのコードが必要です。

私もよくわからないのですが、もう動かないのです ))。
テスターでは、CHARTEVENT_CHART_CHANGE イベントがとにかく来るはずなので、不思議です。そうだろ?
 

fyords:
... 

テスターでは、CHARTEVENT_CHART_CHANGE イベントがとにかく来るはずなので、奇妙なことです。そうだろ?
リアルタイムでは、チャートのスクロールやウィンドウ/サブウィンドウのサイズ変更時にこのイベントが発生します。テスターでは、このイベントはまだ動作していません(もしかしたら全くしないかもしれません)。イベントのうち、今のところ追跡できるのは他プログラムのユーザーイベントのみ です。
 

MT5に付属しているストラテジーテスターで、標準のExpertMACD Expert Advisorをテストしたところ、エラーが発生しました。

2013.03.30 19:18:09 Core 2の遺伝子のパス(0, 15)をテストしましたが、エラー「OnInit failed」が46msで発生しました。

2013.03.30 19:18:08 Core 1の遺伝子のパス(0, 13)をテストしましたが、エラー「OnInit failed」が32msで発生しました。

2013.03.30 19:18:07 Core 2の遺伝子のパス(0, 5)をテストしましたが、エラー「OnInit failed」が0msで発生しました。

検索してみると、モジュールにエラーがあることがわかりました。"SignalMACD "のFastとSlowのMACD期間を最適化する場合(ストラテジーテスターのパラメータでチェックを入れる場合)です。

このような問題に遭遇した方はいらっしゃいますか、またその対処法は?(ティックが1つしかないときは何とか動きますが、2つのティックを確認するとすぐにエラーが発生します)