Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram üzerinde bulun!
Fan sayfamıza katılın
Kodu ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Kodu beğendiniz mi? MetaTrader 5 terminalinde deneyin
Kütüphaneler

News Filter for the Strategy Tester (DST-corrected calendar export) - MetaTrader 5 için kütüphane

Cristian Ciunae
Cristian Ciunae
Trader for 8 years & MQL5 Developer. Specializing in Prop Firm Risk Management.
My Core Focus: I build MQL5 tools and Expert Advisors designed for the realities of live trading: strict drawdown limits, hidden swap/commission costs, and news slippage.
What I Do:
| Turkish English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
Görüntülemeler:
10
Derecelendirme:
(3)
Yayınlandı:
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
SORUN

Çoğu haber filtresi, MQL5 ekonomik takvimini (CalendarValueHistory) okur. Bu takvim Strateji Testçisi'nde bulunmadığından, söz konusu filtreler geriye dönük testlerde hiçbir işlem yapmaz: EA, NFP, CPI veya faiz kararları sırasında doğrudan işlem yapar ve geriye dönük test, canlı piyasadaki davranışla artık uyuşmaz. Yaptığım testlerden birinde, XAUUSD üzerindeki bir bekleyen emir, ABD CPI verisinin açıklanmasından 5 dakika önce gerçekleştirildi ve stop loss, 45 USD'lik kayma ile uygulandı; tek bir işlemde planlanan riskin 6,5 katı kayıp yaşandı.

İkinci ve daha az bilinen bir sorun: terminal, geçmiş takvim saatlerini MEVCUT sunucu zaman farkına göre dönüştürür. Yaz aylarında GMT+2 / GMT+3 brokerında veri dışa aktarıldığında, her kış etkinliği bir saat gecikmeli olarak görünür (NFP, sunucu saatine göre 15:30 yerine 16:30'da). Bu saatlere dayalı bir filtre, yılın yarısı boyunca yanlış saati engelliyor.

ÇÖZÜM - ÜÇ DOSYA

NewsCalendarExport.mq5 (komut dosyası) - olayları Terminal\Common\Files\NewsCalendar.csv dosyasına aktarır ve her olayı kendi tarihine ait sunucu zaman farkı ile yeniden hesaplar. Sonunda bir öz denetim çıktısı verir: USD olaylarının en sık görüldüğü saat, kışın ve yazın aynı olmalıdır.

NewsFilter.mqh (CNewsFilter sınıfı) - hem canlı işlemler hem de geriye dönük testler için tek bir filtre. Canlı işlemde ekonomik takvimi okur (dakikada en fazla bir kez sorgulanır); Strateji Testçisi'nde ise CSV dosyasını okur. Yalnızca sembolün para birimleri kullanılır (EURUSD: EUR + USD, XAUUSD: USD, USD cinsinden fiyatlandırılan endeks CFD'leri: USD).

NewsFilter_Example.mq5 - bir haber penceresinin ne zaman başladığını ve bittiğini gösteren ve engellenen pencereleri grafikte işaretleyen basit bir EA'dır; böylece test cihazının görsel modunda filtrenin nasıl çalıştığını görebilirsiniz.

KULLANIM

NewsFilter.mqh dosyasını MQL5\Include klasörüne, NewsCalendarExport.mq5 dosyasını MQL5\Scripts klasörüne ve NewsFilter_Example.mq5 dosyasını MQL5\Experts klasörüne kopyalayın. Komut dosyasını ve örneği derleyin (.mqh dosyası da bunlarla birlikte derlenir).

Bağlı bir terminalin herhangi bir grafiğinde NewsCalendarExport'u bir kez çalıştırın. Experts sekmesinde şunu görmelisiniz: "OK: kış ve yaz aylarında aynı saat".

EA'nıza aşağıdaki kodu ekleyin:

C++
#include <NewsFilter.mqh>
CNewsFilter news;

int OnInit()
{
news.Init(_Symbol, 30, 30); // her olaydan önce ve sonra 30 dakikalık aralığı engeller
return(INIT_SUCCEEDED);
}

void OnTick()
{
if(news.IsBlocked())
return; // haber sırasında yeni giriş yok
// ... giriş mantığınız ...
}
Her zamanki gibi geriye dönük test yapın. Günlük, sembol için kaç olayın yüklendiğini gösterir.

SCRIPT GİRİŞLERİ

Olayları şuradan dışa aktar: dışa aktarımın başlangıç tarihi.

Ayrıca N gün sonrasına kadar planlanmış olayları da dışa aktarın: yaklaşan olayları içerir.

