Your Welcome to Borsa Okulu
Nick:  
Pass:     
Kayıt Ol Yardım Üye Listesi Yeni Mesajlara Bak Bugünkü Mesajlara Bak

Yeni Cevap 
METASTOCK NEDİR ?
Yazar Mesaj
BorsaOkulu Çevrimdışı
Administrator
*******

Mesajlar: 1.172
Katılım: Nov 2012
Mesaj: #11
MetaStock Uzman Danışman (Expert Advisor) Nedir ?
MetaStock Uzman Danışman (Expert Advisor)'ın Anlatımı ve Uygulanışı

Uzman danışman MetaStock’ un Power Tools’ larından biri olup, çok kullanışlı bir yardımcıdır. Bunun diğerlerin farkı ise şudur:
Bir özet geçmek gerekirse:
Bir sistemimiz var ve bunu kodladık.Elimizde yeterli miktarda fonksyonumuz var.
1.Bu sistemin güvenilirliği için back test yapabiliriz.Bunu Sistem Testi (Enhanced System Tester) aracılığıyla yapabiliriz.
2.Bu sisteme uyan herhangi bir menkul kıymet var mı?, şeklinde bir araştırma için Gezgin (The Explorer)’i kullanabiliriz.
3.Artık sistemimizin iyi çalıştığını anladık.Şimdi yapmak istediğimiz MetaStock’ un seçilen menkul kıymet üzerinde canlı veri geldiği sürece bize sinyal üretmesi.
Eğer yazılan bir sistemin anlık sinyal üretmesi isteniyorsa, Uzman Danışman kullanılmalıdır.
Burada örnek olarak bir Uzman yazılacak ve nasıl kullanıldığı gösterilecektir.
MetaStock Uzman Danışman’ı (Expert Advisor) Çağırma
Tools menüsünden "Expert Advisor" seçilir. Aynı seçim standart toolbar üzerindeki kısa yol tuşundan da yapılabilir (Şapkalı adam).

[Resim: 12.23.2012-13.jpg]


Ekranın sağında ve altındaki butonlar ve işlevleri:
Close : Aktif ekranı kapatmak;
New : Yeni bir tarama oluşturmak;
Edit : Mevcut olan bir tarama formülünü incelemek ve/veya düzeltmeler yapmak;
Copy : Mevcut olan bir tarama formülünü aynen başka bir isim altında kaydedip düzeltmeler yapmak;
Delete : Mevcut olan bir tarama formülünü silmek;
Print : Varolan bir sistemi yazdırmak;
Organizer : Mevcut olan tarama formüllerini programın silinmesi, bozulması vb olaylara karşı başka bir ortama aktarıp saklamak;
Help : Yardım;
Attach : Seçilen sistemi grafik üzerine ekler;
Commentary : Seçilen sistemle ilgili yazılan bilgileri içerir.
Burada NEW diyerek öncelikle yaptığımız sistemin adını (NAME) BORSAOKULU olarak girelim

[Resim: 12.23.2012-14.jpg]


Yukarıda ki menü de bulunan sekmeler şu anlama gelmektedir:
Trends : Burada bulunan Bullish ve Bearish kısımlarına girilen kodlar sayesinde şu an da hangi trend de olduğumuzu anlayabiliriz. Örnek olması açısından grafiğe hazırda bulunan macd()’ yi eklersek aşağıdaki görüntü ortaya çıkar.

[Resim: 12.23.2012-14.jpg]


Commentary : Bu kısma yazılan yazılar uzman ile ilgili notları içerir.
Highlights : Bu kısma yazılan kodlar ile grafikteki barları girilen koşul gerçekleştiğinde farklı renkte gösterebiliriz.
Symbols : Bu kısma girilen kodlar ile örneğin al – sat sinyalleri üreten oklar yerleştirilebilir.
Alert : Bu kısım ise yazılan kodun sağlandığı anda mesaj iletilmesini sağlar.
Biz burada şimdilik sadece symbols kısmını kullanarak örnek bir sistem yazacağız:
Symbols kısmına tıklayarak oradan new sekmesine tıklıyoruz.
İsim kısmına BORSAOKULU yazınız ve alttaki kod kısmına Cross(c,mov(c,26,s)) yazıyoruz.

[Resim: 12.23.2012-14.jpg]

Graphic kısmını ise sinyalerin nerede yani grafiğin altındamı yoksa üst kısmındamı olması için ayarlıyoruz. Rengini ve büyüklüğünü seçiyoruz

Buradan “Tamam” ‘ a tıklandıktan sonra artık al sinyalimiz oluştu.

Son olarak grafiğimiz bu şekilde karşımıza çıkar.

