Pratik uygulama

Strateji backtesti: fiyat, maliyet ve bilgi zamanını uzlaştırın

Ask/Bid ile orta fiyatı, PLN maliyet tablosunu ve etiket gecikmesini doğru sınayın. TRY emir/dolum karşı örneği ve aşırı uyuma karşı kontrol sırası.

Lacivert zeminde PRICES yazısı; turuncu taban üzerinde koyu silindir ve iki açık mavi dik levha.
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…

  • Ask/Bid sonucunu orta fiyat modeliyle uzlaştırıp çift spreadi bulabilirsiniz.
  • Emir başı ücreti dolum başı ücret sanmanın TRY sonucunu hesaplayabilirsiniz.
  • Değişken etiket gecikmesinde yalnız satır boşluğu bırakmanın neden yetmediğini gösterebilirsiniz.

Kavramları makaleden ayrılmadan öğrenin

Bid ve Ask — satış ve alış fiyatları Spread — alış ve satış fiyatı farkı Backtesting — geçmiş veriyle strateji testi Merkez bankaları Komisyon Zirveden düşüş — drawdown

Yüksek geçmiş kazanma oranı tek başına üstünlük kanıtı değildir. Geriye dönük test, tanımlı kuralları belirli veri ve gerçekleşme varsayımları altında sınar. Sonucu değerlendirirken önce “hangi bilgiyi ne zaman biliyordum, hangi fiyatla ve hangi miktarla işlem yaptım?” sorularını cevaplayın. Düzgün hesaplanmış tarihsel kazanç bile gelecekte gelir garantisi oluşturmaz.

Geçmişte test yapmak neyi gösterir?

Pozitif tarihsel beklenen değer yalnızca sınanan örneklem hakkında bulgudur. Şans, çok sayıda deneme arasından seçim veya aşırı uyum aynı görüntüyü üretebilir. Verinin bir bölümünü gerçekten ayrı değerlendirmeye ayırmak, maliyet duyarlılığı ve farklı koşullarda kararlılık bu yüzden gereklidir. Amaç güzel bir eğri seçmekten önce çelişki bulmaktır: rapordaki tek bir işlemi kurallarla yeniden oluşturamıyorsanız toplam getiriye geçmeyin.

Kurallar belirsizse test edilen şey değişir

Sembolü, zaman aralığını, sinyal girdilerini, emrin gönderilme zamanını, çıkışları ve büyüklük hesabını yazın. Temsili günlük kural tamamlanan mumun kapanışını önceki mumun yükseğiyle karşılaştırsın. Emir ancak kapanış bilgisi hazır olduktan sonra gönderilebilir. Son kapanışı kullanıp aynı mumun daha önceki açılışından giriş yazmak geleceği kullanır. Zaten pozisyon varken, veri eksikken veya teminat yetmezken ne yapılacağı ayrıca tanımlanmalıdır. Bir gösterge ayarı bu kararların yerine geçmez; fiyat koşulu da gerçekleşme garantisi değildir.

İşlem üstünlüğünü araştırma konusunu bu ayrımla okuyun. Tarihsel test bir fikrin tutarsızlığını gösterebilir; pozitif sonuçta ise maliyet, seçilim ve belirsizlik hâlâ incelenir. Test dosyasına veri sürümünü, kural sürümünü ve sonuçların nasıl üretildiğini ekleyin. Aynı isimde iki dosyanın gerçekten aynı içeriği taşıdığını varsaymayın.

Veri kaynağı ve örneklem büyüklüğü

Döviz vadeli işlemleri, OTC spot ve CFD aynı sözleşme değildir. Merkezi vadeli piyasa verisi perakende spot fikrinin otomatik yerine geçmez. Sağlayıcıyı, ürünü, kotasyon tarafını, saat dilimini ve eksikleri kaydedin. OHLC, aynı mumda hem stop hem hedef görüldüğünde hangisinin önce gerçekleştiğini açıklamaz. Makro seride sonradan düzeltilmiş değeri değil karar anında yayımlanan sürümü kullanın. Sepet seçiminde de o gün erişilebilir enstrüman listesini koruyun.

