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

 
gumgum:

計290本と...オン)

トータルオーバーキルで290を実現。

パス(実走)はないけれど、(試合があれば)確定ということですね?

遺伝的アルゴリズムを 選択したため、独自の交配計画と母集団出力を構築します。遺伝的最適化アルゴリズムについては、関連論文に記載されています。

パスが少ない(290本)のに遺伝子を走らせるのは無理がある。遺伝的アルゴリズムでは、少なくとも数万、できれば数百万/数十億/数百兆のバリアントを初期に列挙して使用する必要があります。

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 

MQL5リファレンスマニュアル -標準ライブラリ- データを整理するためのクラス - CArrayObj(ウェブサイトとヘルプに記載)。

2.メモリ管理機構は無効です。

この場合、CArrayObj はメモリ解放の責任を 負いません。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Renat:

はい、既存の最新の日付までテストする必要はありません。

前営業日の午前0時、あるいは前営業週の終わりという形で、合理的な固定 終了日を選択する。最終日をずっと使っていると、特にリモートやクラウドエージェントを使ったテスト工程が長い場合、スケジュールの終了 が定期的に浮くことになります。


日曜日を終了日にしました。他のどこがセンシティブなのか?日曜日は取引はありません。そこに何が浮くのか?
 
MoneyJinn:
日曜日を終了日にしました。他のどこに意味があるのでしょうか?日曜日は取引はありません。そこに何が浮くのか?

となると、問題はもう一方の端にあるのかもしれません。指標を機能させるためには、どの程度の履歴が必要ですか?テスト開始時には、私の理解では、100本の先行バーが保証されています。

それ以上必要な場合は、Expert Advisor の開始後のヒストリーの一部を[necessary_number_of_bars - 100] より大きい長さでスキップする必要があります。これにより、テスターとオプティマイザーの結果の相関関係で悩んでいたことが解決されました。

 
MetaDriver:

となると、問題はもう一方の端にあるのかもしれません。指標を機能させるためには、どの程度の履歴が必要ですか?テスト開始時には、私の理解では、100本の先行バーが保証されています。

さらに必要な場合は、Expert Advisor の開始後に[necessary_number_of_bars - 100] 以上の長さで履歴の一部をスキップします。これで、テスターとオプティマイザーの結果が一致しない問題が解決しました。

ありがとうございます。しかし、スクリーンショットを見ると、ネットワーク経由で最適化すると、金曜日(24.06.11)の履歴が失われていることがわかります。

 

決定的な質問ではありませんが、それでも。文字列の連結。ドキュメントでは、StringAddとStringConcatenateの2つの関数について説明されています。

1つ目は、「StringAdd()関数は、加算演算による文字列連結よりも高速に動作し、メモリ使用量も 節約できる」というものです。

2つ目は、「StringConcatenate()関数はstring型の一時変数を使用しないため、加算演算による文字列結合よりも高速かつ経済的に 動作する。

void OnStart() {
  string string1 = "sdfdsfjssdfads";
  string string2 = "bsadfasdfaaa";
  string string3 = "ssdfsdgasgsaggsda";
  string result;
  uint i, start, stop, length = 10000000;

  start = GetTickCount();
  for(i = 0; i < length; i++)
    result = string1 + string2 + string3;
  stop = GetTickCount();
  Print("№1 ", (stop-start), " milliseconds, i = ", i);
 
  start = GetTickCount();
  for(i = 0; i < length; i++) {
    StringAdd(result, string1);
    StringAdd(result, string2);
    StringAdd(result, string3);
  }
  stop = GetTickCount();
  Print("№2 ", (stop-start), " milliseconds, i = ", i);

  start = GetTickCount();
  for(i = 0; i < length; i++)
    StringConcatenate(result, string1, string2, string3);
  stop = GetTickCount();
  Print("№3 ", (stop-start), " milliseconds, i = ", i);
}

結果

2011.06.26 19:10:55 test (EURUSD,H1) №1 2012 ミリ秒, i = 10000000
2011.06.26 19:11:04 test (EURUSD,H1)#2 8269 ミリ秒, i = 10000000
2011.06.26 19:11:10 test (EURUSD,H1)#3 6661 ミリ秒, i = 10000000

しかし、通常の足し算の方が速い ことが判明した。

Документация по MQL5: Строковые функции / StringConcatenate
Документация по MQL5: Строковые функции / StringConcatenate
  • www.mql5.com
Строковые функции / StringConcatenate - Документация по MQL5
 
voix_kas:

しかし、普通に足し算を した方が早いことがわかりました。

https://www.mql5.com/ru/forum/58/page13#comment_59630 本文の後半にある議論をご覧になってください。開発者の方へ:結論から言うと、参考資料の中でこの問題に対するカバーが不足しています。
Изучаем и пишем вместе на MQL5
Изучаем и пишем вместе на MQL5
  • www.mql5.com
2) вывод всей возможной информации по инструментам, ордерам и др.
 
MoneyJinn:
日曜日を締切日としました。他のどこがセンシティブなのか?日曜日にTORGはありません。そこには何が漂っているのだろう?

この種の質問には詳細が必要なため、サービスデスクでチケットを作成し、詳細を記入してください。

もちろん、問題は歴史とその共時性である。

 
voix_kas:

決定的な質問ではありませんが、それでも。文字列の連結。ドキュメントでは、StringAddとStringConcatenateの2つの関数について説明されています。

1つ目は、「StringAdd()関数は、加算演算による文字列連結よりも高速に動作し、メモリ使用量も 節約できる」というものです。

2つ目は、「StringConcatenate()関数はstring型の一時変数を使用しないため、加算演算を用いた文字列結合よりも高速に 動作し、メモリ使用量も 節約できる」というものです。

結果

2011.06.26 19:10:55 test (EURUSD,H1) №1 2012 ミリ秒, i = 10000000
2011.06.26 19:11:04 test (EURUSD,H1)#2 8269 ミリ秒, i = 10000000
2011.06.26 19:11:10 test (EURUSD,H1)#3 6661 ミリ秒, i = 10000000

しかし、通常の足し算の方が速い ことが判明した。

これは、+による文字列連結の最適化だと思われます。

コンパイラは、長い間期待されていた最適化モードの組み込みに関して、いくつかの重大な修正が行われています。しばらくしたら、その結果をお見せする予定です。

 
Renat:

を使った文字列連結の最適化が効いているようです。

待望の最適化モードを 実現するという意味で、今、コンパイラを本気で変えようとしているのです。しばらくしたら、その結果をお見せします。

なるほど、可能であればフォーラムに明示的に記述してください(私はすべてのスレッドをフォローするようにしています)。

今までのアルゴリズムでは、仕事「+」を残していました。