Fonsiyonlar

‘Fonksiyonlar’ penceresi içinde indikatör yazarken kullanacağımız muhtelif fonksiyonlar vardır. Bu mini pencerenin hemen altında da, gene formül yazarken kullanabileceğimiz muhtelif trigonometrik / matematiksel fonksiyonlar bulunmaktadır. Fonksiyonlar, özel matematiksel işlemler yapmayı sağlayan uygulamalardır. Açıklamaları aşağıdadır:

Abs (Absolute): Mutlak değerini alır.

Yazım: Abs(Data)
Mutlak değerini alması demek, sonuç negatif (-) bile olsa, pozitife (+) dönüştürmek demektir.
(Sonuç pozitif ise öyle kalır)

Bars Since:

Yazım: BarsSince(Data)
Tanımladığımız koşulun gerçekleşmesinden bu yana geçen bar sayısını hesaplar. Örnek: Barsince ( macd (26,12,9) < 0 )
Burada vereceği sonuç, yukarıdaki parametrelere göre hesaplanan Macd nin 0 dan küçük olduğu en son bardan bu yana geçen bar sayısı olacaktır.

Correlation:

Yazım: Correl(Data1(independent),Data2(dependent),Periyot, Shift)
Belirli bir periyot için Data2’nin Data1’e göre korelasyonunu hesaplar. Bunu yaparken datanın N gün kadar Shift (Öteleme) yapılmış değerini alır.

Cross:

Yazım: Cross(Data1,Data2)
Cross fonksiyonu; yazılı ilk datanın, ikinci datayı aşağıdan yukarıya kestiği anı ifade eder. Bu haliyle klasik > < kullanımından farklıdır.
→ Örnek: Cross (C,mov(c,5,s)) Bu formülün vereceği sonuç, Data serisinin (Grafik Sembolünün) kapanışının, 5 günlük basit ortalamasını kestiği bar olacaktır.
Koşul kapanışın 5 günlük basit ortalamayı yukarı doğru kestiği bar içinde gerçekleşmiştir. Bununla beraber kapanış ortalamanın üzerinde kalmaya devam etse bile diğer tüm barlarda koşul gerçekleşmesi söz konusu olmaz. Ancak kapanış ortalamayı aşağıya kesip, sonra tekrar yukarıya keser ise, bir kez daha koşul gerçekleşmiş olur.

Cumulate:

Yazım: cum(data)
Grafikte ilk datadan itibaren data düzeninin toplamını kümülatif olarak hesaplar. Örnek: Cum (1) grafiğin başından itibaren her bar için 1 değeri ekleyerek artar. Cum (C) ise grafiğin başından itibaren bütün kapanışların toplamını hesaplar. Bu sayede farklı tarzda ortalama hesaplaması yapabiliriz.

Custom Trend:

Yazım: MYTREND("Date1",Val1,"Date2",Val2)
Bu fonksiyonun asıl kullanım amacı manuel olarak çizmiş olduğunuz bir trendi kopyalayarak sisteminizin içine almaktır. Çizmiş olduğunuz bir trend üzerinde sağ klik yapıp Kahin İçin Kopyala seçimini yaparsanız bunu indikatör builder (veya sistem tester veya expert advisor) içinde kullanabilirsiniz. İndikatör builder içinde tanım kısmına gelip yapıştır derseniz yukarıdaki şablona uygun olarak formülünüz yazılır. MYTREND("09.11.18 15:00",7.78,"04.12.18 17:00",8.32) Burada görebileceğiniz gibi, dilerseniz tarih ve değerleri manuel girerek de sistem içinde trend çizimi yapabilir, buna bağlı koşul yazabilirsiniz.

Data Kanal:

