ツール

起動時の構成

クライアントターミナルでは、起動時の設定をあらかじめ決めておくことができます。そのために、構成ファイル名がパラメータとして、クライアントターミナルに渡されます。

例 :

terminal.exe configstart.ini
terminal.exe test1.txt
terminal.exe “C:Program FilesMetaTrader 4configsettings25.ini”
ファイルへのフルパス(ドライブ名:サブディレクトリーファイル名)が指定されていない場合には、クライアントターミナルのディレクトリ内を検索します。構成ファイルには、次の形式の行が含まれます。
[パラメータ]=[値][Parameter] = [Value]

コメントはセミコロン(;)で始まり、処理の対象にはなりません。

構成ファイルのパラメータは、次に挙げるいくつかのグループに分類することができます。共通設定、プロキシサーバ設定(ターミナル設定の「サーバ」タブ)、FTP設定(サーバ設定の「パブリッシャ」タブ)、EA設定(サーバ設定の「エキスパートアドバイザー」タブ)、エキスパートまたはスクリプトの単独起動設定、テスター起動の設定です。

共通設定
Profile : /profilesディレクトリー内のサブディレクトリ名です。クライアントターミナルでは、指定されたプロファイルに応じてチャートが開きます。このパラメータが指定されていない場合には、現在のプロファイルで開きます。

MarketWatch : 「気配値表示」ウィンドウで表示される通貨ペアのリストを含むファイル名(通貨ペアsetsディレクトリ)です。このようなファイルは、ウィンドウコンテキストメニューコマンドの「気配値表示⇒表示通貨ペアの組合せ⇒名前を付けて保存」により取得することができます。

Login : 起動時に接続する先のアカウントの番号です。このパラメータが指定されていない場合には、現在のログインが使用されます。

Password : システムへのアクセスを許可するパスワードです。クライアントターミナルがディスク上に個人データを保管しており、接続しようとしているアカウントがそのリストの中に含まれている場合には、このパラメータは無視されます。

Server : 接続する先の取引サーバ名です。サーバ名は/configディレクトリ内に格納されている、対応する.srvファイル名と同じ名前になります。接続する先のアカウントについての情報がディスク上に保管されている場合には、このパラメータは無視されます。

AutoConfiguration : 自動構成を有効にするか否かによって、「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合には、現在のサーバ設定の値が使用されます。

DataServer : データセンターのアドレスです。サーバの自動構成が有効になっている場合は、このレコードは無視されます。このパラメータが指定されていない場合には、現在のサーバ設定の値が使用されます

EnableDDE : DDE(動的データ交換)サーバを有効にするか否かによって、「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合には、現在のサーバ設定の値が使用されます。

EnableNews : ニュースの受取を有効にするか否かによって、「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合には、現在のサーバ設定の値が使用されます。

例:

; common settings
Profile=test 3
MarketWatch=set2.set
Login=12345
Password=xxxxxx
Server=MetaQuotes-demo
AutoConfiguration=false
DataServer=192.168.0.1:443
EnableDDE=true
EnableNews=false

プロキシサーバ設定
ProxyEnable : 取引サーバへの接続に、プロキシサーバを使用するか否かによって、「true」または「false」のどちらかの値をとります。

ProxySever : プロキシサーバのアドレスです

ProxyType : プロキシサーバのタイプです。「HTTP」、「SOCKS4」、「SOCKS5」のいずれかとなります。

ProxyLogin : プロキシサーバへのアクセスが許可されるログインです。

ProxyPassword : プロキシサーバにアクセスするためのパスワードです。

上記パラメータのいずれかが指定されていない場合、現在のクライアントターミナル設定(クライアントターミナル設定の「サーバ」タブ内のプロキシ設定)が使用されます。

例:

; proxy settings
ProxyEnable=true
ProxyServer=proxy.company.com:3128
ProxyType=HTTP
ProxyLogin=user45
ProxyPassword=xxx

FTP(ファイル転送プロトコル)設定
FTPEnable : パブリッシングを有効/無効にします。「true」または「false」のいずれかの値をとります。

FTPPassiveMode : データ転送のパッシブモードを有効/無効にします。「true」または「false」のいずれかの値をとります。

FTPAccount : FTPにその状態が送られるアカウントの番号です。

FTPServer : FTPサーバのアドレスです。

FTPLogin : FTPサーバへのアクセスが許可されるログインです。

FTPPassword : FTPサーバにアクセスするためのパスワードです。

FTPPath : レポートが配置されるFTPサーバのディレクトリー名です。

