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

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>ObjectCreate アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/objectcreate/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4】ENUM_OBJECTとは？オブジェクトタイプ定数の全種類一覧と使い方をわかりやすく解説</title>
		<link>https://mql-programing.com/archives/13080/%e3%80%90mql4%e3%80%91enum_object%e3%81%a8%e3%81%af%ef%bc%9f%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%bf%e3%82%a4%e3%83%97%e5%ae%9a%e6%95%b0%e3%81%ae%e5%85%a8%e7%a8%ae%e9%a1%9e/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[ObjectCreate]]></category>
		<category><![CDATA[ENUM_OBJECT]]></category>
		<category><![CDATA[MQL4]]></category>
		<category><![CDATA[オブジェクト]]></category>
		<category><![CDATA[チャート描画]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13080</guid>

					<description><![CDATA[<p>MQL4でチャート上にラインや矢印、テキストなどのグラフィカルオブジェクトを描画するとき、必ず登場するのがENUM_OBJECTという列挙型です。 ObjectCreate関数の第2引数には、このENUM_OBJECTの [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13080/%e3%80%90mql4%e3%80%91enum_object%e3%81%a8%e3%81%af%ef%bc%9f%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%bf%e3%82%a4%e3%83%97%e5%ae%9a%e6%95%b0%e3%81%ae%e5%85%a8%e7%a8%ae%e9%a1%9e/">【MQL4】ENUM_OBJECTとは？オブジェクトタイプ定数の全種類一覧と使い方をわかりやすく解説</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>MQL4でチャート上にラインや矢印、テキストなどのグラフィカルオブジェクトを描画するとき、必ず登場するのが<strong>ENUM_OBJECT</strong>という列挙型です。</p>
<p>ObjectCreate関数の第2引数には、このENUM_OBJECTの値を指定して「どの種類のオブジェクトを作るか」を決定します。しかし、オブジェクトタイプは約44種類もあり、「どんな種類があるの？」「どう使い分けるの？」と迷う方も多いのではないでしょうか。</p>
<p>この記事では、<strong>ENUM_OBJECTの全種類を一覧表で整理</strong>し、よく使うオブジェクトの実践的なコードサンプルもあわせて解説します。</p>
<h2><span id="toc1">ENUM_OBJECTとは？</span></h2>
<p><strong>ENUM_OBJECT</strong>は、MQL4で定義されている列挙型（enum）の一つで、チャート上に作成できるグラフィカルオブジェクトの種類を表す定数をまとめたものです。</p>
<p>オブジェクトを作成する<code>ObjectCreate</code>関数のシグネチャは以下のようになっています。</p>
<pre><code class="language-mql4">bool ObjectCreate(
   long         chart_id,   // チャートID（0=現在のチャート）
   string       name,       // オブジェクト名（一意の名前）
   ENUM_OBJECT  type,       // オブジェクトタイプ
   int          sub_window, // サブウィンドウ番号（0=メインウィンドウ）
   datetime     time1,      // 1つ目のアンカーポイントの時刻
   double       price1,     // 1つ目のアンカーポイントの価格
   ...                      // 必要に応じて追加のアンカーポイント
);
</code></pre>
<p>第3引数の<code>type</code>に<strong>ENUM_OBJECTの定数値</strong>を指定することで、水平線・トレンドライン・矢印・テキストラベルなど、目的に合ったオブジェクトを作成できます。</p>
<h2><span id="toc2">全オブジェクトタイプ一覧（カテゴリ別）</span></h2>
<p>ENUM_OBJECTに含まれるオブジェクトタイプを、カテゴリ別に整理しました。</p>
<h3><span id="toc3">ライン系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_VLINE</td>
<td>垂直線</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_HLINE</td>
<td>水平線</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_TREND</td>
<td>トレンドライン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_TRENDBYANGLE</td>
<td>角度によるトレンドライン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_CYCLES</td>
<td>サイクルライン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_ARROWED_LINE</td>
<td>矢印付きライン</td>
<td>2</td>
</tr>
</tbody>
</table>
<h3><span id="toc4">チャネル系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_CHANNEL</td>
<td>等距離チャネル</td>
<td>3</td>
</tr>
<tr>
<td>OBJ_STDDEVCHANNEL</td>
<td>標準偏差チャネル</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_REGRESSION</td>
<td>線形回帰チャネル</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_PITCHFORK</td>
<td>アンドリューズ・ピッチフォーク</td>
<td>3</td>
</tr>
</tbody>
</table>
<h3><span id="toc5">ギャン系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_GANNLINE</td>
<td>ギャンライン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_GANNFAN</td>
<td>ギャンファン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_GANNGRID</td>
<td>ギャングリッド</td>
<td>2</td>
</tr>
</tbody>
</table>
<h3><span id="toc6">フィボナッチ系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_FIBO</td>
<td>フィボナッチ・リトレースメント</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_FIBOTIMES</td>
<td>フィボナッチ・タイムゾーン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_FIBOFAN</td>
<td>フィボナッチ・ファン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_FIBOARC</td>
<td>フィボナッチ・アーク</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_FIBOCHANNEL</td>
<td>フィボナッチ・チャネル</td>
<td>3</td>
</tr>
<tr>
<td>OBJ_EXPANSION</td>
<td>フィボナッチ・エクスパンション</td>
<td>3</td>
</tr>
</tbody>
</table>
<h3><span id="toc7">エリオット波動系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_ELLIOTWAVE5</td>
<td>エリオット推進波（5波）</td>
<td>5</td>
</tr>
<tr>
<td>OBJ_ELLIOTWAVE3</td>
<td>エリオット修正波（3波）</td>
<td>3</td>
</tr>
</tbody>
</table>
<h3><span id="toc8">図形系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_RECTANGLE</td>
<td>長方形</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_TRIANGLE</td>
<td>三角形</td>
<td>3</td>
</tr>
<tr>
<td>OBJ_ELLIPSE</td>
<td>楕円</td>
<td>3</td>
</tr>
</tbody>
</table>
<h3><span id="toc9">矢印・マーカー系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカー数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_ARROW</td>
<td>矢印（任意のWingdingsコード指定可）</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_THUMB_UP</td>
<td>サムズアップ</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_THUMB_DOWN</td>
<td>サムズダウン</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_UP</td>
<td>上向き矢印</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_DOWN</td>
<td>下向き矢印</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_STOP</td>
<td>ストップサイン</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_CHECK</td>
<td>チェックマーク</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_LEFT_PRICE</td>
<td>左向き価格ラベル</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_RIGHT_PRICE</td>
<td>右向き価格ラベル</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_BUY</td>
<td>買いサイン</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW_SELL</td>
<td>売りサイン</td>
<td>1</td>
</tr>
</tbody>
</table>
<h3><span id="toc10">テキスト・GUI系オブジェクト</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; width:100%; max-width:720px;">
<thead>
<tr style="background:#f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>配置基準</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_TEXT</td>
<td>テキスト（チャート座標に固定）</td>
<td>時刻・価格</td>
</tr>
<tr>
<td>OBJ_LABEL</td>
<td>テキストラベル（ピクセル座標に固定）</td>
<td>X・Y座標</td>
</tr>
<tr>
<td>OBJ_BUTTON</td>
<td>ボタン</td>
<td>X・Y座標</td>
</tr>
<tr>
<td>OBJ_EDIT</td>
<td>入力フィールド</td>
<td>X・Y座標</td>
</tr>
<tr>
<td>OBJ_RECTANGLE_LABEL</td>
<td>矩形ラベル（パネル背景など）</td>
<td>X・Y座標</td>
</tr>
<tr>
<td>OBJ_BITMAP</td>
<td>ビットマップ画像（チャート座標）</td>
<td>時刻・価格</td>
</tr>
<tr>
<td>OBJ_BITMAP_LABEL</td>
<td>ビットマップラベル（ピクセル座標）</td>
<td>X・Y座標</td>
</tr>
<tr>
<td>OBJ_EVENT</td>
<td>イベントオブジェクト</td>
<td>時刻</td>
</tr>
</tbody>
</table>
<p>※ アンカー数とは、ObjectCreate関数で指定が必要な座標ポイントの数です。たとえばトレンドラインは始点と終点の2つが必要です。</p>
<h2><span id="toc11">よく使うオブジェクトの実践コード</span></h2>
<p>ここからは、EA開発やインジケーター作成でよく使うオブジェクトタイプを5つ取り上げ、実際のコードとともに解説します。</p>
<h3><span id="toc12">①水平線（OBJ_HLINE）を描画する</span></h3>
<p>水平線は特定の価格レベルにラインを引くオブジェクトです。サポート・レジスタンスラインの表示などに使います。アンカーポイントは<strong>price1のみ</strong>で、time1は意味を持ちませんが、引数として0を渡します。</p>
<pre><code class="language-mql4">void DrawHLine(string name, double price, color clr)
{
   // すでに同名のオブジェクトがあれば削除
   if(ObjectFind(0, name) >= 0)
      ObjectDelete(0, name);

   // 水平線を作成（time1は0でOK、price1に価格を指定）
   ObjectCreate(0, name, OBJ_HLINE, 0, 0, price);

   // 色を設定
   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
   // 線のスタイルを点線に
   ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_DASH);
   // 線の太さ
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 1);
}

// 使用例：現在の価格に赤い水平線を描画
void OnStart()
{
   DrawHLine("SupportLine", Ask - 50 * _Point, clrRed);
}
</code></pre>
<h3><span id="toc13">②垂直線（OBJ_VLINE）を描画する</span></h3>
<p>垂直線は特定の時刻に縦のラインを引くオブジェクトです。セッション区切りや重要なイベント時刻の表示に使います。アンカーポイントは<strong>time1のみ</strong>で、price1は0を渡します。</p>
<pre><code class="language-mql4">void DrawVLine(string name, datetime time, color clr)
{
   if(ObjectFind(0, name) >= 0)
      ObjectDelete(0, name);

   // 垂直線を作成（time1に時刻を指定、price1は0でOK）
   ObjectCreate(0, name, OBJ_VLINE, 0, time, 0);

   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
   ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_DOT);
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 1);
}

