ストラテジーテスターにおける最適化 - ページ 2

 

EAを書き、最適化を実行し、見て、見て・・・。とか、オフとか...。 https://www.mql5.com/ru/docs/series コピー...のようです。がゆっくり動いている。

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - Документация по MQL5
 

早く最適化しています。文句なしです。しかし最近は、最適化がすぐに始まらず、その場で止まってしまう(ディスクが何かを一生懸命やっている音が聞こえる)。アクセスポイントから 別のアクセスポイントに絶えず移動しなければならない。そうして初めて、最適化が機能し始めるのです。

 
gumgum:

とか、オフとか...。https://www.mql5.com/ru/docs/seriesコピー...のようです。はゆっくりと動作します。

どういうことなのか、よくわからないですよね。

より具体的に説明してください。

 
gpwr:

早く最適化しています。文句なしです。しかし最近は、最適化がすぐに始まらず、その場で止まってしまう(ディスクが何かを一生懸命やっている音が聞こえる)。アクセスポイントから別のアクセスポイントへ絶えずジャンプしなければならない。そうして初めて、最適化が機能し始めるのです。

可能であれば、もう少し詳しく状況を教えてください。いつまで待つんだ?ログブックには何が(もしあれば)書き込まれるのですか?

 
Dmitriy2:

そして、いくつかのパラメータを選択して、テストをクリックすると......。朝、何本目か、何本残っているか数えてみると......。を計算すると、最適化終了まで50日あった...。私のコンピュータは4コア+2コアエージェントなのですが・・・。この最適化は必要ないので、消しましたが...。

いくつかのパラメータを最初に最適化し、次に他のパラメータを最適化し、ステップを増やしてみてください。その後、サンプル内でもう一回実行してもよい。
 
alexvd:

意味がよくわからないのですが。

より具体的に説明してください。

例えば、こんな感じです。

double open(string sym,ENUM_TIMEFRAMES tf,int ps)
{
double ren[1]={EMPTY_VALUE};
CopyOpen(sym,tf,ps,1,ren); 
return(ren[0]); 
}

過去50000個の値を要求し、ファイルから読み込む時間を測定すると、その差は~0%~30%になります。50000の値で時間を測定し、ファイルに 書き込み、次にファイルから読み込む時間を測定すると、前者に有利な差は〜0%〜30%です。

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
gumgum:

以下はその一例です。

であれば、その差は前者の方が~0%~30%有利となります。

ファイルからの読み込みが速くなるわけですね。

一度に5万個コピーできるのに、なぜ一度に1個コピーするのか(そんなにたくさんあるなら)。

 
alexvd:

ファイルからの読み込みが速くなるわけですね。

一度に5万個コピーできるのに、なぜ一度に1個コピーするのか(そんなにたくさんあるなら)。

ファイルからだと遅くなる。では、なぜ「一気に50000」と前回の呼び出しでこれほどの差が出たのでしょうか。

 
gumgum:

では、なぜ「一気に5万円」と「ラストコール」にこれほどの差があるのでしょうか。

演算は単純だ(数字はおおよそであるが、桁が重要である)。

配列の要素に アクセスする場合、5CPUサイクルが必要です。

関数呼び出しは、〜100クロック・サイクルです。

このため、1回の関数呼び出しで必要な量のデータを一度に取得する方が、実行速度が安くなるという違いがあります。

 

特定のEAのコードの細部にまで議論が及んでいるようです。しかし、どのEAを最適化しても、ほとんどすべての時間が準備作業に費やされている(90%以上)ことに気づきました。そして、実行(ログのパス)するたびに新しい入力パラメータが最適化されていくのです。そのため、どんなにコードを最適化しても、数パーセントの性能向上しか得られない。

alexvd さんへこのスレッドの1番目と3番目の投稿をご覧ください:サンプルとログを交えて詳しく 説明しています。

もし、テスターが最適化の際に一度だけ予備作業を行い、その後、入力データを列挙しながらExpert Advisorを計算することができれば、最適化の時間は少なくとも1桁は短縮されるはずです。次に、Expert Advisorのコードそのものについてです。