Backtest nedir? Bir kripto stratejisi dürüstçe nasıl backtest edilir?
Backtest açıklaması: işlem kurallarını geçmiş fiyatlarda test etme, çoğu testin hesaba katmadığı ücretler ve kayma, sonuçları okuma ve yanıltıcı hatalar.
Kısa yanıt
Backtest, işlem kurallarını geçmiş fiyatlarda çalıştırarak nasıl sonuç vereceklerini gösterir: işlemler, maliyetlerden sonraki sonuç ve süreçteki en büyük düşüş. Gerçekçi bir backtest, gerçek ücretleri ve kaymayı hesaba katar, sonucu coin'i sadece elde tutmayla karşılaştırır ve birden fazla dönem kullanır. Geçmiş sonuçlar gelecekteki sonuçları öngörmez.
Backtest, bir dizi işlem kuralını geçmiş fiyatlarda çalıştırarak bu kuralların nasıl sonuç vereceğini görmektir. Yazılım geçmişteki fiyatları sırayla inceler, kurallarını tam olarak yazdığın gibi uygular ve kuralların oluşturacağı her işlemi, her birinin maliyetini ve hesabın nasıl büyüyüp küçüleceğini kaydeder.
Backtest tek bir soruya yanıt verir: Bu kurallar geçmişte, maliyetler hesaba katıldığında işe yarar mıydı? Kötü fikirleri elemenin en ucuz yoludur. Son iki yılda zarar eden bir kuralla başlamak muhtemelen iyi bir tercih değildir.
Kuralların gelecek ay işe yarayıp yaramayacağını gösteremez. Piyasalar değişir ve bir döneme uyan kural, sonraki dönemde başarısız olabilir. Bu yüzden backtest'ten sonraki adım gerçek parayla işlem yapmak değil, paper trading'dir.
Backtest nasıl çalışır?
Piyasayı ve dönemi seç, örneğin son 2 yılda Binance'te BTC/USDT.
Kuralları net bir şekilde yaz. "BTC 24 saat içinde %5 düşerse al, alış fiyatının %4 üstünde sat, %6 altında stop koy, aynı anda en fazla 2 açık alım olsun."
Fiyatları yeniden oynat. Test, her adımda bir kuralın tetiklenip tetiklenmediğini kontrol eder ve emri o fiyattan simüle eder.
Maliyetleri ekle. Simüle edilen her emir, borsa ücretini ve beklenen fiyatla gerçekleşen emir fiyatı arasındaki fark olan kaymayı hesaba katar.
Özetle. Test, dönem boyunca elde edilen sonucu, işlem sayısını, kâr eden işlemlerin oranını ve süreçte görülen en yüksek seviyeden en büyük düşüşü bildirir.
Bir backtest sonucu dürüstçe nasıl değerlendirilir
Öne çıkan sonuçtan daha önemli olan dört sayı:
Dönem. Dönem belirtilmeden bir sonuç bir şey ifade etmez. Çöküşün yaşandığı 12 ay, fiyatların yükseldiği 12 aydan çok farklıdır.
En büyük düşüş. Maksimum düşüş olarak da bilinir: toparlanma öncesinde görülen en yüksek seviyeden en büyük gerileme. Stratejiyi uygulamanın ne kadar zor olabileceğini gösterir. TradeCorgi bunu sonuçla aynı büyüklükte gösterir, asla küçük yazıyla vermez.
Alıp elde tutmayla karşılaştırma. Stratejiyi, en başta coin'i alıp elde tutmakla yan yana değerlendir. Birçok kural yükselen piyasalarda elde tutmanın gerisinde kalır ve yalnızca düşen piyasalarda işe yarar. Bunu biliyorsan sorun olmayabilir.
İşlem sayısı. Beş işlem bir anekdottur. Elli işlem bir şeyler anlatmaya başlar. Backtest'inde çok az işlem bulunan bir strateji neredeyse hiç test edilmemiştir.
Backtest sonuçlarını yanıltan hatalar
Ücretleri ve kaymayı hesaba katmamak. Sonucu olduğundan iyi gösteren en yaygın hata. Emir başına %0,1 ücretle her gün işlem yapan bir kural, her alım-satım döngüsünde yaklaşık %0,2 ücret öder ve bu, bir yıl içinde küçük bir avantajı tamamen silebilir.
Yalnızca tek bir dönemi test etmek. Aynı kuralları yükseliş, düşüş ve yatay piyasa gibi farklı dönemlerde çalıştır. Yalnızca tek bir dönemde işe yarayan bir kural, aynı piyasanın yeniden yaşanacağına dair bir bahistir.
Aşırı uyum. Sonuç kusursuz görünene kadar sayıları değiştiriyorsan (%5 yerine %4,7, %4 yerine %3,9 gibi), muhtemelen bir örüntü bulmak yerine geçmiş verilere uyum sağlamışsındır. Farklı değer aralıklarında işe yarayan, yuvarlak ve basit kuralları tercih et.
Geleceği görme yanlılığı. Öğlen günün kapanış fiyatı gibi, kuralın o anda bilemeyeceği bilgileri kullanan bir test her zaman gerçeğinden daha iyi görünür.
En kötü düşüşü göz ardı etmek. Daha yüksek bir sonuçla biten ama yol boyunca %40 düşen bir stratejiyi çoğu kişi en dipte bırakır.
Örnek uygulama
BTC Dip Buyer'ı al ve Binance'de 90 gün boyunca, her alım ve satım için 0.1% ücret ve emir başına 0.05% kayma ile geriye dönük test et:
Kurallar 9 işlem yapıyor: 6 işlem kârla sonuçlanıyor, 3 işlem stop loss seviyesine ulaşıyor.
Bu 90 günün sonunda hesap, ücretler düşüldükten sonra başlangıç değerinden 6.8% daha yüksek oluyor.
Aynı 90 gün boyunca yalnızca BTC'yi elde tutmak, dönemi 3.1% daha yüksek bir değerle tamamlıyor.
Süreçteki en büyük düşüş, zirve noktasından itibaren 4.9%; BTC'yi elde tutmada ise 10.7%.
Dürüstçe değerlendirelim: Bu tek 90 günlük dönemde kurallar, en büyük düşüşün daha az olmasıyla alıp elde tutma stratejisinden daha iyi sonuç verdi. Ancak tek bir dönemde yapılan 9 işlem, sağlam bir çıkarım için yeterli kanıt değil. Sonraki adım daha uzun bir geriye dönük test, ardından sanal işlemler olabilir. Bu açıklayıcı bir örnektir, gerçek bir sonuç değildir.
TradeCorgi'de backtest
Bir strateji tanımladığında, kuralları onaylamanın ardından TradeCorgi otomatik olarak backtest yapar:
Ücretler her zaman dahildir. Hesabının kademesine ait borsa ücreti, kayma ve borsanın minimum emir büyüklüğü hesaba katılır.
Aynı grafikte coini elde tutma karşılaştırması sunulur, böylece kuralların bir fark yaratıp yaratmadığını görebilirsin.
Sonuçla aynı büyüklükte en kötü düşüş gösterilir.
Plana göre geçmiş veriler: Sandbox'ta 90 gün, Copilot'ta 2 yıl, Autopilot'ta 4 yıl ve Pro'da borsanın tüm geçmiş verileri.
Her sonuç, dönemi ve işlem ücretleriyle birlikte etiketlenir. Başarılı bir geriye dönük test, kağıt üzerinde işlem yapmayı açar; doğrudan canlı işlem yapmayı değil.
Backtest kontrol listesi
Dönem belirtilmiş ve birden fazla piyasa koşulunu kapsıyor.
Her işlemde ücretler ve kayma hesaba katılıyor.
Sonuç, coini sadece elde tutmakla karşılaştırılıyor.
En büyük düşüş gösteriliyor ve bu düşüşü göze alabilirsin.
Sonuçların anlamlı olması için yeterli sayıda işlem var.
Kurallar basit ve yuvarlak; küsuratlara göre ayarlanmamış.
Sonraki adım, tüm gerçek paranla işlem yapmak değil, paper trading.
Sorular
İyi bir backtest, stratejinin işe yaradığını kanıtlar mı?
Hayır. Kuralların geçmişteki belirli bir dönemde, masraflar hesaba katıldıktan sonra nasıl sonuç vereceğini gösterir. Gelecek farklı olabilir; bu yüzden backtest'i iyi fikirlerin kanıtı olarak değil, kötü fikirleri elemek için bir araç olarak gör.
Bir kripto backtest'i ne kadarlık geçmiş veriyi kullanmalı?
Yükselen, düşen ve yatay piyasaları kapsayacak kadar uzun olmalı. Kriptoda bu genellikle en az bir yıl, ideal olarak birkaç yıl demektir. TradeCorgi, Sandbox'ta 90 days, Copilot'ta 2 years, Autopilot'ta 4 years ve Pro'da borsanın tüm geçmişini sunar.
Komisyonları ve fiyat kaymasını neden hesaba katmalı?
Çünkü gerçek işlemlerin her birinde bu ücretler ödenir. Sık işlem yapan bir kural, maliyetler hesaba katılmadan iyi görünüp maliyetlerden sonra zarar ettirebilir. TradeCorgi backtest'leri borsa ücretlerini ve kaymayı her zaman hesaba katar.
Aşırı uyum (overfitting) nedir?
Kuralları geçmiş fiyatlara kusursuz uyana kadar ayarlamak. Sonuç, test döneminde mükemmel görünür ve sonrasında genellikle hayal kırıklığı yaratır; çünkü kurallar gerçek bir örüntü yerine gürültüyü öğrenmiştir.
Ücretsiz backtest yapabilir miyim?
Evet. Ücretsiz Sandbox planı, ücretler dâhil 90 günlük geçmiş verilerle geriye dönük test yapar ve tek bir sanal işlem ajanı çalıştırır.
Bir backtest'i neyle karşılaştırmalıyım?
Aynı dönemde aynı coin'i alıp elde tutarak. Kurallar, komisyonlardan sonra elde tutma stratejisinden daha iyi sonuç veremiyorsa ya da bunu ancak çok daha derin bir en kötü düşüş pahasına yapıyorsa, çalıştırmaya değmeyebilir.
Bunu ajan olarak dene
Bu rehberi şu planla uygulamaya koy: BTC Dip Alıcısı strateji. Önce sanal parayla kâğıt üzerinde başlar.