// 使用例：現在の足の時刻に青い垂直線を描画
void OnStart()
{
   DrawVLine("EventLine", TimeCurrent(), clrBlue);
}
</code></pre>
<h3><span id="toc14">③矢印マーカー（OBJ_ARROW）を表示する</span></h3>
<p>OBJ_ARROWは、Wingdingsフォントの文字コードを使って任意のアイコンを表示できる汎用的な矢印オブジェクトです。<code>OBJPROP_ARROWCODE</code>プロパティでアイコンの種類を変更できます。</p>
<pre><code class="language-mql4">void DrawArrow(string name, datetime time, double price, int arrowCode, color clr)
{
   if(ObjectFind(0, name) >= 0)
      ObjectDelete(0, name);

   // 矢印オブジェクトを作成
   ObjectCreate(0, name, OBJ_ARROW, 0, time, price);

   // 矢印コードを設定（例: 233=上矢印, 234=下矢印）
   ObjectSetInteger(0, name, OBJPROP_ARROWCODE, arrowCode);
   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
   // 矢印のサイズ
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);
}

// 使用例：現在の足に上向き矢印を表示
void OnStart()
{
   DrawArrow("BuySignal", Time[0], Low[0] - 10 * _Point, 233, clrLime);
}
</code></pre>
<p>よく使われるWingdingsコードの例：233（上向き矢印）、234（下向き矢印）、159（大きな丸）、161（チェックマーク）などがあります。</p>
<h3><span id="toc15">④トレンドライン（OBJ_TREND）を描画する</span></h3>
<p>トレンドラインは2つのアンカーポイント（始点と終点）を結ぶ直線です。デフォルトでは右方向に延長されるため、延長が不要な場合は<code>OBJPROP_RAY_RIGHT</code>をfalseに設定します。</p>
<pre><code class="language-mql4">void DrawTrendLine(string name, datetime time1, double price1,
                   datetime time2, double price2, color clr)
{
   if(ObjectFind(0, name) >= 0)
      ObjectDelete(0, name);

   // 2点を指定してトレンドラインを作成
   ObjectCreate(0, name, OBJ_TREND, 0, time1, price1, time2, price2);

   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);
   // 右方向への延長をオフにする
   ObjectSetInteger(0, name, OBJPROP_RAY_RIGHT, false);
}