Yazım: DataKanal(DATA,Bar sayısı,Bitiş Noktası (bugün için 0, dün için -1),Y=yükselen D=düşen,%Seviye)
Bu fonksiyon Data yerine yazacağınız herhangi bir veri için trend çizebilmenizi sağlar. Ek olarak %Seviye kısmına yazacağınız veri ile paralel trendler çizebilir böylece kanal oluşturabilirsiniz.

Data Trend:

Yazım: DataTrend(DATA,Bar sayısı,Bitiş Noktası (bugün için 0, dün için -1),Y=yükselen D=düşen)
Bu fonksiyon Data yerine yazacağınız herhangi bir veri için trend çizebilmenizi sağlar. Mesela RSI indikatörü için bir trend çizdirebilirsiniz. Bunu sembolün fiyatı için çizdireceğiniz trend ile karşılaştırarak uyumsuzluk arayabilirsiniz.

Day Of Month:

Yazım: DAYOFMONTH()
İlgili barda ayın kaçıncı gününde olduğunu gösterir. İlgili günün sayısal gün değeri gelir.

Day Of Week:

Yazım: DAYOFWEEK()
Pazartesi için 1 den başlayarak Cuma günü için 5 yazılır. İlgili barda haftanın kaçıncı gününde olunduğunu gösterir. Sal gün değeri (1-5 arası ) gelir.

Formula Call:

Yazım: FML("Indicator")
Kullanıcının tanımladığı bir indikatör değerinin, başka bir indikatörde yada koşul içinde kullanılmasını sağlar. İndikatör Builder’da var olan / oluşturduğumuz herhangi bir indikatörü explorer’da / bir başka yerde sistem / farklı bir indikatör oluştururken Formula Call fonksiyonu ile çağırıp kullanabilirsiniz. Formula Call’u çift tıkladığınızda koşul kısmına FML("Indicator") olarak gelen koşulun içinde indikatör kısmına çağırmak istediğiniz indikatörün kısa adını yazmanız yeterlidir. Bu kısa ad söz konusu indikatörün tanımlanırken, indikatör builder’da verilen kısa adıdır.
→ Örnek: FML("MTX") şeklinde. Bu ifade “MTX” kısa adıyla yazılan indikatörün değerini getirir.
İpucu: Eğer FML ile çağrılan indikatör 1’den fazla çizgiye sahip ise, bu yazım şekli her durumda ilk çizgiyi çağırır. Eklenen bir özellik sayesinde sonraki satırların da çağrılabilmesi mümkün hale gelmiştir.
FML("MTX",3) şeklinde yazınca, çağırılan indikatörün 3. Çizgisini oluşturan değer gelecektir.
Dikkat: Eğer çağırılan indikatör verieln numaradan daha az sayıda çizgiye sahip ise, öyle bir çizgi olmadığı varsayılır ve sonuç sıfır (0) gelir.

Frac:

Yazım: frac(Data)
Data yerine gelen verinin küsuratını getirir. Mesela data yerine yazdığınız veri 8.21 değerine sahipse o barda frac fonksiyonunun getireceği değer 0.21 olacaktır.

Highest:

Yazım: Highest(data)
Grafikte ilk bardan itibaren data serisinin en yüksek değerini hesaplar.
→ Örnek: Highest(RSI()) Bu fonksiyon ilk datadan itibaren en yüksek RSI değerini hesaplar.

Highest High:

Yazım: HHV(Data,Periyot)
Belirtilen periyotta data serisinin en yüksek değerini hesaplar.
→ Örnek: HHV(RSI(),100) Fonksiyon yukarıdaki şekliyle, geçmiş 100 barlık periyotta en yüksek RSI değerini hesaplar.

Highest Since:

Yazım: highestsince (N.,koşul,Data)
Koşulun gerçekleştiği en yakın “N”inci olaydan bu yana data serisinin aldığı en yüksek değeri hesaplar.
→ Örnek: highest since (2 , RSI()>80 ,C) fonksiyonunda, RSI değerinin 2. sefer 80 in üzerinde olduğu bardan bugüne kadar gerçekleşen en yüksek kapanış değerini verir.

