無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ライブラリ

ObjectCreateAndSet - MetaTrader 5のためのライブラリ

ビュー:
1059
評価:
(28)
パブリッシュ済み:
2016.11.15 16:36
アップデート済み:
2016.11.22 07:34
\MQL5\Include\ \MQL5\Scripts\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

添付された *mqh ファイルには、オブジェクトの作成とオブジェクトプロパティの変更のための関数が含まれています。チャート上にオブジェクトを作成したり、既存のオブジェクトのプロパティを変更するテストコードをすばやく記述する必要があるときには、特に便利です。

もう1つのファイルは、使用例のスクリプトです(テキストラベルを作成し、テキストと途中で徐々に90度回転させ色を変えます)。

I. オブジェクト作成のための関数

これらの関数はMQL5レフェレンスに説明されている標準関数に基づいています。対応する標準関数との主な相違点は下記のとおりです。

  • ツールヒントを設定したり、異なる時間枠でオブジェクトの可視性を設定するための行を追加しました。
  • 座標、価格やアンカーポイントを設定せずに関数を作成する行を削除しました(VLineCreate(...) およびEventCreate(...)を除く)。
  • このライブラリに実装されているオブジェクトのプロパティを設定(変更)するための関数に基づいて、プロパティの設定が成功したかどうかを確認するための条件が追加されました。

オブジェクト作成のための関数:

名前
簡潔な記述
オブジェクトの型

VLineCreate

垂直線を作成する

OBJ_VLINE

HLineCreate

水平線を作成する

OBJ_HLINE

TrendCreate

与えられた座標で動向線を作成する

OBJ_TREND

ArrowedLineCreate

与えられた座標で矢印を作成する

OBJ_ARROWED_LINE

ChannelCreate

与えられた座標で等距離チャンネルを作成する

OBJ_CHANNEL

RectangleCreate

与えられた座標で四角形を作成する

OBJ_RECTANGLE

TriangleCreate

与えられた座標で三角形を作成する

OBJ_TRIANGLE

EllipseCreate

与えられた座標で楕円形を作成する

OBJ_ELLIPSE

ArrowCreate

OBJ_ARROWを作成する

OBJ_ARROW
TextCreate

テキストオブジェクトを作成する

OBJ_TEXT

LabelCreate

テキストラベルを作成する

OBJ_LABEL

ButtonCreate

ボタンを作成する

OBJ_BUTTON

BitmapCreate

チャートウィンドウでビットマップを作成する

OBJ_BITMAP

BitmapLabelCreate

ビットマップラベルオブジェクトを作成する

OBJ_BITMAP_LABEL

EditCreate

編集オブジェクトを作成する

OBJ_EDIT

EventCreate

チャートにイベントオブジェクトを作成する

OBJ_EVENT

RectLabelCreate

四角形ラベルを作成する

OBJ_RECTANGLE_LABEL

 

II. オブジェクトプロパティ設定のための関数

修飾子なしでのObjectSetDouble(...)ObjectSetInteger(...)及びObjectSetString(...)の使用:


