Kısmi kapanış ve trailing stop: kırılgan noktalar
İçindekiler (5)
İçindekiler
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ı:
- Kalan lot takibi: EA, "kısmi kapanış yapıldı mı" bilgisini hatırlayamaz
- Lot adımı: Kapatılan miktar, brokerın minimum lotuna veya adım aralığına uymaz
- 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 maddesi | Bozulduğunda belirti | Doğ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 hata | Minimum 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 oluyor | 0,01 lotla deneyin |
| SL dezavantajlı yöne geri dönmüyor mu? | Başabaş SL'sinden sonra zararla kapanma | Logda SL'nin zaman içindeki seyrini izleyin |
| SL değişikliği TP'yi siliyor mu? | Kâr alma çalışmıyor | Değ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 kopuyor | Piyasa 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şir | Hesap 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.
İlgili
2026-10-29
MQL5 OnTick ve OnTimer: EA tasarımında kullanım farkı
2026-11-07
Stop Level ve Freeze Level: SL Neden Konulamaz
2026-11-01
Kapanmış mumla karar veren EA neden repaint yapmaz
2026-10-21
Monte Carlo ile DD'deki 'şans payını' ölçmek
📧 Ü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 ↗