Backtest için Forex Tick Verisi: Kaynaklar, Kalite Kontrolleri ve Tuzaklar Ekim 31, 2026 – Posted in: Arbitrage Software, Forex trading

BJF TRADING GROUP · FOREX BACKTEST

Backtest için Forex Tick Verisi: Kaynaklar, Kalite Kontrolleri ve Tuzaklar

Bir backtest, ancak ona verdiğiniz fiyatlar kadar dürüst olabilir. Scalping, arbitraj ve birkaç pip içinde yaşayan her strateji için bir dakikalık barlar yeterli değildir: bid ve ask kotasyonlarının gerçek sırasına ihtiyacınız vardır. Bu rehber, forex tick verisinin nereden geldiğini, aynı parite için iki veri setinin neden hiçbir zaman örtüşmediğini, bir sonuca güvenmeden önce hangi kalite kontrollerinin yapılması gerektiğini ve ham tick’leri canlı işlemlere benzeyen bir teste nasıl dönüştüreceğinizi açıklıyor.

Forex tick verisi nedir

Kısa cevap: forex tick verisi, bir döviz paritesindeki her kotasyon değişikliğinin kaydıdır: bir zaman damgası (genellikle milisaniye cinsinden), bid fiyatı, ask fiyatı ve bazen her iki taraftaki kote edilen hacim. Yalnızca her dönemin açılış, en yüksek, en düşük ve kapanış değerlerini saklayan bar verisinin aksine, tick verisi her fiyat güncellemesinin sırasını, zamanlamasını ve spread’ini korur; kısa vadeli bir stratejinin gerçekte işlem yaptığı şey de budur.

Tipik bir satır şöyle görünür:

2026.10.14 08:00:00.137, 1.08512, 1.08519, 1.50, 2.25

Bu satırda zaman, bid, ask ve bid ile ask tarafında mevcut hacim (kaynak sağlıyorsa milyon cinsinden) yer alır. Bu tick’teki spread 0.7 pip’tir. Bir saniye sonra beş satır daha olabilir ya da hiç olmayabilir.

Her şeyden önce anlaşılması gereken bir nokta var: spot forex piyasasının merkezi bir işlem kaydı yoktur. Hisse senetleri ve vadeli işlemlerde, işlemlerin resmi sırasını yayınlayan bir borsa bulunur. Forex ise birçok banka, ECN ve broker arasında tezgâh üstü işlem görür ve bunların her biri kendi kotasyonlarını yayınlar. Dolayısıyla her forex tick veri seti, piyasanın tek bir işlem platformunun veya tek bir toplayıcının bakış açısıdır. İki kaynak aynı anda bir pip’in kesri kadar ve onlarca milisaniye farklılık gösterebilir ve her ikisi de kendi platformu için doğru olabilir.

Bu gerçek, rehberin büyük bölümünü şekillendiriyor. “Bu tick verisi doğru mu?” yanlış sorudur. Faydalı sorular şunlardır: hangi yürütme platformu için doğru, nasıl kaydedilmiş ve nasıl temizlenmiş?

Kotasyon tick’leri ve işlem tick’leri

Çoğu forex veri seti kotasyon tick’lerinden oluşur: en iyi bid veya en iyi ask değişiklikleri. Bunlar işlem değildir. Bir kotasyon tek bir işlem gerçekleşmeden on kez değişebilir, büyük bir işlem ise emir defterinin tepesini hiç değiştirmeyebilir. Vadeli işlemlere dayalı veya borsada işlem gören bazı FX verileri işlem tick’leri (son fiyat ve miktar) içerir; ancak spot forex backtest’i için bid ve ask kotasyonlarına ihtiyacınız vardır, çünkü emirleriniz bunlara karşı gerçekleşir: alışlar ask’tan, satışlar bid’den.

Tick verisi ve bar verisi: interpolasyonun gizledikleri

“Her tick’i” test ettiğini iddia eden birçok backtest aracı aslında hiç kaydedilmiş tick kullanmaz. Bir dakikalık barları alır ve her barın içinde sentetik tick’ler üretir; bu genellikle açılıştan en yükseğe ve en düşüğe, oradan da kapanışa giden düzgün bir yoldur. Sonuç tick verisine benzer, ancak barın zaten sahip olmadığı hiçbir bilgiyi içermez.

