Rate Of Change fonksiyonu
bir önceki sayfada bahsedilen formül, aynı zamanda Rate Of Change fonksiyonu kullanılarak ta yazılabilir. Önce göstergeye bir bakalım ve bu fonksiyon ile aynı formülü yazmaya çalışalım.
Öncelikle göstergenin tanımı;
………………………………….Rate Of Change…………………………………
SYNTAX…………………roc( DATA ARRAY, PERIODS, DIFF_METHOD )
FUNCTION………………DIFF_METHOD la belirlenmiş metodu kullanarak DATA ARRAY kısmında belirtilen verinin PERIODS kısmında belirtilen
periyod arasındaki değişim değerini hesaplar. (geçerli DIFF_METHOD ları PERCENT ve POINTS dir. Kısaltma olarak % ve $ kullanılabilir)
EXAMPLE……………….roc(CLOSE, 12, PERCENT) formülü bize 12 günlük kapanış fiyatının yüzde olarak değişimini gösterir.
Şimdi daha önceki formülü hatırlayalım.
c-ref(c,-1) idi formül.
Şimdi aynı formülü bir başka şekilde yazalım.
İsmine “Fiyat değişimi 2” diyelim.
Roc(c,1,$)
Eğer yüzdesel bir değişimi istiyorsanız dolar işaretini yüzde ( % ) işareti ile değiştirebilirsiniz.
Ayrıca 1 rakamını farklı bir rakamla deneyerek periyodu değiştirebilirsiniz.
Formüller üzerinde denemeler yapmaktan çekinmeyin. Eğer formüle zarar vereceğinizi düşünüyorsanız formülü kopyalayıp ikinci bir formül oluşturun ve oynamaları ikinci formül üzerinde yapın, en azından formülü bozsanız bile ilk sakladığınız formül sizin yedeğiniz olarak duracaktır.
metastockta mantıksal kararı
Mantıklı Olmak
Mantık her insanda farklı anlamlar yaratır.
Karışıklıktan kaçınmak için burada metastock formül dilinin matematiksel karşılaştırmalar üzerine kurulmuş iki seçenek arasındaki mantıksal kararı tanımlanacak.
Mantıksal karardan kastedilen şey şudur;
Metastock bir seçim yapmaya zorlanmaktadır. Seçim daima iki seçenekle sınırlandırılmış ve matematikle bir şeyi, başka bir şeyle kıyaslama üzerine kuruludur.
Bu, metastockta mantıksal kararın daima 3 ayrı parçaya bölünebileceği anlamına gelir. İlk bölüm matematiksel karşılaştırmadır. Bunu karşılaştırmanın doğru olup olmadığı seçeneği izler. Son bölüm ise seçimin yanlış olup olmadığı seçeneğidir.
Bu 3 bölümü şöyle gösterebiliriz ;
... (1.bölüm)…(2.bölüm)……..(3.bölüm)
IF( şart, doğru sonuç, yanlış sonuç )
Buna benzer örnekleri gerçek yaşantımızda da yaşarız.
IF( A markası ucuzsa, A markası al, değilse B markası al )
Veya
IF(ışık yeşil ise, geç, değilse bekle ) gibi.
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.
AND kelimesi metastockta önemli kelimelerden biridir
şimdi incelemek zorunda olduğumuz farklı durumlar olduğunu varsayalım. Gerçek yaşamdan örnek vermek gerekirse;
…..kazak ucuz ve kaliteliyse al, değilse alma
[B]AND[/B] kelimesi metastockta önemli kelimelerden biridir. AND kelimesinin her iki tarafındaki şartın da doğru olması gerekir. Aksi durumda tüm cümlenin yanlış olduğu anlamı ortaya çıkar. Yani;
Şart 1…………………şart 2…………………sonuç
Doğru…..AND……..doğru………..=………doğru
Doğru….AND……..yanlış………..=………yanlış
Yanlış…AND……..doğru….……..=………yanlış
Yanlış….AND…….yanlış………=………..yanlış
AND fonksiyonunu kullandığınızda her iki şartı da parantezler içine almanız metastock programının kıyasladığınız şartları daha iyi anlamasına yardımcı olur. Bu gerekli değildir ancak iyi bir güvenlik tedbiri olur.
Alıştırma:
If ‘li ilk alıştırmamızda 40 günlük basit hareketli ortalamayı kullanmıştık. Şimdi de şunu farz edelim. Kapanışın 40 günlük basit hareketli ortalama ve 120 günlük basit hareketli ortalama üzerinde olduğu zamanı bulmak isteyelim. Tekrar metastock doğru olan durumlar için 1 yanlış olan durumlar için 0 ‘ı gösterecektir.
Şimdi bu formülü yazmaya çalışın. Her iki durumu da parantezler içine almayı unutmayın. Bakalım sizin yaptığınız ile verilen cevap uyuşuyor mu ?
müfettişin notu :
AND (küçük harfle de yazabilirsiniz MS onu büyütür kendiliğinden) yazarken önünde arkasında boşluk bırakmanız gerekir. eğer ara bırakmazsanız AND tanınmaz. aynı konu OR için de geçerlidir.
örnek:
yanlış:
c>mov(c,7,s)andmacd()>mov(macd(),5,s)
doğru:
c>mov(c,7,s) and macd()>mov(macd(),5,s)