Bu makalede
Bu makaleyi okuduktan sonra…
- Eksik geçmiş ile geçerli giriş yok kararını ayırabilirsiniz.
- Aynı veri ve zamanla kod kararlarını karşılaştırabilirsiniz.
- Belirsiz yanıt sonrası TRY planını sıfırlamadan emir durumunu kontrol edebilirsiniz.
Kavramları makaleden ayrılmadan öğrenin
Basit hareketli ortalama — SMA İşlem planı Backtesting — geçmiş veriyle strateji testi Pozisyonun nominal tutarı Demo hesap İşlem beklentisi — beklenen sonuçİlk algoritmik proje işlem açmadan sinyal kaydedebilir, miktarı hesaplayabilir veya maruziyeti denetleyebilir. Sonucunu açıklayıp doğrulayabildiğiniz tek bir işle başlayın. Emir yetkisi vermeden önce bilgi kümesini, kuralı ve programın davranışını tanımlayın. Otomasyon kârlı strateji oluşturduğunuzu kanıtlamaz; hatalı bir işlemi de tekrar edebilir.
Algoritmik işlem nedir ve ne değildir?
Sinyal seçimi, önceden alınmış kararın uygulanması, pozisyon yönetimi ve raporlamayı ayırın. Mevcut büyük emri parçalayan programla giriş seçen robot aynı amaçta değildir. BIS’in 2020 döviz yürütme algoritmaları çalışması piyasa işleyişi ve riskleri inceler; belirli bireysel robotun kârlılığına kanıt değildir. Orada EA, execution algorithm; MetaTrader’da ise Expert Advisor anlamındadır. Aynı kısaltmayı aynı ürün sanmayın.
Araç, veri kaynağı, çalışma saatleri, karar anı, giriş/çıkış, miktar, maruziyet sınırı ve mevcut pozisyon durumunu yazın. Girdiler ve gözetim üzerindeki insan kararları sürer. Program bir elle işlem hatasını azaltırken yeniden başlama sonrasında ikinci istek üretme hatası ekleyebilir. Yazılımın şartnameyi doğru uygulamasıyla kuralın ekonomik sonucunu ayrı değerlendirin.
Uyarı, EA, Python ve API: göreve uygun aracı seçin
Bildirim için alarm yeterli olabilir. Yerel MT5 Alerts; fiyat, son işlem hacmi veya zaman karşılaştırmaları sunar; herhangi bir hareketli ortalama ve ATR ifadesini yazabildiğiniz serbest editör değildir. Özel mantık gösterge veya EA gerektirebilir. MQL5, MT5 ortamında çalışır; Python veri inceleyebilir veya uygun belgelenmiş bağlantıyı kullanabilir. Alarm → MQL5 → Python → FIX sırası zorunlu eğitim merdiveni değildir.
Hesabı, veri setini ve yapılacak işi esas alın. Her kurumda aynı API erişimi, satır sayısı, geliştirme süresi veya gecikme varsaymayın. MQL5 EA temelleri platform davranışını, Python geriye dönük test rehberi ayrı araştırma ortamını ele alır. Aynı fikri iki dilde yeniden uygulamak isteğe bağlıdır; farklı ortamlardaki benzer kâr, eşdeğer davranış kanıtı sayılmaz.
Üçüncü ortalama girdisi tahmin edilemez
İstenen kayıt sayısı kuralın parçasıdır. Geçerli iki fiyat, üç fiyatın ortalamasını belirleyemez.
Tüm diyagram için yana kaydırın →
Varsayımlar: Tek araç ve aralık için seçilmiş temsili fiyatlar. Bütün kayıtlar tamamlanmış geçmiş mumlardır; x bilinmeyen eski fiyattır, gelecek değildir. Ağırlıklar eşit 1/3; karşılaştırmadan önce yuvarlama yoktur. Hiçbiri piyasa verisi olarak sunulmaz.
Eskiden yeniye tam üç kapanış gerekir: x, 100 ve 102. x = 98 için ortalama 100; x = 106 için 308/3 ≈ 102,667. Son fiyat > ortalama koşulunun sonucu değişir. İki bilinen fiyatın ortalaması 101 başka bir kuraldır; sıfır eklemek hayalî üçüncü girdi üretir.
CopyRates dönüş sayısı eksik veya henüz hazır olmayan kayıtların kontrolünü açıklar. Sonradan veri gelirse aynı amaçlanan mumlara ait olduğunu doğrulayın. Bu örnek indeks yönünü değil, veri tamlığını sınar.
Gerekli beceriler ve dil seçimi
Programlama, veri işleme, miktar hesabı ve istatistiksel düşünme birlikte gerekir. Kısa özkaynak eğrisi o örneklem hakkında bilgi verir; gelecekteki kârlılığı ispatlamaz. Temsil kabiliyeti olan veriler, geliştirme dışı değerlendirme ve demo yürütme kontrolü planlayın. MQL5 terminal üzerinden bağlanır; Python o terminali veya başka belgelenmiş arayüzleri kullanabilir. Uçtan uca süre; kod, sunucu, ağ ve kurumun yürütmesine bağlıdır. Tek haneli milisaniye garantisi vermeyin.
Bir parametreyi sözdizimi hatası olmadan değiştirmek, para birimi veya emir durumunu doğru işlediğinizi göstermez. Veri yokluğu, hata dönüşü, gün değişimi ve açık pozisyon gibi dalları küçük testlerle açıklayın. Bu teknik rehber bir aracı kurumun Türkiye’de hizmet yetkisini belirlemez. Türkçe arayüz, belirli ülke mevzuatına tabi olmanın ölçütü değildir; ikamet ve hizmetin hukuki kapsamını ayrıca kontrol edin.
Fikirden geriye dönük teste: örnek şartname
Varsayımsal EUR/USD H1 kesişimi için EMA, SMA ve ATR hesabını; karar zamanını, stopu ve hedefi kesinleştirin. Elle ve otomatik kararları önce aynı veriler ve tarihlerde karşılaştırın. Beş yıllık otomatik sonuç altı aylık elle örnekle aynı olmak zorunda değildir: dönemler ve veri akışları farklıdır. Aynı dönemin farklarını uzlaştırıp maliyetleri ekleyin; sonra dondurulmuş kuralı ayrı veride değerlendirin.
Çevrimdışı şartname EMA 21, SMA 55 ve alıştırma için seçilmiş ATR mesafesini kullanabilir. Tamamlanmış H1 mumlarının kullanılıp kullanılmadığını ve değerlendirme anını belirtin. Önce emir yerine sinyal kaydedin. Bir sinyal, sinyal yokluğu, mum değişimi, eksik geçmiş ve mevcut pozisyonu sınayın. Eksik girdi geçerli “giriş yok” kararı değildir.
Ayrı kaynak miktar örneğinde özkaynak 10.000 USD, seçilmiş ilk fiyat kaybı bütçesi %0,5, stop mesafesi 25 pip ve EUR/USD pip büyüklüğü 0,0001’dir. Standart lot 100.000 EUR olunca pip değeri lot başına 10 USD olur. Bütçe 50 USD; maliyetsiz miktar 50 ÷ (25 × 10) = 0,20 lot, yani 20.000 EUR nominal tutardır. Bu seçilmiş ayarlar risk önerisi değildir; nominal, teminat ve planlanan ilk kayıp farklı niceliklerdir.
Komisyon ve yürütme varsayımlarını miktar adımına yuvarlamadan önce hesaba katın. Olağan stop, boşlukta farklı fiyattan gerçekleşebilir; 50 USD koşulsuz azami kayıp değildir. Yalnızca son kârı değil, aynı kurallarla üretilmiş tek tek kararları karşılaştırın. Parametre seçimi ile değerlendirmeyi ayırın; seçimi yaptığınız veride iyi sonuç, kalıcı üstünlük yerine seçim yanlılığı olabilir.
Doğru fiyatları farklı anlardan birleştirmek yanlış spread üretir. Temsili t1 Bid/Ask 1,1000/1,1002; t2 ise 1,1010/1,1012 olsun. Pip 0,0001 iken ikisinde de spread 2 pip. t1 Ask ile t2 Bid karışırsa (1,1002 − 1,1010) ÷ 0,0001 = −8 pip çıkar. Spread < 2,5 filtresi bu yapay değeri kabul eder. Bu, piyasada gözlenmiş negatif spread değildir.
SymbolInfoTick, MqlTick yapısında fiyatları ve son güncelleme zamanını döndürür. Başarı sonucunu kontrol edip saklanan tek yapının alanlarını kullanın. Ayrı zamanların geçerli okumalarını kasten karıştıran hata testi ekleyin. Tutarlı fiyat görüntüsü veri kontrolüdür; likidite ve sonraki gerçekleşme garantisi değildir.
Başarısızlık yolları: kodu, veriyi ve ekonomik sonucu ayrı sınayın
Yanlış kural, kod, eksik veri, yürütme farkı veya çalışma kesintisi projeyi bozabilir. İki nedenli evrensel sıralama yapıp programlama hatalarını önemsiz saymayın. Emir yanıtı belirsizse tekrar göndermeden gerçek emirleri, gerçekleşmeleri ve pozisyonları inceleyin. OrderSend’in true dönmesi tamamlanmış gerçekleşmeyi kanıtlamaz; sonuç kodları ve işlem olayları izlenir. Kural sürümünü, bilgi zamanını ve eylem/eylemsizlik nedenini kaydedin.
Geriye dönük test ilgili ürünün verisini, maliyetlerini ve zaman sırasını ister. Bütün denenen varyantları kaydedin. Ayrı değerlendirme sonucunu gördükten sonra kural değiştirirseniz o dönemi geliştirmede kullanmış olursunuz. Başarısız raporları ve değişiklik nedenlerini saklayın. Başarı oranı, beklenti değeri ve kâr faktörü başka soruları yanıtlar: seçilmiş 100 işlemde 40 × +2R ve 60 × −1R, maliyet öncesi ortalama (80 − 60)/100 = +0,2R ve kâr faktörü 80/60 ≈ 1,33 verir. Bu hesap, test edilmiş strateji veya sonraki örneklem iddiası değildir.
TRY modeli: yanıt yoksa miktarı iki kez açmayın
Ayrı varsayımsal tasarımda tek niyet 1.000 EUR alış, giriş için seçilmiş 40,00 TRY/EUR, stop isteği 39,96 ve 1.000 EUR başına toplam 4 TRY ek maliyettir. Seçilmiş bütçe 60 TRY. İlk niyetin mesafe ve maliyet toplamı 44 TRY olur. Sunucu yanıtı kaybolduğunda yerel kayıtta gerçekleşme görünmemesi, sunucuda emrin bulunmadığını kanıtlamaz.
Tekrar göndermeden önce aynı işlem niyetinin sunucudaki emir ve gerçekleşmelerle bağını uzlaştırın; yanıt yokluğu emir yokluğu değildir.
Küçük ekranda şemayı yatay kaydırabilir veya büyütebilirsiniz. Değerler ve sonuç aşağıdaki metinde de yer alır.
- Tek niyet
- 1.000 EUR → 40 + 4 = 44 TRY – 60 TRY seçilmiş bütçeye uyar; marj bu hesap değildir.
- Yanıt kayıp
- Yerel durum: bilinmiyor – Sunucu durumunu kontrol etmeden olası tutarı sıfır saymayın.
- İki tam gerçekleşme olursa
- 2.000 EUR → 80 + 8 = 88 TRY – Aynı stop ve seçilmiş fiyatla bütçeyi 28 TRY aşar.
Koşullu olarak ilk miktar tamamen gerçekleşmişken aynı istek tekrar gerçekleşirse toplam 2.000 EUR için model tutarı 88 TRY olur ve bütçe aşılır. Burada iki gerçekleşmenin mutlaka olacağını veya belirli platformun yinelenen isteği otomatik önlediğini iddia etmiyoruz. Sonuç belirsizken 44 TRY olası planı sıfıra indirmemek, yeni emir iznini durdurup sunucu durumunu uzlaştırmak gerekir. Bir magic etiketi tek başına evrensel benzersizlik garantisi değildir.
Veri, barındırma, lisans ve zaman için maliyet çizelgesi tutun; dilin lisans bedelinin olmaması bütün projenin ücretsiz olması demek değildir. Kesinti ve yeniden başlama davranışını ayrıca sınayın. Yerel AutoTrading’i kapatmak mevcut pozisyonları kapatmaz; kabul edilmiş sunucu korumasıyla programın yönettiği kuralları ve uzak örnekleri ayırın. VPS gözetimi veya bütün arızaları ortadan kaldırmaz.
Yarın yapılacaklar
- Tek görev seçin; veriyi, zamanı, kuralı, sonucu ve durma koşullarını yazın. Güvenilir sinyal günlüğü tamamlanmış ilk proje olabilir.
- Veri tamlığı ve tutarlı fiyatları küçük örneklerle sınayın. Açık mumla tamamlanmış mumu ve girdi zamanlarını ayrı kaydedin.
- Emir gerekiyorsa açıkça tanımlanmış demo kullanın. Kabul, ret, yeniden başlama ve belirsiz yanıtı sınayın; tekrar öncesi gerçek durumu kontrol edin. Takvim, canlı hesaba geçmenizi zorunlu kılmaz.
- Kuralı ayrı değerlendirme için dondurun; aynı tarihlerde kararları ve uygun maliyetleri karşılaştırın. Her farkı araştırın, evrensel yüzde toleransı seçmeyin.
- Duraklatma, yeniden başlama ve güncelleme adımlarını yazın. Demo gözlemi aynı canlı yürütme garantisi değildir.
Anladığınızı kontrol edin
Alıştırma: yaklaşık 2 dakika.
Yanıtı ve açıklamayı göster
98 ve 106 tamamlamaları zıt kararlar üretir. Eksik kaydı veri yokluğu olarak koruyun.
Diğer sorular
Algoritmik işlem gerçekte neyi otomatikleştirir?
Alarm, EA ve araştırma programı arasında nasıl seçerim?
Kod yazabilmek neden yeterli değildir?
Projeyi genişletmeden hangi başarısızlıkları kontrol ederim?
TRY modelinde yanıt yoksa neden tekrar göndermiyorum?
Kaynaklar ve doğrulama
- MetaQuotes — MQL5 Reference
Dil ve EA, gösterge, script türleri; kurum API erişim garantisi değildir.
- MetaQuotes — CopyRates
Dönen kayıt sayısı ve henüz hazır olmayan geçmiş verisi.
- MetaQuotes — SymbolInfoTick
MqlTick içinde fiyatlar, güncelleme zamanı ve başarı sonucu.
- MetaQuotes — OrderSend
True ile gerçekleşme ayrımı, retcode ve bir isteğin birden çok işlem olayı.
- BIS — FX execution algorithms and market functioning
30 Ekim 2020 tarihli piyasa yapısı ve yürütme riskleri incelemesinin özeti; bireysel robot kârlılığı kanıtı değil.
Hesaplamalar açıkça belirtilen varsayımlara dayanır. Güncel piyasa verilerinin veya sağlayıcının koşullarının yerini almaz.