Kaydedilmiş forex tick’lerinin bir dakikalık OHLC barından interpolasyonla üretilen sentetik tick’lerle karşılaştırması (temsili)
Bir dakikanın içinde: kaydedilmiş bid tick’leri sıçrar, durur ve yön değiştirir; barın OHLC değerlerinden üretilen tick’ler düzgün bir yol izler ve en yüksek ile en düşüğün sırasını uydurur. Temsili veri.

Bunun neden önemli olduğunu görelim. Bir dakikalık bir EUR/USD barı alalım: açılış 1.08500, en yüksek 1.08540, en düşük 1.08480, kapanış 1.08520. Kâr al seviyesi 1.08530 ve zarar durdur seviyesi 1.08485 olan bir alış pozisyonu açık. Her iki seviye de barın içinde. İşlem kazandı mı, kaybetti mi?

  • Önce en düşük geldiyse, stop 1.08485’ten tetiklendi ve işlem 1.5 pip kaybettirdi.
  • Önce en yüksek geldiyse, kâr al 1.08530’dan tetiklendi ve işlem 3 pip kazandırdı.

Bar bunu size söyleyemez. Üretici bir sıra seçer (çoğu zaman “yükseliş barı önce en düşüğe gider” gibi sabit bir kurala göre) ve backtest, kısmen yazı tura olan bir sonucu kendinden emin şekilde raporlar. 100 pip hedefli bir swing stratejisi için bu nadiren önemlidir. Hedefleri ve stopları girişten birkaç pip uzakta olan bir strateji için ise işlemlerin büyük bir kısmını belirler.

İnterpolasyon, kaydedilmiş tick’lerin koruduğu üç şeyi de siler:

Stratejinin ihtiyacı Kaydedilmiş tick’ler Barlardan üretilen tick’ler
Bir dakika içinde en yüksek ve en düşüğün sırası Kesin Bir kurala göre tahmin edilir
Fiyat sıçramaları (tek kotasyonda 1.5 pip’lik hareket) Mevcut Küçük adımlara yumuşatılır
Her kotasyondaki spread Mevcut (bid ve ask) Genellikle tek bir sabit spread veya bar başına bir değer
Kotasyonlar arasındaki zamanlama (sakin ve yoğun saniyeler) Mevcut Eşit aralıklı veya uydurulmuş
Haberler ve rollover çevresindeki kotasyon aktivitesi Mevcut Kaybolur

Sıçramalar gecikme arbitrajı için kritik noktadır: sinyalin kendisi sıçramadır. 1.08500’den 1.08515’e on beş küçük adımda yürüyen sentetik bir yol hiçbir sinyal üretmez; bu nedenle canlıda işlem yapacak bir strateji testte ölü görünür ya da geri çekilmelerde alım yapan bir strateji olduğundan daha iyi görünür.

Forex tick verisi nereden gelir

Gerçekçi beş kaynak vardır. Maliyet, derinlik ve en önemlisi gerçekte işlem yapacağınız fiyatlarla ne kadar örtüştükleri bakımından farklılık gösterirler.

Kaynak Ne elde edersiniz Güçlü yönler Sınırlamalar
Kendi kaydınız (brokerın API’si veya FIX oturumu üzerinden) Hesabınızın aldığı her kotasyon, yerel alım zamanınızla birlikte Yürütme platformunuzla birebir örtüşme; zaman damgalarını ve formatı siz kontrol edersiniz Ancak kayda başladığınızda başlar; kararlı bir makine gerektirir; bağlantı koparsa boşluklar oluşur
Broker geçmiş verisi indirme Brokerın kendi feed’inden geçmiş bid/ask Platformunuza yakın; çoğu zaman yıllarca geriye gider Kalite değişkendir; bazı brokerlar eski tick’leri seyreltir veya filtreler; zaman damgaları sunucu saatinde olabilir
Ücretsiz açık arşivler (bazı ECN brokerları ve toplayıcılar tarafından sunulur, ör. Dukascopy, TrueFX, HistData.com) Majör pariteler için bid/ask tick’leri, çoğu zaman 2000’li yıllara kadar Ücretsiz, uzun geçmiş, araştırma ve sağlamlık testleri için iyi Sizin değil, tek bir platformun veya toplayıcının görünümü; spread’ler ve kotasyon sıklığı brokerınızdan farklıdır; her kaynağın saat dilimi kuralını kontrol edin
Ticari veri sağlayıcıları Temizlenmiş, normalize edilmiş, çok platformlu tick geçmişi Belgelenmiş metodoloji, tutarlı formatlar, destek Pahalı; yine de brokerınızın feed’i değil
Referans / hızlı feed’ler (ör. Londra, Tokyo ve New York düğümlerinden BJF Feed tick geçmişi) Hızlı, bağımsız bir referans fiyat akışı Yavaş bir feed’i hızlı bir feed ile karşılaştıran stratejileri test etmek için gerekli Arbitraj testleri için brokerın kendi tick’leriyle eşleştirilmelidir

