見出し画像

【ソースコード付】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のフォローお待ちしております。

この記事が気に入ったらサポートをしてみませんか?