[Resim: 12.23.2012-14.jpg]
12-23-2012 02:54 PM
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesaji bir cevapta alıntı yap
BorsaOkulu Çevrimdışı
Administrator
*******

Mesajlar: 1.172
Katılım: Nov 2012
Mesaj: #12
MetaStock Formül Dili
MetaStock Formül Dili
Metastock programının, Metastock formülasyon diline dayalı “power tools” olarak adlandırılan birçok ileri düzeyde araçları bulunmaktadır. Bu özellikler size kendi teknik analizlerinizi uyarlamanızı mümkün kılmaktadır. Bu araçlar, Uzman Danışman ( Expert Advisor),Özel Gösterge (Indicator Builder), Sistem Testi (System Tester), ve Gezgin (The Explorer) dan oluşmaktadır ve Araçlar (Tools) menüsünden ulaşılabilir.
Power Tools, Metastock programının yeteneklerini büyük ölçüde arttıran güçlü bir araçtır. Araç birçok öntanımlı fonksiyonları barındırmaktadır, fakat kullanıcıların kendi sistemlerini yazabilmeleri bu aracın değerini arttırmaktadır.
Metastock formülasyon dili, çok sayıda sembolü hatırınızda tutmanız gereken bir dil değildir. Aksine Metastock programının sayısal değerler üretmesi için kullandığı küçük matematiksel fonksiyonlar topluluğundan oluşmaktadır.
Yeni bir formül oluşturmak için Indicator Builder kullanılır. Bu araç kullanımı en kolay ve diğer araçlara temel teşkil eden bir araçtır. Tools->Indicator Builder menüsünden ulaşılabilir. Bu menüde karşınıza halihazırda varolan indikatörler gelecektir. Bu standart indikatörler kullanıcılar tarafından değiştirilemez. Özel indikatörler kullanıcı tarafından oluşturulabilir ve grafik üzerinde çizdirilebilir. Özel indikatör grafik üzerine çizdirildiği zaman Metastock programı indikatörde bulunan yazılan formulasyonu grafiğin her bir datası için hesaplayıp her değeri birbirine çizgi ile birleştirir.
Formülasyonu oluşturan öğeler
Metastock formülu bir veya birden fazla fonksiyon, operatör ve data dizilerinin mantıksal düzenlemesinden oluşmaktadır.
Fonksiyon: Özel bir matematiksel hesaplama yaptırmaya yarayan bir komuttur. Kosinüs ve hareketli ortalama fonksiyonlara verilebilecek örneklerdir. Daha karmaşık fonksiyonlar da bulunmaktadır fakat hepsi bir ya da daha fazla değeri alıp bir dizi hesaplama yapmaktadır.
Operatör: Operatörler temel olarak tek bir simge ile gösterilen fonksiyonların altkümesi olarak nitelendirilebilir. Fonksiyon kendisine verilen değerlere hesap yapmak için bunlardan yararlanır. Operatörlere örnek olarak toplama(+), çarpma(*) verilebilir.
Data dizileri: Bir Metastock data dosyasında tarihe göre kronolojik olarak düzenlenmiş dizilerdir. Örnek olarak bir hisse senedinin kapanış fiyatları ve işlem hacimleri gösterilebilir.

Formül Yazma
Daha önceden gösterge yazmadıysanız, aşağıda ki basamakları inceleyiniz
1. Araçlar (Tools) menusunden Gösterge yapıcısını (Indicator Builder)’ ı seçiniz.
2. Açılan pencerede Yeni (New) butonuna basınız.
3. Gösterge ismini Name kısmına yazınız.
4. Name’ in altındaki Formula kısmına formülünüzü yazınız.
5. Tamam (Ok)’ a tıklayınız.
6. Eğer hata mesajı alırsanız, ilk olarak yazım yanlışlarınızı kontrol ediniz ve gerekli düzeltmeleri yapınız. Program hata mesajında nerede yanlış yapıldığını gösterecektir.

Gösterge Kullanımı
Yazılan göstergeler bir kez yazıldıktan sonra programın üst kısmında bulunan quicklist denilen bölüme otomatik olarak aktarılır.


[Resim: 12.23.2012-14.jpg]



ÖRNEK INDIKATORUMUZ

Displace Indicator Forward
To displace an indicator forward, you use Ref(myInd,-p). The median and typical prices are built-in functions -- MP() is (H+L)/2 and typ() is (H+L+C)/3.

For MP, use

