<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MarketInfo アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/marketinfo/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/marketinfo/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Wed, 01 Apr 2026 04:24:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>MarketInfo アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/marketinfo/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4】市場情報を取得する関数を完全解説！MarketInfo・SymbolInfoDouble・SymbolInfoInteger・SymbolInfoStringの使い方</title>
		<link>https://mql-programing.com/archives/13062/%e3%80%90mql4%e3%80%91%e5%b8%82%e5%a0%b4%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e8%a7%a3%e8%aa%ac%ef%bc%81marketinfo%e3%83%bbsymbol/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[【中級編】MQLプログラムの読み方・書き方]]></category>
		<category><![CDATA[EA開発]]></category>
		<category><![CDATA[SymbolInfoDouble]]></category>
		<category><![CDATA[市場情報関数]]></category>
		<category><![CDATA[MarketInfo]]></category>
		<category><![CDATA[MQL4]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13062</guid>

					<description><![CDATA[<p>EA（自動売買）を開発するとき、「現在のスプレッドはいくつ？」「このブローカーのストップレベルは？」「1pipあたりの価値は？」といった市場情報の取得は欠かせません。MQL4には、これらの情報を取得するための関数がいくつ [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13062/%e3%80%90mql4%e3%80%91%e5%b8%82%e5%a0%b4%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e8%a7%a3%e8%aa%ac%ef%bc%81marketinfo%e3%83%bbsymbol/">【MQL4】市場情報を取得する関数を完全解説！MarketInfo・SymbolInfoDouble・SymbolInfoInteger・SymbolInfoStringの使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>EA（自動売買）を開発するとき、「現在のスプレッドはいくつ？」「このブローカーのストップレベルは？」「1pipあたりの価値は？」といった市場情報の取得は欠かせません。MQL4には、これらの情報を取得するための関数がいくつか用意されています。</p>
<p>この記事では、<strong>MarketInfo関数</strong>と、より新しい<strong>SymbolInfoDouble・SymbolInfoInteger・SymbolInfoString関数</strong>の使い方を、実践的なコード例とともに徹底解説します。</p>
<h2><span id="toc1">MarketInfo関数 ― MQL4の基本</span></h2>
<p>MarketInfo関数は、気配値表示ウィンドウに表示されている通貨ペアのマーケット情報を取得するための、MQL4で最も古くから使われている関数です。</p>
<h3><span id="toc2">基本構文</span></h3>
<pre><code class="language-mql4">double MarketInfo(string symbol, int type);
</code></pre>
<p>第1引数に通貨ペア名（例：&#8221;USDJPY&#8221;）、第2引数にMODE定数を指定します。戻り値はすべてdouble型です。</p>
<h3><span id="toc3">主なMODE定数一覧</span></h3>
<table>
<thead>
<tr>
<th>MODE定数</th>
<th>値</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>MODE_BID</td>
<td>9</td>
<td>現在のBid価格</td>
</tr>
<tr>
<td>MODE_ASK</td>
<td>10</td>
<td>現在のAsk価格</td>
</tr>
<tr>
<td>MODE_POINT</td>
<td>11</td>
<td>1ポイントの値（例：0.00001）</td>
</tr>
<tr>
<td>MODE_DIGITS</td>
<td>12</td>
<td>小数点以下の桁数</td>
</tr>
<tr>
<td>MODE_SPREAD</td>
<td>13</td>
<td>スプレッド（ポイント単位）</td>
</tr>
<tr>
<td>MODE_STOPLEVEL</td>
<td>14</td>
<td>ストップレベル（ポイント単位）</td>
</tr>
<tr>
<td>MODE_LOTSIZE</td>
<td>15</td>
<td>1ロットあたりの契約サイズ</td>
</tr>
<tr>
<td>MODE_TICKVALUE</td>
<td>16</td>
<td>1ティックあたりの価値（口座通貨建て）</td>
</tr>
<tr>
<td>MODE_TICKSIZE</td>
<td>17</td>
<td>1ティックのサイズ</td>
</tr>
<tr>
<td>MODE_SWAPLONG</td>
<td>18</td>
<td>ロングポジションのスワップ</td>
</tr>
<tr>
<td>MODE_SWAPSHORT</td>
<td>19</td>
<td>ショートポジションのスワップ</td>
</tr>
<tr>
<td>MODE_MINLOT</td>
<td>24</td>
<td>最小ロット数</td>
</tr>
<tr>
<td>MODE_LOTSTEP</td>
<td>25</td>
<td>ロットのステップ</td>
</tr>
<tr>
<td>MODE_MAXLOT</td>
<td>26</td>
<td>最大ロット数</td>
</tr>
<tr>
<td>MODE_MARGININIT</td>
<td>28</td>
<td>初期証拠金</td>
</tr>
<tr>
<td>MODE_MARGINREQUIRED</td>
<td>31</td>
<td>1ロットあたりの必要証拠金</td>
</tr>
<tr>
<td>MODE_FREEZELEVEL</td>
<td>33</td>
<td>フリーズレベル（ポイント単位）</td>
</tr>
</tbody>
</table>
<h3><span id="toc4">基本的な使用例</span></h3>
<pre><code class="language-mql4">void OnStart()
{
    string sym = Symbol(); // 現在のチャートの通貨ペア

    double bid       = MarketInfo(sym, MODE_BID);
    double ask       = MarketInfo(sym, MODE_ASK);
    double spread    = MarketInfo(sym, MODE_SPREAD);
    double stopLevel = MarketInfo(sym, MODE_STOPLEVEL);
    double tickValue = MarketInfo(sym, MODE_TICKVALUE);
    double minLot    = MarketInfo(sym, MODE_MINLOT);

    PrintFormat("Bid=%.5f  Ask=%.5f  Spread=%.0f  StopLevel=%.0f",
                bid, ask, spread, stopLevel);
    PrintFormat("TickValue=%.5f  MinLot=%.2f", tickValue, minLot);
}
</code></pre>
<p>MarketInfo関数はシンプルで使いやすいですが、戻り値がすべてdouble型のため、本来は整数値であるスプレッドや桁数もdoubleで返ってきます。キャストが必要になる場面がある点は覚えておきましょう。</p>
<h2><span id="toc5">SymbolInfo系関数 ― より型安全な新しい方法</span></h2>
<p>MQL4のビルド600以降では、MarketInfoの代替として<strong>SymbolInfo系関数</strong>が使えるようになりました。これらはMQL5と共通の関数であり、将来的なMQL5移行を見据えるなら、こちらを使うのがおすすめです。</p>
<p>SymbolInfo系関数は、取得するデータの型に応じて3つに分かれています。</p>
<table>
<thead>
<tr>
<th>関数名</th>
<th>戻り値の型</th>
<th>主な用途</th>
</tr>
</thead>
<tbody>
<tr>
<td>SymbolInfoDouble</td>
<td>double</td>
<td>価格、スワップ、ロット情報など</td>
</tr>
<tr>
<td>SymbolInfoInteger</td>
<td>long（整数）</td>
<td>スプレッド、桁数、ストップレベルなど</td>
</tr>
<tr>
<td>SymbolInfoString</td>
<td>string</td>
<td>通貨名、シンボル説明など</td>
</tr>
</tbody>
</table>
<h2><span id="toc6">SymbolInfoDouble ― double型の市場情報を取得</span></h2>
<p>SymbolInfoDoubleには2つの書式があります。</p>
<h3><span id="toc7">書式1：戻り値で直接受け取る</span></h3>
<pre><code class="language-mql4">double SymbolInfoDouble(string symbol, ENUM_SYMBOL_INFO_DOUBLE prop_id);
</code></pre>
<h3><span id="toc8">書式2：参照引数で受け取る（成否判定付き）</span></h3>
<pre><code class="language-mql4">bool SymbolInfoDouble(string symbol, ENUM_SYMBOL_INFO_DOUBLE prop_id, double &amp;value);
</code></pre>
<p>書式2はboolを返すため、取得が成功したかどうかを判定できます。安全なコードを書きたい場合はこちらを推奨します。</p>
<h3><span id="toc9">主なプロパティID</span></h3>
<table>
<thead>
<tr>
<th>プロパティID</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>SYMBOL_BID</td>
<td>現在のBid価格</td>
</tr>
<tr>
<td>SYMBOL_ASK</td>
<td>現在のAsk価格</td>
</tr>
<tr>
<td>SYMBOL_POINT</td>
<td>1ポイントの値</td>
</tr>
<tr>
<td>SYMBOL_TRADE_TICK_VALUE</td>
<td>1ティックの価値</td>
</tr>
<tr>
<td>SYMBOL_TRADE_TICK_SIZE</td>
<td>1ティックのサイズ</td>
</tr>
<tr>
<td>SYMBOL_TRADE_CONTRACT_SIZE</td>
<td>契約サイズ</td>
</tr>
<tr>
<td>SYMBOL_VOLUME_MIN</td>
<td>最小ロット</td>
</tr>
<tr>
<td>SYMBOL_VOLUME_MAX</td>
<td>最大ロット</td>
</tr>
<tr>
<td>SYMBOL_VOLUME_STEP</td>
<td>ロットステップ</td>
</tr>
<tr>
<td>SYMBOL_SWAP_LONG</td>
<td>ロングスワップ</td>
</tr>
<tr>
<td>SYMBOL_SWAP_SHORT</td>
<td>ショートスワップ</td>
</tr>
<tr>
<td>SYMBOL_MARGIN_INITIAL</td>
<td>初期証拠金</td>
</tr>
</tbody>
</table>
<h3><span id="toc10">コード例</span></h3>
<pre><code class="language-mql4">void OnStart()
{
    string sym = Symbol();

    // 書式1：直接取得
    double bid = SymbolInfoDouble(sym, SYMBOL_BID);
    double ask = SymbolInfoDouble(sym, SYMBOL_ASK);
    PrintFormat("Bid=%.5f  Ask=%.5f", bid, ask);

    // 書式2：成否判定付き
    double tickValue;
    if(SymbolInfoDouble(sym, SYMBOL_TRADE_TICK_VALUE, tickValue))
        PrintFormat("TickValue = %.5f", tickValue);
    else
        Print("TickValue の取得に失敗しました");
}
</code></pre>
<h2><span id="toc11">SymbolInfoInteger ― 整数型の市場情報を取得</span></h2>
<p>スプレッドや桁数など、整数で扱うべき情報を<strong>long型</strong>で返します。MarketInfoではdoubleで返っていたものが正しい型で取得できるようになりました。</p>
<h3><span id="toc12">主なプロパティID</span></h3>
<table>
<thead>
<tr>
<th>プロパティID</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>SYMBOL_SPREAD</td>
<td>スプレッド（ポイント単位）</td>
</tr>
<tr>
<td>SYMBOL_DIGITS</td>
<td>小数点以下の桁数</td>
</tr>
<tr>
<td>SYMBOL_TRADE_STOPS_LEVEL</td>
<td>ストップレベル（ポイント単位）</td>
</tr>
<tr>
<td>SYMBOL_TRADE_FREEZE_LEVEL</td>
<td>フリーズレベル（ポイント単位）</td>
</tr>
<tr>
<td>SYMBOL_TRADE_EXEMODE</td>
<td>約定方式</td>
</tr>
<tr>
<td>SYMBOL_TIME</td>
<td>最終ティックの時刻</td>
</tr>
</tbody>
</table>
<pre><code class="language-mql4">void OnStart()
{
    string sym = Symbol();

    long spread    = SymbolInfoInteger(sym, SYMBOL_SPREAD);
    long digits    = SymbolInfoInteger(sym, SYMBOL_DIGITS);
    long stopLevel = SymbolInfoInteger(sym, SYMBOL_TRADE_STOPS_LEVEL);

    PrintFormat("Spread=%d  Digits=%d  StopLevel=%d",
                (int)spread, (int)digits, (int)stopLevel);
}
</code></pre>
<h2><span id="toc13">SymbolInfoString ― 文字列型の市場情報を取得</span></h2>
<p>通貨ペアの基軸通貨や決済通貨、説明文などの文字列情報を取得します。</p>
<table>
<thead>
<tr>
<th>プロパティID</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>SYMBOL_CURRENCY_BASE</td>
<td>基軸通貨（例：&#8221;USD&#8221;）</td>
</tr>
<tr>
<td>SYMBOL_CURRENCY_PROFIT</td>
<td>決済通貨（例：&#8221;JPY&#8221;）</td>
</tr>
<tr>
<td>SYMBOL_CURRENCY_MARGIN</td>
<td>証拠金通貨</td>
</tr>
<tr>
<td>SYMBOL_DESCRIPTION</td>
<td>シンボルの説明文</td>
</tr>
<tr>
<td>SYMBOL_PATH</td>
<td>シンボルツリー内のパス</td>
</tr>
</tbody>
</table>
<pre><code class="language-mql4">void OnStart()
{
    string sym = Symbol();

    string baseCurrency   = SymbolInfoString(sym, SYMBOL_CURRENCY_BASE);
    string profitCurrency = SymbolInfoString(sym, SYMBOL_CURRENCY_PROFIT);
    string description    = SymbolInfoString(sym, SYMBOL_DESCRIPTION);

    PrintFormat("基軸通貨=%s  決済通貨=%s", baseCurrency, profitCurrency);
    PrintFormat("説明: %s", description);
}
</code></pre>
<h2><span id="toc14">MarketInfo と SymbolInfo系の対応関係</span></h2>
<p>既存のコードをSymbolInfo系に書き換えたいときは、以下の対応表を参考にしてください。</p>
<table>
<thead>
<tr>
<th>MarketInfo (MODE定数)</th>
<th>SymbolInfo系 (プロパティID)</th>
<th>関数</th>
</tr>
</thead>
<tbody>
<tr>
<td>MODE_BID</td>
<td>SYMBOL_BID</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_ASK</td>
<td>SYMBOL_ASK</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_POINT</td>
<td>SYMBOL_POINT</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_DIGITS</td>
<td>SYMBOL_DIGITS</td>
<td>SymbolInfoInteger</td>
</tr>
<tr>
<td>MODE_SPREAD</td>
<td>SYMBOL_SPREAD</td>
<td>SymbolInfoInteger</td>
</tr>
<tr>
<td>MODE_STOPLEVEL</td>
<td>SYMBOL_TRADE_STOPS_LEVEL</td>
<td>SymbolInfoInteger</td>
</tr>
<tr>
<td>MODE_TICKVALUE</td>
<td>SYMBOL_TRADE_TICK_VALUE</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_MINLOT</td>
<td>SYMBOL_VOLUME_MIN</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_LOTSTEP</td>
<td>SYMBOL_VOLUME_STEP</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_MAXLOT</td>
<td>SYMBOL_VOLUME_MAX</td>
<td>SymbolInfoDouble</td>
</tr>
<tr>
<td>MODE_FREEZELEVEL</td>
<td>SYMBOL_TRADE_FREEZE_LEVEL</td>
<td>SymbolInfoInteger</td>
</tr>
</tbody>
</table>
<h2><span id="toc15">実践テクニック</span></h2>
<h3><span id="toc16">①スプレッドフィルター</span></h3>
<p>スプレッドが広がっているときにエントリーを避ける、シンプルなフィルターです。</p>
<pre><code class="language-mql4">// スプレッドが指定pips以上なら取引しない
bool IsSpreadOK(int maxSpreadPoints)
{
    long spread = SymbolInfoInteger(Symbol(), SYMBOL_SPREAD);
    if(spread > maxSpreadPoints)
    {
        PrintFormat("スプレッドが広すぎます: %d > %d", (int)spread, maxSpreadPoints);
        return false;
    }
    return true;
}
</code></pre>
<h3><span id="toc17">②ストップレベルを考慮したSL/TP設定</span></h3>
<p>ブローカーによってはストップレベルが設定されており、現在価格から一定以上離れていないとSL/TPを設定できません。また、<strong>ストップレベルが0を返す場合でも実際にはサーバー側で制限がかかるケース</strong>があるため、最低限のマージンを確保するのがポイントです。</p>
<pre><code class="language-mql4">double GetSafeStopDistance()
{
    long   stopLevel = SymbolInfoInteger(Symbol(), SYMBOL_TRADE_STOPS_LEVEL);
    double point     = SymbolInfoDouble(Symbol(), SYMBOL_POINT);

    // ストップレベルが0の場合でも最低10ポイントは確保
    if(stopLevel < 10)
        stopLevel = 10;

    return stopLevel * point;
}

// 使用例：Buy注文のSL/TPを安全に設定
double safeDistance = GetSafeStopDistance();
double sl = Ask - MathMax(desiredSL, safeDistance);
double tp = Ask + MathMax(desiredTP, safeDistance);
</code></pre>
<h3><span id="toc18">③リスクベースのロット計算</span></h3>
<p>口座残高の一定割合をリスクとして、適切なロット数を計算する関数です。</p>
<pre><code class="language-mql4">double CalcLotSize(double riskPercent, double slPoints)
{
    string sym = Symbol();

    double balance   = AccountBalance();
    double riskMoney = balance * riskPercent / 100.0;

    double tickValue = SymbolInfoDouble(sym, SYMBOL_TRADE_TICK_VALUE);
    double tickSize  = SymbolInfoDouble(sym, SYMBOL_TRADE_TICK_SIZE);
    double point     = SymbolInfoDouble(sym, SYMBOL_POINT);
    double minLot    = SymbolInfoDouble(sym, SYMBOL_VOLUME_MIN);
    double maxLot    = SymbolInfoDouble(sym, SYMBOL_VOLUME_MAX);
    double lotStep   = SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP);

    if(tickValue == 0 || tickSize == 0) return minLot;

    // 1ポイントあたりの価値
    double pointValue = tickValue * (point / tickSize);

    // ロット計算
    double lots = riskMoney / (slPoints * pointValue);

    // ロットステップに丸める
    lots = MathFloor(lots / lotStep) * lotStep;

    // 最小・最大ロットでクランプ
    lots = MathMax(lots, minLot);
    lots = MathMin(lots, maxLot);

    return NormalizeDouble(lots, 2);
}
</code></pre>
<h2><span id="toc19">ストラテジーテスターでの注意点</span></h2>
<p>ストラテジーテスター（バックテスト）では、市場情報の取得に制限があります。</p>
<ul>
<li><strong>他の通貨ペアの情報</strong>：テスト対象以外の通貨ペアのMarketInfoやSymbolInfoは、正しい値が返らないことがあります</li>
<li><strong>TickValueが0になる</strong>：テスト開始直後やクロス通貨ペアで、SYMBOL_TRADE_TICK_VALUEが0を返す場合があります</li>
<li><strong>対処法</strong>：TickValueが0の場合はデフォルト値を使う、またはOnTick()内で値が有効になるまで待つ処理を入れましょう</li>
</ul>
<pre><code class="language-mql4">// テスター対策：TickValueが0なら処理をスキップ
void OnTick()
{
    double tickValue = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_VALUE);
    if(tickValue <= 0)
    {
        Print("TickValueが無効です。次のティックを待ちます。");
        return;
    }

    // 通常のEAロジック
    // ...
}
</code></pre>
<h2><span id="toc20">まとめ</span></h2>
<p>最後に、この記事のポイントを整理します。</p>
<ol>
<li><strong>MarketInfo関数</strong>はMQL4の基本関数で、MODE定数を使って様々な市場情報をdouble型で取得できる</li>
<li><strong>SymbolInfo系関数</strong>（Double/Integer/String）はデータ型に応じた3つの関数に分かれており、型安全に情報を取得できる</li>
<li><strong>MQL5への移行</strong>を見据えるなら、SymbolInfo系関数を使う習慣をつけるのがおすすめ</li>
<li><strong>ストップレベル</strong>は0を返す場合でも最低限のマージンを確保すると安全</li>
<li><strong>TickValue</strong>を使ったロット計算は実践的なEAに不可欠</li>
<li><strong>ストラテジーテスター</strong>では他通貨ペア情報やTickValueが正しく取得できない場合があるため、ガード処理を入れておくことが大切</li>
</ol>
<p>これらの関数を使いこなせるようになると、ブローカーの取引条件に応じた柔軟なEAが作れるようになります。ぜひ実際にコードを書いて、各関数の返り値を確認してみてください！</p>
<p>投稿 <a href="https://mql-programing.com/archives/13062/%e3%80%90mql4%e3%80%91%e5%b8%82%e5%a0%b4%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e8%a7%a3%e8%aa%ac%ef%bc%81marketinfo%e3%83%bbsymbol/">【MQL4】市場情報を取得する関数を完全解説！MarketInfo・SymbolInfoDouble・SymbolInfoInteger・SymbolInfoStringの使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】マーケット情報の定数​（MODE）</title>
		<link>https://mql-programing.com/archives/2043/enum_marketinfo_mode/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 12 Oct 2021 01:39:48 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[MODE]]></category>
		<category><![CDATA[MarketInfo]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=2043</guid>

					<description><![CDATA[<p>マーケット情報の定数​（MODE） マーケット情報の定数は、マーケット情報を取得するときに使用します。 主に、MarketInfo関数で使います。 マーケット情報には、自動売買を作る上で、かなり重要な情報があります。 重 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/2043/enum_marketinfo_mode/">【MQL4定数】マーケット情報の定数​（MODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">マーケット情報の定数​（MODE）</span></h2>



<p class="wp-block-paragraph">マーケット情報の定数は、マーケット情報を取得するときに使用します。</p>



<p class="wp-block-paragraph"><strong>主に、MarketInfo</strong>関数で使います。</p>



<p class="wp-block-paragraph">マーケット情報には、自動売買を作る上で、かなり重要な情報があります。</p>



<p class="wp-block-paragraph">重要な情報を取得するテンプレートを作っておくと良いでしょう。</p>



<p class="wp-block-paragraph">　</p>



<p class="wp-block-paragraph">それぞれ、MarketInfo関数の<strong><span class="marker-under-red">type引数の入力値</span></strong>として、マーケット情報の定数を使うことができます。</p>



<p class="wp-block-paragraph">　</p>



<h3 class="wp-block-heading"><span id="toc2">マーケット情報の定数​（MODE）</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>説明</strong></td></tr><tr><td>MODE_LOW</td><td>当日の安値</td></tr><tr><td>MODE_HIGH</td><td>当日の高値</td></tr><tr><td>MODE_TIME</td><td>最新のサーバー時間</td></tr><tr><td>MODE_BID</td><td>最新の売値</td></tr><tr><td>MODE_ASK</td><td>最新の買値</td></tr><tr><td>MODE_POINT</td><td>通貨ペアのポイント</td></tr><tr><td>MODE_DIGITS</td><td>通貨ペアの小数点桁数</td></tr><tr><td>MODE_SPREAD</td><td>通貨ペアのスプレッド（0.1pips単位）</td></tr><tr><td>MODE_STOPLEVEL</td><td>通貨ペアのストップレベル（0.1pips単位）</td></tr><tr><td>MODE_LOTSIZE</td><td>1ロットあたりの通貨数</td></tr><tr><td>MODE_TICKVALUE</td><td>通貨ペアのポイント</td></tr><tr><td>MODE_TICKSIZE</td><td>通貨ペアのtick値（pips単位）</td></tr><tr><td>MODE_SWAPLONG</td><td>通貨ペアの買いスワップ</td></tr><tr><td>MODE_SWAPSHORT</td><td>通貨ペアの売りスワップ</td></tr><tr><td>MODE_STARTING</td><td>マーケット開始日</td></tr><tr><td>MODE_EXPIRATION</td><td>マーケット期日</td></tr><tr><td>MODE_TRADEALLOWED</td><td>トレード可能な通貨ペア</td></tr><tr><td>MODE_MINLOT</td><td>最小ロット数</td></tr><tr><td>MODE_LOTSTEP</td><td>ロットステップ</td></tr><tr><td>MODE_MAXLOT</td><td>最大ロット数</td></tr><tr><td>MODE_SWAPTYPE</td><td>スワップの計算方法<br>0:FX, 1:CFD, 2:先物, 3:CFDインデックス</td></tr><tr><td>MODE_PROFITCALCMODE</td><td>損益計算モード<br>0:FX, 1:CFD, 2:先物</td></tr><tr><td>MODE_MARGINCALCMODE</td><td>証拠金計算モード<br>0:FX, 1:CFD, 2:先物, 3:CFDインデックス</td></tr><tr><td>MODE_MARGININIT</td><td>1ロットの初期証拠金</td></tr><tr><td>MODE_MARGINMAINTENANCE</td><td>1ロットの初期証拠金(計算モード)</td></tr><tr><td>MODE_MARGINHEDGED</td><td>1ロットの必要証拠金</td></tr><tr><td>MODE_MARGINREQUIRED</td><td>1ロットの余剰証拠金</td></tr><tr><td>MODE_FREEZELEVEL</td><td>注文凍結レベル（pips単位）</td></tr><tr><td>MODE_CLOSEBY_ALLOWED</td><td>両建て同時決済の可否</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">　</p>



<h2 class="wp-block-heading"><span id="toc3">マーケット情報の定数​（MODE）の使い方</span></h2>



<p class="wp-block-paragraph">主に、MarketInfo関数で使います。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">それぞれ、MarketInfo関数のtype引数の入力値として、マーケット情報の定数を使うことができます。</span></strong></p>



<p class="wp-block-paragraph">上記の定数を入力しましょう。</p>



<p class="wp-block-paragraph">すると、その定数に対応したマーケット情報を取得することができます。</p>



<p class="wp-block-paragraph">例えば、以下のように使用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>  //MarketInfo関数
  //最大ロット数を取得する
   double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);</code></pre></div>



<p class="wp-block-paragraph">　</p>



<h2 class="wp-block-heading"><span id="toc4">プログラム例：主要なマーケット情報を一括取得する</span></h2>



<p class="wp-block-paragraph">以下は、MarketInfo関数とマーケット情報の定数を使って、主要なマーケット情報をまとめて取得・表示するサンプルプログラムです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="MQL4"><code>//+------------------------------------------------------------------+
//| マーケット情報取得スクリプト                                       |
//+------------------------------------------------------------------+
void OnStart()
{
   string sym = Symbol(); // 現在の通貨ペア

   // 価格情報
   double bid       = MarketInfo(sym, MODE_BID);
   double ask       = MarketInfo(sym, MODE_ASK);
   double high      = MarketInfo(sym, MODE_HIGH);
   double low       = MarketInfo(sym, MODE_LOW);

   // 通貨ペアの基本情報
   double point     = MarketInfo(sym, MODE_POINT);
   int    digits    = (int)MarketInfo(sym, MODE_DIGITS);
   double spread    = MarketInfo(sym, MODE_SPREAD);
   double stopLevel = MarketInfo(sym, MODE_STOPLEVEL);

   // ロット関連情報
   double lotSize   = MarketInfo(sym, MODE_LOTSIZE);
   double minLot    = MarketInfo(sym, MODE_MINLOT);
   double maxLot    = MarketInfo(sym, MODE_MAXLOT);
   double lotStep   = MarketInfo(sym, MODE_LOTSTEP);

   // スワップ情報
   double swapLong  = MarketInfo(sym, MODE_SWAPLONG);
   double swapShort = MarketInfo(sym, MODE_SWAPSHORT);

   // 証拠金情報
   double marginReq = MarketInfo(sym, MODE_MARGINREQUIRED);
   double freezeLvl = MarketInfo(sym, MODE_FREEZELEVEL);

   // tick情報
   double tickValue = MarketInfo(sym, MODE_TICKVALUE);
   double tickSize  = MarketInfo(sym, MODE_TICKSIZE);

   // トレード可否
   double tradeOK   = MarketInfo(sym, MODE_TRADEALLOWED);

   // ログ出力
   Print("========== マーケット情報 [", sym, "] ==========");
   Print("【価格情報】");
   Print("  Bid（売値）       : ", DoubleToStr(bid, digits));
   Print("  Ask（買値）       : ", DoubleToStr(ask, digits));
   Print("  当日高値          : ", DoubleToStr(high, digits));
   Print("  当日安値          : ", DoubleToStr(low, digits));

   Print("【通貨ペア基本情報】");
   Print("  ポイント          : ", DoubleToStr(point, digits));
   Print("  小数点桁数        : ", digits);
   Print("  スプレッド        : ", spread, "（0.1pips単位）");
   Print("  ストップレベル    : ", stopLevel, "（0.1pips単位）");

   Print("【ロット関連】");
   Print("  1ロットの通貨数   : ", lotSize);
   Print("  最小ロット        : ", minLot);
   Print("  最大ロット        : ", maxLot);
   Print("  ロットステップ    : ", lotStep);

   Print("【スワップ情報】");
   Print("  買いスワップ      : ", swapLong);
   Print("  売りスワップ      : ", swapShort);

   Print("【証拠金・その他】");
   Print("  1ロット必要証拠金  : ", marginReq);
   Print("  注文凍結レベル    : ", freezeLvl);
   Print("  Tick値            : ", tickValue);
   Print("  Tickサイズ        : ", DoubleToStr(tickSize, digits));
   Print("  トレード可否      : ", (tradeOK == 1) ? "可能" : "不可");
   Print("==============================================");
}</code></pre></div>



<p class="wp-block-paragraph">　</p>



<p class="wp-block-paragraph">このスクリプトを実行すると、エキスパートタブに現在の通貨ペアの主要なマーケット情報が一覧で表示されます。</p>



<p class="wp-block-paragraph">自動売買を開発する際に、ロット計算やストップレベルの確認などで頻繁に使用する情報ばかりですので、テンプレートとして活用してください。</p>



<p class="wp-block-paragraph">　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/sample_program/" class="btn btn-l btn-circle" target="_self">サンプルプログラムはこちら</a></div>



<p class="wp-block-paragraph">　</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/enum/" title="【MQLプログラミング基礎】列挙型とは？配列との違いを理解して使いこなそう！" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/enum.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQLプログラミング基礎】列挙型とは？配列との違いを理解して使いこなそう！</div><div class="blogcard-snippet external-blogcard-snippet">目次 列挙型とは？列挙型と配列の違い列挙型と配列のデータの取り出し方法の違い列挙型と配列のデータの取り出し方法のまとめ列挙型の構造と使い方列挙型の構造列挙型の使い方列挙型はどこで使われているのか列挙型のプログラム例まとめ</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/1399/enum/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/make_autotrade_by_myself/" title="【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/09/make_autotrade_by_myself.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり</div><div class="blogcard-snippet external-blogcard-snippet">目次 はじめにFX自動売買とはFX自動売買を作るための準備FX自動売買の作り方口座凍結の対策をするプログラムテンプレートを作る決済ロジックをプログラミングするプログラムテンプレートを作るエントリーロジックをプログラミング</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/1605/make_autotrade_by_myself/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/mql-reference/" title="MQL4リファレンス【全データ一覧】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg 160w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-300x169.jpg 300w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-1024x576.jpg 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-768x432.jpg 768w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-120x68.jpg 120w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-320x180.jpg 320w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス.jpg 1120w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">MQL4リファレンス【全データ一覧】</div><div class="blogcard-snippet internal-blogcard-snippet">/*! elementor - v3.6.5 - 27-04-2022 */.e-container.e-container--row .elementor-spacer-inner{width:var(--spacer-size)}.e-</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph">　</p>
<p>投稿 <a href="https://mql-programing.com/archives/2043/enum_marketinfo_mode/">【MQL4定数】マーケット情報の定数​（MODE）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
