Pratik uygulama

Aynı backtest neden farklı sonuç verir? İki koşul kaydını karşılaştırın

13 alanlı yerel JSON karşılaştırıcı, USD komisyon uzlaştırması ve aynı son bakiyeye rağmen farklı TRY düşüş yolları. Beyan ile kanıtı ayırın.

Sarı zeminde turuncu çizgiyle ayrılmış iki siyah kare dizisi; her dizide farklı konumdaki bir kare turuncu.
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…

  • İki testin 13 alanlı beyanını karşılaştırıp eksik kanıtı belirleyebilirsiniz.
  • USD komisyon farkını iki dolumla uzlaştırabilirsiniz.
  • Aynı TRY son bakiyesinin eşit işlem yolu veya eşit düşüş oranı göstermediğini açıklayabilirsiniz.

Kavramları makaleden ayrılmadan öğrenin

Backtesting — geçmiş veriyle strateji testi Komisyon Expert Advisor (EA) — uzman danışman

Görünen parametreleri aynı kalan bir robotun iki çalıştırması farklı sonuç verebilir. Stratejiyi değiştirmeden kod, veri, sembol özellikleri ve gerçekleşme modelinin de aynı olup olmadığını araştırın. Koşul kaydı, yani manifest bu beyanları bir yerde toplar. Aşağıdaki araç kayıtları karşılaştırır; bilgisayarınızdaki dosyaları veya test ortamını doğrulamaz. Eşit açıklamaları eşit ortam kanıtı sanmamak bu incelemenin başlangıcıdır.

Testi yeniden çalıştırmadan neyi saklamalısınız?

İki raporu, gerçekleşme listelerini, günlükleri ve parametre kümelerini ayrı çalıştırma olarak saklayın; daha kötü görünen sonucu da koruyun. Sermaye eğrisi ekran görüntüsü ilk dolum fiyatını, kısmi gerçekleşme sayısını veya gerçek başlangıcı göstermez. Koşuldan karara, karardan işleme ve toplam sonuca uzanan iz gerekir. “Aynı robot” yalnız aynı dosya adı demek olabilir. Derleme, program içeriği ve ilgili kütüphaneler değişmiş olabilir.

Tek test, optimizasyon taraması ve sonraki dönem değerlendirmesini birbirinden ayırın. İstenen başlangıçla gerçek başlangıcı karşılaştırın. MetaQuotes, hazırlık için önceki veri yetersizse başlangıcın ileri kayabileceğini açıklar. Tam ay ile kısalmış dönem aynı sınama değildir. CSV kapsam denetleyicisi dışa aktarımı inceler; burada daha geniş koşul kaydını kontrol ediyoruz. Takvimdeki boşlukla başlangıç hazırlığını aynı sorun saymayın.

İki kayıt aynı biçimde nasıl hazırlanır?

Aşağıdaki on üç üst düzey alan adını aynen kullanın. Anahtarları Türkçeleştirmeyin veya yeni üst alan eklemeyin. version sayısal 1 olmalıdır; manifest şemasını tanımlar, robotun sürümünü değil. Diğer alanlar metindir. Yalnız inputs, costs ve initialState düz nesne de kabul eder. Özellik sayıları için örnekteki ondalık noktalı metni kullanın; makine biçimine Türkçe virgül eklemeyin.

Hangi koşullar karşılaştırılır?
Literal alan adlarıKaydedilecek bilgi
version, platform, build, codeRevisionBiçim, platform, derleme ve kod/bağımlılık kimliği.
inputs, dataSnapshotGirdiler ve korunmuş veri sürümü.
symbolSpecification, executionModel, costsSözleşme özellikleri, benzetim kuralları ve maliyet varsayımları.
requestedStart, actualStart, endİstenen ve gerçek değerlendirme sınırları.
initialStateİlk bakiye, pozisyonlar ve ilgili başlangıç koşulları.

dataSnapshot için arşiv kimliği veya ayrı hesapladığınız dosya özeti kullanılabilir. “data-v1” yalnız beyandır; sayfa dosyayı açmaz. codeRevision değerine “hash” yazmak da onu doğrulamaz. İçeriği tanımlamak için ayrı hesaplanan özeti doğru arşivle ilişkilendirin. Bilmediğiniz sürümü form dolu görünsün diye uydurmayın. Parola, erişim kodu veya kişisel ayrıntı yerine teknik sürüm etiketleri yeterlidir.