関数名
列挙型
プロパティ
簡潔な記述
プロパティ型
1. ObSetDouble ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_SCALE スケール(ギャンオブジェクト及びフィボナッチアークオブジェクトのプロパティ)。 double
OBJPROP_ANGLE
角度。 角度を指定されずにプログラムから作成されたオブジェクトの場合、値は EMPTY_VALUE。
double
OBJPROP_DEVIATION 標準偏差チャンネルの偏差。
double
2. ObSetIntegerAlign ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ALIGN 編集オブジェクト(OBJ_EDIT)の水平テキストの配置。
ENUM_ALIGN_MODE
3. ObSetIntegerAncorPoint ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR
OBJ_LABEL, OBJ_BITMAP_LABEL及びOBJ_TEXTオブジェクトのアンカーポイントの位置。
ENUM_ANCHOR_POINT
4.
ObSetIntegerArrowAncor
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR OBJ_ARROWオブジェクトのアンカーポイントの位置。
ENUM_ARROW_ANCHOR
5. ObSetIntegerArrowCode
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ARROWCODE OBJ_ARROWの矢印コード。
char
6. ObSetIntegerBool ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_BACK
背景のオブジェクト。
bool
OBJPROP_FILL 色でオブジェクトを塗りつぶします(OBJ_RECTANGLE、OBJ_TRIANGLE、OBJ_ELLIPSE, OBJ_CHANNEL、OBJ_STDDEVCHANNEL、OBJ_REGRESSION)。 bool
OBJPROP_HIDDEN 端末の「チャート設定」->「オブジェクト」->「オブジェクト表示リスト」メニューで、オブジェクトリスト中のグラフィカルオブジェクトの名称を非表示にします。true は、リストからのオブジェクトを非表示にします。MQL5 プログラムで作成されたカレンダーイベントや取引履歴を表示するオブジェクトではデフォルトは true です。そのようなグラフィックオブジェクトを表示してプロパティにアクセスするには「オブジェクト表示リスト」ウィンドウの「すべて」ボタンをクリックします。 bool
OBJPROP_SELECTED
オブジェクトが選択されています。 bool
OBJPROP_READONLY
編集オブジェクトでテキストを編集する能力。 bool
OBJPROP_SELECTABLE
オブジェクトの可用性。 bool
OBJPROP_RAY_LEFT
線が左に延長されます。 bool
OBJPROP_RAY_RIGHT 線が右に延長されます。 bool
OBJPROP_RAY 縦線はチャートの全てのウィンドウを通過します。 bool
OBJPROP_ELLIPSE フィボナッチアークオブジェクト(OBJ_FIBOARC)の完全な楕円形の表示 。 bool
OBJPROP_DRAWLINES エリオット波動マーキングの線の表示。 bool
OBJPROP_STATE ボタンの状態(押された/押されていない)。 bool
OBJPROP_DATE_SCALE チャートオブジェクトのスケール表示フラグ。 bool
OBJPROP_PRICE_SCALE チャートオブジェクトの価格スケール表示フラグ。 bool
7. ObSetIntegerBorderType ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_BORDER_TYPE
「四角形ラベル」オブジェクトの境界線の種類。
ENUM_BORDER_TYPE
8. ObSetIntegerColor ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_COLOR 色(オブジェクトの種類に応じて、線の色、テキストなどの制御)。 color
OBJPROP_BGCOLOR OBJ_EDIT、OBJ_BUTTON、OBJ_RECTANGLE_LABEL の背景色。 color
OBJPROP_BORDER_COLOR OBJ_EDIT 及び OBJ_BUTTON オブジェクトの境界線の色。 color
9. ObSetIntegerCorner
ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_CORNER グラフィックオブジェクトを取り付けるチャートの隅
ENUM_BASE_CORNER
10. ObSetIntegerInt ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_WIDTH 線の幅 int
OBJPROP_LEVELS レベルの数。 int
OBJPROP_FONTSIZE フォントサイズ。 int
OBJPROP_TIMEFRAMES 時間軸でのオブジェクトの可視性(フラグのセット)。 int
OBJPROP_XDISTANCE アンカーコーナーからX 軸に沿ったピクセル単位での距離(MQL5リフェレンスを参照)。 int
OBJPROP_YDISTANCE アンカーコーナーからX 軸に沿ったピクセル単位での距離(MQL5リフェレンスを参照)。
int
OBJPROP_XSIZE X 軸に沿ったピクセル単位でのオブジェクトの幅。OBJ_LABEL(読み込みのみ)、OBJ_BUTTON, OBJ_CHART、OBJ_BITMAP、OBJ_BITMAP_LABEL、OBJ_EDIT、OBJ_RECTANGLE_LABEL オブジェクトに指定されます。 int
OBJPROP_YSIZE Y 軸に沿ったオブジェクトの高さ(ピクセル単位)。OBJ_LABEL(読み込みのみ)、OBJ_BUTTON, OBJ_CHART、OBJ_BITMAP、OBJ_BITMAP_LABEL、OBJ_EDIT、OBJ_RECTANGLE_LABEL オブジェクトに指定されます。 int
OBJPROP_XOFFSET ビットマップラベル( OBJ_BITMAP_LABEL )及びビットマップ( OBJ_BITMAP )グラフィックオブジェクトの四角形の表示領域の左上隅のX 座標。値は元の画像の左上隅を基準にピクセル単位で設定されています。 int
OBJPROP_YOFFSET ビットマップラベル( OBJ_BITMAP_LABEL )及びビットマップ( OBJ_BITMAP )グラフィックオブジェクトの四角形の表示領域の左上隅の Y 座標。値は元の画像の左上隅を基準にピクセル単位で設定されています。 int
OBJPROP_CHART_SCALE チャートオブジェクトのスケール(0から5)。 int
11. ObSetIntegerLineStyle ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_STYLE
スタイル
ENUM_LINE_STYLE
12. ObSetIntegerLong ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ZORDER チャート上のクリックイベント(CHARTEVENT_CLICK)を受け取るためのグラフィカルオブジェクトの優先順位。優先順位はオブジェクトの作成時にデフォルトのゼロに設定され、必要に応じて高く出来ます。オブジェクトを互いに適用した場合、最も優先順位の高いオブジェクトのみがCHARTEVENT_CLICKイベントを受け取ります。
long

