作成EAに口座縛りを付ける方法

作成EAに口座縛りを付ける方法 サンプルEA

サンプルEA

自身で作成したEAに口座縛り (アカウントロック) を付けるコードです。

作成したEAに口座縛りを付けることで、設定したアカウント、設定したFX会社以外でEAが稼働しないようにすることができます。

これをEAに組み込むことで、第三者が勝手にコピーしたEAは他で使用することができなくなります。

口座縛りのコード

次のコードはリアル口座で、こちらが指定したアカウント (口座番号)、指定したFX会社でのみEAを稼働させることができます。
また、指定したFX会社のデモ口座でのみEAが稼働します。デモ口座ではアカウントに関係なくEAは稼働します。

コード

EAの使用を許可するために
4行目に許可するアカウント (口座) 番号、5行目にMT4上でのFX会社名 を設定してください。

FX会社名はこちらのコードを使って出力された⑫がMT4上でのFX会社名になります。アカウント番号は⑩で確認することができます。

// リアル口座、デモ口座の口座縛り
#property strict

int Accountnumber = 12345678;          // アカウント 口座番号
string ACompany = "Tradexfin Limited"; // FX会社 ここではXMTrading

void OnInit() {

   if(IsDemo()==false) { // リアル口座で口座縛り
      if(AccountNumber() != Accountnumber) { // ①アカウント縛り
         MessageBox("アカウント" + (string)Accountnumber + 
         "でのみ有効なEAです。終了します。\n本口座のアカウント:" + (string)AccountNumber(), "確認");
         ExpertRemove();
      }
      if(AccountCompany() != ACompany) {     // ②FX会社の縛り
         MessageBox("XMTrading口座でのみ有効なEAです。終了します。\n本口座のアカウント:" + 
         (string)AccountNumber() + " \nFX会社名:" + AccountCompany(), "確認");
         ExpertRemove();
      }
   }else{ // デモ口座で口座縛り

      if(AccountCompany() != ACompany) {     // ②FX会社の縛り
         MessageBox("XMTradingのデモ口座で有効なEAです。終了します。\n本口座のアカウント:" + 
         (string)AccountNumber() + " \nFX会社名:" + AccountCompany(), "確認");
         ExpertRemove();
      }
   }
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

上記のコードをデモ口座でテストした場合は、EAを通常どおり稼働させることができます。何も起きません。

しかし、リアル口座で、4行目に設定しているアカウント以外のMT4にEAを稼働させようとした場合、次のメッセージが出てEAがチャート上から削除されます。

アカウントロック

デモ口座に対して、FX会社に対する縛りを無くしたい時は、22~26行目を削除してください。

デモ口座に対して、FX会社に対する縛りに加えて、アカウント (口座番号) の縛りを付けたい時は、10~14行目のコードをコピーして20と22行目の間の21行目にペーストしてください。

 

タイトルとURLをコピーしました