Skip to content
Araştırma
17 dk okuma

Tek bir taramadan konfigürasyon seçmenin altı yolu

Doksan altı konfigürasyon, birini seçmek için altı açık kural ve seçimde hiç kullanılmamış bir test dönemi. Eğitim tablosu konfigürasyonları neredeyse tam tersine sıraladı, plato kuralı sonuncu geldi ve en iyi sonuç, gerekli olduğunu kanıtlamak için kaldırdığım bir parametreden çıktı.

Hisse evreni
Likiditeye göre ilk 1,500 ABD hissesi, o günkü listeye göre
Test dönemi
2020–2026

Parametre taraması size bir strateji vermez. Her konfigürasyon için bir satırı olan bir tablo verir ve o satırlardan birini seçmek size kalır. Bu ikinci adım ilkine göre çok daha az sorgulanıyor. Oysa tarama işin aritmetik kısmı, asıl karar seçimde veriliyor.

Ben de bunu bir deney olarak kurdum: 96 konfigürasyonluk tek bir tarama, bu tablodan satır seçmek için altı açık kural ve seçilen her konfigürasyonun, seçimde hiç kullanılmamış bir test döneminde çalıştırılması. Kurallar zevke göre değil, koda göre işliyor. Her biri tek bir satıra çıkıyor, bu yüzden kimse sonucu sonradan istediği yere çekemiyor.

Kısacası eğitim tablosu, hangi konfigürasyonun sonrasında iyi gideceği konusunda bana neredeyse hiçbir ipucu vermedi. İpucu verdiği yerde de yanlış yönü gösteriyordu.

Strateji

Aşağıdaki bütün testlerde aynı sistem çalışıyor, yalnızca parametreleri değişiyor.

Kesitsel momentum, sistematik hisse stratejilerinin en eskilerinden ve en sadelerinden biri. Hisse evrenini son dönemde ne kadar yükseldiklerine göre sıralıyor, en üsttekileri alıyor ve sıralamayı düzenli olarak yeniliyorsunuz. Beklenti, yakın dönemde öne çıkan hisselerin bir süre daha öne çıkmaya devam etmesi. Jegadeesh ve Titman bu etkiyi 1993'te ortaya koydu ve o günden beri tartışılıyor.

Yeniden dengeleme gününde adımlar şu sırayla işliyor:

  1. Uygun hisse evrenini belirle. ABD'nin en likit 1,500 hissesi, bugünkü listeye göre değil karar tarihindeki duruma göre kuruluyor. Borsadan çıkan hisseler de veride duruyor. 2021'de likit olup 2023'te borsadan çıkan bir şirket, işlem görmeyi bıraktığı güne kadar listede kalıyor. Backtest'in böyle bir hissede zarar edebilmesinin tek yolu da bu.
  2. Her hisseye puan ver. Puan, geriye bakış süresi boyunca elde edilen getiri. İstenirse son ay hesaba katılmıyor. Bu boşluğun adı atlama ve amacı kısa vadeli tersine dönüşten kaçınmak: yeni sert yükselmiş hisseler kazancının bir kısmını geri verme eğiliminde, bu yüzden son ayın getirisi sinyalin en güvenilmez parçası.
  3. Puanı en yüksek N hisseyi al ve tut. Ağırlıklar ya eşit ya da ters oynaklığa göre belirleniyor: iki kat oynak bir hisseye yarı yarıya para düşüyor.
  4. Zayıflayanları bir tamponla sat. Bir hisse ilk N'in dışına düştüğü anda satılmıyor, ilk 2N'in dışına düştüğünde satılıyor. Bu tampon olmasa sınırın çevresinde gidip gelen bir hisse her yeniden dengelemede alınıp satılır ve her seferinde alış satış makasını öder.
  5. İstenirse düşüş trendinde kenarda bekle. Piyasa endeksi 200 günlük ortalamasının altındayken yeni pozisyon açılmıyor.

Geriye altı ayar kalıyor, tarama da her birini farklı değerlerle deniyor:

  • geriye bakış 63, 126 veya 252 işlem günü
  • atlama 0 veya 21 gün
  • yeniden dengeleme 5 veya 21 günde bir
  • çöküş filtresi kapalı ya da açık (200 günlük ortalamanın altında yeni giriş yok)
  • ağırlıklandırma eşit veya ters oynaklık
  • portföy büyüklüğü 10 veya 20 hisse

