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

 
Nikolai Semko:
はい、すでに投稿22214で、このリンクをあなたの実装に渡しました。何度も言いますが、これが今のところ最も賢明な選択だと思います。そして、CPU負荷の最小化と新しい刻みの瞬間の関連性という点で、これ以上の実装はないと思われます。

サービスには通常の機能があります。

 
fxsaber:

サービスでは、通常の機能が提供されます。

かな

 

端末(1874)が、他の取引サーバーに切り替えたときに、カスタムシンボルのバー履歴の表示(チャートまたはクエリ)が停止する。Terminal再起動後、履歴が表示されます。また別のサーバーに切り替えた途端、同じことが繰り返される。


取引サーバーを変更しても、ティック履歴が 崩れることはありません。そこにはこのバグは存在しない。

 
template <typename T>
class CLASS
{
public:  
  T Func() { return(0); }
};

class CLASS2 : public CLASS<int>
{
public:
  CLASS2()
  {
    this.Func(); // ALT+G в ME не производит переход на int CLASS<int>:Func()
  }
};

MEはこういうものなのでしょうか?

 

FileLoadでエラーが発生しました。FILE_COMMON フラグを持つ 2 つのローカル エージェントが FileLoad を使用してデータを読み込もうとすると、エージェントの 1 つが失敗します。

FileOpenでは適切なフラグを設定できるが、FileLoadではできない。そのため、他のFileLoadが読み込む場合は、FileLoad経由でのアクセスを許可してください。

 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MT開発者向けではありませんINIT_PARAMETERS_INCORRECTを何に置き換えたらいいのでしょうか?

fxsaber さん 2018.07.10 20:16

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
  #property tester_file __FILE__

古代のバグ。

 

HDD/SSDの乱用を避けるために、tester_fileをRAMに保持することは可能でしょうか?パスは何百万枚もあるので、何度もファイルをカウントするのは恐ろしいです。


このような「RAM-disk」があれば、個人情報の第三者への不正な譲渡 をより困難なものにすることができます。

 

新しい最適化キャッシュは、最適化を実行する前の tester_file と Common ファイルの変更を考慮しません。

ここでは、そのようなEAの例を紹介します。

 
fxsaber:

新しい最適化キャッシュは、最適化を実行する前の tester_file と Common ファイルの変更を考慮しません。

ここでは、そのようなEAの例を紹介します。

古いものは考慮されているのかいないのか?

昔の」最適化キャッシュと何も変わっていない。

変更されたtester_fileを同じファイル変更時刻で滑らせた場合、そのファイルは変更されていないものとして扱われます。

共通ファイルは、Expert Advisor でどのファイルを使用しているか不明なため、どのような方法でも制御できません(これまでも制御できたことはありません)。

 
Slava:

同じファイル修正時刻で修正されたtester_fileを滑らせた場合、そのファイルは修正されていないものとみなされます。

更新された修正時間は結果に影響を与えません。エキスパートアドバイザー

// Нужно компилировать (не запускать) советник, когда этот файл (с любым содержанием, хоть пустой) лежит в Песочнице.
// Иначе Тестер не будет видеть эти данные, даже если соответствующий файл с ними положить после компиляции на место.  
#property tester_file __FILE__ 

sinput int NumPass = 10;

#define  TOSTRING(A) #A

void SetArray( int &Array[], const int Amount )
{
  MathSrand((int)TimeLocal());
  
  for (int i = ArrayResize(Array, Amount) - 1; i >= 0; i--)
    Array[i] = MathRand() * Amount / SHORT_MAX + 1; // Случайное положительное число
}

void OnTesterInit()
{    
  ParameterSetRange(TOSTRING(NumPass), true, 0, 0, 1, NumPass - 1); // Задали Оптимизатору количество проходов = NumPass    
  
  int Array[];
  
  SetArray(Array, NumPass);      
  FileSave(__FILE__, Array);
  
  ArrayPrint(Array);  
}

void OnTesterDeinit()
{
  ChartClose(); // Закрыли чарт Frame-выполнения советника
}

double OnTester()
{
  int Array[];
  
  return((FileLoad(__FILE__, Array) != -1) ? Array[NumPass]: 0);
}


2回連続実行の結果


赤い印は、2本目ではなく、1本目の値に正確に対応しています(2行目)。


ログで確認する

Tester  set "Custom max" as optimization criterion for mathematical calculations
Tester  input parameter 'NumPass' set to: enable=true, value=0, start=0, step=1, stop=9
Tester  cache file 'tester\cache\X2.30.480532BA71563CA64BC267378A0185DD.opt' contains 10 records
Tester  Experts\fxsaber\X2.ex5 math calculations test means no history and no symbol info for EURGBP
Tester  complete optimization started
Tester  optimization already processed, total passes 10
Tester  reading of 10 result records from cache...
Tester  1 blocks of results read from cache in 0 ms
Statistics      optimization done in 0 minutes 00 seconds


キャッシュをリセット(再コンパイル)すると、最初の実行は問題ないのですが、それ以降はダメなのです。