Pratik kural: araştırma için elde edebileceğiniz en uzun temiz geçmişi, nihai karar için ise yürütme platformunuza en yakın veriyi kullanın. Yalnızca tek bir ücretsiz arşivde çalışıp brokerınızın kaydedilmiş tick’lerinde başarısız olan bir strateji çalışmıyor demektir. Gerçekçi maliyetlerle her ikisinde de ayakta kalan bir strateji anlamlı bir testi geçmiştir.

Bir stratejiyi aylarca çalıştırmayı planlıyorsanız, strateji henüz bitmemiş olsa bile kendi brokerınızın tick’lerini bugünden kaydetmeye başlayın. Nihai kontrol için kendi feed’inizin üç ayı, başkasının on yılından daha değerlidir.

Brokerınızın feed’i ve referans feed

Her platform kendi kotasyonlarını yayınladığı için aynı an farklı yerlerden biraz farklı görünür. Farkların bir yapısı vardır:

  • Fiyat farkı. Orta fiyatlar likit saatlerde genellikle bir pip’in kesri içinde örtüşür; sığ piyasalarda, rollover sırasında ve haberler çevresinde ise birbirinden uzaklaşır.
  • Zaman farkı. Likidite sağlayıcılardan fiyat toplayan, kendi markup’ını uygulayan ve risk kontrolleri yürüten bir broker, bir hareketi çoğu zaman hızlı bir referans feed’den daha geç gösterir. Gecikme birkaç milisaniye veya birkaç yüz milisaniye olabilir.
  • Kotasyon sıklığı. Bazı feed’ler her değişikliği gönderir, diğerleri ise kısıtlar (örneğin sembol başına 100 ms’de en fazla bir güncelleme). Kısıtlanmış bir feed’de daha az tick ve daha büyük sıçramalar olur.
  • Spread profili. Ham bir ECN feed’i ile markup içeren bir bireysel yatırımcı feed’i, ortalama spread’de tam bir pip, rollover’da ise çok daha fazla farklılık gösterebilir.
Aynı dakika için iki forex feed’i: broker feed’inin önünde giden referans feed ve zaman gecikmesinin dağılımı (temsili)
Aynı parite, aynı dakika, iki feed. Broker feed’i referans hareketleri gecikmeyle ve daha az güncellemeyle tekrarlar; sağ panel bu gecikmenin dağılımını gösterir. Temsili veri; belirli bir brokerın ölçümü değildir.

Çoğu strateji için bu, işlem yapacağınız feed üzerinde test etmeniz gerektiği anlamına gelir. Gecikme arbitrajı için ise daha güçlü bir anlamı vardır: stratejinin avantajı bizzat iki feed arasındaki farktır; bu yüzden her iki akışa da, aynı saatten alınmış zaman damgalarıyla kaydedilmiş olarak ihtiyacınız vardır. Bir arbitraj stratejisini tek bir sağlayıcının tick’leri üzerinde test etmek anlamsızdır. Feed’lerin tick tick nasıl karşılaştırılacağını forex arbitrajı ve HFT’de tick karşılaştırması makalemizde, referans tarafının neden hızlı olması gerektiğini ise arbitraj için hızlı veri feed’leri rehberinde anlatıyoruz.

Zaman damgaları, saat dilimleri ve yaz saati

Zaman damgası sorunları, kötü fiyatlardan daha fazla sessiz backtest hatasına yol açar. Kontrol edilmesi gereken dört şey:

1. Veri hangi saat diliminde?

