Haber Akışı
Ana Sayfa / Metastock Bölümü / Metastock Öğreniyoruz / metastock formül dilinde mantık if() fonksiyonu ile uygulanır

metastock formül dilinde mantık if() fonksiyonu ile uygulanır

metastock formül dilinde mantık if() fonksiyonu ile uygulanır. 3 parçadan oluştuğunu belirtmiştik.

SYNTAX……………………………………if( DATA ARRAY > >= < <= <> = DATA ARRAY , THEN DATA ARRAY, ELSE DATA ARRAY )

FUNCTION……………………………….eğer şartsal fonksiyon doğruysa ikinci parametre, değilse 3. parametre sonucunu verir.

EXAMPLE………………………………. “ if( 1<2,3,4)” formülü bize sürekli 3 değerini verir. Sembol…………………..anlamı……………….örnek…………….. >__________________büyüktür_____________2>1

>=________________büyüktür veya eşittir___ (2+2)>= 4

<_________________küçüktür_____________3<4 <=________________küçüktür veya eşittir___(3-1)<=2 <>_______________eşit değildir____________(3-1)<>3

=_______________eşittir__________________(2+2)=4

alıştırma:

bir hissenin ne zaman 40 günlük basit hareketli ortalama üzerinde olduğunu öğrenmek istediğinizi farzedelim. Hisse hareketli ortalama üzerinde olunca bize 1 değerini, olmadığı zaman 0 değerini versin. Böyle bir formülü yazmaya çalışın. Cevap: if(c>mov(c,40,s),1,0)

if fonksiyonu iyi kullanılırsa çok yerde çözüm olur ancak işinize geldiği gibi düşünürseniz olmaz.
birkaç şart peşpeşe ya da iç içe olabilir. bu durumda şartlardan biri gerçekleşirse sonrakilere bakılmaz.

şimdi içiçeye bir örnek
eğer (if) kapanış (c), kapanışın 5 günlük basit hareketli ortalamasının (mov(c,5,s)) üstünde ise 1;
eğer (if) kapanış (c), kapanışın 10 günlük basit hareketli ortalamasının (mov(c,5,s)) üstünde ise -1; bu her ikisi değilse sıfır olsun
diye düşünüyorum daaa formülü yazmadan önce bir sorayım dedim iyi düşünmüş müyüm? mantık hatası falan var mı?

önceki sorunun cevabı:

if( c > mov(c,40,s),1,0 )

eğer kapanış 40 günlük basit hareketli ortalama üzerindeyse 1 değerini, değilse 0 değerini al.

If fonksiyonunda kullandığımız formül bazılarının Binary Wave dedikleri şekli gösterir.
Binary Wave terimi 0 ve 1 leri kullanan bir sayım şeklidir. Bundan dolayı Binary Wave 0 ve 1 arasında ileri geri giden bir çizgidir.

Daha da profesyonel olup temel binary wave üzerinde iyileştirmeler yapıp artık 0 ve 1 de durmamasını isteyebilirsiniz. Ancak halen bunun kökeninde if() fonksiyonu olacaktır.

Binary wave başka nedenlerden de önemlidir. Sistem testler,taramalar, expert advisor bölümündeki formüller bu şekilde yaratılır.

Örneğin, kapanışın 40 günlük basit hareketli ortalamadan yüksek olduğu, sistem testinde pozisyon açmak için kullanabilir. Ya da bir taramada bu durumda olan senetleri bulmak amacıyla filtre olarak kullanılabilir. Yine expert advisor bölümünde bu durum boğa piyasasını göstermek için kullanılabilir. Saydığımız bütün bu örneklerde aynı şart kullanıldı. Bu araçlardaki tek farklılık if() fonksiyonunun otomatik olarak var sayılmasıdır. Bu yüzden önceki formülü şu şekilde kısaltabiliriz.

c>mov(c,40,s)

bu kısaltılmış formülün aynısı indicator builder ile de yazılıp çizilebilir. Bir şart formül olarak yazılıp ek bir bilgi verilmediğinde metastock formülü ;

if( şart, 1, 0 ) olarak algılar.

Metastock, öteki bilgisayar dilleri gibi yanlış durumu 0 olarak gösterir. Mantıksal olarak yanlış olmayan şey doğru olmalıdır. Basit olmak adına doğru durumlar için 1 kullanılır. Daha önceki binary wave örneğinde olduğu gibi bir binary wave yaratır.

Sistem test, expert, exploration yaptığınızda formüller doğru veya yanlış şartlara bakar. Metastock 0’ ı yanlış olarak 0’ dan farklı herhangi bir rakamı da doğru olarak tanımlar.

Bu Da Dikkatini Çekebilir

Sistemsizler için.. Greed-Fear..

Yeni proje nedeniyle bugün İstanbul’daydım.. Salı ve Çarşamba günü de gidip geleceğim.. Eve gelip bugün …

matriks sistem tester ın da müthiş bir bug (problem) ını keşfettim

Günaydın arkadaşlar, Tatilden dolayı yazamıyorum ancak arada okuyorum. Tatili sistemlerimi geliştirmek için bir fırsat olarak …

Leave a Reply

Your email address will not be published. Required fields are marked *