Stop Level ve Freeze Level: SL Neden Konulamaz
İçindekiler
SL'nin konulamaması her zaman EA hatası değildir
Sonucu baştan yazayım. SL'nin konulamamasının ya da taşınamamasının nedeni çoğu zaman EA'nın mantığı değil, sembol spesifikasyonunda belirlenmiş "asgari mesafe"dir. MT5'te iki kavram vardır: SL/TP'yi güncel fiyattan en az ne kadar uzağa koymanız gerektiğini belirleyen "Stop Level" ve fiyat SL/TP'ye ya da bekleyen emre yaklaştığında değişikliği yasaklayan "Freeze Level".
İşin zor yanı, bu mesafenin her zaman aynı kalmamasıdır. Normalde sorunsuz kabul edilen bir SL mesafesi, yalnızca veri açıklamasının hemen ardından reddedilebilir. Biz EA geliştirirken bu mesafeyi emir göndermeden önce mutlaka kontrol ediyoruz. Bu yazıda mekanizmayı, kontrol adımlarını ve EA tarafındaki önlemlerin sınırlarını özetliyoruz.
Önerilen Broker Karşılaştırma →
🎁 Ücretsiz EA İndir📧 Ücretsiz e-posta kursu (8 e-posta) + abonelere özel 13 MT5 göstergesi paketi
* Gizlilik kesinlikle korunur. İstediğiniz zaman abonelikten çıkabilirsiniz.
Mekanizma: iki "asgari mesafe"
Stop Level
Stop Level (SYMBOL_TRADE_STOPS_LEVEL), güncel fiyatla SL/TP arasındaki asgari mesafeyi point cinsinden ifade eder. Alış pozisyonunda kapanış referansı olan Bid'den, satış pozisyonunda ise Ask'ten ölçülür. Bu mesafeden daha yakın bir SL koymaya çalışırsanız emir sunucu tarafından reddedilir ve MT5 dönüş kodu "Invalid stops" (10016) olur.
Freeze Level
Freeze Level (SYMBOL_TRADE_FREEZE_LEVEL), fiyat SL/TP'ye ya da bekleyen emrin fiyatına yaklaştığında o emrin değiştirilemediği veya silinemediği mesafedir. Trailing stop kullanan bir EA'nın kapanıştan hemen önce SL'yi oynatmaya çalışıp reddedilmesinin nedeni çoğunlukla budur. Dönüş kodu "Frozen" (10029) olur.
| Başlık | Anlamı | Etkilenen işlemler | Başlıca ret kodu |
|---|---|---|---|
| Stop Level | Güncel fiyattan SL/TP'ye asgari mesafe | Yeni emirde SL/TP belirleme, SL değişikliği | Invalid stops (10016) |
| Freeze Level | Fiyat SL/TP'ye veya bekleyen emre yaklaşınca değişikliği yasaklayan mesafe | SL/TP değişikliği, bekleyen emri değiştirme/iptal etme | Frozen (10029) |
"0", sınırsız anlamına gelmez
Sembol spesifikasyonunda Stop Level 0 görünse bile, istediğiniz kadar yakına koyabileceğiniz anlamına gelmez. 0 olduğunda bazı brokerların sunucu tarafında farklı bir kural (örneğin spread'e dayalı bir mesafe) kullandığı anlaşılıyor. Her brokerın uygulamasını tek tek doğrulayabilmiş değiliz; bu yüzden "0 = en az spread kadar uzak" diyerek temkinli davranıyoruz.
Veri açıklamalarında mesafe genişler
Stop Level ve Freeze Level sabit değerler değildir; broker kararıyla değişebilir. Önemli verilerin öncesinde ve sonrasında, haftanın ilk işlem anlarında, rollover saatlerinde bunları geçici olarak genişleten brokerlar vardır. Spread de aynı saatlerde açıldığı için Ask'ten ölçülen satış SL'si, gerçek fiyat hareketinden daha uzağa konmak zorunda kalır.
Yani normal sembol spesifikasyonuna bakıp "bu mesafe yeter" demiş olsanız bile, en kritik anda emir kabul edilmeyebilir. SL olmadan yalnızca girişin geçebildiği bir EA tasarımında, korumasız bir pozisyon kalma riski de vardır.
Kontrol adımları ve kontrol listesi
Kullandığınız hesapta şu maddeleri kontrol edin.
- Sembol spesifikasyonunu açın: Market Watch'ta sembole sağ tıklayıp "Specification" seçin. "Stop Level" ve "Freeze Level" değerlerini not edin (birim point).
- Point'i fiyata çevirin: XAUUSD ile USDJPY'de bir point'in fiyat karşılığı farklıdır. Basamak sayısını doğrulayıp fiyat farkına çevirin.
- EA'nın SL mesafesiyle karşılaştırın: EA ayarlarında veya mantığında kullanılan SL mesafesinin, Stop Level'a spread eklenmiş mesafeden yeterince büyük olup olmadığına bakın.
- Veri açıklamasının öncesinde ve sonrasında tekrar bakın: Aynı ekranı açıklamadan hemen önce de açıp değerin değişip değişmediğini görün. Brokerın değiştirip değiştirmediği, gerçekten bakmadan bilinemez.
- Logları kontrol edin: "Journal" ve "Experts" sekmelerinde "Invalid stops" veya "Frozen" çıkıp çıkmadığına bakın. Emir reddedildiğinde sorunu ayırt etme yöntemini EA ve MT5 bilgi birikimi bölümünde de derledik.
EA'nın kurulum yöntemi için EA kurulum rehberi, brokerlar arasındaki işlem koşulu farkları için Forex broker karşılaştırması sayfasına bakabilirsiniz.
EA tarafında asgari mesafe kontrolü
Bizim EA'larımız emir göndermeden hemen önce şu sırayla kontrol yapar:
- O anki Stop Level, Freeze Level ve spread değerleri her seferinde alınır (başlangıçta bir kez alınan değer kullanılmaz)
- Asgari mesafe, "Stop Level ile Freeze Level'ın büyük olanı"na spread ve küçük bir pay eklenerek bulunur
- SL bu mesafeden daha yakınsa, SL'yi kendiliğinden genişletmek yerine girişten vazgeçilir
SL'yi otomatik genişleten bir tasarım seçmememizin nedeni, SL genişleyince işlem başına zararın tasarlanandan büyük olmasıdır. Lot, SL mesafesinden geriye doğru hesaplanıyorsa yalnızca SL'yi genişletmek risk yüzdesini bozar. Vazgeçmek fırsatları azaltır, ama öngörülmemiş bir riski almaktan iyidir; biz böyle değerlendiriyoruz.
Sınırlar ve dikkat edilecekler
Bu kontrol her sorunu önlemez.
- Backtest'te yeniden üretmek zordur: Bizim anlayışımıza göre MT5 Strategy Tester, sembol spesifikasyonunun güncel ayarını kullanır; geçmişteki veri açıklamalarında mesafenin genişlemesini yansıtmaz. SL'si kısa olan EA'larda test sonucu ile gerçek sonuç arasındaki fark büyüyebilir. Örneğin GOLD TRIPWIRE, backtest'te ortalama pozisyon tutma süresi 0:21:12 olan kısa vadeli bir tür olduğundan, bu tür farklardan daha kolay etkilenen gruptan olduğunu düşünüyoruz.
- Vazgeçilen işlemler performansı değiştirir: Kontrol nedeniyle atladığımız işlemlerin arasında normalde kazançlı olacaklar da vardır. Kontrol eklendiğinde işlemler backtest'tekinden farklı olur.
- Emir anında da değişebilir: Kontrolden geçtikten sonra sunucuya ulaşana kadar koşullar değişebilir; retleri tamamen sıfırlamak mümkün değildir.
- SL'nin kendisi kayabilir: SL'yi koyabilseniz bile piyasa ani hareket ederse SL'den daha kötü bir fiyattan gerçekleşme olabilir. Asgari mesafe kontrolü slippage önlemi değildir.
Özet
- SL'nin konulamamasının nedeni çoğunlukla sembol spesifikasyonundaki Stop Level (asgari mesafe) ve Freeze Level'dır (değişikliğin yasak olduğu mesafe)
- Ret durumunda dönüş kodu "Invalid stops" veya "Frozen" olur
- Stop Level'ın 0 olması "sınırsız" demek olmayabilir. En azından spread kadar uzak durun
- Veri açıklamalarının öncesinde ve sonrasında mesafeyi ya da spread'i genişleten brokerlar vardır; en kritik anda ret gelebilir
- EA tarafında her seferinde o anki değerleri alıp kontrol etmek, yetmiyorsa SL'yi genişletmeden girişten vazgeçmek bizim tasarımımızdır
- Backtest, geçmişteki mesafe değişimlerini yeniden üretmekte zorlanır. SL'si kısa EA'larda gerçek işletimdeki farka dikkat edin
İlgili
2026-11-06
MT5 emir reddi retcode'ları ve inceleme sırası
2026-11-04
MagicNumber tasarımı | Aynı hesapta birden fazla EA
2026-11-02
MT5 emir ve pozisyon: Netting hesabı hatalarını önle
2026-10-29
MQL5 OnTick ve OnTimer: EA tasarımında kullanım farkı
📧 Ücretsiz e-posta kursu (8 e-posta) + abonelere özel 13 MT5 göstergesi paketi
* Gizlilik kesinlikle korunur. İstediğiniz zaman abonelikten çıkabilirsiniz.
EA'lar veya Forex hakkında bir sorunuz mu var?
Sorunuzu Nattzy'nin trading forumunda paylaşabilirsiniz (ücretsiz kayıt). Bu yazının dışındaki sorular da olur — EA ayarları, aracı kurum seçimi ve daha fazlası.
Nattzy'de sor ↗