FTPPeriod : FTPサーバへ報告を行う周期(分単位)です。

上記パラメータのいずれかが指定されていない場合、現在のクライアントターミナル設定(サーバ設定の「パブリッシャ」タブ)が使用されます。

例:

; ftp settings
FTPEnable=true
FTPPassiveMode=false
FTPAccount=12345
FTPServer=ftp.company.com
FTPLogin=admin
FTPPassword=pAssWOrd123
FTPPath=/inetpub
FTPPeriod=10

EA設定
ExpertsEnable : エキスパートを有効/無効にします。

ExpertsDllImport : インポート‐DLL(ダイナミックリンクライブラリー)インポートを有効/無効にします。

ExpertsDllConfirm : DLL関数呼び出し時の手動確認を有効/無効にします。

ExpertsExpImport : 外部のエキスパートやMQL4ライブラリーからの関数インポートを有効/無効にします。

ExpertsTrades : エキスパート取引を有効/無効にします。

ExpertsTradesConfirm : エキスパートによる取引操作実行時の手動確認を有効/無効にします。

注意: エキスパートグループの全てのパラメータは「true」または「false」のいずれかの値をとります。
上記パラメータのいずれかが指定されていない場合、現在のクライアントターミナルの設定(サーバ設定の「エキスパートアドバイザー」タブ)が使用されます。

例:

; experts settings
ExpertsEnable=true
ExpertsDllImport=true
ExpertsDllConfirm=true
ExpertsExpImport=true
ExpertsTrades=true
ExpertsTradesConfirm=false

エキスパート及びスクリプトの単独起動設定
Symbol : クライアントターミナルの起動直後にその中のチャートを表示する証券の通貨ペアです。クライアントターミナル終了後は、この追加のチャートに関する情報は保存されません。構成ファイルを使用しないでクライアントターミナルを再起動すると、このチャートは開きません。このパラメータが指定されていない場合、追加のチャートは開きません。

Period : チャートの周期(1分、5分、15分、30分、1時間、4時間、1日、1週間、月)です。このパラメータが指定されていないときは、1時間を使用します。

Template : チャートに適用するテンプレートファイル(templatesディレクトリ)のファイル名です。

Expert : クライアントターミナル起動後に立ち上がるエキスパートの名前です。「通貨ペア」と「Period」で指定されたデータに基づいて開いたチャート内で、エキスパートが起動します。「通貨ペア」のパラメータが指定されていない場合には、追加のチャートは開かれず、エキスパートは現在のプロファイルの1番目のチャート内で起動します。現在のプロファイルにチャートが全く存在しない場合には、エキスパートは起動しません。このパラメータが指定されていない場合には、エキスパートは起動しません。

ExpertParameters : エキスパートのパラメータを含むファイル(expertspresetsディレクトリ)の名前です。このファイルはエキスパートの「プロパティ」ウィンドウ で「入力」タブの「保存」ボタンを押すことにより作成されます。通常は、デフォルト値と異なる入力値を保存するときに使われます。このパラメータが指定されていない場合には、デフォルトの入力値が使われます。

Script : クライアントターミナルの起動後に立ち上げるスクリプトの名前です。スクリプトの起動は、エキスパートの起動に適用されるのと同様のルール(上記)に基づきます。

ScriptParameters : スクリプトのパラメータを含むファイル(scriptspresetsディレクトリ)の名前です。このファイルはエキスパートの場合と同様にして作成されます。

例:

; open chart and run expert and/or script
Symbol=EURUSD
Period=H4
Template=popular.tpl
Expert=MACD Sample
ExpertParameters=macd.set
Script=period_converter
ScriptParameters=

テスターの起動設定
TestExpert : テストの目的で起動するエキスパートの名前です。このパラメータが指定されていない場合には、テストは開始されません。

TestExpertParameters : パラメータを含むファイル(testerディレクトリ)の名前です。このファイルは、テスト用エキスパートの「プロパティ」ウィンドウで「入力」タブの「保存」ボタンを押すことにより作成されます。通常は、デフォルトのパラメータと異なるパラメータを保存するときに使われます。テスト用エキスパートの「テスティング」及び「最適化」タブ内のその他のパラメータ(及びこのパラメータが指定されていない場合には「入力」タブ内のパラメータ)については、最後のテスト後にtester[エキスパート名].iniファイルに自動保存された値が入力されます。t

TestSymbol : エキスパートのテストで使用する通貨ペアの名前です。このパラメータが指定されていない場合には、テスターで最後に使用された値が使われます。

