いろんな情報を取得できるMarketInfo()関数の使い方(MQL4)

MarketInfo()関数

書式

double  MarketInfo(
	string symbol,  // 通貨ペアを指定する
	int type    // 取得する情報の定数を指定する
);

取得できる情報の定数と種類


//数字を指定しても大文字で指定しても結果は同じです。
MarketInfo(Symbol(),MODE_BID);  //最新の売値
MarketInfo(Symbol(),9);  //最新の売値

/*
定数 種類

1  MODE_LOW  //その日の安値

2  MODE_HIGH  //その日の高値

3,4はありません。

5  MODE_TIME  //Tick最終更新したサーバーの時間

6,7,8はありません。

9  MODE_BID  //最新の売値

10 MODE_ASK  //最新の買値

11 MODE_POINT  //レート少数点の最小値を取得 例:0.001又は0.01 や 0.00001又は0.0001

12 MODE_DIGITS  //レートの少数点以下の桁数  例:2,3,4,5

13 MODE_SPREAD  //point単位でスプレッドを取得 

14 MODE_STOPLEVEL  //point単位でストップレベルを取得

15 MODE_LOTSIZE  //1lotは何通貨なのか 例:1Lot = 10万通貨

16 MODE_TICKVALUE  //口座資金に応じた変動値を取得(1Lotあたり)

17 MODE_TICKSIZE  //直前に動いたpoint単位でのティックの幅

18 MODE_SWAPLONG  //買いスワップ

19 MODE_SWAPSHORT  //売りスワップ

20 MODE_STARTING  //マーケットスタートdate

21 MODE_EXPIRATION  //マーケット有効date

22 MODE_TRADEALLOWED  //トレードが許可されているのか?

23 MODE_MINLOT  //業者の最小ロット 例:0.01  1Lot=10万通貨だと0.01=1000通貨

24 MODE_LOTSTEP  //業者の刻めるロット 例:0.01

25 MODE_MAXLOT  //業者の最大ロット 例:500  1Lot=10万通貨だと500=5000万通貨

26 MODE_SWAPTYPE

27 MODE_PROFITCALCMODE

28 MODE_MARGINCALCMODE

29 MODE_MARGININIT  //1Lotの基準証拠金

30 MODE_MARGINMAINTENANCE  //1Lotの維持証拠金

31 MODE_MARGINHEDGED  //1Lotの両建ての証拠金

32 MODE_MARGINREQUIRED  //1Lotに必要な余剰証拠金

33 MODE_FREEZELEVEL

34 MODE_CLOSEBY_ALLOWED //OrderCloseBy関数の使用許可があるか?
*/

関連記事一覧:関数OrderCloseBy()

Q&A

Question!!:今日のUSDJPYの高値と安値が知りたいな!

MarketInfo("USDJPY",MODE_LOW);   //今日の安値
MarketInfo("USDJPY",MODE_HIGH);   //今日の高値

//通貨ペア名の後に余計な文字列がついている場合は下記のように正確に入力しないとダメです。
MarketInfo("USDJPY-cd",MODE_LOW); //今日の安値

//余計な文字列があるかわからない場合は下記のようにすれば取得できます。
string symbolEndStr = StringSubstr(Symbol(),6,0);
  
MarketInfo("USDJPY"+symbolEndStr,MODE_HIGH);  //今日の高値

関連記事一覧:関数StringSubstr(),関数Symbol()

Question!!:米ドル円の現在の売値と買値が知りたいな!

MarketInfo("USDJPY",MODE_BID);   //現在の売値
MarketInfo("USDJPY",MODE_ASK);   //現在の買値

Question!!:スプレッドが広がっている時にエントリーしたくないんだけど、、、

スプレッドはPoint単位での取得なので、詳しくは_Point()をご覧下さい。

//0.1pipsで1 なので0.3以下の時にエントリーしたい場合は3と記述する
if( MarketInfo(Symbol(),MODE_SPREAD) <= 3){
	//スプレッドが0.3pips以下でエントリーする
}else{
	//スプレッドが0.3pipsより上でエントリーしない
}

Question!!:取引している業者のロットについて詳しく知りたいな!

MarketInfo(Symbol(),MODE_LOTSIZE);  //1ロット何通貨なのかがわかる

MarketInfo(Symbol(),MODE_MINLOT); //注文できる最小のロットがわかる

MarketInfo(Symbol(),MODE_MAXLOT);  //注文できる最大のロットがわかる

Question!!:スワップポイントを教えて!

MarketInfo(Symbol(),MODE_SWAPLONG);  //買ポジションのスワップポイント
MarketInfo(Symbol(),MODE_SWAPSHORT);  //売ポジションのスワップポイント

Question!!:MarketInfo()ってイチイチ書くの?めんどくさいよ!!

//関数化してしまいましょう
double getPoint(){
   return MarketInfo(Symbol(),MODE_POINT);  //最小変動レートPointを返す
}
//呼び出しは下記
getPoint();

引数詳細

第一引数:string symbol【通貨ペア】

第一引数には通貨ペアを指定します。
文字列なので””で囲います。

symbol = "USDJPY"; //文字列をべた書きで指定
symbol = "USDJPY-cd"; //文字列は正確に指定すること!!
symbol = Symbol(); //関数を使って指定

ページリンク:SYMBOL()関数!開いている通貨ペアの名前を取得する(MQL4)

第二引数:int type【定数】

第二引数には取得したい情報を指定します。
指定の仕方は、数字か定義済み変数のどちらでも問題ありません。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする