遺伝的最適化に関する質問 - ページ 3

 

何が起こっているのか理解できない。そこで、最適化のためのパラメータを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回の結果は重要でないと破棄されています
同じ間隔でテストすると、損失はあるものの、残高は初期預金付近を変動しています。

 
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回の結果は重要でないとして破棄されました。
同じ間隔でテストしたところ、損失は出たものの、残高は最初の入金額を中心に変動していました。

確認させてください。探すのに時間がかかりそうだ。

 
最適化中に行われた768のパスは、768の結果は重要でないとして破棄され、有益な実行はありませんでした。つまり、最終的な入金額は、常に最初の入金額より少なかったのである。あるいはそれに匹敵するものでした。トレードが実行されたときに、チケット番号や価格などをファイルに書き込む ようにすることができます。アルゴリズムが全く機能していないかどうかを把握するため。何かがあって取引できないのかもしれません。
 
Vinin писал(а)>>

確認させてください。探すのに時間がかかりそうだ。

ありがとうございます、でももう少し自分で調べてみます。

 
OrlandoMagic писал(а)>>
最適化中に行われた768のパスは、768の結果が重要でないとして破棄され、利益を生むランは1つもありません。最終的な入金額は常に最初のものよりも少なかったということです。あるいはそれに匹敵するものでした。トレードが実行されたときに、チケット番号や価格などをファイルに書き込むようにすることができます。アルゴリズムが全く機能していないかどうかを把握するため。何かがあって取引できないのかもしれません。

打ち手での可視化モードでは、トレードは行く。

 
さて、このシュトイテにあるパラメータを中心に、最適化を行う必要があります。
 
OrlandoMagic писал(а)>>
さて、最適化を実行する必要があるのは、スタック上にあるこれらのパラメータの周辺です。

>>しています。

 

今のところ、最適化の結果、良いことは何もありません。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)と書くと、インジケーターが何を考えているかがわかります

 
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
..........

が、テスターで、異なるパラメータで実行すると、取引結果が大きく異なるが、すべて同じである。