Tarihe açık saat dilimi ekleyin; tutarlı UTC gösterimi tercih edilebilir. Sunucu saatinin sonuna Z koymak UTC’ye dönüşüm değildir. Karşılaştırıcı farklı tarih gösterimlerinin aynı an olup olmadığını hesaplamaz. Gerekirse dönüşümü ayrıca yapıp özgün kaydı da saklayın. Türkiye’de okunması, kurum sunucusunun Türkiye saati kullanacağı anlamına gelmez.

Karşılaştırıcı gerçekte neyi denetler?

İki temsili JSON kaydını düzenleyip farkları ve bilinmeyen alanları görün. İşlem tarayıcıda yapılır; sayfa bu girdileri göndermez, dosya içe aktarmaz veya kalıcı saklamaz. MT5 çalıştırmaz ve hesaba bağlanmaz. Eşit alanlar yalnız girilmiş eşit açıklamalardır. Eksik veri, açıklamada unutulmuş bağımlılık veya yanlış maliyet beyanı yine bulunabilir. Araç sonuçtaki farkın sebebini otomatik kanıtlamaz.

İki backtest kaydını karşılaştırın

İnceleme tarayıcınızda yerel çalışır. Araç veri göndermez veya kalıcı kaydetmez. Parola ve kişisel bilgi girmeyin.

Belgelenen şemayı ve version: 1 kullanın. Özellik sayılarını ondalık noktalı metin olarak yazın. Boş veya eksik alan bilinmeyendir. Her kayıt en çok 64 KiB olabilir.

JSON biçimi: alanlar ve sınırlar

version: 1. Diğer desteklenen alanlar: platform, build, codeRevision, inputs, dataSnapshot, symbolSpecification, executionModel, costs, requestedStart, actualStart, end, initialState.

Üst düzey alan değerleri metindir. inputs, costs ve initialState nesne de olabilir. Boş veya atlanan alan bilinmeyen sayılır. Yinelenen anahtarlar ve belgelenmemiş üst alanlar reddedilir. Sınırlar: 8 düzey ve 2.000 değer; iç içe sayılarda en çok 15 anlamlı basamak, güvenli sınırı aşan büyük tamsayılar hariç. Tarihlerde saat dilimi açık olsun. Karşılaştırma yazıldığı gibidir; farklı açıklama veya tarih biçimlerini uzlaştırmaz.

Kaynak USD örneği: aynı işlem, farklı komisyon

Doğrusal sözleşme, USD hesap, iki dolumla kapanmış tek işlem ve 10 USD fiyat sonucu varsayın. Fiyat, miktar ve dönem aynı; finansman ve diğer ücretler sıfırdır. A kaydında komisyon dolum başına 1 USD, B’de 2 USD olsun. A: 10 − 2 × 1 = 8 USD; B: 10 − 2 × 2 = 6 USD. Fark 2 USD’dir. Bunlar gerçek hizmet tarifesi değil, karşılaştırma varsayımlarıdır.

Araç değişen maliyet alanını işaretlemelidir. Bu, daha kötü sinyal, bozuk veri veya kayma kanıtı değildir. Maliyet açıklamasını rapordaki iki gerçek dolumla uzlaştırın; diğer varsayımları da inceleyin. Tek satırda “farklı” görmek bütün farkın açıklanmış olduğu anlamına gelmez.

Tek işlem, iki maliyet varsayımı

Tek işlem, iki maliyet varsayımıTemsili fiyat sonucu 10 USD. İki dolumun ücreti A’da 2, B’de 4 USD. Net sonuçlar 8 ve 6 USD. Gerçek kurum tarifesi değildir.Tek işlem, iki maliyet varsayımıTest AFiyat sonucu: +10 USDDolum başına 1 USD2 × 1 = 2 USD ücretNet: +8 USDTek beyan değişikliğiAlan: costsFiyat ve miktar eşitNet fark: 2 USDModel; gerçek tarife değilTest BFiyat sonucu: +10 USDDolum başına 2 USD2 × 2 = 4 USD ücretNet: +6 USDVarsayımlar: 1 işlem, 2 dolum, diğer ücretler = 0.
Bu modelde komisyon tek başına farkı açıklar. Araç, beyan edilen koşulların gerçek çalıştırmayla eşleştiğini doğrulamaz. Kaynak şekiller şematik kartlardır; boyları kazanç ölçeği değildir.