TestPeriod : チャートの周期(1分、5分、15分、30分、1時間、4時間、1日、1週間、月)です。このパラメータが指定されていないときは、1時間を使用します。

TestModel : テスティングモデルの種類(「レートごと」、「コントロールポイント」、「オープン価格のみ」)によって、0、1、または2のいずれかとなります。このパラメータが指定されていないときは、0(Every tick)を使用します。

TestRecalculate : 「再計算」フラグを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

TestOptimization : 最適化を有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

TestDateEnable : 「日付を使用」フラグを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。

TestFromDate : テストを開始する日付です。YYYY.MM.DDの形式になります。このパラメータが指定されていない場合には、この日付は1970.01.01となります。

TestToDate : テストを終了する日付です。YYYY.MM.DDの形式になります。このパラメータが指定されていない場合には、この日付は1970.01.01となります。

TestReport : テストレポートファイルの名前です。このファイルはクライアントターミナルのディレクトリ内に作成されます。例えば「testerMovingAverageReport」といった相対パスを指定することができます。ファイル名の中で拡張子が指定されていない場合には、「.htm」が自動的に付加されます。このパラメータが指定されていない場合には、テストレポートは作成されません。

TestReplaceReport : レポートファイルの反復記録を有効/無効にします。「true」または「false」のいずれかの値をとります。「false」の値を指定した場合で、同じ名前のレポートファイルが既に存在するときは、ファイル名の後に角括弧で括った数字が付加されます。例えば、「MovingAverageReport[1].htm」となります。このパラメータが指定されていない場合は、「false」の値が使われます。

TestShutDownTerminal : テスト終了後のターミナルのシャットダウンを有効/無効にします。「true」または「false」のいずれかの値をとります。このパラメータが指定されていない場合は、「false」の値が使われます。ユーザが「停止」ボタンを押した場合には、制御がユーザに移るため、このパラメータの値は「false」にフラッシュされます。

例:

; start strategy tester
TestExpert=Moving Average
TestExpertParameters=ma0.set
TestSymbol=EURUSD
TestPeriod=H1
TestModel=2
TestRecalculate=false
TestOptimization=false
TestDateEnable=true
TestFromDate=1970.01.01
TestToDate=2006.06.06
TestReport=MovingAverageReport
TestReplaceReport=false
TestShutdownTerminal=true

ヒストリーセンター

テクニカル分析では、市場の動向を調査して、将来の価格変動を予測します。通常、市場分析にはチャートを利用します。これは、使用されているあらゆる通貨ペア及び周期について、過去の価格データを保有しておくことが、非常に重要であるという理由からです。ヒストリーデータは継続的に作成され、サーバに保存されます。ターミナルは、サーバへの接続時に必要なデータを全てダウンロードします。その後、それらのデータを使ってチャートを描画し、テストを行い、エキスパートを最適化します。ターミナルには、ヒストリーデータを取り扱うための「ヒストリーセンター」という名前の特別に設計されたウィンドウがあります。このウィンドウは「ツール⇒ヒストリーセンター」のメニューコマンドを使用するか、F2キーを押すことで、開くことができます。

ターミナルがシャットダウンされると、ヒストリーファイルのサイズが設定で事前定義されている値を超えない限り、全てのヒストリーデータが「ヒストリーセンター」に保管されます。もしも保管されるヒストリーデータの量が「ヒストリー内のバーの最大数」フィールドで設定された値を超える場合は、保存時に最も古いバーから削除されます。SSSSSSPP.hstという名前(ここで、SSSSSSは通貨ペア名を、PPは分単位での期間を表します)の、個別のヒストリーファイルが周期ごとに作成され、/HISTORYディレクトリーに保存されます。保管されたデータは、将来、チャートの描画や取引のテストに使用されます。

利用可能なデータは、「ヒストリーセンター」のウィンドウ内で変更できます。そのためには、ウィンドウの左側で、必要な通貨ペアと周期を選択します。すると、対応するデータがダウンロードされ、表形式で表示されます。新しいバーについてのレコードを追加する場合は、同じ名前のボタンを押します。表示された新しいウィンドウで、必要なフィールドに入力して「OK」を押すとヒストリーに新しいバーが追加されます。また、対応するレコードを選んで「編集」ボタンを押すことで、バーを変更することもできます。ヒストリーからバーを削除するには、そのデータを選択して、対応するボタンを押します。

