Bu makalede
Bu makaleyi okuduktan sonra…
- Deal, emir ve pozisyon kimliğini magic/Reason’dan ayrı bağlayabilirsiniz.
- FIFO/LIFO’da gerçekleşmiş, açık ve maliyet toplamlarını aynı değerleme anında uzlaştırabilirsiniz.
- Tersine dönüş miktarını eski kapanış ve yeni girişe ayırıp maliyet kuralını açık yazabilirsiniz.
Kavramları makaleden ayrılmadan öğrenin
Expert Advisor (EA) — uzman danışman Lot — sözleşme hacmi birimi KomisyonNetting hesapta iki robot ve manuel emir aynı ortak pozisyonu değiştirebilir. Ortak sonuç her robotun sonucunu otomatik söylemez. Önce gerçekleşmeleri ve bağlantılarını yeniden kurun; sonra açık analitik miktar ve maliyet paylaştırma kuralı seçin. Kaynak modelde iki farklı kural farklı EA sonuçları üretirken hesabın toplamı aynı kalır. Bu analiz broker geçmişini değiştirmez ve vergi muhasebesi kuralı oluşturmaz.
Magic number neden ortak pozisyonu bölmez?
MT5 netting aynı sembolde tek pozisyon tutar; sonraki dolumlar miktarını değiştirir. Bir emir birden fazla deal, yani gerçekleşme kaydı üretebilir. Farklı program adları ortak hesap içinde bağımsız portföy yaratmaz. Emrin kaynağı ile eski miktarın analitik sahibi ayrı alanlardır; tabloyu bu ayrımla kurun.
DEAL_MAGIC gerçekleşmenin magic numarasını, DEAL_REASON ise kaynağını veya nedenini belirtir. İkisi aynı özellik değildir. Emir numarası, pozisyon kimliği ve zaman damgasını da saklayın. Magic sıfır tek başına manuel karar kanıtı değildir. Program adı ile kimlik arasındaki kararlaştırılmış eşlemeyi ayrıca muhafaza edin.
Manuel çıkış A ve B’nin birlikte oluşturduğu maruziyeti azaltabilir. Kapanış deal’inin etiketi daha önceki hangi miktarı kapatılmış sayacağınızı belirlemez. Bu analitik karar için açık kural gerekir. EA temelleri pozisyon seçimini anlatır; burada her programa ayrı hesap yaratmak yerine aynı pozisyonun geçmişi çözülür.
Deal, emir ve pozisyon nasıl bağlanır?
Numaraları hesaplanacak miktar değil, kimlik olarak saklayın. DEAL_ORDER emirle, DEAL_POSITION_ID pozisyon yaşam döngüsüyle bağ kurar. POSITION_IDENTIFIER geçmiş bağlantısıdır; güncel POSITION_TICKET sunucu hizmet işlemleriyle değişebilir. Sembol, yön, gerçek miktar, dolum fiyatı ve zaman her deal için korunur.
HistorySelectByPosition belirtilen identifier’a göre emir/deal geçmişini seçer. İşlemin başarılı olduğunu ve gerekli kapsamın geldiğini kontrol edin. Tek bir terminal listesinin her şeyi içerdiğini sanmayın; eksik girişi çıkış yorumundan EA’ya yazmayın. Özgün kaydı yorum eklemeden önce saklayın. Tek emir/deal seçen başka fonksiyonların geçmiş listesini daraltabileceğini de kodda kontrol edin.
Komisyon, ek ücret, finansman ve sonucu hesap para biriminde kaydedin; bakiye hareketlerini alış/satıştan ayırın. Bölünmüş emirde gerçek kısmi miktar ve fiyatlar gerekir; istenen miktar gerçekleşenin yerine geçmez. MQL5 rehberi olay ve kimlikleri geliştirir. Burada girdi uzlaştırılmış geçmiş, yeni emir talimatı değildir.
Tek hesap iki farklı EA sonucu nasıl üretir?
Kendi modelimiz: iki alış, iki manuel çıkış
Kurgu doğrusal EUR/USD sözleşmesi 100.000 EUR/lot, hesap USD ve başlangıç pozisyonu yoktur. Alışlar atanmış Ask, satışlar Bid dolumlarıdır. Dört deal tam ve belirtilen sırada gerçekleşir. Her biri 1 USD komisyon taşır; ek ücret/swap sıfır. Fiyatlara dâhil spread’i bir daha çıkarmayın.
| Deal / emir | Kaynak | Dolum | Sonraki pozisyon |
|---|---|---|---|
| 7001 / 5001 | EA A | Alış 0,10; 1,1000 | Uzun 0,10 |
| 7002 / 5002 | EA B | Alış 0,10; 1,1020 | Uzun 0,20 |
| 7003 / 5003 | Manuel çıkış | Satış 0,10; 1,1010 | Uzun 0,10 |
| 7004 / 5004 | Manuel çıkış | Satış 0,10; 1,1030 | Pozisyon yok |
İkinci dolum sonrası ortak alış ortalaması 1,1010. Bu modelde ilk azaltma 0, ikincisi 20 USD fiyat sonucu gerçekleştirir. Dört komisyon sonrası net 20−4=16 USD. Tam kapanmış çevrim uzlaşır; gözlenmiş canlı hesap sonucu değildir. Fiyat ve ücretler atanmış girdilerdir.
Analitik FIFO en eski miktarı önce kapatır. 7003 A’ya yazılır: 10.000×(1,1010−1,1000)=10 USD. 7004 B’ye yazılır: 10.000×(1,1030−1,1020)=10 USD. Her EA’ya kendi giriş ve ayrılan çıkış komisyonu verilince A 8, B 8 USD alır.
Analitik LIFO en yeni miktarı önce kapatır. 7003 B’ye −10 USD, 7004 A’ya +30 USD fiyat sonucu verir. Maliyet sonrası B −12, A +28 USD; toplam yine 16. FIFO/LIFO burada kendi analitik miktar atama kurallarımızdır; iki alternatif MT5 sunucu muhasebesi veya evrensel vergi kuralı değildir. Robot değerlendirmesinde yöntemi sessizce değiştirmeyin.
Aynı hesap toplamı, farklı paylaştırma
İlk çıkışta gerçekleşmiş sonuç neden farklıdır?
7003 sonrasında güncel Bid 1,1010 atansın. Ortak pozisyonda 0 USD gerçekleşmiş ve 0 açık fiyat sonucu vardır. Analitik FIFO A’da +10 gerçekleştirir ama B’nin kalan miktarında aynı fiyatta −10 açık değerleme bulunur. Birlikte 10−10=0 USD. Pozisyon açıkken yalnız analitik gerçekleşmiş bileşeni sunucunun gerçekleşmiş alanıyla karşılaştırmak yanlıştır.
Üç dolum sonrası komisyon 3 USD; iki gösterimde toplam sonuç −3 USD olur. 7004 çevrimi kapatınca açık değerleme kalmaz, toplam 16’dır. Açık ve gerçekleşmiş sonuç bu ayrımı açar. Toplamların eşleşmesi analitik amaca hangi kuralın daha uygun olduğunu tek başına belirlemez.
Gerçek geçmişte kısmi dolum, tersine dönüş, düzeltme veya ayrı ücret olabilir. Kayıt eksikse ilgili paylaştırmayı çözülmemiş bırakıp nedenini yazın; toplamı zorla tutturmak için giriş fiyatı veya talimat kaynağı uydurmayın. Çevrimler arasında tutarlı kural kullanın; yöntem değişikliğini etiketleyin. Robot sınırları ve hesap kontrolü gerçek ortak maruziyete uygulanmaya devam eder.
TRY karşı örneği: B’nin satışı hem A’yı kapatır hem yeni kısa açar
Ayrı kurgu EUR/TRY netting hesabında başlangıç 5.000 TRY, sözleşme 100.000 EUR/lot olsun. Üç deal tam gerçekleşir ve her biri toplam 1 TRY komisyon taşır; başka ücret, swap veya nakit akışı yoktur. A, 0,02 lotu Ask 50,000’den alır. B, 0,03 lotu Bid 50,020’den satar. Manuel işlem kalan 0,01 lotu Ask 50,010’dan alıp kapatır.
| Olay | Kapadığı | Yeni açtığı / kalan | Gerçekleşen fiyat sonucu |
|---|---|---|---|
| A alış 0,02 | Yok | A uzun 0,02 | 0 TRY |
| B satış 0,03 | A uzun 0,02 | B kısa 0,01 | 40 TRY |
| Manuel alış 0,01 | B kısa 0,01 | Yok | 10 TRY |
B’nin magic etiketi 0,03 satış talimatının kaynağıdır; 40 TRY fiyat kazancı A’nın önceki 2.000 EUR uzun miktarının kapanmasından doğar. B’nin açtığı kısa yalnız 1.000 EUR’dur, 3.000 değil. Son çıkışta fiyat kazancı 1.000×(50,020−50,010)=10 TRY. Toplam brüt 50, üç ücret sonrası net 47; son bakiye 5.047 TRY.
MT5 belgesi tek INOUT gerçekleşmesiyle netting tersine dönüşte POSITION_IDENTIFIER’ın değişmediğini, ticket’ın tersine çeviren emrin ticket’ıyla değiştiğini açıklar. Dolayısıyla identifier eşitliği yönün hep aynı kaldığını veya B sonrasında pozisyonun bittiğini söylemez. O anda kısa 0,01 hâlâ vardır; son manuel dolum gelmeden çevrimi kapalı saymayın.
Ayrı analitik maliyet kuralımız B’nin 1 TRY komisyonunu kapattığı 0,02 ve açtığı 0,01 oranında bölsün. A’ya 2/3, B’ye 1/3 TRY düşer. A neti 40−1−2/3=38,333333…; B neti 10−1/3−1=8,666667…; tam kesirlerle toplam 47. Bu yuvarlak altı ondalıklar hesap para biriminin gerçek ücret kaydı değil, analitik paylardır; toplamı tam değerle uzlaştırın.
Önce eski kapanışla yeni miktarı ayırın; sonra maliyet atama kuralını açıklayın. Etiket değiştirmek gerçekleşmiş hacmi değiştirmez.
Küçük ekranda şemayı yatay kaydırabilir veya büyütebilirsiniz. Değerler ve sonuç aşağıdaki metinde de yer alır.
- B satışı: eskiyi kapatan kısım
- 0,02 → +40 TRY fiyat – Bu A’nın eski uzun miktarı; B magic’i kârın analitik sahibini tek başına söylemez.
- B satışı: yeni açılan kısım
- Yalnız kısa 0,01 – Son alışta +10 TRY fiyat sonucu. Bütün 0,03’ü yeni kısa saymak +20 hatası üretir.
- Kapanmış toplam
- 50 − 3 = 47 TRY – B ücretini 2/3 ve 1/3 bölmek A 38,333333… / B 8,666667… verir; talimat kaynağı maliyeti kuralında 39/8 olur.
Komisyonu talimat kaynağına yazan başka açık yöntem A’ya 39, B’ye 8 verir; toplam yine 47. Miktar sahipliğiyle maliyet atama kuralını aynı gizli tercih sanmayın. B’nin bütün 0,03’ünü yeni kısa kabul etmek ise geçerli başka maliyet yöntemi değildir: son çıkışa yanlış 30 TRY yazar, toplamı 20 şişirir.
B sonrasında ve manuel çıkıştan önce Ask 50,030 atansın. Bakiye 5.038, kısa 0,01’in açık değerlemesi −10, equity 5.028 TRY. Analitik A’nın gerçekleşmiş 40 fiyat sonucu ile B’nin −10 açık sonucu birleşince 30; iki komisyon sonrası 28’dir. Kaynak USD örneğiyle aynı para birimi veya aynı olay dizisi değildir; TRY sonuçları ayrı tutulur.
İki robotu değerlendirmeden önce ne yapmalı?
- Tek sembolde kapanmış çevrimi seçip özgün dışa aktarımı saklayın. Deal’leri emir ve position identifier ile bağlayın; gerçek miktar ve bütün masrafları uzlaştırın. Örnek üretmek için yeni canlı işlem açmayın.
- Miktar ve maliyet atama kuralını sonuç hesabından önce ilan edin. Talimat kaynağı ile analitik miktar sahibini ayrı sütunlarda tutun; kapanış magic numarasını eski girişlerin tam açıklaması saymayın.
- Kapanmış çevrimde toplamı geçmişle uzlaştırın. Açık çevrimde gerçekleşmiş ve açık sonucu aynı fiyat anında birleştirin. İki görünümü günlükte saklayın; paylaştırma gelecek kârlılığı kanıtlamaz.
Anladığınızı kontrol edin
Alıştırma: yaklaşık 2 dakika.
Yanıtı ve açıklamayı göster
Doğru: 10−10−3=−3 USD. Ortak pozisyonda sıfır fiyat sonucu eksi üç komisyonla eşleşir.
Diğer sorular
Kapanış magic numarası kârı hangi EA’nın kazandığını söyler mi?
Buradaki FIFO broker muhasebesi veya vergi kuralı mı?
İlk çıkışta analitik gerçekleşmiş sonuç neden +10, ortak sonuç sıfır?
Eksik giriş çıkış yorumundan üretilebilir mi?
TRY örneğinde B’nin 0,03 satışı niçin yeni 0,03 kısa değildir?
Kaynaklar ve doğrulama
- MetaTrader 5 — Basic Principles
Gerçekten okunmuş netting ve emir/deal/pozisyon ayrımının yeniden kullanımı.
- MQL5 — Deal Properties
DEAL_MAGIC/REASON, order/position kimliği, INOUT, gerçek fiyat/hacim ve maliyet alanları.
- MQL5 — Position Properties
Identifier yaşam döngüsü ve tersine dönüşte korunması; ticket değişimi ayrıdır.
- MQL5 — HistorySelectByPosition
Identifier’a göre geçmiş seçimi ve başarı kontrolü; başka tek-kayıt seçimleri listeleri daraltabilir.
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.