Yaygın kurallar şunlardır: UTC/GMT, ABD Doğu saati (yaz saati uygulamasıyla veya uygulamasız) ve birçok brokerın işlem gününün New York saatiyle 17:00’de kapanması için kışın GMT+2, yazın GMT+3 olarak ayarladığı broker “sunucu saati”. Stratejiniz “Londra açılışında 08:00’de işlem yap” diyorsa, bir saatlik kayma farklı bir piyasa rejiminde işlem yapması demektir.

2. Yaz saati uygulanmış mı, hangi bölgeninki?

Avrupa ve Amerika Birleşik Devletleri saatlerini farklı tarihlerde değiştirir. Martta yaklaşık üç hafta ve Ekim sonu ile Kasım başı civarında bir hafta boyunca Londra ile New York arasındaki fark beş yerine dört saattir. Yanlış kuralla dönüştürülmüş bir veri seti, bu haftalarda seans tabanlı mantığı bir saat kaydırır. Hata küçük, mevsimseldir ve bir sermaye eğrisinde fark edilmesi çok zordur.

3. Zaman damgası nerede alınmış?

Bir tick, platformun kotasyonu oluşturduğu zamanı, kotasyonun platform sunucusundan çıktığı zamanı veya makinenizin onu aldığı zamanı taşıyabilir. Trend stratejisi için bu fark önemli değildir. Gecikmeye duyarlı stratejiler için ise asıl mesele budur: iki feed ancak her ikisi de aynı saatle damgalanmışsa karşılaştırılabilir; ideal olarak NTP veya PTP ile senkronize edilmiş kendi alım zamanınızla.

4. Çözünürlük ve sıralama

Saniye çözünürlüklü zaman damgaları kısa vadeli çalışma için yeterli değildir: düzinelerce kotasyon aynı saniyeyi paylaşabilir ve sıralamadan sonra bunların saniye içindeki sırası kaybolabilir. Milisaniye (veya daha ince) çözünürlük kullanın ve eşitlik durumunda belirleyici olarak orijinal dosya sırasını koruyun.

Bir veri setine güvenmeden önce kalite kontrolleri

Ham tick verisi her zaman hata içerir. Amaç mükemmellik değil, veride ne olduğunu bilmek ve testi bozacak şeyleri ayıklamaktır. Yeni bir veri setini bir optimizasyonda kullanmadan önce yaptığımız kontroller şunlardır:

Kontrol Neye bakılır Tipik işlem
Monoton zaman Geriye giden zaman damgaları Yalnızca nedeni biliniyorsa yeniden sıralayın; aksi takdirde dosyayı işaretleyin
Mükerrer kayıtlar Özdeş satırlar (aynı zaman, bid, ask) Birebir mükerrerleri silin; farklı zamanlardaki tekrar eden fiyatları tutun
Ters veya sıfır spread Ask ≤ bid Silin; sık görülmesi bozuk bir kaynağa veya birleştirilmiş feed’lere işaret eder
Anormal spread Bilinen olaylar dışında saatlik medyanın örneğin 10× üzerindeki spread İşaretleyin; rollover veya haberle örtüşüyorsa tutun, izoleyse silin
Fiyat sivrilmeleri Son volatilitenin katları büyüklüğünde olup birkaç tick içinde geri dönen bir orta fiyat sıçraması İzole sivrilmeleri silin; gerçek haber hareketlerini asla filtrelemeyin
Boşluklar Likit saatlerde 60 saniyeden uzun süre tick olmaması Boşlukları haritalayın; bu dönemleri testten çıkarın veya içlerindeki işlemleri işaretleyin
Bayat kotasyonlar Diğer kaynaklar hareket ederken dakikalarca tekrarlanan aynı bid/ask Boşluk olarak değerlendirin
Hafta sonu ve tatil tick’leri Cuma kapanışı ile Pazar açılışı arasındaki kotasyonlar Silin veya orada tam bir saat görünüyorsa saat dilimini kontrol edin
Tick yoğunluğu Saat başına tick sayısının diğer günlerin aynı saatiyle karşılaştırılması Ani bir düşüş, kısıtlamaya veya bir kayıt sorununa işaret eder
Fiyat ölçeği ve basamak sayısı 4 basamaklı ve 5 basamaklı kotasyonlar, 3 ondalıklı JPY pariteleri Kaynakları birleştirmeden önce normalize edin