// 使用例：5本前の安値から現在の安値へトレンドラインを描画
void OnStart()
{
   DrawTrendLine("MyTrend",
                 Time[5], Low[5],
                 Time[0], Low[0],
                 clrOrangeRed);
}
</code></pre>
<h3><span id="toc16">⑤テキストラベル（OBJ_LABEL）をチャート隅に配置する</span></h3>
<p>OBJ_LABELはピクセル座標ベースのテキストオブジェクトです。チャートをスクロールしても位置が固定されるため、情報パネルやステータス表示に最適です。<code>OBJPROP_CORNER</code>で基準コーナーを、<code>OBJPROP_XDISTANCE</code>と<code>OBJPROP_YDISTANCE</code>で位置を調整します。</p>
<pre><code class="language-mql4">void DrawLabel(string name, string text, int corner, int x, int y,
               color clr, int fontSize)
{
   if(ObjectFind(0, name) >= 0)
      ObjectDelete(0, name);

   // ラベルオブジェクトを作成（time/priceは不要なので0）
   ObjectCreate(0, name, OBJ_LABEL, 0, 0, 0);

   // 基準コーナーを設定
   // CORNER_LEFT_UPPER=0, CORNER_RIGHT_UPPER=1
   // CORNER_LEFT_LOWER=2, CORNER_RIGHT_LOWER=3
   ObjectSetInteger(0, name, OBJPROP_CORNER, corner);

   // コーナーからの距離（ピクセル）
   ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
   ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);

   // テキスト内容とフォント
   ObjectSetString(0, name, OBJPROP_TEXT, text);
   ObjectSetString(0, name, OBJPROP_FONT, "Arial Bold");
   ObjectSetInteger(0, name, OBJPROP_FONTSIZE, fontSize);
   ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
}