Kayıtlar aynı görünüyorsa ne yapılır?

İlk farklı olayı arayın: sinyal zamanı, sembol, fiyat tarafı, miktar ve giriş/çıkış gerekçesi. İşlem yapmama kararını da kaydedin. Son bakiye, ilk gösterge okumasındaki ayrışmayı gizleyebilir. Tek kontrollü değişiklikle yeniden çalıştırın ve önceki raporu koruyun. Aynı anda veri, parametre ve derlemeyi değiştirmek hangi etkenin sonuç doğurduğunu belirsiz bırakır.

MetaQuotes belgeleri test ajanının genel değişkenlerini terminaldekilerden ayırır; dosya işlemlerinin ajan klasörü ve paylaşılan klasör bağlamını da açıklar. Kod rastgele değer kullanıyorsa başlatma yöntemini saklayın. Her farkı önbelleğe yüklemeyin; ilk iş olarak tek veri kopyasını silmeyin. Derlemeyi değiştirmeniz gerekiyorsa önce eski çalıştırmanın kanıtını arşivleyin. Kayıtlar eşitse incelemeyi ayrıntılandırın; test dışı bir bağımlılık kayıtta hiç bulunmamış olabilir.

Yeni TRY karşı örneği: aynı bakiye, farklı yol

USD ücret modelinden bağımsız iki temsili kapanmış sonuç listesi düşünün. Başlangıç 1.000 TRY, para giriş/çıkışı ve açık pozisyon yoktur; her sayı bütün maliyetlerden sonraki net sonuçtur. A listesi +60, −40; B listesi −40, +60 TRY olsun. İki listenin toplamı +20, son bakiyesi 1.020 TRY’dir. Toplamı karşılaştırmak sıranın eşit olduğunu göstermez.

Yalnız bu kapanış noktalarını ve başlangıcı ölçersek A’da zirve 1.060’tan 1.020’ye düşüş 40 TRY, zirveye oranı yaklaşık %3,77’dir. B’de ilk düşüş 1.000’den 960’a, yani %4’tür. Aynı nominal kayıp farklı zirve paydasına bölünür. Mum içi özkaynak düşüşü bu iki satırdan belirlenemez. Bu listeler gerçek robot performansı değil, son bakiyeden özdeş geçmiş çıkarmanın neden yanlış olduğunu gösteren tam kâğıt örneğidir.

Aynı son bakiye, farklı kapanış yoluBaşlangıç 1.000 TRY, iki net kapanmış sonuç, para hareketi/açık pozisyon yok. Gerçek veri veya mum içi özkaynak serisi değil.VARSAYIMSAL HESAPLAMAA yolu1.000 → 1.060 → 1.020TRYB yolu1.000 → 960 → 1.020 TRYOrtak son+20 TRY; bakiye 1.020TRY
Aynı son bakiye, farklı kapanış yolu. Başlangıç 1.000 TRY, iki net kapanmış sonuç, para hareketi/açık pozisyon yok. Gerçek veri veya mum içi özkaynak serisi değil.

Önce ilk ayrışan olayı bulun; son bakiye ve eşit beyanlar tam gerçekleşme geçmişinin yerine geçmez.

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

A yolu
1.000 → 1.060 → 1.020 TRY – 40/1.060 ≈ %3,77 kapanış noktası düşüşü.
B yolu
1.000 → 960 → 1.020 TRY – 40/1.000 = %4 kapanış noktası düşüşü.
Ortak son
+20 TRY; bakiye 1.020 TRY – Aynı son, aynı sırayı ve aynı yüzde paydasını kanıtlamaz.