“100 işlem anlamlılık sağlar” diye evrensel bir eşik yoktur. Dağılım, bağımlılık, etki büyüklüğü, kaç farklı fikir denendiği ve rejim kapsamı birlikte önemlidir. Gözlem sayısını belirsizlikle ve mümkünse etkin örneklem büyüklüğüyle birlikte raporlayın. MT5 belgelerine göre gerçek tik modunda bile tik geçmişi bulunmayan bir dakikanın M1 barından tik üretilebilir. Mod adı tek başına bütünüyle gözlenmiş bir fiyat yolu kanıtı değildir; veri ve test günlüğünü kontrol edin.

Spreadi düşmeden fiyatları uzlaştırın

Ask ile giriş ve Bid ile çıkışı, orta fiyat hesabıyla aynı modelde karşılaştırın.

Spreadi düşmeden fiyatları uzlaştırınKomisyon, finansman ve kayma içermeyen temsili model bir miktar birimini alıp satar. Giriş Bid 100, Ask 102, orta fiyat 101; çıkış Bid 103, Ask 105, orta fiyat 104. Ask 102 alış ve Bid 103 satış sonucu +1 fiyat birimidir. Orta fiyat artışı +3 eksi iki yarım spread, 1 ve 1, yine +1 eder. İki tam spreadi düşerek −1 bulmak hesap hatasıdır. Çubuklar ortak sıfır ve doğrusal ölçek kullanır; −1 alternatif bir gerçekleşme değildir.İKİ YÖNTEM, AYNI SONUÇTemsili alış • bir miktar birimiBidAskOrta fiyatGiriş100102101Çıkış103105104Orta fiyat değişimi+3Ask → Bid+1Yanlış: −2 − 2−1−2024Fiyat birimi • +3 − 1 − 1 = +1

İki temsili eşzamanlı Bid/Ask kotasyonu: giriş 100/102, çıkış 103/105. Bir keyfî miktar birimi tam bu fiyatlarda gerçekleşmiş kabul edilir; komisyon, finansman, boşluk ve kayma yoktur. Bunlar güncel döviz fiyatları değildir.

Sonuç 103 − 102 = +1. Orta fiyatlar 101 ve 104 olduğundan artış +3; girişte orta fiyatın 1 üstüne, çıkışta 1 altına gidilir: 3 − 1 − 1 = +1. İki tam spreadi, 2 ve 2’yi, orta fiyat değişiminden düşüp −1 bulmak bu gerçekleşmelerle uyuşmaz. Zaten Ask/Bid kullanan +1’den yeniden 2 düşmek de aynı bileşeni iki kez sayar.

Kaynak SVG’nin ortak sıfırı ve fiyat birimi ölçeği korunur. Ask → Bid sonucu spreadin orta fiyata göre etkisini zaten içerir.

Spread, komisyon ve kayma: doğru birimle hesaplayın

Ask giriş ve Bid çıkış fiyat sonucuna spread zaten girmiştir. Bunun üzerine ayrı komisyonu, finansmanı ve açıkça belirtilmiş gerçekleşme farklarını ekleyin. Varsayımsal 0,8 pip spread, 200 pip hedefin %0,4’ü; 5 pip hedefin %16’sıdır. Bunlar hedef mesafesi paylarıdır, stratejinin üstünlüğü veya gerçek kazancı değildir. Ortalama maliyetin iki katını denemek seçilmiş bir stres süzgeci olabilir; evrensel güvenlik payı olamaz.

Ayrı kaynak PLN modeli: 50 kapanmış işlemde 30 kez 40 PLN kazanç ve 20 kez 50 PLN kayıp, brüt toplamları 1.200 ve 1.000 PLN, neti 200 PLN yapar. Aynı tam maliyet kaybedenler dâhil her kapanmış işleme uygulanır.

