Pratik uygulama

Backtesting doğrulama süreci: program, veri ve performansı ayrı sınayın

%98 toplamın gizlediği ret testleri, OOS sürüm kaydı ve yeniden başlatmada 0,08/0,20 lot hesabı. Yeni TRY maliyet sürümü ve bütçe kartı.

Bordo zeminde CHECK yazısı; açık renkli yatay kirişi taşıyan iki sütun ve önde ayrı sarı küp.
Yapay zekâyla hazırlanmış editoryal illüstrasyon. Kapaktaki etiket korunmuştur; gerçek fiyat grafiği, belge veya performans kaydı değildir.

Kaldıraçlı forex ve CFD işlemleri kısa sürede kayba yol açabilir. İçerik eğitim amaçlıdır; kişiye özel yatırım tavsiyesi içermez.

Bu makalede

Bu makaleyi okuduktan sonra…

  • Toplam geçiş sayısını zorunlu kategori sonucundan ayırabilirsiniz.
  • Test gözleminin yeni sürümde geliştirme verisine dönüştüğünü kaydedebilirsiniz.
  • TRY ücret sürümü değişince aynı miktarın risk kararının neden değiştiğini hesaplayabilirsiniz.

Kavramları makaleden ayrılmadan öğrenin

Backtesting — geçmiş veriyle strateji testi İşlem planı Emir gerçekleşmesi Özkaynak — equity Likidite Pozisyon büyüklüğü

Backtest, strateji değerlendirmesinin bir aşamasıdır. Önce kuralları tanımlayın, geçmişi denetleyin, geliştirmeyi değerlendirmeden ayırın; sonra demo veya emirsiz gözlemle operasyonu inceleyin. Gerekçelendirilmiş, sınırlı gerçek hesap çalışması ayrı karardır ve zorunlu son durak değildir. Bu aşamaları geçmek hesabın hayatta kalmasını veya tekrarlanabilir getiriyi garanti etmez.

Tek backtest neden süreç değildir?

Program doğruluğu, veri kalitesi, tarihsel performans ve hesapta işleyiş farklı sorulara cevap verir. Kod, zarar eden fikri kusursuz uygulayabilir; kârlı rapor hatalı koddan da çıkabilir. Sürümlü kanıt kartına soruyu, beklenen durumu, gözlenen sonucu ve çözülememiş sınırı yazın. Başarılı giriş, kayıp, sinyal yokluğu, onaylı ret ve yeniden başlatma vakalarını ekleyin. Kanıt eksikse “kontrol edilmedi” deyin. 300 kombinasyondan seçilmiş temsili %30 getiri seçilimi araştırma nedenidir; üstünlük kanıtı değildir. Doğru backtest yöntemi bu ayrımı temellendirir.

Toplam %98, gerekli ret kategorisini geçirmez

Her sonucun yanına vaka türünü yazın; toplam yüzde önemli bir durumun hiç sınanmadığını veya yanlış ele alındığını gizleyebilir.

Toplam %98, hata kategorisini geçirmezYüz temsili işlev vakasında 98 normal işlem ve iki onaylı emir reddi vardır. Normal 98 vakanın hepsi önceden tanımlı beklenen durumu kaydeder. İki ret vakası da gerçekleşme varmış gibi yazmadan ret kaydetme koşulunu sağlayamaz. Toplam geçiş %98, gerekli ret kategorisi 0/2’dir. Eşit çerçeveler kendi kategorilerinin %100’ünü gösterir, eşit vaka sayısını değil. Bu liste gelecekte güvenilirlik olasılığı veya strateji getirisi değildir.ÖNCE HATA KATEGORİSİNE BAKINTemsili işlev testleri • geçenlerin payıNormal işleyiş98 /98 geçti%100Onaylı ret0 /2 geçti%0Her çerçeve kendi kategorisinin %100’ü.Toplam: 98 /100 = %98Ret ölçütü: 0 /2 = %0Bu kategori hâlâ geçmiyor.