// 使用例：左上にスプレッド情報を表示
void OnStart()
{
   int spread = (int)MarketInfo(Symbol(), MODE_SPREAD);
   string text = "Spread: " + IntegerToString(spread) + " pts";
   DrawLabel("SpreadLabel", text, CORNER_LEFT_UPPER, 20, 30, clrWhite, 12);
}
</code></pre>
<h2><span id="toc17">ObjectCreate使用時の注意点</span></h2>
<p>オブジェクトを使う際に知っておくべきポイントをまとめます。</p>
<h3><span id="toc18">オブジェクト名のルール</span></h3>
<ul>
<li><strong>最大63文字</strong>まで指定できます。</li>
<li><strong>ラテン文字（英数字）の使用が推奨</strong>されています。日本語文字を使うと環境によって文字化けする可能性があります。</li>
<li>同じチャート上で<strong>オブジェクト名は一意</strong>でなければなりません。</li>
</ul>
<h3><span id="toc19">同名オブジェクトが既に存在する場合</span></h3>
<p>ObjectCreate関数は、同名のオブジェクトがすでに存在する場合、<strong>新規作成はせず、既存オブジェクトの座標を変更しようとします</strong>。この場合、関数はfalseを返しますが、エラーではなく座標の更新が行われることがあります。</p>
<p>意図しない動作を防ぐために、作成前に<code>ObjectFind</code>で存在確認し、必要に応じて<code>ObjectDelete</code>で削除してから作成するのが安全です。</p>
<h3><span id="toc20">オブジェクトの後片付け</span></h3>
<p>EA終了時やインジケーター削除時には、作成したオブジェクトを削除するようにしましょう。<code>OnDeinit</code>関数内で処理するのが一般的です。</p>
<pre><code class="language-mql4">void OnDeinit(const int reason)
{
   // プレフィックスが "My_" のオブジェクトをすべて削除
   ObjectsDeleteAll(0, "My_");
}
</code></pre>
<p>オブジェクト名にプレフィックス（接頭辞）を付けておくと、<code>ObjectsDeleteAll</code>の第2引数にそのプレフィックスを指定するだけで一括削除できるので便利です。</p>
<h3><span id="toc21">OBJ_TEXT と OBJ_LABEL の違い</span></h3>
<p><strong>OBJ_TEXT</strong>はチャートの時刻・価格座標に固定されるため、チャートをスクロールするとテキストも一緒に動きます。一方、<strong>OBJ_LABEL</strong>はチャートウィンドウのピクセル座標に固定されるため、スクロールしても常に同じ位置に表示されます。常時表示したい情報にはOBJ_LABELを使いましょう。</p>
<h2><span id="toc22">まとめ</span></h2>
<p>この記事では、MQL4の<strong>ENUM_OBJECT</strong>列挙型について、基本的な概念から全種類の一覧、そして実践的なコードサンプルまでを解説しました。</p>
<ul>
<li><strong>ENUM_OBJECT</strong>は、ObjectCreate関数でオブジェクトの種類を指定するための列挙型</li>
<li>ライン系・チャネル系・フィボナッチ系・矢印系・テキスト系など、<strong>約44種類</strong>のオブジェクトタイプがある</li>
<li><strong>OBJ_HLINE</strong>（水平線）と<strong>OBJ_VLINE</strong>（垂直線）はアンカーポイントが1つだけ</li>
<li><strong>OBJ_ARROW</strong>はWingdingsコードで様々なアイコンを表示可能</li>
<li><strong>OBJ_LABEL</strong>はピクセル座標固定で、情報パネルの作成に最適</li>
<li>オブジェクト名は<strong>63文字以内のラテン文字</strong>を推奨。プレフィックスを付けて管理すると後片付けが楽になる</li>
</ul>
<p>まずは水平線やラベルなど、シンプルなオブジェクトから試してみてください。チャート上にカスタム表示を加えることで、EAやインジケーターの使い勝手が大きく向上します。</p>
<p>投稿 <a href="https://mql-programing.com/archives/13080/%e3%80%90mql4%e3%80%91enum_object%e3%81%a8%e3%81%af%ef%bc%9f%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%82%bf%e3%82%a4%e3%83%97%e5%ae%9a%e6%95%b0%e3%81%ae%e5%85%a8%e7%a8%ae%e9%a1%9e/">【MQL4】ENUM_OBJECTとは？オブジェクトタイプ定数の全種類一覧と使い方をわかりやすく解説</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4入門】チャートオブジェクト関数を完全攻略！ObjectCreate・ObjectDelete・ObjectSetの使い方</title>
		<link>https://mql-programing.com/archives/13059/%e3%80%90mql4%e5%85%a5%e9%96%80%e3%80%91%e3%83%81%e3%83%a3%e3%83%bc%e3%83%88%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e6%94%bb%e7%95%a5/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 01:00:00 +0000</pubDate>
				<category><![CDATA[【初級編】MQLプログラミング基礎]]></category>
		<category><![CDATA[チャートオブジェクト]]></category>
		<category><![CDATA[ObjectDelete]]></category>
		<category><![CDATA[オブジェクト関数]]></category>
		<category><![CDATA[ObjectCreate]]></category>
		<category><![CDATA[MQL4]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=13059</guid>

					<description><![CDATA[<p>MQL4でEAやインジケーターを開発していると、「チャート上に水平線を引きたい」「テキストラベルで情報を表示したい」という場面が必ず出てきます。こうしたチャート上の描画を担うのがチャートオブジェクト関数です。 この記事で [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/13059/%e3%80%90mql4%e5%85%a5%e9%96%80%e3%80%91%e3%83%81%e3%83%a3%e3%83%bc%e3%83%88%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e6%94%bb%e7%95%a5/">【MQL4入門】チャートオブジェクト関数を完全攻略！ObjectCreate・ObjectDelete・ObjectSetの使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<p>MQL4でEAやインジケーターを開発していると、「チャート上に水平線を引きたい」「テキストラベルで情報を表示したい」という場面が必ず出てきます。こうしたチャート上の描画を担うのが<strong>チャートオブジェクト関数</strong>です。</p>
<p>この記事では、<strong>ObjectCreate</strong>・<strong>ObjectDelete</strong>・<strong>ObjectSetInteger</strong>・<strong>ObjectSetDouble</strong>・<strong>ObjectSetString</strong>といった主要関数の使い方を、実践的なコードサンプルとともに徹底解説します。最後には情報パネルを表示するインジケーターの完全コードも用意していますので、ぜひ最後までお読みください。</p>
<h2><span id="toc1">チャートオブジェクト関数とは？</span></h2>
<p>チャートオブジェクト関数とは、MetaTrader 4のチャート上にライン・図形・テキストなどの「オブジェクト」をプログラムから作成・変更・削除するための関数群です。</p>
<p>手動でチャートに水平線やトレンドラインを描くのと同じことを、MQL4のコードから自動的に行えるようになります。EAでエントリーポイントにマークを付けたり、インジケーターで情報パネルを表示したりと、用途は非常に幅広いです。</p>
<h2><span id="toc2">ObjectCreate — オブジェクトを作成する</span></h2>
<p><code>ObjectCreate</code>関数は、チャート上に新しいオブジェクトを作成するための関数です。基本的な書式は以下のとおりです。</p>
<pre><code class="language-mql4">bool ObjectCreate(
    string name,       // オブジェクト名（一意な名前を付ける）
    int    type,       // オブジェクトの種類（ENUM_OBJECT）
    int    sub_window, // サブウィンドウ番号（0=メインチャート）
    datetime time1,    // 第1アンカーポイントの時刻
    double   price1,   // 第1アンカーポイントの価格
    ...                // 必要に応じて第2、第3アンカーポイント
);
</code></pre>
<h3><span id="toc3">主なオブジェクト種類（ENUM_OBJECT）一覧</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse: collapse; width: 100%;">
<thead>
<tr style="background-color: #f0f0f0;">
<th>定数名</th>
<th>説明</th>
<th>アンカーポイント数</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJ_HLINE</td>
<td>水平線</td>
<td>1（価格のみ）</td>
</tr>
<tr>
<td>OBJ_VLINE</td>
<td>垂直線</td>
<td>1（時刻のみ）</td>
</tr>
<tr>
<td>OBJ_TREND</td>
<td>トレンドライン</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_RECTANGLE</td>
<td>四角形</td>
<td>2</td>
</tr>
<tr>
<td>OBJ_LABEL</td>
<td>テキストラベル（座標指定）</td>
<td>0（ピクセル座標）</td>
</tr>
<tr>
<td>OBJ_TEXT</td>
<td>テキスト（チャート上）</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_ARROW</td>
<td>矢印マーク</td>
<td>1</td>
</tr>
<tr>
<td>OBJ_RECTANGLE_LABEL</td>
<td>四角形ラベル（背景パネル用）</td>
<td>0（ピクセル座標）</td>
</tr>
</tbody>
</table>
<h3><span id="toc4">水平線を作成するサンプル</span></h3>
<p>最もシンプルな例として、現在の価格に水平線を引いてみましょう。</p>
<pre><code class="language-mql4">void CreateHLine()
{
    string name = "MyHLine";
    double price = Ask;

    // 既に同名のオブジェクトがあれば削除
    if(ObjectFind(name) >= 0)
        ObjectDelete(name);

    // 水平線を作成
    ObjectCreate(name, OBJ_HLINE, 0, 0, price);

    // 色を赤に設定
    ObjectSetInteger(0, name, OBJPROP_COLOR, clrRed);

    // チャートを再描画して反映
    ChartRedraw();
}
</code></pre>
<p><code>ObjectCreate</code>は成功すると<code>true</code>、失敗すると<code>false</code>を返します。同じ名前のオブジェクトが既に存在する場合は失敗するため、事前に<code>ObjectFind</code>で確認するか、先に削除しておくのがポイントです。</p>
<h2><span id="toc5">ObjectDelete — オブジェクトを削除する</span></h2>
<p><code>ObjectDelete</code>関数でチャート上のオブジェクトを削除できます。</p>
<pre><code class="language-mql4">// 名前を指定して削除
bool ObjectDelete(string name);

// チャートIDを指定して削除（MQL4でも使用可能）
bool ObjectDelete(long chart_id, string name);
</code></pre>
<h3><span id="toc6">使用例：オブジェクトの削除</span></h3>
<pre><code class="language-mql4">void RemoveMyObjects()
{
    ObjectDelete("MyHLine");
    ObjectDelete("MyLabel");
    ChartRedraw();
}
</code></pre>
<h3><span id="toc7">&#x26a0;&#xfe0f; OnDeinitでの注意点</span></h3>
<p><strong>ObjectDelete関数は非同期で実行されます。</strong>つまり、関数を呼び出した瞬間に削除が完了するとは限りません。特に<code>OnDeinit</code>関数内で呼び出す場合、処理が即座に反映されないことがあります。</p>
<p>確実にオブジェクトを削除したい場合は、<code>ObjectsDeleteAll</code>関数を使うか、<code>ObjectDelete</code>の後に<code>ChartRedraw</code>を呼ぶようにしましょう。</p>
<pre><code class="language-mql4">void OnDeinit(const int reason)
{
    // プレフィックスが一致するオブジェクトを一括削除
    ObjectsDeleteAll(0, "MyPrefix_");
    ChartRedraw();
}
</code></pre>
<p><code>ObjectsDeleteAll</code>の第2引数にプレフィックス（接頭辞）を指定すると、その文字列で始まる名前のオブジェクトだけを一括削除できます。自作オブジェクトに統一のプレフィックスを付ける習慣を身につけると、管理がとても楽になります。</p>
<h2><span id="toc8">ObjectSetInteger — 整数プロパティを設定する</span></h2>
<p><code>ObjectSetInteger</code>関数は、オブジェクトの色・線種・太さなどの整数型プロパティを変更します。</p>
<h3><span id="toc9">よく使うプロパティ一覧</span></h3>
<table border="1" cellpadding="6" cellspacing="0" style="border-collapse: collapse; width: 100%;">
<thead>
<tr style="background-color: #f0f0f0;">
<th>プロパティ定数</th>
<th>説明</th>
<th>設定値の例</th>
</tr>
</thead>
<tbody>
<tr>
<td>OBJPROP_COLOR</td>
<td>オブジェクトの色</td>
<td>clrRed, clrBlue</td>
</tr>
<tr>
<td>OBJPROP_STYLE</td>
<td>線のスタイル</td>
<td>STYLE_SOLID, STYLE_DASH, STYLE_DOT</td>
</tr>
<tr>
<td>OBJPROP_WIDTH</td>
<td>線の太さ</td>
<td>1, 2, 3&#8230;</td>
</tr>
<tr>
<td>OBJPROP_SELECTABLE</td>
<td>ユーザーが選択可能か</td>
<td>true / false</td>
</tr>
<tr>
<td>OBJPROP_HIDDEN</td>
<td>オブジェクトリストに非表示</td>
<td>true / false</td>
</tr>
<tr>
<td>OBJPROP_XDISTANCE</td>
<td>X座標（ピクセル）</td>
<td>10, 20&#8230;</td>
</tr>
<tr>
<td>OBJPROP_YDISTANCE</td>
<td>Y座標（ピクセル）</td>
<td>10, 20&#8230;</td>
</tr>
<tr>
<td>OBJPROP_CORNER</td>
<td>基準コーナー</td>
<td>CORNER_LEFT_UPPER など</td>
</tr>
</tbody>
</table>
<h3><span id="toc10">プロパティ設定のサンプル</span></h3>
<pre><code class="language-mql4">void StyleHLine(string name)
{
    // 色を青に変更
    ObjectSetInteger(0, name, OBJPROP_COLOR, clrDodgerBlue);

    // 破線スタイルに変更
    ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_DASH);

    // 線の太さを2に変更
    ObjectSetInteger(0, name, OBJPROP_WIDTH, 2);

    // ユーザーが選択できないようにする
    ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);

    // オブジェクトリストに表示しない
    ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);

    ChartRedraw();
}
</code></pre>
<p><code>OBJPROP_SELECTABLE</code>と<code>OBJPROP_HIDDEN</code>を設定しておくと、ユーザーが誤ってオブジェクトを移動・削除してしまうのを防げます。EA・インジケーターで自動生成するオブジェクトには、これらを設定しておくのがおすすめです。</p>
<h2><span id="toc11">ObjectSetDouble / ObjectGetDouble — 実数プロパティの設定と取得</span></h2>
<p><code>ObjectSetDouble</code>で価格などのdouble型プロパティを設定し、<code>ObjectGetDouble</code>で取得できます。</p>
<pre><code class="language-mql4">// 水平線の価格を変更する
void MoveHLine(string name, double newPrice)
{
    ObjectSetDouble(0, name, OBJPROP_PRICE, newPrice);
    ChartRedraw();
}

// 水平線の現在の価格を取得する
double GetHLinePrice(string name)
{
    return ObjectGetDouble(0, name, OBJPROP_PRICE);
}
</code></pre>
<p>例えば、ユーザーが手動でドラッグした水平線の位置を<code>ObjectGetDouble</code>で読み取り、EAのストップロスやテイクプロフィットに利用するといった活用ができます。</p>
<pre><code class="language-mql4">void OnTick()
{
    // ユーザーが配置した "SL_Line" の価格を取得
    if(ObjectFind("SL_Line") >= 0)
    {
        double slPrice = ObjectGetDouble(0, "SL_Line", OBJPROP_PRICE);
        Print("ストップロス価格: ", slPrice);
    }
}
</code></pre>
<h2><span id="toc12">ObjectSetString — 文字列プロパティを設定する</span></h2>
<p><code>ObjectSetString</code>は、テキスト内容やフォント名などの文字列型プロパティを変更します。<code>OBJ_LABEL</code>や<code>OBJ_TEXT</code>オブジェクトで特によく使います。</p>
<pre><code class="language-mql4">void CreateTextLabel(string name, string text, int x, int y)
{
    if(ObjectFind(name) >= 0)
        ObjectDelete(name);

    // ラベルオブジェクトを作成
    ObjectCreate(name, OBJ_LABEL, 0, 0, 0);

    // 表示位置を設定（ピクセル座標）
    ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
    ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
    ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER_LEFT_UPPER);

    // テキスト内容を設定
    ObjectSetString(0, name, OBJPROP_TEXT, text);

    // フォントを設定
    ObjectSetString(0, name, OBJPROP_FONT, "Arial Bold");

    // フォントサイズと色
    ObjectSetInteger(0, name, OBJPROP_FONTSIZE, 12);
    ObjectSetInteger(0, name, OBJPROP_COLOR, clrWhite);

    // 選択不可・リスト非表示
    ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);
    ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);

    ChartRedraw();
}
</code></pre>
<p><code>OBJ_LABEL</code>はチャートの価格・時刻座標ではなく、<strong>ピクセル座標</strong>で位置を指定するオブジェクトです。<code>OBJPROP_CORNER</code>でどの角を基準にするかを決め、<code>OBJPROP_XDISTANCE</code>と<code>OBJPROP_YDISTANCE</code>でその角からの距離を指定します。チャートをスクロールしても位置が固定されるため、情報表示パネルに最適です。</p>
<h2><span id="toc13">実践サンプル：情報パネルを表示するインジケーター</span></h2>
<p>ここまで学んだ関数を組み合わせて、チャート左上に通貨ペア情報・スプレッド・サーバー時刻を表示する情報パネルインジケーターを作ってみましょう。</p>
<pre><code class="language-mql4">//+------------------------------------------------------------------+
//| InfoPanel.mq4 - 情報パネル表示インジケーター                      |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property strict

