TerminalInfoDoubleの働き・役割
TerminalInfoDouble関数は、MQL5プログラム環境の対応するプロパティの値を返すために使用されます。これは、ターミナルの特定の情報を取得するための関数です。主に、端末の設定やステータスに関する情報を取得するために使用されます。
TerminalInfoDoubleの引数について
TerminalInfoDouble関数の引数は以下の通りです。
double TerminalInfoDouble(
int property_id // プロパティ識別子
);
引数の詳細
property_id(プロパティ識別子)
これはプロパティの識別子を示す整数型の値です。ENUM_TERMINAL_INFO_DOUBLE列挙のいずれかを使用します。これにより、取得したいプロパティの種類を指定します。
ENUM_TERMINAL_INFO_DOUBLEについて
ENUM_TERMINAL_INFO_DOUBLEは、TerminalInfoDouble関数で使用されるプロパティ識別子を定義する列挙型です。それぞれの識別子は、ターミナルの異なる情報を示します。
TERMINAL_COMMUNITY_BALANCEについて
TERMINAL_COMMUNITY_BALANCEは、MQL5.communityの残高を示します。MQL5.communityとは、トレーダーや開発者が情報交換を行ったり、ツールやスクリプトを共有するためのオンラインプラットフォームです。この識別子は、コミュニティアカウントの現在の残高を取得するために使用されます。
TERMINAL_RETRANSMISSIONについて
TERMINAL_RETRANSMISSIONは、指定されたコンピュータ上のすべての実行中のアプリケーションおよびサービスのTCP/IPプロトコルにおけるネットワークパケットの再送信率を示します。
※TCP/IPプロトコルとは、データ通信を行うための標準的な通信プロトコルであり、インターネットなどで広く使用されています。
これは特定の端末と取引サーバ間の接続品質を示すものではなく、システム全体のネットワークアクティビティに基づく値です。この値はオペレーティングシステムから1分に1回要求されます。
※インターネットで情報を送受信する際、データは小さなパケットという単位に分割されて送られます。しかし、途中でパケットが迷子になったり、壊れたりすることがあります。
そんな時、コンピュータはもう一度同じパケットを送ります。これを「再送信」と言います。再送信が多いと、通信が遅くなったり、不安定になったりします。
TERMINAL_RETRANSMISSIONは、この再送信の割合を表しています。数値が大きいほど、再送信が多く、通信環境が悪いことを意味します。
TerminalInfoDoubleの戻り値について
TerminalInfoDouble関数は、指定されたプロパティ識別子に対応する値をdouble型で返します。戻り値の具体的な意味は、指定したproperty_idによって異なります。例えば、TERMINAL_COMMUNITY_BALANCEの場合は残高、TERMINAL_RETRANSMISSIONの場合は再送信率を表します。
TerminalInfoDoubleを使う際の注意点
TerminalInfoDouble関数を使用する際には、正しいプロパティ識別子を指定することが重要です。不適切な識別子を指定すると、意図しない結果を得ることがあります。
TerminalInfoDoubleを使ったサンプルコード
以下に、TerminalInfoDouble関数を使用してMQL5.communityの残高を取得し、エキスパートログに出力するサンプルコードを示します。
// スクリプトのエントリーポイント
void OnStart()
{
// TERMINAL_COMMUNITY_BALANCEプロパティの値を取得
double communityBalance = TerminalInfoDouble(TERMINAL_COMMUNITY_BALANCE);
// 取得した値をエキスパートログに出力
Print("MQL5.communityの残高: ", communityBalance);
}
サンプルコードに使われた関数や文法要素の簡単な解説
OnStart関数 スクリプトの実行が開始されたときに自動的に呼び出される関数です。スクリプトのエントリーポイントとして機能します。
TerminalInfoDouble関数 指定されたプロパティ識別子に対応するターミナル情報を取得します。この場合、TERMINAL_COMMUNITY_BALANCEを指定して、MQL5.communityの残高を取得しています。
Print関数 エキスパートログにメッセージを出力します。このサンプルでは、取得した残高の値をエキスパートログに表示しています。