Kaynak model tam 100 temsili işlev vakası içerir; beklenen durumlar testten önce tanımlanmıştır. Gerçek fiyat veya hesap yoktur. 98 normal vakanın hepsi geçer; onaylı ret olan iki vakanın ikisi de reddi, gerçekleşme olmuş gibi göstermeden kaydetme ölçütünü sağlayamaz.

Toplam 98/100 = %98, fakat ret kategorisi 0/2 = %0’dır. İki kategori de zorunlu olduğundan kontrol açık kalır. Ret işleyişini düzeltip ilgili vakaları ve normal işleyişin bozulmadığını yeniden sınayın. Her çerçeve kendi kategorisinin %100’üdür; alanları 98 ve 2 vaka büyüklüğünü karşılaştırmaz.

Bu hazırlanan liste bir piyasa arızası olasılığı, kurum kalitesi veya gelecek kâr ölçümü değildir. Cevap gelmeyen ağ isteği burada “ret” sayılmaz: iki vakada ret durumu zaten onaylanmıştır. Bilinmeyeni ret diye etiketlemek farklı bir hatadır.

Yüksek toplam not, başarısız zorunlu kategoriyi kapatmaz.

Yazılı kurallar: yorum boşluğunu kapatın

Giriş, çıkış, stop, hedef ve büyüklük yeniden üretilebilir olmalıdır. Temsili aday EMA(50), EMA(200), RSI(14), yirmi dönemlik ortalama, 1,5 ATR(14) stop, 2,5 ATR hedef ve %1 planlı risk kullansın. Bu liste hâlâ tam strateji değildir. Tam mum zamanı, “dokunma” tanımı, gerçekleşebilir fiyat tarafı ve eşzamanlı çıkış şartında öncelik gerekir. Yalnız sayıları bir program ekranına yazmak yorum farkını ortadan kaldırmaz.

Veri penceresini araştırma sorusuna bağlayın

Sabit yıl kuralı yerine stratejiye ve erişilebilir ürün verisine uygun geçmiş seçin. Sağlayıcı, ürün, saat dilimi, fiyat tarafları, boşluklar, kod sürümü, girdiler ve gerçekleşme varsayımını kaydedin. Verinin kendisini veya doğrulanabilir kimliğini; işlem ve günlükleri arşivleyin. MT5 gerçek tikleri ile üretilmiş ikameleri ayırın. Geçmiş, derleme veya hesap ayarı değişmesi strateji değişmeden raporu değiştirebilir. İşlem sayısı tek başına bağımsız kanıt oluşturmaz.

Geliştirme ve örnek dışı bloğu ayırın

Kronolojik geliştirme/değerlendirme ayrımını önceden tanımlayın. 70/30 yalnız temsili tasarımdır. Zayıf örnek dışı sonuç seçilim kadar örnekleme, maliyet veya koşul farkını da yansıtabilir. Testi kural seçimine kapalı tutun. Sürüm 1.0, 2024–2025’te sınansın; pazartesi kayıpları görülünce sürüm 1.1’e pazartesi yasağı eklensin. Aynı 2024–2025’i tekrar çalıştırmak yeni sürüm için geliştirme kanıtıdır. İki raporu ve değişiklik nedenini saklayın; döneme yeni ad vermek bağımsızlığı geri getirmez.

İlerleyen pencere ayrı kontrol sağlar

Temsili walk-forward önce 2018–2021’de seçim, 2022’de test; sonra 2019–2022’de seçim, 2023’te test yapsın. Gelecek bilgiyi kullanmadan seçilen yuvarlanan prosedürü uygulayın. Beş–yedi döngü bir tasarım seçimidir. WFE adını verdiğiniz ölçüyü ve paydasını tanımlayın; 0,5–0,75 veya 0,3 altı evrensel hüküm değildir. Walk-forward yönteminde her pencerenin seçimi dondurulur. Sonuç sonraki sürümü değiştiriyorsa bunu araştırma günlüğünde gösterin; aynı pencereyi dokunulmamış kanıt gibi sunmayın.