Temsili 50 kapanmış işlem; gözlenmiş strateji sonucu değil
İşlem başı maliyetNet toplamNet ortalamaNet kâr faktörü
0 PLN200 PLN4 PLN1,20
2 PLN100 PLN2 PLNYaklaşık 1,10
4 PLN0 PLN0 PLN1,00

2 PLN maliyette kazanç 38, kayıp büyüklüğü 52 PLN olur: kâr faktörü 1.140/1.040 ≈ 1,10. 4 PLN maliyette 30 × 36 ile 20 × 54 eşit, yani 1.080 PLN’dir. Sıfıra inen neti gizlemek için yalnız kazananların ücretini düşmeyin.

Yeni TRY örneği: ücret emir başına mı, dolum başına mı?

Kaynak PLN tablosundan bağımsız kâğıt modelinde EUR/TRY alış emri 1.000 EUR olsun: 400 ve 600 EUR, Ask 40,02’den gerçekleşmiş kabul edilsin. Kapanış emri 500 ve 500 EUR olarak Bid 40,05’ten gerçekleşsin. Bütün miktar kapanır; brüt fiyat sonucu 30 TRY’dir. Hayalî tarife emir başına sabit 5 TRY alsın: iki emir 10 TRY ücret, net 20 TRY. Dört dolumu dört emir sanıp 20 TRY düşmek ise neti yanlışlıkla 10 TRY gösterir. Gerçek hizmet tarifesi veya fiyat garantisi ileri sürülmüyor; başka maliyet bu modele eklenmedi.

TRY modelinde ücretin birimini koruyunAtanmış dört dolum iki emre aittir; hayalî tarife emir başına 5 TRY. Mevcut kurum tarifesi veya gerçekleşme vaadi değildir.VARSAYIMSAL HESAPLAMAAlış emri A400 + 600 = 1.000 EURKapanış emri B500 + 500 = 1.000 EURFiyat farkı ve net30 − 10 = 20 TRY
TRY modelinde ücretin birimini koruyun. Atanmış dört dolum iki emre aittir; hayalî tarife emir başına 5 TRY. Mevcut kurum tarifesi veya gerçekleşme vaadi değildir.

Aynı fiyatlarla net değişiyorsa önce ücretin emir, dolum veya miktar birimine bağlı olup olmadığını kontrol edin.

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

Alış emri A
400 + 600 = 1.000 EUR – İki dolum, tek emir: 5 TRY ücret.
Kapanış emri B
500 + 500 = 1.000 EUR – İki dolum, tek emir: 5 TRY ücret.
Fiyat farkı ve net
30 − 10 = 20 TRY – Dört doluma dört ücret yazmak neti yanlışlıkla 10 TRY yapar.

Geçmişe aşırı uyum ve bilgi sızıntısı

En iyi parametreyi, enstrümanı veya veri bölmesini çok sayıda denemeden seçmek, tarihin özel ayrıntılarına uyabilir. Optimizatörün dışındaki elenen fikirleri de kaydedin. Yalnız iki parametre değiştirmek başka yerlerden gelen seçilimi yok etmez. Kuralları ve maliyetleri testten önce sabitleyin. 70/30 kronolojik bölme olası bir tasarımdır; tek doğru oran değildir. Testin zayıflığı rejim farkından veya örneklemeden de gelebilir. Testi gördükten sonra fikri değiştirirseniz o bölüm geliştirmeye katılmıştır.

Kaynak zamanlama modelinde t kararının sonucu t + 3’te hazırdır. İlk test t 10’da başlar, uyarlama bundan önce bitmelidir. Aday t 1–t 9 arasından yalnız t 1–t 6 kullanılabilir: son uygun sonuç t 9’da gelir; t 7–t 9 sonuçları t 10–t 12’dedir. Test göstergesini hesaplamak için daha eski fiyatlar yine gerekebilir. Bu dışlama yalnız belirtilen etiket çakışmasını giderir, bütün sızıntıları değil.

