IsOptimization 関数
この関数は、EAがストラテジーテスターの最適化モードで実行されているかどうかを確認します。
ストラテジーテスターの最適化モードは「最適化」にチェックを入れて「スタート」することで実行できます。
データ型と構成・戻り値
bool IsOptimization();
戻り値は、EAがストラテジーテスターの最適化モードで実行されている場合は true、それ以外は falseを返します。
引数 [0]
引数無し。
使用例
IsOptimization関数を使ったテスターの最適化モードの確認
IsOptimization関数を使ったテスターの最適化モードの確認は、実際に最適化している時にしか確認することができません。最適化を行なう時は、セッティングで「最適化」にチェックを入れておいてください。
Print関数は、ストラテジーテスターの最適化では機能しないので、次のコードでは、最適化での実行は買い成行注文が成立したかどうかで IsOptimization関数の動作を確認しています。
コード
// IsOptimization関数を使ったテスターの最適化モードの確認
#property strict
extern double lots =0.01;
void OnInit() {
if(IsOptimization()==true) { // テスターで最適化をする時のみ買いの成行注文を実行
int a = OrderSend(Symbol(), OP_BUY, lots, Ask, 30, 0, 0, "Buy", 1001, 0, clrNONE);
}
Print("テスター最適化の実行状況:", IsOptimization());
}
このコードの実行は、ストラテジーテスターの画面で「最適化」にチェック後、「スタート」ボタンを押して確認してください。任意で「期間を指定」と「エキスパート設定」の設定をしてください。(デモ口座でお試しください)
結果
上記コードは、「最適化」にチェックが入っている時のみ、買い成行注文が成立して最適化結果を表示することができます。
「エキスパート設定」から最適化の範囲の設定、「期間の指定」から期間範囲を変更するなどいろいろ試してみてください。