Signal Pilot
🟠 İleri seviye • Ders 63 / 85

Kanıt olarak backtesting

Okuma süresi ~14 dk • Modül 8: Bir sistem kurmak
Signal Pilot
Profesyonel trading eğitimi
%0
İlerleme kaydediyorsun!
Bu dersi tamamlamak için okumaya devam et

Bu kursun altmış kapanışı üzerinde 253 sıradan hareketli ortalama kuralını tarayınca, maliyetler düşüldükten sonra hisse başına 9,84 dolar kazanan bir kazanan çıkıyor; elde tutmanın 5,68’ine karşı, 7 işlemde, 3,65’lik bir t istatistiğiyle. Şimdi o aynı altmış bardan bara hareketi, hiçbir zaman yapısı hayatta kalmayacak biçimde karıştır, sürüklenmeyi ve volatiliteyi tam olduğu gibi bırak ve aynı taramayı bir daha çalıştır. O yapısız serilerin yüzde 52,5’inde en iyi kural, elde tutmayı gerçek olanın yendiği kadar yener; yüzde 77,2’sinde ise hiç değilse yener. Sonuç, içinde hiçbir şey olmayan bir piyasanın ürettiğinin medyanının altında kalır. Tek bir kuralın backtest’i bir ölçümdür; 253’ün en iyisinin backtest’i ise taramanın ölçümüdür.

Ön koşullar: Ders 62, bir kuralın sınanabilmesi için daha önce yazılmış olması gereken dört parçalı cümle için, ders 19, yedi işlemin neyi taşıyıp neyi taşıyamayacağı için, ve ders 11, bu sayfanın üzerindeki her sayıdan düştüğü gidiş-dönüş maliyeti için.

İddia, gerçekte kastedildiği biçimde

backtesting lehine sunulan gerekçeler iyidir ve onlara bir şey yapılmadan önce düzgünce dile getirilmeyi hak eder. Kural bir talimatlar kümesidir. Tarih, fiyatların ne yaptığının kaydıdır. Dolayısıyla talimatları kaydın üzerinde çalıştırıp kuralın ne kazanmış olacağını bulabilirsin; bu sıradan bir mühendislik denemesidir, batıl inanç değil. Kaybettiyse bunu ucuza öğrenmişsindir. Kazandıysa en azından fikrin gözle görülür biçimde boş olmadığını saptamışsındır. Aklı başında hiç kimse backtest’in geleceği öngördüğünü ileri sürmez. İddia daha dardır ve itiraz edilemez gibi durur: backtest sana kuralın işleyip işlemediğini söyler.

İşte sana gerçekte söylediği şey, bu kursun daha önce bastığı veriler üzerinde. Altmış kapanışı ve tek bir kural ailesini al: kapanışların hızlı bir hareketli ortalaması yavaş olanı yukarı kestiğinde alışlı ol, geri aşağı kestiğinde nakde geç. Hızlı uzunluklar 2’den 12’ye, yavaşlar 3’ten 30’a, yavaş her zaman hızlıdan uzun. Bu 253 yapılandırma eder; hangi ölçüye vurulursa vurulsun küçük bir taramadır ve her biri aklı başında birinin önerebileceği bir kuraldır.

İcra uzlaşımı göründüğünden ağır basar, o yüzden sayfaya yazılıyor. Bir kesişim ancak bir bar kapandıktan sonra görülebilir, dolayısıyla sinyal bar i’nin kapanışında okunur ve işlem bar i artı bir’in kapanışında yapılır. Sinyalin çıktığı barın kendisinde işlem yapmak, internetteki backtest’lerin yarısını çalıştıran ileriye bakmadır ve burada görünen üstünlüğün aşağı yukarı üçte biri kadar eder. Maliyetler: bir sent spread, 103 civarı bir fiyatta yön başına beş baz puan slippage ve hisse başına yarım sent komisyon; bu da gidiş-dönüş için hisse başına 0,1230 eder. Son barda hâlâ açık olan her pozisyon orada kapatılır.

253’ün hepsini çalıştır, en iyisi 2 barlık hızlı bir ortalamaya karşı 5 barlık yavaş bir ortalamadır. 7 işlem yapar, hisse başına brüt 10,70, maliyetlerden sonra 9,84 kazanır; ilk kapanıştan alıp son kapanışta satmanın 5,68’ine karşı. İsabet oranı 7’de 6, ortalama işlemi bir barlık standart sapmanın 0,910’u ve kendi işlem kaydı üzerindeki t istatistiği 3,65’tir. Bu sayıların her biri bir stratejiye para bulduran cinstendir.