Basit ve sağlam bir sivrilme kuralı: son 200 tick üzerinden orta fiyat değişimlerinin kayan medyan mutlak sapmasını (MAD) hesaplayın; değişimi MAD’ın yaklaşık 15× katını aşan ve sonraki üç tick içinde büyük ölçüde geri dönen her tick’i işaretleyin. Gerçek bir haber hareketi üç tick’te geri dönmez; hatalı bir kotasyon genellikle döner. Eşikleri her parite için ayarlayın ve neyi sildiğinize bakın, çünkü fazla hevesli bir filtre tam da bir arbitraj veya haber stratejisinin ihtiyaç duyduğu hareketleri siler.

Kayıt tutun. Her kontrolün ay başına kaç satırı sildiğini veya işaretlediğini not edin. Bir ay tick’lerinin %8’ini kaybederken diğerleri %0.1 kaybediyorsa, o ayda bir kaynak sorunu vardır ve ona dayanan her strateji sonucu şüphelidir.

Adım adım: tick verisini backtest için hazırlamak

Ham dosyalardan doğrulanmış bir backtest veri setine forex tick verisi temizleme süreci
Ham dosyalardan güvenebileceğiniz bir veri setine: her aşama ya bilinen bir sorunu düzeltir ya da kaydeder.
1
Kaynağı soruya göre seçin. Araştırma ve sağlamlık için uzun ücretsiz geçmiş; nihai kontrol için brokerınızın kaydedilmiş tick’leri; strateji feed’leri karşılaştırıyorsa ayrıca bir referans feed.
2
Zaman damgalarını normalize edin. Her şeyi milisaniye çözünürlükle UTC’ye dönüştürün, kaynağın doğru yaz saati kuralını uygulayın ve eşitlik durumunda belirleyici olarak orijinal sırayı koruyun.
3
Fiyatları normalize edin. Sembol başına aynı basamak sayısı, bid ve ask ayrı sütunlarda; strateji spread ödüyorsa yalnızca orta fiyattan oluşan veri kullanmayın.
4
Bariz hataları silin. Birebir mükerrerler, ters veya sıfır spread’ler, hafta sonu tick’leri, geri dönen izole sivrilmeler.
5
Boşlukları ve bayat dönemleri haritalayın. Bunları uydurulmuş fiyatlarla doldurmak yerine hariç tutulan aralıkların listesi olarak saklayın.
6
İkinci bir kaynakla karşılaştırın. Saatlik orta fiyatları ve spread’leri başka bir veri setiyle karşılaştırın; büyük ve kalıcı farklar bir ölçek, saat dilimi veya feed sorununa işaret eder.
7
Dönemi bölün. Herhangi bir şeyi optimize etmeden önce bir örneklem dışı pencere (örneğin son %25) ve bir walk-forward takvimi ayırın.
8
Yürütme varsayımlarını belirleyin. Tick’lerden gelen değişken spread, milisaniye cinsinden gerçek yürütme süreniz, lot başına komisyon. Ardından testi çalıştırın.

Değişken spread: sabit spread’in gizlediği maliyet

Birçok test tek bir spread değeri kullanır, örneğin EUR/USD için 0.8 pip. Gerçek spread’ler gün boyunca değişir: Londra ve New York çakışmasında dar, Asya seansında daha geniş, günlük rollover ve önemli veri açıklamaları çevresinde birkaç dakika boyunca birkaç pip genişliğinde. Nedenleri forex spread’lerinin neden genişlediği rehberimizde ele alınmıştır.

Sabit bir spread sistematik bir şekilde yanlıştır, çünkü stratejiler rastgele zamanlarda işlem yapmaz. Bir kırılım stratejisi volatilite arttığında tetiklenme eğilimindedir; bu da tam olarak spread’lerin genişlediği andır. Sakin Asya seansında işlem yapan bir ortalamaya dönüş stratejisi, günlük ortalamanın üzerindeki spread’lerle karşılaşır. Kaydedilmiş bid/ask tick’leriyle her işlem, o anda gerçekten kote edilen spread’i öder.

Uygulamalı örnek (temsili rakamlar). Bir scalping stratejisi EUR/USD’de 1 standart lotla (pip başına yaklaşık $10) ayda 400 gidiş-dönüş işlem yapıyor.

