クライアント端末プロパティ

クライアント端末の情報は TerminalInfoInteger() 及び TerminalInfoString() の 2 つの関数で取得出来ます。パラメータにはそれぞれ ENUM_TERMINAL_INFO_INTEGER 及び ENUM_TERMINAL_INFO_STRING の値が使用されます。

ENUM_TERMINAL_INFO_INTEGER

識別子

説明

TERMINAL_BUILD

クライアント端末ビルド番号。

int

TERMINAL_COMMUNITY_ACCOUNT

フラグは、端末内のMQL5.community 認証データの存在を示します。

bool

TERMINAL_COMMUNITY_CONNECTION

MQL5.community への接続。

bool

TERMINAL_CONNECTED

取引サーバへの接続。

bool

TERMINAL_DLLS_ALLOWED

DLLを使用する許可。

bool

TERMINAL_TRADE_ALLOWED

約定許可。

bool

TERMINAL_EMAIL_ENABLED

端末の設定で指定された SMTP サーバへの電子メールの送信及びログインの許可。

bool

TERMINAL_FTP_ENABLED

端末の設定で指定された FTP サーバへのレポート送信及びログインの許可。

bool

TERMINAL_NOTIFICATIONS_ENABLED

スマートフォンに通知を送信するためのアクセス許可。

bool

TERMINAL_MAXBARS

チャートのバーの最大数。

int

TERMINAL_MQID

このフラグはプッシュ通知の MetaQuotes ID データが存在することを示します。

bool

TERMINAL_CODEPAGE

クライアント端末にインストールされた言語のコードページ

int

TERMINAL_CPU_CORES

システム CPU コアの数。

int

TERMINAL_DISK_SPACE

端末(エージェント)のMQL5\ Filesフォルダの空きディスク容量(MB 単位)。

int

TERMINAL_MEMORY_PHYSICAL

システムの物理メモリ(MB 単位)。

int

TERMINAL_MEMORY_TOTAL

端末のプロセス(エージェント)に使用可能なメモリ(MB 単位)。

int

TERMINAL_MEMORY_AVAILABLE

端末(エージェント)プロセスの空きメモリ(MB 単位)。

int

TERMINAL_MEMORY_USED

端末(エージェント)で使用されるメモリ(MB 単位)。

int

TERMINAL_X64

「64ビット端末」の表示。

bool

TERMINAL_OPENCL_SUPPORT

0x00010002 = 1.2 形式でのサポートされている OpenCL のバージョン。「 0 」は OpenCL をサポートがないことを意味します。

int

TERMINAL_SCREEN_DPI

画像の情報出力解像度は、DPIで測定されます。

このパラメータを知ることで、異なる解像度のモニターで同じように表示されるように、グラフィックオブジェクトのサイズを指定することができます。

int

TERMINAL_SCREEN_LEFT

仮想画面の左座標です。仮想画面はすべてのモニターをカバーする四角形です。システムに右から左に並べた2つのモニターがある場合、仮想スクリーンの左の座標は2つのモニターの境界になります。

int

TERMINAL_SCREEN_TOP

仮想画面の上部座標です。

int

TERMINAL_SCREEN_WIDTH

端末幅

int

TERMINAL_SCREEN_HEIGHT

端末の高さ

int

TERMINAL_LEFT

仮想画面に相対した端末の左座標です。

int

TERMINAL_TOP

仮想画面に相対した端末の上部座標です。

int

TERMINAL_RIGHT

仮想画面に相対した端末の右座標です。

int

TERMINAL_BOTTOM

仮想画面に相対した端末の下部座標です。

int

TERMINAL_PING_LAST

取引サーバまでの既知のping値は、マイクロ秒単位です。1秒は100万マイクロ秒です

int

TERMINAL_VPS

Indication that the terminal is launched on the MetaTrader Virtual Hosting server (MetaTrader VPS)

bool

キー識別子

説明

 

TERMINAL_KEYSTATE_LEFT

「左矢印」キーの状態

int

TERMINAL_KEYSTATE_UP

「上矢印」キーの状態

int

TERMINAL_KEYSTATE_RIGHT

「右矢印」キーの状態

int

TERMINAL_KEYSTATE_DOWN

「下矢印」キーの状態

int

TERMINAL_KEYSTATE_SHIFT

「Shift」キーの状態

int