Bir eksende üç, kalan beş eksende ikişer değer var. Toplam 96 konfigürasyon.

Test koşulları

  • Hisse evreni: 1500 ABD hissesi, o günkü listeye göre, borsadan çıkanlar da içinde
  • Eğitim dönemi: 2020-01-01 ile 2024-01-01 arası
  • Test dönemi: 2024-01-01 ile 2026-07-31 arası
  • Maliyet: gerçekleşen emir başına %0.25
  • Sermaye: $25,000
  • Kıyas ölçütü: aynı evrenden kurulan eşit ağırlıklı endeks

Bunlardan biri diğerlerinden daha önemli. Hisse evreninin seçimi, yani hangi 1,500 hissenin işlem yapılabilir sayılacağı, iki dönemde de eğitim döneminin bittiği tarihte sabitleniyor. Likidite sıralamasını bütün dönem üzerinden yapsaydım, 2026'ya gelindiğinde likit olduğu anlaşılan hisseler seçilir ve 2020'deki bir backtest bunlarla işlem yapabilirdi. Hayatta kalma yanlılığı da böylece likidite filtresinin arkasından geri sızardı. Bu hata bende varken sızıntının her 1.5 yılı eğitim CAGR'ına kabaca 8 yüzde puan ekliyordu. Burada ölçülen etkilerin çoğundan daha büyük bir fark.

Seçimin yapıldığı tablo

Kurallara geçmeden önce dağılıma bakalım. Aşağıda 96 konfigürasyonun tamamının eğitim dönemi MAR değeri var. MAR, CAGR'ın maksimum düşüşe bölünmesiyle bulunuyor. Harfler, altı kuralın hangi noktayı seçtiğini gösteriyor.

medianABDEF0.201.40

96 configs, MAR on the training window

Tablodaki en iyi konfigürasyonun puanı en kötüsünün beş katı. Verilen kararın büyüklüğü bu aralık kadar ve kararın tamamı parametrelerle ilgili. Momentumun işe yarayıp yaramadığı burada tartışma konusu değil.

Altı seçim kuralı

  • A. Plato. Her konfigürasyonu, kendisinin ve komşularının MAR medyanıyla puanla ve en yükseğini al. Komşu, yalnızca tek bir eksende bir adım uzaktaki konfigürasyon. Standart tavsiye budur: tek başına yükselen bir tepe yerine geniş ve düz bir bölgeyi tercih et.
  • B. En yüksek eğitim CAGR'ı. Getiriye göre en üstteki satırı al. Yöntem kitaplarının hep uyardığı kural.
  • C. En yüksek eğitim Sharpe'ı. Sharpe'a göre en üstteki satırı al.
  • D. En yüksek eğitim MAR'ı. Getirinin düşüşe oranına göre en üstteki satırı al. Canlıda çalışan stratejim bu kuralla seçildi.
  • E. Ders kitabı 12-1. Taramadan hiç seçim yapma. Literatürün 1993'ten beri kullandığı tanımı al: 252 günlük geriye bakış, son ay atlanıyor, çöküş filtresi yok, eşit ağırlık, aylık yeniden dengeleme, 20 hisse.
  • F. En yüksek MAR, atlamasız. D'nin konfigürasyonunu al ve atlamayı kaldır. Bu bir seçim kuralı değil: tek bir parametrenin ne kadar katkı sağladığını, onu çıkarıp ayrıca ölçmek için var.

Her kuralın seçtiği konfigürasyon aşağıda.

KuralGeriye bakışAtlanan dönemYeniden dengelemeÇöküş filtresiAğırlıklandırmaHisse sayısı
APlateau (neighbourhood median)63dYok21dKapalıEşit10
BBest train CAGR(şununla aynı: C)126dYok21dKapalıEşit10
CBest train Sharpe(şununla aynı: B)126dYok21dKapalıEşit10
DBest train MAR126d21d21dKapalıTers oynaklık20
ETextbook 12-1, no filter252d21d21dKapalıEşit20
FBest train MAR, no skip126dYok21dKapalıTers oynaklık20

İki kural aynı satırda buluşuyor. Bu taramada en yüksek CAGR'lı satırla en yüksek Sharpe'lı satır aynı konfigürasyon, yani B ile C aslında tek bir seçim. Bunu bilmek de işe yarıyor: getiriye göre mi yoksa Sharpe'a göre mi sıralanacağı kulağa önemli bir tercih gibi geliyor ama burada hiçbir şeyi değiştirmedi.

