【口座縛りをもっと便利に】インジケータ・EA サーバー認証システムをリリース! 詳しくはこちら

【MQL4テクニック】口座縛りの最も簡単な方法。不正なコピーからオリジナルのEAを守れ!!

EAの転売や不正なコピーを防ぐため、最も簡単にEAやインジケータに口座縛りをする方法をご紹介します。

目次

口座縛りの方法1:口座番号を記入

//渡したい相手の口座番号
int number = 123456789;

int OnInit(){

   if( AccountNumber() != number){
      Alert("Auth failed\n\n","無効な口座番号です。");
      return(INIT_FAILED);
   }
   Comment("Auth completed");
   return(INIT_SUCCEEDED);
}

変数number相手の口座番号を代入し、OnInit関数内に数行のコードを追加するだけでとても簡単に口座縛りを実装することが可能です。

//MT4にログインしている口座番号を取得します
int number = AccountNumber();

AccountNumber()関数を使用することで、MT4でログインをしている証券会社の口座番号を取得することが出来ます。

取得した口座番号とソースコードに記載していた口座番号が異なると、「無効な口座番号です。」というアラートが鳴りEAやインジケータが使用不可能になります。

デメリットは毎回コンパイルする負担がかかることですが、少人数のみの販売や共有であればとても便利です。

口座縛りの方法2:口座番号からパスワードを生成

次に紹介するのは、口座番号を数式に組み込んでキーを作成するタイプの口座縛りになります。

input long inputKey = 0;//認証キー

int OnInit(){
   
   long genKey = (long)AccountNumber() * 99 + 99;
 
   if(inputKey != genKey){
      Alert("Auth failed");
      return(INIT_FAILED);
   }
   return(INIT_SUCCEEDED);
}

相手の口座番号を聞き、口座番号 × 99+ 99 のキーを相手に伝えます。
そのキーをパラメータから入力することで認証をする仕組みになります。

数式がバレてしまうと口座縛りとしての効果が無くなってしまうので、数式は特定できないような複雑なものにしてください。

方法1に比べて口座番号に応じてソースコードを書き替える必要がないので、こちらの方が負担は少ないです。

口座縛りの方法3:サーバー認証システム(ExpertAuth)を使用する

先ほどまでに紹介した手口座縛りの方法では、購入者ごとに口座番号を確認し、そのたびにファイルを調整したり、再コンパイルしたりする運用は、販売数が増えるほど手間が大きくなります。

そこで検討したいのが、オンライン認証システムです。

ExpertAuthMT4/MT5の両対応に加え、認証ログを中心に問い合わせ対応まで見据えた設計になっており、さらに利用条件設定の柔軟さ、デモ画面による事前確認、本格運用向けのProプランまで揃っています。

ExpertAuthの概要
  • 対応環境:MT4 / MT5
  • 主な特徴:商品管理、ライセンス管理、認証ログ
  • 認証方式:口座番号認証、パスワード認証
  • 強み:利用条件を柔軟に設定しやすい、デモ画面で実際の操作が確認できる
  • 総評:総合的にもっとも選びやすい

各サーバー認証(口座縛り)サービスの比較はこちらの記事で詳しく解説しています。

あわせて読みたい
EA・インジケーター向けサーバー認証システム比較|ExpertAuth・MQLAuth・自作ならどれを選ぶべき?【口... EA・インジケーター販売で使えるオンライン認証システムを比較。ExpertAuth、MQLAuth、スプレッドシート+GAS自作の違いを、対応環境、料金、運用負荷、拡張性、向いているケース別に解説します。
POINT

こちらの記事で悩みが解決されない場合は、
MQL4 User Community に参加してお気軽にご質問ください。

MQL4初心者の方や開発に行き詰った方の悩みを、 様々なソフトウェアやツールを開発してきた経験豊富なエンジニアたちが解決いたします。

役に立ったらシェアをお願いします
  • URLをコピーしました!
  • URLをコピーしました!
目次