Aynı tarama, içinde hiçbir şey olmayan bir piyasada ne bulur

Sınama ucuzdur. Bu seriyi oluşturan 59 bardan bara hareketi al, içlerinden 59’unu yerine koyarak rastgele çek ve aynı başlangıç fiyatından itibaren ardı ardına diz. Sonuç, orijinaliyle aynı sürüklenmeye ve aynı volatiliteye sahiptir, harfiyen aynı hareketlerden kurulmuştur ve hiçbir zaman yapısı taşımaz: içinde, herhangi bir şeyin sırasına bağlı bir kuralın sömürebileceği hiçbir şey yoktur, çünkü sıra yok edilmiştir. Bunu 20260903 tohumundan başlayarak 4.000 kez yap ve her birinin üzerinde aynı 253 hücreli taramayı çalıştır.

ÖlçüDeğer
253’ün en iyisi, brüt10,70
253’ün en iyisi, maliyetlerden sonra9,84
Al ve tut, maliyetlerden sonra5,68
Elde tutmaya göre üstünlük4,16
En iyi hücresi elde tutmayı yenen yapısız seriler0,772
Gerçek üstünlüğü aşan yapısız seriler0,525

İçinde hiçbir yapı bulunmayan serilerin yüzde 77,2’sinde, 253 kuralın en iyisi al ve tut’u yener. Yüzde 52,5’inde ise onu, gerçek taramanın bulduğu 4,16 kadar veya daha fazla yener. Ölçülen sonuç o dağılım karşısında yalnızca etkileyicilikten uzak değildir: medyanının altında durur. Tarama gerçek kapanışlar üzerinde ne bulmuş olursa olsun, aynı büyüklükte bir tarama bundan fazlasını, yarıdan çok durumda, bulunacak hiçbir şey içermeyen verilerde bulur.

Bunun ne demediğine dikkat et. Kuralın kötü olduğunu demiyor, serinin yapısız olduğunu da demiyor. Dediği şu: 9,84 sayısı, zaten 9,84 gibi sayılar üreten bir yordam tarafından üretildi, dolayısıyla o sayı piyasa hakkında kanıt olarak kullanılamaz. Bu, ölçüm hakkında bir ifadedir ve karşısında işlem yaptığın insanların neredeyse hiçbirinin kendi ölçümünü hiç kontrol etmemiş olmasının nedenidir: kontrol bir akşama ve bir yeniden örnekleme döngüsüne mal olur ve yalnızca bir sonucu elinden alabilir.

Bu modülün 62. derste açtığı çizelgeye, cümlenin yanına iki sütun eklenir. backtest’in döndürdüğü değer, burada ölçütün 4,16 üstü. Ve aynı taramanın, içinde hiçbir şey olmayan veriler üzerinde döndürdüğü değer, burada denemelerin yüzde 52,5’inde 4,16 ya da daha iyisi. İkinci sütunu üçüncüsünden rahatça büyük olmayan bir satır hiçbir şey kazanmamıştır ve bu ikili, iki rakamın tek başına olduğundan daha değerlidir, çünkü hiçbiri ötekisi olmadan pek bir şey ifade etmez.

Ondan önce gelen iki çıkarma

Önce maliyetler, çünkü bunun kesin olan tek parçası onlardır. Bir gidiş-dönüş burada hisse başına 0,1230 tutar ve bu seride bir barlık standart sapma 1,5443’tür, yani bir gidiş-dönüş bir R’nin 0,0796’sıdır. Çarpana kadar küçük gelir. Kazanan kural 7 işlem yapar ve dolayısıyla maliyet olarak 0,557R öder; elde tutma bir tane yapar ve 0,0796R öder. Sık işlem yapan kural, ikisinden biri herhangi bir konuda haklı çıkmadan önce yaklaşık yarım R geriden başlar; ve aynı maliyet iki sigmalık bir stopa karşı 0,0398R, yarım sigmalık bir stopa karşı 0,1593R eder, çünkü maliyet sent cinsinden sabittir, R ise değildir.