Gerçek zamanlı işleyiş ve isteğe bağlı canlı inceleme

Demo veya emir vermeden gözlem; sinyal zamanı, izinler, yanıtlar ve yeniden başlatmayı gerçek zamanda kontrol edebilir. Fikir kimliği, istenen miktar, dolumlar ve aktif emirler kaydedilir. MT5 testerındaki Forward seçeneği tarihsel aralığın sonraki bölümünü değerlendirir; demo hesabında gelecekteki kotasyonları gözlemekle aynı değildir. Geçen aylar hiç oluşmayan nadir hata yolunu sınamaz. Demo dolumları gerçek hesabı aynen üretmeyebilir.

Kaynak yeniden başlatma modelinde alış hedefi 0,20 lot, bağlantı kesilmeden dolan 0,08; eski kalan emir daha sonra iptal edildiği onaylanmış olsun. Bu fikir için başka pozisyon veya emir yok. Yeniden 0,20 göndermek toplamı 0,28’e taşır: hedef üstü 0,08 veya %40. Yalnız fark 0,20 − 0,08 = 0,12 dolarsa toplam 0,20 olur. İptal bilinmiyorsa eski kalan da dolabilir; önce durumu uzlaştırın. Bu, tanımlı tek arıza yolunu kontrol eder; bütün sistemin güvenilirlik kanıtı değildir.

Canlı inceleme gerekçelendirilirse gerçek sözleşme boyutu ve maruziyeti yazın. “Mikro lot” hedefinizin otomatik onda biri değildir. Üç–altı ay gözlem açıklayıcı bir süredir, yeterlilik hakkı değildir. Maliyet ve gerçekleşmeyi modelle karşılaştırıp artış düşünmeden farkı kaydedin. Aşamaların benzemesi piyasa riskini yok etmez.

Yeni TRY kartı: doğru sinyal, yanlış maliyet sürümü

Ayrı kâğıt modelinde sermaye 22.000 TRY, seçilmiş planlı risk bütçesi %1 = 220 TRY olsun. Tam 1.000 EUR alış için atanmış giriş 40,20 TRY/EUR, planlanan stop fiyatı 40,00; açılış ve kapanış toplam iki emir. V1 hayalî tarifesi emir başına 5 TRY: fiyat kaybı 200, ücret 10, toplam plan 210 TRY. V2 tarifesi emir başına 20 TRY’ye değişsin: aynı miktar ve fiyatlarda plan 240 TRY’dir. Bütçe kapısı V1’i kabul, V2’de 1.000 EUR’yu ret olarak beklemelidir. Aynı sinyalin bulunması bu kontrolü kapatmaz.

V2 için miktarı 100 EUR adımlarla seçen ayrı kuralın üst sınırı (220 − 40)/0,20 = 900 EUR’dur; plan 180 + 40 = 220 TRY. Sonraki adım 1.000’de 240 olur. Bunlar varsayımsal ücret ve büyüklük kurallarıdır, gerçek kurum tarifesi değildir. 900 EUR’nun çıkışı stop yerine 39,99’da varsayılırsa toplam kayıp 189 + 40 = 229 TRY olur. Planlı bütçe gerçekleşmiş kayıp tavanı değildir; stop fiyatı garanti edilmemiştir.

Maliyet sürümü değişince beklenen karar da değişirTemsili bütçe 220 TRY; fiyat farkı 0,20 TRY/EUR; iki emir. Tarife V1: 5 TRY/emir, V2: 20 TRY/emir. Gerçek hizmet fiyatı değil.VARSAYIMSAL HESAPLAMAV1 / 1.000 EUR200 + 10 = 210 TRYV2 / 1.000 EUR200 + 40 = 240 TRYV2 / 900 EUR180 + 40 = 220 TRY
Maliyet sürümü değişince beklenen karar da değişir. Temsili bütçe 220 TRY; fiyat farkı 0,20 TRY/EUR; iki emir. Tarife V1: 5 TRY/emir, V2: 20 TRY/emir. Gerçek hizmet fiyatı değil.

