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

 
2314.取引モードごとの手数料(パーセンテージ)が正しく計算されない。+はGUIで小数点以下2桁目まで設定できません(ファイル経由では可能)。
 

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

エキスパートアドバイザー:検証

fxsaber, 2020.02.06 17:20

SZZY 残念ながら、MT5-Tester 自身は、EA のソースコード以外のカスタム最適化基準(選択ではない)を規定することができません。建築的な障害はないものの、そうすることができる。

あとは、最適なものを選ぶという 基準で、Optimizationの結果から任意のパスを選択することができます。

しかし、EX5だけでは、独自のOptimization基準を設定することは不可能です。私の考えでは、このようなOptimizationの基準は、OnTesterとTesterStatisticsのデータのみが利用可能なEAとして設定することができます。もっとも、開発者の計画にはそんなものはないだろう。したがって、音出しのみ。

 

英語からロシア語に機械翻訳されていることについては申し訳ありませんが、私はバグを報告するために、このスレッドを見つけただけです。

Metatrader 5 プラットフォームで、エディタでデバッグ用のビジュアルテストを開始し、ブレークポイントに到達して Ctrl + F を押すと、問題が発生するようです。

ヒストリカルデータのデバッグ中にctrl + fを押すと、インジケータ(すべて、有効でも)が再描画/1バーシフトする)

再生します。

  1. メタトレーダー5を開く。
  2. EMA 5とEMA 10を追加(内蔵)
  3. StrategytesterをDailyに設定し、Simulation: ticksまたはReal ticks(どちらも同じ問題が発生します)を選択します。
  4. Metatrader 5のエディタを開く
  5. 付属のExpertMACD.mqhを開きます。
  6. Expert.mqh の 651 行目にブレークポイントを設定する。
  7. CTRL + F5で起動し、過去のデータで実行する
  8. カーソルを完全に閉じたローソク足(少なくとも1~2日前)の上に置きます。
  9. ブレークポイントに到達したら、ビジュアルテスタを起動し、Ctrl + Fを押します。
  10. ビジュアルテスターウィンドウでCTRL + Fキーを押して十字キーを取得すると、すべてのインジケータが左に1小節シフトします。
  11. ブレイクポイントから続けて、すべてのインジケータが1小節分右に移動します。
  12. ステップ8から11を繰り返して、常に同じことを行うことができます。

問題は、EAが実際にやるべきことをやっているかどうかをチェックするとき、EAが見ているものと比べてバーがずれていると、それができないことです。

これは、インジケータだけでなく、内蔵のEA例でも同様であるため、問題ない。


このYouTubeの動画では、0:25あたりでCtrl + Fキーを押して、問題を実演しています。

https://youtu.be/_fyCv3Zla9A

 
fxsaber:

最適なパスを選択 するための基準に基づき、最適化結果から任意のパスを選択することができるようになりました。

しかし、EX5だけでは独自のOptimisation基準を設定 することはできません。 私の考えでは、このようなOptimisation基準は、OnTesterとTesterStatistics関数データのみが利用可能なEAとして設定することが可能です。もっとも、開発者の計画にはそのようなものはないだろう。そのため、サウンディングのみとなります。

取引戦略のモデルが悪いと、最適化は全く役に立ちません。

だから、数学的モデリングや機械学習ではこの問題を解決できない。ブラックボックスの中身を明確に把握する必要があるのです。

 
Petros Shatakhtsyan:

今頃になって気がついたのか?

このような非論理的な質問のパターンが理解できない。

取引戦略のモデルが悪いと、いくら最適化しても無駄です。

もちろん、悪い人がいれば、その人はダメなんです。上の文章がまさにそうですね。

つまり、数学的モデリングや機械学習では対応できないのです。ブラックボックスの中身を明確に把握する必要があるのです。

この文章は、ある種のタスクについて話しています。そして、その何かは、何らかの目的のために知る必要があるのです。一般的には、自分との会話をちぎったような回答でない方が良いと思います。

 
fxsaber:

グレイルはありません。

あります。

 
Алексей Тарабанов:

チェックする。

Testerモード修正前の)graalityの 主張がコードで確認された。

 

最新のビルドでは、tstファイルのインポートが 不完全になり、設定タブがtstのものに更新されないことがあります。

これまでは、インポートして「設定」でどのような値で結果が得られたかをすぐに確認することができました。今は見ることができない。スイッチバックは可能ですか?

 
長い間、私はテスターが実際のティックで奇妙な動作をする原因を探っていました。見つけた。
const bool Init = EventSetTimer(1);

void Func()
{
  static datetime PrevTime = 0;
  
  const datetime time = TimeTradeServer();
  
  if (time < PrevTime)
    DebugBreak(); // Срабатывает
  
  PrevTime = time;
}

void OnTick()
{
  Func();
}

void OnTimer()
{
  Func();
}

サーバーの時間が進み、そして戻ってくる。これは実際の取引サーバーで発生するのですが、なんとかカスタムシンボルでリプレイを作成することができました。


レッツ・ラン

sinput datetime inDateFrom = D'2020.01.01';

void OnStart()
{
  const string Name = "TEMP12345";                                                           // Имя кастомного символа
  const string SymbOrig = "EURUSD";                                                          // Имя оригинального символа

  MqlTick Ticks[];
  
  const int Size = CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)inDateFrom * 1000); // Считали EURUSD-тики.
    
  if ((Size > 0) && CustomSymbolCreate(Name, NULL, SymbOrig) && SymbolSelect(Name, true))    // Создали символ на основе EURUSD.
  {
    CustomTicksReplace(Name, 0, LONG_MAX, Ticks);                                            // Поместили в него историю EURUSD.        
    
    CustomRatesDelete(Name, D'2020.01.03 23:00', D'2020.01.04 00:00');                       // Удалили несколько баров.
  }
}


ティック履歴を 持つシンボルが作成されますが、いくつかのバーが削除されています。そして、このモードで上のEAのデバッグを開始します。

[Tester]
Symbol=TEMP12345
Period=M1
Optimization=0
Model=4
FromDate=2020.01.01
ToDate=2020.01.08
ForwardMode=0
Deposit=100000
Currency=USD
ProfitInPips=1
Leverage=100
ExecutionMode=0
OptimizationCriterion=6


止まってしまう。

2周目で時間が経過していることがわかります。

 
fxsaber:

最新のビルドでは、tstファイルのインポートが不完全になり、設定タブがtstのものに更新されないことがあります。

これまでは、インポートして「設定」でどのような値で結果が得られたかをすぐに確認することができました。今は見ることができない。スイッチバックは可能ですか?

はい、できます。