Platformlar ve araçlar

Netting’de iki EA: ortak kârı ve yeni miktarı kime yazmalı?

Magic numarasını kâr sahibi sanmayın. USD FIFO/LIFO defterini uzlaştırın; TRY tersine dönüş örneğinde bir satışın eski miktarı kapatıp yalnız fazlasını yeni kısa açmasını görün.

Açık mint zeminde mavi, turkuaz ve mercan üç rayın girdiği büyük lacivert blok; raylarda renkli küpler ve sağa çıkan lacivert rayda mint küp.
Yapay zekâ ile üretilmiş editoryal görsel; ortak pozisyonda birleşen talimatları çağrıştıran soyut raylar, gerçek MT5 hesap akışı değildir.

Kaldıraçlı forex ve CFD işlemleri kısa sürede kayba yol açabilir. İçerik eğitim amaçlıdır; kişiye özel yatırım tavsiyesi içermez.

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 Komisyon

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

Tek POSITION_IDENTIFIER=5001 çevriminin kurgu geçmişi
Deal / emirKaynakDolumSonraki pozisyon
7001 / 5001EA AAlış 0,10; 1,1000Uzun 0,10
7002 / 5002EA BAlış 0,10; 1,1020Uzun 0,20
7003 / 5003Manuel çıkışSatış 0,10; 1,1010Uzun 0,10
7004 / 5004Manuel çıkışSatış 0,10; 1,1030Pozisyon 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

Aynı hesap toplamı, farklı paylaştırmaKapanmış çevrim fiyat sonucu 20 USD, komisyon 4 USD, net 16 USD. FIFO: A 8, B 8. LIFO: A 28, B eksi 12. Analitik kurallar sunucu geçmişinin yerine geçmez.Aynı hesap toplamı, farklı paylaştırmaOrtak hesap: 20 USD fiyat sonucu − 4 USD komisyon = 16 USD.FIFO: en eski miktarA: +8 USDB: +8 USD8 + 8 = 16 USDLIFO: en yeni miktarA: +28 USDB: −12 USD28 − 12 = 16 USDKendi modelimiz • dört dolum • pozisyon tamamen kapalı
İki analitik kural kapanmış çevrimde 16 USD’yi uzlaştırır ama EA sonuçlarını farklı paylaştırır. Sunucu geçmişinin yerine geçmez.

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

Kaynak ile yeni miktarın sahibi ayrı tutulur
OlayKapadığıYeni açtığı / kalanGerçekleşen fiyat sonucu
A alış 0,02YokA uzun 0,020 TRY
B satış 0,03A uzun 0,02B kısa 0,0140 TRY
Manuel alış 0,01B kısa 0,01Yok10 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.

TRY: tek tersine dönüşte iki ekonomik parçaA uzun 0,02 giriş 50,000; B satış 0,03 dolumu 50,020. Sözleşme 100.000 EUR/lot; her deal 1 TRY komisyon. Son manuel alış 0,01 Ask 50,010.VARSAYIMSAL HESAPLAMAB satışı: eskiyi kapatan kısım0,02 → +40 TRY fiyatB satışı: yeni açılan kısımYalnız kısa 0,01Kapanmış toplam50 − 3 = 47 TRY
TRY: tek tersine dönüşte iki ekonomik parça. A uzun 0,02 giriş 50,000; B satış 0,03 dolumu 50,020. Sözleşme 100.000 EUR/lot; her deal 1 TRY komisyon. Son manuel alış 0,01 Ask 50,010.

Ö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ı?

  1. 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.
  2. 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.
  3. 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.

7003 sonrası FIFO +10 USD gerçekleşmiş, −10 USD açık ve 3 USD komisyon gösteriyor. Birleşik sonuç nedir?

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?
Tek başına yetmez. Talimat kaynağını araştırmaya yardım eder; manuel azaltma birkaç EA’nın oluşturduğu ortak pozisyonu etkileyebilir. Deal/emir/identifier ve giriş miktarlarını kurduktan sonra çıkışı A/B’ye atayan analitik kural açıklanır. Manuel çıkışı EA talimatı diye yeniden etiketlemeyin.
Buradaki FIFO broker muhasebesi veya vergi kuralı mı?
Hayır. FIFO/LIFO iki analitik miktar paylaştırma kuralını gösterir, iki MT5 sunucu muhasebesini veya evrensel vergi yöntemini değil. Özgün geçmiş ayrı korunur. İkisi de 16 USD toplamına ulaşsa da her amaç için uygunluk doğmaz; raporlama için ilgili kayıt ve ülke kuralları ayrıca incelenir.
İlk çıkışta analitik gerçekleşmiş sonuç neden +10, ortak sonuç sıfır?
7003, ortak ortalama 1,1010’da çıktığı için ortak gerçekleşmiş fiyat sonucu sıfırdır. FIFO bunu A’nın eski miktarına yazıp +10 bulur; B’nin kalanında aynı Bid’de −10 açık kayıp vardır. Birlikte sıfır; üç komisyonla −3 USD. Yalnız kapalı bileşeni karşılaştırmayın.
Eksik giriş çıkış yorumundan üretilebilir mi?
Yorum tek başına eksik fiyatı, miktarı veya talimat kaynağını uydurmayı haklı çıkarmaz. Alınan tarih kapsamı, emir/identifier bağlantısı ve gerçek kısmi dolumları kontrol edin; ücret ve bakiye hareketlerini ayırın. Etkilenen paylaştırmayı neden açıklamasıyla çözülmemiş bırakın.
TRY örneğinde B’nin 0,03 satışı niçin yeni 0,03 kısa değildir?
Netting’de önce var olan A uzun 0,02 kapanır; yalnız fazla 0,01 yeni kısa kalır. 40 TRY eski A miktarının kapanış fiyat sonucudur. Son 0,01 alış bu yeni kısayı 10 TRY fiyat kazancıyla kapatır. Üç komisyon sonrası toplam 47; maliyet atama yöntemi bunu EA’lar arasında farklı bölebilir ama yeni miktarı büyütemez.

Kaynaklar ve doğrulama

  1. MetaTrader 5 — Basic Principles

    Gerçekten okunmuş netting ve emir/deal/pozisyon ayrımının yeniden kullanımı.

  2. MQL5 — Deal Properties

    DEAL_MAGIC/REASON, order/position kimliği, INOUT, gerçek fiyat/hacim ve maliyet alanları.

  3. MQL5 — Position Properties

    Identifier yaşam döngüsü ve tersine dönüşte korunması; ticket değişimi ayrıdır.

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

Yazar hakkında

Jarosław Wasiński, Polonya’da çalışan bir editör ve piyasa analistidir. MyBank.pl’yi 2004 yılında kurdu; 2007 yılından beri döviz piyasasını takip ediyor.