トップ  >  MQL4リファレンス  >  標準定数・列挙・構造体  >  環境ステータス  >  クライアントターミナルプロパティ
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
クライアントターミナルプロパティ


クライアントターミナルの情報は、 TerminalInfoInteger()関数とTerminalInfoString()関数で取得出来ます。
この関数の引数はENUM_TERMINAL_INFO_INTEGER列挙とENUM_TERMINAL_INFO_STRING列挙の値を使用します。

ENUM_TERMINAL_INFO_INTEGER
ID 詳細
TERMINAL_BUILD クライアントターミナルのビルドバージョン int
TERMINAL_COMMUNITY_ACCOUNT MQL5コミュニティアカウント bool
TERMINAL_COMMUNITY_CONNECTION MQL5コミュニティ接続 bool
TERMINAL_CONNECTED トレードサーバーへの接続 bool
TERMINAL_DLLS_ALLOWED DLL使用許可 bool
TERMINAL_TRADE_ALLOWED トレード許可 bool
TERMINAL_EMAIL_ENABLED ターミナルで指定したe-mail(SMTPサーバー)送信許可 bool
TERMINAL_FTP_ENABLED ターミナルで指定したFTPサーバーへのレポート送信許可 bool
TERMINAL_NOTIFICATIONS_ENABLED スマートフォンへの通知許可 bool
TERMINAL_MAXBARS チャート上でのバー数上限 int
TERMINAL_MQID MetaQuotesサービスからのプッシュ通知許可 bool
TERMINAL_CODEPAGE クライアントターミナルにイントールされた言語のコードページ int
TERMINAL_CPU_CORES CPUコアの数 int
TERMINAL_DISK_SPACE ターミナルをインストールしたカレントドライブの空き容量(MB単位) int
TERMINAL_MEMORY_PHYSICAL 物理メモリの容量(MB単位) int
TERMINAL_MEMORY_TOTAL ターミナル(エージェント)で使用可能なメモリ(MB単位) int
TERMINAL_MEMORY_AVAILABLE ターミナル(エージェント)の空きメモリ(MB単位) int
TERMINAL_MEMORY_USED ターミナル(エージェント)の使用メモリ(MB単位) int
TERMINAL_SCREEN_DPI ディスプレイ解像度は1インチ当たりのドット数(DPI)で測られます。 この値を知る事で、異なるディスプレイ解像度でも同じように見えるグラフィカルオブジェクトのサイズを決定する事が出来ます。 int
TERMINAL_PING_LAST トレードサーバーへの最後のping値を知る事が出来ます。分解能は1µsecです int


Key ID 詳細
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 "Menu"キーの状態 int
TERMINAL_KEYSTATE_CAPSLOCK "Caps Lock"キーの状態 int
TERMINAL_KEYSTATE_NUMLOCK "NumLock"キーの状態 int
TERMINAL_KEYSTATE_SCRLOCK "Scroll Lock"キーの状態 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 "Esc"キーの状態 int

TerminalInfoIntegerTERMINAL_KEYSTATE_XXX)を呼び出すと、MSDNのGetKeyState()関数と同じキーの状態コードが返されます。

サンプルソース:
#property indicator_chart_window // カスタムインジケータをチャートウインドウに表示する


//+------------------------------------------------------------------+
//| OnInit(初期化)イベント
//+------------------------------------------------------------------+
int OnInit()
{
   EventSetTimer(1);      // 1秒毎にタイマーイベント発生

   return( INIT_SUCCEEDED );
}

#define KEYMASK_TOGGLED 0x01        // キートグル判定
#define KEYMASK_ON      0x80        // キー押下判定

//+------------------------------------------------------------------+
//| タイマーイベント
//+------------------------------------------------------------------+
void OnTimer(){

    int  temp_info   = 0;     // キー状態
    bool temp_push   = false; // キー押下判定
    bool temp_toggle = false; // キートグル判定

    // 左矢印キー状態取得
    temp_info   = TerminalInfoInteger( TERMINAL_KEYSTATE_LEFT ); 

    if ( (temp_info & KEYMASK_ON) == KEYMASK_ON ) { // キー押下判定
        temp_push = true;
    }

    if ( (temp_info & KEYMASK_TOGGLED) == KEYMASK_TOGGLED ) { // キートグル判定
        temp_toggle = true;
    }
    

   printf( "キー取得情報:0x%x , キー押下判定:%s  , キートグル判定:%s "
        , temp_info
        , (string)temp_push
        , (string)temp_toggle
    );

}

//+------------------------------------------------------------------+
//| OnCalculate(tick受信)イベント
//| カスタムインジケータ専用のイベント関数
//+------------------------------------------------------------------+
int OnCalculate(const int     rates_total,      // 入力された時系列のバー数
                const int       prev_calculated,  // 計算済み(前回呼び出し時)のバー数
                const datetime &time[],          // 時間
                const double   &open[],          // 始値
                const double   &high[],          // 高値
                const double   &low[],           // 安値
                const double   &close[],         // 終値
                const long     &tick_volume[],   // Tick出来高
                const long     &volume[],        // Real出来高
                const int      &spread[])        // スプレッド
{


   return( rates_total ); // 戻り値設定:次回OnCalculate関数が呼ばれた時のprev_calculatedの値に渡される
}





ENUM_TERMINAL_INFO_DOUBLE
ID 詳細
TERMINAL_COMMUNITY_BALANCE MQL5コミュニティの残高 double





ファイル操作は、2つのディレクトリで行う事が出来ます。
対応するパスはTERMINAL_DATA_PATHとTERMINAL_COMMONDATA_PATHプロパティを取得して使用します。

ENUM_TERMINAL_INFO_STRING
ID 詳細
TERMINAL_LANGUAGE ターミナルの言語 string
TERMINAL_COMPANY ターミナル会社 string
TERMINAL_NAME ターミナル名 string
TERMINAL_PATH ターミナルを起動したフォルダパス string
TERMINAL_DATA_PATH データが格納されるフォルダパス string
TERMINAL_COMMONDATA_PATH インストールされたターミナルのCommonフォルダへのフルパス string


サンプルソース:

//+------------------------------------------------------------------+
//| 初期化                         
//|------------------------------------------------------------------|
void OnInit(){

    Print( "ビルドVer         :", TerminalInfoInteger(TERMINAL_BUILD) );

    Print( "言語              :", TerminalInfoString(TERMINAL_LANGUAGE) );
    Print( "証券会社名        :", TerminalInfoString(TERMINAL_COMPANY) );
    Print( "ターミナル名      :", TerminalInfoString(TERMINAL_NAME) );
    Print( "ターミナルフォルダ:", TerminalInfoString(TERMINAL_PATH) );
    Print( "データフォルダ    :", TerminalInfoString(TERMINAL_DATA_PATH) );
    Print( "Commonフォルダ    :", TerminalInfoString(TERMINAL_COMMONDATA_PATH) );
}


結果:
ビルドVer         :765
言語              :Japanese
証券会社名        :Forex Capital Markets Inc.
ターミナル名      :FXCM MetaTrader 4
ターミナルフォルダ:G:\Program Files\FXCM MetaTrader 4
データフォルダ    :G:\Program Files\FXCM MetaTrader 4
Commonフォルダ    :C:\Users\yuki\AppData\Roaming\MetaQuotes\Terminal\Common






スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system