Period:= Input("What Period",1,250,10);
Disp:= Input("Forward Displacement",0,250,10);
EMA1:= Mov(MP(),Period,E);
EMA2:= Mov(EMA1,Period,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA:= EMA1 + Difference;
Ref(ZeroLagEMA,-Disp)

[Resim: 12.23.2012-14.jpg]



Formül Nasıl Yeniden Düzenlenir
Eğer yazdığınız formül tam olarak sizin istediğinizi gerçekleştirmiyorsa, formülün yanlış olduğunu düşünüyorsanız ya da modifiye etmek isterseniz o zaman formülün yeniden düzenlenmesi (edit) gereklidir.
Formülü Yeniden Yazmank için;
1. Gösterge yapıcısını (Indicator Builder) açınız.
2. İsmini Closing Price koyduğumuz göstergeye tıklayınız.
3. Düzenle (Edit) tuşuna tıklayınız.

Şunu söylemek gerekir ki kapanış fiyatı için “close” yazmak ile “Close” yazmak fark etmez. Bunun sebebi MetaStock kendi içerisinde çeşitli dönüşümler ile bunu büyük harfe çevirmektedir. Hatta uzun uzun yazmak yerine “c” ‘ de yazılabilinir. Aşağıda çeşitli data dizilerinin kısa yazılımları verilmiştir.


[Resim: 12.23.2012-14.jpg]

MetaStock’ da fonksiyonlar iç içe kullanılabildiği gibi fonksiyonların içinde if deyimleri de kullanılabilir.
Bir yerden başka bir yere fonksiyon çağrısı yapılacaksa; formül çağrı fonksiyonu kullanılmalıdır.Örnek olarak, if(c> ref(c,-1), 1,0) bunu bir fonksiyon olarak kayıt ettik.Adı da fiyat değişimi olsun. Sonra bu fiyat değişimini başka bir fonksiyonda kullanmak istiyoruz. Yani fiyatlarda artış olduysa 5 periyotluk hareketli ortalama hesaplatmak istiyoruz, değişmiyorsa bir şey olmasın diyoruz. Bunu tek fonksiyonda yapabileceğimiz gibi ayrı iki fonksiyonda da yapabiliriz. Bunu fml fonksiyonu ile yaparız.
Kullanımı : fml(“formül ismi”)
İf(fml(“fiyat değişimi”) = 1, mov(C,5,S),0)
Burada yapılan işlem şudur: Eğer bir önceki bara göre artış olduysa fiyat değişimi fonksiyonunun sonucu 1 olacaktır. İkinci yazdığımız fonksiyonda önce onu kontrol ettik. Şartımız 1 olduğunda yani bir önceki bara göre artış olduğunda 5 periyotluk hareketli ortalama bul, eğer artış olmadıysa sonuç 0 kalsın.

Değişken Tanımlama
Değişken tanımlama her programlama dilinde olduğu gibi bu dilde de çok faydalıdır. Tanımlama şu şekilde yapılmaktadır. Kullanmak istediğiniz isim sonra iki nokta üst üste hemen ardından eşittir ve sonra bu değişkeni eşitlemek istediğiniz veri girilmelidir.
Örneğin;
artış := if(O<C, 1,0)
if kontrolu her bar için ayrı ayrı yapılacak ve bu değer doğruysa “artış” ‘ ın değişkeni 1 olacaktır. Koşul gerçekleşmediğinde ise “artış” değişkeninin değeri 0 olacaktır.
Hatta fonksiyon içerisinde de kullanılabilir.
Periyot := 10;
Mov(C, Periyot, S)
Periyotun değeri artık 10 olduğu için hareketli ortalama da bir problem olmayacaktır.MetaStock arka fonda periyot gördüğü yere 10 yazacaktır.
Başka bir örnek daha;
barUzunluğu:= H – L;
Burada en yüksek fiyattan en düşük fiyatı çıkarırsak bize barın uzunluğunu verir.Diyelimki bir önceki barın uzunluğuyla şimdikini karşılaştırmak istiyoruz.
Şöyle bir kod yazılabilir:
Ref(barUzunlğu,-1) < barUzunluğu
Bunun anlamı bir önceki barın uzunluğu bir sonrakinden kısa mı?.İf yazılmasa da programın otomatik olarak if deyimine çevirdiğini söylemiştik.O halde eğer şimdiki bar bir öncekinden daha uzun ise sonuç 1, değil ise sonuç 0 olacaktır. Tabiki bu kodu şu şekilde de yazabiliriz:
Ref(H-L, -1) < (H-L)
12-23-2012 03:26 PM
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesaji bir cevapta alıntı yap
BorsaOkulu Çevrimdışı
Administrator
*******

Mesajlar: 1.172
Katılım: Nov 2012
Mesaj: #13
MetaStock Sözlüğü
MetaStock Sözlüğü


System notes: Sistem ile ilgili yazılmak istenen notlar

Enter long: Alım işlemi, Long=Alımda olma pozisyonunu açmak.

Close long: Satım işlemi, Long=Alımda olma pozisyonunu kapamak.

OPT1, OPT2: Bulunacak olan optimize değer (1,2)

Range: Dağılım, bölge

Current value: Cari değer

Initial equity: Başlangıç portföy değeri

Positions: Açılan/kapatılan pozisyon sayısı

Entry trade price: İşlem giriş fiyatı

Entry trade delay: İşlem giriş gecikmesi (ertelemesi)

Exit trade price: İşlemden çıkış fiyatı

Exit trade delay: İşlemden çıkış gecikmesi (ertelemesi)

Entry commission: Giriş komisyonu

Exit commission: Çıkış komisyonu

Interest rate: Faiz oranı

Margin requirement: Kredili işlem koşulları

Total net profit: Toplam net kar

Open position value: Açılan pozisyon değeri

Percent gain/loss: % kar/zarar

Annual percent gain/loss: Yıllık % kar/zarar

Initial investment: Başlangıçtaki yatırım

Interest earned: Faiz Kazancı

Current position: Cari pozisyon

Date position entered: Giriş tarihi

Buy/Hold profit: Al/tut karı

Days in test: Testteki gün sayısı

Buy/Hold pct gain/loss: Al/tut’ların yüzde kar/zararı

Annual B/H pct gain/loss: Yıllık al/tut’ların % kar/zararı

Total closed trades: Toplam kapatılan işlemler

Commissions paid: Komisyon ödemeleri

Avg profit per trade: Yüzde olarak işlem başına kar ortalaması

Avg Win/Avg Loss ratio: Ortalama Kazanç/Ortalama Zarar oranı

Total long trades: Alım/satım işlemlerinin (Long olanlarının) toplamı

Total short trades: Açığa yapılan alım/satım işlemlerinin (Short olanlarının) toplamı

Winning long trades: Kazançlı alım/satım işlemleri

Winning short trades: Kazançla sonuçlanan açığa yapılan alım/satım işlemleri

Total winning trades: Kazançlı işlemlerin toplamı

Total losing trades: Zararla sonuçlanan işlemlerin toplamı

Amount of winning trades: Kazançlı işlemlerin miktarı

Amount of losing trades: Zararla sonuçlanan işlem miktarı

Average win: Ortalama kazanç

Average loss: Ortalama kayıp

Largest win: En büyük kazanç

Largest loss: En büyük kayıp

Average length of win: Kazancın ortalama süresi, kazançlı işlemlerde ortalama bekleme süresi

Average length of loss: Kaybın ortalama süresi, zarar edilen işlemlerde ortalama bekleme süresi

Longest winning trade: En uzun süren kazançlı işlem

Longest losing trade: En uzun süren zararla sonuçlanan işlem

Most consecutive wins: Ardarda gelen kazançlı işlemler

Most consecutive losses: Ardarda gelen zarala sonuçlanan işlemler

Total bars out: Pozisyon alınmayan toplam birim sayısı

Average length out: Piyasanın dışında kalmanın ortalama süresi

Longest out period: Pozisyon alınmayan en uzun periyod

System close drawdown: Sistemin kapatarak en fazla zarar ettiği pozisyondaki (ilk yatırım miktarına göre) zarar tutarı. Yani sistemin kapanış sinyalini uygularak gerçekleşen en büyük zarar tutarı.

Profit/Loss index: Kar/zarar indeksi

System open drawdown: Sistemin çalışırken (yani aktif pozisyondayken) en fazla zarar ettiği pozisyondaki (ilk yatırım miktarına göre) zarar tutarı. Yani sistem aktif halde bulunurken gerçekleşen en büyük zarar tutarı, gerçekleşmediği için fiktif (sanal) ve/veya indikatif. Sistem kapat komutu vermediği halde korku ile kapatılsaydı edilecek maksimum zarar tutarı.

Reward/Risk index: Getiri/risk indeksi

Max open trade drawdown: Sistemin çalışırken (yani aktif pozisyondayken) en fazla zarar ettiği pozisyondaki (en son işlemin açılış fiyatına göre) zarar tutarı. Yani sistem aktif halde bulunurken gerçekleşen en büyük zarar tutarı, gerçekleşmediği için fiktif (sanal) ve/veya indikatif. Sistem kapat komutu vermediği halde korku ile kapatılsaydı edilecek maksimum zarar tutarı.

Buy/Hold index: Al/tut indeksi

Close commission: Satım komisyonu

Bars in trade: İşlem yapılan birim sayısı
12-23-2012 03:50 PM
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesaji bir cevapta alıntı yap
Yeni Cevap 




Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi



Borsa Okulu © 2018.