今回の記事は、「マーケット情報の取得について」です。
MarketInfo関数
まずマーケット情報についてですが、これは各通貨ペアのAsk、Bid、スプレッド、スワップなど、その通貨ペアに関する情報です。マーケット情報を引き出す関数はMarketInfo関数になります。
double MarketInfo( string symbol, int type)
戻り値はdouble型で戻り、引数は通貨ペア(symbol)、何の情報か(type)になります。
通貨ペアは証券会社によっては通貨ペア名の後にproなどが付いている場合がありますが、その場合はそれも入力してください。
typeはかなりの数がありますので、詳しくはMQL4でMarketInfoと入力して、それにカーソルを合わせてキーボードのF1キーを押してください。MarketInfoのヘルプが出てきますので、そこからtypeのリンクを選択してください。
下記に例を書かせて頂きます。
MarketInfo("EURUSD",MODE_BID);
ユーロドルのBidを取得します。
MarketInfo("USDJPY",MODE_ASK);
ドル円のAskを取得します。
MarketInfo("EURJPY",MODE_POINT);
ユーロ円の1Pipsの通貨単位を取得します。レートの少数点が2桁なら0.1、小数点が3桁なら0.01などです。
MarketInfo("GBPUSD",MODE_DIGITS);
ポンドドルの有効桁数を取得します。レートの少数点が4桁なら4、小数点が5桁なら5などです。
MarketInfo("EURGBP",MODE_SPREAD);
ユーロポンドのスプレッドを取得します。単位はPipsになります。
MarketInfo関数は主にAの通貨ペアのチャートでEAを動かしている時にBの通貨ペアの情報を取得したい時に取得します。Aの通貨ペアのチャートでEAを動かしていてもBの通貨ペアのポジションを取得可能ですので、この関数を使用すれば一つのEAで複数の通貨ペアの売買が行えます。
また、同じチャートの情報でもMarketInfo関数でしか取得出来ない情報もありますので、色々と調べて見てください。