アルゴリズム最適化選手権。 - ページ 50 1...434445464748495051525354555657...132 新しいコメント Andrey Dik 2016.06.21 14:49 #491 Andrey Dik:今日は例を示す時間があるようです。私たちは皆、その問題についてより詳しい人の視点から、(それぞれのタイミングで)馬鹿な質問をします。問題なし)。テストテスト例、同語反復をお許しください)。 Andrey Dik 2016.06.21 17:13 #492 非常にシンプルなFFの例、2パラメータ。このシンプルな関数で、すでにアルゴリズムをテストすることができます。#property library #property strict int countRuns = 0; //+------------------------------------------------------------------+ int GetParamCountFF () export { return (2); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double FF (double &array []) export { countRuns++; int sizeArray = ArraySize (array); if(sizeArray != 2) return (-DBL_MAX); return (-(pow (2.4 + array [0], 2.0) + pow (array [1] - 2.3, 2.0))+3.1415926); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int GetCountRunsFF () export { return (countRuns); } //+------------------------------------------------------------------+取得可能な最大値:3.14159261000本を目安に、それ以上は無理。FFは-10.0から10.0まで0.1刻みでパラメータを受け付け、それ以上のパラメータはこの限界までカットされます(上の例ではカットされていません)。参加者の皆さん、このことを肝に銘じておいてください。 Andrey Dik 2016.06.21 17:33 #493 アルゴリズムの最初のバージョンに関する テストスクリプト。#property script_show_inputs #property strict //+------------------------------------------------------------------+ // алгоритм оптимизации участника #import "\\Projects\\OAC\\lib\\ao_v1.ex5" // инициализация АО void InitAO (int paramCount, int maxFFruns); // функции алгоритма перед началом оптимизации void ServiceFunc1 (); // функции алгоритма на каждой "эпохе" (итерации) вначале void ServiceFunc2 (); // функции алгоритма на каждой "эпохе" (итерации) вконце void ServiceFunc3 (); // запрос количества пакетной обрабобки (аналог колонии ГА) int GetReplaysCount (); // получение параметров void GetOptParam (double ¶m []); // отправить в алгоритм значение ФФ соответствующее параметрам void SendFFvolue (double volue); // этой функцией алгоритм по может остановить оптимизацию bool StopAlgo (); // получить максимальное значение ФФ double GetMaxFF (); #import //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ // тестовая фитнес функция чемпионата, не известна участникам #import "\\Projects\\OAC\\lib\\ff.ex5" // запросить количество параметров ФФ int GetParamCountFF (); // запуск ФФ, получеие значения соответствующее параметроам ФФ double FF (double &array []); // произведённое количество запусков ФФ int GetCountRunsFF (); #import //+------------------------------------------------------------------+ //--- input parameters input int MaxFFruns_P = 1000; //+------------------------------------------------------------------+ void OnStart () { // узнаем, сколько параметров нужно оптимизировать int paramCount = GetParamCountFF (); bool stopAlgo = false; int ffRuns = 0; double param []; ArrayResize (param, paramCount); ulong startTime = GetMicrosecondCount (); //------------------------------------------------------------------ InitAO (paramCount, MaxFFruns_P); ServiceFunc1 (); while(!stopAlgo) { if(StopAlgo ()) break; ServiceFunc2 (); for(int i = 0; i < GetReplaysCount (); i++) { GetOptParam (param); SendFFvolue (FF (param)); ffRuns++; if(ffRuns == MaxFFruns_P) { stopAlgo = true; break; } } ServiceFunc3 (); if(StopAlgo () || stopAlgo) break; } //------------------------------------------------------------------- startTime = GetMicrosecondCount () - startTime; Print ("Макс: " + DoubleToString (GetMaxFF (), 8)); Print ("Запусков ФФ: " + (string)GetCountRunsFF ()); Print ("Время: " + (string)startTime + " мкс; " + DoubleToString ((double)startTime/1000000.0, 8) + " c"); Print ("---------------------------------"); } //+------------------------------------------------------------------+ Andrey Dik 2016.06.21 17:38 #494 テストスクリプトでは、今このような数値が出ています。2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) Time: 1119 µs; 0.00111900 c2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) FF Runs: 10002016.06.21 22:36:15.213 OAC variant 1 (GBPUSD,H1) Max: 3.14159260結論から言うと、今のところ何も不満はなく、すべて正常に動作しています。 Algorithm Optimisation Championship. BrainSystem: Trading System Development Weekly performance Avals 2016.06.21 17:47 #495 最適化は、ある特定のフィルター(を実装したアイデア)を調べるためのツールであって、大域的な極限を探すためのものではないことを前提にする必要があります。そうでなければ、普通の投資会社のPHDやリソースにさえも及ばない、中途半端なフィールドで戦うことになるのです。ソフトオナニーをキャンセルした人はいないけれども)) Dmitry Fedoseev 2016.06.21 17:55 #496 ОПТИМИЗАЦИЯ(optimization) Выбор из всех возможных вариантов использования ресурсов тех, ターゲット関数の最大化という言葉で表現 されることが 多い。 Andrey Dik 2016.06.21 18:00 #497 Avals:最適化は、ある特定のフィルター(を実装したアイデア)を調べるためのツールであって、大域的な極限を探すためのものではないことを前提にする必要があります。そうでなければ、普通の投資会社のPHDやリソースにさえも及ばない、中途半端なフィールドで戦うことになるのです。ソフトのオナニーをキャンセルした人はいないけれども))その通り、ツールです。このスレッドの前の方で、方程式の根を求める例で、最適化アルゴリズムをどのように使うかが示されました。フィルター、インジケーター、ニューラルネットワークなど、何にでも使えます。オナニーをしながら仕事をする人もいれば、仕事をしながらオナニーをする人もいる。人それぞれです。自由な国があるんだから))) Andrey Dik 2016.06.21 20:47 #498 第2バージョンの アルゴリズムのテストスクリプト。#property script_show_inputs #property strict //+------------------------------------------------------------------+ // алгоритм оптимизации участника #import "\\Projects\\OAC\\lib\\ao_v2.ex5" // инициализация АО void InitAO (int paramCount, int maxFFruns); void StartAlgo (); // получить максимальное значение ФФ double GetMaxFF (); #import //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ // тестовая фитнес функция чемпионата, не известна участникам #import "\\Projects\\OAC\\lib\\ff.ex5" // запросить количество параметров ФФ int GetParamCountFF (); // запуск ФФ, получеие значения соответствующее параметроам ФФ double FF (double &array []); // произведённое количество запусков ФФ int GetCountRunsFF (); #import //+------------------------------------------------------------------+ //--- input parameters input int MaxFFruns_P = 1000; //+------------------------------------------------------------------+ void OnStart () { // узнаем, сколько параметров нужно оптимизировать int paramCount = GetParamCountFF (); ulong startTime = GetMicrosecondCount (); //------------------------------------------------------------------ InitAO (paramCount, MaxFFruns_P); StartAlgo (); //------------------------------------------------------------------ startTime = GetMicrosecondCount () - startTime; Print ("Макс: " + DoubleToString (GetMaxFF (), 8)); Print ("Запусков ФФ: " + (string)GetCountRunsFF ()); Print ("Время: " + (string)startTime + " мкс; " + DoubleToString ((double)startTime / 1000000.0, 8) + " c"); Print ("---------------------------------"); } //+------------------------------------------------------------------+ Andrey Dik 2016.06.21 20:50 #499 2番目の開始方法についてもアルゴリズムを確認したところ、1番目の開始方法と同様の結果が得られました。つまり、個人的にはFFをどう呼び出そうが、アルゴリズムの内側からだろうが外側からだろうが、同じように機能する。注意:この2つのテストスクリプトは、現在と同様に参加者向けのチャンピオンシップで使用されます。最適化されたパラメータをファイルに保存する機能だけが追加され、制御のために、もしかしたらマイナーチェンジがあるかもしれませんが、チャンピオンシップまでには確実に反映されるでしょう。 Andrey Dik 2016.06.21 20:54 #500 では、両方のタイプのFFコールのアルゴリズム自体の例を、まさに、ネイティブで愛されているHFC上で追加してみます。特に初心者の方は、ぜひ愛用してください。初歩的でシンプル、かつ実用的な最適化アルゴリズムを構築できる例として、理解しやすいと思います。 1...434445464748495051525354555657...132 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
今日は例を示す時間があるようです。
私たちは皆、その問題についてより詳しい人の視点から、(それぞれのタイミングで)馬鹿な質問をします。問題なし)。
テストテスト例、同語反復をお許しください)。
非常にシンプルなFFの例、2パラメータ。
このシンプルな関数で、すでにアルゴリズムをテストすることができます。
取得可能な最大値:3.1415926
1000本を目安に、それ以上は無理。
FFは-10.0から10.0まで0.1刻みでパラメータを受け付け、それ以上のパラメータはこの限界までカットされます(上の例ではカットされていません)。参加者の皆さん、このことを肝に銘じておいてください。
アルゴリズムの最初のバージョンに関する テストスクリプト。
テストスクリプトでは、今このような数値が出ています。
2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) -------------------------------------------------.
2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) Time: 1119 µs; 0.00111900 c
2016.06.21 22:36:15.214 OAC variant 1 (GBPUSD,H1) FF Runs: 1000
2016.06.21 22:36:15.213 OAC variant 1 (GBPUSD,H1) Max: 3.14159260
結論から言うと、今のところ何も不満はなく、すべて正常に動作しています。
最適化は、ある特定のフィルター(を実装したアイデア)を調べるためのツールであって、大域的な極限を探すためのものではないことを前提にする必要があります。そうでなければ、普通の投資会社のPHDやリソースにさえも及ばない、中途半端なフィールドで戦うことになるのです。ソフトオナニーをキャンセルした人はいないけれども))
ОПТИМИЗАЦИЯ(optimization) Выбор из всех возможных вариантов использования ресурсов тех,
ターゲット関数の最大化という言葉で表現 されることが 多い。
最適化は、ある特定のフィルター(を実装したアイデア)を調べるためのツールであって、大域的な極限を探すためのものではないことを前提にする必要があります。そうでなければ、普通の投資会社のPHDやリソースにさえも及ばない、中途半端なフィールドで戦うことになるのです。ソフトのオナニーをキャンセルした人はいないけれども))
その通り、ツールです。このスレッドの前の方で、方程式の根を求める例で、最適化アルゴリズムをどのように使うかが示されました。フィルター、インジケーター、ニューラルネットワークなど、何にでも使えます。
オナニーをしながら仕事をする人もいれば、仕事をしながらオナニーをする人もいる。人それぞれです。自由な国があるんだから)))
第2バージョンの アルゴリズムのテストスクリプト。
2番目の開始方法についてもアルゴリズムを確認したところ、1番目の開始方法と同様の結果が得られました。つまり、個人的にはFFをどう呼び出そうが、アルゴリズムの内側からだろうが外側からだろうが、同じように機能する。
注意:この2つのテストスクリプトは、現在と同様に参加者向けのチャンピオンシップで使用されます。最適化されたパラメータをファイルに保存する機能だけが追加され、制御のために、もしかしたらマイナーチェンジがあるかもしれませんが、チャンピオンシップまでには確実に反映されるでしょう。