MT4 EA 自宅外からPC不要でEAをコントロールする方法

MT4でEAを使用して、取引を自動化させているかたも多いかと思います。
ただ、災害や、リーマンショックのようなことが突然起きた際に、自動売買を急遽停止させたくなったり、外出先からEAの設定を変えたくなったりしたことがある方もいらっしゃるかと思います。

そんな方へ、外出先でPCなどない場面でもEAをコントロールする方法を紹介したいと思います。

Contents

1. リモートでEAをコントロールする方法

ここでは、リモートでEAをコントロールする方法を2つ紹介したいと思います。

  • リモートデスクトップを使用する方法
  • クラウドストレージを使用する方法

リモートでEAをコントロールする方法は上記の2つが始めやすい方法かなと思います。
本サイトでは、主に2つ目の「クラウドストレージを使用する方法」をメインで説明していきます。

1-1. リモートデスクトップを使用する方法

本サイトでは、主に「クラウドストレージを使用する方法」の説明をメインで行いますが、「リモートデスクトップを使用する方法」も、ここで少しお話します。

1-1-1. リモートデスクトップを使用する条件

リモートデスクトップを使用した遠隔コントロールするには、下記の条件を満たしている必要があります。

  • Windows PC上でEAを動作させていること
  • EAを動かしているPCに遠隔からアクセス可能なこと
    (グローバルIPなどの割り当てがあること)
  • タブレットまたは、スマートフォンを所有していること

上記を満たしていれば、Tabletやスマートフォンから「RD Client」というアプリがあるので、そのアプリからPCへのリモートアクセスが可能となります。
Windows のノート PCをお持ちであれば、「Windows」→「Windows アクセサリ」→「リモートデスクトップ接続」でリモート接続が可能です。

↓↓アプリのリンクはこちら↓↓
Android App : RD Client
iOS App : RD Client

上記のリモート接続用アプリで、MT4を稼働させているPCにアクセスすることで、リモートでMT4を操作できます。(MT4を操作できるということはEAの設定を操作できる)

1-1-2. リモートデスクトップを使用する際のデメリット

リモートデスクトップのアプリを使用すれば、いつも通りの設定インターフェイスで操作出来るため、これ以上ない方法かと思うかもしれませんが、外出先で使用できるのはタブレットであったり、スマートフォンのみという方も少なくないかと思います。

そんな方がこのアプリを使用してMT4のEA設定画面を開くと、とても小さい。。
その為、フレキシブルな設定変更等は難しいかと思います。
災害時など、緊急で変更したい場合などはフレキシブルに変更したいですよね。

そんな場合に、利用できる方法として挙げているのがもう一つの「クラウドストレージを使用する方法」です。

1-2. クラウドストレージを使用する方法

次に、「クラウドストレージを使用する方法」を紹介します。
こちらに関しての、条件は以下になります。

  • EAを作成できること
  • または、EAの作成依頼が出来ること
  • クラウドストレージ(One Driveや、Dropbox、Google ドライブなど)を使用していること
  • EAを稼働させているPCはグローバルIPなど割り当てられていなくてもOK

こちらが条件になります。

1-2-1. EA作成について

EAが作成できること等が含まれている為、少し敷居が高いかもしれませんが、クラウドストレージを使用する方法はEAにその機能を実装する必要がある為、必要最低限の条件となります。
EA作成は出来ないが作成依頼したいけどどこに依頼したらいいかわからないという方は下記のGogojungleまたは、ココナラというサイトを利用すれば依頼できます。

Gogojungle :
投資クラウドということろからEA作成依頼が可能です。

投資家の英知をすべての人に。GogoJungle

ココナラ :
下記サイトの、検索ウィンドウで、「ea 作成」などで検索すると作成代行者が出てきます。

1-2-2. EA仕様

ここまでで、EA作成までの条件はクリア出来たと思いますので次に仕様についてです。
「クラウドストレージを使用」してどのように、EAをコントロールするかという点になります。

1-2-2-1. 仕様

  1. EAへの設定情報を、EAの「パラメータ入力」画面での設定ではなく、ファイル内容によるModeや設定値変更、自動売買のON/OFF設定を行うようにする。
  2. ファイルはCSVファイル形式などのファイルで作成し、カンマ区切りで「設定値名」、「設定値」、「設定値名」、「設定値」のような感じで可読性も考慮したフォーマットにする。
  3. 2.)のファイルはクラウドストレージに格納する。
  4. 3.)で使用しているクラウドストレージのアプリをMT4を稼働させているPCと、外出先に持っていくタブレットや、スマートフォンにインストールする。
  5. MT4を稼働させているPCで、クラウドストレージと同期しているディレクトリにある、2.)の設定ファイルをMT4がインストールされているディレクトリの「MQL4」→「Files」配下へ、シンボリックリンクを作成する。
  6. 5.)の設定により、クラウドストレージにあるファイルが更新されると同時に、MT4配下のファイルも更新される。
  7. MT4側で、5.)のファイルを定期的に読み込みに行くことで設定値を読み込むことが出来る為、クラウドストレージにあるファイルを更新するだけでEAの設定をコントロールできるようになる。
    (ファイル読み込みの頻度が高いと、EAの取引ロジックへの処理遅延を招く可能性もあるので、1分間隔等が良いかもしれません。)

