IDEAL Yeni versiyona Yeni bir fonksiyon eklenmiştir.
Fonksiyon Adı: Sistem.StopVeyaKarFlatYuzde(StopYuzde, KarYuzde)
Örnek: Sistem.StopVeyaKarFlatYuzde(3.5,5.8) = Sistem, pozisyona girdikten sonra %5.8 KAR görürse pozisyon kapatılır. VEYA Pozisyona girdikten sonra görülen en yüksek (short ise en düşük) değerden %3.5 terse dönerse pozisyon kapatılır.
Yazdığınız sistem veya Robotlarda belli bir YÜZDE KAR elde edildiği an VEYA pozisyona girdikten sonra görülen en yüksek kar noktasından belli bir YÜZDE GERİ DÖNÜŞ olduğunda FLAT olmayı bu fonksiyonu kodunuza ekleyerek sağlayabilirsiniz.
Aşağıda, 2 Hareketli Ortalamanın kesişimi stratejisine dayalı bir sisteme bu fonksiyonun uygulanmış örneği paylaşılmıştır.
Alttaki fotoğraf normal sisteme, üstteki fotoğraf ise Bu fonksiyon ile (%5.8 Kar görünce VEYA en yüksek noktadan %3.5 geri dönerse) FLAT olan sisteme aittir.
NOT-1: Sistemlerinizde GetiriKZ kullanıyorsanız, bu fonksiyonu GetiriKZ den önce yazmanız lazım. YÖN listesin son halini bu fonksiyon verir.
NOT-2: Parametrelerden herhangi birini SIFIR girerek, tek bir FLAT koşulu kullanabilirsiniz. Örneğin SADECE %x KAR edince FLAT olsun, başka bir flat koşulu olmasın diyorsanız Fonksiyonun ilk (YuzdeStop) parametresini "0" girmeniz yeterli.
Sistem.StopVeyaKarFlatYuzde(0, KarYuzde) şeklinde...
(Elbetteki tersi senaryo da mümkün: SADECE En yüksek/düşük noktadan Yüzde x geri dönerse FLAT olsun istiyorsanız, bu kez ikinci parametreyi SIFIR girmeniz gerek)
NOT-3:Her iki parametre de SIFIR olarak verilirse, sistemini orjinal stratejinizi çalıştırır.
NOT-4:Bizler test ettik ve kullanıma sunduk elbette ama sizlerin de, gerçek ortamda çalışan sistem/robot kodlarınızda kullanmadan önce mutlaka test etmenizi önemle hatırlatırız.
Versiyon buradan indirilebilir: www.directfn.com.tr/terminal/ideal.exe
Saygılarımızla
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var A1 = Sistem.MA(C, "Exp", 50);
var A2 = Sistem.MA(C, "Exp", 100);
var SonYon = "";
for (int i = 1 ; i < Sistem.BarSayisi; i++)
{
if (A1[i] > A2[i] && SonYon != "A" )
{
SonYon = "A";
Sistem.Yon[i] = "A";
}
else if (A1[i] < A2[i] && SonYon != "S" )
{
SonYon = "S";
Sistem.Yon[i] = "S";
}
}
Sistem.StopVeyaKarFlatYuzde(3.5,5.8); //Parametre1=YuzdeStop, Parametre2 = YuzdeKarAl