アルゴリズム最適化選手権。 - ページ 51 1...444546474849505152535455565758...132 新しいコメント Dmitry Fedoseev 2016.06.21 21:05 #501 2つ目の選択肢については、参加者のスクリプトの例、バルカンのようなものが必要で、よくわかりません。FFをインポート したが、参加者の関数に表示されず、MaxFFruns_P変数も表示されない。 Andrey Dik 2016.06.21 21:11 #502 Dmitry Fedoseev:2つ目の選択肢については、参加者のスクリプトの例、バルカンのようなものが必要で、よくわかりません。FFをインポートしたが、参加者の関数に表示されず、MaxFFruns_P変数も表示されない。参加者のアルゴリズムの例のことですか?まあ、アルゴリズムは何度もFFを呼ぶなと言われてるのでInitAO(paramCount、MaxFFruns_P)。第二の選択肢によれば、メンバーアルゴリズムはFFを輸入することもできる。確認したところ、FFライブラリはスクリプトとアルゴリズムで同じものが使われていました。つまり、アルゴリズムはインポートした関数で FFにアクセスし、スクリプトは独自の関数でアクセスするが、スクリプトのコールカウントは正しい。アンドレイ・ディクここで、FFの、まさに、ネイティブで愛すべきMSFの両タイプの呼び出しについて、アルゴリズムそのものの例を追加します。特に初心者の方は愛情を注いでください。初歩的でシンプル、かつ実用的な最適化アルゴリズムを構築できる例として、理解しやすいと思います。 Dmitry Fedoseev 2016.06.21 21:15 #503 Andrey Dik:参加者のアルゴリズムの例のことですか?ここで、アルゴリズムは、FFをこれ以上呼び出さないようにと言われた。InitAO(paramCount、MaxFFruns_P)。第二の選択肢によれば、メンバーアルゴリズムはFFを輸入することもできる。確 認したところ、スクリプトとアルゴリズムで同じFFライブラリのコピーが使用されていました。それが、参加者用のテンプレートを表示することです。チェッカーのスクリプトが表示されます。パラメータの数は明確です。しかし、少なくとも2、3文字は指示を書く必要がある。 Andrey Dik 2016.06.21 21:18 #504 グローバル変数の 停止は必要ないでしょう。FFに実行制限を超えた時のアラートを追加して、手動で停止できるようにすればいい。アルゴリズムは、FFを何回呼び出したかを記録しておく必要があります。 Andrey Dik 2016.06.21 21:23 #505 Dmitry Fedoseev: ここに参加者のテンプレートが表示されるはずです。チェッカーのスクリプトが表示されます。パラメータの数は明確です。しかし、少なくとも2、3文字は指示を書かなければならない。すべきです。もちろん、インストラクションもあります。 しかし、すべては十分シンプルで、参加するためにOOPは必要ないでしょうし、参加者は20行のコードを理解することができると信じています、彼らはチャンピオンシップに来た時から緑の子供ではありません)。 Dmitry Fedoseev 2016.06.21 21:25 #506 Andrey Dik:そうしなければならないのです。もちろん、説明書もあります。 しかし、すべてはそのままシンプルで、参加するためにOOPは必要ありませんし、参加者はチャンピオンシップに来たからには、緑色ではないので、おそらく20行のコードを理解することができるでしょう)。 単純なことかもしれませんが、推して知るべし、なんだか体裁が悪いというだけです。 Andrey Dik 2016.06.21 22:28 #507 FFコールの最初のバリエーションに対する参加者のアルゴリズムの一例。#property library #property strict //+------------------------------------------------------------------+ void InitAO (int paramCount, int maxFFruns) export { } //+------------------------------------------------------------------+ // //+------------------------------------------------------------------+ void ServiceFunc1 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void ServiceFunc2 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void ServiceFunc3 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int GetReplaysCount () export { return (1); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void GetOptParam (double ¶m []) export { GenerateParam (param); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void SendFFvolue (double volue) export { if(volue > maxFFvolue) maxFFvolue = volue; } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double GetMaxFF () export { return (maxFFvolue); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ bool StopAlgo () export { return (false); } //+------------------------------------------------------------------+ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Все функции выше этой строки - обязательны! Именно они будут импортированы // и использованы тестовым скриптом. Они нужны для доступа к алгоритму оптимизации. // Содержимое - произвольное, на усмотрение участника //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Ниже этой строки пример алгоритма оптимизации участника //———————————————————————————————————————————————————————————————————— double maxFFvolue = - DBL_MAX; double minParam = -10.0; double maxParam = 10.0; double stepParam = 0.1; //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // Генерация значений оптимизируемых параметров void GenerateParam (double ¶m[]) { int size = ArraySize (param); double paramVolue = 0.0; for(int i = 0; i < size; i++) { paramVolue = RNDfromCI (minParam, maxParam); param [i] = SeInDiSp (paramVolue, minParam, maxParam, stepParam); } } //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // Выбор в дискретном пространстве double SeInDiSp (double in, double inMin, double inMax, double step) { if(in <= inMin) return (inMin); if(in >= inMax) return (inMax); if(step == 0.0) return (in); else return (inMin + step * (double)MathRound ((in - inMin) / step)); } //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // ГСЧ в заданном интервале double RNDfromCI (double min, double max) { if(min == max) return (min); double Min, Max; if(min > max) { Min = max; Max = min; } else { Min = min; Max = max; } return (double(Min + ((Max - Min) * (double)MathRand () / 32767.0))); } //————————————————————————————————————————————————————————————————————アルゴリズムの実行結果。2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) --------------------------------------.2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Time: 146 µs; 0.00014600 c2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) 最大:3.141592602016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) --------------------------------------.2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Time: 148 µs; 0.00014800 c2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) 最大:3.101592602016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) --------------------------------------.2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Time: 149 µs; 0.00014900 c2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) 最大:3.061592602016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Time: 153 µs; 0.00015300 c2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) 最大:3.091592602016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Time: 154 µs; 0.00015400 c2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) 最大:3.141592602016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) --------------------------------------.2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Time: 152 µs; 0.00015200 c2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) FF runs: 10002016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Max: 2.64159260GCFのアルゴリズムとしては悪くないですねそうでしょう? Algorithm Optimisation Championship. iTime and iBarShift return PREDICT time period Andrey Dik 2016.06.21 22:32 #508 ここで他に説明することはないだろう。すべてが明確で、関数も短く、約束されたOOPもありません。コメントがあります。さらに、FFコールの2つ目のバリエーションに関する例ですが、もしモーフィアスがオーバーパワーでなければ、彼はそうなるでしょう。 Dmitry Fedoseev 2016.06.21 23:47 #509 Andrey Dik:ここで他に説明することはないだろう。すべてが明確で、関数も短く、約束されたOOPもありません。コメントがあります。そして、FFコールの第2バージョンでの例ですが、もしモーフィアスがオーバーパワーでなければ--。私もそのように書くことができます。私の質問のどこが不明瞭なのでしょうか? Dmitry Fedoseev 2016.06.21 23:49 #510 なぜ、ひとつの質問を10回もしなければならないのか? 1...444546474849505152535455565758...132 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
2つ目の選択肢については、参加者のスクリプトの例、バルカンのようなものが必要で、よくわかりません。
FFをインポート したが、参加者の関数に表示されず、MaxFFruns_P変数も表示されない。
2つ目の選択肢については、参加者のスクリプトの例、バルカンのようなものが必要で、よくわかりません。
FFをインポートしたが、参加者の関数に表示されず、MaxFFruns_P変数も表示されない。
参加者のアルゴリズムの例のことですか?
まあ、アルゴリズムは何度もFFを呼ぶなと言われてるので
InitAO(paramCount、MaxFFruns_P)。
第二の選択肢によれば、メンバーアルゴリズムはFFを輸入することもできる。確認したところ、FFライブラリはスクリプトとアルゴリズムで同じものが使われていました。つまり、アルゴリズムはインポートした関数で FFにアクセスし、スクリプトは独自の関数でアクセスするが、スクリプトのコールカウントは正しい。
ここで、FFの、まさに、ネイティブで愛すべきMSFの両タイプの呼び出しについて、アルゴリズムそのものの例を追加します。特に初心者の方は愛情を注いでください。初歩的でシンプル、かつ実用的な最適化アルゴリズムを構築できる例として、理解しやすいと思います。
Andrey Dik:
参加者のアルゴリズムの例のことですか?
ここで、アルゴリズムは、FFをこれ以上呼び出さないようにと言われた。
InitAO(paramCount、MaxFFruns_P)。
第二の選択肢によれば、メンバーアルゴリズムはFFを輸入することもできる。確 認したところ、スクリプトとアルゴリズムで同じFFライブラリのコピーが使用されていました。
それが、参加者用のテンプレートを表示することです。チェッカーのスクリプトが表示されます。
パラメータの数は明確です。しかし、少なくとも2、3文字は指示を書く必要がある。
ここに参加者のテンプレートが表示されるはずです。チェッカーのスクリプトが表示されます。
パラメータの数は明確です。しかし、少なくとも2、3文字は指示を書かなければならない。
すべきです。もちろん、インストラクションもあります。
しかし、すべては十分シンプルで、参加するためにOOPは必要ないでしょうし、参加者は20行のコードを理解することができると信じています、彼らはチャンピオンシップに来た時から緑の子供ではありません)。
そうしなければならないのです。もちろん、説明書もあります。
しかし、すべてはそのままシンプルで、参加するためにOOPは必要ありませんし、参加者はチャンピオンシップに来たからには、緑色ではないので、おそらく20行のコードを理解することができるでしょう)。
FFコールの最初のバリエーションに対する参加者のアルゴリズムの一例。
アルゴリズムの実行結果。
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) --------------------------------------.
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Time: 146 µs; 0.00014600 c
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) 最大:3.14159260
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) --------------------------------------.
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Time: 148 µs; 0.00014800 c
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) 最大:3.10159260
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) --------------------------------------.
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Time: 149 µs; 0.00014900 c
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) 最大:3.06159260
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Time: 153 µs; 0.00015300 c
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) 最大:3.09159260
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Time: 154 µs; 0.00015400 c
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) 最大:3.14159260
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) --------------------------------------.
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Time: 152 µs; 0.00015200 c
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) FF runs: 1000
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Max: 2.64159260
GCFのアルゴリズムとしては悪くないですねそうでしょう?
ここで他に説明することはないだろう。すべてが明確で、関数も短く、約束されたOOPもありません。コメントがあります。
さらに、FFコールの2つ目のバリエーションに関する例ですが、もしモーフィアスがオーバーパワーでなければ、彼はそうなるでしょう。
ここで他に説明することはないだろう。すべてが明確で、関数も短く、約束されたOOPもありません。コメントがあります。
そして、FFコールの第2バージョンでの例ですが、もしモーフィアスがオーバーパワーでなければ--。
私もそのように書くことができます。私の質問のどこが不明瞭なのでしょうか?