Yeni karşı örnek: iki satır boşluk her sonucu bekletmez

İkinci, bağımsız modelde karar kimlikleri 1, 2, 3, 4, 5, 6; sonuçların hazır olma zamanları sırayla 2, 8, 4, 5, 9, 7 olsun. İlk test zamanı 8, uyarlama kesinlikle 8’den önce bitsin. Uygun kararlar 1, 3, 4, 6’dır. Sadece sondaki iki karar satırını çıkarıp 1–4’ü tutmak, sonucu 8’de gelen 2’yi yanlışlıkla içerir; sonucu 7’de hazır 6’yı da gereksiz çıkarır. Bu, satır sayan basit kuralın kâğıt karşılaştırmasıdır; scikit-learn çalıştırıldığı iddiası değildir.

TimeSeriesSplit belgesindeki gap örnek sayısıdır; değişken sonuç gecikmesini kendiliğinden anlamaz. Etiketin hazır olma zamanını ayrıca sınayın. Öğrenilen normalleştirme veya seçim de yalnız eğitim verisine uydurulur, teste aynı dönüşüm uygulanır. Tüm serinin ortalamasıyla eğitim girdisini düzeltmek testten bilgi taşıyabilir. Eşit zaman aralıklı gözlemler şartını da göz ardı etmeyin: belge bunu katların eşit süreyle karşılaştırılması için belirtir.

Varsayımsal istatistikler nasıl okunmalı?

Kazanma olasılığı 0,54, ortalama kazanç 2,3R, kayıp 1R varsayılırsa brüt beklenen değer 0,54 × 2,3 − 0,46 = 0,782R; kâr faktörü 1,242/0,46 ≈ 2,70 olur. Bu değerler işlem sırasını vermediğinden sermaye düşüşünü veya toplam getiriyi belirlemez. Ayrı olarak tam beş yılda atanmış %87 getiri, 1,87’nin beşinci kökünden yaklaşık yıllık %13,34 bileşiğe karşılık gelir. Bu getiri işlem istatistiklerinden türetilmiş değildir. Zaman ve sermaye akışları belirtilmeden iki raporu aynı getiri tablosuna koymayın.

Uygulanabilir kontrol sırası

Toplam sonucu kullanmadan bir kazancı, bir kaybı, eksik bir sinyali ve mum içi sırası belirsiz bir vakayı yeniden üretin. Demo çalışması gerçek zamanda işleyişi sınar; pozitif rapordan sonra gerçek hesaba geçme zorunluluğu doğurmaz.

  1. Kuralları tek sürümlü dosyaya yazın. Bilginin hazır olma zamanı, büyüklük, emir ve eksik girdi davranışı açık olsun; bağımsız yeniden hesapla farkları araştırın.
  2. Veri dönemi ile kronolojik geliştirme/test ayrımını ayardan önce kaydedin. İki veya beş yıl evrensel şart değildir; kullanılan koşulları açıklayın.
  3. Spread, ücretin hangi birime uygulandığı, finansman ve kayma varsayımını uzlaştırın. Maliyet brüt kârın %20’sini aştı diye evrensel ret kuralı yoktur.
  4. İşlem sayısını, bağımlılığı, dağılımı, belirsizliği ve bütün denemeleri raporlayın. Yeni enstrüman veya dönem hipotezi değiştirebilir; 100 işlem tek başına yeterlilik belgesi değildir.
  5. Demo farklarını sabit modelle tek tek inceleyin. Üç ay gözlem gelecekte kârı veya hazır oluşu garanti etmez. Ardından ilerleyen pencereyle değerlendirmeyi aynı veri ve bilgi disipliniyle kurun.

Gerçek kaynak verisini inceleyin