// オブジェクト名のプレフィックス
#define PREFIX "InfoPanel_"

//+------------------------------------------------------------------+
//| ラベル作成ヘルパー関数                                            |
//+------------------------------------------------------------------+
void CreateLabel(string name, int x, int y, string text,
                 color clr=clrWhite, int fontSize=11)
{
    string fullName = PREFIX + name;

    if(ObjectFind(fullName) < 0)
        ObjectCreate(fullName, OBJ_LABEL, 0, 0, 0);

    ObjectSetInteger(0, fullName, OBJPROP_CORNER, CORNER_LEFT_UPPER);
    ObjectSetInteger(0, fullName, OBJPROP_XDISTANCE, x);
    ObjectSetInteger(0, fullName, OBJPROP_YDISTANCE, y);
    ObjectSetString(0, fullName, OBJPROP_TEXT, text);
    ObjectSetString(0, fullName, OBJPROP_FONT, "Consolas");
    ObjectSetInteger(0, fullName, OBJPROP_FONTSIZE, fontSize);
    ObjectSetInteger(0, fullName, OBJPROP_COLOR, clr);
    ObjectSetInteger(0, fullName, OBJPROP_SELECTABLE, false);
    ObjectSetInteger(0, fullName, OBJPROP_HIDDEN, true);
}

