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

 
Slava:

実際のティックでのテスト/最適化?

自社エージェントか、クラウドからか?

カスタムシンボルでのテストであれば、クラウドエージェントの出番はなくなる。つまり、エージェントは自分たちのものであり、そのログを引っ張ってきて、履歴がどのように同期されたかをログで確認することができるのです

カスタム、独自のAgents、リアルティクでのエラーフリーな同期。リプレイ用Expert Advisor。

// Критерий оптимизации - сумма входных параметров + сумма нецелых частей секунды каждого тика (в миллисекундах).

input int inFakeRange1 = 0;
input int inFakeRange2 = 0;
input int inFakeRange3 = 0;
input int inFakeRange4 = 0;
input int inFakeRange5 = 0;

long Sum = inFakeRange1 + inFakeRange2 + inFakeRange3 + inFakeRange4 + inFakeRange5;

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    Sum += Tick.time_msc % 1000;
}

double OnTester()
{
  return((double)Sum);
}


結果

1行目の値によって、その値がナンセンスであることがすぐにわかる。他の行の値とそんなに違うはずがない。


そして、シングルを走らせること。


GA最適化時に99%のゴミを刻み込む。再現できたかどうか、教えてください。

検索文字列:オシブカ 005.
 
fxsaber:

カスタム、独自のエージェント、実際のティックでエラーフリーな同期。再生用EA。


結果

1行目の値によって、その値がナンセンスであることがすぐにわかる。他の行の値とそんなに違うはずがない。


そして、シングルを走らせること。


GA最適化時に99%のゴミを刻み込む。再現できたかどうか、教えてください。

検索文字列:オシブカ 005.

無意味な値が発行されたエージェントの最適化ログを見る必要があります。

そして、対応するシングルパスのテストログ。

 
Slava:

無意味な値が発行されたエージェントの最適化ログを見る必要があります。

そして、対応するシングルパスのテストログ。

単一の値を見てください。1つだけでなく、すべてのOptimizerの値とは正しく、大きく異なります。つまり、文字通りオプティマイザーのすべての行でエラーが発生しているのです。

過去ログを見てみる。自分で実行するのがいいと思います。

2020.02.20 10:47:18.839 Core 6  genetic pass (5, 312) returned result 10563025086.000000 in 0:00:05.475
2020.02.20 10:47:20.023 Core 2  genetic pass (5, 209) returned result 8885031952.000000 in 0:00:04.947
2020.02.20 10:47:23.048 Core 3  genetic pass (5, 240) returned result 10373435790.000000 in 0:00:05.984
2020.02.20 10:47:23.366 Core 1  genetic pass (5, 181) returned result 10236426953.000000 in 0:00:05.654
2020.02.20 10:47:24.069 Core 4  genetic pass (5, 271) returned result 10597154696.000000 in 0:00:05.768
2020.02.20 10:47:24.509 Core 5  genetic pass (5, 296) returned result 10580660389.000000 in 0:00:05.853
2020.02.20 10:47:24.613 Core 6  genetic pass (5, 313) returned result 10563025078.000000 in 0:00:05.774
2020.02.20 10:47:25.113 Core 2  genetic pass (5, 218) returned result 8885031945.000000 in 0:00:05.089
正しい値を強調表示します。ログを走らせた。Core1のみ正しい値になっています。
 
fxsaber:

ログを走らせた。Core1のみ正しい値になっています。

完全にローカライズされています。Core1でのシングルパスとCore2でのシングルパスが一致しない。だから、まだどれが正しいかわからない。

 
fxsaber:

完全にローカライズされています。Core1でのシングルパスとCore2でのシングルパスは同じではありません。だから、まだどれが正しいとは言えないんです。

エージェントのログには何が書かれているのですか?そこに歴史のシンクが書かれているのです。
 
Slava:
エージェントのログには何が書かれているのですか?そこに歴史のシンクが書かれているのです。

いつも再現されないので、違うキャラクターを試してみた。最適化時のエージェントログ。

Core1です。

