Pratik uygulama

Backtest verisindeki boşluklar: CSV ile ne doğrulanır?

Zaman ızgarası, tekrar, OHLC çelişkisi ve eksik mumları yerel CSV aracıyla ayırın. TRY örneği yanlış başlangıcın sahte boşluk ürettiğini gösterir.

Lavanta zeminde iki koyu yatay ray üzerinde mor küpler; ortada boş konum ve boşluğun altında mercan dikdörtgen blok. Belirgin gölgeler, görünür yazı yok.
Yapay zekâ ile üretilmiş editoryal illüstrasyon; gerçek veri dosyası, fiyat serisi veya kesinti 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…

  • Açık saat farkları ve iki dahil sınırla CSV zaman ızgarası kurabilirsiniz.
  • Boş konum, geçersiz satır, tekrar ve fiyat çelişkisini ayrı inceleyebilirsiniz.
  • Izgara fazı ile fiyat/tick doğruluğunun neden ayrı kontroller olduğunu gösterebilirsiniz.

Kavramları makaleden ayrılmadan öğrenin

Backtesting — geçmiş veriyle strateji testi Bid ve Ask — satış ve alış fiyatları Expert Advisor (EA) — uzman danışman

Eksik mum, sağlayıcının hata yaptığını veya piyasanın kapalı olduğunu tek başına söylemez. Önce dışa aktarılan veriyi tanımlı zaman aralığı ve sağlayıcının mum oluşturma kuralıyla karşılaştırın. Yerel CSV denetleyicisi sabit zaman ızgarasında boş konum, tekrar, fiyat çelişkisi ve geçersiz satır bulur; kotasyon uydurmaz. Rapor, geçmiş strateji testi öncesi hangi bulguların açıklanması gerektiğini gösterir.

Eksik mumları saymadan önce ne tanımlanmalı?

Enstrüman, sağlayıcı, fiyat temeli ve zaman dilimini kaydedin. Bid, Ask ve orta fiyat mumları farklı serilerdir; EUR/USD etiketi tek başına yetmez. Eşdeğer mum açılış zamanlarını karşılaştırın. Kapanış zamanı etiketli dosya, açılış etiketli dosyanın yanında fiyatlar geçerli olsa da kaymış görünür. Bu farkı otomatik eksik veri saymayın.

Desteklenen başlık timestamp,open,high,low,close; her sonraki satır virgülle ayrılmış tam beş alan içerir. Fiyatlar ondalık noktayla ve binlik ayırıcı olmadan yazılır. Tırnaklı alan, ek sütun ve noktalı virgüllü dosya önce belgelenmiş dönüşüm ister. Araç anlam tahmin etmek yerine desteklenmeyen biçimi reddeder. Türkçe açıklamadaki 40,10 fiyatı makine alanında 40.10 olur.

Tam zaman kullanın: 2026-10-12T08:00:00Z ve 2026-10-12T10:00:00+02:00 aynı andır. Saniye zorunlu; en çok üç kesirli saniye hanesi desteklenir. Farksız saat sunucunun zaman dilimini tanımlamaz. Yerel saate yalnız Z eklemek UTC’ye dönüştürmez, anlamını değiştirir. OANDA’nın günlük hizalama ve zaman dilimi parametreleri, takvim hizalamasıyla sabit UTC ızgarasının neden ayrı varsayım olduğunu gösterir; bütün sağlayıcılar için aynı saat kuralı değildir.

İlk ve son beklenen mum açılışını ayrı bildirin. İki sınır dahil: bir dakikayla 08:00–08:11 arası on iki beklenen zaman vardır. Izgara ilk sınıra bağlanır; son sınır tam ızgaraya oturmalıdır. Model eşit geçen zaman aralıkları içindir. Takvim ayı veya yaz saati nedeniyle süresi değişen yerel gün, her zaman sabit 1.440 dakika diye temsil edilemez.

Araç nasıl çalıştırılır, örnek nasıl tekrarlanır?

Hazır CSV’yi yükleyin, 1–1.440 arasında tam sayı dakika aralığı ve iki sınırı girin. Dosya tarayıcıda yerel incelenir; içerik gönderilmez, kalıcı kaydedilmez. Sınırlar 2 MiB dosya, 100.000 satır ve 100.000 beklenen ızgara konumudur. Daha uzun dönemi belgeli, çakışmayan aralıklara bölün; sınırları rastgele değiştirip sonuçları aynı kontrol gibi toplamayın.

