トップ  >  リファレンス  >  標準定数・列挙・構造体  >  オブジェクト定数  >  オブジェクトプロパティ
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
オブジェクトプロパティ


ObjectGet()関数とObjectSet()関数でオブジェクトプロパティを設定します。
引数のプロパティインデックスに以下表のIDを設定して使用します。

ID 詳細
OBJPROP_TIME1 0 datetime 第1の時間
OBJPROP_PRICE1 1 double 第1の価格
OBJPROP_TIME2 2 datetime 第2の時間
OBJPROP_PRICE2 3 double 第2の価格
OBJPROP_TIME3 4 datetime 第3の時間
OBJPROP_PRICE3 5 double 第3の価格
OBJPROP_COLOR 6 color オブジェクトの色の値
OBJPROP_STYLE 7 int オブジェクトの線のスタイル。 線のスタイルは
STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT
で設定
OBJPROP_WIDTH 8 int 線の幅(1〜5)
OBJPROP_BACK 9 bool オブジェクトを背景表示
OBJPROP_RAY 10 bool 線の延長設定
OBJPROP_ELLIPSE 11 bool フィボナッチアーク用楕円フラグ
OBJPROP_SCALE 12 double スケール値
OBJPROP_ANGLE 13 double 角度
OBJPROP_ARROWCODE 14 int アローコード
OBJPROP_TIMEFRAMES 15 int 時間軸毎の可視設定をビット単位で設定
OBJPROP_DEVIATION 16 double 標準偏差
OBJPROP_FONTSIZE 100 int テキストフォントサイズ
OBJPROP_CORNER 101 int ラベルオブジェクトのアンカーコーナープロパティ(0〜3)
OBJPROP_XDISTANCE 102 int アンカーのX軸距離(pixel単位)
OBJPROP_YDISTANCE 103 int アンカーのY軸距離(pixel単位)
OBJPROP_FIBOLEVELS 200 int フィボナッチ用レベル数(0〜32)
OBJPROP_LEVELCOLOR 201 color オブジェクトレベルの線の色
OBJPROP_LEVELSTYLE 202 int オブジェクトレベルの線のスタイル 線のスタイルは
STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT
で設定
OBJPROP_LEVELWIDTH 203 int オブジェクトレベルの線の幅(1〜5)
OBJPROP_FIRSTLEVEL+n 210+n int フィボナッチオブジェクトレベル。nの範囲(0〜31)






価格チャート全てのグラフィカルオブジェクトは、特定のプロパティセットを持っています。
オブジェクトのプロパティの値は、対応する関数によって設定/取得出来ます。

各オブジェクトには独自のプロパティセットがあり、
ENUM_OBJECT_PROPERTY列挙で指定出来ます。

一部のプロパティ(フィボナッチレベル番号等)は明確な設定が必要です。
このような場合は、ObjectSet・・・()関数やObjectGet・・・()関数を使ってパラメータを設定する必要があります。


ENUM_OBJECT_PROPERTY_INTEGER列挙の値は、ObjectSetInteger()関数とObjectGetInteger()関数で使用します。

ENUM_OBJECT_PROPERTY_INTEGER
ID 詳細
OBJPROP_COLOR color
OBJPROP_STYLE 線スタイル ENUM_LINE_STYLE
OBJPROP_WIDTH 線の幅 int
OBJPROP_BACK オブジェクトの背景表示 bool
OBJPROP_ZORDER チャートクリックイベント(CHARTEVENT_CLICK)用のオブジェクト優先順位。
オブジェクト作成時はデフォルトでゼロが設定されている。
必要に応じて優先順位を変更する事が出来ます。
long
OBJPROP_FILL オブジェクトの塗りつぶし
(OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION用)
bool
OBJPROP_HIDDEN ターミナルメニューの「チャート」⇒「ライン等の設定」⇒「表示中のライン等」で
表示されるオブジェクトリストに、オブジェクトの名前を表示させないようにする。
trueでリストからオブジェクトを非表示にします。
デフォルトではtrue設定です。

