【ソースコード付】MT4用EA/MT5用EAのバックテスト専用バージョンをつくる
バックテスト専用バージョンとは
その名の通り、
・バックテストでは動作する
・デモ口座では動かない
・リアル口座でも動かない
そんなEAです。
個人的に、すべてのEA販売者は(都合のよいバックテスト画像だけではなく)バックテスト専用バージョンを公開すればよいのに!と思ってます。
購入する前にバックテストくらいしたいです。
コードは「そのくらい知ってるよ!」と怒られそうなくらい簡単なので、無料です。
デモ口座だけ動くバージョンをつくると、トレードコピーされる恐れもありますが、バックテストだけならその心配もないかと。昨今は、デコンパイルなどできるのか知りません。
MT4向けmql4コード
OnInitに以下のように書きます。
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//----
if(IsTesting())
{
return(INIT_SUCCEEDED);
}
else
{
MessageBox("このEAは、バックテストでのみ動作します","バックテスト専用バージョン",MB_OK);
ExpertRemove();
return(INIT_FAILED);
}
//----
}
//+------------------------------------------------------------------+
MT5向けmql5コード
少しだけ記法が違いますが、やっていることは同じです。
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//バックテスト専用
if(MQLInfoInteger(MQL_TESTER))
{
return(INIT_SUCCEEDED);
}
else
{
MessageBox("このEAは、バックテストでのみ動作します","バックテスト専用バージョン",MB_OK);
ExpertRemove();
return(INIT_FAILED);
}
//---
}
さいごに
間違いなどあればご指摘ください。
よければnoteのフォローとTwitterのフォローお待ちしております。
この記事が気に入ったらサポートをしてみませんか?