Fiyat/sinyal doğruluğu güncel maliyet ve risk kontrolünün yerini tutmaz; planlı tutarı garantili zarar tavanı saymayın.

Küçük ekranda şemayı yatay kaydırabilir veya büyütebilirsiniz. Değerler ve sonuç aşağıdaki metinde de yer alır.

V1 / 1.000 EUR
200 + 10 = 210 TRY – Atanmış 220 TRY planlı bütçesi içinde.
V2 / 1.000 EUR
200 + 40 = 240 TRY – Aynı sinyal ve miktar; bütçe kapısında ret gerekir.
V2 / 900 EUR
180 + 40 = 220 TRY – 100 EUR adımlı ayrı kuralda üst miktar. 39,99 çıkışta kayıp 229 TRY olur.

Kanıt kartına hem tarife sürümünü hem beklenen kararı yazın. V1 ile geçen miktar hesabını V2 koşullarında tekrar kontrol edilmeden “tamam” saymayın. Doğru yazılmış kod, güncelliğini yitirmiş girdiyle araştırma sorunuzdan farklı işlem yapabilir. Farkı bulmak kâr tahmini üretmez; hangi kontrolün yeniden açılacağını belirler.

Açıklayıcı breakout değerlendirmesi

Bu bölümün sayıları atanmıştır, gözlenmiş sonuç değildir. EUR/USD M30 adayı girişte önceki yirmi mumun yükseğini, çıkışta önceki on mumun düşüğünü kullansın; kesin emir zamanı ve dolum kuralları hâlâ gerekir. Geliştirme 2014–2020, değerlendirme 2021–2023. Optimizasyonun 23/11 mum ve 1,4 ATR stop seçtiğini varsayın. Atanmış IS kazanma oranı %58, kâr faktörü 1,72, yıllıklandırılmış getiri %22; OOS için aynı sırayla %54, 1,51 ve %18 olsun.

Bu toplamlar işlem dizisini veya düşüşü yeniden kurmaz. Sonraki demo senaryosu yarım pip ek gerçekleşme maliyeti, isteğe bağlı canlı senaryo %51 kazanma oranı atasın. Bu özetlerin hiçbiri sonraki aşamayı doğrulamaz veya pozisyon büyüklüğünü belirlemez. Kaydedilmiş sinyal, ödeme, maliyet ve belirsizliği karşılaştırın; oran benzerliğinden ölçek artırma izni çıkarmayın.

Uygulanabilir başlangıç planı

  1. Kuralları düz metinde kesinleştirin: parametre, stop formülü, bilgi zamanı ve özkaynağa göre büyüklük hesabı. Aynı belgeyi okuyan başka kişi aynı tanımlı kararları üretebilsin.
  2. Ürünün zaman damgalarını, eksik dönemlerini, tik kökenini ve sözleşme değişimini denetleyin. Örneklemin hangi koşulları kapsadığını ve kapsamadığını yazın.
  3. Kronolojik ayrımı, ölçüyü ve walk-forward tasarımını önceden tanımlayın. 70/30 ve beş–yedi döngü örnektir; parametrede %50 değişim veya WFE 0,5 altı tek başına evrensel tanı değildir.
  4. Demo iş akışını dondurulmuş kurallarla sınayın. Canlı inceleme olursa planlı maruziyeti sınırlandırıp maliyet/gerçekleşmeyi karşılaştırın. Üç–altı ay ve Monte Carlo büyütmeye hazır oluşu garanti etmez.
  5. Maliyet, düşüş ve belirsizliği getiriyle beraber okuyun. Her aşamada %12, IS %30/OOS %8’den otomatik daha güvenli değildir. Üstünlük hipotezini tutarsızlıkları açıklamak için inceleyin.