Sütunlara tek tek bakıldığında seçimlerin ızgaraya dağılmadığı görülüyor. Bütün kurallar haftalık yerine aylık yeniden dengelemeyi seçti ve hepsi çöküş filtresini kapalı bıraktı. Yani altı eksenden ikisi, daha hiçbir seçim kuralı devreye girmeden belli olmuştu. Kurallar geriye bakışta, atlamada, ağırlıklandırmada ve portföy büyüklüğünde ayrışıyor.

Sonuçlar

EğitimTest
CAGRMaks. düşüşSharpeMARİşlem sayısıCAGRMaks. düşüşSharpeMARİşlem sayısı
APlateau (neighbourhood median)63.4%-54.1%1.081.1749221.2%-41.1%0.590.52298
BBest train CAGR73.4%-57.7%1.191.2731450.2%-40.5%1.041.24189
CBest train Sharpe73.4%-57.7%1.191.2731450.2%-40.5%1.041.24189
DBest train MAR57.0%-41.0%1.171.3956659.9%-36.2%1.371.65367
ETextbook 12-1, no filter27.6%-44.7%0.730.6239061.6%-39.6%1.251.56224
FBest train MAR, no skip45.6%-45.6%1.041.0056866.0%-37.2%1.361.77374

Karşılaştırma için, aynı test döneminde hiçbir seçim gerektirmeyen üç yatırım:

  • Eşit ağırlıklı evren: %11.9 CAGR, %22.2 düşüş, MAR 0.54
  • QQQ, al-tut: %25.5 CAGR, %22.9 düşüş, MAR 1.11, Sharpe 1.18
  • SPY, al-tut: %20.2 CAGR, %19 düşüş, MAR 1.06, Sharpe 1.25

Endeks getirileri kapanıştan kapanışa hesaplanıyor ve maliyet düşülmüyor. Eşit ağırlıklı kıyas ölçütü de aynı şekilde hesaplandığı için ikisi de stratejilere göre biraz avantajlı görünüyor. Bunları birebir karşılaştırma olarak değil, aşılması gereken bir alt sınır olarak okumak gerekiyor.

Eğitim → Test

0.000.501.001.502.00EğitimTestA0.52Plateau (neighbourhood median)B1.24Best train CAGRC1.24Best train SharpeD1.65Best train MARE1.56Textbook 12-1, no filterF1.77Best train MAR, no skip
Fig. 1Her konfigürasyonun eğitim dönemindeki değeri, test dönemindeki değerine bir çizgiyle bağlı. A kırmızıyla çizildi. Metriği değiştirdiğinizde sıralamanın ne metrikten metriğe ne de dönemden döneme sabit kaldığı görülüyor.

Endeksi geçmek evreni geçmekten zor

Eşit ağırlıklı evren, stratejinin seçim yaptığı hisselerin ta kendisi olduğu için adil bir iç kıyas ölçütü. Ama çıtası da düşük: test döneminde yıllık %11.9 getirdi. A dışındaki bütün seçimler bu çıtayı rahatça aştı.

Okurun asıl önemsediği çıta QQQ ve çok daha yüksekte. Test döneminin ilk günü alınıp tutulan QQQ yılda %25.5 getirdi. Maksimum düşüşü %22.9, MAR'ı 1.11, Sharpe'ı 1.18 oldu.

QQQ hesaba katılınca iki satır farklı görünüyor. Eğitimde en iyi olan B, QQQ'nun iki katı CAGR getirdi ama düşüşü de neredeyse iki katıydı. MAR'da 1.24 ile QQQ'nun 1.11 değerinin gerisinde kaldı, Sharpe'ı da daha düşük çıktı: 1.04, QQQ'da ise 1.18. A ise evrenin gerisinde kalmakla kalmadı, bir endeks fonuna açık ara kaybetti.

Kısacası bu testte karmaşıklığının hakkını veren yalnızca D, E ve F oldu. Bu stratejilerin hepsi %30'ların sonuyla %40'ların başı arasında bir düşüş yaşıyor. QQQ'nun düşüşü ise %22.9 oldu. Bu tablodaki bir stratejinin, Nasdaq'ı tutmanın yaklaşık iki katı acıya katlanmaya değmesi gerekiyor.

