MarketInfo 関数
この関数は、MT4上の「気配値表示」の仕様にある様々な情報を取得します。取得できる情報はマーケット情報識別子の29項目です。
データ型と構成・戻り値
double MarketInfo(①, ②);
戻り値は、「気配値表示」にある様々な情報を取得します。取得される情報は②の引数によって決まります。
引数 [2]
MarketInfo 関数は2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 取引する通貨ペア。通貨ペア名を”USDJPY”のように ” で囲んで指定するか、Symbol関数を使うと現在のチャート通貨ペアが指定されます。 |
② | type | int | - | - | マーケット情報識別子 [29] の中から選択します。 |
使用例
MarketInfo関数を使ったログ出力
MarketInfo関数を使って全 29個の通貨情報をエキスパートタブのメッセージに出力します。
MarketInfo関数は通常 doubleのデータ型で出力されますが、それぞれの通貨情報が分かり易いように、このコードでは一部キャストしています。
コード
// 気配値情報 MarketInfo 関数
#property strict
void OnInit() {
Print(" 1_当日安値 :", MarketInfo(Symbol(),MODE_LOW ));
Print(" 2_当日高値 :", MarketInfo(Symbol(),MODE_HIGH));
Print(" 5_Tick受信時間 :",(datetime)MarketInfo(Symbol(),MODE_TIME));
Print(" 9_売値 :", MarketInfo(Symbol(),MODE_BID));
Print("10_買値 :", MarketInfo(Symbol(),MODE_ASK));
Print("11_通貨ペアの最小値 :", MarketInfo(Symbol(),MODE_POINT));
Print("12_通貨ペアの小数点以下桁数 :",(int) MarketInfo(Symbol(),MODE_DIGITS));
Print("13_スプレッド :",(int) MarketInfo(Symbol(),MODE_SPREAD));
Print("14_ストップレベル :",(int) MarketInfo(Symbol(),MODE_STOPLEVEL));
Print("15_1ロットあたりの通貨量 :",(int) MarketInfo(Symbol(),MODE_LOTSIZE));
Print("16_決済通貨のTick :", MarketInfo(Symbol(),MODE_TICKVALUE));
Print("17_Tickの最小値 :", MarketInfo(Symbol(),MODE_TICKSIZE));
Print("18_買いのスワップ :", MarketInfo(Symbol(),MODE_SWAPLONG));
Print("19_売りのスワップ :", MarketInfo(Symbol(),MODE_SWAPSHORT));
Print("20_マーケット開始日 :",(datetime)MarketInfo(Symbol(),MODE_STARTING));
Print("21_マーケット期日 :",(datetime)MarketInfo(Symbol(),MODE_EXPIRATION));
Print("22_トレード可能な通貨ペア :",(bool) MarketInfo(Symbol(),MODE_TRADEALLOWED));
Print("23_ロットの最小値 :", MarketInfo(Symbol(),MODE_MINLOT));
Print("24_ロットのステップ :", MarketInfo(Symbol(),MODE_LOTSTEP));
Print("25_最大ロット数 :",(int) MarketInfo(Symbol(),MODE_MAXLOT));
Print("26_スワップ計算方法 :",(int) MarketInfo(Symbol(),MODE_SWAPTYPE));
Print("27_損益計算モード :",(int) MarketInfo(Symbol(),MODE_PROFITCALCMODE));
Print("28_証拠金計算モード :",(int) MarketInfo(Symbol(),MODE_MARGINCALCMODE));
Print("29_1ロット初期証拠金 :", MarketInfo(Symbol(),MODE_MARGININIT));
Print("30_1ロットオーダの初期証拠金:", MarketInfo(Symbol(),MODE_MARGINMAINTENANCE));
Print("31_1ロット必要証拠金 :", MarketInfo(Symbol(),MODE_MARGINHEDGED));
Print("32_1ロット余剰証拠金 :", MarketInfo(Symbol(),MODE_MARGINREQUIRED));
Print("33_注文凍結レベル :",(bool) MarketInfo(Symbol(),MODE_FREEZELEVEL));
Print("34_両建て同時決済可否 :",(bool) MarketInfo(Symbol(),MODE_CLOSEBY_ALLOWED));
Print("指定通貨ペア :", Symbol());
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)