Mevcut 2016–2025 ECB çalışması, korunmuş veri kaydında 2.560 EUR/USD yayını ve yayın olmayan 49 hafta içi günü TARGET takvimiyle karşılaştırır. Bu bir referans kur yayını incelemesidir, yürütülebilir tik verisi değildir. Kaynaklar ilk çalışmada 7 Ekim 2026’da indirilmiştir; burada yeni veri toplandığı veya bu makalede tekrar hesaplandığı iddia edilmiyor.

Yayımlanmayan kur neden otomatik veri boşluğu değildir? Veri, takvim ve kod →

Anladığınızı kontrol edin

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

Alış tam Ask 102, çıkış tam Bid 103; başka maliyet yok. Bir miktar biriminin sonucu nedir?

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

103 − 102 = 1. Ask/Bid taraflarının içerdiği spreadi bir daha düşmeyin.

Diğer sorular

Aşırı uyum nedir?
Çok sayıda seçimle gözlenen tarihin özelliklerine uyma, yeni koşullara genelleyememe sorunudur. Yüksek kazanma oranı tek başına teşhis veya başarı kanıtı değildir. Bütün denemeleri, maliyetleri ve gerçekten ayrı değerlendirmeyi kaydedin.
Hangi backtest aracı en iyisidir?
Ürün, kurallar ve gereken gerçekleşme modeliyle uyumlu olanı seçin. MT5 EA, çoklu sembol ve tik seçenekleri sunar; bu, verinin kusursuzluğu anlamına gelmez. Gerçek tik modunda eksik dakikada üretilen tik olabileceğini kontrol edin. Sabit fiyat veya araç sıralaması önermiyoruz.
Kaç işlem ve kaç yıl yeter?
Evrensel sayı yoktur. Bağımlılık, dağılım, rejimler, etki büyüklüğü ve denenmiş fikirler önemlidir. Yeni enstrüman eklemek yalnız gözlem artırmaz, hipotezi de değiştirebilir. Uyarlamada kullanılan her sonuç etiketi, uyarlamanın tamamlanma anından önce hazır olmalıdır; karar sonrasındaki sonucu aynı kararın girdisi yapmayın.
Makul getiri aralığı var mı?
Evrensel bant yoktur. Net hesap, açık pozisyon özkaynağı, risk, maliyet ve seçilen bütün denemeler birlikte incelenir. Kaynak PLN örneğinde işlem başı 0’dan 4 PLN’ye maliyet değişimi net 200 PLN’yi sıfıra indirir; bu aritmetik bir stratejiyi doğrulamaz.
İki satır gap değişken sonuç süresini çözer mi?
Yeni modelde ilk test 8’dedir. Karar 2’nin sonucu 8’de geldiği için kullanılamaz; karar 6’nın sonucu 7’de hazırdır. Sadece son iki satırı çıkarmak bu ikisini yanlış sınıflar. Sonuçların hazır olma zamanını ayrıca kontrol edin.
TRY örneğinde net neden 20, 10 değil?
İki emir dört doluma bölünmüştür. Atanan ücret emir başına 5 TRY olduğu için toplam 10, brüt fiyat kazancı 30 ve net 20 TRY’dir. Her doluma 5 yazmak sözleşmedeki ücret birimini değiştirmiş olur; gerçek tarifeyi ayrıca doğrulayın.

Kaynaklar ve doğrulama

  1. MetaQuotes — gerçek ve üretilmiş tikler

    Gerçek tik/M1 eksikleri, değişken spread, Bid/Ask ve grafik fiyatı.

  2. scikit-learn — veri sızıntısı ve ön işleme

    Yalnız eğitim verisine fit; testin model seçimine sızması.

  3. scikit-learn — TimeSeriesSplit

    Kronolojik katlar, örnek sayısı cinsinden gap ve eşit aralıklı gözlem şartı.

  4. MetaQuotes — Strategy Tester

    Test ve ileri değerlendirme seçenekleri; önceki gerçek okumanın ilgili kapsamı.

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.