Highest High Since Bars:

Yazım: highestsincebars(N.,koşul,Data)
Koşulun gerçekleştiği en yakın “N”inci olaydan bu yana data serisinin aldığı en yüksek değeri gördüğü bardan son bara kadar geçen bar sayısını hesaplar.
→ Örnek: highestsincebars(2 , RSI()>80 ,C) fonksiyonunda, RSI değerinin 2. sefer 80 in üzerinde olduğu bardan bugüne kadar gerçekleşen en yüksek kapanış değerinden son bara kadar olan bar sayısını verir.

Hour:

Yazım: HOUR() Zamana bağlı koşul yazarken saati belirlemek için kullanabilirsiniz.

IF:

Yazım: if(koşul,Then DA,Else DA)
Koşul kısmına girilen koşul doğru ise, Then DA yerine yazılan işlem uygulanır, koşul yanlış ise Else DA yerine yazılan işlem uygulanır.
→ Örnek: if( C > mov(c,10,s), rsi(9), 0 ) Bu IF fonksiyonu örneği şu şekilde okunur: Eğer bu barın kapanışı, bu barın 10-barlık basit hareketli ortalamasından büyükse, 9-barlık bir RSI al / çiz, aksi halde bir şey yapma / sıfır çiz.

INSIDE PREV BAR:

Yazım: inside()
İlgili barın bir önceki bara göre içte olması (o bar tarafından kapsanması) durumunda sonuç verir. İçte olmasının (Kapsanmasının) açıklaması: İlgili barın yükseğinin önceki barın yükseğinden küçük olması ve düşüğünün önceki barın düşüğünden büyük olması durumunda önceki barın içinde olduğu tanımı geçerli olur.

Kanal:

Yazım: Kanal(Bar sayısı,Bitiş Noktası (bugün için 0, dün için -1),Y=yükselen D=düşen,%Seviye)
Bu fonksiyon ile otomatik trende ek olarak paralel trendler çizebilirsiniz. %Seviye kısmına yazacağınız veri ile paralel trendlerin mesafesini ayarlayabilirsiniz.

Last Value:

