【MQL4】スプレッドを取得する方法【MT4】
今回は、MQL4 で対象通貨ペアのスプレッドを取得する方法について紹介します。
スプレッドを取得することによって、EAによるFX自動売買で、スプレッドが開く(広い)ときは売買をしないというプログラムを組むことが可能になります。
スプレッドを取得方法は、
- 買値(Ask)と売値(Bid)の差を計算
- MarketInfo 関数を使う
の2種類があります。
順番に説明しますが、結論からいうと「MarketInfo」関数を使う方が良いと考えられます。
楽天MT4で、通貨ペアは「ドル円」を使ってスプレッドを算出してみました。
スプレッドは「0.5銭」となります。
買値(Ask)と売値(Bid)の差を計算
スプレッドとは、「広がり」を意味し、買値(Ask)と売値(Bid)の差を表します。通常、買値の方が売値より高くなっています。
そのため、以下のように、単純に「買値(Ask)- 売値(Bid)」を計算するとスプレッドが求まります。
1 |
double spread = Ask - Bid; |
すると、「0.005000000000009663」のような値が入ります。
単位は「円」で返ってきます。
1円=100銭 なので、1銭=0.01円となります。
求めたいスプレッドは 0.5 銭なので、0.005 円となって欲しいのですが、微妙に値が違ってきます。
これだと、条件式を書く場合にちょっと不便になってしまいます。
MarketInfo 関数を使う
そこで、MQL4 言語で用意されている「MarketInfo」関数を使います。
「MarketInfo」関数は、MT4上の「気配値表示」ウインドウに表示されている様々な情報を取得できる関数となっています。
スプレッドを取得する場合は、以下のように、第1引数に通貨ペアを指定し、第2引数に「MODE_SPREAD」を指定します。
1 |
double spread = MarketInfo("USDJPY", MODE_SPREAD); |
結果は、0.1 pips 単位で返ってきます。
0.1 pips は 0.1 銭なので、「5.0」のような値が入ります。
正確にドル円のスプレッド「0.5銭」を取得することができました。
これらの2種類の方法で取得したスプレッドを「Comment」関数でチャート上に表示させた画像を載せておきます。
以上で、MQL4 で対象通貨ペアのスプレッドを取得する方法の紹介でした。
関連記事
-
【MT4】EAのバックテストをする方法【FX自動売買】
今回は、MT4を使って、EAのバックテストを行う方法について紹介します。 バックテストは、自分
-
【MT4】チャート上に日本時間を表示させる方法【JPN_Time_SubZero】
今回は、MT4(メタトレーダー4)でチャート上に日本時間を表示させる方法について紹介します。
-
【MT4】日付と時間を指定してPCを自動起動させる方法【DELL】
今回は、日付と時間を指定してPCを自動的に起動させる方法について紹介します。 なぜPCの自動起
-
【楽天CFD】デモ口座を開設してみた【MT4】
CFDとは、Contract For Difference の略で、差金決済取引(さきんけっさいとり
-
【MQL4】使用できる時間足の種類について【MT4】
今回は、MQL4プログラミングによって EA を作成するときに使える時間足の種類について調べてみまし
-
【MT4】複数口座を同時に起動させる方法【FX・CFD】
今回は、MT4(メタトレーダー4)で複数口座を同時にログインし、起動させる方法について紹介します。
-
【MT4】PCが再起動しても自動的に起動させる方法【FX自動売買】
今回は、FX 自動売買用のツールの MT4 で、実行しているPCが再起動しても、MT4 を自動的に起
-
【MT4】ノートPCを閉じてもEAを実行させ続ける方法【Windows10】
今回は、MT4上でノートPCを閉じてもEAを実行させ続ける方法について紹介します。 通常、ノー
-
【楽天証券CFD】調整金(金利/配当)について調べてみた【MT4】
今回は、楽天証券CFDで日経平均(JP225)や SP500(US500)、ダウ(US30)、ナスダ
-
【MQL4】注文を出す関数について調べてみた【OrderSend】
今回は、EAで注文を出すMQL4の関数「OrderSend()」について調べてみました。 Or