OnChartEvent関数の続きです。

 

チャート上のオブジェクトに何らかのアクションがあった場合に

なんらかの処理を行うようにする。

 

今回の場合は

 

区切り線をクリックした場合

水平線をその区切り線の右側のRectangleの四本値に移動させる。

 

という処理になります。

 

まず

 

void OnChartEvent(const int id,const long &lparam,
const double &dparam,
const string &sparam){

 

 

if(id == CHARTEVENT_OBJECT_CLICK){

 

この二行をプログラムの一番最後に追加してください。

 

そして、この二つの相方の括弧を二つ

 

}}

 

これを追加。

 

 

こんな感じにします。

これは定型文と考えておけばOKです。

チャート上のオブジェクトをクリックした時

何らかの処理を行いたい場合は

これをこのまま使えばいいです。

 

そして

 

for(int i = 2;i<RectangleTotal+1 ;i++){

string Number = "["+IntegerToString(i)+"]";

if(sparam == "VLine"+Number){

ObjectMove("High",0,0,iHigh(NULL,TimeFrame,i-1));}}

 

この四行を最後の二つの括弧の前に入れます。

適当に形を整えて

 

 

こんな感じ。

これで、とりあえず高値は移動できるようになります。

試してみてください。

 

続く