非表示設定のオブジェクトをリストに表示させるには、
オブジェクトリストの"すべて"ボタンをクリックします。
bool
OBJPROP_SELECTED オブジェクト選択 bool
OBJPROP_READONLY Editオブジェクトのテキスト編集 bool
OBJPROP_TYPE オブジェクトタイプ ENUM_OBJECT
r/o
OBJPROP_TIME 時間座標 datetime
OBJPROP_SELECTABLE オブジェクト可用性 bool
OBJPROP_CREATETIME オブジェクト作成時間 datetime
OBJPROP_LEVELS レベルの番号 int
OBJPROP_LEVELCOLOR ラインレベルの色 color
OBJPROP_LEVELSTYLE ラインレベルのスタイル ENUM_LINE_STYLE
OBJPROP_LEVELWIDTH ラインレベルの幅 int
OBJPROP_ALIGN Editオブジェクトのテキストアライメント ENUM_ALIGN_MODE
OBJPROP_FONTSIZE フォントサイズ int
OBJPROP_RAY_RIGHT 線の延長(右) bool
OBJPROP_ELLIPSE フィボナッチアークの楕円を完全表示 bool
OBJPROP_ARROWCODE アローコード char
OBJPROP_TIMEFRAMES 時間軸での可視性 オブジェクトの可視性
参照
OBJPROP_ANCHOR アンカーポイントの位置

(ENUM_ARROW_ANCHORは、OBJ_ARROW用。
ENUM_ANCHOR_POINTは、OBJ_LABEL,OBJ_BITMAP_LABELOBJ_TEXT用)
ENUM_ARROW_ANCHOR
ENUM_ANCHOR_POINT
OBJPROP_XDISTANCE バインディングコーナーからのX軸方向の距離(pixel単位) int
OBJPROP_YDISTANCE バインディングコーナーからのY軸方向の距離(pixel単位) int
OBJPROP_DRAWLINES エリオット波動用の線表示 bool
OBJPROP_STATE ボタンの押下状態 bool
OBJPROP_XSIZE オブジェクトの幅(x軸方向:ピクセル単位)

OBJ_LABEL(r/o), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL用。
int
OBJPROP_YSIZE オブジェクトの高さ(y軸方向:ピクセル単位)

OBJ_LABEL(r/o), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL用。
int
OBJPROP_XOFFSET 「ビットマップラベル」(OBJ_BITMAP_LABEL)と「ビットマップ」(OBJ_BITMAP)オブジェクトのX軸座標。
値はビットマップの左上隅を基準にpixel単位で設定する。
int
OBJPROP_YOFFSET 「ビットマップラベル」(OBJ_BITMAP_LABEL)と「ビットマップ」(OBJ_BITMAP)オブジェクトのY軸座標。
値はビットマップの左上隅を基準にpixel単位で設定する。
int
OBJPROP_BGCOLOR 背景色
(OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL用)
color
OBJPROP_CORNER オブジェクトをチャートコーナーにリンクさせる ENUM_BASE_CORNER
OBJPROP_BORDER_TYPE グラフィカルオブジェクトの枠線タイプ。
"長方形ラベル"用
ENUM_BORDER_TYPE
OBJPROP_BORDER_COLOR 枠線の色
(OBJ_EDIT , OBJ_BUTTON用)
color




OBJ_BITMAP_LABELとOBJ_BITMAPのオブジェクトの場合、ビットマップ画像は特殊なモードで表示されます。
このモードでは、元の画像の一部(長方形の表示領域)のみが表示されます。
この領域のサイズは、OBJPROP_XSIZE と OBJPROP_YSIZEプロパティで設定出来ます。
可視領域はOBJPROP_XOFFSET と OBJPROP_YOFFSETプロパティを使用して、領域内で元の画像を移動する事が出来ます。


固定サイズのオブジェクトの場合(OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDIT),
OBJPROP_XDISTANCEとOBJPROP_YDISTANCEプロパティで位置を設定します。
チャートコーナー(OBJPROP_CORNER)を基準にした位置からのx,y座標をpixel単位で設定します。


ENUM_OBJECT_PROPERTY_DOUBLE列挙の値は、ObjectSetDouble()関数とObjectGetDouble()関数で使用します。

ENUM_OBJECT_PROPERTY_DOUBLE
ID 詳細
OBJPROP_PRICE 価格座標 double
OBJPROP_LEVELVALUE レベル値 double
OBJPROP_SCALE スケール(ギャン・フィボナッチアークのプロパティ) double
OBJPROP_ANGLE 角度
(プログラムで作成したオブジェクトで角度が指定されていない場合はEMPTY_VALUE)
double
OBJPROP_DEVIATION 標準偏差チャネル用の偏差 double



ENUM_OBJECT_PROPERTY_STRING列挙の値は、ObjectSetString()関数とObjectGetString()関数で使用します。

ENUM_OBJECT_PROPERTY_STRING
ID 詳細
OBJPROP_NAME オブジェクト名 string
OBJPROP_TEXT オブジェクトの説明 string
OBJPROP_TOOLTIP ツールチップのテキスト。
プロパティが設定されていない場合は、
ターミナルによって自動生成されたツールチップが表示される。
ツールチップは改行コード("\n")の値を設定する事で無効に出来ます。
string
OBJPROP_LEVELTEXT レベル説明 string
OBJPROP_FONT フォント string
OBJPROP_BMPFILE ビットマップレベル用のbmpファイル名
リソース参照
string



