
MQL4MQL5 イベント関数
OnTester()
- できること
- バックテストの終了時に呼ばれ、独自の評価値を返す
- 対応
- MQL4・MQL5
OnTester() とは
ストラテジーテスターでのテストが終わった直後に呼ばれる関数です。返した値は「カスタム最適化の評価値(Custom max)」として使われ、最適化のときに独自の基準(例:利益 ÷ 最大ドローダウン)で結果を並べられます。
OnTester() の書式と引数
double OnTester()引数はありません。
戻り値
評価値(double)。最適化の条件で「Custom max」(カスタム)を選ぶと、この値が大きい組み合わせほど良い結果として扱われます。
OnTester() の使い方(コード例)
MQL4・MQL5 共通
int OnInit()
{
return INIT_SUCCEEDED;
}
void OnTick()
{
}
// 利益 ÷ 最大ドローダウン を評価値にする(取引30回未満は評価しない)
double OnTester()
{
double trades = TesterStatistics(STAT_TRADES);
double profit = TesterStatistics(STAT_PROFIT);
double dd = TesterStatistics(STAT_BALANCE_DD);
if(trades < 30 || dd <= 0)
return 0;
return profit / dd;
}MetaEditor でコンパイルできることを確認済みです。
OnTester() の注意点
- テストの結果の数値は TesterStatistics(STAT_PROFIT) などで取得できます。
- 取引回数が少なすぎる結果を除外したいときは、条件を満たさない場合に 0 を返します。
- テスター以外(チャート上の実行)では呼ばれません。












