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

 
fxsaber:
これらが正しい計算式である場合


テスターでは、これらの数値の算出方法が大きく異なっています。これらの計算式とTesterが示す結果には、(利益を除けば)顕著な違いがあります。

真相を究明することを提案します。つまるところ、MT5が利益を生む取引と判断するのは、まさにこの点です。

const double Profit = OrderProfit() + OrderCommission() + OrderSwap();

片方、あるいは両方を一度に取り外して比較してみてください。

または、ここで(上記で解決しない場合)"="を削除します。

if (Profit >= 0)
 
Slava:

今、何を議論しているのでしょうか?テスト/最適化でエージェントを無効化するか、キャラクターを使用できるようにするか?

2つの問題があるのなら、両方議論して解決すべきなのでしょう。それとも不可能なのでしょうか?

1.最適化後にエージェントの無効化がある理由。

2.テスターへの文字の自動追加を停止している理由は何ですか?

 
Artyom Trishkin:

片方、あるいは両方を一度に取り外して比較してみてください。

または、ここで(上記で解決しない場合)"="を削除します。

MT5ではこのように計算されます。

double ProfitPlus = 0;  // Профит неотрицательных закрытых позиций.
double ProfitMinus = 0; // Профит отрицательных закрытых позиций.

int AmountPlus = 0;  // Количество неотрицательных закрытых позиций.
int AmountMinus = 0; // Количество отрицательных закрытых позиций.

for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)
  if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
  {
    const double Profit = OrderProfit()+ (OrderCommission() / 2) + OrderSwap();
    
    if (Profit >= 0)
    {
      ProfitPlus += Profit;
      AmountPlus++;
    }
    else
    {
      ProfitMinus += Profit;
      AmountMinus++;
    }      

    ProfitMinus += OrderCommission() / 2;
  }

const double PF = ProfitMinus ? -ProfitPlus / ProfitMinus : DBL_MAX; // Профит-фактор.
const double Profit = ProfitPlus + ProfitMinus;                      // Профит

つまり、MT5では、ポジションをクローズして 損失を出す(オープン前の残高がクローズ後の残高を下回る)ことがあるのです。しかし、この場合、MT5-Tester(ターミナルはチェックしていない)は、この取引を利益と見なします。


例えば、MT5_PF=1.89、MT4_PF=2.01となります。

 
fxsaber:
これらが正しい計算式であれば


テスターでは、これらの数値の算出方法が大きく異なっています。これらの計算式とテスターで表示される結果には、顕著な違いがあります(利益を除く)。

明確にすることを提案します。つまるところ、MT5が何をもって有益な取引と判断するかです。

なぜ const 修飾があるのですか?

const double Profit = OrderProfit() + OrderCommission() + OrderSwap();

この変数がスコープを離れると、おそらく再初期化さ れることになる...。イムホ不要


OrderCommission() + OrderSwap() を削除した場合 ?- 手数料ではなく、取引による利益について話しているのでしょうか?

SZZ:オプションとして、テスターはバランスで動作することができます、順序が閉じている場合、バランスが変更され、古い残高と比較し、一般的に、私は推測することはできません... , 私はソースを見つけられませんでしたが、同じ利益の計算で記事https://www.mql5.com/ru/articles/4226、しかし私はそれを読んでいないです。

Пользовательский тестер стратегий на основе быстрых математических вычислений
Пользовательский тестер стратегий на основе быстрых математических вычислений
  • www.mql5.com
Тестер стратегий, предоставляемый MetaTrader 5, имеет мощный функционал для решения разнообразных задач. С его помощью можно тестировать как сложные стратегии торговли корзинами инструментов, так и одиночные стратегии с простыми правилами входов и выходов. Однако такой обширный функционал нам пригождается далеко не всегда. Часто нам просто...
 
Igor Makanu:

なぜここに const 修飾子があるのですか?

ループのすべての繰り返しで Profit 変数を計算する必要が ありますが、この変数がスコープを離れると、再初期化される可能性がありますが...。 imhoは、constは必要ありません。

再現されるのです。そこはすべて正しい。

OrderCommission() + OrderSwap() を削除したらどうなりますか?- 手数料ではなく、取引による利益の話ですか?

上記のMT5式。これは、スキャルピングTSのPFを計算する際に深刻な歪みを生じさせる。また、PFがプラットフォーム次第というのは、いかがなものでしょうか。曖昧であってはならないのです。

 
zevs1980:
この問題は、以前のビルドのブランチで、すでに私が提起しています。修正されることはなかった。松葉杖を見つけた。いくつかのエージェント(私の場合は10個中3個)を無効にして、0回繰り返した後に有効にすると、すべてがうまくいきます。たまに、途中で止まってしまうエージェントもいますが、まれに解答アルゴリズムが同じになることがあります。

残念なのは、マニュアルステアリングが選択できないことです。自動最適化をして います。

 
KENT3004:

2つの問題があるとすれば、おそらく両方が議論され、解決されるべきなのでしょう。それとも、それは不可能なことなのでしょうか?

1.最適化の後、エージェントが切断される理由。

2.テスターへの文字の自動追加を停止している理由は何ですか?

1.テスターのログを見てください、全て書いてあります。

2.すでに修正されている。しかし、修正を加えたビルドができるまでは、ドラッグドロップを使うことができます(なぜ文字の追加が止まったのかについては議論していません、このような状態でもテストができる方法について議論しました)

 
fxsaber:

それぞれのカスタムシンボルで交互にシングルランを走らせています。ある地点からテスターでパスを確認することはできませんが、マーケットウォッチからドラッグ&ドロップで選択することは可能です。しばらくすると、これもうまくいかなくなります。通常のシンボルか、カスタムシンボルを1つだけ選択することができます。他はありえない。下のアニメーションは、その様子を表したものです。


再現・修正しました。ありがとうございます。
 
Slava:

1.テスターのログを見てください、全て書いてあります。

2.すでに修正されている。しかし、修正を加えたビルドができるまでは、ドラッグドロップを使うことができます(なぜ文字の追加が止まったのかについては議論していません、このような状態でもテストができる方法について議論しています)

迅速な対応と親切なアドバイスをありがとうございました。些細なことですが、不都合なことをあえて「報告」します。スタート/ストップボタンがツール/テスターボタンにかぶさることで、余計な動作をしてしまうのです。でも、あまり便利ではないですね。
 
Edgar:
遺伝的最適化では、多くのパラメータを使用します。変種数が科学的表記法(6.8768769e+21)で表示されるほど大きくなった時点で、世代0以降も半分のエージェント(8人中4人)で最適化を続けます。過去ログには記載がありません。最適化自体は問題なく動くが、半分の負荷で2倍の時間がかかる。

挙動が再現されないことがあるため、修正されないのかもしれません。昨日はあったのに、今日はない。EAにもよるのかもしれませんね。フレームと一緒に持っています。ex5のサイズは約0.5Mbです。メモリは8Gbです。Intel i7、4コア、8スレッド。バツイチ。教師なし。