0.8 pipTestteki sabit spread400 işlem × 0.8 × $10 = ayda $3,200 spread maliyeti
1.1 pipGerçekte ödenen ortalama spreadstrateji volatil dakikalarda daha sık işlem yapıyor: 400 × 1.1 × $10 = $4,400
$1,200Testin kaçırdığı aylık maliyetlot başına; brüt avantaj işlem başına 1.5 pip ise 0.3 pip’lik bir hata bunun %20’sini yok eder

1.1 pip’lik rakam, mekanizmayı göstermek için verilen bir örnektir; herhangi bir broker için ölçülmüş bir değer değildir. Stratejinizin işlemlerinin gerçekte karşılaştığı ortalama spread’i tick verisinde ölçün.

Veri varsayımı sonucu ne kadar değiştirir

Her varsayımın etkisini göstermek için aşağıdaki grafik, varsayımsal tek bir kısa vadeli stratejiyi alıyor ve yalnızca veri ve yürütme modelini değiştiriyor. Rakamlar temsilidir; bar tabanlı testlerden gerçekçi yürütmeli tick tabanlı testlere geçerken düzenli olarak gördüğümüz etkilerin yönünü ve yaklaşık büyüklüğünü yansıtacak şekilde oluşturulmuştur. Belirli bir stratejinin sonuçları değildir.

Bir stratejinin dört farklı veri ve yürütme varsayımı altında işlem başına ortalama net sonucu: interpolasyonlu barlardan yürütme süreli gerçek tick’lere (temsili)
Her adım gerçekliğin bir parçasını ekler: kaydedilmiş tick’ler, değişken spread, ardından yürütme süresi. Temsili rakamlar.

Önemli olan örüntüdür. Her gerçekçi varsayım avantajın bir kısmını götürür ve son adım olan yürütme süresi, kısa vadeli stratejilerde çoğu zaman en fazlasını götürür. Bir strateji dört adımın hepsinden pozitif bir sonuç ve makul sayıda işlemle çıkıyorsa, küçük bir canlı teste değer. Yalnızca ilk sütunda iyi görünüyorsa, avantaj piyasaya değil veri modeline aittir.

Tick’ler gerekli ama yeterli değil: yürütme süresi

Kusursuz bir tick veri seti bile, her emir onu tetikleyen tick’in fiyatından gerçekleşiyorsa iyimser bir test verir. Canlıda karar ile gerçekleşme arasında her zaman bir gecikme vardır: platformunuz, ağ, brokerın işlem süreci. Bu gecikme boyunca piyasa ilerlemeye devam eder. Sakin bir günde etki bir pip’in kesri kadardır; hızlı bir harekette ise kazanan ve kaybeden işlem arasındaki farktır.

Doğru model, tick akışında yürütme sürenizin istek kısmı kadar ileri gider ve o sonraki anda kote edilen bid veya ask’tan gerçekleştirir. Bu, bir slippage rakamı tahmin etmeden pozitif ve negatif gerçekçi slippage üretir. Bu modeli, dört gecikme bileşenini ve uygulamalı bir örneği gecikme arbitrajı backtest’lerinde yürütme süresi farkı makalesinde, canlı gerçekleşmelerde slippage’ın nasıl ölçüleceğini ise forex slippage’ı açıklanıyor yazısında anlatıyoruz.

Bu aynı zamanda “canlı sonuçlarım neden backtest’ten farklı?” sorusunun en yaygın cevabıdır. Veri iyiydi; gerçekleşme modeli sıfır gecikme varsaydı. İyi bir pratik kural, ölçtüğünüz yürütme süresinde ve ardından bu değerin 1.5 ila 2 katında test etmektir. Daha yüksek değerde çöken bir strateji kırılgandır.

Depolama, formatlar ve veri yönetimi

Tick verisi büyüktür ve seçtiğiniz format hem disk alanını hem de bir optimizer’ın veriyi ne kadar hızlı yeniden oynatabileceğini etkiler. Aktif bir majör parite için kaba bir tahmin:

~39 MYılda tickişlem günü başına yaklaşık 150,000 kotasyon × 260 gün (yoğun feed’ler daha fazla, kısıtlanmış feed’ler daha az gönderir)
~2 GBCSV metni olaraktam tarih-saat dizesi, bid ve ask ile satır başına yaklaşık 50 bayt
~0.6 GBKompakt ikili format olarak8 baytlık zaman damgası + puan cinsinden iki adet 4 baytlık tamsayı fiyat = sıkıştırmadan önce tick başına 16 bayt