//+------------------------------------------------------------------+
//| 背景パネル作成関数                                                |
//+------------------------------------------------------------------+
void CreateBackground()
{
    string name = PREFIX + "BG";

    if(ObjectFind(name) < 0)
        ObjectCreate(name, OBJ_RECTANGLE_LABEL, 0, 0, 0);

    ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER_LEFT_UPPER);
    ObjectSetInteger(0, name, OBJPROP_XDISTANCE, 10);
    ObjectSetInteger(0, name, OBJPROP_YDISTANCE, 20);
    ObjectSetInteger(0, name, OBJPROP_XSIZE, 260);
    ObjectSetInteger(0, name, OBJPROP_YSIZE, 100);
    ObjectSetInteger(0, name, OBJPROP_BGCOLOR, C'30,30,50');
    ObjectSetInteger(0, name, OBJPROP_BORDER_TYPE, BORDER_FLAT);
    ObjectSetInteger(0, name, OBJPROP_COLOR, clrDodgerBlue);
    ObjectSetInteger(0, name, OBJPROP_WIDTH, 1);
    ObjectSetInteger(0, name, OBJPROP_BACK, false);
    ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false);
    ObjectSetInteger(0, name, OBJPROP_HIDDEN, true);
}

//+------------------------------------------------------------------+
//| 初期化                                                            |
//+------------------------------------------------------------------+
int OnInit()
{
    CreateBackground();
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| メイン処理                                                        |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &#038;time[],
                const double &#038;open[],
                const double &#038;high[],
                const double &#038;low[],
                const double &#038;close[],
                const long &#038;tick_volume[],
                const long &#038;volume[],
                const int &#038;spread[])
{
    // 通貨ペアと時間足
    string tfStr = "";
    switch(Period())
    {
        case PERIOD_M1:  tfStr = "M1";  break;
        case PERIOD_M5:  tfStr = "M5";  break;
        case PERIOD_M15: tfStr = "M15"; break;
        case PERIOD_M30: tfStr = "M30"; break;
        case PERIOD_H1:  tfStr = "H1";  break;
        case PERIOD_H4:  tfStr = "H4";  break;
        case PERIOD_D1:  tfStr = "D1";  break;
        case PERIOD_W1:  tfStr = "W1";  break;
        case PERIOD_MN1: tfStr = "MN";  break;
        default:         tfStr = "??";  break;
    }
    CreateLabel("Symbol", 20, 28,
                Symbol() + " / " + tfStr,
                clrDodgerBlue, 13);

    // スプレッド
    double spreadPips = MarketInfo(Symbol(), MODE_SPREAD) / 10.0;
    color spreadClr = (spreadPips < 2.0) ? clrLimeGreen : clrOrangeRed;
    CreateLabel("Spread", 20, 52,
                "Spread: " + DoubleToString(spreadPips, 1) + " pips",
                spreadClr, 11);

    // サーバー時刻
    CreateLabel("Time", 20, 75,
                "Server: " + TimeToString(TimeCurrent(), TIME_DATE|TIME_SECONDS),
                clrSilver, 10);

    ChartRedraw();
    return(rates_total);
}

//+------------------------------------------------------------------+
//| 終了処理                                                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
    ObjectsDeleteAll(0, PREFIX);
    ChartRedraw();
}
</code></pre>
<p>このインジケーターをチャートに適用すると、左上にダークブルーの背景パネルが表示され、通貨ペア・時間足・スプレッド・サーバー時刻がリアルタイムで更新されます。スプレッドが2.0pips未満なら緑色、それ以上ならオレンジ色で表示される仕組みです。</p>
<h2><span id="toc14">よくあるミスと対策</span></h2>
<h3><span id="toc15">1. オブジェクト名の重複</span></h3>
<p><code>ObjectCreate</code>は、既に同名のオブジェクトが存在すると<code>false</code>を返して失敗します。オブジェクトを更新したい場合は、先に<code>ObjectFind</code>で存在チェックをするか、<code>ObjectDelete</code>で削除してから再作成しましょう。</p>
<p>上記の実践サンプルのように、既に存在する場合は<code>ObjectCreate</code>をスキップしてプロパティだけ更新するパターンも効率的です。</p>
<h3><span id="toc16">2. ChartRedraw()の呼び忘れ</span></h3>
<p>オブジェクトの作成や変更後に<code>ChartRedraw()</code>を呼ばないと、画面に変更が反映されません。特に<code>OnCalculate</code>や<code>OnTick</code>の中でオブジェクトを操作した場合、最後に必ず<code>ChartRedraw()</code>を呼ぶ習慣をつけましょう。</p>
<pre><code class="language-mql4">// NG: 表示が更新されないことがある
ObjectSetString(0, "label1", OBJPROP_TEXT, "新しいテキスト");

