Tek Bir Backtest Neden Yanıltabilir
İyi görünen bir backtest ile gerçekten işe yarayan bir strateji aynı şey değildir. İşte bunları birbirinden ayırt etmenin yolu — hangi aracı kullanırsanız kullanın, bizimki dahil.
Yeterince kombinasyon test edin, bir şey parlak görünecektir
Bir parayı on kez havaya atarsanız muhtemelen sıradan bir sonuç elde edersiniz. Ama bunu bin kişiye yaptırırsanız, biri art arda on kez tura getirir. Kimse o kişiyi "yazı tura dehası" olarak adlandırmaz — oysa backtesting'de yatırımcılar her gün tam olarak bu hatayı yapıyor.
Herhangi bir araçtaki her parametre optimizasyonu aynı şekilde çalışır: birçok kombinasyonu test et, en iyilerini öne çıkar. Bu gerçekten faydalıdır — ama içinde yerleşik bir tuzak barındırır. Bazı kombinasyonlar salt şans eseri harika görünecektir, çünkü geçmiş verideki rastgele gürültü zaman zaman belirli bir ayarla örtüşür ve hiçbir anlam taşımayan güzel bir equity eğrisi üretir.
Ve ne kadar çok kombinasyon test ederseniz, "en iyi" sonucunuzun bu şanslı kazalardan biri olma olasılığı o kadar artar. Bu, belirli bir optimizatörün kusuru değildir — çoğun içinden en iyisini seçmenin matematiksel bir özelliğidir. Bunun anlamı şudur: herhangi bir sonuç tablosunun en üstü şu soruyla okunmalıdır — bu gerçek bir avantaj mı, yoksa bu çalıştırmanın piyango kazananı mı?
Herhangi bir sonuca güvenmeden önce kontrol etmeye değer üç sinyal
Bunlar için aracımıza ihtiyacınız yok. Araçtan bağımsızdırlar ve bir e-tabloda da işe yararlar.
Kaç işlem üzerine kurulu?
14 işlem üzerinden %300 getiri bir kanıt değil, bir anekdottur. Küçük örneklemler her iki yönde de uç sonuçlar üretir — ve uç şans, uç yetenekle aynı görünür. İşlem sayısı ne kadar azsa, bir backtest size o kadar az şey söyleyebilir.
Komşular aynı fikirde mi?
14. periyot para kazandırıyor ama 13 ve 15 kaybettiriyorsa, bir avantaj değil bir sıçrama bulmuşsunuzdur. Güvenilmeye değer bir parametre değeri genellikle iyi sonuçlardan oluşan bütün bir bölgenin içinde yer alır, çünkü gerçek bir avantaj bir ayar bir kademe kaydığında ortadan kaybolmaz. İzole zirveler, overfitting'in klasik imzasıdır.
Ne kadar sıkı arama yaptınız?
20 kombinasyon içinden en iyi sonuç ile 2.000 kombinasyon içinden en iyi sonuç eşit derecede anlamlı değildir. Arama ne kadar genişse, şansın bir kazanan üretmesi için o kadar çok fırsat olmuştur — bu yüzden bir sonucun "sadece şans olabilir" eşiğini geçmesi için o kadar etkileyici olması gerekir.
Üçünü de her çalıştırma için elle kontrol etmek yorucudur. Bu yüzden neredeyse kimse yapmaz. Çözmeye çalıştığımız gerçek problem de tam olarak budur.
RunOpti bunları nasıl raporluyor — her çalıştırmada otomatik olarak
RunOpti parametre taramasını otomatikleştirir — ama en çok önemsediğimiz kısım, backtest'ler bittikten sonra olanlardır. Her sonuç yukarıdaki üç sinyale göre puanlanır:
- check_circle
Düşük örneklem işareti. Minimum eşikten daha az işlem üzerine kurulu sonuçlar, ham sayılar ne kadar çarpıcı görünürse görünsün, açıkça düşük güvenilirlik olarak işaretlenir.
- check_circle
Komşuluk stabilitesi. Her kombinasyonun skoru, komşu parametre değerlerinin ne kadar tutarlı performans gösterdiğini yansıtır. Yalnız bir sıçrama, ham getirisi daha yüksek olsa bile, sağlam bir bölgeden daha düşük puan alır.
- check_circle
Arama boyutuna göre deflasyon. Puanlar, çalıştırmanın kaç kombinasyon test ettiğine göre düzeltilir. 2.000'de en iyisi, 50'de en iyisinden daha yüksek bir eşiği geçmek zorundadır, çünkü şanslı olmak için kırk kat daha fazla fırsatı olmuştur.
- check_circle
Ve hiçbir şey geçemediğinde, bunu söyleriz. Hiçbir parametre bölgesi bu kontrollerden sağ çıkamazsa, RunOpti size doğrudan söyler: güvenilir bölge bulunamadı. Bizce, "bu çalıştırma güvenilir hiçbir şey üretmedi" diyemeyen bir araç, güvenilirliği gerçek anlamda ölçmüyor demektir.
Bu sonuncusu, o anda en az seveceğiniz özelliktir — ve raporun geri kalanını okumaya değer kılan da odur.
Bu skorların ne anlama geldiğine dair bir not. RunOpti'nin dayanıklılık skorlaması, tek bir çalıştırma içindeki göreli bir sıralamadır — test edilen kombinasyonlardan hangilerinin birbirine kıyasla daha güvenilir olduğunu belirler. Gelecekteki performansın garantisi değildir. Geçmiş sonuçlar — ne kadar dikkatli doğrulanmış olursa olsun — gelecekteki getirileri garanti etmez.
Stratejinizin dürüst bir puanlama altında nasıl göründüğünü görün
Kendi stratejinizde tam bir parametre taraması çalıştırın ve resmin tamamını görün — sağlam bölgeler, şanslı sıçramalar ve ikisi arasındaki fark.
Her iki durumda da baskı yok. Dürüst cevap "güvenilir bölge bulunamadı" ise, bunu piyasadan duymadan önce optimizatörünüzden duymak isteyeceksiniz.