ヒストリーデータのエクスポート/インポート
ヒストリーデータはCSV、PRN、HTM形式のファイルにエクスポートすることができます。それには、「ヒストリーデータ」ウィンドウの左側から、希望する通貨ペアを選択し、「エクスポート」ボタンを押します。次に、利用可能な3種類のファイル形式のうちから1つを選択し、ハードディスク上の保存場所のパスを指定します。また、さらなる活用のために、ヒストリーデータをターミナルにインポートすることもできます。インポートできるファイル形式は、CSV、PRN、HTM、HSTに限られます。さらに、「ヒストリーセンター」ウィンドウの左側から、インポートするデータの通貨ペアと周期を選択した後、「インポート」ボタンをクリックし、以下のインポートパラメータを設定します。

Separator : インポートするファイル内のデータ区切り文字です。カンマ、セミコロン、空白、またはタブ文字を区切り文字として使用できます。

Skip columns : インポート時に特定の数のカラムをスキップします。インポートするファイルに必要以上のデータ・タイプが含まれている場合に有効です。

Skip rows : インポート時に特定の数の行をスキップします。

Shift hours : データを特定の時間数だけシフトします。

Use selected only : 選択したデータのみをインポートします。データは、CtrlキーとShiftキーを使って行単位で選択します。

Volume : 出来高のインポートを有効または無効にします。

インポートが完了したヒストリーデータは、チャートの描画及びエキスパートのテストに使用されます。

ヒストリーファイルのフォーマット(HSTファイル)
ベースヘッダーが最初に来ます。

struct HistoryHeader
{
int version; // version of the base
char copyright[64]; // copyright information
char symbol[12]; // security
int period; // security period
int digits; // the amount of digits after point shown for the symbol
time_t timesign; // timesign of the base creation
time_t last_sync; // last synchronization time
int unused[13]; // for future use
};
次に、バーの配列(1バイトの行端揃え)が続きます。

#pragma pack(push,1)
//—- Standard representation of a quote in the base
struct RateInfo
{
time_t ctm; // current time in seconds
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)

価格のエクスポート

ターミナルユーザが行う分析的な全ての作業の基礎となる原始データは、証券の価格変動に関するものです。この情報は取引業者から入手することができます。価格データがあれば、通貨ペアチャートを描くことも、金融市場を調査することも、様々なトレーディング戦略を利用することも、取引の意思決定を行うこともできます。価格は、「通貨ペア、BID、ASK、時間」(通貨ペア、買い、売り、日時)の形式のレコードを持つファイルとして、サーバへの接続が確立され次第、自動的にターミナルに受信されます。

ターミナルは、現在の価格を「DDE(動的データ交換)」プロトコルを使って、リアルタイムモードで他のプログラムにエクスポートすることができます。「DDE」は、WindowsのOSにおいて、各種アプリケーション間で動的データ交換を行うのに使われているプロトコルです。価格は、新しいレートの更新が着信するときに(ADVISEモード)、DDEによってのみインポートされます。しかし、直近の価格が表示されるリクエスト時(REQUESTモード)にはすぐには表示されません。最初のREQUESTで「該当なし」と表示され、新しい価格が着信してから、価格が表示されます。

DDEを使ったターミナルからの価格のエクスポートをアクティブにするには、ターミナル設定の中の「DDEサーバを有効にする」オプションを有効にする必要があります。

注意: ヒストリーデータをDDEプロトコルによってエクスポートすることはできません。また、現在の価格は、クライアントターミナルがオンラインのときだけエクスポートされます。
DDEは、「DDE-sample.xls」ファイルの例にあるように、一定の書式と起こり得る結果を要求します。

BID request: = MT4|BID!USDCHF result: 1.5773
ASK request: = MT4|ASK!USDCHF result: 1.5778
HIGH request: = MT4|HIGH!USDCHF result: 1.5801
LOW request: = MT4|LOW!USDCHF result: 1.5741
TIME request: = MT4|TIME!USDCHF result: 21.05.02 9:52
QUOTE request: = MT4|QUOTE!USDCHF result: 21.05.02 9:52 1.5773 1.5778 1.5776

注意 : Excelでデータを正しく表示するために、Excelのメニューオプションの「ツール⇒オプション⇒移行⇒式入力を変更する」を有効にしておく必要があります。

グローバル変数

クライアントターミナルでは、複数のエキスパートを同時に起動することができます。ときには、それらのエキスパートの間で情報を交換することが必要になることもあります。そこで、エキスパート間で適度な分量の情報を迅速に転送し、複数のエキスパートが競合することなく同時に作動するために、ターミナルにはグローバル変数が用意されています。エキスパートのソースコード内でグローバルレベルで求められる、対応するモジュール内でしか使えない変数と違い、グローバル変数はエキスパートから独立して存在しています。その値は、ターミナルを起動し直しても保存されているので、グローバルレベルで要求される変数(個々のエキスパートが起動される度にセットされ、エキスパートが閉じると変数も削除される)とは違います。グローバル変数は、最後にエキスパートから呼び出しを行ってから、または手動で変更を行ってから、4週間以内であれば使用可能です。

