遺伝的最適化に関する質問 - ページ 3 12345678910 新しいコメント angela 2009.08.03 12:54 #21 何が起こっているのか理解できない。そこで、最適化のためのパラメータを3つだけにし、遺伝的最適化ではなく通常の最適化を行い、EAの設定に一切の制約を加えず、タスクを簡素化することにしました。最適化の実行時間は8時間47分でしたが、ログファイルには実行時間終了後の「最適化結果」「最適化グラフ」に何も表示されませんでした。 00:44:09 ABC_exp: 最適化開始 09:31:09 ABC_exp: 最適化停止 をログファイルに保存します。 2009.08.03 00:44:09 ABC_exp: 最適化開始 2009.08.03 09:31:09 ABC_exp: 最適化停止 2009.08.03 09:31:09 最適化の際に行われたパスは768回で、768回の結果は重要でないと破棄されています 同じ間隔でテストすると、損失はあるものの、残高は初期預金付近を変動しています。 Victor Nikolaev 2009.08.03 13:09 #22 Angela писал(а)>> 何が起こっているのか理解できない。タスクを単純化するために、最適化のためのパラメータを3つだけ取り、遺伝的最適化ではなく通常の最適化を行い、EAの設定に一切の制約を加えなかった。最適化実行時間は8時間47分でしたが、実行後、「最適化結果」「最適化グラフ」に何も表示されませんでしたので、実行時間が終了するまで待つことにしました。 00:44:09 ABC_exp:最適化開始 09:31:09 ABC_exp: 最適化が停止しました。 をログファイルに保存します。 2009.08.03 00:44:09 ABC_exp:最適化を開始しました。 2009.08.03 09:31:09 ABC_exp: 最適化が停止しました。 2009.08.03 09:31:09 最適化中に行われたパスが768回あり、768回の結果は重要でないとして破棄されました。 同じ間隔でテストしたところ、損失は出たものの、残高は最初の入金額を中心に変動していました。 確認させてください。探すのに時間がかかりそうだ。 Stepan 2009.08.03 14:45 #23 最適化中に行われた768のパスは、768の結果は重要でないとして破棄され、有益な実行はありませんでした。つまり、最終的な入金額は、常に最初の入金額より少なかったのである。あるいはそれに匹敵するものでした。トレードが実行されたときに、チケット番号や価格などをファイルに書き込む ようにすることができます。アルゴリズムが全く機能していないかどうかを把握するため。何かがあって取引できないのかもしれません。 angela 2009.08.03 17:38 #24 Vinin писал(а)>> 確認させてください。探すのに時間がかかりそうだ。 ありがとうございます、でももう少し自分で調べてみます。 angela 2009.08.03 17:39 #25 OrlandoMagic писал(а)>> 最適化中に行われた768のパスは、768の結果が重要でないとして破棄され、利益を生むランは1つもありません。最終的な入金額は常に最初のものよりも少なかったということです。あるいはそれに匹敵するものでした。トレードが実行されたときに、チケット番号や価格などをファイルに書き込むようにすることができます。アルゴリズムが全く機能していないかどうかを把握するため。何かがあって取引できないのかもしれません。 打ち手での可視化モードでは、トレードは行く。 Stepan 2009.08.03 18:11 #26 さて、このシュトイテにあるパラメータを中心に、最適化を行う必要があります。 angela 2009.08.03 19:39 #27 OrlandoMagic писал(а)>> さて、最適化を実行する必要があるのは、スタック上にあるこれらのパラメータの周辺です。 >>しています。 angela 2009.08.10 19:52 #28 今のところ、最適化の結果、良いことは何もありません。Expert Advisorのプロパティで最適化されたパラメータとその変動幅を設定し、最適化を実行し、パラメータを列挙しても、最適化の各ステップで同じ結果が得られます。Expert Advisorはパラメータを検索するものの、最初に設定したパラメータと同じものを使っている印象があります。 関数の設定が間違っているのではと疑っています。 まずはじめに インジケータに設定したものと同じように最適化すべきパラメータをEAに設定しました。 extern int MA_Period=151; // 101 10 201 extern double KFK=0.9; // 0.7 0.005 1. int start()関数でインジケータへの参照を設定しました。 B3=NormalizeDouble(iCustom(NULL, 0, "ART",0,1),Digits); BT=GlobalVariableGet(NameGlobalVariableBT)です。 質問:"ART "の後に、変更するパラメータを入れる必要があるのでしょうか? 入れなければ最適化が行われるが結果は同じ、入れれば結果は0になる。 1 0.00 0.00 0.00 0.00 % MA_Period=101 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 2 0.00 0.00 0.00 0.00 0.00% MA_Period=111 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 3 0.00 0.00 0.00 0.00 0.00% MA_Period=121 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 4 0.00 0.00 0.00 0.00 0.00% MA_Period=131 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 5 0.00 0.00 0.00 0.00 0.00% MA_Period=141 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 Question on genetic optimisation Expert Advisorは月20%、ロットは預金の10%です。 MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Stepan 2009.08.10 20:42 #29 まあ、プログラムテキストのどこかに書いてあるはずなんですけどね。すべて0であれば、取引がなかったということです...。それとも違う? 一般に、パラメーターは警戒されるものですが...。MA_Periodという変数とその値101、102、103があり、テスターは実行中に自ら挿入します。 B3=NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); iCustomのヘルプを読む(当たり前のことを書いてすみません。) また、インジケーターの後に例えばPrint(B3)と書くと、インジケーターが何を考えているかがわかります angela 2009.08.10 21:17 #30 OrlandoMagic писал(а)>> まあ、プログラムテキストのどこかに書いてあるはずなんですけどね。すべて0であれば、取引がなかったということです...。それとも違う? 一般に、パラメーターは警戒されるものですが...。MA_Periodという変数とその値101、102、103があり、テスターは実行中に自ら挿入します。 B3=NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); iCustomのヘルプを読む(当たり前のことを書いてすみません。) また、例えばPrint (B3)でフォローすると、インジケータが何を考えているのかがわかります。 次のようにパラメータを設定すると、 (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); - 上記のように、すべてゼロが表示されます。 iCustom(NULL, 0, "ART", 0, 1), Digits); を設定すると、計算値が表示されるようになりました。 1 299.70 36 1.80 8.33 153.30 11.51% Threshold1=90 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051 2 299.70 36 1.80 8.33 153.30 11.51% Threshold1=91 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051 3 299.70 36 1.80 8.33 153.30 11.51% Threshold1=92 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051 4 299.70 36 1.80 8.33 153.30 11.51% Threshold1=93 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051 .......... が、テスターで、異なるパラメータで実行すると、取引結果が大きく異なるが、すべて同じである。 Question on genetic optimisation Pure maths, physics, logic Are "momentum" strategies possible? 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
何が起こっているのか理解できない。そこで、最適化のためのパラメータを3つだけにし、遺伝的最適化ではなく通常の最適化を行い、EAの設定に一切の制約を加えず、タスクを簡素化することにしました。最適化の実行時間は8時間47分でしたが、ログファイルには実行時間終了後の「最適化結果」「最適化グラフ」に何も表示されませんでした。
00:44:09 ABC_exp: 最適化開始
09:31:09 ABC_exp: 最適化停止
をログファイルに保存します。
2009.08.03 00:44:09 ABC_exp: 最適化開始
2009.08.03 09:31:09 ABC_exp: 最適化停止
2009.08.03 09:31:09 最適化の際に行われたパスは768回で、768回の結果は重要でないと破棄されています
同じ間隔でテストすると、損失はあるものの、残高は初期預金付近を変動しています。
何が起こっているのか理解できない。タスクを単純化するために、最適化のためのパラメータを3つだけ取り、遺伝的最適化ではなく通常の最適化を行い、EAの設定に一切の制約を加えなかった。最適化実行時間は8時間47分でしたが、実行後、「最適化結果」「最適化グラフ」に何も表示されませんでしたので、実行時間が終了するまで待つことにしました。
00:44:09 ABC_exp:最適化開始
09:31:09 ABC_exp: 最適化が停止しました。
をログファイルに保存します。
2009.08.03 00:44:09 ABC_exp:最適化を開始しました。
2009.08.03 09:31:09 ABC_exp: 最適化が停止しました。
2009.08.03 09:31:09 最適化中に行われたパスが768回あり、768回の結果は重要でないとして破棄されました。
同じ間隔でテストしたところ、損失は出たものの、残高は最初の入金額を中心に変動していました。
確認させてください。探すのに時間がかかりそうだ。
確認させてください。探すのに時間がかかりそうだ。
ありがとうございます、でももう少し自分で調べてみます。
最適化中に行われた768のパスは、768の結果が重要でないとして破棄され、利益を生むランは1つもありません。最終的な入金額は常に最初のものよりも少なかったということです。あるいはそれに匹敵するものでした。トレードが実行されたときに、チケット番号や価格などをファイルに書き込むようにすることができます。アルゴリズムが全く機能していないかどうかを把握するため。何かがあって取引できないのかもしれません。
打ち手での可視化モードでは、トレードは行く。
さて、最適化を実行する必要があるのは、スタック上にあるこれらのパラメータの周辺です。
>>しています。
今のところ、最適化の結果、良いことは何もありません。Expert Advisorのプロパティで最適化されたパラメータとその変動幅を設定し、最適化を実行し、パラメータを列挙しても、最適化の各ステップで同じ結果が得られます。Expert Advisorはパラメータを検索するものの、最初に設定したパラメータと同じものを使っている印象があります。 関数の設定が間違っているのではと疑っています。
まずはじめに
インジケータに設定したものと同じように最適化すべきパラメータをEAに設定しました。
extern int MA_Period=151; // 101 10 201
extern double KFK=0.9; // 0.7 0.005 1.
int start()関数でインジケータへの参照を設定しました。
B3=NormalizeDouble(iCustom(NULL, 0, "ART",0,1),Digits);
BT=GlobalVariableGet(NameGlobalVariableBT)です。
質問:"ART "の後に、変更するパラメータを入れる必要があるのでしょうか?
入れなければ最適化が行われるが結果は同じ、入れれば結果は0になる。
1 0.00 0.00 0.00 0.00 % MA_Period=101 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
2 0.00 0.00 0.00 0.00 0.00% MA_Period=111 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
3 0.00 0.00 0.00 0.00 0.00% MA_Period=121 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
4 0.00 0.00 0.00 0.00 0.00% MA_Period=131 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
5 0.00 0.00 0.00 0.00 0.00% MA_Period=141 KFK=0.8 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456
まあ、プログラムテキストのどこかに書いてあるはずなんですけどね。すべて0であれば、取引がなかったということです...。それとも違う?
一般に、パラメーターは警戒されるものですが...。MA_Periodという変数とその値101、102、103があり、テスターは実行中に自ら挿入します。
B3=NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); iCustomのヘルプを読む(当たり前のことを書いてすみません。)
また、インジケーターの後に例えばPrint(B3)と書くと、インジケーターが何を考えているかがわかります
まあ、プログラムテキストのどこかに書いてあるはずなんですけどね。すべて0であれば、取引がなかったということです...。それとも違う?
一般に、パラメーターは警戒されるものですが...。MA_Periodという変数とその値101、102、103があり、テスターは実行中に自ら挿入します。
B3=NormalizeDouble(iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); iCustomのヘルプを読む(当たり前のことを書いてすみません。)
また、例えばPrint (B3)でフォローすると、インジケータが何を考えているのかがわかります。
次のようにパラメータを設定すると、 (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); - 上記のように、すべてゼロが表示されます。
iCustom(NULL, 0, "ART", 0, 1), Digits); を設定すると、計算値が表示されるようになりました。
1 299.70 36 1.80 8.33 153.30 11.51% Threshold1=90 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
2 299.70 36 1.80 8.33 153.30 11.51% Threshold1=91 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
3 299.70 36 1.80 8.33 153.30 11.51% Threshold1=92 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
4 299.70 36 1.80 8.33 153.30 11.51% Threshold1=93 Threshold2=215 MA_Period=45 Lots=0.1 TrailingStop1=3110 StopLoss1=1500 TrailingStop2=3110 StopLoss2=1500 MAGIC_1=12345 MAGIC_2=23456 KFK=0.9 KNK=1.7 FB=0.0025 FNS=0.0005 USL=0.0051
..........
が、テスターで、異なるパラメータで実行すると、取引結果が大きく異なるが、すべて同じである。