Maliyetin sıralamaya etkisi

Buraya kadarki bütün rakamlar gerçekleşen emir başına %0.25 maliyet varsayıyor. Devir hızı bu seçimler arasında aynı olmadığı için bu varsayım sonucu etkiliyor: test döneminde B 189 işlem yaparken F 374 işlem yapıyor, yani neredeyse iki katı. Düşük devir hızını kayıran bir maliyet varsayımı B'yi öne çıkarır.

Bu yüzden test dönemini dört farklı maliyet seviyesinde yeniden çalıştırdım.

Emir başına maliyetABDEF
%0.000.581.341.731.591.85
%0.100.571.271.691.661.83
%0.250.521.241.651.561.77
%0.500.431.111.581.631.71

MAR

Ana sonuç değişmiyor. F her maliyet seviyesinde birinci, A her seviyede sonuncu. Yazının dayandığı iki tespit tek bir maliyet varsayımına bağlı değil. Maliyeti %0.25 seviyesinden %0.50'ye çıkarmak F'nin MAR'ını yaklaşık 0.06 düşürüyor. F'nin öndeki farkının yanında küçük bir kayıp.

Tablonun ortası ise aynı kalmıyor. D ile E, %0.25 ile %0.50 arasında yer değiştiriyor. MAR farkı 0.1'in altında olan iki konfigürasyondan beklenecek şey de bu. Üstelik E'nin getirisi maliyetle tek yönde değişmiyor bile: maliyet arttıkça test dönemi CAGR'ı sırasıyla %61.6, %65.4, %61.6, %66.2 oluyor. Maliyetin böyle bir etkisi olamaz, olan şey portföyün farklı bir yol izlemesi. Hisse adetleri tam sayıya yuvarlanıyor ve gerçekleşme fiyatı değişince hangi hisselerin tutulduğu da değişiyor. Yirmi hisselik bir portföyde bu farklar zamanla birikiyor.

Bunu maliyet duyarlılığının kendisinden daha öğretici buluyorum. Emir başına maliyeti %0.25 seviyesinden %0.50'ye çıkarmak, E'nin test dönemi CAGR'ını %61.6 seviyesinden %66.2 seviyesine yükseltti. Bir stratejiye daha fazla maliyet yüklemek onu daha kârlı yapamaz. Yani aradaki 4.6 yüzde puan tamamen portföyün izlediği yola bağlı bir rastlantı ve ana tablodaki D ile E farkından daha büyük. Bu büyüklükteki farklar sinyal sayılmaz. Ortadaki üç satırı bir sıralama olarak değil, beraberlik olarak okumak gerekiyor.

Eğitim tablosu yanlış yönü gösterdi

Beş farklı konfigürasyonu önce eğitim CAGR'ına, sonra test dönemi CAGR'ına göre sıralayıp iki sıralamayı karşılaştırın. Sıra korelasyonu -0.8. Zayıf bir ilişki değil, güçlü bir ters ilişki. Bu taramada ve bu test döneminde, eğitimde en iyi görünen konfigürasyonlar sonrasında sistematik olarak en kötü sonuç verenler oldu.

MAR ve Sharpe'ta korelasyon -0.1, yani ortada hiçbir ilişki yok.

Bu sayıya ne kadar güvenilebileceği konusunda temkinli olmak istiyorum. Tek bir piyasada, tek bir test döneminde beş konfigürasyonun sonucu. Yani bir ölçümden çok bir örnek ve beş noktadan hesaplanan tek bir sayı zaten doğası gereği kırılgan. Ama yön, yukarıdaki tabloda istatistiğe gerek bırakmayacak kadar açık: eğitimin en iyi iki satırı B ve A, beş konfigürasyon arasında dördüncü ve beşinci bitirdi.

Plato kuralı açık ara sonuncu

A, bu testi yapmadan önce savunacağım kuraldı. Düz bölgeyi seç, tek başına yükselen tepeden uzak dur, hiçbir metriğin en yükseğini alma. Kuralın seçtiği, kısa geriye bakışlı, atlamasız, on hisselik bir portföy oldu. Eğitimde %63.4, test döneminde %21.2 getirdi ve MAR'ı 0.52 oldu.

Tablodaki en kötü sonuç bu ve MAR'da eşit ağırlıklı kıyas ölçütünü geçemeyen tek seçim. Onca özenin sonunda, evrendeki bütün hisseleri tutmanın gerisinde kaldı.

