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

 
Igor Makanu:

OnTester()に出力してチェックした

画像は上記と同じです。

ここで、オプションでNSをGAテスターに通した場合、すべてのローカルプロセッサコアが同じNS重みの初期設定で動作しないことは確実ではない、つまり学習結果を台無しにしてしまう、という確信の問題があります、イミホ。

パス番号の関数を生成ベースとして使ってみるのもよいでしょう。

最適化中に変化する入力パラメータがある場合、その組み合わせ(和、積、べき乗...)を利用して、疑似乱数生成のベースを設定することができる。おそらく(確信はありませんが:D)、副次的な効果として、「乱数」を含むコードを一度に再現することができるようになるでしょう。

 
Igor Zakharov:

パス番号の何らかの関数を生成ベースとして使ってみるのもよいでしょう。

最適化中に変化する入力パラメータがある場合、それらの組み合わせ(和、積、次数...)を利用して擬似乱数生成ベースを設定することができる。おそらく(確信はありませんが:D)、副次的な効果として、「乱数」を含むコードを一度に再現 することができるようになるでしょう。

数キロバイトで、比較的ランダムな文字の配列を生成/検索することができる(プーシキンのテキスト:))。もし提案されたものがチェックされなければ、タスクの要求を満たすためにランダムネスをずる賢く実装することになりますし、多くのライブラリでそのような問題があったことを覚えています。

ChartOpen()でチャートを開くと、エキスパートアドバイザーが動作するチャートにフォーカス(活動、可視性)を戻すにはどうしたらよいでしょうか?

また、Bid, Ask がチャート価格と一致しない理由を知っている人 Close[0]https://www.mql5.com/ru/forum/160683/page1082#comment_15152111

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2020.02.25
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Aleksey Mavrin:

結局のところ、タスクの要件に合うように、独自のランダム化の実装を巧妙に行う必要があるのです。

そういう問題ではないと思うのですが...。疑似乱数自体は非常によく機能しますが、問題は生成ベースにあります。(最適化の際に)一定の入力ではベースは同じで、結果は常に近くなります。

 
Igor Zakharov:

ということではなさそうだ...。疑似乱数自体は問題なく動作しますが、問題は系列の生成ベースにあります。(最適化の際に)一定の入力では、ベースは同じで、結果は常に近くなります。

私もそう思います。私はちょうど事実、メモリが提供する場合、多くの場合、初期化を動作しないライブラリを発見した(ある)ことを意味し、チェックされていない場合は、同じベースを理由なく、すなわち、使用、多くはそれについて知らない。

 
Igor Makanu:

同上

EAのプロパティでsrandに数値を設定するか、パラメータのハッシュから取得すれば、少なくともrandomsは異なる初期化が行われることになります。
 
TheXpert:
EAのプロパティでsrandに数値を設定するか、パラメータのハッシュから取得すれば、少なくともrandomsは異なる初期化が行われることになります。

私は昨日、この解決策を思いつきました。

input int param1 =  2147483647;
//+------------------------------------------------------------------+
int OnInit()
   {
   srand(param1);
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
void OnTick()
   {

   }
//+------------------------------------------------------------------+
double OnTester()
   {
   return(rand());
   }

私の質問は、一般的にteterのrand()の正しさについてです、今私はalglibを検索し、それはrandomreal()で一度MathRand() を使用し、それはしばしばalglibライブラリ内で使用されるでしょう

 
Igor Makanu:

私の質問は、一般的に、テータにおけるrand()の正しさについてです。

質問内容はまさに初期化についてなのですが、どうやらテスターではrand()をうまく取得するために時間による初期化ができないようです。
 
TheXpert:
テスターでランダム性を出すには、時間で初期化してはいけないらしい。

然ればこそ

昨日、これはドキュメントと矛盾していると書きましたhttps://www.mql5.com/ru/forum/1111/page2657#comment_15165819 そして、ヘルプにある MathSrand() の例は、テスターで予想されたのとは異なる結果を出すでしょう。


UPD: 私の問題はもう少し深いです。私は、深層学習のためにテスターを使い、エージェント間の交換を通じて最適なNSの設定を保存したいのです。一般的にはすべてを計画しましたが、ランダムな値を持つエージェントの開始(または停止)ポーズによって衝突を処理したかったのです...。しかし、残念ながらテスターエージェントでは、すべてのランダムな値がランダムであるとは限りません )))

 
多くの場合、テスターは結果の再現性を確保する必要があります。入力パラメータや環境の状態(仮想時間に関する全ての機能)を変えずに結果をランダム化するという要求は、テスターのタスクと実装に反しています。
 
Stanislav Korotky:
テスターの場合、ほとんどの場合、結果の再現性を確保する必要があります。入力パラメータや環境の状態(仮想時間に関する全ての機能)を変えずに結果をランダム化するという要件は、テスターのタスクと実装に矛盾している。

書いてあることは正しいのですが、データベースに保存する際に、エージェントのアクセス順を分ける必要があります。

要するに、テスターにローカルエージェントIDが必要なのですが、なぜそのような機能がないのかわかりません。