ObjectGetTimeByValue

この関数は、指定されたチャートの指定されたチャートサブウィンドウに、指定された名前、タイプ、および初期座標を持つオブジェクトを作成します。この関数には2つのバリアントがあります。

bool  ObjectCreate(
   long          chart_id,      // chart ID
   string        object_name,   // object name
   ENUM_OBJECT   object_type,   // object type
   int           sub_window,    // window index
   datetime      time1,         // time of the first anchor point
   double        price1,        // price of the first anchor point
   …
   datetime      timeN=0,       // time of the N-th anchor point
   double        priceN=0       // price of the N-th anchor point
   );

この関数は、指定されたチャートサブウィンドウで、指定された名前、タイプ、および初期座標を持つオブジェクトを作成します。

bool  ObjectCreate(
   string        object_name,   // object name
   ENUM_OBJECT   object_type,   // object type
   int           sub_window,    // window index
   datetime      time1,         // time of the first anchor point
   double        price1,        // price of the first anchor point
   datetime      time2=0,       // time of the second anchor point
   double        price2=0,      // price of the second anchor point
   datetime      time3=0,       // time of the third anchor point
   double        price3=0       // price of the third anchor point
   );

パラメーター

chart_id

[in]チャート識別子。

object_name

[入力]オブジェクトの名前。名前は、サブウィンドウを含むチャート内で一意である必要があります。

object_type

[in]オブジェクトタイプ。値は、ENUM_OBJECT列挙の値のいずれかです。

sub_window

[in]チャートサブウィンドウの番号。0はメインチャートウィンドウを意味します。指定されたサブウィンドウが存在する必要があります(ウィンドウインデックスは0以上、WindowsTotal()未満である必要があります)。

time1

[in]最初のアンカーポイントの時間座標。

価格1

[in]最初のアンカーポイントの価格座標。

time2 = 0

[入力] 2番目のアンカーポイントの時間座標。

price2 = 0

[入力] 2番目のアンカーポイントの価格座標。

time3 = 0

[入力] 3番目のアンカーポイントの時間座標。

price3 = 0

[入力] 3番目のアンカーポイントの価格座標。

HOUR = 0

[in] N番目のアンカーポイントの時間座標。

PRICE = 0

[in] N番目のアンカーポイントの価格座標。

戻り値

関数が現在のチャートで使用される場合、チャートは直接アクセスされ(MQL4の通常の動作)、trueの戻り値はオブジェクトの作成が成功したことを意味します。そうでない場合はfalseが返されます。この場合、エラーの詳細についてはGetLastError()を呼び出す必要があります

異なるサイズでオブジェクトを作成するには、非同期関数呼び出しを使用し、ObjectCreate()はチャートキューに追加するコマンドの結果のみを返します。この場合、trueは、オブジェクト作成コマンドが正常にキューに登録され、コマンドの実行結果が不明であることを意味します。コマンドの実行結果を確認するには、ObjectFind関数、またはObjectGetXXXなどのオブジェクトプロパティを要求するその他の関数を使用できます。ただし、そのような関数はそのチャートのキューの最後に追加され、(同期呼び出しにより)実行結果を待機するため、時間がかかることに注意してください。

注意

オブジェクト名は63文字を超えてはなりません。現在のコードページに属さない文字は許可されません(UnicodeからANSIに変換できない文字は「?」に置き換えられます)。異なるコードページを持つユーザーにプログラムを配布する場合は、オブジェクト名にラテン文字を使用することを強くお勧めします。

OBJ_LABELタイプのオブジェクトは座標を無視します。ObjectSet()関数を使用して、OBJPROP_XDISTANCEおよびOBJPROP_YDISTANCEプロパティを設定します。チャートのサブウィンドウ(チャートにインジケータのあるサブウィンドウがある場合)は1から始まります。チャートのメインウィンドウは常に存在し、インデックスは0です。座標は、時間と価格のペアで渡す必要があります。たとえば、OBJ_VLINEオブジェクトに必要なのは時間だけですが、価格(任意の値)も渡す必要があります。

例:

//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
int start()
  {
   int i;
   string obj_name=“label_object”;
   long current_chart_id=ChartID();
//— creating label object (it does not have time/price coordinates)
   if(!ObjectCreate(current_chart_id,obj_name,OBJ_LABEL,0,0,0))
     {
      Print(“Error: can’t create label! code #”,GetLastError());
      return(0);
     }
//— set color to Red
   ObjectSetInteger(current_chart_id,obj_name,OBJPROP_COLOR,clrRed);
//— move object down and change its text
   for(i=0; i<200; i++)
     {
      //— set text property
      ObjectSetString(current_chart_id,obj_name,OBJPROP_TEXT,StringFormat(“Simple Label at y= %d”,i));
      //— set distance property
      ObjectSet(obj_name,OBJPROP_YDISTANCE,i);
      //— forced chart redraw
      ChartRedraw(current_chart_id);
      Sleep(10);
     }
//— set color to Blue
   ObjectSetInteger(current_chart_id,obj_name,OBJPROP_COLOR,clrBlue);
//— move object up and change its text
   for(i=200; i>0; i–)
     {
      //— set text property
      ObjectSetString(current_chart_id,obj_name,OBJPROP_TEXT,StringFormat(“Simple Label at y= %d”,i));
      //— set distance property
      ObjectSet(obj_name,OBJPROP_YDISTANCE,i);
      //— forced chart redraw
      ChartRedraw(current_chart_id);
      Sleep(10);
     }
//— delete object
   ObjectDelete(obj_name);
   return(0);
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">