Yazım: Lastvalue(data serisi)
İstenen datanın son hesaplanan değerini sabitleyerek data düzenine yüklenmesini sağlar. Bu fonksiyonun sonucu herhangi bir fonksiyonun içinde sabit olarak kullanılabilir.
→ Örnek: "lastvalue(rsi(14))" formülü, 14-günlük RSI indikatörünün son değerini getirir. Bu değeri sabitleyip grafiğe ekler. Böylece son değere göre bulmak istediğiniz farkı bulabilirsiniz. Eğer data serisi belirtilmezse, (örneğin, yalnızca 100-günlük data yüklendiğinde, 200-günlük hareketli ortalama değerini isterseniz, LastValue fonksiyonu sıfır döner.
Bu fonksiyon, başka bir data serisinin son değeriyle birlikte tüm data serisini yüklemesi sebebiyle, bir formülün geleceği dönük olmasına izin vermektedir. Bu, pek çok indikatör için kabul edilemezdir ancak pattern tanımlama gibi konularda oldukça faydalıdır.

Load Daily Data:

Yazım: LoadDaily("Sembol",DataSerisi O H L C W V TLVOL,PrevDayCount)
Grafik sembolünün veya istenen bir sembolün önceki GÜN’lere ait temel fiyat verilerini getirir. Sembol kısmını boş bırakırsanız doğrudan grafik sembolü verileri gelir. Sembol yerine bir sembolün kısa kodunu yazarsanız o sembolün verileri gelir. PrevDayCount önceki günlerden hangisini seçeceğimizi belirlemek için kullanılır. 1 yazılması halinde önceki gün verileri gelecektir.
İpucu: Bu fonksiyon alt periyotlarda (GÜN altı periyotlar) çalışır. Periyodu GÜN veya yukarısı seçerseniz çalışmaz.

Lowest:

Yazım: Lowest(data serisi)
Grafikte ilk bardan itibaren data serisinin en düşük değerini hesaplar. Lowest(RSI()) İlk datadan itibaren en düşük RSI değerini hesaplar.

Lowest Low:

Yazım: LLV(Data,Periyot)
Belirtilen periyotta data serisinin en düşük değerini hesaplar.
→ Örnek: LLV(RSI(),100) 100 Barlık periyotta en düşük RSI değerini hesaplar.

Lowest Since:

Yazım: lowestsince(N.,koşul,Data)
Koşulun gerçekleştiği en yakın “N”inci olaydan bu yana data serisinin aldığı en düşük değeri hesaplar.
→ Örnek: lowestsince(2 , RSI()>30 ,C) fonksiyonunda, RSI değerinin 2. sefer 30 un üzerinde olduğu bardan bugüne kadar gerçekleşen en düşük kapanış değerini verir.

Lowest Since Bars:

Yazım: lowestsincebars(N.,koşul,Data)
Koşulun gerçekleştiği en yakın “N”inci olaydan bu yana data serisinin aldığı en düşük değeri gördüğü günden bugüne geçen süreyi hesaplar.
lowestsincebars(2 , RSI()>30 ,C) fonksiyonunda, RSI değerinin 2. sefer 30 un üzerinde olduğu bardan bugüne kadar gerçekleşen en düşük kapanış değerinden son bara kadar olan bar sayısını verir.

Maximum:

Yazım: MAX(Data1,Data2) Data1 ve Data2 den büyük olanı seçer.

Minimum:

Yazım: MIN(Data1,Data2) Data1 ve Data2 den küçük olanı seçer.

Minute:

Yazım: MINUTE()
Zamana bağlı koşul yazarken dakika belirlemek için kullanabilirsiniz. MINUTE()=10 örneğindeki gibi yazılır. Dakikanın 10 olduğu zamanları bulur.

Month:

Yazım: MONTH()
İlgili barda içinde bulunulan ayın rakamsal karşılığı (1-12) kullanılarak koşul oluşturulabilir. MONTH()=10 örneğindeki gibi yazılır. Ayın 10 olduğu barları seçer.

OUTSIDE PREV BAR:

Yazım: outside()
İlgili barın bir önceki barı kapsıyor olması durumunda sonuç verir. Kapsamanın açıklaması: İlgili barın yükseğinin önceki barın yükseğinden büyük olması ve düşüğünün önceki barın düşüğünden küçük olması durumunda önceki barı kapsıyor olduğu tanımı geçerli olur.

PEAK:

Yazım: peak(Nth,DATA,%Min Chng)
Zig zag indikatörünü temel alır. Tanımlanan yüzdelik orana göre, seçilen datanın dönüş yaptığı yüksek seviyeyi gösterir. Nth kısmı ile geriye doğru kaçıncı en yükseği baz almak istiyorsanız onu belirleyebilirsiniz.

PEAKBARS:

Yazım: peakbars(Nth,DATA,%Min Chng)
Zig zag indikatörünü temel alır. Tanımlanan yüzdelik orana göre, seçilen datanın dönüş yaptığı yüksek seviyeden itibaren geçen bar sayısını gösterir. Nth kısmı ile geriye doğru kaçıncı en yükseği baz almak istiyorsanız onu belirleyebilirsiniz.

Power:

Yazım: POWER(C,2)
Belirtilen data serisinin üssünü alır.
→ Örnek: POWER(C,2) = karesi, POWER (C,3) = kübü ise POWER(C,4) = POWER(C,2)* POWER(C,2)

Rate of Change:

Yazım: ROC(Data, Periyot, Yöntem % TL)
Rate of Change fonksiyonu, belirlenen bir periyot üzerinden, bir data serisindeki puan veya yüzde olarak değişimi hesaplar. Yüzdesel veya puan değerleri, % veya TL olarak kısaltılabilir.
→ Örnek: ROC(C,12,%) formülü, 12-bar önceki kapanış fiyatına göre değişimini yüzdesel olarak gösterir.

Referans:

Yazım: ref(data,periyot)
Bir data serisinde, daha önceki değerleri getirmeyi sağlar. Negatif bir rakam girilmelidir.
→ Örnek: "ref(C,-12)" formülü, 12 bar önceki kapanış fiyatını gösterir. Buna göre, 12-günlük değişimi (puan olarak) "C-ref(c,-12)" olarak yazmak mümkündür.

Security Data:

Yazım: Security(“Sembol”, DataSerisi O H L C W V TLVOL)
Başka bir sembolün dilediğimiz bir datasını getirip, kullanmamızı sağlar.
→ Örnek: Security ( "DJI", C ) , Dow Jones kapanışını ifade eder. Grafikte hangi sembol olursa olsun, başka bir sembol (Burada Dow Jones) sabitlenecek ve o sembole ait değerler (Burada Kapanış) alınacaktır.

Sqr:

Yazım: Sqr(Data) Datanın karekökünü alır.

Summation:

Yazım: Sum(data,periyot)
Bir data serisi üzerinde, bugünkü değer dahil belirlenen sayıda geriye dönük periyot kadar kümülatif toplama yapar.
→ Örnek: "sum(C,12)" formülü, son 12 dönemin kapanış fiyatlarının toplamını hesaplar. Buna göre, 12-günlük basit hareketli ortalama formülü: sum(c,12)/12 olarak yazılabilir.

Trend:

Yazım: Trend(Bar sayısı, Bitiş Noktası (bugün için 0, dün için -1),Y=yükselen D=düşen)
Verilen parametrelere göre oluşturulan bir trendin bugünkü değerini verir.
→ Örnek: Trend (5,-1,D) genel yazılımı ile gösterilen trend fonksiyonu, 5 günlük, 1 bar önce sona ermiş Düşen trendin (D=Düşen, Y=Yükselen) bugünkü olması gereken değerini verir. Gerçekleşen değere bakarak trendin sonlanıp sonlanmadığını görebilme amacı ile kullanılabilir.

TROUGH:

Yazım: Trough(Nth,DATA,%Min Chng)
Peak fonksiyonu ile aynı işlevi düşük seviye için gerçekleştirir. Zig zag indikatörünü temel alır. Tanımlanan yüzdelik orana göre, seçilen datanın dönüş yaptığı düşük seviyeyi gösterir. Nth kısmı ile geriye doğru kaçıncı en düşüğü baz almak istiyorsanız onu belirleyebilirsiniz.

TROUGHBARS:

Yazım: Troughbars(Nth,DATA,%Min Chng)
Peakbars fonksiyonu ile aynı işlevi düşük seviye için gerçekleştirir. Zig zag indikatörünü temel alır. Tanımlanan yüzdelik orana göre, seçilen datanın dönüş yaptığı düşük seviyeden itibaren geçen bar sayısını gösterir. Nth kısmı ile geriye doğru kaçıncı en düşüğü baz almak istiyorsanız onu belirleyebilirsiniz.

Value When:

Yazım: valuewhen(N (adım),koşul,Data)
Koşulun doğru olduğu en yakın “n”inci olayda data serisinin aldığı değeri hesaplar.
→ Örnek: Valuewhen(1,c=h,c) formülasyonu şu anlama gelir: Kapanış değerinin (C) en yüksek değere (H) eşit olduğu geriye dönük ilk seferdeki kapanış değerini verir. Eğer, parantez içindeki adım değeri 1 değilde 2 olsaydı koşulun gerçekleştiği 2. seferdeki kapanış değerini verecekti.

Year:

Yazım: YEAR() Yılı belirlemek için kullanılabilir.