EN YÜKSEK DEĞER YATAY ÇİZGİ ÇİZME

EN YÜKSEK DEĞER YATAY ÇİZGİ ÇİZME

Trend Çizgisi Oluşturma yazımızdan sonra başka bir örnek üzerinden ilerleyeceğiz. Sabit bir trend çizgisi yerine grafik yenilendiğinde en yüksek değeri baz alıp o değerden bir yatay çizgi çizen kod oluşturacağız.

//@version=4
study(title="En Yüksek Değer Çizimi", overlay=true)

var yuksekDeger = line.new(x1=bar_index[10], y1=close[10], x2=bar_index,             y2=close, color=color.green, extend=extend.both)

Bir çizgi oluşturuyoruz ve oluşturduğumuz çizgiyi yuksekDeger değişkenine atıyoruz. Buradaki kod bize ne anlatıyor:

x1=bar_index[10]     => çizginin başlangıç yeri mevcut barın 10 bar gerisinden                                             olsun.
y1=close[10]            => çizginin başlangıç fiyat değeri 10 bar öncesinin kapanış                                         değeri olsun.
x2=bar_index           => çizginin bitiş barı mevcut bar olsun.
y2=close                  => çizginin bitiş yerindeki fiyat mevcut barın kapanış fiyatı                                         olsun.
color=color.green      => çizginin rengi yeşil olsun.
extend=extend.both  => çizginin boyu 10 bar önceden başlayıp mevcut bara                                                 geldiğinde bitmesin. Her iki tarafa da uzasın.

yeniYuksek = (high == highest(high, 20))

Bu kodda ise yeniYuksek değişkenine bir atama yapıyoruz. Peki yapılan atama bize ne anlayıyor.

highest(high, 20), highest fonksiyonu iki değer alır. Burada aldığı değerler bar sayısı ve fiyat bilgisi. 20 bar dikkate alınacak. Bu 20 bar içerisindeki en yüksek değerlerin (kapanış fiyatı değil) en yükseği alınacak.
(high == highest(high, 20)), yüksek değer son 20 bardaki yüksek değerlerin en yükseğine eşit mi? Eşit ise True, değil ise False değeri döndürür. 
yeniYuksek değişkenimizin değeri ya True ya da False olacak.

if (yeniYuksek)
    line.set_xy1(id=yuksekDeger, x=bar_index[10], y=high)
    line.set_xy2(id=yuksekDeger, x=bar_index, y=high)

Ardından koda bir if bloğu ekliyoruz. yeniYuksek değişkeni True değerini döndürdüğünde blok içindeki kodlar çalışır.
line.set_xy1 foksiyonu bize çizgimizin başlangıç noktasını verir, line.set_xy2 fonksiyonu ise bize çizgimizin bitiş noktasını verir. Her ikisinde de çizgimizin başlangıç ve bitiş noktalarını girmeden daha önce yuksekDeger değişkenine atadığımız çizgimizi id=yuksekDeger olarak yazmamız gerekiyor.
Başlangıç noktası yeniYuksek olarak tanımladığımız değişkenin 10 bar öncesi. Bitiş noktası ise yeniYuksek olarak tanımladığımız değişkenin olduğu bar. 

Kodun tamamı:

//@version=4
study(title="En Yüksek Değer Çizimi", overlay=true)

var yuksekDeger = line.new(x1=bar_index[10], y1=close[10],
     x2=bar_index, y2=close, color=color.green,
     extend=extend.both)

yeniYuksek = (high == highest(high, 20))

if (yeniYuksek)
    line.set_xy1(id=yuksekDeger, x=bar_index[10], y=high)
    line.set_xy2(id=yuksekDeger, x=bar_index, y=high)








Yorumlar

Bu blogdaki popüler yayınlar

TREND ÇİZGİSİ OLUŞTURMA