Koşul manifesti işlem listelerini kendiliğinden içermediği için bu iki listeden hangisinin üretildiğini saptayamaz. Rapor ve olay günlüğüne geri dönün. Sürüm ve kanıt düzeni daha geniş incelemeyi; MT4/MT5 test rehberi ayar bağlamını tamamlar.

Karşılaştırmadan sonraki üç adım

  1. A ve B raporlarını ayrı saklayın; on üç alanı gerçek kod, veri ve ayar arşivine bağlayın. Belgesiz koşula bilinmeyen deyin, inandırıcı görünen sürüm uydurmayın.
  2. Tek fark seçip kısa kontrollü örnekte sonucunu inceleyin. Komisyon için dolum ve ücret sayısını; dönem değişimi için ilk kullanılabilir sinyali uzlaştırın. Açıklamanızı desteklemeyen denemeyi de koruyun.
  3. Beyanlar eşitse ilk ayrışan günlük olayını bulun. Kararı yeniden üretmek için eksik bilgiyi belirleyip arşivi genişletin. Sebebi açıklamadan daha yüksek getirili sonucu seçmeyin. Araç tarihsel sonucu onaylamaz veya gelecekteki getiriyi tahmin etmez.

Anladığınızı kontrol edin

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

Fiyat sonucu 10 USD. A’da iki dolumun her biri 1 USD, B’de her biri 2 USD ücretli. Net sonuç farkı nedir?

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

A: 10 − 2 = 8 USD; B: 10 − 4 = 6 USD. Fark 2 USD’dir.

Diğer sorular

Eşleşen manifest tekrar üretilebilirliği onaylar mı?
Hayır. Girilen açıklamalar karşılaştırılır, bütün çalışan ortam değil. Aynı dataSnapshot metni dosyaların aynı olduğunu göstermez. Rapor, kod, ayar ve veri kopyalarını saklayın; gerektiğinde dosya özetini ayrı hesaplayıp arşivle bağlayın. Unutulmuş bağımlılık veya yanlış başlangıç hâlâ mümkündür.
Önce önbelleği temizlemeli veya robotu yeniden derlemeli miyim?
Önce iki çalıştırmanın kanıtını koruyun. Tek veri kopyasını silmek veya derlemeyi arşivlemeden değiştirmek sebebi araştırmayı güçleştirir. İlk farklı dolumu ve kayıtları karşılaştırın; sonra tek belgeli değişiklikle deneyin. Yeniden derlerseniz kod ve ortam sürümünü kaydedip eski dosyayı da saklayın.
actualStart neden requestedStart’tan farklı olabilir?
Tester göstergeler ve başlangıç için daha eski veriye ihtiyaç duyar. MetaQuotes, hazırlık geçmişi yetmezse gerçek başlangıcın ileri kayabileceğini belirtir. Aynı tarihi iki alana kopyalamak yerine rapor, günlük, veri aralığı ve modelle doğrulayın. Benzer eğriler tarih eşitliği kanıtı değildir.
Daha kârlı testi seçmeli miyim?
Koşulları uzlaştırmadan seçmeyin. Kaynak örneğinde 8 ve 6 USD farkı yalnız komisyon varsayımıdır. Daha iyi sinyal kanıtı değildir. Veri, dönem ve gerçekleşmeler de değişebilir; uygun koşulları belirledikten sonra maliyet, düşüş ve geliştirmeden ayrı değerlendirmeye geçin.
TRY modelinde neden %3,77 ile %4 farklı?
İki listede nominal düşüş 40 TRY’dir. A’nın önceki zirvesi 1.060, B’nin 1.000 TRY olduğundan oran paydaları farklıdır. İkisi de 1.020 TRY’de biter. Bu yalnız verilen kapanış noktalarının ölçümüdür; mum içi özkaynak kaybı bilinmez.

Kaynaklar ve doğrulama

  1. MetaQuotes — Strategy Testing

    Tek test, optimizasyon ve ileri değerlendirme ayarları.

  2. MetaQuotes — tarihsel veriyi hazırlama

    Hazırlık geçmişi ve gerçek başlangıcın kayması.

  3. MetaQuotes — Testing Features

    Ajan ortamı, genel değişkenler, dosyalar ve aktarılan koşullar.

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.