MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案 - ページ 47

 
traveller00:

ビルド2280。取引所、先物市場履歴はすべて読み込まれますが、テストはオフラインで行われます。iBarShiftはインジケータで奇妙に動作します。また、同じコードがスクリプトで問題なく動作します。バグなのか、それとも私が見逃しているのか?

そんなコードもあるんですね。基本的には、マーケットレビューからすべてのシンボルを実行し、iBarShiftを ヤンクします。同じコードがスクリプトで正常に動作します。このインジケータは、現在のシンボル(実行中のチャート上)を除くすべてのシンボルに対して、履歴がないというエラーとともに-1を出力します。同時に、2回目の実行時には、履歴をロードして正常に表示します。

インジケータ内のデータの可用性は保証されないので、取得の成功を確認する必要があります。失敗した場合はOnCalculateで 再試行する。OnInitで データを参照するのはNGです。


#property indicator_separate_window

void OnInit()
{
}

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[])
{
  static bool printed = false;
  
  if( !printed ){
    printed = TryToPrint();
  }
  return 0;
}

bool TryToPrint(){


  datetime Time[];
  ArraySetAsSeries(Time, true);
  Print("try");
  if( CopyTime(_Symbol,_Period,0,1,Time) != 1 )return false;

  int Shift=iBarShift(_Symbol,_Period,Time[0]);
  
  bool fail = false;
  if( Shift < 0 )fail = true; 
  string toprint = "Symbol="+_Symbol+", Shift="+(string)Shift;
  
  

  for(int i=0;i!=SymbolsTotal(true);++i)
  {
    const string SymbName=SymbolName(i,true);
    Shift=iBarShift(SymbName,_Period,Time[0]);
    
    if( Shift < 0 )fail = true;
    toprint = toprint + "\r\n" + "Symbol="+SymbName+", Shift="+(string)Shift;

  }
  if( !fail ) Print( toprint );
  
  return !fail;
}
 

キャッシュレコードにサーバー名が表示されないことがある。


 
tst-formatでは、取引・注文の時刻は秒単位(datetime)のみです。ミリ秒はありません。
 
このようなEAでは、tstファイルは生成されないということでよろしいでしょうか?
input int i = 0;

void OnInit() {}


シングルパスキャッシュを作成するためには、どのような条件を満たす必要がありますか?

 
fxsaber:
このようなEAでは、tstファイルは生成されないということでよろしいでしょうか?


シングルパスキャッシュを作成するためには、どのような条件を満たす必要がありますか?

はい、正解です。

トレードがない場合、tstファイルは保存されません

 
Slava:

はい、その通りです。

トレードがない場合、tstファイルは保存されません

ありがとうございます。

 
私の質問を繰り返します(どうやら紛失したようです)。

開発者の皆さん、質問です。遺伝的アルゴリズムの パラメータをカスタマイズすることは可能ですか?例えば、停止条件や変異条件を設定するため?

極限に達する前にストップがかかるという状況によく遭遇します。

また、質問です。シミュレーテッドアニーリングなど、他の手法の導入は考えていますか?

 
こんにちは、mt4からmt5に乗り換えたのですが、テスターでセットファイルを保存する方法がよくわかりません。アドバイスをお願いします。iniとoptを保存する方法しか見つかりませんでした。
 

テスターでロボットを動かしてみる。あるシンボルで取引している。OnTimerでエントリーし、SymbolInfoTickで価格提示を受ける。

違うシンボルを使うと(同じシンボルで取引する場合)、なぜか結果が大きく違ってくるんです。この問題に直面したことのある方はいらっしゃいますか?現在、この挙動を詳しく調べているところです。

PS.すべてのティックは 実物に基づき、遅延のない完璧な実行が可能
 

私はそれを理解しました。もし興味があれば、CPUリソースを節約するために、OnTimerのTimeCurrentをチェックして、前回のアップデートから変化していなければ何もする必要はありません。引用がない場合は、ステータスは同じです。トレーディングセッションを追跡すると、非常に消費量の多い操作になります。

複数のシンボルに対して、すべて問題なく動作します。しかし、それが2人しかいない場合、すべては相場次第となり、相場がやってきては始まり、ポジションを開く時間などがずれていくのです。その結果、ストラテジーテスターでの 結果が異なっています。

PS.一般的には、SymbolInfoTickで シンボルの状態を個別に確認することにしています。