EL      0       12:57:18.438    127.0.0.1       login (build 2323)
ND      0       12:57:18.455    Tester  account info found with currency USD
FO      0       12:57:18.456    Network 1482 bytes of tester parameters loaded
FF      0       12:57:18.456    Network 2748 bytes of input parameters loaded
DS      0       12:57:18.456    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
NK      0       12:57:18.456    Network 1032 bytes of optimized inputs info loaded
PM      0       12:57:18.527    Tester  successfully initialized
GE      0       12:57:18.527    Network 12 Kb of total initialization data received
JR      0       12:57:18.528    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OE      0       12:57:18.528    Tester  optimization pass 35025 started (batch of 53 tasks)
QQ      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
RP      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
LF      0       12:57:18.534    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.001
EK      0       12:57:18.534    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
FL      0       12:57:18.537    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
ML      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
MK      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
MG      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
CD      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
QG      0       12:57:26.327    Tester  35025 OnTester result 6963974890 : passed in 0:00:07.795
JQ      0       12:57:31.481    Tester  5593 OnTester result 10077649365 : passed in 0:00:05.153
CE      0       12:57:32.683    127.0.0.1       tester forced to stop
DS      0       12:57:32.684    Tester  2 of 53 passes processed (2 successfully finished) in 0:00:12.948
CS      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
HE      0       12:57:32.684    127.0.0.1       prepare for shutdown


Core2です。

OS      0       12:57:18.438    127.0.0.1       login (build 2323)
IG      0       12:57:18.456    Tester  account info found with currency USD
OL      0       12:57:18.460    Network 1482 bytes of tester parameters loaded
OE      0       12:57:18.460    Network 2748 bytes of input parameters loaded
EP      0       12:57:18.460    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
GJ      0       12:57:18.460    Network 1032 bytes of optimized inputs info loaded
FM      0       12:57:18.532    Tester  successfully initialized
QJ      0       12:57:18.532    Network 12 Kb of total initialization data received
IS      0       12:57:18.532    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OG      0       12:57:18.532    Tester  optimization pass 115298 started (batch of 18 tasks)
IQ      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
KP      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
KE      0       12:57:18.545    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.002
FD      0       12:57:18.545    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
DK      0       12:57:18.546    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
PO      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
HJ      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
JH      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
PS      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
EF      0       12:57:25.613    Tester  115298 OnTester result 14612465132 : passed in 0:00:07.073
GP      0       12:57:30.797    Tester  26858 OnTester result 9858144627 : passed in 0:00:05.184
DR      0       12:57:32.684    127.0.0.1       tester forced to stop
NR      0       12:57:32.684    Tester  2 of 18 passes processed (2 successfully finished) in 0:00:12.257
CP      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
GF      0       12:57:32.685    127.0.0.1       prepare for shutdown
 
fxsaber:

いつも再現されないので、違うキャラクターを試してみた。最適化時のエージェントログ。

Core1です。


Core2です。

そして、そのうちの1つのエージェントで、間違った結果が出たのでしょうか?
 
Slava:
そのうちの1つのエージェントで、間違った結果を得たのでしょうか?

ログを 書くことを禁じられていたため、そのときのログは残っていない。そこで、Terminalの別のコピーを一から立ち上げて、ログがすべて書き込まれているところで実験を繰り返すことになりました。

上記は、Optimizationのログです。OnTester-resultsはAgentごとにバラバラなので、各Agentは2回のパスをカウントし、その後Stopボタンを押しました。

上記2つのAgentの過去ログです。自分で再現できるような状況を作ってみる。

 
fxsaber:

ログを書くことを禁じられていたため、そのときのログは残っていない。そこで、Terminalの別のコピーを一から立ち上げて、ログがすべて書き込まれているところで実験を繰り返すことになりました。

上記は、Optimizationのログです。OnTester-resultsはAgentごとにバラバラなので、各Agentは2回のパスをカウントし、その後Stopボタンを押しました。

上記2つのAgentの過去ログです。自分で再現できるような状況を作ってみる。

Agentsのログについては、まさにその通りです。両社とも結果は間違っていたのでしょうか?

正しい結果のエージェントログと間違った結果のエージェントログを見る必要があります。

 
Slava:

具体的には、エージェントのログについてお聞きしています。両社とも結果は間違っていたのでしょうか?

正しい結果のエージェントログと間違った結果のエージェントログを見る必要があります。

どちらのAgentも、最適化 パスの結果が間違っていたのです。クリーンなTerminalでほぼ再現できたのですが...。しばらくしたら、投稿します。


ZS ところで、Terminalを閉じた後、Agentがメモリにぶら下がったままになっているのはなぜですか?