Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
- Görüntülemeler:
- 36
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
Genel Bakış
CExecutionSafety, Uzman Danışmanları kötü ağ veya yürütme koşulları altında işlem yapmaktan korumak için tasarlanmış hafif bir MQL5 dahil sınıfıdır.
İki gecikme bileşenini canlı terminal ping'i ve gerçek duvar saati yürütme gecikmesini ölçer ve birleşik değerleri yapılandırılabilir bir eşiği aştığında işlem girişimlerini engeller.
Çözdüğü Sorun
Çoğu EA, ağ koşullarından bağımsız olarak körü körüne çalışır. Kritik bir emir sırasında ping veya broker tarafı yürütme gecikmesindeki bir artış, kayma, yeniden talepler veya başarısız doldurmalarla sonuçlanabilir.
CExecutionSafety, koşullar bozulduğunda yürütmeyi engelleyen bir işlem öncesi güvenlik kapısı sunar.
Nasıl Çalışır
Sınıf iki veri kaynağı kullanır:
- TERMINAL_PING_LAST: MetaTerminal tarafından kaydedilen en son pingi okur (milisaniye cinsinden)
- RecordExecDelay(): herhangi bir CTrade işleminin etrafına sardığınız bir duvar saati ölçümünü kabul eder
Bu iki değer toplanır ve yapılandırdığınız eşik değeriyle karşılaştırılır. Birleşik gecikme eşiği aşarsa, CheckExecutionSafety() işlevi false değerini döndürür ve bir tanılama günlüğü girdisi yazdırır.

Bağlantı Kesme Koruması
Terminalin sunucu bağlantısı olmadığında TERMINAL_PING_LAST -1 döndürür. Sınıf bunu algılar ve otomatik olarak false döndürerek bağlantısı kesilmiş bir terminalde işlem denemelerini önler.
Entegrasyon Örneği
Dosyayı dahil edin ve sınıfı EA'nızda örnekleyin:
#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety; int OnInit() { safety.Init(150); // 150ms birleşik eşik return INIT_SUCCEEDED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; ulong t0 = GetTickCount64(); trade.PositionClose(ticket); safety.RecordExecDelay(GetTickCount64() - t0); }
Erişimciler
Aşağıdaki salt okunur erişimciler gösterge tablosu ekranı veya harici mantık için kullanılabilir:
- GetPingMs(): ms cinsinden geçerli terminal pingi
- GetExecDelayMs(): ms cinsinden son kaydedilen yürütme gecikmesi
- GetCombinedMs(): ping + yürütme gecikmesi birleştirilmiş (bağlantı kesilirse 9999 döndürür)
- HasExecSample(): en az bir ölçüm kaydedildikten sonra true
- GetThresholdMs(): yapılandırılmış güvenlik eşiği
Değişiklik Günlüğü
- v1.0 - İlk sürüm
- v1.1 - Guard makrosu yeniden adlandırıldı. I64u biçim belirleyicileri (dize) dökümleri ile değiştirildi
- v1.2 - Init() dönüş türü void → bool olarak değiştirildi. Eski örnekleri önlemek için yeniden başlatmada durum sıfırlanır
MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/70033
Institutional Z-Score Statistical Reversion
A professional quantitative oscillator that replaces traditional retail momentum indicators like the RSI, it calculates the statistical standard deviation of price action to identify mathematically exhausted reversals.
Institutional Unmitigated Order Block Matrix
A dynamic Smart Money utility that identifies institutional Order Blocks backed by volume anomalies and automatically tracks their mitigation state to keep your charts clean and focused on fresh liquidity.
Institutional Cumulative Volume Delta (CVD)
An advanced order flow engine that approximates tick-by-tick aggressor data to calculate the true Cumulative Volume Delta, it exposes institutional absorption and divergence hidden within standard price candles.
ASQ Divergence Detector
ASQ Divergence Detector scans your chart for regular and hidden RSI divergences and marks them with color-coded, non-repaint arrows.