トップ  >  リファレンス  >  オブジェクト関数  >  ObjectCreate
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
ObjectCreate


ObjectCreate


この関数はオブジェクトを生成します。
オブジェクト生成時に名前・タイプ・チャートサブウインドウ座標を指定します。
関数は2種類のバリアントがあります。


関数書式(チャートID指定):
bool  ObjectCreate(
   long          chart_id,      // チャートID
   string        object_name,   // オブジェクト名
   ENUM_OBJECT   object_type,   // オブジェクトタイプ
   int           sub_window,    // ウインドウインデックス
   datetime      time1,         // 1番目の時間のアンカーポイント
   double        price1,        // 1番目の価格のアンカーポイント
   ...
   datetime      timeN=0,       // N番目の時間のアンカーポイント
   double        priceN=0       // N番目の価格のアンカーポイント
   );


関数書式(チャートID指定無し):
bool  ObjectCreate(
   string        object_name,   // オブジェクト名
   ENUM_OBJECT   object_type,   // オブジェクトタイプ
   int           sub_window,    // ウインドウインデックス
   datetime      time1,         // 1番目の時間のアンカーポイント
   double        price1,        // 1番目の価格のアンカーポイント
   datetime      time2,         // 2番目の時間のアンカーポイント
   double        price2,        // 2番目の価格のアンカーポイント
   datetime      time3,         // 3番目の時間のアンカーポイント
   double        price3        // 3番目の価格のアンカーポイント
   );



■引数
引数名 初期値 I/O 詳細
chart_id - In チャートID
object_name - In オブジェクト名。
チャート(サブウインドウを含め)内で固有の名称である必要があります。
object_type - In オブジェクトタイプ。
ENUM_OBJECT列挙の値を指定します
sub_window - In チャートサブウインドウの番号。
0はメインチャートウインドウを意味します。
指定したサブウインドウ番号は存在しているもの(WindowsTotal()関数で返される値未満)に限ります、
存在していないサブウインドウ番号を指定した場合は戻り値にfalseが返されます。
time1 - In 1番目の時間のアンカーポイント
price1 - In 1番目の価格のアンカーポイント
time2 - In 2番目の時間のアンカーポイント
price2 - In 2番目の価格のアンカーポイント
time3 - In 3番目の時間のアンカーポイント
price3 - In 3番目の価格のアンカーポイント
timeN - In N番目の時間のアンカーポイント
priceN - In N番目の価格のアンカーポイント


■戻り値
オブジェクト作成された場合はtrueを返します。
既に同じ名前のオブジェクトが作成されている場合はfalseを返します。
エラーコードの確認はGetLastError()関数を使用します。


■備考
OBJ_LABELタイプのオブジェクトは座標設定(引数のtime,price)を無視します。
ObjectSet()関数を使用して、OBJPROP_XDISTANCEとOBJPROP_YDISTANCEプロパティで設定する必要があります。

座標は引数のtimeとpriceのペアで渡す必要があります。
例えば、OBJ_VLINEタイプのオブジェクトは時間(time1)だけ必要ですが、
価格(price1)の値も渡す必要があります(この場合価格の値は任意の値で構いません)。


サンプルソース:
void OnInit(){
    // オブジェクト全削除
    ObjectsDeleteAll();

    // 垂直線オブジェクト(Time[10]の位置に作成)
    ObjectCreate("垂直線",OBJ_VLINE,0,Time[10],0);

    // Time[10]とClose[10]のピクセル座標取得
    int pixcel_x,pixcel_y;
    ChartTimePriceToXY( 0,0, Time[10],Close[10], pixcel_x,pixcel_y );

    // テキストラベルオブジェクト生成
    ObjectCreate( "ラベル",OBJ_LABEL,0,0,0);               // テキストラベルオブジェクト生成
    ObjectSet(    "ラベル",OBJPROP_XDISTANCE,pixcel_x);    // テキストラベルオブジェクトX軸位置設定
    ObjectSet(    "ラベル",OBJPROP_YDISTANCE,pixcel_y);    // テキストラベルオブジェクトY軸位置設定
    ObjectSetText("ラベル", "ラベル表示" , 11 , "MS ゴシック" , clrWhite); // テキストラベルオブジェクト、テキストタイプ設定
}


結果:



スポンサーリンク



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


Top

inserted by FC2 system