Bunun plato fikrini tamamen çürüttüğünü düşünmüyorum ve fikri sessizce bir kenara bırakmak yerine nedenini açıklamak istiyorum. Komşuluk tanımım kaba: altı eksen var ve çoğunun yalnızca iki değeri var. Bu yüzden "bir adım öte" çoğu zaman bir ayarı biraz oynatmaya değil, bir düğmeyi açıp kapatmaya denk geliyor. Bu kadar kaba bir parametre uzayında plato pek plato sayılmaz. Sonucun asıl çürüttüğü şey, bu yöntemin bedava bir koruma sağladığı düşüncesi. Plato kuralı da parametre uzayına dair bir model ve kötü bir model size pahalıya patlar.

MAR'a göre sıralama farklı ve daha iyi bir portföy seçti

D, taramadan seçim yapan kurallar içinde gerçekten farklı türde bir konfigürasyon seçen tek kural: daha uzun geriye bakış, açık atlama, ters oynaklık ağırlığı ve on yerine yirmi hisse. Eğitimde epey geride kaldı, B'nin %73.4 getirisine karşı %57. Buna karşılık örneklem dışında taramadan çıkan en iyi seçim oldu: MAR'ı 1.65, B'ninki ise 1.24.

Farkın nereden geldiği getirilerde değil, düşüşlerde görülüyor. B eğitimde %57.7 düşüş yaşadı, D ise %41. MAR'a göre sıralamak en çok para kazandıran konfigürasyonu ödüllendirmiyor. Ödüllendirdiği, yol boyunca derin bir çukura düşmeden para kazanan konfigürasyon. Ham getiri örneklem dışında tutmazken bu özellik tuttu.

Canlı sistemde çalışan konfigürasyon da bu. Bunu tarafsız bir bulgu gibi sunmak yerine açıkça belirtmem gerekiyor. D'yi bu deneyden önce seçmiştim, yani deney verilmiş bir kararın sağlaması, kararın gerekçesi değil.

Kimsenin seçmeyeceği konfigürasyon

E, ders kitabındaki sade tanım. Tarama yok, optimizasyon yok, 1993 tarihli bir makalenin verdiği parametreler var. Eğitimde MAR'da 0.62 ile beş konfigürasyon içinde sonuncu oldu. CAGR'ı %27.6 kalırken en üstteki satır %73.4 getirmişti. Bu taramayı yapan kimse onu canlıya almazdı.

Örneklem dışında ise %61.6 getirdi. Tablodaki en yüksek ikinci getiri bu ve MAR'ı 1.56.

Bunun sebebini tek bir test döneminden çıkaramam. Ders kitabı tanımı gerçek bir etkiyi yakalıyor da dört yıllık ABD verisi mi buna uymadı, yoksa E sadece şanslı mıydı, bilemiyorum. Söyleyebileceğim şu: tarama onu sonuncu sıraladı, test dönemi ise ilk sıralara yakın. Parametre seçimi üzerine kurulan her açıklamanın bunu da açıklayabilmesi gerekiyor.

Atlama, test döneminde eğitimdekinin tersine çalıştı

F'nin tek amacı bir parametrenin katkısını ölçmek. D'nin aynısı, yalnızca atlaması kaldırılmış. Eğitimde bunun bedeli yüksek: CAGR %57 seviyesinden %45.6 seviyesine, MAR 1.39 değerinden 1 değerine iniyor. Atlamayı korumak için bundan iyi gerekçe olmaz.

Örneklem dışında ise tablo tersine dönüyor. Atlamayı kaldırmak bütün ölçüleri iyileştirdi: CAGR %59.9 seviyesinden %66 seviyesine, MAR 1.65 değerinden 1.77 değerine çıktı ve F tablonun en iyi sonucunu verdi.

Yani teoriyle gerekçelendirebildiğim, literatürde yeri olan ve eğitim verisiyle de desteklenen tek parametre, son iki buçuk yıldır aleyhime çalışıyormuş. Bunun temiz bir açıklaması bende yok. Kısa vadeli tersine dönüş gerçek bir etki ama aynı zamanda çok kişinin peşinde olduğu bir etki. Söyleyebileceğim en doğru şey şu: tek bir test dönemi, "atlama artık kazandırmıyor" ile "atlama yalnızca bu dönemde kazandırmadı" arasındaki farkı ayırt edemez.