Her fiyat alanı en çok 15 anlamlı hane ve 48 karakter kabul eder. Daha hassas kayıt geçersizdir; yuvarlama çelişkiyi gizlemesin. Bu araç veri sözleşmesidir, her CSV veya broker dışa aktarımı desteklenmez. Kaynak dosyayı koruyup dönüştürülmüş kopyayı ayrı adlandırın.

CSV zaman ızgarasının kapsamını kontrol edin

Dosya yerel olarak incelenir; araç veriyi göndermez veya kalıcı saklamaz. Biçim: timestamp,open,high,low,close. En çok 2 MiB. Zaman damgasında Z veya açık saat farkı gerekir.

Eksiksiz örneği indir · Sorun içeren örneği indir

Örnek dosyaları varsayımsaldır; piyasa veya kurum arşivi değildir. CSV başlığını ve ondalık noktaları koruyun. Saat farkı yazmak, yanlış sunucu saatini kendiliğinden düzeltmez.

Kurgu dosya: on iki satır eksiksizlik kanıtı değil

Alıştırma dosyaları sentetiktir; broker fiyatı veya hesap verisi değildir. M1, 08:00–08:11 UTC seçin. Temiz dosyada on iki ayrı zaman ve sıfır boş konum vardır. Tanı dosyası da on iki satır içerir ama yalnız sekiz geçerli ızgara konumunu kapsar. Dosyadaki fiyatın makul görünmesi bu sayımı değiştirmez.

Beklenen bulgular birbirinden ayrı sayılır
BulguBu örnekte anlamı
4 boş konum08:03, 08:04, 08:10, 08:11 için geçerli mum yok.
2 tekrar satırı08:02 ve 08:06 zamanı birer kez daha gelir.
1 fiyat çelişkisi grubu08:06’daki iki geçerli mumun OHLC’si farklı.
1 geçersiz satır08:04 high, open değerinden düşük.
1 ızgara dışı, 1 zaman geri dönüşü08:07:30 M1’e oturmaz; 08:08 satırı 08:09’dan sonra gelir.

En uzun boşlukların her biri iki beklenen açılıştan oluşur. Eşitlikte ilk olan, 08:03–08:04 döner. Bu ölçülmüş hizmet kesintisi süresi değildir. O aralığı açıklamak için dosya dışı seans ve indirme bilgisi gerekir. Çelişkili konum sayımda dolu olsa da fiyatın seçilmesi hâlâ çözümsüzdür.

Kurgu M1 kapsamı: on iki konumdan sekizi

Kurgu M1 kapsamı: on iki konumdan sekiziKurgu M1 ızgarasında 08:03, 08:04, 08:10 ve 08:11 konumları boş. 08:06’da farklı fiyatlı iki geçerli mum var. On iki satır yalnız sekiz konumu kapsar; kapsanan bir konumda çelişki hâlâ bulunabilir. İşaretli açıklama ve metin sonucu renkleri destekler.Kurgu M1 kapsamı: on iki konumdan sekizi✓08:00✓08:01✓08:02×08:03×08:04✓08:05?08:06✓08:07✓08:08✓08:09×08:10×08:11✓ Geçerli zaman× Geçerli kayıt yok? Fiyat çelişkisi
Sekiz zaman ızgarayı doldurur ama birinde fiyat çelişkisi vardır. On iki satır dört boş konumu gizler.

Hangi bulgu otomatik onarım değil inceleme ister?

Kapsam satırları değil, ayrı geçerli zamanları sayar. Aynı tekrar kapsam eklemez. Aynı zamanlı farklı ama OHLC açısından geçerli kayıtlar bir konumu doldurur ve ayrıca çelişki oluşturur. Sıfır boşluk kullanılabilir veri kanıtı değildir. İki sürümü koruyup kaynağa dönün; araç yüksek, yeni veya daha uygun görünen fiyatı sizin yerinize seçmez.

Geçersiz satır kapsam eklemez. Fiyat sonlu olmalı; high, open/close/low değerlerinin hiçbirinden küçük olamaz, low da diğerlerinden büyük olamaz. Aralık dışı ve ızgara dışı kayıt sonucu iyileştirmez. Bütün bulgular sayılır ama ekranı taşırmamak için her gruptan yalnız yirmi örnek gösterilir. Örnek listesinin kısalığı toplam bulgunun azlığı değildir.

