Ana Sayfa > Blog > Kısmi kapanış ve trailing stop: kırılgan noktalar

MQL5EA geliştirme

Kısmi kapanış ve trailing stop: kırılgan noktalar

Yayınlandı: 2026-11-11Okuma süresi: yaklaşık 2 dk
⏱ Bu makale, yayın tarihi itibarıyla geçerli bilgileri yansıtır. EA performans rakamları (PF, DD, yıllık getiri) canlı işlem ve yeniden doğrulamayla değişir — en güncel değerler için EA sayfalarına bakın. En güncel EA sonuçlarını gör →
İçindekiler (5)
  1. Sonuç: Bozulan şey mantık değil, "durumun aktarılması"
  2. Birlikte kullanınca neden bozulur?
  3. Kalan miktar için EA'nın "hafızasına" güvenilemez
  4. Lot "yuvarlanmaz", "aşağı kesilir"
  5. SL yazımı en sonda, tek bir yerde yapılmalı
  6. Uygulama ve doğrulama kontrol listesi
  7. Sınırlar ve dikkat edilecekler
  8. Özet

Sonuç: Bozulan şey mantık değil, "durumun aktarılması"

Kısmi kapanış ve trailing stop, tek başlarına zor işlemler değildir. Sorunlar, ikisi aynı pozisyona uygulandığında ortaya çıkar. Kendi geliştirme deneyimimizde de sorunlar neredeyse tamamen şu 3 noktada toplandı:

  1. Kalan lot takibi: EA, "kısmi kapanış yapıldı mı" bilgisini hatırlayamaz
  2. Lot adımı: Kapatılan miktar, brokerın minimum lotuna veya adım aralığına uymaz
  3. SL'nin yeniden ayarlanma sırası: Kısmi kapanış, başabaş noktasına çekme ve trailing birbirinin üzerine yazar

Üçü de backtest'te kolay kolay görünmez; çoğu zaman ancak canlı kullanımda fark edilen türden hatalardır.

Ö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.

Birlikte kullanınca neden bozulur?

Kalan miktar için EA'nın "hafızasına" güvenilemez

MT5'te kısmi kapanış yapıldığında pozisyonun bileti (ticket) değişmez, yalnızca POSITION_VOLUME azalır. "Kısmi kapanış yapıldı" bilgisini sadece bir bool değişkende tutarsanız, EA'nın yeniden başlatılması, VPS'in yeniden bağlanması veya zaman diliminin değiştirilmesi değeri siler. Ardından gelen ilk tick'te kalan pozisyonun bir kez daha yarıya kapatılması, tipik bir kazadır.

Önlem olarak biz, HistorySelectByPosition() ile o pozisyonun işlem geçmişini izliyor ve ilk açılış hacmi ile şimdiki kalan miktarı karşılaştırarak kısmi kapanışın hangi aşamada olduğuna karar veriyoruz. Bellekteki bayrak yalnızca yardımcı olarak kalıyor.

Lot "yuvarlanmaz", "aşağı kesilir"

0,03 lotun yarısı 0,015'tir. Adım aralığı 0,01 olan bir hesapta yuvarlarsanız 0,02 kapatılır ve beklenenden fazlası elden çıkar. Kapatılacak miktarı SYMBOL_VOLUME_STEP'e göre aşağı kesmeli, ayrıca kapanıştan sonra kalan miktarın SYMBOL_VOLUME_MIN değerine eşit veya üstünde olup olmadığını da kontrol etmelisiniz. 0,01 lot zaten bölünemez; bu durumda "kısmi kapanış yapma" mı yoksa "tamamını kapat" mı denileceğini şartname olarak belirlemezseniz EA hata almaya devam eder.

SL yazımı en sonda, tek bir yerde yapılmalı

PositionModify(), SL ve TP'yi aynı anda belirten bir fonksiyondur. Trailing işlemi TP olarak 0 geçerse TP silinir. Ayrıca kısmi kapanıştan sonra SL'yi başabaşa çeken işlem ile trailing'in SL'yi yukarı çeken işlem aynı tick'te ayrı ayrı çalışırsa, sonradan yazan kazanır. Sonuçta bir kez başabaşa çıkarılmış SL'nin geri düşmesi mümkündür.