Para birimleri: virgülle ayrılmış liste (varsayılan USD, EUR, GBP, JPY, CAD, AUD, NZD, CHF).

Önem: sadece yüksek etki veya orta + yüksek etki.

Broker sunucusu DST kuralı: ABD kuralı (varsayılan, sunucu = New York + 7 saat, çoğu GMT+2/+3 broker), AB kuralı veya DST yok.

Dosya adı: Terminal\Common\Files klasöründe saklanır.

CNewsFilter::Init(symbol, minutesBefore, minutesAfter, mediumToo = false, csvFile = "NewsCalendar.csv")

NOTLAR VE SINIRLAMALAR

FTMO (GMT+2 / GMT+3, ABD DST kuralı) ve IC Markets AB'de test edilmiştir. Örnek çıktı: 5645 olay dışa aktarıldı, bunların 1897'si bir saat kaydırıldı; düzeltme öncesinde en sık görülen USD saati kışın 16:30, yazın 15:30 iken, düzeltme sonrasında her iki mevsimde de 15:30 oldu.

Kendi kendine kontrol hala farklı kış ve yaz saatleri gösteriyorsa, başka bir "Broker sunucusu DST kuralı" deneyin.

MQL5 takvim geçmişi sınırlıdır ve terminale bağlıdır; benim terminalimde 2020'den itibaren başlar, bu nedenle daha eski geriye dönük testlerde herhangi bir olay bulunmayacaktır.

Yalnızca sembolün para birimleri kullanılır; bu nedenle endeksler ve emtialar için hangi olayların geçerli olacağına kotasyon para birimi karar verir.

Uzak ve bulut ajanları Common\Files klasörünü okuyamaz; yerel ajanlarla optimize edin.

Bazı para birimlerinin MQL5 takviminde çok az sayıda yüksek etkili olayı vardır (örneğin AUD). Bunlar için "Orta + yüksek etki" seçeneğini kullanın.

Filtre, EA'nıza yalnızca NE ZAMAN yeni işlemler açmamasını gerektiğini bildirir. Halihazırda açık olan pozisyonların yönetimi EA'nıza bağlıdır.

Yeni olayları dahil etmek için komut dosyasını zaman zaman yeniden çalıştırın.

BUNU ENTEGRE ETMEK İÇİN YARDIMA MI İHTİYACINIZ VAR?

Eğer bir yazılımcı değilseniz ve bu haber filtresini mevcut EA'nıza entegre etmek istiyorsanız veya prop firm değerlendirmelerinize özel olarak uyarlanmış risk yönetimi kurallarına ihtiyacınız varsa, MQL5 Freelance profilim üzerinden doğrudan benimle iletişime geçin. Sizin için bunu kodlamaktan memnuniyet duyarım!

Sürüm 1.00 - ilk sürüm (örnek EA 1.01: grafikte engellenen haber pencerelerini gösterir). Filtre tarafından engellenen pencereler, Strateji Test Aracı’nın görsel modunda gösterilir Komut dosyası otomatik kontrolü: Yaz saati uygulaması düzeltmesinden sonra kışın ve yazın aynı ABD doları olay saati Strateji Test Aracı günlüğü: haber pencerelerinin açılması ve kapanması

MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/77617

Risk Lot Panel Risk Lot Panel

On-chart panel that turns a risk setting into a lot size and shows what the broker's volume step and minimum lot do to that risk. Display only - it never places, modifies or closes an order.

BacktestOverfitting: probability of backtest overfitting (PBO) of an optimization BacktestOverfitting: probability of backtest overfitting (PBO) of an optimization

Probability of Backtest Overfitting (PBO) of an MT5 optimization by combinatorially symmetric cross-validation. Every pass sends its daily results as a frame, and the PBO is computed when the optimization ends.

Safe Risk Manager EA - Daily Loss, Break-Even and Trailing Stop Safe Risk Manager EA - Daily Loss, Break-Even and Trailing Stop

Risk ölçümü, spread koruması, kalıcı günlük zarar kilidi, başabaş noktası ve takip eden stop emirleri içeren eğitim amaçlı MT5 hedging hesabı işlem paneli.

ICT Model Tracker - Sweep, MSS and FVG Setups with Honest Statistics ICT Model Tracker - Sweep, MSS and FVG Setups with Honest Statistics

Detects the ICT model on closed bars (killzone liquidity sweep, MSS with displacement or inverted FVG, retrace entry with SL and TP) and follows every setup to its result with worst-case statistics. It never trades and never repaints; EA-ready buffers.