Biraz vakit bulunca göz attım. Önce formülün ne dediğini/yaptığını anlamaya çalışalım.
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
n1:=15; p1:=2/(n1+1);
If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV)
AÇIKLAMA:
nw=-1 demek gün başı demektir. Öyleyse gün başında saat 10:00 da (yani nw=-1) bir önceki gün kapanışını ref(C-1) kullanarak ema hesaplanır ((p1*Ref(C,-1))+((1-p1)*PREV)) ve günün geri kalanında saat 10:00 dan sonra (yani nw=0) bir önceki değer (yani prev) kullanılır.
Ancaaaaak, alt frame lere geçildiğinde bir önceki günün kapanış değeri ( yani ref(c-1) ) doğru çekilmiyor ! Problem bar sayısından ziyade buradan kaynaklanıyor !!!
şu minik kodu (nw=-1 yani gün başında iken bir önceki günün kapanışını gösteren kod) kullanarak ne demek istediğimi grafik üzerinde anlatayım.
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
If(nw,REF(C-1),0)
5 dk.lık grafik'te 22 haziran günlük kapanışı 4.27 ve 21 haziran günlük kapanışı 4.06 olarak çekilmekte. Ancak GÜNLÜK grafikte baktığımızda 22 haziran günlük kapanışı 4.24 ve 21 haziran günlük kapanışı 4.04 olarak görülmekte. Demek ki alt frame lerde iken günlük kapanış datasının okunmasında problem var. Vakit bulunca bu problemi çözmek için kafa patlatırım.
Kolay gelsin.

Yer İmleri