Sonra ölçüt, ve neredeyse her zaman eksik olan çıkarma budur. En iyi hücre 9,84 yaptı. Elde tutma 5,68 yaptı. Kuralın katkısı 9,84 değil, 4,16’dır, çünkü seri yükseldi ve alışlı geçirdiği zaman olan her kural, bir şey anlamış olsun olmasın o yükselişi topluyordur. Stratejinin kendi sermaye eğrisini bildiren ve ölçütünkini hiç bildirmeyen bir backtest, iki sayıdan büyüğünü saklamıştır.

Bölünmüş örneklem sınamasının göremediği satır

Bütün bunlara karşı alışılmış savunma örneklem dışı sınamadır ve gerçekten değer, o yüzden burada yapalım. Yalnızca ilk otuz kapanış üzerinde optimize et. O penceredeki en iyi hücre yine 2 ve 5 çiftidir: 3 işlemde net 5,53 yapar, üstelik al ve tut’un 0,82 kaybettiği bir kesitte. Bu, hiçbir şey sunmayan bir piyasada bir şey bulan bir kural gibi görünür. Parametreleri dondur, hiçbir şeye dokunma ve son otuz kapanış üzerinde çalıştır.

PencereEn iyi kural, netAl ve tut, netİşlem
1–30 arası barlar, burada optimize edildi5,53-0,823
31–60 arası barlar, parametreler donduruldu4,296,885

Geçiyor. Performans 5,53’ten 4,29’a düştü, yüzde 22’lik bir bozulma, ve alandaki her kontrol listesi yüzde 30’un altındaki her şeyi geçer sayar. Kural, kontrol listesinin kastettiği anlamda eğriye uydurulmuş değildi: daha önce hiç görmediği veriler üzerinde gerçekten çalışmayı sürdürdü.

Ve o aynı görülmemiş barlar üzerinde hiçbir şey yapmamak 6,88 yaptı. Doğrulanmış kural, kendisini haklı çıkarması beklenen tam o pencerede ölçüte 2,59 kaybetti ve örneklem dışı sınama bunu bildiremezdi, çünkü içinde hiçbir yerde bir ölçüt yok. Sınama, bir sonucun tekrarlanıp tekrarlanmadığını sorar. Sonucun sahiden değip değmediğini asla sormaz.

Aynı altmış kapanış, dürüstlüğün dört kademesinde

Aşağıdakilerin hiçbiri veriyi ya da kuralı değiştirmiyor. 2 ve 5 kesişimi her kademede aynı kuraldır, aynı altmış kapanış üzerinde çalıştırılmıştır. Değişen yalnızca neye karşı ölçüldüğüdür ve her kademe, backtest’lerin çoğunun durduğu kademedir.

Birinci kademede dur: kural 7 işlemde, 6’sı kazançlı olmak üzere hisse başına 10,70 yaptı. İkincide dur: maliyetler onu 9,84’e getirir, bu yüzde 8’lik bir kesintidir ve özen gibi hissettirir, çünkü maliyet düşen bir sayfa titiz görünür. Üçüncüde dur: ölçüt onu 4,16’ya getirir, bu da onu bir kez daha yarıdan fazla keser ve buraya kadar gelmek yayımlanan backtest’lerin çoğundan daha ileriye gitmektir.

Dördüncü kademe, büyüklüğü değil hükmü değiştiren kademedir. Hareketleri yeniden çek, taramayı yeniden çalıştır: yapısız serilerin yüzde 52,5’i, elde tutmayı 4,16 ya da daha fazlasıyla yenen bir en iyi hücre üretir. Kuralın kendi 3,65’lik t istatistiği yanlış değildir; başka bir soruyu yanıtlamaktadır. Bu hücrenin 7 işleminin sıfırdan ne kadar emin biçimde ayrıldığını ölçer ve diğer 252 hücrenin seçmelere girip elendiğini bilmesinin hiçbir yolu yoktur. t istatistiği kazananın içinde hesaplanır. Tarama ise dışarıda gerçekleşti.

backtest, çalıştırdığın taramayı ölçer; onu çalıştırdığın piyasayı değil.

Ayakta kalan, kulağa geldiğinden fazladır. backtest hâlâ kural öldürür, ucuza ve kalıcı olarak: örneklem içinde, maliyetlerden önce kaybeden bir kural ölüdür ve bunu bir öğleden sonrada öğrenmek, tekniğin var oluş nedeninin büyük kısmıdır. Tek başına yapamadığı şey bir kuralı terfi ettirmektir. Terfi; ölçütü, maliyetleri ve yeniden örneklenmiş sıfır dağılımını ister, o sıfır dağılımı da tek bir kod döngüsüdür.