TERMINAL_KEYSTATE_CONTROL

「Ctrl」キーの状態

int

TERMINAL_KEYSTATE_MENU

「Windows」キーの状態

int

TERMINAL_KEYSTATE_CAPSLOCK

「CapsLock」キーの状態

int

TERMINAL_KEYSTATE_NUMLOCK

「NumLock」キーの状態

int

TERMINAL_KEYSTATE_SCRLOCK

「ScrollLock」キーの状態

int

TERMINAL_KEYSTATE_ENTER

「Enter」キーの状態

int

TERMINAL_KEYSTATE_INSERT

「Insert」キーの状態

int

TERMINAL_KEYSTATE_DELETE

「Delete」キーの状態

int

TERMINAL_KEYSTATE_HOME

「Home」キーの状態

int

TERMINAL_KEYSTATE_END

「End」キーの状態

int

TERMINAL_KEYSTATE_TAB

「Tab」キーの状態

int

TERMINAL_KEYSTATE_PAGEUP

「PageUp」キーの状態

int

TERMINAL_KEYSTATE_PAGEDOWN

「PageDown」キーの状態

int

TERMINAL_KEYSTATE_ESCAPE

「Escape」キーの状態

int

TerminalInfoInteger(TERMINAL_KEYSTATE_XXX)の呼び出しは、GetKeyState()関数と同じキーの状態を示すコードを返します。

 

スケーリング係数を計算します:

//--- 画面に1.5インチの幅のボタンを作成します
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // ユーザーのモニターのDPIを取得します
int base_width = 144;                                     // DPI=96の標準モニターの画面のドットの基本の幅
int width      = (button_width * screen_dpi) / 96;         // ユーザーモニター(DPIを含む)のボタンの幅を計算します
...
 
//--- 百分率でのスケーリング係数の計算
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- スケーリング係数の計算
width=(base_width * scale_factor) / 100;

こういった場合、グラフィックリソースは、異なる解像度のモニター上で見た目が同じサイズになります。その際、制御要素のサイズ(ボタン、ダイアログボックスなど)は個々の設定に相応します。

 

ENUM_TERMINAL_INFO_DOUBLE

識別子

説明

TERMINAL_COMMUNITY_BALANCE

MQL5.community の残高。

double

TERMINAL_RETRANSMISSION

指定されたコンピュータ上のすべての実行中のアプリケーションおよびサービスのTCP/IPプロトコルにおけるネットワークパケットの再再送信率。パケットロスは、最速かつ正しく設定されたネットワークでも発生し、受信者と送信者との間のパケット配信の確認がないため、失われたパケットは再送信されます。

 

これは特定の端末と取引サーバ間の接続品質を示すものではありません。これは、システムおよびバックグラウンド・アクティビティを含むネットワーク・アクティビティ全体でパーセンテージが計算されるためです。

 

TERMINAL_RETRANSMISSION値は、オペレーティングシステムから1分に1回要求されます。ターミナル自体はこの値を計算しません。

double

 

ファイル操作は 2 つのディレクトリでのみ実行でき、パスは TERMINAL_DATA_PATH 及び TERMINAL_COMMONDATA_PATH プロパティをリクエストして見つけられます。

ENUM_TERMINAL_INFO_STRING

識別子

説明

TERMINAL_LANGUAGE

端末の言語。

string

TERMINAL_COMPANY

会社名。

string

TERMINAL_NAME

端末名。

string

TERMINAL_PATH

端末が起動されるフォルダ。

string

TERMINAL_DATA_PATH

端末データが格納されるフォルダ。

string

TERMINAL_COMMONDATA_PATH

コンピュータにインストールされている全ての端末の共通パス。

string

TERMINAL_PATH、TERMINAL_DATA_PATH 及び TERMINAL_COMMONDATA_PATH パラメータに格納されているパスをより良く理解するために、お使いのコンピュータにインストールされた、クライアント端末の現在のコピーに属する値を返すスクリプトを実行することをお勧めします。

この例のスクリプトはクライアント端末のパス情報を返します。

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                             https://www.MQL5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link     "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数                                          |
//+------------------------------------------------------------------+
void OnStart()
 {
//---
  Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
  Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
  Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
 }

スクリプトの実行の結果、エキスパート操作ログに次のようなメッセージが表示されます。

端末の作業フォルダのデータの取得