今んとこ、きっとさっぱり理解できないでしょうけど

まあ気長に頑張ってください(笑)

フィボはけっこーめんどくせーです。

僕は何度もはまった(笑)

 

さて

 

int openBar = iBarShift (NULL,Period(),opentime,false);

 

これは前回の記事で求めたopentimeが

現在表示してる時間足で、どの位置にあるのかを調べてます。

つまり、現在の足が0なので

そこからさかのぼって何本目か、ということです。

そして、その数をopenBarと名付けたパラメーターに代入してます。

整数なのでintです。

 

なんでこんなことをしてるのかというと

フィボを引く際には「ある期間内」の高値安値を調べて引くわけですが

フィボというのは

「高値から安値に引く」

「安値から高値に引く」

このどちらかになりますが

世界共通ルールとして

 

左から右に引く

 

というのがあるからです。

だから指定期間内の高値と安値で

どっちが右でどっちが左かによって引き方が違ってきます。

 

そこで、まず「指定期間」の開始時間を求めてるわけです。

時刻ではなく「何本前の足か」で求めなきゃいけないのが厄介なところ。

 

例えば日足でWeeklyモードにした場合

この黄色ライン上の足が「0」です。

今週の開始時間は

 

ここ。つまり5本前。

 

この位置がわからないと、最高値・最安値の位置を取得する関数

iHighest() iLowest()

が使えないんです。
 
あちこちで時間ではなく「位置」が必要になるため
これらの関数は初心者には扱いづらいんですよね。
僕も最初は意味がわからなかった(笑)
 
 
続く