Büyüklük mertebesi tahminleridir. Sıkıştırılmış sütunlu formatlar tick dosyalarını genellikle birkaç kat daha küçültür.

  • Fiyatları puan cinsinden tamsayı olarak saklayın (1.08512 → 108512). Bu, fiyatları karşılaştırırken kayan nokta yuvarlamasını önler ve boyutu yarıya indirir.
  • Sembole ve güne göre bölümlendirin. Sembol başına günde bir dosya; boşluk kontrollerini, kısmi yeniden yüklemeleri ve paralel optimizasyonu kolaylaştırır.
  • Ham dosyalara dokunmayın. Ayrı bir veri setine temizleyin ve temizleme kaydını saklayın; böylece her sonucu yeniden üretebilirsiniz.
  • Veri alışverişi için CSV’yi koruyun. Zaman damgası, bid ve ask içeren düz bir format, çoğu aracın içe aktardığı formattır. Örneğin SharpTrader Optimizer, kendi tick verinizi zaman damgası, bid ve ask içeren CSV olarak kabul eder.

Sık yapılan hatalar

  • İnterpolasyonlu barlara “tick verisi” demek. Aracınızın kaydedilmiş kotasyonları mı yeniden oynattığını yoksa bunları barlardan mı ürettiğini kontrol edin.
  • Orta fiyatlar üzerinde test etmek. Yalnızca orta fiyattan oluşan bir veri seti spread’i tamamen yok sayar; maliyetler bid ve ask’tan gelmelidir.
  • Tek bir testte kaynakları karıştırmak. İki sağlayıcının dosyalarını birleştirmek, birleşim noktasında yapay sıçramalar ve tek bir dönemde farklı spread rejimleri yaratır.
  • Saat dilimini ve yaz saatini göz ardı etmek. Seans filtreleri ve günlük rollover mantığı sessizce kayar.
  • Boşlukları uydurulmuş fiyatlarla doldurmak. Bir strateji, hiç gerçek kotasyonun olmadığı bir kesinti sırasında “işlem yapabilir”. Bunun yerine boşlukları hariç tutun.
  • Aşırı temizlik. Her büyük hareketi silmek, bazı stratejilerin tam da işlem yapmak için tasarlandığı haber sivrilmelerini ve sıçramaları ortadan kaldırır.
  • Sıfır gecikmeli gerçekleşmeler. Sinyal tick’inde kusursuz gerçekleşmeler, neredeyse her kısa vadeli stratejiyi kârlı gösterir.
  • Tüm veri üzerinde optimizasyon yapmak. Örneklem dışı bir dönem ve walk-forward kontrolleri olmadan, büyük bir parametre ızgarası geçmişe uyan ve başka hiçbir şeye uymayan bir eğri bulur.

SharpTrader Optimizer’da tick verisi

SharpTrader Optimizer’ı bu rehberdeki noktalar etrafında geliştirdik. İnterpolasyonlu barlar yerine gerçek geçmiş bid/ask tick’lerini yeniden oynatır, spread’i her tick’ten alır ve emir yürütme sürenizi milisaniye cinsinden ayarlamanıza izin verir; böylece her gerçekleşme, bu gecikmeden sonraki tick akışından gelir. Londra, Tokyo ve New York düğümlerinde kaydedilmiş BJF Feed tick geçmişini kullanabilir veya kendi brokerınızın tick’lerini CSV olarak içe aktarabilirsiniz. Parametre ızgaraları tüm CPU çekirdeklerinde çalışır; bu, tek bir paritenin bir yılı on milyonlarca tick olduğunda önemlidir.

Zaten kendi stratejiniz varsa, kendi botunuzu SharpTrader’da test etmek hakkındaki makale, koddan tick seviyesinde optimizasyona kadar tüm iş akışını gösterir.

Stratejinizin gerçekten karşılaşacağı tick’ler üzerinde test edin

Gerçek bid/ask tick’leri, her kotasyonda değişken spread ve brokerınızın milisaniye cinsinden yürütme süresi: kısa vadeli bir stratejinin canlı işlemlerde ayakta kalıp kalmayacağını belirleyen üç girdi.

SharpTrader Optimizer’ı keşfedinOkuyun: yürütme süresi farkı