Öyleyse bu akşam kendi kuralın üzerinde dört kademenin hepsini bu sırayla çalıştır ve sonucu elinden alan ilkinde dur.

Bunun çözmediği şeyler

backtesting’in işe yaramadığı. Sayfa, altmış barlık tek bir seri üzerinde 253 hücrelik bir taramayla tek bir kural ailesini sınadı; gerçek bir program ise binlerce bar ve pek çok enstrüman üzerinde çalışır, orada bu sayfanın sömürdüğü örnekleme gürültüsü çok daha küçüktür. Tarama şişmesine dair sav, ikisinin de büyüklüğüne bağlı değildir, ama somut yüzde 52,5 bağlıdır ve daha uzun bir seride aynı tarama orantılı olarak daha küçük bir üstünlük imal ederdi. Buradaki hiçbir şey tekniğin işe yaramaz olduğunu göstermiyor; bir sonucun bir anlam taşımadan önce neyi atlatması gerektiğini gösteriyor.

Yeniden örnekleme sınamasının doğru sıfır dağılımı olduğu. Hareketleri yerine koyarak çekmek bütün zaman yapısını bir anda yok eder, bu da onu kuralın sırayı sömürüp sömürmediğinin sınaması yapar, başka hiçbir şeyin değil. Aynı zamanda volatilite kümelenmesini de yok eder; o gerçektir ve bir kesişim kuralı onu sahiden işleme sokabilir, dolayısıyla bu açıdan sıfır dağılımı yenilmesi fazla kolaydır ve gerçek oran yüzde 52,5’in altından çok üstündedir. Blok bootstrap o yapının bir kısmını korur ve dürüst bir sonraki adımdır; bu sayfa öyle bir şey çalıştırmıyor.

Maliyetlerin seninkiler olduğu. Bir sent spread ve yön başına beş baz puan slippage, küçük boyutta likit bir enstrümanı tarif eder. Daha geniş bir şeyde fena hâlde iyimserdirler, derin bir büyük ölçekli hissede yüz hisseyle karamsardırlar. Bu sayfadaki her rakam o varsayımla birlikte oynar ve 7 işlemlik kural ölçütten yaklaşık yedi kat hızlı oynar; bu da elde tutmanın lehine çalışan yöndür.

Al ve tut’un doğru ölçüt olduğu. Burada doğrudur, çünkü kural yükselen bir seri üzerinde yalnızca alışlıdır; açığa satan bir kural için ya da düşmüş bir kesit için yanlıştır. Düşen bir seride yalnızca alışlı her kural elde tutmaya göre kötü görünür, üstelik kuralla hiçbir ilgisi olmayan bir nedenle; ve kendini kayıran bir ölçüt seçmek, kendini kayıran bir pencere seçmekle aynı hatadır. Ölçüt sınamadan önce seçilmelidir, bu sayfa ise onu sonradan seçti, çünkü seri zaten yazılmıştı.

Bölünmüş örneklem sonucunun genellenebildiği. Yarım başına otuz bar fazlasıyla azdır, örneklem içi pencere 3, örneklem dışı pencere 5 işlem içerir ve bu kadar küçük örneklemlerde yüzde 22’lik bozulma rakamı neredeyse hiç bilgi taşımaz. Desteklediği bulgu, örneklem dışı sınamaların genelde kötü kuralları geçirdiği değildir; daha dar ve daha sağlam olan şudur: ölçüte kaybeden bir kuralı geçirebilirler, çünkü içlerinde ölçüt yoktur. O kusur yapısaldır ve örneklem büyüklüğüne hiç bağlı değildir.

Ve en pahalıya mal olan taviz: bu sayfa sana taramanın üreteceği kadarını çıkarmanı söylüyor ve gerçekten yürüttüğün tarama için bunu yapmanın bir yolunu vermiyor. 253 hücre sayılabilir, çünkü kodlandılar. Bir grafikte bakıp bıraktığın kurallar, iki kez oynatıp yerine koyduğun parametre, önce denediğin ve çirkin diye elden çıkardığın enstrüman — onlar da yapılandırmadır, kayda geçmemişlerdir ve neredeyse kesin olarak 253’ten çokturlar. Bu sayfadaki düzeltme, ancak taramanın yazıya dökülecek kadar dürüst olan kısmı için hesaplanabilir. 64. ders bu soruna doğrudan girer ve şişmenin yalnızca sayıdan önceden kestirilebildiğini bulur: 156 işlem üzerinde 15.000 yapılandırmalık bir tarama için, en iyi hücre piyasa daha hiçbir şey yapmadan 0,351R üstünlük gösterir.