ターミナルには、グローバル変数を扱う特別のウィンドウがあります。このウィンドウは、「ツール⇒グローバル変数」のメニューコマンドを使うか、F3キーを押すことによって開くことができます。全てのグローバル変数と、その値、及び最後に呼び出した時間が、このウィンドウ内の一覧表にリストされます。ウィンドウ右側にあるボタンを使って、新しいグローバル変数を追加したり、既存のグローバル変数を削除したりすることができます。グローバル変数の名前や値を変更したいときは、一覧表の対応するセルの上で、マウスの左ボタンをダブルクリックします。最後に変数を呼び出した時間が、自動的に変更されます。

契約仕様

このメッセージウィンドウによって、証券の取引仕様を表示することができます。主要なパラメータは、以下のフィールドを持つ一覧表に分類されます。

スプレッド : 買い呼び値と売り呼び値の差です(ポイント単位)。

桁数 : 価格表示における小数点以下の桁数です。

(逆)指値水準 : ストップ(S/L)/リミット(T/P) がされる価格と現在価格との価格差の最小値です(ポイント単位)。

指値注文はキャンセル時まで有効 : セッション終了時の指値注文の取消有無です。「はい」にすると、指値注文は強制キャンセルされません。

注文数量の単位 : 注文1数量あたりの数(本数)です。

ティック価格 : 建値通貨での値動きの最小幅です。

ティックサイズ : 通貨ペアの値動きの最小幅です(ポイント単位)。

利益計算モード : 認められている利益計算手法(Forex、CFD、Futures)です。

スワップタイプ : ロールオーバーの計算方式(ポイント、証拠金通貨、またはパーセンテージ)です。

スワップ 買い : 買いポジションでのロールオーバー時のスワップポイントです。

スワップ 売り : 売りポジションでのロールオーバー時のスワップポイントです。

必要証拠金計算モード : 認められている余剰証拠金計算手法(Forex、CFD、Futures)です。

証拠金ヘッジ : ヘッジポジションの必要証拠金の規模です。

通貨ペアの仕様ウィンドウは、「気配値表示」ウィンドウ の「プロパティ」ボタンをクリックするか、「テスター⇒設定」ウィンドウの「通貨ペアのプロパティ」によって呼び出すことができます。

言語サポート

クライアントターミナルのインターフェースは多言語対応となっています。対応している全ての言語に表示を切り替えることができます。この機能によって、このプログラムは、使い易くなっているばかりでなく、外国語の用語や概念に対する知識不足が原因で取引中に発生してしまう間違いを減らすことができるようになっています。使用可能な言語のリストは、「表示⇒言語」メニューで見つかります。また、このリストから言語を選択することで、ターミナルの使用言語を切り替えることができます。但し、実際に使用言語が切り替わるのは、ターミナルの再起動後になります。

Datacenter.ini

クライアントのトラフィックを強制的に指定変更したいと考えるセンターを扱う管理者には、新たなチャンスです。クライアントターミナルで用いられるデータセンターは、datacenter.iniという名前の構成ファイルを使って厳密に定義することができます。このファイルは、クライアントターミナルの/configディレクトリに置く必要があります。

サーバ設定の「データセンターの自動構成」にフラグが付いていれば、datacenter.iniファイルが開かれて、分析されます。ファイル内で、このサーバのデータセンターが見つかれば、厳密にそこへ接続されます。1つのサーバに対して、複数のデータセンターを定義することはできません。

datacenter.iniの文字列の形式は、以下のとおりです。

[サーバ名][区切り文字][データセンターのアドレス]

ここで、

サーバ名 は、対応する.srvファイルの名前です。

区切り文字は、カンマまたは任意の数のスペースです。

データセンターのアドレスは、IPアドレス : ポート番号です。

セミコロン(;)で始まる行はコメントと見なされ、処理の対象にはなりません。

datacenter.iniファイルの例 :

;—————-
;comment
;—————-
MetaQuotes-demo1 192.168.1.4:443
MetaQuotes-demo2, 192.168.1.4:444
;—————-
MetaQuotes-demo3 192.168.1.5:445
MetaQuotes-demo4, 192.168.1.5:446