Ücretsiz arbitraj tarayıcısı + kısa e-posta kursu

Ücretsiz tarayıcının bağlantısını ve Boris’ten birkaç kısa, pratik e-posta alın: maliyetlerden sonra fiyat farkının gerçekte ne anlama geldiği, gerçek para riske atmadan önce bir stratejinin nasıl test edileceği ve piyasanıza hangi araçların uygun olduğu. Abartı yok. E-postalar İngilizce gönderilir.

Göndererek BJF Trading Group’tan arbitraj araçları ve alım satım yazılımları hakkında e-posta almayı kabul etmiş olursunuz. İstediğiniz zaman abonelikten çıkabilirsiniz. Gizlilik Politikası sayfamıza bakın.

Sıkça Sorulan Sorular

Forex tick verisi nedir?

Forex tick verisi, bir döviz paritesindeki her kotasyon değişikliğinin zaman damgası, bid fiyatı, ask fiyatı ve bazen kote edilen hacimle birlikte kaydıdır. Fiyat güncellemelerinin kesin sırasını, zamanlamasını ve spread’ini korur; bar verisi ise bunları kaybeder.

Ücretsiz forex tick verisini nereden bulabilirim?

Bazı ECN brokerları ve toplayıcılar majör pariteler için ücretsiz geçmiş bid/ask tick’leri yayınlar ve birçok broker kendi geçmiş verisini indirmenize izin verir. Ücretsiz arşivler araştırma için faydalıdır, ancak tek bir platformun fiyatlarını gösterir; bu yüzden nihai sonucu kendi brokerınızın kaydedilmiş tick’leri üzerinde doğrulayın.

Backtest için tick verisi 1 dakikalık veriden daha mı iyi?

Hedefleri ve stopları birkaç pip içinde olan stratejiler, scalping, haber işlemleri ve arbitraj için evet: bir dakikalık barlar en yüksek ve en düşüğün sırasını, fiyat sıçramalarını ve gerçek spread’i gizler. Geniş stoplu swing stratejileri için ise gerçekçi spread’e sahip temiz bir dakikalık veri çoğu zaman yeterlidir.

İki veri kaynağında neden farklı backtest sonuçları alıyorum?

Spot forex’in merkezi bir işlem kaydı yoktur; bu nedenle her kaynak farklı bir platformun görünümüdür. Spread’ler, kotasyon sıklığı, saat dilimleri, yaz saati uygulaması ve temizleme kuralları hepsi farklıdır. Nedeni bulmak için iki veri seti arasında saatlik fiyatları ve spread’leri karşılaştırın ve yürütme platformunuza en yakın kaynağa güvenin.

Bir yıllık forex tick verisi ne kadar depolama alanı gerektirir?

Aktif bir majör parite için yılda kabaca on milyonlarca tick: CSV metni olarak yaklaşık 2 GB veya sıkıştırmadan önce kompakt ikili formatta 0.6 GB civarı. Birkaç yıla yayılan birkaç parite hızla onlarca gigabayta ulaşır.

Tick verili backtest’im neden kusursuz gerçekleşmeler gösteriyor?

Çünkü test her emri sinyali üreten tick’te gerçekleştirir. Gerçek emirlerin brokera ulaşması zaman alır ve bu arada fiyat hareket eder. Yürütme süresini tick akışında ileri giderek ve sonraki bid veya ask’tan gerçekleştirerek modelleyin ve ölçtüğünüz gecikmenin 1.5 ila 2 katında test edin.

Hem bid hem ask’a mı ihtiyacım var, yoksa orta fiyat yeterli mi?

Her ikisine de ihtiyacınız var. Alışlar ask’tan, satışlar bid’den gerçekleşir; bu nedenle spread her işlemde gerçek bir maliyettir. Yalnızca orta fiyattan oluşan bir veri seti bu maliyeti ortadan kaldırır ve kısa vadeli stratejileri olduklarından daha iyi gösterir.

Bu makale eğitim amaçlıdır ve finansal tavsiye niteliği taşımaz. Temsili olarak işaretlenen örnekler, grafikler ve rakamlar herhangi bir broker veya stratejinin ölçümleri değildir; veri kaynakları, kurallar ve maliyetler sağlayıcılar arasında farklılık gösterir ve zamanla değişir.