Hafta sonu boşluğunu gerçek ürünün seans takvimiyle karşılaştırın. Bildirilen seans içindekini indirme günlüğü ve asıl kaynakla araştırın. OANDA mum belgesindeki complete bayrağı, mum döneminin bitişinin gelecekte olmamasını tanımlar; bütün dışa aktarımın eksiksizlik belgesi değildir. Bid/Ask/orta fiyat temeli de aynı belgenin ayrı alanlarıdır.

Çizgi sürekli olsun diye boş aralığı son fiyatla doldurmayın. Bu sentetik mum üretir; gösterge ve stop modelini değiştirebilir. Satırları sıralamak çelişkili OHLC’yi çözmez. Kaynak dosyayı ve değişiklik gerekçesi/kanıtını ayrı düzeltme kaydında tutun. Sağlayıcının doğrulanmış yeniden aktarımı ile sizin atadığınız fiyat aynı köken değildir.

TRY örneği: doğru fiyat, yanlış ızgara başlangıcı

Ayrı, kurgu EUR/TRY dosyasında üç mum açılışı 08:00:30Z, 08:01:30Z, 08:02:30Z olsun; tarih 12 Ekim 2026. Sırasıyla OHLC değerleri (40,10;40,11;40,09;40,10), (40,11;40,12;40,10;40,11), (40,12;40,13;40,11;40,12) olsun. Bu örneğin üretim kuralı otuzuncu saniyeye bağlı 60 saniyelik dönemlerdir; OANDA M1 kuralı veya canlı kur iddiası değildir.

08:00:30–08:02:30, bir dakika bildirimi üç beklenen ve üç dolu konum verir. Aynı dosyaya 08:00:00–08:02:00 bildirirseniz üç beklenen konumun hepsi boş görünür: ilk iki kayıt ızgara dışı, üçüncüsü aralık dışıdır. Yanlış tanımı “düzeltmek” için saati sessizce yuvarlamak, özgün zaman kanıtını siler. Üretim kuralını doğrulayıp beyanı düzeltmek ile fiyat uydurmak farklı işlemdir.

Üç geçerli OHLC, yanlış başlangıçla kapsamı kurtarmaz; doğru başlangıç da fiyatların gerçekliğini kanıtlamaz. İlk ve son kurgu kapanışın 1.000 EUR ölçeğindeki farkı 20 TRY’dir, ancak bu referans hesabı gerçekleşmiş kâr değildir. Örnek, fiyatı ve takvimi ayrı denetlemenin nedenini gösterir.

Aynı üç mum, farklı başlangıç beyanıKurgu TRY mumları otuzuncu saniyede başlar: 08:00:30, 08:01:30, 08:02:30 UTC; aralık 60 saniye.VARSAYIMSAL HESAPLAMAÜretim kuralına uygun beyan08:00:30–08:02:30: 3/3doluYanlış sıfır saniye başlangıcı08:00:00–08:02:00: 0/3doluOHLC geçerliliğiHer iki incelemede aynıüç mum
Aynı üç mum, farklı başlangıç beyanı. Kurgu TRY mumları otuzuncu saniyede başlar: 08:00:30, 08:01:30, 08:02:30 UTC; aralık 60 saniye.

Önce kaynak zaman kuralını belirleyin; takvim düzeltmesini yeni fiyat üretmekle karıştırmayın.

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

Üretim kuralına uygun beyan
08:00:30–08:02:30: 3/3 dolu – Üç beklenen zamanın tamamında geçerli kayıt var.
Yanlış sıfır saniye başlangıcı
08:00:00–08:02:00: 0/3 dolu – İki ızgara dışı; son kayıt aralık dışında.
OHLC geçerliliği
Her iki incelemede aynı üç mum – Fiyat kontrolü zaman beyanını doğrulamaz; saatler sessizce yuvarlanmaz.

Tam OHLC, MT5’in kayıtlı tick kullandığını kanıtlar mı?

Hayır. Mum, bütün fiyat sırasını içermez. MetaQuotes, dakika mumu bulunup tick’i eksik olduğunda üretilen tick kullanılabildiğini açıklar. Eksiksiz M1 CSV, bütün testin yalnız kaydedilmiş gözlemlerle yürüdüğünü kanıtlamaz. Tester günlüğü, mevcut tick dönemi ve seçilmiş modeli inceleyin; ayrı Bid/Ask serisini unutmayın.

İstenen ve gerçek test başlangıcını da karşılaştırın. Geçmiş hazırlığı belgesi yetersiz tarihçenin başlangıcı ileri kaydırabildiğini anlatır. CopyRates ile dışa aktarımda indirme sürerken kısmi sonuç gelebileceğinden istenen ve dönen eleman sayısını karşılaştırın. Platform testi ayarları, strateji testi yöntemi bu kontrollerin doğrulamadaki yerini açıklar.

