最適化中の単一アレイ計算 - ページ 3 12345678 新しいコメント Alexey Viktorov 2016.09.15 16:44 #21 forexman77:コストは一義的に大きくなります。インジケータの設定を 変更せず、同じ値を持つ2つのバリエーションがありますが、すでにファイルに書き込まれているため、配列にダンプされます。ファイルを使ったバリアントは、Expert Advisorのインジケータ計算を使ったバリアントより何倍も計算時間がかかります。私はちょうど、配列を一度保存して、それを最適化のすべてのパスに使用することで、アルゴリズムへの負荷を軽減する方法があるのではないかと考えていたところです。インジケーターの計算より時間がかかる配列の書き込み、読み出しの方法はありますか? Maxim Kuznetsov 2016.09.15 16:44 #22 forexman77: この場合、新しいパスに切り替えたときに配列は保存されるのでしょうか? そう、それはきっと...。 forexman77 2016.09.15 16:46 #23 Dmitry Fedoseev: はい、難しくもなく、コストもかかりません。バイナリーモードを使用することができます。ファイル全体を読むのではなく、必要な位置から読み始めるとよいでしょう。int init() { int k; string Skip; datetime Str_DtTm; double L; Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_BIN,","); ResetLastError(); if(Handle<0) // Failure when opening a file { if(GetLastError()==4103) Alert("There is no file named ",File_Name); else Alert("Error when opening a file ",File_Name); PlaySound("Bzrrr.wav"); return(0); } ArrayInitialize(T,0); ArrayInitialize(dn,0); ArrayResize(T,stroki); ArrayResize(dn,stroki); for(k=stroki-1;k>=0;k--) { //--------------------------------------------------------- 5 -- Str_DtTm=FileReadDatetime(Handle);// строка даты L=FileReadDouble(Handle); Skip=FileReadString(Handle);//пропускаем //--------------------------------------------------------- 6 -- T[k]=Str_DtTm; dn[k]=L; //--------------------------------------------------------- 7 -- if(FileIsEnding(Handle)==true){ Print("Конец отсчета=",TimeToString(T[k]));break;}//завершили отсчет } FileClose(Handle); return(0); }バイナリモードは、線と数字の変換が ない場合?また、大きな履歴の1分足チャートでの最適化も付け加えると思います。 Dmitry Fedoseev 2016.09.15 16:47 #24 は、コンパイル時のアクトを含みます。誰がコンパイルするのですか?もしかしたら、この配列は最適化パラメータに依存するのかもしれません。そのため、各最適化の前に配列を生成してコンパイルする必要があるのです。いい加減な解決策だ。 Maxim Kuznetsov 2016.09.15 16:48 #25 Dmitry Fedoseev: は、コンパイル時のアクトを含みます。誰がコンパイルするのですか?もしかしたら、この配列は最適化パラメータに依存するのかもしれません。そのため、各最適化の前に配列を生成してコンパイルする必要があるのです。いい加減な解決策だ。 捏造するなよ - TCは明確にアレイは変更しないと言っている。 Dmitry Fedoseev 2016.09.15 16:49 #26 forexman77: バイナリモードとは、文字列から 数値への変換が ない場合?https://www.mql5.com/ru/docs/files/filereadarrayhttps://www.mql5.com/ru/docs/files/filewritearrayリンク先には例もあります。 Dmitry Fedoseev 2016.09.15 16:50 #27 Maxim Kuznetsov: 捏造するなよ - TCは明確にアレイは不変だと言っている。 1回の最適化で変化なし。もうひとつの不変量については、何もありませんでした。 Dmitry Fedoseev 2016.09.15 16:53 #28 もちろん、常に全く変化しない配列であれば、EAコードに含めた方がよいでしょう。インクルードせずに直接EAファイルに含めることができます。 forexman77 2016.09.15 16:57 #29 Maxim Kuznetsov: はいドミトリー・フェドセーエフ もちろん、配列が常に絶対に変更できない場合は、Expert Advisor のコードに含める方がよいでしょう。Expert Advisorのファイルにインクルードせずに直接行うことができます。 インクルードには遭遇して いない。おおよその方法を教えてください。 Dmitry Fedoseev 2016.09.15 17:00 #30 forexman77:まだ出会って いないんです。大まかなやり方、方向性を示してください。 inludeなしで、スクリプトで配列コードを生成し、ファイルに書き出し(Alert()に出力することもできます)、マウスでEAコードに転送すればOKです。 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コストは一義的に大きくなります。インジケータの設定を 変更せず、同じ値を持つ2つのバリエーションがありますが、すでにファイルに書き込まれているため、配列にダンプされます。
ファイルを使ったバリアントは、Expert Advisorのインジケータ計算を使ったバリアントより何倍も計算時間がかかります。
私はちょうど、配列を一度保存して、それを最適化のすべてのパスに使用することで、アルゴリズムへの負荷を軽減する方法があるのではないかと考えていたところです。
インジケーターの計算より時間がかかる配列の書き込み、読み出しの方法はありますか?
この場合、新しいパスに切り替えたときに配列は保存されるのでしょうか?
はい、難しくもなく、コストもかかりません。バイナリーモードを使用することができます。ファイル全体を読むのではなく、必要な位置から読み始めるとよいでしょう。
バイナリモードは、線と数字の変換が ない場合?
また、大きな履歴の1分足チャートでの最適化も付け加えると思います。
は、コンパイル時のアクトを含みます。誰がコンパイルするのですか?もしかしたら、この配列は最適化パラメータに依存するのかもしれません。そのため、各最適化の前に配列を生成してコンパイルする必要があるのです。いい加減な解決策だ。
バイナリモードとは、文字列から 数値への変換が ない場合?
https://www.mql5.com/ru/docs/files/filereadarray
https://www.mql5.com/ru/docs/files/filewritearray
リンク先には例もあります。
捏造するなよ - TCは明確にアレイは不変だと言っている。
はい
もちろん、配列が常に絶対に変更できない場合は、Expert Advisor のコードに含める方がよいでしょう。Expert Advisorのファイルにインクルードせずに直接行うことができます。
まだ出会って いないんです。大まかなやり方、方向性を示してください。