Plateau (neighbourhood median)1.66×Best train CAGR2.84×Best train MAR3.38×Textbook 12-1, no filter3.51×Best train MAR, no skip3.72×Equal-weight universe1.37×
1×2×3×4×5×202420252026
Fig. 2Yalnızca test dönemindeki büyüme: her konfigürasyon test döneminin ilk gününde 1 birimle başlıyor. Kesikli çizgi eşit ağırlıklı evren. C, B ile aynı konfigürasyon olduğu için grafikte yok.

Eğrilerde tablonun gösteremediği bir şey görülüyor. Taramanın sonuncu sıraladığı ders kitabı konfigürasyonu E, dönemin büyük kısmında önde gidiyor ve ancak sona doğru yakalanıyor. D ile F onu son aylarda geçiyor. Grafiğe daha önceki hemen herhangi bir noktada bakılsaydı başka bir kazanan çıkacaktı. 2025'in büyük bölümünde ilk üç arasındaki fark da o kadar küçük ki son sıralama birkaç haftalık performansa bağlı.

A bu resmin dışında kalıyor. İlk yıl boyunca diğerleriyle birlikte ilerliyor ve ancak 2025 başından itibaren kopuyor. Bunun altını çizmek gerekiyor, çünkü daha kısa bir test dönemi A'yı tüm evreni almaya kaybeden tek seçim olarak değil, sıradan bir seçim olarak gösterirdi.

Bu deneyin göstermedikleri

Beş farklı konfigürasyon, tek bir test dönemi, tek bir piyasa ve tek bir strateji ailesiyle yapılmış tek bir deney. Bir kural koymuyor, yalnızca benim seçeneklerimi daraltıyor.

Temkinli olmak için üç somut sebep var:

  1. Test dönemi bir boğa piyasası. 2024-01-01 tarihinden itibaren eşit ağırlıklı evren yılda %11.9 getirdi ve maksimum düşüşü %22.2 oldu. Eğitim döneminde getiri %14.9, düşüş %41.4 olmuştu. Yükselen piyasada momentum her şeyi olduğundan iyi gösterir ve altı konfigürasyonun beşi örneklem dışında iyileşti. Her şeyin iyileştiği bir test, neyin işe yaradığını ayırt etmekte zayıf kalır.
  2. Izgara kaba. Eksenlerin çoğunda yalnızca iki değer var. Özellikle plato kuralının, aleyhindeki bu sonuca güvenmeden önce daha ince bir ızgarada yeniden denenmesi gerekiyor.
  3. Seçim dönemi tek bir piyasa rejimi. Eğitim dönemi 2020-01-01 ile 2024-01-01 arasını kapsıyor ve içinde bir çöküşle ardından gelen çok güçlü bir toparlanma var. Konfigürasyonlar bu dönemdeki davranışlarına göre sıralandı, test döneminde ise buna benzer hiçbir şey yaşanmadı.

Sonuçlara güvenmeden önce backtest'i sınamak

Yukarıdaki her şey, backtest'in zamanı doğru işlemesine, yani geleceği görmemesine bağlı. Bunu varsaymak yerine iki kontrolle test ettim.

İleriye bakma testi

Test dönemindeki herhangi bir karar, verildiği andan sonraki veriyi kullandıysa seçim kuralları ne kadar özenli kurulmuş olursa olsun sonuç değersizdir. Test şöyle işliyor: bir konfigürasyonu test döneminin başından bir ara tarihe kadar, fiyatlar yalnızca o ara tarihe kadar yüklenmişken çalıştırıyorum. Sonra aynı konfigürasyonu, fiyatlar bugüne kadar yüklenmişken test döneminin sonuna kadar çalıştırıyorum ve iki sermaye eğrisini ortak günlerde karşılaştırıyorum.

Geleceği göremeyen bir çalıştırma ile görebilen bir çalıştırma, ortak günlerde birebir aynı sonucu vermek zorunda. Veriyorlar da: 374 ortak gün, farklı tek bir değer yok. Strateji kodu bunu yapısı gereği zaten garanti ediyor, çünkü her karara yalnızca bir önceki kapanışa kadarki mumları veriyor ve emri bir sonraki açılışta gerçekleştiriyor. Yine de bu garantiye güvenmek yerine ölçmek daha doğru.