// OK: 確実に画面に反映される
ObjectSetString(0, "label1", OBJPROP_TEXT, "新しいテキスト");
ChartRedraw();
</code></pre>
<h3><span id="toc17">3. OnDeinitでの削除漏れ</span></h3>
<p>インジケーターやEAを削除したとき、作成したオブジェクトがチャートに残ってしまうのはよくあるミスです。<code>OnDeinit</code>関数内で必ずオブジェクトを削除しましょう。</p>
<p>おすすめは、すべてのオブジェクト名に<strong>共通のプレフィックス</strong>を付けて、<code>ObjectsDeleteAll(0, PREFIX)</code>で一括削除する方法です。この方法なら、オブジェクトを追加した際に削除コードの更新を忘れる心配がありません。</p>
<h2><span id="toc18">まとめ</span></h2>
<p>今回はMQL4のチャートオブジェクト関数について解説しました。ポイントを整理します。</p>
<ul>
<li><strong>ObjectCreate</strong>でオブジェクトを作成。同名オブジェクトの存在チェックを忘れずに</li>
<li><strong>ObjectDelete / ObjectsDeleteAll</strong>で削除。プレフィックスを活用した一括削除が便利</li>
<li><strong>ObjectSetInteger</strong>で色・線種・太さ・座標などを設定</li>
<li><strong>ObjectSetDouble / ObjectGetDouble</strong>で価格値の設定・取得</li>
<li><strong>ObjectSetString</strong>でテキスト内容やフォントを変更</li>
<li>操作後は<strong>ChartRedraw()</strong>で画面を再描画</li>
<li><strong>OnDeinit</strong>では必ずオブジェクトを削除して後片付け</li>
</ul>
<p>チャートオブジェクト関数を使いこなせるようになると、EAやインジケーターの視覚的な表現力が大幅にアップします。まずは水平線やテキストラベルなど、シンプルなオブジェクトから試してみてください。慣れてきたら、今回の情報パネルサンプルをベースに、自分だけのカスタムパネルを作ってみましょう！</p>
<p>投稿 <a href="https://mql-programing.com/archives/13059/%e3%80%90mql4%e5%85%a5%e9%96%80%e3%80%91%e3%83%81%e3%83%a3%e3%83%bc%e3%83%88%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e9%96%a2%e6%95%b0%e3%82%92%e5%ae%8c%e5%85%a8%e6%94%bb%e7%95%a5/">【MQL4入門】チャートオブジェクト関数を完全攻略！ObjectCreate・ObjectDelete・ObjectSetの使い方</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【MQL4定数】オブジェクトの種類の定数（ENUM_OBJECT）</title>
		<link>https://mql-programing.com/archives/1536/object/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Sun, 26 Sep 2021 03:13:46 +0000</pubDate>
				<category><![CDATA[【辞書】MQLリファレンス]]></category>
		<category><![CDATA[定数]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[リファレンス]]></category>
		<category><![CDATA[ObjectCreate]]></category>
		<category><![CDATA[ENUM_OBJECT]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=1536</guid>

					<description><![CDATA[<p>オブジェクトの種類の定数 オブジェクトの種類の定数は、表示したいオブジェクトの種類を指定するときに使用します。 主に、ObjectCreate関数の引数として使われます。 ObjectCreate関数はオブジェクトを作成 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/1536/object/">【MQL4定数】オブジェクトの種類の定数（ENUM_OBJECT）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><span id="toc1">オブジェクトの種類の定数</span></h2>



<p class="wp-block-paragraph"><strong>オブジェクトの種類の定数は、表示したいオブジェクトの種類を指定するときに使用します。</strong></p>



<p class="wp-block-paragraph">主に、ObjectCreate関数の引数として使われます。</p>



<p class="wp-block-paragraph">ObjectCreate関数はオブジェクトを作成する関数です。</p>



<p class="wp-block-paragraph">作成するときに、オブジェクトの種類を指定することで、線や矢印などを表示させることができます。</p>



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



<p class="wp-block-paragraph">例えば、トレンドラインを表示したいとき、始点と終点を指定する必要があります。</p>



<p class="wp-block-paragraph">それらの点のことを、<strong>アンカーポイント</strong>と呼びます。</p>



<p class="wp-block-paragraph"><strong><span class="marker-under-red">表示したいオブジェクトによって、アンカーポイントの数が異なりますので、注意しましょう。</span></strong></p>



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



<h3 class="wp-block-heading"><span id="toc2">オブジェクトの種類の定数（ENUM_OBJECT）</span></h3>



<figure class="wp-block-table alignfull is-style-stripes"><table><tbody><tr><td><strong>定数</strong></td><td><strong>アンカー数</strong></td><td><strong>説明</strong></td></tr><tr><td>OBJ_VLINE</td><td>1</td><td>垂直線</td></tr><tr><td>OBJ_HLINE</td><td>1</td><td>水平線</td></tr><tr><td>OBJ_TREND</td><td>2</td><td>トレンドライン</td></tr><tr><td>OBJ_TRENDBYANGLE</td><td>1+角度</td><td>トレンドライン（角度）</td></tr><tr><td>OBJ_CYCLES</td><td>2</td><td>サイクルライン</td></tr><tr><td>OBJ_ARROWED_LINE</td><td>2</td><td>矢印線</td></tr><tr><td>OBJ_CHANNEL</td><td>3</td><td>等距離チャネルライン</td></tr><tr><td>OBJ_STDDEVCHANNEL</td><td>2</td><td>標準偏差チャネルライン</td></tr><tr><td>OBJ_REGRESSION</td><td>2</td><td>線形回帰チャネルライン</td></tr><tr><td>OBJ_PITCHFORK</td><td>3</td><td>アンドリューズ・ピッチフォーク</td></tr><tr><td>OBJ_GANNLINE</td><td>2</td><td>ギャン・ライン</td></tr><tr><td>OBJ_GANNFAN</td><td>2</td><td>ギャン・ファン</td></tr><tr><td>OBJ_GANNGRID</td><td>2</td><td>ギャン・グリッド</td></tr><tr><td>OBJ_FIBO</td><td>2</td><td>フィボナッチ・リトレースメント</td></tr><tr><td>OBJ_FIBOTIMES</td><td>2</td><td>フィボナッチ・タイムゾーン</td></tr><tr><td>OBJ_FIBOFAN</td><td>2</td><td>フィボナッチ・ファン</td></tr><tr><td>OBJ_FIBOARC</td><td>2</td><td>フィボナッチ・アーク</td></tr><tr><td>OBJ_FIBOCHANNEL</td><td>3</td><td>フィボナッチ・チャンネル</td></tr><tr><td>OBJ_EXPANSION</td><td>3</td><td>フィボナッチ・エクスパンション</td></tr><tr><td>OBJ_RECTANGLE</td><td>2</td><td>長方形</td></tr><tr><td>OBJ_TRIANGLE</td><td>3</td><td>三角形</td></tr><tr><td>OBJ_ELLIPSE</td><td>2</td><td>楕円形</td></tr><tr><td>OBJ_ARROW_THUMB_UP</td><td>1</td><td>サムズアップ</td></tr><tr><td>OBJ_ARROW_THUMB_DOWN</td><td>1</td><td>サムズダウン</td></tr><tr><td>OBJ_ARROW_UP</td><td>1</td><td>上矢印</td></tr><tr><td>OBJ_ARROW_DOWN</td><td>1</td><td>下矢印</td></tr><tr><td>OBJ_ARROW_STOP</td><td>1</td><td>ストップサイン</td></tr><tr><td>OBJ_ARROW_CHECK</td><td>1</td><td>チェックサイン</td></tr><tr><td>OBJ_ARROW_LEFT_PRICE</td><td>1</td><td>価格ラベル（左に表示）</td></tr><tr><td>OBJ_ARROW_RIGHT_PRICE</td><td>1</td><td>価格ラベル（右に表示）</td></tr><tr><td>OBJ_ARROW</td><td>1</td><td>矢印</td></tr><tr><td>OBJ_TEXT</td><td>1</td><td>テキスト</td></tr><tr><td>OBJ_LABEL</td><td>0</td><td>ラベル</td></tr><tr><td>OBJ_BUTTON</td><td>0</td><td>ボタン</td></tr><tr><td>OBJ_BITMAP</td><td>1</td><td>画像の表示範囲</td></tr><tr><td>OBJ_BITMAP_LABEL</td><td>0</td><td>画像のラベル</td></tr><tr><td>OBJ_EDIT</td><td>0</td><td>編集可能なラベル</td></tr><tr><td>OBJ_EVENT</td><td>1</td><td>時間ラベル（指標などのイベントに印）</td></tr><tr><td>OBJ_RECTANGLE_LABEL</td><td>0</td><td>四角形ラベル（拡大縮小可能）</td></tr></tbody></table></figure>



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



<h2 class="wp-block-heading"><span id="toc3">オブジェクトの種類の定数の使い方</span></h2>



<p class="wp-block-paragraph">主に、ObjectCreate関数の引数として使われます。</p>



<p class="wp-block-paragraph">ObjectCreate関数の引数は、基本的に6つですが、アンカーポイントの数だけ引数が増えます。</p>



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



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//アンカーポイントが0の場合（ラベルを作成）
   ObjectCreate(ChartID(), &quot;obj_label&quot;, OBJ_LABEL, 0, 0, 0);

//アンカーポイントが1の場合（垂直線を作成）
   ObjectCreate(ChartID(), &quot;obj_vline&quot;, OBJ_VLINE, 0, Time[10], 110.0);

//アンカーポイントが2の場合（トレンドラインを作成）
   ObjectCreate(ChartID(), &quot;obj_tline&quot;, OBJ_TREND, 0, Time[10], 110.0, Time[20], 105.0);

//アンカーポイントが3の場合（等距離チャネルラインを作成）
   ObjectCreate(ChartID(), &quot;obj_channel&quot;, OBJ_CHANNEL, 0, Time[10], 110.0, Time[20], 105.0, Time[3], 100.0);</code></pre></div>



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



<p class="wp-block-paragraph">このようにアンカーポイントによって、ObjectCreate関数の引数が増えていきますので、注意しましょう。</p>



<p class="wp-block-paragraph">オブジェクトの種類の定数によっては、アンカーポイントが少なくても多くても、エラーがでないものもあります。</p>



<p class="wp-block-paragraph">ハマりやすいところなので、よく使うオブジェクトは、コピペできるようにプログラムを保存しておいた方が良いと思います。</p>



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



<h2 class="wp-block-heading"><span id="toc4">【補足】オブジェクトの種類の定数の列挙型（ENUM_OBJECT）</span></h2>



<p class="wp-block-paragraph">オブジェクトの種類の定数は、ENUM_OBJECT​という<a href="https://mql-programing.com/enum/">列挙型</a>に含まれています。</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>ENUM_OBJECT object = OBJ_VLINE;</code></pre></div>



<p class="wp-block-paragraph">上記のようにプログラムすると、object変数に OBJ_VLINEの数値が代入されます。</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://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/ed11fa32d13f5e46898c7d986ed3a3ff.jpg" 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">列挙型とは？ 「文字を数値に変換できたら便利なのになぁ」 という方は、列挙型を使ってみましょう！ 列挙型は、「文字列と数値」の組み合わせを設定できる型です。 例えば、列挙型に「December」と入力すると「12」が返っ</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://mql-programing.com/main29/wp-content/uploads/cocoon-resources/blog-card-cache/a4e701a9f8569faadbe992111b709637.jpg" 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">はじめに この記事は、MQLプログラミング基礎を理解している方向けに作成しております。 もしMQLプログラミングがわからないという方は、先に以下の記事を読んでおくことをオススメします。 カテゴリー：MQLプログラミング基</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/1536/object/">【MQL4定数】オブジェクトの種類の定数（ENUM_OBJECT）</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
