EAラボラトリーフォーラム::FXシステムトレード情報満載のコミュニティサイト
http://forum.ea-labo.com/

最適化の1つの実行を途中で終了させる方法
http://forum.ea-labo.com/viewtopic.php?f=3&t=1711
ページ 11

作成者:  inumart [ 2011年2月13日(日) 12:08 ]
記事の件名:  最適化の1つの実行を途中で終了させる方法

お世話になっております。

【質問概要】
EAを、途中で終了させるようコーディングすることは出来ますでしょうか。

【質問背景】
現在、自作EAの最適化を行なっております。
実現したい事としては、
不正なパラメータの組合せの場合は、そこでそのパラメータでのバックテストの実行を終了し、
次のパラメータでのバックテストに移ってもらいたいのです。

【実施してみたこと】
init()内で「不正な条件の場合にreturn;」を入れました。

が、init()が終わってしまっただけで、そこでEAは終わらず、
start()がTickの更新ごとに呼ばれ続ける、という動きをしました。
しょうがないのでstart()の冒頭で、不正の場合はreturnする、を入れ込みましたが、
指定時間の間は動いてしまうので無駄な時間動いてしまいます。

色々ネットで調べてみたのですが、見つからないのでご教授頂けないでしょうか。
宜しくお願いいたします。

作成者:  engineeeer [ 2011年2月14日(月) 02:36 ]
記事の件名:  Re: 最適化の1つの実行を途中で終了させる方法

ea内部からテスターをコントロールすることは出来ないと思います。ですから最適化の1つの実行を途中で終了させる方法はMetaTrader単体では不可能と思います。
『不正なパラメータ』というものがどのように不正なのかがわからないのですが、そうならないようにオプティマイズ用のパラメータを用意して、同間隔でのStepに応じたパラメータ群の変換を入れることは難しいのでしょうか?

P.S..このトピックはengineerトピックに移動しますね

作成者:  inumart [ 2011年2月14日(月) 12:39 ]
記事の件名:  Re: 最適化の1つの実行を途中で終了させる方法

それであれば、バックテスト用に例えばint型の『OptiSetting』という公開変数を用意して、その値を変化させると他のパラメータがまとめて変化するようにstart()関数の中でプログラムします。そのプログラムの中で、『A > B > C』となるように『OptiSetting』の同間隔ステップに対応させたA,B,Cのパラメータ群をあらかじめ用意すればよいと思います。
バックテストでは、『OptiSetting』のみにOptimizeをかけます。

作成者:  inumart [ 2011年2月15日(火) 00:00 ]
記事の件名:  Re: 最適化の1つの実行を途中で終了させる方法

engineeeer さんが書きました:
それであれば、バックテスト用に例えばint型の『OptiSetting』という公開変数を用意して、その値を変化させると他のパラメータがまとめて変化するようにstart()関数の中でプログラムします。そのプログラムの中で、『A > B > C』となるように『OptiSetting』の同間隔ステップに対応させたA,B,Cのパラメータ群をあらかじめ用意すればよいと思います。
バックテストでは、『OptiSetting』のみにOptimizeをかけます。


なるほど・・・よーく分かりました!
EAプログラミング以前の、工夫する力量の問題ですね。。。
”EA側からテスターを制御するのは無理”ということと、上記問題解決の答えを頂けて良かったです。
ありがとうございました!

ページ 11 All times are UTC + 9 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/