Temiz çıkmayan kontrol

İkinci kontrol, seçilen 1,500 hissenin fiyatların hangi tarihe kadar yüklendiğine bağlı olup olmadığına bakıyordu. Bu listenin eğitim döneminin sonunda sabitlenmiş olması gerekiyor ama tam öyle değil. Fiyatlar eğitim sonuna, ara tarihe ve bugüne kadar yüklendiğinde her seferinde 1,500 hisse seçiliyor ve her liste diğerlerinden, likidite eşiğindeki tek bir hisseyle ayrılıyor.

Fark küçük ama yok sayılacak kadar değil. Eğitim dönemini iki yüklemeyle de çalıştırınca CAGR %57.04 ve %57.70 çıkıyor. Aradaki 0.66 yüzde puanlık fark, değişen hisseyle gerçekten işlem yapılmasından geliyor. İşlem takvimi ikisinde de aynı, 1,006 gün. Yani sebep tarihler değil, hisse evreni. Ben sebebin takvim olduğunu sanıyordum ama ölçünce başka çıktı.

Mekanizma şöyle işliyor: aday havuzu yüklenen dönemin tamamı üzerinden oluşturuluyor, likidite sıralaması ise ancak ondan sonra eğitim sonuna kadarki veriye uygulanıyor. Havuz biraz büyüyünce eşik kayıyor ve sınırdaki hisse değişiyor. Böylece bir hissenin 2021'de listeye girip girmemesi, çok az da olsa 2026 verisine bağlı hale geliyor. Eğitim sonundaki sınırın önlemesi gereken sızıntı da tam olarak bu türden.

Bu sızıntı yazıdaki hiçbir sonucu değiştirmiyor. 0.66 yüzde puan, sonuçların dayandığı farklardan çok daha küçük. Eğitim rakamları eğitim sonuna kadarki yüklemeden geliyor ve taramayı birebir tekrarlıyor, yukarıdaki ileriye bakma testi de sorunsuz geçiyor. Yine de buradaki eğitim ve test çalıştırmaları, 1,500 hisseden birinde farklılaşan iki evrenle yapılıyor. Birinin bunu sonradan bulmasını beklemektense şimdi söylemek daha iyi.

Bu deneyden sonra değiştirdiklerim

İki şey değiştirdim ve ikisi de "doğru kuralı buldum" değil.

Birincisi, bir taramanın sıralamasını gelecek hakkında bilgi olarak okumayı bıraktım. Sıralama yalnızca eğitim döneminde ne olduğunu özetler. Bu deneye bakılırsa sıralama yalnızca isabetsiz değil, tersine de dönmüş olabilir. Taramayı kullanmanın makul yolu, en başarılı olanı seçmek değil, her koşulda başarısız olan konfigürasyonları elemek.

İkincisi, seçilen konfigürasyon artık canlıya alınmadan önce test döneminde kıyas ölçütünü geçmek zorunda. A bu eşiği geçemezdi. Doğru seçimi yapmaktan daha düşük bir çıta ama en azından gerçekten kontrol edebildiğim bir çıta.

İşin rahatsız edici tarafı şu: bu tablodaki en iyi sonuç, bir parametrenin gerekli olduğunu doğrulamak için yaptığım bir testten geldi, ikinci en iyi sonuç ise taramayı tamamen yok saymaktan. Buna dayanarak canlıdaki konfigürasyonu değiştirmedim. Değiştirseydim test dönemine bakarak seçim yapmış olurdum ve bu yazının konusu tam da o hata. Bu fikir, henüz ne benim ne de sizin baktığınız bir dönemde düzgünce test edilmek üzere listeye giriyor.

Bu yazıdaki her kural, üzerinde tartışılabilecek kadar net tanımlandı: bir sıralama ölçütü, eşitlik durumunda hangisinin seçileceği ve sıralanan ızgara. Plato kuralının kötü tanımlandığını düşünüyorsanız (bence de bunu savunmak mümkün), tanım yukarıdaki listede duruyor. O zaman tartışma benim ne demek istediğim üzerine değil, doğrudan o tanım üzerine olur.

Yazan

Koray GocmenKurucu

Buradaki araştırmaların arkasındaki sistematik stratejileri kuruyor ve çalıştırıyor.

Kaynak kodun tamamı

Bu yazının arkasındaki kod, veri ve parametre dosyaları.

Tüm araştırmalar