IQ VE BACK TEST VE TERMİNAL İLE FARKLAR
Merhabalar,
IQ tarafında, algoritma yapısı, veri terminaline göre daha farklı, daha serbesttir.
Bu sebeple, bazı detaylar için, kurgunun kullanıcı tarafından belirlenmesi / hedefe bağlı olarak tanımlanması gerekir.
Veri terminali tarafında kullanıcılarımızda alışkanlık şöyledir:
AL’madan SAT’maz. Bir AL oluştuktan sonra SAT’madan bir daha AL’maz. Bakiye verilir ise, tümünü kullanır.
Kademeli alım söz konusu değildir. Strateji içinde birden fazla sembole emir gönderimi söz konusu değildir.
IQ tarafında ise,
Yazacağınız koda bağlı olarak çoklu seçenekler mümkündür.
Peş peşe alım olabilir. Bakiyeye bağlı kalmak mecburiyeti yoktur.
Kademeli alım yapılabilir vb.
Bu gibi detaylardan dolayı, IQ içinde standart durumlar oluşturulmak istenirse, bazı seçenekler / durumlar buna göre belirlenmelidir.
Seçimler, hedefe yönelik yapılabilir. Kodun içine talebe göre çalışmayı sağlayacak eklemeler yapılabilir.
Standart sonuçlar için, her durumda emirlerin sıralı gönderimi seçilmelidir.
Kodun içinde bu seçim, şu komut ile yapılır:
SendOrderSequential(true);
Bu komut true olarak tanımlanırsa, emirler AL ile başlayacak ve sıralı gönderilecektir.
Bu konuda ek seçenekler / bilgilendirme için:
https://destek.matriksdata.com/?qa=5332/emirleri-sirali-g%C3%B6nder-se%C3%A7imi-%C3%B6zellikleri-sonu%C3%A7lari
OVERALL / BAKİYE TARAFI İÇİN:
Seçenek1:
Başlangıç bakiyesini sıfır yapmak. Emir gönderim miktarlarını 1 AL – 1 SAT şeklinde yapmak
Test sonucundaki overall rakamı 1 AL – 1 SAT ile elde edilecek getiriyi gösterecektir. Bu getirinin sembolün fiyatına oranı, getiri oranı olarak baz alınabilir.
Seçenek2:
Baktest içinde kaç adet AL-SAT miktarı tanımlayacak isek, başlangıç bakiyesini sembolün bu miktarının bedeline eşitlemek.
İpucu: Esasen, testin başlangıç tarihindeki bedelin baz alınması daha doğru olacaktır. Bu durum, sistem tester’daki puan testine karşılık gelir.
Seçenek 3:
Kodun içine gerekli komutları girerek, verilen bakiyenin tümünün kullanılmasını sağlamak.
Bunun için örnek bir kod linkte yer almaktadır.
https://destek.matriksdata.com/?qa=1144/stratejide-bakiyeye-g%C3%B6re-al-sat-yapt%C4%B1rmak&show=1169#c1169
DİKKAT: Tüm testler açısından, şöyle bir durum söz konusudur. Son emir SAT olmaz ise, OVERALL ve BAKİYE arasında bir fark oluşur. Baz almanız gereken değer, overall olacaktır. Aşağıda örnekler vardır.
Örnek 1:
AL ile başlayan bir strateji için, İşlem sayısı çift rakam olursa:
OVERALL=BAKİYE
İşlem sayısı tek rakam olursa, overall ve bakiye farklı olur.
Bunun açıklaması şudur:
AL ile başlayan bir stratejide, tek sayıda işlem, son işlemin AL olması anlamına gelir.
Overall – Son Alım Tutarı = Bakiye.
Getiri hesabında, overall baz alınmalıdır / alınmaktadır zaten.
*
Optimizasyon değil de, back test de yapılsa, durum / yorum aynı şekildedir.
Yukarıda emir sayısı çift sayıdır ve overall = bakiyedir.
*
Aşağıda ise emir sayısı tek sayıdır. Ve overall ile bakiye farklıdır.
BİR ÖRNEK ÜZERİNDEN DETAYLI AÇIKLAMA :
Genelde şu 2 durum ile karşılaşılmaktadır:
• Backtestlerin başlangıç bakiyesini 1000 yapıyorum. Sonuç, 1300-1400 çıkması gerekirken hep 995-1005 arası bir şey çıkıyor.
• Backtest sonucunda aşırı yüksek getiri çıkıyor.
Her 2 durumun da asli sebebi, Bakiye ile Miktar uyumsuzluğudur.
Bakiyeyi 1.000 TL (Birim yapıp), bedeli 1 TL olan bir sembolden 10 AL – 10 SAT yaparsak, 1.000 TL bakiyenin sadece 10 TL sini kullanmış oluruz.
Öte yandan,
Bakiyeyi 1.000 birim yapıp mesela, BTC ile 1 AL – 1 SAT bile yapsak, her alış veriş, takriben 50.000 birimlik olacaktır.
Her 2 durum da, getiri oranı verisini çok fazla etkiler.
Somut bir örnek üzerinden gidelim. GARAN için yapılmış olan testlerin sonuçlarını irdeleyelim.
İlk testte miktarlar 1 AL 1 SAT. Başlangıç bakiyesi sıfır.
Gelen rapor:
Başlangıç bakiyesini sıfır verdiğimiz için, yüzdelik rakam ona göre hesaplanıyor.
Bununla beraber, esas olarak,
1 alıp 1 satarak, fiyatı şu anda takriben 8 TL olan Garan ile 2.09 TL kazanmışız. Bu da yaklaşık 26 % getiri demektir.
Burada getiri sembolün fiyatı ile bağlantılıdır.
*
AL-SAT miktarlarını 100 yapıp
Başkangıç bakiyesini 800 yapalım.
Elde ettiğimiz sonuç:
Gene yaklaşık yüzde 26 olacaktır.
Dikkat: Getiri, 100* 2.094783.
yani 1 AL 1 SAT ile elde edilen overall un 100 AL-100 SAT için olacak doğal sonucudur. Başlangıç bakiyesini de 800 aldığımız için, bu sefer yüzdelik getiri doğrudan sonucu vermektedir.
Lütfen, IQ tarafında back testlerinizi, bu şekilde inceleyin, değerlendirin, yorumlayın.
Hayırlı kazançlar dileriz.