Bizim uyguladığımız sıra şöyledir:

  • Kısmi kapanış emri gönderilir → pozisyon yeniden seçilip kalan miktar doğrulanır
  • Başabaş SL'si ve trailing SL'si için iki aday da hesaplanır
  • SL yalnızca "mevcut SL'den daha avantajlı yöne" taşınır (alışta yüksek olan, satışta düşük olan)
  • Stop seviyesi ve freeze seviyesi kontrol edilir, ardından TP mevcut değeriyle yeniden verilerek değişiklik tek seferde yapılır

Uygulama ve doğrulama kontrol listesi

Kontrol maddesiBozulduğunda belirtiDoğrulama yöntemi
Kısmi kapanış aşaması işlem geçmişinden mi belirleniyor?Yeniden başlatma sonrası çifte kısmi kapanışEA çalışırken yeniden grafiğe ekleyip kalan miktarın değişimine bakın
Kapatılacak miktar adım aralığına göre aşağı mı kesiliyor?Beklenenden fazla kapanış veya hataMinimum lotla pozisyon açıp logu inceleyin
Minimum lotta bölme nasıl ele alınıyor, belirlendi mi?Her tick'te kapanış denemesi başarısız oluyor0,01 lotla deneyin
SL dezavantajlı yöne geri dönmüyor mu?Başabaş SL'sinden sonra zararla kapanmaLogda SL'nin zaman içindeki seyrini izleyin
SL değişikliği TP'yi siliyor mu?Kâr alma çalışmıyorDeğişiklikten sonra pozisyonun TP alanına bakın
Kısmi kapanış başarısız olursa SL oynatılmıyor mu?Kalan miktar ile SL varsayımları birbirinden kopuyorPiyasa kapanmadan hemen önce emir vererek başarısızlığı tetikleyin
Netting hesapta mı çalıştırılıyor?Başka EA'ların pozisyonlarıyla birleşirHesap türünü kontrol edin

Kullanıcı olarak en hızlı kontrol, demo hesapta minimum lotla çalıştırmak ve EA'yı işlemin ortasında yeniden ekleyip davranışın değişmediğini görmektir. Temel ayarlar EA kurulum rehberi sayfasında özetlenmiştir.

Sınırlar ve dikkat edilecekler

Strateji testçisinde emirler anında gerçekleşir ve bir emrin yalnızca bir kısmının dolması neredeyse hiç yaşanmaz. Bu yüzden kısmi kapanışla ilgili hatalar backtest rakamlarında neredeyse hiç görünmez. Canlı hesaptaki doldurma yöntemi (filling mode) farkları ve requote durumundaki davranış, dürüst olmak gerekirse, broker bazında tek tek sınanmak zorundadır.

Kısmi kapanış eklemek performansı iyileştirir diye bir kural da yoktur. Kazanma oranı düşük olup toplam sonucu az sayıdaki büyük kârın taşıdığı trend takipçi tipte stratejilerde (örneğin DONCHIAN ENGINE'in backtest kazanma oranı %34,5'tir) kâr büyüyen aşamada pozisyon küçültülür ve beklenen değer düşebilir. Kâr-zarar dalgalanması küçülür; ancak karşılığında neyin kaybedildiği her EA için ayrıca test edilmeden bilinemez. Biz de tüm kombinasyonları doğrulamış değiliz.

DONCHIAN ENGINE gibi bir stratejiye sonradan kendiniz kısmi kapanış eklerken, orijinal doğrulama sonuçlarının olduğu gibi geçerli kalmayacağına dikkat edin.

Özet

  • Kısmi kapanış ile trailing birlikte kullanıldığında kırılgan olan şey mantık değil, "durumun aktarılması"dır
  • Kısmi kapanış aşaması bellekteki bayrağa değil, işlem geçmişine ve kalan miktara bakılarak belirlenmelidir
  • Lot adım aralığına göre aşağı kesilmeli, kalan miktarın minimum lotun altına düşmediği kontrol edilmelidir
  • SL değişikliği tek bir yerde toplanmalı, yalnızca avantajlı yöne taşınmalı ve TP silinmemelidir
  • Backtest'te zor görüldüğü için demo hesapta yeniden ekleme testi yapılmalıdır
  • Kısmi kapanış, kâr-zarar dalgalanmasını küçültürken beklenen değeri de düşürebilir

Diğer uygulama notlarını EA ve MT5 bilgi birikimi sayfasında da derledik.

📧 Ü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 ↗

Yorumlar ve sorular