1-2-2-2. 詳細

それぞれについて、必要と思われる個所の詳細を説明します。

1-2-2-2-1. 設定ファイルフォーマット

設定ファイルフォーマットはCSVファイル形式が見やすいかと思います。
ただし、MT4ではCSVファイルは1行目しか読み込めない?ようなので、1行目にすべてのParameterを記述する必要があります。
ここで注意しておくのは、ファイル名は「.csv」ではなく「.txt」としておくのが良いかと思います。これはクラウドストレージアプリで、csvファイルの編集が出来なかったりする場合があるので拡張子はテキストファイルとして保存しておくと、いくらでも対応方法がある為です。
例:

EnableEA,0,Lots,1,ParameterX,0.01
// EnableEA: 0:EA OFF, 1:EA ON
// Lots: Num of Lots
// ParamterX : xxxx

上記は単なる例ですので、実装される際にご自身で好きなように作成されるとよいかと思います。

1-2-2-2-2. クラウドストレージ

前述のとおり、クラウドストレージは、One Drive, Dropbox, Google Drive等でよいかと思います。スマートフォン、タブレット、MT4を稼働させているPCで共通で動作できるサービスを使用してください。
全てのデバイスで同じアカウントでログインしていればファイルは共有されます。
OSバージョンによってはサービスが動作しないものもあるようなので、各自最適なサービスを使用してください。
ただし、アプリによってはテキストファイルの編集が出来ない場合がありますので、テキスト編集が出来る無料アプリなどをインストールして、そちらと連携して編集する運用もあります。
(筆者は、One Driveと、QuickEditというappを組み合わせて、使用して動作させています)

1-2-2-2-3. シンボリックリンクの設定

クラウドストレージに格納した設定ファイルをMT4配下のフォルダへシンボリックリンクを作成する方法についてです。
MT4ではMT4配下にあるファイルしかコントロール出来ないようなので、この手順が必要になります。

MT4配下のフォルダは、MT4を起動して、「ファイル」→「データフォルダを開く」をクリックすると、開きます。
その中の、「MQL4」→「Files」配下にシンボリックリンクを作成します。

シンボリックリンクの作成方法は、MT4を稼働させるPCにてコマンドラインを開いて下記のようなコマンドを実行することで作成可能です。

mklink (C:\などで始まるMT4配下までのPath)\MQL4\Files\setting_file.txt (C:\などで始まるクラウドストレージ配下までのPath)\setting_file.txt

1-2-2-2-4. 設定ファイル読み込み

最後に設定ファイルの読み込みです。
こちらはEA作成できる人ならご自身でかけると思いますが下記にサンプルコードを載せて起きます。
下記のloadSettingFile()関数を、読み込みを行いたいタイミングの処理から呼び出せば読み込み可能です。

//gloval variable
bool	g_EnableEa	= false; // ここにEAを動作させるかどうかの設定値がはいるので、自動売買の可否の条件に使用すればOK
double	g_Lots		= 0.0;
double	g_ParameterX= 0;

void loadSettingFile()
{
	int		fHandle	= 0;
	int		readCnt	= 0;
	double	tmpData = 0;
	
	fHandle = FileOpen("setting_file.txt", FILE_CSV|FILE_READ, ','); }
	
	if(fHandle >= 1)
	{
		// カンマ区切りごとの読み込み
		for(readCnt = 0; readCnt < 100; readCnt++)
		{
			tmpData = 0;
			
			if (FileIsLineEnding(fHandle) == 1) { break; }
			
			tmpData = FileReadNumber(fHandle);
			
			//↓↓設定値読み込み↓↓(今回は、0オリジンで奇数番目にデータを設定しているので奇数番目のみを読み込み)
			
			//EnableEA 0:disable, 1:enable
			if(readCnt == 1)		{ g_EnableEa	= tmpData; }
			//Lots
			else if(readCnt == 3)	{ g_Lots		= tmpData; }
			//ParameterX
			else if(readCnt == 5)	{ g_ParameterX	= tmpData; }
		}
		FileClose(fHandle);
	}
	
	return;
}

2. 最後に

ここまでで、自宅外からPC不要でEAをコントロールする方法は以上になります。
また参考としてMT4を常に自宅で稼働させていると発火などの心配があるかたは、VPSをレンタルしてネットワーク上で運用するのも良いかと思います。
発火の心配なし、年間1万円前後での運用可能なので考えてみてはいかがでしょうか。(筆者はメモリ1GBプランのVPSを使用していますがEAのみの稼働であればあまり不満はありません)