Veri raporuyla sonraki adımlar

  1. Kaynak dosyayı, ayarları ve raporu saklayın; enstrüman, fiyat temeli, zaman dilimi ve seans kaynağını ekleyin. Aynı kontrol başka kişi tarafından aynı varsayımla tekrar edilebilsin.
  2. En uzun boşluğu ve bütün fiyat çelişkilerini araştırın. Kaynak/indirme günlüğüyle kapanmış seansı doğrulayın veya düzeltilmiş dosya alın. Aynı aralığı tekrar çalıştırıp önceki raporu koruyun.
  3. Kabul edilen aralıkta kısa görsel strateji testiyle sinyal, spread maliyeti ve gerçekleşme sırasını inceleyin. Ayrı motor kuruyorsanız Python veri ve sinyal denetimine geçin; dosya raporu gelecek getiriyi tahmin etmez.

Anladığınızı kontrol edin

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

Dışa aktarımda 12 satır var, 12 konumlu ızgarada 8 ayrı geçerli zaman dolu. Kaç konum boş?

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

12 beklenen − 8 dolu = 4 boş. Tekrar ve ızgara dışı satır kapsam eklemez.

Diğer sorular

Boş dakika otomatik sağlayıcı hatası mı?
Hayır. Araç bildirilmiş ızgarada geçerli kayıt bulmaz; ürün seansını veya sağlayıcı yayın kuralını bilmez. Seans, zaman dilimi ve indirme günlüğüyle karşılaştırın. Sebebi araştırmadan fiyat eklemeyin; seansı belirlediğiniz belgeyi saklayın.
Sıfır boşlukla OHLC çelişkisi birlikte nasıl olabilir?
Kapsam en az bir geçerli kayıt sorar. Farklı fiyatlı iki geçerli mum aynı zamanı paylaşırsa konum dolu ama belirsizdir. Araç fiyat seçmez; kaynağa dönüp mutabakat yapın. Sıralamak iki aynı zamanlı fiyatı çözmez.
Araç her dışa aktarımı doğrudan okuyabilir mi?
Hayır. Tam beş sütun, belirtilen başlık, ondalık nokta ve açık saat farkı gerekir. Tırnak, noktalı virgül, ek sütun ve farksız sunucu saati hazırlık ister. Kaynağı koruyup dönüşümü belgeleyin. Zamanın açılış mı kapanış mı olduğunu da belirleyin; ayırıcıyı çevirmek saat belirsizliğini çözmez.
Tam ızgara backtest’i kabul etmeye yeter mi?
Hayır. Tam OHLC her tick’i, tarihsel spread’i, ücreti veya emir sırasını geri kurmaz. Çelişki, kaynak ve gerçekleşme modelini; sonra program davranışı ve test zaman çizelgesini kontrol edin. Geçmiş sonuç benzetimdir; gelecek kâr veya sağlayıcının genel güvenilirliği kanıtlanmaz.
TRY örneğinde üç mum neden bir beyana göre eksik sayılıyor?
Kaynak kuralı 30’uncu saniyeye bağlıdır. 00 saniyesinden başlayan farklı ızgarada ilk iki zaman araya düşer, üçüncü son sınır dışındadır. Fiyatları değiştirmeden doğru zaman tanımıyla kontrol tekrarlanır; fakat bu da fiyat gerçekliği veya tick tamlığı ispatı değildir.

Kaynaklar ve doğrulama

  1. MetaQuotes — Real and Generated Ticks

    Dakika mumu bulunup tick verisi eksikken üretilen tick olasılığı; OHLC ile bütün fiyat sırası ayrı.

  2. MetaQuotes — Test Preparation

    Geçmiş eşitleme ve yetersiz veri nedeniyle gerçek test başlangıcı ayarlaması.

  3. MetaQuotes — CopyRates

    Dönen eleman sayısı ve veri indirme sürerken kısmi sonucun kontrol edilmesi.

  4. OANDA — Instrument Definitions

    Mum başlangıcı, fiyat bileşenleri ve complete bayrağı; tüm dosya eksiksizlik sertifikası değildir.

  5. OANDA — Pricing Endpoints

    dailyAlignment ve alignmentTimezone; hizalanmış günlük mum zamanının UTC gösterimi sabit yerel gün uzunluğu değildir.

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.