BJF TRADING GROUP · SHARPTRADER OPTIMIZER
Yayımlanan gecikme arbitrajı geriye dönük testlerinin çoğu kâğıt üzerinde muhteşem görünür ve canlıya geçtikleri anda çöker. Bunun nedeni kötü strateji mantığı değildir — standart bireysel geriye dönük test araçları sessizce sıfır gecikmeli dolum varsayar. Bu rehber, milisaniye düzeyindeki emir gerçekleştirme süresinin hesabı nasıl değiştirdiğini ve gerçekten işlem yapabileceğiniz sonuçlar üretmek için geriye dönük testinizin neyi modellemesi gerektiğini ayrıntılı olarak açıklıyor.
Gecikme arbitrajının kârlılığı 50–200 milisaniyelik bir pencerenin içinde yaşar. Hızlı fiyat akışı ile yavaş bir broker arasındaki fiyat farkı, yavaş broker’ın kotasyonu güncellenmeden önce genellikle bu kadar süre açık kalır. Gerçek gidiş-dönüş emir gerçekleştirme süreniz — sinyalin tespitinden onaylanmış dolum anına kadar — bu pencerenin büyük kısmını tüketiyorsa, neredeyse hiç marjınız kalmaz. Standart bireysel geriye dönük test araçları emirlerin gösterilen fiyattan anında dolduğunu varsayar; bu da tüm sorunu simülasyondan siler. Sonuç: para basıyormuş gibi görünen bir geriye dönük test ve spread sonrası her işlemde zarar eden bir canlı kurulum.
Bu makale açığı sayısal olarak ortaya koyuyor, milisaniyelerin gerçekte nereye gittiğini ayrıştırıyor ve emir gerçekleştirme süresinin bir geriye dönük test içinde nasıl modelleneceğini açıklıyor; böylece ortaya koyduğunuz rakamlar canlı hesapta göreceğiniz rakamlarla örtüşür.
İzleyin: emir gerçekleştirme süresi bir gecikme arbitrajı geriye dönük testini nasıl değiştirir — aynı strateji 0 ms, 50 ms ve 150 ms gecikmeyle, tik tik inceleniyor.
Bir gecikme arbitrajı sisteminde strateji iki fiyat akışını karşılaştırır — bir hızlı fiyat akışı (genellikle tier-1 bir toplayıcı veya likidite sağlayıcı akışı) ve bir yavaş fiyat akışı (karşısında işlem yaptığınız broker). Hızlı akış, yavaş olanın önüne spread artı yapılandırılmış bir eşikten daha fazla geçtiğinde strateji, yavaş fiyatın yakınsamasını bekleyerek yavaş tarafta bir emir gönderir.
Fırsat yalnızca iki fiyat uyumsuz olduğu sürece vardır. Broker’ın kotasyon motoru yetiştiği anda — genellikle 50 ila 200 milisaniye içinde — avantaj ortadan kalkar. Emrinizin bu gerçekleşmeden önce piyasada olması gerekir.
Bu bağlamda “emir gerçekleştirme süresi” tek bir sayı değildir. Her biri birkaç milisaniye ekleyen gecikmelerden oluşan bir yığındır:
Broker’dan farklı bir veri merkezindeki standart bir VPS üzerinde çalışan bir strateji için gerçekçi gidiş-dönüş süresi nadiren 80–100ms’nin altına iner. Broker ile çapraz bağlantı üzerinden ortak konumda çalışan bir strateji için 1–5ms’ye düşebilir. Bu büyüklük mertebesindeki fark, işin tamamıdır.
Temiz bir sinyal düşünün: hızlı fiyat akışı 1.5 pip sıçrıyor. Yavaş broker henüz güncellenmedi. Yavaş broker’ın kotasyon motoru yeni fiyatı yansıtmadan önce ortalama 80 ila 150 milisaniyeniz var. Bu pencere içinde iki şey aynı anda gerçekleşir:
Gidiş-dönüş süreniz 50ms tutuyorsa, fark hâlâ ~%70 oranında mevcutken ulaşırsınız ve büyük kısmını yakalarsınız. Gidiş-dönüş süreniz 150ms tutuyorsa, fark zaten ~%10’a çökmüşken ulaşırsınız — ve spread + kayma sonrasında büyük olasılıkla zarar edersiniz.
Gidiş-dönüş gecikmesi ile arbitraj kâr/zararı arasındaki ilişki doğrusal değildir. Emir gerçekleştirme penceresinin altında kârlılık yüksek ve istikrarlıdır. Üstünde ise kârlılık sıfıra veya negatife çöker. Bireysel yatırımcıların çoğu bu uçurumun yanlış tarafında durur ve geriye dönük testleri bunu gizlediği için farkında olmaz.
İşte aynı teorik 1.5 pip avantajlı gecikme arbitrajı sinyali, dört farklı gidiş-dönüş emir gerçekleştirme gecikmesinde simüle edildi. Aşağıdaki rakamlar, normal likidite ve 0.6–0.9 pip spread ile Londra seansında EUR/USD üzerinde göreceklerinizin tipik örnekleridir.
| Gidiş-dönüş emir gerçekleştirme | Yakalanan avantaj | Girişte kayma | İşlem başına net kâr/zarar | Sonuç |
|---|---|---|---|---|
| ~5ms (ortak konumlu) | Sinyalin ~%95’i | 0.0–0.2 pip | +0.6 ila +1.0 pip | Kârlı |
| ~50ms (yakın VPS) | Sinyalin ~%70’i | 0.2–0.5 pip | +0.2 ila +0.6 pip | Kârlı, daha ince |
| ~120ms (orta mesafe) | Sinyalin ~%30’u | 0.5–1.0 pip | −0.3 ila +0.1 pip | Sınırda / zararda |
| ~200ms (uzak mesafe) | Sinyalin ~%10’u | 1.0–1.8 pip | −1.0 ila −0.5 pip | Her işlemde zarar |
Örüntüye dikkat edin: 5ms’den 50ms’ye kârlılık ölçülü biçimde düşer. 50ms’den 120ms’ye uçurumdan aşağı yuvarlanır. 150ms’nin ötesinde strateji, maliyetler sonrası negatif beklentili bir yazı-turaya dönüşür. Bu uçurum, anında dolum varsayan bir geriye dönük test aracı için görünmezdir.
Standart bireysel geriye dönük test araçları trend takip eden ve göstergelere dayalı sistemler için geliştirilmiştir — pozisyon tutma sürelerinin dakikalardan günlere uzandığı ve birkaç saniyelik emir gerçekleştirme kaymasının yuvarlama hatası olduğu stratejiler. Mimarileri de bunu yansıtır:
Pozisyonları saatlerce tutan bir strateji için bu sorun değildir — bu basitleştirmelerin maliyeti kâr/zararın %1’inin çok altındadır. İşlem başına 1–3 pip kazanan ve 100ms’lik bir pencere içinde yaşayıp ölen bir gecikme arbitrajı stratejisi için ise bu basitleştirmelerin her biri ölümcüldür:
100ms’lik bir fiyat farkı bir M1 barının içinde görünmezdir — bar, bar içi tik akışını değil OHLC’yi gösterir. Bar tekrarı yapan geriye dönük test araçları gecikme arbitrajı sinyallerini doğru şekilde tespit bile edemez.
Emirler gönderildikleri anda gösterilen fiyattan doluyorsa, 50–200ms’lik emir gerçekleştirme penceresinin tamamı sıfıra çöker. Geriye dönük test her seferinde her sinyalin %100’ünü yakalar. Gerçekte ise altyapıya bağlı olarak %30–%95’i yakalanır.
Gerçek arbitraj fırsatları haberler, rollover ve düşük likidite pencereleri etrafında yoğunlaşır — tam da spread’in 3–5 kat genişlediği anlar. Sabit spread’li geriye dönük testler gerçek koşullarda var olmayacak kârları sayar.
Gecikme arbitrajı pozisyonları açtığı kadar hızlı kapatır. Standart geriye dönük test araçları ya kapanış tarafındaki kaymayı tamamen yok sayar ya da aynı sabit spread’i uygular; bu da gerçekçi olmayan iyimserliği ikiye katlar.
Canlı bir broker ile temasta ayakta kalabilen bir geriye dönük test üretmek için simülatörün gidiş-dönüşün her ayağını açıkça modellemesi gerekir. Ciddi bir gecikme arbitrajı geriye dönük testinin ihtiyaç duyduğu ayrım şudur:
| Bileşen | Tipik aralık | Neyi temsil eder |
|---|---|---|
| 1. Sinyalden gönderime gecikme | 0.5–20 ms | Tetikleyici tikin alınmasından emrin üretilmesine kadar geçen süre. Dile, kod yoluna ve CPU’ya bağlıdır. Derlenmiş C++ <1ms; üst düzey betikler 5–20ms. |
| 2. Ağ gidiş-dönüşü (giden) | 1–80 ms | İşlem sunucunuzdan broker’a kadar hat süresi. Ortak konumlu = 1–3ms; aynı şehir = 5–15ms; bölgeler arası = 30–80ms. |
| 3. Broker eşleştirme gecikmesi | 3–100 ms | Broker’ın emir yönetimi ve eşleştirme motoru içinde geçen süre. Tier-1 ECN broker’lar: 3–15ms. Standart bireysel broker’lar: 30–100ms. Manuel işlem yapan STP broker’lar: 100ms+. |
| 4. Onay gidiş-dönüşü (dönen) | 1–80 ms | Giden ağ ayağının aynısıdır. Dolum onayını alana kadar dolum fiyatınızı bilemezsiniz — bu, risk yönetimi ve kapanış tarafı zamanlaması için önemlidir. |
Genel bir VPS’ten standart bir bireysel broker üzerinden yapılan tipik bir bireysel gecikme arbitrajı kurulumu için dört bileşenin toplamı yaklaşık 80–180ms eder — sinyal yakalama oranının %50’nin altına düştüğü tehlike bölgesinin tam ortası. Hızlı bir ECN broker üzerinden ortak konumlu bir kurulum için aynı bileşenlerin toplamı 5–20ms eder — uçurumun epey altında.
Bir gecikme arbitrajı stratejisinin her dürüst geriye dönük testi, yatırımcının bu gecikmeleri yapılandırmasına ve etkisini görmesine imkân vermelidir. SharpTrader Optimizer, emir gerçekleştirme gecikmesini, gerçek geçmiş tik verilerinin üzerine simülasyon sırasında her emre uygulanan tek bir yapılandırılabilir parametre (milisaniye cinsinden) olarak modeller.
Üç şeyin yerinde olması gerekir. Her biri gereklidir; hiçbiri tek başına yeterli değildir.
Standart bireysel geriye dönük test araçları “tik” verilerini bar OHLC değerleri arasında enterpolasyon yaparak doldurur. Ürettikleri sentetik tikler bar yüksek ve düşük değerlerine bar içinde rastgele noktalarda, açılış ile kapanış arasında yumuşak biçimde ulaşır. Gerçek piyasalar böyle hareket etmez — sıçrarlar. Yakalamaya çalıştığınız 1.5 pip’lik gecikme arbitrajı sinyali, enterpolasyonlu tik verisinin yumuşatarak yok ettiği bir sıçramanın ta kendisidir.
Ciddi bir geriye dönük test, broker’ın eşleştirme motorundan (veya Londra kaynaklı kurumsal veriler gibi temiz bir referans akıştan) kaydedilmiş gerçek alış/satış tiklerini yeniden oynatır. Her tikin bir zaman damgası, bir alış ve bir satış fiyatı vardır. Strateji bunları, canlı bir kurulumun göreceği sırayla ve zamanlamayla görür.
Yatırımcı, canlıda görmeyi beklediği gidiş-dönüş emir gerçekleştirme süresini T (milisaniye cinsinden) yapılandırır. Strateji bir emir ürettiğinde simülatör saati istek ayağı kadar ilerletir — genellikle T/2, çünkü dolum fiyatını yalnızca sinyal ile broker tarafındaki eşleştirme arasındaki süre etkiler (yanıt ayağı stratejiye yalnızca zaten olanı bildirir). T = 80ms ise simülatör tik akışına sinyalden 40ms sonra bakar ve dolum fiyatı olarak sinyali tetikleyen tiki değil, o tikin alış/satış fiyatını kullanır.
Bu tek değişiklik — sinyal ile dolum arasında saati ilerletmek — gerçekçi gecikmelerde uçurumu yeniden üretir. Ayrıca geriye dönük testi deterministik hâle getirir: aynı tik akışında T = 50ms ile T = 150ms’deki aynı strateji ölçülebilir biçimde farklı sonuçlar verir ve yatırımcı stratejinin tam olarak nerede çalışmayı bıraktığını görebilir.
Her dolumdaki gerçekleşen kayma, tik yürüyüşünün ürettiği değerdir — yatırımcının tahmin etmesi gereken bir sayı değil, simülasyonun bir çıktısıdır. Bazı dolumlar lehte gerçekleşir (pozitif kayma), bazıları daha kötü (negatif) ve büyüklüğü o milisaniyeler boyunca gerçek tik oynaklığını izler. Standart bireysel geriye dönük test araçlarının hepsinde eksik olan gerçekçi dağılım budur.
Gecikme arbitrajı açtığı kadar hızlı kapatır. Çıkış, girişten 200–800ms sonra, yakınsamakta olan bir fiyata doğru gerçekleşir. Simülatör giriş ve çıkışa aynı sabit spread’i uygularsa iki şeyi kaçırır: (1) gecikme penceresinden kaynaklanan giriş kayması ve (2) kapanış tarafındaki gidiş-dönüş sırasında fiyatın geri kaymasından kaynaklanan çıkış kayması. Gerçek bir model, açılış ve kapanışta emir gerçekleştirme süresini bağımsız olarak yapılandırmanıza izin verir — çıkışların genellikle daha yavaş bir yönlendirme yolundan geçtiği gerçek broker davranışını yansıtarak — ve her ayaktaki kaymayı tik akışından otomatik olarak çözer.
Aşağıda, aynı parametrelerle ancak üç farklı emir gerçekleştirme gecikmesi yapılandırmasıyla 30 günlük EUR/USD tik verisi üzerinde geriye dönük test edilmiş bir SharpTrader gecikme arbitrajı stratejisinden temsili bir sonuç yer alıyor. Rakamlar, BJF Feed (Londra / Tokyo / NY) geriye dönük testlerinde gördüklerimizin tipik örnekleridir.
| Metrik | 0ms (kurgusal) | 50ms (yakın VPS) | 150ms (uzak mesafe) |
|---|---|---|---|
| Tetiklenen sinyaller | 2,847 | 2,847 | 2,847 |
| Avantajla doldurulan sinyaller | 2,847 (100%) | 1,983 (70%) | 854 (30%) |
| Ortalama yakalanan pip | 1.42 | 0.98 | 0.21 |
| Girişte gerçekleşen kayma (tik yürüyüşü çıktısı) | 0.0 pip | 0.3 pip | 0.9 pip |
| İşlem başına net kâr/zarar | +0.82 pip | +0.48 pip | −0.31 pip |
| Aylık getiri (1 lot) | +233% | +137% | −88% |
0ms sütunu, standart araçların ürettiği “geriye dönük test fantezisidir”. 50ms sütunu, iyi kurulmuş bir gecikme arbitrajı stratejisinin gerçekte nasıl göründüğünü gösterir. 150ms sütunu ise bireysel yatırımcıların çoğunun genel bir VPS’te strateji başlatıp gidiş-dönüş sürelerinin uçurumun neresine düştüğünü fark etmeden standart bir broker üzerinden işlem yaptıklarında farkında olmadan çalıştırdıkları şeydir.
Aynı strateji, yalnızca hiçbir standart geriye dönük test aracının modellemediği bir sayıya bağlı olarak son derece kârlı, marjinal kârlı veya kesin zararlı olabilir.
Emir gerçekleştirme gecikmesi, bireysel gecikme arbitrajı geriye dönük testlerinde en az modellenen değişkendir, ancak tek değişken değildir. Güvenilir bir geriye dönük test üç şeyi birleştirir ve her biri diğerlerinin etkisini artırır:
Uçurumu ortaya çıkarır. Stratejinin kârlı olması için gerçekte hangi altyapıya ihtiyaç duyduğunu ve avantajınızın hangi noktada ortadan kalktığını gösterir.
Arbitraj fırsatlarının tam da spread genişlediğinde yoğunlaştığı gerçeğini yakalar. Sabit spread’li bir geriye dönük test, o anlarda fiziksel olarak var olamayacak kârları sayar.
Optimizatör, örneklem içi dönemin gürültüsüne uyan bir parametre seti bulduğu için örneklem içinde iyi görünen stratejileri yakalar. Walk-forward olmadan geriye dönük testiniz yalnızca geçmişe dönük bir özgeçmiştir.
Bir gecikme arbitrajı işleminde iki kayma olayı vardır — açılış ve kapanış. Çoğu geriye dönük test birini (veya hiçbirini) modeller ve iyimserliği ikiye katlar.
Dördü de yerinde olduğunda geriye dönük test bir pazarlama aracı olmaktan çıkar ve bir tahmin aracına dönüşür. Ürettiği rakamlar canlı sonuçlardan %50–200 sapmayı bırakır ve %10–20 içine düşmeye başlar — risk boyutlandırma, sermaye dağılımı ve broker seçimi kararlarının geriye dönük teste dayanarak gerçekten verilebileceği kadar yakın.
Sektördeki genel kural: canlı düşüşün, geriye dönük testteki düşüşün 1.5 ila 2 katı olmasını bekleyin. Standart geriye dönük test araçlarında çalıştırılan gecikme arbitrajı stratejileri için bu oran 5 ila 10 kata yakındır — çünkü geriye dönük test emir gerçekleştirme gecikmesini, değişken spread’i veya her iki ayaktaki kaymayı modellememiştir. Bunlar eklendiğinde 1.5–2x kuralı geçerli olur; eklenmeden önce geriye dönük testin hiçbir öngörü değeri yoktur.
Optimizasyonu en az üç gecikme yapılandırmasında çalıştırın: 10ms (en iyi durum, ortak konumlu), 50ms (yakın VPS) ve 150ms (genel VPS, uzak broker). Strateji yalnızca 10ms’de kârlıysa bir kurulum sorununuz var demektir — işlem yapabilmeden önce bir ortak konumlandırma planına ihtiyacınız vardır. 50ms’de kârlı ama 150ms’de kârlı değilse, VPS seçiminiz ve broker seçiminiz işin tamamı hâline gelir.
Üç katman: (1) işlem sunucunuzdan broker’ınızın emir giriş uç noktasına ping atın — bu size ham ağ gidiş-dönüşünü verir; (2) sakin bir dönemde küçük bir test emri gönderin ve sinyal üretimi ile dolum onayının zaman damgalarını alın — aradaki fark broker eşleştirme gecikmesini içerir; (3) bunu birden fazla seansta tekrarlayın — gecikme broker yüküne, günün saatine ve yönlendirmeye göre değişir. Kurulumunuz için gerçekçi değer, en iyi durumdaki ping değil, çok sayıda ölçümün medyanıdır.
Evet — hem de daha dar pencerelerle. Haber işlemi pencereleri 10–50ms genişliğinde olabilir. Emir gerçekleştirme süresi açığı sorunu aynıdır, yalnızca daha küçük bir pencereye sıkışmıştır. Aynı geriye dönük test altyapısı (gerçek tikler, yapılandırılabilir emir gerçekleştirme gecikmesi, değişken spread) gereklidir ve gecikme toleransı çok daha affetmezdir.
Her iki olgunun da nedeni aynıdır: likidite sağlayıcıların fiyat konusunda belirsizliğe düşüp kotasyonlarını geri çekmesi. Hızlı fiyat akışı sıçradığında, yavaş broker’a likidite sağlayan LP’ler avlanmaktan korunmak için kotasyonlarını kısa süreliğine genişletir. Dolayısıyla farkın açıldığı an, onu yakalamak için gereken spread’in de genişlediği andır. Sabit spread’li bir geriye dönük test bunu görmez ve net avantajı %30–50 oranında olduğundan fazla tahmin eder.
Tier-1 ECN broker’lara karşı kurumsal tarzda gecikme arbitrajı için evet — oyun alanı 5ms altı gidiş-dönüşe kaydı ve bu, çapraz bağlantı veya yakın barındırma gerektirir. Daha yavaş bireysel broker’lara karşı bireysel tarzda gecikme arbitrajı için hayır — 30–80ms’lik gidiş-dönüş süreleri hâlâ avantaj sağlayabilir, çünkü yavaş broker’ın penceresi daha geniştir. Doğru soru “ortak konumlandırma gerekli mi” değil, “gidiş-dönüş sürem, karşısında işlem yaptığım broker’ın penceresine sığıyor mu” sorusudur. Emir gerçekleştirme gecikmesini dikkate alan geriye dönük test tam olarak bu soruyu yanıtlar.
Pozisyonları saatlerce veya günlerce tutan trend takip stratejileri için birkaç yüz milisaniyelik emir gerçekleştirme gecikmesi yuvarlama hatasıdır. Gecikme arbitrajı için ise aynı milisaniyeler sinyalin ta kendisidir. Normal Forex geriye dönük test altyapısı ilk durum için tasarlanmıştır ve ikinci durum için sessizce işe yaramaz sonuçlar üretir. Özel arbitraj geriye dönük test araçlarının ayrı bir kategori olarak var olmasının nedeni budur.
Optimal stratejiyi değiştirirler, analizi değil. Anti-arbitraj eklentileri çalıştıran broker’lar (gecikmeli emir gerçekleştirme, last-look, kârda requote, bekletip doldurma) doğal gecikmenin üzerine fiilen yapay bir emir gerçekleştirme gecikmesi ekler. Yapılandırılabilir emir gerçekleştirme gecikmesine sahip bir geriye dönük test, broker’ın anti-arbitraj davranışını simüle etmenize ve stratejinin o broker’a karşı hâlâ uygulanabilir olup olmadığına — ya da işlem yeri değiştirmeniz gerekip gerekmediğine — karar vermenize olanak tanır.
5–8 parametreli bir gecikme arbitrajı stratejisi için tipik bir ızgara 30.000–100.000 kombinasyondur — taranan boyutlardan biri olarak 3–5 emir gerçekleştirme süresi ayarı dahil. Amaç, tekil “şanslı” sıçramaları değil, stratejinin çok sayıda parametre değerinde kârlı olduğu aralıkları, yani kârlılık kümelerini bulmaktır. Tekil zirveler eğri uydurmadır; kümeler sağlamlıktır. Tipik bir bireysel iş istasyonunda gerçekçi bir referans olarak, 4 çekirdekli bir CPU’da 1 haftalık XAUUSD tik verisi üzerinde 30.000 kombinasyonluk bir ızgara yaklaşık 12 saatte tamamlanır; aynı ızgara 16 çekirdekte yaklaşık 3 saat sürer. SharpTrader Optimizer, çok çekirdekli donanımda çalıştırma başına 100.000+ kombinasyonu işler.
Kurumsal algoritmik işlemlerde yapılan ampirik bir gözlemdir: iyi modellenmiş bir geriye dönük test bile canlı düşüşü kabaca %50–100 oranında olduğundan düşük gösterir, çünkü bazı gerçek dünya sürtünmeleri (broker retleri, hafta sonu boşlukları, rejim değişiklikleri) temiz şekilde modellenemez. Kural, geriye dönük testin halihazırda gerçekçi emir gerçekleştirme gecikmesini, değişken spread’i ve her iki ayakta kaymayı içerdiğini varsayar. Bunlar eksikse çarpan çok daha yüksektir — özellikle gecikme arbitrajı için 5 ila 10 kat.
Kavramsal olarak aynıdır. Kripto borsalar arası arbitrajda emir gerçekleştirme süresi penceresi genellikle 200ms–2s’dir (borsalar birbirinden daha uzak olduğu ve emir defterleri daha derin ama daha yavaş güncellendiği için Forex’ten daha yavaştır). Aynı üç bileşen — tik tekrarı, yapılandırılabilir emir gerçekleştirme gecikmesi, değişken spread — dürüst geriye dönük testler üretir. BJF’nin kripto arbitrajı araçları, borsa API’lerine ve emir defteri derinliğine uyarlanmış aynı mimariyi kullanır.
SharpTrader Optimizer, yapılandırılabilir emir gerçekleştirme süresini, gerçek tik tekrarını, tik başına değişken spread’i ve her iki ayakta tik çözünürlüklü kaymayı modelleyen, bireysel yatırımcıların erişebildiği tek geriye dönük test aracıdır — bir gecikme arbitrajı stratejisinin gerçek mi yoksa kurgusal mı olduğuna karar veren dört değişken. 100.000+ parametre kombinasyonu üzerinde çok çekirdekli ızgara optimizasyonu günler değil, saatler içinde tamamlanır.