EA Log Tasarımı: Olayları Sonradan Yeniden Üretmek
İçindekiler (6)
- Sonuç: Logu olmayan EA, kaza olduğunda doğrulanamaz
- Neden üç tür log gerekiyor?
- Karar değeri: Sayıyı kaydetmezseniz "tesadüf"ten ayıramazsınız
- Atlama nedeni: En kolay atlanan ama en önemli log
- Gerçekleşme: EA'nın dışında olanı kaydedin
- Bir satıra ne yazılmalı: Yazım örneği
- EA'yı kullananlar için kontrol adımları
- Sınırlar ve dikkat edilecekler
- Özet
İçindekiler
- Sonuç: Logu olmayan EA, kaza olduğunda doğrulanamaz
- Neden üç tür log gerekiyor?
- Karar değeri: Sayıyı kaydetmezseniz "tesadüf"ten ayıramazsınız
- Atlama nedeni: En kolay atlanan ama en önemli log
- Gerçekleşme: EA'nın dışında olanı kaydedin
- Bir satıra ne yazılmalı: Yazım örneği
- EA'yı kullananlar için kontrol adımları
- Sınırlar ve dikkat edilecekler
- Özet
Sonuç: Logu olmayan EA, kaza olduğunda doğrulanamaz
Önce sonucu yazayım. Bir EA'nın logunda en azından "karar için kullanılan değerler", "işleme girilmeme nedeni" ve "emir sonucu" olmak üzere üç kayıt, her biri ayrı bir satır olarak bulunmalıdır. Bu üçü varsa beklenmeyen bir işlemi ya da "hiçbir şey olmadı" durumunu sonradan yeniden üretebilirsiniz. Yoksa, zarar etseniz de işlem sayısı 0'da kalsa da nedenin EA'nın mantığı mı, piyasa mı, yoksa broker tarafı mı olduğunu ayıramazsınız.
Biz de EA geliştiriyoruz; loglar sayesinde kurtulduğumuz anlar da oldu, log yetersiz olduğu için nedeni bulamadan bıraktığımız anlar da. Bu yazıda, EA'yı çalıştıran taraf açısından "iyi log"un ne olduğunu derliyoruz.
Ö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.
Neden üç tür log gerekiyor?
EA'nın tek bir kararı kabaca şu akıştan oluşur: "değerleri hesapla → koşulları değerlendir → emir gönder → emir gerçekleşsin". Beklentiden hangi aşamada saptığınızı sonradan bulmak için her aşamanın kaydı gerekir.
| Log türü | Yazılacak içerik örneği | Cevapladığı soru |
|---|---|---|
| Karar değeri | Kapanmış mumun zamanı, gösterge değeri, eşik, spread | "Neden orada işleme girdi?" |
| Atlama nedeni | Hangi koşuldan dolayı vazgeçildi (saat dışı, spread aşımı, açık pozisyon var vb.) | "Neden işleme girmedi?" |
| Gerçekleşme | İstenen fiyat, gerçekleşen fiyat, slippage, dönüş kodu, bilet numarası | "Hedeflendiği gibi gerçekleşti mi?" |
Karar değeri: Sayıyı kaydetmezseniz "tesadüf"ten ayıramazsınız
Yalnızca "alış sinyali oluştu" yazan log pek işe yaramaz. O andaki gösterge değeri ile eşiğin ne kadar uzak olduğunu bilmezseniz, koşulun sınırda mı yoksa net biçimde mi sağlandığını anlayamazsınız. Ayrıca kararın hangi mumda (kapanmış mumun zamanı) verildiğini de mutlaka kaydedin.
Atlama nedeni: En kolay atlanan ama en önemli log
Çoğu EA yalnızca işleme girdiğinde log yazar. Oysa işletim sırasında en sık gelen soru "hiç işleme girmiyor" sorusudur. Vazgeçme nedeni logda varsa, bunun tasarım gereği bir vazgeçme mi yoksa ayar hatası ya da sunucu saati kaymasından mı kaynaklandığını kontrol edebilirsiniz.
MEGAMAX DONCHIAN'ın Exness demo hesabındaki forward testinde, 11 Kasım 2026 itibarıyla işlem sayısı 0. Vazgeçme nedenini biz de henüz doğrulayamadık ve burada tahmin yürütmeyeceğiz. Ancak böyle durumlarda vazgeçme nedeni logunun olup olmaması, kontrol için harcanacak emeği büyük ölçüde değiştirir. İşlem sayısının 0 olması performansın kötü olduğu anlamına gelmez; ama logu okumadan bunun "normal bir vazgeçme" olduğunu da kesin olarak söyleyemeyiz.
Gerçekleşme: EA'nın dışında olanı kaydedin
Emrin reddedilmesi ya da gerçekleşmesine rağmen slippage'in büyük olması, EA'nın mantığından ayrı bir konudur. Dönüş kodunu ve gerçekleşme fiyatını kaydederseniz, EA kaynaklı sorunla broker ya da bağlantı kaynaklı sorunu ayırabilirsiniz.
Bir satıra ne yazılmalı: Yazım örneği
Biz her kararı tek satırda toplayıp, sonradan kolay aranabilen sabit bir biçim kullanıyoruz.
[EVAL] bar=2026.11.10 14:00 sig=BUY val=1.234 th=1.200 spread=18 -> ENTRY
[SKIP] bar=2026.11.10 15:00 reason=SPREAD spread=45 max=30
[FILL] ticket=123456 req=152.340 fill=152.346 slip=6 ret=10009
Yazarken dikkat edilecek noktalar:
- Başa tür etiketi (EVAL / SKIP / FILL) koyun; grep ya da arama ile kolayca yakalansın
- Mum zamanı olarak "karar için kullanılan kapanmış mumun" zamanını yazın (sunucu saati olduğu varsayımıyla)
- Nedeni cümleyle değil, sabit kodlarla yazın (SPREAD, TIME, POSITION vb.)
- Her tikte değil, yalnızca karar verilen anda yazın
Her tikte log yazarsanız dosya kısa sürede devasa boyuta ulaşır, diski doldurur ve önemli satırlar kaybolur. Temel kural "mum kapandığında bir kez"dir.
EA'yı kullananlar için kontrol adımları
EA'yı kullanıyorsanız, aşağıdaki sırayla bakarak nedene daha çabuk ulaşabilirsiniz.
- MT5'in "Experts" sekmesinde EA'nın kendi logunu yazıp yazmadığını kontrol edin
- Beklenmeyen işlemin gerçekleştiği saatteki EVAL satırını bulun ve karar değeri ile eşiğe bakın
- İşlem olmayan dönemde SKIP satırlarına bakın ve hangi nedenin daha sık geçtiğini sayın
- FILL satırında istenen fiyat ile gerçekleşen fiyat arasındaki farkı ve dönüş kodunu kontrol edin
- "Journal" sekmesi (broker tarafının kaydı) ile saatleri karşılaştırın
Ayarlarınızı gözden geçirmek için EA kurulum rehberi, kesintisiz çalışma ortamı için VPS bilgileri sayfalarına da göz atabilirsiniz.
Sınırlar ve dikkat edilecekler
Log her derde deva değildir. Dürüstçe yazıyorum.
- Loga yazılmayan şey bilinemez. Geliştiricinin öngörmediği olaylar zaten kaydedilmez.
- Logun doğru olduğu garanti değildir. Logu yazan kodun kendisinde hata varsa yanlış değerler kaydedilir.
- Piyasa kararının iyi ya da kötü olduğu anlaşılmaz. Logla anlaşılan şey "tasarıma uygun çalışıp çalışmadığı"dır; o tasarımın kazandırıp kazandırmayacağı değil.
- Fazla log da kazaya davetiye çıkarır. Çok sayıda log yer kaplar, okuyan kişinin de gözünden kaçırmasını kolaylaştırır.
- Backtest ile demo ve canlı hesapta logun anlamı farklıdır. Strateji testerında slippage ve ret durumları gerçektekiyle aynı biçimde yeniden üretilmediği için, gerçekleşme loglarını karşılaştırırken ortam farkını göz önünde bulundurun.
Özet
- Loga "karar değeri", "atlama nedeni" ve "gerçekleşme" olmak üzere üç türü birer satır olarak yazın
- En kolay atlanan, ama "çalışmıyor" nedenini araştırırken en çok işe yarayan, vazgeçme nedeni logudur
- Etiket ve neden kodlarını önceden belirlerseniz, sonradan arayıp sayabilirsiniz
- Çıktıyı her kapanmış mumda bir kez verin, her tikte vermeyin
- Logla anlaşılan şey "tasarıma uygun çalışıp çalışmadığı"dır; kazanıp kazanmayacağı ayrı bir doğrulama gerektirir
Diğer MT5 işletim bilgilerini EA ve MT5 bilgi birikimi sayfamızda topladık.
İlgili
2026-11-14
EA'dan MT5 Push Bildirimi: Ayar ve Bildirim Tasarımı
2026-11-06
MT5 emir reddi retcode'ları ve inceleme sırası
2026-11-02
MT5 emir ve pozisyon: Netting hesabı hatalarını önle
2026-11-13
İşlem geçmişini CSV'de tutup tabloyla kendiniz doğrulayın
📧 Ü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 ↗