ちょっと予定を変更して

先にRectangleを描画したコードの説明をします。

 

水平線を描画するのと似たような感じなんですけど、Rectangleの場合は

 

 

対角の二点の座標を指定します。AかB、どっちの組み合わせでもOKです。

 

例えば

 

 

このWeeklyの上ヒゲゾーンのA点の座標というのは

 

iTime(NULL,TimeFrame,0),iHigh(NULL,TimeFrame,1)

 

で指定されます。

 

iTime(NULL,TimeFrame,0)  これがX座標、つまり時間

iHigh(NULL,TimeFrame,1)  これがY座標、つまり価格

 

iHighは前回説明しました。

iHighは指定したバーの高値を取得する関数ですが

iTimeは指定したバーの開始時間を取得する関数です。

 

なので、iTime(NULL,TimeFrame,0)の意味するところは

TimeFrameでWeeklyを選択した場合

 

バーの開始時間(現在表示してるチャートの通貨ペア、Weekly、今週)

 

ということです。

 

一方、対角の

 

 

こっちのA点の座標は

陽線と陰線とで座標が違ってきます。

陽線だったら終値ですし、陰線だったら始値です。

 

そのため

 

 

 

このようにif-else条件処理というものを行っているのです。

この処理については、いずれあらためて説明するとして

陽線の場合はA点の座標は

 

 

となります。

 

Time[0] というのは現在のバーの形成開始時間です。

 

以上が理解できれば

 

 

この部分の記述の意味も理解できると思います。

そして

 

 

この部分と同じように

水平線の色の設定にも

 

ObjectSet という関数を使います。

 

結局何が言いたかったかというと

「長方形でも丸でも三角でも垂直線でも水平線でも

オブジェクトの記述というのはみんな似たような感じですよー」

ということです。