İlk göstergen
Bu sayfa seni editörü açmaktan grafikte kendi çizgini görmeye kadar götürür. Tek satırla başlarsın, sonuna geldiğinde ekranında çalışan bir gösterge olur.
Gösterge, fiyattan bir değer hesaplayıp onu grafiğe çizen küçük bir programdır. Hesabı bir kez yazarsın, terminal onu her bar için yeniden çalıştırır. Senin işin hangi değeri istediğini söylemek.
Editörü aç, tek satır yaz
Grafiğin altındaki kod editörünü aç ve boş bir betik oluştur. Yazacağın ilk şey bir çizim çağrısı olsun. plot, verdiğin değeri bar bar grafiğe döker.
// her barin kapanis fiyatini grafige cizer plot(close)
Fiyat panosunda kapanışları birleştiren ince bir çizgi belirir. Çizgi her mumun kapanış ucundan geçer.
İki eğik çizgiyle başlayan satır yorumdur. Terminal onu çalıştırmaz; kodu okuyan insan için oradadır. Yorum yazmak sonradan kendi koduna döndüğünde en çok işine yarayan alışkanlıktır.
Kodu yazdıktan sonra çalıştırmayı unutma. Editör, çalıştırılmamış kodu grafiğe uygulamaz. Çizgi görünmüyorsa önce betiğin gerçekten çalıştığından emin ol.
Bar, seri ve close
Grafikteki her mum bir bardır. Bir barın dört fiyatı vardır: açılış, en yüksek, en düşük ve kapanış. Kodda bunların adı open, high, low ve close.
close tek bir sayı değildir. Her bar için ayrı bir değer taşıyan bir seridir. plot(close) yazdığında tek nokta değil uçtan uca bir çizgi görmenin sebebi budur.
- open — barın açıldığı fiyat
- high — bar içinde görülen en yüksek fiyat
- low — bar içinde görülen en düşük fiyat
- close — barın kapandığı fiyat, göstergelerin en sık kullandığı kaynak
- hl2 — en yüksek ile en düşüğün ortası; kapanıştan daha az titrer
- volume — o barda gerçekleşen işlem miktarı
// ikinci arguman kunyede gorunen baslik, ucuncusu hex renk plot(close, "Kapanis", "#787b86") // hl2 barin orta noktasidir: (high + low) / 2 plot(hl2, "Bar ortasi", "#2962ff")
Aynı panoda iki çizgi: gri kapanış çizgisi ve mavi orta nokta çizgisi. Mavi olan daha yumuşak seyreder.
plot'a verdiğin ikinci değer başlıktır ve grafiğin künyesinde görünür. Başlık yazmazsan çizgileri birbirinden ayırmak zorlaşır; ikiden fazla çizgide bu hemen can sıkar.
İlk göstergen: hareketli ortalama
Ham fiyat çizgisi çok titrer, yön okunmaz. Bu yüzden genellikle son birkaç barın ortalaması alınır. sma bu işi senin yerine yapar: verdiğin seriyi verdiğin pencere boyunca ortalar ve sonucu yine bir seri olarak döndürür.
// son 20 barin ortalamasi; her yeni barda yeniden hesaplanir ortalama = sma(close, 20) plot(close, "Kapanis", "#787b86") plot(ortalama, "SMA 20", "#2962ff")
Gri kapanış çizgisinin ortasından geçen, ondan çok daha düz mavi bir SMA 20 çizgisi. Fiyat mavi çizginin üstünde kaldığı sürece yön yukarı sayılır.
İlk 19 barda SMA 20 boştur, çünkü ortalaması alınacak kadar bar yoktur. Grafiğin sol ucunda çizginin geç başlaması hata değildir; uzunluk kadar bar birikmeden gösterge değer üretemez.
Başlık ve renk vermek
Renk üçüncü argümandır ve hex olarak yazılır. Bir hesabı iki kez yazmak yerine değişkene al; hem kod kısalır hem aynı seriyi başka yerde de kullanabilirsin.
hizli = sma(close, 10) yavas = sma(close, 50) plot(hizli, "SMA 10", "#26a69a") plot(yavas, "SMA 50", "#ef5350") // iki cizgi arasindaki alani yari saydam maviye boya fill(hizli, yavas, "#2962ff22")
Hızlı yeşil ve yavaş kırmızı iki ortalama; aralarındaki alan yarı saydam maviyle dolar. Bant genişledikçe hareketin hızlandığını görürsün.
Hex rengin sonuna iki karakter daha eklersen saydamlık verirsin. #2962ff22 ile #2962ff aynı mavidir; ilki arkasındaki barları görmeni sağlar.
Ayrı panoda çizmek
Bazı göstergeler fiyatla aynı ölçekte değildir. RSI 0 ile 100 arasında gezer; fiyat panosuna konursa çizgi ekranın dibinde ezilir. plot'un dördüncü argümanına bir pano adı yazarsan değer aşağıda kendi panosuna gider.
guc = rsi(close, 14) // dorduncu arguman bir alt pano adidir plot(guc, "RSI 14", "#7e57c2", "guc") hline(70, "asiri alim", "#ef5350") hline(30, "asiri satim", "#26a69a")
Fiyatın altında mor bir RSI çizgisi taşıyan yeni bir pano; 70 ve 30 eşikleri kesikli yatay çizgilerle işaretlenir.
Aynı pano adını kullanan bütün plot çağrıları tek bir panoda toplanır. Pano adı yazmazsan terminal değerin aralığına bakıp kendisi karar verir.
Uzunluğu ayarlanabilir yapmak
20 sayısını koda gömersen değiştirmek için her seferinde kodu açman gerekir. input ile sayıyı ayar paneline taşırsın; değer orada değişir, kod aynı kalır.
uzunluk = input(20, min=5, max=200, step=1, name="Ortalama uzunlugu") ortalama = ema(close, uzunluk) plot(close, "Kapanis", "#787b86") plot(ortalama, "EMA", "#ff9800")
Ayar panelinde 5 ile 200 arasında değiştirilebilen bir uzunluk alanı; turuncu EMA çizgisi sen değeri değiştirdikçe yeniden çizilir.
min ve max verirsen alan bir aralığa kapanır, kimse 0 ya da eksi uzunluk yazamaz. Adı yazmayı da ihmal etme; panelde tek başına duran bir sayı hiçbir şey anlatmaz.
Sinyali barın üstünde işaretlemek
Çizgi yönü gösterir ama anı göstermez. Fiyatın ortalamayı yukarı kestiği barları görmek istiyorsan o barlara bir şekil koy. crossover yalnızca kesişimin olduğu barda doğrudur, sonrasında sıfırlanır.
ortalama = sma(close, 20) plot(ortalama, "SMA 20", "#2962ff") // yalnizca kesisim barlarinda, barin altina yesil ucgen plotshape(crossover(close, ortalama), "Yukari kesis", "triangleup", "belowbar", "#26a69a")
Mavi SMA 20 çizgisi ve fiyatın onu yukarı kestiği her barın altında yeşil bir üçgen. Aradaki barlarda hiçbir şey çizilmez.
Buraya kadar geldiysen ekranında çalışan bir gösterge var: bir ortalama, bir renk, bir de sinyal işareti. Bundan sonrası aynı üç adımın tekrarıdır — değeri hesapla, çiz, koşulu işaretle.
Sık yapılan hatalar
- Rengi başlığın yerine yazmak. plot'ta sıra seri, başlık, renk, pano biçimindedir; hex kodu ikinci sıraya koyarsan renk değil başlık olur.
- Aynı hesabı iki kez yazmak. sma(close, 20) satırını iki yerde tekrarlamak yerine bir değişkene al.
- 0 ile 100 arasında gezen bir göstergeyi fiyat panosunda aramak. Pano adı vermeden RSI çizersen değer aralığına göre yerleştirilir, beklediğin yerde olmayabilir.
- Çok kısa bir pencere seçmek. sma(close, 2) neredeyse fiyatın kendisidir ve hiçbir şeyi yumuşatmaz.
- İlk barlardaki boşluğu veri eksikliği sanmak. Uzunluk kadar bar birikmeden gösterge değer üretemez.
Bu sayfada kullandığın işlevler
plot(series, title?, color?, pane?, style?, linewidth?, linestyle?, offset?, display?)
Değer döndürmez; verdiğin seriyi bar bar birleştirip grafiğe çizgi olarak çizer.
sma(source, length)
Her bar için son length barın aritmetik ortalamasını taşıyan seri.
ema(source, length)
Son barlara daha çok ağırlık veren üstel hareketli ortalama serisi.
rsi(source, length)
0 ile 100 arasında salınan göreceli güç serisi.
hline(price, title?, color?, style?, width?, display?)
Değer döndürmez; sabit bir fiyat seviyesine yatay çizgi çizer.
plotshape(series, title?, style?, location?, color?, offset?, text?, textcolor?, size?, display?)
Değer döndürmez; koşulun doğru olduğu barlara fiyat panosunda bir şekil koyar.