OBJ_RECTANGLE_LABELオブジェクトは3種類のモードが設定でき、ENUM_BORDER_TYPEの値を使用します。

ENUM_BORDER_TYPE
ID 詳細
BORDER_FLAT 平らなフォーム
BORDER_RAISED 目立つフォーム
BORDER_SUNKEN 凹状フォーム



OBJ_EDITオブジェクトと ChartScreenShot()関数の場合、
ENUM_ALIGN_MODE列挙の値を使用して、水平方向のアライメントタイプを指定する事が出来ます。

ENUM_ALIGN_MODE
ID 詳細
ALIGN_LEFT 左整列
ALIGN_CENTER 中央整列(OBJ_EDITのみ)
ALIGN_RIGHT 右整列






サンプルソース:
#property strict
#property indicator_chart_window

#define OBJNAME_BUTTON "test_obj"

//+------------------------------------------------------------------+
//| 初期化                         
//|------------------------------------------------------------------|
void OnInit(){

    string objname;

    objname  = OBJNAME_BUTTON;

    ObjectCreate( objname , OBJ_BUTTON , 0,0,0);                     // ボタンオブジェクト作成

    ObjectSet(objname,OBJPROP_CORNER        ,CORNER_RIGHT_LOWER); // ボタン配置の起点(右下)
    ObjectSet(objname,OBJPROP_XDISTANCE     , 100);                 // ボタンの位置(起点ベース))
    ObjectSet(objname,OBJPROP_XSIZE          , 50);                  // ボタンサイズX
    ObjectSet(objname,OBJPROP_YSIZE          , 20);                  // ボタンサイズY

    ObjectSet(objname,OBJPROP_BORDER_COLOR ,clrRed);               // 枠線カラー:赤
    ObjectSet(objname,OBJPROP_BACK          ,true);                 // 背景に表示
    ObjectSet(objname,OBJPROP_BGCOLOR       ,clrYellow);           // バックグラウンドカラー:黄色

    ObjectSet(objname,OBJPROP_STATE         ,false);               // ボタン押下状態:OFF
    ObjectSet(objname,OBJPROP_HIDDEN        ,true);                // オブジェクトリスト:非表示
    ObjectSet(objname,OBJPROP_ZORDER        ,0);                   // マウスクリックイベント優先順位

    // マウス操作でボタンを移動できないように設定
    ObjectSet(objname,OBJPROP_SELECTABLE    ,false);              // 選択不可設定
    ObjectSet(objname,OBJPROP_SELECTED      ,false);              // 選択状態:非選択

    // ストリング設定
    ObjectSet(objname,OBJPROP_FONTSIZE      ,10);                 // フォントサイズ
    ObjectSet(objname,OBJPROP_COLOR         ,clrBlack);            // フォントカラー:黒

    ObjectSetString(0,objname ,OBJPROP_FONT ,"MS ゴシック");   // フォントタイプ
    ObjectSetString(0,objname ,OBJPROP_TEXT ,"OFF");              // 表示する文字

}


//+------------------------------------------------------------------+
//| イベント関数                         
//|------------------------------------------------------------------|
void OnChartEvent(
                 const int     id,      // イベントID
                 const long&   lparam,  // long型イベント
                 const double& dparam,  // double型イベント
                 const string& sparam)  // string型イベント
{
    bool tmp_bool;

    if ( id == CHARTEVENT_OBJECT_CLICK) {     // オブジェクトがクリックされた
        if ( sparam == OBJNAME_BUTTON ) {         // OBJNAME_BUTTONオブジェクトがクリックされた

            // ボタンの押下状態を取得
            tmp_bool = ObjectGetInteger( 0 , OBJNAME_BUTTON   , OBJPROP_STATE );
            
            if ( tmp_bool == true ) {
                ObjectSet(OBJNAME_BUTTON,OBJPROP_BGCOLOR       ,clrRed);     // バックグラウンドカラー:赤色
                ObjectSetString(0,OBJNAME_BUTTON ,OBJPROP_TEXT ,"ON");       // 表示する文字
            } else {
                   ObjectSet(OBJNAME_BUTTON,OBJPROP_BGCOLOR    ,clrYellow);  // バックグラウンドカラー:黄色
                ObjectSetString(0,OBJNAME_BUTTON ,OBJPROP_TEXT ,"OFF");      // 表示する文字
            }
        }
    }
}




チャート上の"OFF"ボタンを押すと、"ON"に変わります。




スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system