ObSetString ENUM_OBJECT_PROPERTY_STRING OBJPROP_NAME オブジェクト名。
string
OBJPROP_TEXT オブジェクトの説明(オブジェクトに含まれるテキスト)。 string
OBJPROP_TOOLTIP ツールヒントテキスト。プロパティが設定されていない場合は、自動的に生成されたツールヒントが表示されます。ツールヒントを無効にするには "\n"(改行)を設定します。 string
OBJPROP_FONT フォント。 string
OBJPROP_SYMBOL チャートオブジェクトの銘柄。 string

 

修飾子を持ったObjectSetDouble(...)ObjectSetInteger(...)及びObjectSetString(...)の使用:


名前
列挙型 プロパティ 簡潔な記述 プロパティ型
1. ObSetDoubleMod ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_PRICE 価格座標 - double、 修飾子 = アンカーポイントの数。 double
OBJPROP_LEVELVALUE レベル数 - double、修飾子 = レベル番号
double
2.
ObSetIntegerLevelColorMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELCOLOR レベル線の色 - color、修飾子 = レベル番号
color
3.
ObSetIntegerLevelStyleMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELSTYLE
レベル線のスタイル ENUM_LINE_STYLE、修飾子 = レベル番号
ENUM_LINE_STYLE
4.
ObSetIntegerLevelWidthMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELWIDTH
レベル線の幅 - int、修飾子 = レベル番号
int
5. ObSetIntegerTimeMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_TIME
時刻座標 - datetime、修飾子 = アンカーポイントの数。
datetime
6. ObSetStringMod ENUM_OBJECT_PROPERTY_STRING OBJPROP_LEVELTEXT レベル記述 - string、修飾子 = レベル番号 string
OBJPROP_BMPFILE
ビットマップラベルオブジェクトのBMPファイル名 - string。リフェレンスのリソースも参照。修飾子:0-ON、1-OFF string

 

その他の関数:



bool ObDelete (long chart_ID,string name)
指定された名前のオブジェクトを削除します。

 

III. 使用法:

インクルードファイルとして使用することもできますし、特定の関数をソースコードにコピーすることもできます。

第2の方法を選択した場合は、まずそれをインクルードファイルとして使用する方が良いと思います。必要な関数呼び出しがすべて実装されれば、インクルードディレクティブ(#include ...)は削除できます。

次に、コンパイラはインクルードファイルからコピーする必要のある関数を指摘します。

インクルードファイルとしての使用:

  1. 添付されたObjectCreateAndSet.mqhIncludeフォルダに保存します。これにはMetaEditorナビゲータウィンドウが使用できます。ナビゲータウィンドウでIncludeフォルダをクリックしてOpen Folder(フォルダを開く)を選びます。

  2. ライブラリを自分のコードで使うにはファイルの最初の#include...行を自分のコードにコピペします。
    #include <ObjectCreateAndSet.mqh>
    添付されたスクリプトは、ライブラリをインクルードする例を提供します。

  3. この後でコードをコンパイルします。名前の入力を開始すると、含まれている関数のツールヒントが表示されます。

最初の数文字を入力した後のツールヒント内の完全な関数名

図1 最初の数文字を入力した後のツールヒント内の完全な関数名


図2 ツールヒント内の関数のパラメータ

ところでMetaEditorツールバーの functions list(関数リスト)ボタンを使って現在のファイルに使われる関数のリストを手早く見ることができます。

図3 ファイルで使用される関数のリストを表示するためのボタン

ボタンを押すと、ドロップダウンリストが表示されます。特定の機能に移動するには、リスト内の名前をクリックします。

図4 ボタンを押すとファイルで関数リストが開きます(特定の機能にすばやく移動するのに便利です)

更新:

  • 2015.09.14 </ b0>:ObDelete()関数で、オブジェクトを削除するときにエラーが発生した場合、オブジェクトの名前の出力を「エキスパート」タブに追加しました。コード内のエラーを見つけやすくなりました。

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/13374

ColorMomentum_AMA_HTF ColorMomentum_AMA_HTF

入力パラメータでの時間枠選択オプションを含むColorMomentum_AMA指標

ColorLinearRegSlope_V2_HTF ColorLinearRegSlope_V2_HTF

入力パラメータでの時間枠選択オプションを含むColorLinearRegSlope_V2指標

ColorMaRsi-Trigger_HTF ColorMaRsi-Trigger_HTF

入力パラメータでの時間枠選択オプションを含むColorMaRsi-Trigger指標

Exp_ColorMaRsi-Trigger Exp_ColorMaRsi-Trigger

Exp_ColorMaRsi-Triggerエキスパートアドバイザー はColorMaRsi-Trigger セマフォシグナル指標によって生成されたシグナルに基づいています。