Problemler

  1. Bir gidiş-dönüşü R cinsinden fiyatla. Enstrümanının spread’ini, aracı kurumunun komisyonunu ve savunabileceğin bir slippage rakamını al, gidiş-dönüş için topla ve işlem yaptığın zaman diliminde bir barlık standart sapmaya böl. On dakika, ve elinde tek bir sayıyla çıkarsın: bir işlemin R cinsinden maliyeti, yani okuduğun her backtest’in dışarıda bıraktığı tutar.
  2. Ölçütü kendi kuralının yanına koy. Zaten işleme soktuğun ya da zaten inandığın bir kuralı al, az önce hesapladığın maliyet düşülmüş hâlde iki yüz bar üzerinde çalıştır ve aynı iki yüz barda ilk kapanıştan alıp son kapanışta satmanın ne getireceğini hesapla. Yarım saat, ve elinde tek bir sayıyla çıkarsın: aradaki fark, yani sermaye eğrinin yalnızca kuralın sorumlu olduğu kısmı.
  3. Sıfır dağılımını çalıştır. O aynı iki yüz barın bardan bara değişimlerini al, iki yüz tanesini yerine koyarak rastgele çek, ardı ardına diz ve bütün taramanı sentetik seri üzerinde yeniden çalıştır. Bunu, yazıya döktüğün bir tohumla bin kez yap ve en iyi sonucun ölçütü, gerçek taramanın bulduğu kadar veya daha fazla kaç kez yendiğini say. Bir akşam, ve elinde tek bir sayıyla çıkarsın: o oran, yani içinde hiçbir şey olmayan bir piyasanın sana bulduğun şeyi verme olasılığı.

Kaynaklar. Halbert White, «A Reality Check for Data Snooping» (Econometrica, 2000), bu dersin küçük ölçekte çalıştırdığı bootstrap yordamı için ve bir taramanın karşısında yargılanması gereken şeyin bir kuralın değil en iyi kuralın dağılımı olduğu savı için. Ryan Sullivan, Allan Timmermann ve Halbert White, «Data-Snooping, Technical Trading Rule Performance, and the Bootstrap» (The Journal of Finance, 1999), aynı deneyin bir yüzyıllık günlük veri ve binlerce kural üzerinde tam ölçekte yürütülmesi için; bu sayfa onun altmış barlık bir taklididir. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado ve Qiji Jim Zhu, «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance» (Notices of the American Mathematical Society, 2014), denenen yapılandırma sayısının tek başına ne kadar görünür üstünlük belireceğini kestirmeye yettiği sonucu için; bir sonraki dersin hesapladığı da budur. Bradley Efron, «Bootstrap Methods: Another Look at the Jackknife» (The Annals of Statistics, 1979), bu dersteki sıfır dağılımının kendisinden kurulduğu yeniden örnekleme yöntemi için.

İlgili dersler
Ders 62

Neyin olması gerekirdi

Bir kuralın sınanabilmesi için daha önce yazılmış olması gereken dört parçalı cümle.

Dersi oku →
Ders 19

Ne zaman bileceksin

Yedi işlemin ve 3,65’lik bir t istatistiğinin neyi taşıyıp neyi taşıyamayacağı.

Dersi oku →
Ders 11

Perakende büyüklüğünde slippage ve etki

Bu dersin sayfadaki her sayıdan düştüğü gidiş-dönüş maliyeti.

Dersi oku →
Yalnızca eğitim amaçlıdır. İşlem yapmak önemli ölçüde kayıp riski taşır. Finansal tavsiye değildir. Geçmiş performans gelecekteki sonuçları garanti etmez.

💬 Tartışma (0 yorum)

0/1000

Yorumlar yükleniyor…

← Önceki ders Sonraki ders →

Signal Pilot ile işlem yapmaya hazır mısın?

Öğrendiklerini profesyonel göstergeler ve gerçek zamanlı piyasa analizi araçlarıyla uygula.

Signal Pilot'a dön →