Anladığınızı kontrol edin

Alıştırma: yaklaşık 2 dakika.

Temsili listede 98 normal vaka geçiyor, gerekli iki ret testi başarısız. Toplam %98 ne demektir?

Yanıtı ve açıklamayı göster

Toplam doğrudur, fakat ayrı zorunlu kategorideki 0/2’nin yerini tutmaz.

Diğer sorular

Bu süreç tek backtestten nasıl farklı?
Tek tarihsel çalışma belirli uygulamayı varsayımlarla değerlendirir. Plan ayrıca bilgi zamanı, veri kökeni, ücret, ayrı gözlemler ve arıza yollarında neyin denetlendiğini kaydeder. Bu kontroller gelecek hayatta kalmayı onaylamaz. Temsili 98/100 toplam, zorunlu 0/2 ret kategorisini kapatmaz.
Fikirden canlı mikro lota ne kadar sürer?
Evrensel dokuz–on beş ay takvimi veya canlı işleme ulaşma zorunluluğu yoktur. Gerekli gözlemi ve arıza yollarını planlayın. Sinyalsiz ay giriş kontrolü, normal işleyiş yeniden başlatma testi değildir. Eksikleri kaydedip inceleme, değiştirme veya vazgeçme kararı verin; geçen süre büyütme gerekçesi değildir.
Aşamalarda hangi ölçüleri karşılaştırmalıyım?
Aynı tarih ve sinyal kümelerini, büyüklük, net ödeme, maliyet, maruziyet ve özkaynak düşüşüyle eşleştirin. Ret, kaçan ve dolmayan istekleri de koruyun. Daha uzun dönemin maksimum düşüşü yeni yürütme hatası olmadan büyüyebilir. Kazanma oranı/PF/ortalama R farkını araştırın; evrensel 10 puan, 0,3 veya 0,5R neden tanısı yoktur.
Bütün aşamaları geçmek canlı kazancı garanti eder mi?
Hayır. Kontroller kaydedilmiş varsayımlar altında sınırlı soruları yanıtlar. Fikri reddedebilir veya gözlemde kalabilirsiniz. Monte Carlo kendi örnekleme ve gerçekleşme varsayımıyla sonuçları inceler; kayıtlı işlemleri yeniden sıralamak her olası kaybı, yeni olayı veya likidite arızasını göstermez.
TRY kartında V2’de 1.000 EUR neden reddedilir?
Fiyat planı 200 TRY değişmedi, iki emir ücreti 10’dan 40’a çıktı. Planlı toplam 240, bütçe 220 TRY’dir. 100 EUR adımlı ayrı modelde 900 EUR tam 220 yapar. Bu tutar stop kaymasıyla aşılabilir; 39,99 atanmış çıkışta 229 TRY olur.

Kaynaklar ve doğrulama

  1. MetaQuotes — Strategy Testing

    Tarihsel Forward seçeneği ile test/optimizasyon ayrımı.

  2. MQL5 — OrderSend

    İstek kabulü, gerçekleşme ve çoklu işlem olayları ayrımı.

  3. scikit-learn — veri sızıntısı

    Test gözlemlerini model seçimine katmamak; yalnız eğitimde fit.

  4. scikit-learn — TimeSeriesSplit

    Kronolojik eğitim/test dizinleri ve örnek boşluğu; başarı kanıtı değil.

Hesaplamalar açıkça belirtilen varsayımlara dayanır. Güncel piyasa verilerinin veya sağlayıcının koşullarının yerini almaz.

Yazar hakkında

Jarosław Wasiński, Polonya’da çalışan bir editör ve piyasa analistidir. MyBank.pl’yi 2004 yılında kurdu; 2007 yılından beri döviz piyasasını takip ediyor.